@gaganref/confect-server 10.3.1-fork.5 → 10.3.1-fork.50
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.d.ts +1 -1
- package/dist/ActionRunner.d.ts.map +1 -1
- package/dist/ActionRunner.js +3 -3
- package/dist/ActionRunner.js.map +1 -1
- package/dist/AiGatewayDecisionClient.js +1 -1
- package/dist/AiGatewayLanguageClient.js +1 -1
- package/dist/Auth.d.ts +13 -1
- package/dist/Auth.d.ts.map +1 -1
- package/dist/Auth.js +13 -3
- package/dist/Auth.js.map +1 -1
- package/dist/Callback.js +4 -4
- package/dist/ConvexConfigProvider.js +2 -2
- package/dist/ConvexFunctionDefinitions.d.ts.map +1 -1
- package/dist/ConvexFunctionDefinitions.js +4 -4
- package/dist/ConvexFunctionDefinitions.js.map +1 -1
- 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 +55 -8
- package/dist/DatabaseWriter.js.map +1 -1
- package/dist/ExecutionMetadata.js +1 -1
- package/dist/FunctionImpl.js +2 -2
- package/dist/FunctionRegistryItem.d.ts +1 -0
- package/dist/FunctionRegistryItem.d.ts.map +1 -1
- package/dist/FunctionRegistryItem.js +2 -1
- package/dist/FunctionRegistryItem.js.map +1 -1
- package/dist/GroupImpl.d.ts +21 -2
- package/dist/GroupImpl.d.ts.map +1 -1
- package/dist/GroupImpl.js +21 -22
- package/dist/GroupImpl.js.map +1 -1
- package/dist/GroupRegistry.d.ts +1 -0
- package/dist/GroupRegistry.d.ts.map +1 -1
- package/dist/GroupRegistry.js +10 -3
- package/dist/GroupRegistry.js.map +1 -1
- package/dist/Handler.d.ts +8 -4
- package/dist/Handler.d.ts.map +1 -1
- package/dist/Handler.js.map +1 -1
- package/dist/HttpRouter.d.ts +2 -0
- package/dist/HttpRouter.d.ts.map +1 -1
- package/dist/HttpRouter.js +17 -8
- package/dist/HttpRouter.js.map +1 -1
- package/dist/MiddlewareImpl.js +1 -1
- package/dist/MutationRunner.d.ts +1 -1
- package/dist/MutationRunner.d.ts.map +1 -1
- package/dist/MutationRunner.js +3 -3
- package/dist/MutationRunner.js.map +1 -1
- package/dist/MutationTransactionContext.d.ts.map +1 -1
- package/dist/MutationTransactionContext.js +4 -3
- package/dist/MutationTransactionContext.js.map +1 -1
- package/dist/OfficialComponent.d.ts +60 -0
- package/dist/OfficialComponent.d.ts.map +1 -0
- package/dist/OfficialComponent.js +71 -0
- package/dist/OfficialComponent.js.map +1 -0
- package/dist/QueryInitializer.js +2 -2
- package/dist/QueryRunner.js +2 -2
- package/dist/QueryStream.d.ts +120 -12
- package/dist/QueryStream.d.ts.map +1 -1
- package/dist/QueryStream.js +143 -41
- package/dist/QueryStream.js.map +1 -1
- 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 +2 -2
- package/dist/QueryStreamPagination.js +1 -1
- package/dist/QueryStreamReadBudget.d.ts +3 -2
- package/dist/QueryStreamReadBudget.d.ts.map +1 -1
- package/dist/QueryStreamReadBudget.js +8 -5
- package/dist/QueryStreamReadBudget.js.map +1 -1
- package/dist/QueryTransactionContext.js +2 -2
- package/dist/RegisteredConvexFunction.d.ts +10 -5
- package/dist/RegisteredConvexFunction.d.ts.map +1 -1
- package/dist/RegisteredConvexFunction.js +45 -29
- package/dist/RegisteredConvexFunction.js.map +1 -1
- package/dist/RegisteredFunction.d.ts +39 -22
- package/dist/RegisteredFunction.d.ts.map +1 -1
- package/dist/RegisteredFunction.js +155 -42
- package/dist/RegisteredFunction.js.map +1 -1
- package/dist/RegisteredNodeFunction.d.ts +1 -1
- package/dist/RegisteredNodeFunction.d.ts.map +1 -1
- package/dist/RegisteredNodeFunction.js +10 -6
- package/dist/RegisteredNodeFunction.js.map +1 -1
- package/dist/RegistryItems.d.ts +7 -0
- package/dist/RegistryItems.d.ts.map +1 -1
- package/dist/RegistryItems.js +8 -3
- package/dist/RegistryItems.js.map +1 -1
- package/dist/RequestMetadata.js +1 -1
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +11 -10
- package/dist/Scheduler.js.map +1 -1
- 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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -18
- 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.d.ts +16 -0
- package/dist/internal/DocumentPatch.d.ts.map +1 -0
- package/dist/internal/DocumentPatch.js +36 -0
- package/dist/internal/DocumentPatch.js.map +1 -0
- package/dist/internal/observability.d.ts +5 -0
- package/dist/internal/observability.d.ts.map +1 -0
- package/dist/internal/observability.js +21 -0
- package/dist/internal/observability.js.map +1 -0
- package/dist/internal/reservedArgument.d.ts +8 -0
- package/dist/internal/reservedArgument.d.ts.map +1 -0
- package/dist/internal/reservedArgument.js +30 -0
- package/dist/internal/reservedArgument.js.map +1 -0
- package/package.json +5 -5
- package/src/ActionCall.ts +83 -0
- package/src/ActionRunner.ts +3 -2
- package/src/Auth.ts +23 -1
- package/src/ConvexFunctionDefinitions.ts +2 -1
- package/src/DatabaseWriter.ts +183 -25
- package/src/FunctionRegistryItem.ts +4 -0
- package/src/GroupImpl.ts +61 -8
- package/src/GroupRegistry.ts +7 -3
- package/src/Handler.ts +21 -5
- package/src/HttpRouter.ts +54 -4
- package/src/MutationRunner.ts +3 -2
- package/src/MutationTransactionContext.ts +2 -1
- package/src/OfficialComponent.ts +167 -0
- package/src/QueryStream.ts +391 -61
- package/src/QueryStreamReadBudget.ts +19 -6
- package/src/RegisteredConvexFunction.ts +35 -2
- package/src/RegisteredFunction.ts +251 -45
- package/src/RegisteredNodeFunction.ts +11 -1
- package/src/RegistryItems.ts +31 -0
- package/src/Scheduler.ts +13 -16
- package/src/index.ts +2 -0
- package/src/internal/DocumentPatch.ts +87 -0
- package/src/internal/observability.ts +27 -0
- package/src/internal/reservedArgument.ts +56 -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":"AASA,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 { runWithCodec } from "./internal/reservedArgument.js";
|
|
3
|
+
import { ActionCtx } from "./ActionCtx.js";
|
|
4
|
+
import { ActionRunner } from "./ActionRunner.js";
|
|
5
|
+
import { make } from "./MiddlewareImpl.js";
|
|
6
|
+
import { MutationRunner } from "./MutationRunner.js";
|
|
7
|
+
import { QueryRunner } from "./QueryRunner.js";
|
|
8
|
+
import { Scheduler } from "./Scheduler.js";
|
|
9
|
+
import * as Context from "effect/Context";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as ActionCall from "@confect/core/ActionCall";
|
|
12
|
+
import * as Data from "effect/Data";
|
|
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 runWithCodec(ref, args[0] ?? {}, (native, encoded) => ref.functionType === "query" ? ctx.runQuery(native, encoded) : ctx.runMutation(native, encoded));
|
|
35
|
+
}).pipe(Effect.withSpan("ActionCall.call"));
|
|
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","ReservedArgument.runWithCodec","QueryRunner.QueryRunner","MutationRunner.MutationRunner","ActionRunner.ActionRunner","Scheduler.Scheduler"],"sources":["../src/ActionCall.ts"],"sourcesContent":["import * as ReservedArgument from \"./internal/reservedArgument.js\";\nimport * as ActionCall from \"@confect/core/ActionCall\";\nimport type * 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 ReservedArgument.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 }).pipe(Effect.withSpan(\"ActionCall.call\"));\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":";;;;;;;;;;;;;;;;;;;;;AAiBA,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,OAAOC,aACL,KACC,KAAK,MAAM,CAAC,IACZ,QAAQ,YACP,IAAI,iBAAiB,UACjB,IAAI,SACF,QACA,OACF,IACA,IAAI,YACF,QACA,OACF,CACR;CACF,CAAC,CAAC,CAAC,KAAK,OAAO,SAAS,iBAAiB,CAAC;CAC5C,OAAO,OAAO,OAAO,KACnB,OAAO,eAAe,WAAW,YAAY,IAAI,GACjD,OAAO,eACJ,YACC,QAAQ,KACNC,aACAC,gBACAC,cACAJ,UAAoB,GACpBK,SACF,CAAC,CAAC,OAAO,CACb,CACF;AACF,CAAC,CACH"}
|
package/dist/ActionRunner.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionRunner.d.ts","sourceRoot":"","sources":["../src/ActionRunner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActionRunner.d.ts","sourceRoot":"","sources":["../src/ActionRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAwB7C,eAAO,MAAM,YAAY;gBAjBX,MAAM,SAAS,GAAG,CAAC,SAAS,UAC9B,MAAM,WACL,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAChC,MAAM,CAAC,MAAM,CACd,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EACnB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CACvC;;;EAaF,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,UAAU,CAAC;AAE1D,eAAO,MAAM,KAAK,cAAe,gBAAgB,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;gBAtBrD,MAAM,SAAS,GAAG,CAAC,SAAS,UAC9B,MAAM,WACL,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAChC,MAAM,CAAC,MAAM,CACd,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EACnB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CACvC;gBAiB2C,CAAC"}
|
package/dist/ActionRunner.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { runWithCodec } from "./internal/reservedArgument.js";
|
|
2
3
|
import * as Context from "effect/Context";
|
|
3
|
-
import * as Layer from "effect/Layer";
|
|
4
|
-
import * as Ref from "@confect/core/Ref";
|
|
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,
|
|
9
9
|
layer: () => layer
|
|
10
10
|
});
|
|
11
11
|
const run = Effect.fn("ActionRunner.runAction")((effect) => effect);
|
|
12
|
-
const make = (runAction) => ({ runAction: (action, ...args) => run(
|
|
12
|
+
const make = (runAction) => ({ runAction: (action, ...args) => run(runWithCodec(action, args[0] ?? {}, (functionReference, encodedArgs) => runAction(functionReference, encodedArgs))) });
|
|
13
13
|
const ActionRunner = Context.Service("@confect/server/ActionRunner");
|
|
14
14
|
const layer = (runAction) => Layer.succeed(ActionRunner, make(runAction));
|
|
15
15
|
//#endregion
|
package/dist/ActionRunner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionRunner.js","names":[],"sources":["../src/ActionRunner.ts"],"sourcesContent":["import * as Ref from \"@confect/core/Ref\";\nimport { type GenericActionCtx } from \"convex/server\";\nimport * as Effect from \"effect/Effect\";\nimport * as Context from \"effect/Context\";\nimport * as Layer from \"effect/Layer\";\nimport type * as Schema from \"effect/Schema\";\n\nconst run = Effect.fn(\"ActionRunner.runAction\")(\n <A, E>(effect: Effect.Effect<A, E>): Effect.Effect<A, E> => effect,\n);\n\nconst make = (runAction: GenericActionCtx<any>[\"runAction\"]) => ({\n runAction: <Action extends Ref.AnyAction>(\n action: Action,\n ...args: Ref.OptionalArgs<Action>\n ): Effect.Effect<\n Ref.Returns<Action>,\n Ref.Error<Action> | Schema.SchemaError\n > =>\n run(\n
|
|
1
|
+
{"version":3,"file":"ActionRunner.js","names":["ReservedArgument.runWithCodec"],"sources":["../src/ActionRunner.ts"],"sourcesContent":["import * as ReservedArgument from \"./internal/reservedArgument.js\";\nimport type * as Ref from \"@confect/core/Ref\";\nimport { type GenericActionCtx } from \"convex/server\";\nimport * as Effect from \"effect/Effect\";\nimport * as Context from \"effect/Context\";\nimport * as Layer from \"effect/Layer\";\nimport type * as Schema from \"effect/Schema\";\n\nconst run = Effect.fn(\"ActionRunner.runAction\")(\n <A, E>(effect: Effect.Effect<A, E>): Effect.Effect<A, E> => effect,\n);\n\nconst make = (runAction: GenericActionCtx<any>[\"runAction\"]) => ({\n runAction: <Action extends Ref.AnyAction>(\n action: Action,\n ...args: Ref.OptionalArgs<Action>\n ): Effect.Effect<\n Ref.Returns<Action>,\n Ref.Error<Action> | Schema.SchemaError\n > =>\n run(\n ReservedArgument.runWithCodec(\n action,\n (args[0] ?? {}) as Ref.Args<Action>,\n (functionReference, encodedArgs) =>\n runAction(functionReference, encodedArgs),\n ),\n ),\n});\n\nexport const ActionRunner = Context.Service<ReturnType<typeof make>>(\n \"@confect/server/ActionRunner\",\n);\nexport type ActionRunner = typeof ActionRunner.Identifier;\n\nexport const layer = (runAction: GenericActionCtx<any>[\"runAction\"]) =>\n Layer.succeed(ActionRunner, make(runAction));\n"],"mappings":";;;;;;;;;;AAQA,MAAM,MAAM,OAAO,GAAG,wBAAwB,CAAC,EACtC,WAAqD,MAC9D;AAEA,MAAM,QAAQ,eAAmD,EAC/D,YACE,QACA,GAAG,SAKH,IACEA,aACE,QACC,KAAK,MAAM,CAAC,IACZ,mBAAmB,gBAClB,UAAU,mBAAmB,WAAW,CAC5C,CACF,EACJ;AAEA,MAAa,eAAe,QAAQ,QAClC,8BACF;AAGA,MAAa,SAAS,cACpB,MAAM,QAAQ,cAAc,KAAK,SAAS,CAAC"}
|
|
@@ -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.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Auth as ConvexAuth } from "convex/server";
|
|
1
|
+
import type { Auth as ConvexAuth, MutationAuth as ConvexMutationAuth, SignJwtOptions } from "convex/server";
|
|
2
2
|
import * as Context from "effect/Context";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Layer from "effect/Layer";
|
|
@@ -10,6 +10,18 @@ declare const Auth_base: Context.ServiceClass<Auth, "@confect/server/Auth", {
|
|
|
10
10
|
export declare class Auth extends Auth_base {
|
|
11
11
|
}
|
|
12
12
|
export declare const layer: (auth: ConvexAuth) => Layer.Layer<Auth, never, never>;
|
|
13
|
+
declare const MutationAuth_base: Context.ServiceClass<MutationAuth, "@confect/server/Auth/MutationAuth", {
|
|
14
|
+
readonly signJwt: (options: SignJwtOptions) => Effect.Effect<string>;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Mutation-only deployment signing, available in applications and components.
|
|
18
|
+
*/
|
|
19
|
+
export declare class MutationAuth extends MutationAuth_base {
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* SDK rejections remain defects, as with the other native auth operations.
|
|
23
|
+
*/
|
|
24
|
+
export declare const mutationLayer: (auth: ConvexMutationAuth) => Layer.Layer<MutationAuth, never, never>;
|
|
13
25
|
export type ForTarget<Target extends DatabaseSchema.Target> = Target["kind"] extends "component" ? never : Auth;
|
|
14
26
|
export declare const layerForTarget: <Target extends DatabaseSchema.Target>(target: Target, auth: ConvexAuth) => Layer.Layer<ForTarget<Target>>;
|
|
15
27
|
declare const NoUserIdentityFoundError_base: Schema.Class<NoUserIdentityFoundError, Schema.TaggedStruct<"NoUserIdentityFoundError", {}>, import("effect/Cause").YieldableError>;
|
package/dist/Auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../src/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../src/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,IAAI,UAAU,EAClB,YAAY,IAAI,kBAAkB,EAClC,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;;;;AAgB3D,qBAAa,IAAK,SAAQ,SAEzB;CAAG;AAEJ,eAAO,MAAM,KAAK,SAAU,UAAU,oCAAoC,CAAC;;sBAQrD,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;AANxE;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAKM;CAAG;AAE3C;;GAEG;AACH,eAAO,MAAM,aAAa,SAAU,kBAAkB,4CAGlD,CAAC;AAEL,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,cAAc,CAAC,MAAM,IACxD,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;AAEpD,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,cAAc,CAAC,MAAM,UACzD,MAAM,QACR,UAAU,KACf,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAKK,CAAC;;AAEtC,qBAAa,wBAAyB,SAAQ,6BAG7C;IACC,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
|
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";
|
|
@@ -9,9 +9,11 @@ import * as Option from "effect/Option";
|
|
|
9
9
|
//#region src/Auth.ts
|
|
10
10
|
var Auth_exports = /* @__PURE__ */ __exportAll({
|
|
11
11
|
Auth: () => Auth,
|
|
12
|
+
MutationAuth: () => MutationAuth,
|
|
12
13
|
NoUserIdentityFoundError: () => NoUserIdentityFoundError,
|
|
13
14
|
layer: () => layer,
|
|
14
|
-
layerForTarget: () => layerForTarget
|
|
15
|
+
layerForTarget: () => layerForTarget,
|
|
16
|
+
mutationLayer: () => mutationLayer
|
|
15
17
|
});
|
|
16
18
|
const make = (auth) => ({ getUserIdentity: Effect.promise(() => auth.getUserIdentity()).pipe(Effect.andThen(flow(Option.fromNullishOr, Option.match({
|
|
17
19
|
onNone: () => Effect.fail(new NoUserIdentityFoundError()),
|
|
@@ -19,6 +21,14 @@ const make = (auth) => ({ getUserIdentity: Effect.promise(() => auth.getUserIden
|
|
|
19
21
|
})))) });
|
|
20
22
|
var Auth = class extends Context.Service()("@confect/server/Auth") {};
|
|
21
23
|
const layer = (auth) => Layer.succeed(Auth, make(auth));
|
|
24
|
+
/**
|
|
25
|
+
* Mutation-only deployment signing, available in applications and components.
|
|
26
|
+
*/
|
|
27
|
+
var MutationAuth = class extends Context.Service()("@confect/server/Auth/MutationAuth") {};
|
|
28
|
+
/**
|
|
29
|
+
* SDK rejections remain defects, as with the other native auth operations.
|
|
30
|
+
*/
|
|
31
|
+
const mutationLayer = (auth) => Layer.succeed(MutationAuth, { signJwt: (options) => Effect.promise(() => auth.signJwt(options)) });
|
|
22
32
|
const layerForTarget = (target, auth) => Match.value(target.kind).pipe(Match.when("app", () => layer(auth)), Match.when("component", () => Layer.empty), Match.exhaustive);
|
|
23
33
|
var NoUserIdentityFoundError = class extends Schema.TaggedError()("NoUserIdentityFoundError", {}) {
|
|
24
34
|
get message() {
|
|
@@ -26,6 +36,6 @@ var NoUserIdentityFoundError = class extends Schema.TaggedError()("NoUserIdentit
|
|
|
26
36
|
}
|
|
27
37
|
};
|
|
28
38
|
//#endregion
|
|
29
|
-
export { Auth, Auth_exports, NoUserIdentityFoundError, layer, layerForTarget };
|
|
39
|
+
export { Auth, Auth_exports, MutationAuth, NoUserIdentityFoundError, layer, layerForTarget, mutationLayer };
|
|
30
40
|
|
|
31
41
|
//# sourceMappingURL=Auth.js.map
|
package/dist/Auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.js","names":[],"sources":["../src/Auth.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"Auth.js","names":[],"sources":["../src/Auth.ts"],"sourcesContent":["import type {\n Auth as ConvexAuth,\n MutationAuth as ConvexMutationAuth,\n SignJwtOptions,\n} from \"convex/server\";\nimport * as Context from \"effect/Context\";\nimport { flow } from \"effect/Function\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Option from \"effect/Option\";\nimport * as Schema from \"effect/Schema\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\n\nconst make = (auth: ConvexAuth) => ({\n getUserIdentity: Effect.promise(() => auth.getUserIdentity()).pipe(\n Effect.andThen(\n flow(\n Option.fromNullishOr,\n Option.match({\n onNone: () => Effect.fail(new NoUserIdentityFoundError()),\n onSome: Effect.succeed,\n }),\n ),\n ),\n ),\n});\n\nexport class Auth extends Context.Service<Auth, ReturnType<typeof make>>()(\n \"@confect/server/Auth\",\n) {}\n\nexport const layer = (auth: ConvexAuth) => Layer.succeed(Auth, make(auth));\n\n/**\n * Mutation-only deployment signing, available in applications and components.\n */\nexport class MutationAuth extends Context.Service<\n MutationAuth,\n {\n readonly signJwt: (options: SignJwtOptions) => Effect.Effect<string>;\n }\n>()(\"@confect/server/Auth/MutationAuth\") {}\n\n/**\n * SDK rejections remain defects, as with the other native auth operations.\n */\nexport const mutationLayer = (auth: ConvexMutationAuth) =>\n Layer.succeed(MutationAuth, {\n signJwt: (options) => Effect.promise(() => auth.signJwt(options)),\n });\n\nexport type ForTarget<Target extends DatabaseSchema.Target> =\n Target[\"kind\"] extends \"component\" ? never : Auth;\n\nexport const layerForTarget = <Target extends DatabaseSchema.Target>(\n target: Target,\n auth: ConvexAuth,\n): Layer.Layer<ForTarget<Target>> =>\n Match.value(target.kind).pipe(\n Match.when(\"app\", () => layer(auth)),\n Match.when(\"component\", () => Layer.empty),\n Match.exhaustive,\n ) as Layer.Layer<ForTarget<Target>>;\n\nexport class NoUserIdentityFoundError extends Schema.TaggedError<NoUserIdentityFoundError>()(\n \"NoUserIdentityFoundError\",\n {},\n) {\n override get message(): string {\n return \"No user identity found\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAcA,MAAM,QAAQ,UAAsB,EAClC,iBAAiB,OAAO,cAAc,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAC5D,OAAO,QACL,KACE,OAAO,eACP,OAAO,MAAM;CACX,cAAc,OAAO,KAAK,IAAI,yBAAyB,CAAC;CACxD,QAAQ,OAAO;AACjB,CAAC,CACH,CACF,CACF,EACF;AAEA,IAAa,OAAb,cAA0B,QAAQ,QAAuC,CAAC,CACxE,sBACF,CAAC,CAAC,CAAC;AAEH,MAAa,SAAS,SAAqB,MAAM,QAAQ,MAAM,KAAK,IAAI,CAAC;;;;AAKzE,IAAa,eAAb,cAAkC,QAAQ,QAKxC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;;;;AAK1C,MAAa,iBAAiB,SAC5B,MAAM,QAAQ,cAAc,EAC1B,UAAU,YAAY,OAAO,cAAc,KAAK,QAAQ,OAAO,CAAC,EAClE,CAAC;AAKH,MAAa,kBACX,QACA,SAEA,MAAM,MAAM,OAAO,IAAI,CAAC,CAAC,KACvB,MAAM,KAAK,aAAa,MAAM,IAAI,CAAC,GACnC,MAAM,KAAK,mBAAmB,MAAM,KAAK,GACzC,MAAM,UACR;AAEF,IAAa,2BAAb,cAA8C,OAAO,YAAsC,CAAC,CAC1F,4BACA,CAAC,CACH,CAAC,CAAC;CACA,IAAa,UAAkB;EAC7B,OAAO;CACT;AACF"}
|
package/dist/Callback.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { convexToJson, v } from "convex/values";
|
|
2
3
|
import * as Ref from "@confect/core/Ref";
|
|
3
4
|
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as MiddlewareSpec from "@confect/core/MiddlewareSpec";
|
|
6
|
+
import * as Predicate from "effect/Predicate";
|
|
7
|
+
import * as Array from "effect/Array";
|
|
4
8
|
import { createFunctionHandle } from "convex/server";
|
|
5
9
|
import * as Schema from "effect/Schema";
|
|
6
10
|
import { pipe } from "effect/Function";
|
|
7
11
|
import * as Option from "effect/Option";
|
|
8
12
|
import * as Callback from "@confect/core/Callback";
|
|
9
|
-
import * as MiddlewareSpec from "@confect/core/MiddlewareSpec";
|
|
10
13
|
import { UnsupportedPropertySignatureKeyTypeError, compileAst } from "@confect/core/SchemaToValidator";
|
|
11
|
-
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvexFunctionDefinitions.d.ts","sourceRoot":"","sources":["../src/ConvexFunctionDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AAIrE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAC,UAAU,GAAG,WAAW,CAAC;CAC5E;AAED,KAAK,aAAa,CAChB,QAAQ,SAAS,YAAY,CAAC,YAAY,EAC1C,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IACzC,UAAU,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9C,YAAY,GACZ,GAAG,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;AAErH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAC,YAAY,IAAI;IAC3D,QAAQ,EAAE,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CACvE,wBAAwB,CAAC,UAAU,EACnC;QACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAC1B,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CACxD,CAAC;KACH,CACF;CACF,GAAG;IACF,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAClD;CACF,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,wBAAwB,CAAC,UAAU,GAAG,WAAW,KACvD,KAAK,IAAI,wBAAwB,CAAC,UACL,CAAC;AAWjC,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,eAC9C,WAAW,KACvB,mBAAmB,CAAC,+BAA+B,CAAC,KAAK,CAGK,CAAC;AAElE,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,kBAChD,cAAc,CAAC,YAAY,cAC/B,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KACxD,QAAQ,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ConvexFunctionDefinitions.d.ts","sourceRoot":"","sources":["../src/ConvexFunctionDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AAIrE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAC,UAAU,GAAG,WAAW,CAAC;CAC5E;AAED,KAAK,aAAa,CAChB,QAAQ,SAAS,YAAY,CAAC,YAAY,EAC1C,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IACzC,UAAU,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9C,YAAY,GACZ,GAAG,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;AAErH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAC,YAAY,IAAI;IAC3D,QAAQ,EAAE,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CACvE,wBAAwB,CAAC,UAAU,EACnC;QACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAC1B,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CACxD,CAAC;KACH,CACF;CACF,GAAG;IACF,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAClD;CACF,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,wBAAwB,CAAC,UAAU,GAAG,WAAW,KACvD,KAAK,IAAI,wBAAwB,CAAC,UACL,CAAC;AAWjC,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,eAC9C,WAAW,KACvB,mBAAmB,CAAC,+BAA+B,CAAC,KAAK,CAGK,CAAC;AAElE,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,kBAChD,cAAc,CAAC,YAAY,cAC/B,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KACxD,QAAQ,CAAC,KAAK,CA2BhB,CAAC"}
|
|
@@ -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,
|
|
@@ -16,8 +16,8 @@ const isDefinition = (value) => typeof value._tag === "string";
|
|
|
16
16
|
const registerDefinitions = (definitions) => Record.map(definitions, (value) => isDefinition(value) ? register$1(value) : registerDefinitions(value));
|
|
17
17
|
const register = (definitions) => registerDefinitions(definitions);
|
|
18
18
|
const buildForGroup = (databaseSchema, groupLayer) => {
|
|
19
|
-
const { functionRegistryItems, middlewareRegistryItems } = make(groupLayer);
|
|
20
|
-
return mapLeaves(functionRegistryItems, isFunctionRegistryItem, (item) => Match.value(item).pipe(Match.tag("Convex", ({ handler }) => Definition.Registered({ handler })), Match.tag("Confect", (confect) => prepare(databaseSchema, confect, resolve(confect, middlewareRegistryItems))), Match.exhaustive));
|
|
19
|
+
const { functionRegistryItems, middlewareRegistryItems, observability } = make(groupLayer);
|
|
20
|
+
return mapLeaves(functionRegistryItems, isFunctionRegistryItem, (item) => Match.value(item).pipe(Match.tag("Convex", ({ handler }) => Definition.Registered({ handler })), Match.tag("Confect", (confect) => prepare(databaseSchema, confect, resolve(confect, middlewareRegistryItems), observability)), Match.exhaustive));
|
|
21
21
|
};
|
|
22
22
|
//#endregion
|
|
23
23
|
export { ConvexFunctionDefinitions_exports, buildForGroup, isDefinition, register };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvexFunctionDefinitions.js","names":["RegisteredConvexFunction.register","GroupRegistry.make","FunctionRegistryItem.isFunctionRegistryItem","RegisteredConvexFunction.prepare","ResolvedMiddleware.resolve"],"sources":["../src/ConvexFunctionDefinitions.ts"],"sourcesContent":["import type * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Record from \"effect/Record\";\nimport type * as GroupSpec from \"@confect/core/GroupSpec\";\nimport type * as FunctionSpec from \"@confect/core/FunctionSpec\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as GroupImpl from \"./GroupImpl.js\";\nimport * as GroupRegistry from \"./GroupRegistry.js\";\nimport * as FunctionRegistryItem from \"./FunctionRegistryItem.js\";\nimport * as RegisteredConvexFunction from \"./RegisteredConvexFunction.js\";\nimport type * as RegisteredFunctions from \"./RegisteredFunctions.js\";\nimport * as ResolvedMiddleware from \"./ResolvedMiddleware.js\";\nimport { mapLeaves } from \"./internal/utils.js\";\n\nexport interface Definitions {\n readonly [name: string]: RegisteredConvexFunction.Definition | Definitions;\n}\n\ntype DefinitionTag<\n Function extends FunctionSpec.AnyWithProps,\n Provenance = Function[\"functionProvenance\"],\n> = Provenance extends { readonly _tag: \"Convex\" }\n ? \"Registered\"\n : `${Capitalize<Function[\"functionVisibility\"]>}${Capitalize<Function[\"runtimeAndFunctionType\"][\"functionType\"]>}`;\n\nexport type ForGroup<Group extends GroupSpec.AnyWithProps> = {\n readonly [Name in FunctionSpec.Name<GroupSpec.Functions<Group>>]: Extract<\n RegisteredConvexFunction.Definition,\n {\n readonly _tag: DefinitionTag<\n FunctionSpec.WithName<GroupSpec.Functions<Group>, Name>\n >;\n }\n >;\n} & {\n readonly [Name in GroupSpec.Name<GroupSpec.Groups<Group>>]: ForGroup<\n GroupSpec.WithName<GroupSpec.Groups<Group>, Name>\n >;\n};\n\nexport const isDefinition = (\n value: RegisteredConvexFunction.Definition | Definitions,\n): value is RegisteredConvexFunction.Definition =>\n typeof value._tag === \"string\";\n\nconst registerDefinitions = (\n definitions: Definitions,\n): RegisteredFunctions.AnyWithProps =>\n Record.map(definitions, (value) =>\n isDefinition(value)\n ? RegisteredConvexFunction.register(value)\n : registerDefinitions(value),\n );\n\nexport const register = <Group extends GroupSpec.AnyWithProps>(\n definitions: Definitions,\n): RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group> =>\n registerDefinitions(\n definitions,\n ) as RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group>;\n\nexport const buildForGroup = <Group extends GroupSpec.AnyWithProps>(\n databaseSchema: DatabaseSchema.AnyWithProps,\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n): ForGroup<Group> => {\n const { functionRegistryItems, middlewareRegistryItems } =\n GroupRegistry.make(groupLayer);\n return mapLeaves<\n FunctionRegistryItem.AnyWithProps,\n RegisteredConvexFunction.Definition\n >(\n functionRegistryItems as {\n [key: string]: FunctionRegistryItem.AnyWithProps;\n },\n FunctionRegistryItem.isFunctionRegistryItem,\n (item) =>\n Match.value(item).pipe(\n Match.tag(\"Convex\", ({ handler }) =>\n RegisteredConvexFunction.Definition.Registered({ handler }),\n ),\n Match.tag(\"Confect\", (confect) =>\n RegisteredConvexFunction.prepare(\n databaseSchema,\n confect,\n ResolvedMiddleware.resolve(confect, middlewareRegistryItems),\n ),\n ),\n Match.exhaustive,\n ),\n ) as ForGroup<Group>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAwCA,MAAa,gBACX,UAEA,OAAO,MAAM,SAAS;AAExB,MAAM,uBACJ,gBAEA,OAAO,IAAI,cAAc,UACvB,aAAa,KAAK,IACdA,WAAkC,KAAK,IACvC,oBAAoB,KAAK,CAC/B;AAEF,MAAa,YACX,gBAEA,oBACE,WACF;AAEF,MAAa,iBACX,gBACA,eACoB;CACpB,MAAM,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"ConvexFunctionDefinitions.js","names":["RegisteredConvexFunction.register","GroupRegistry.make","FunctionRegistryItem.isFunctionRegistryItem","RegisteredConvexFunction.prepare","ResolvedMiddleware.resolve"],"sources":["../src/ConvexFunctionDefinitions.ts"],"sourcesContent":["import type * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Record from \"effect/Record\";\nimport type * as GroupSpec from \"@confect/core/GroupSpec\";\nimport type * as FunctionSpec from \"@confect/core/FunctionSpec\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as GroupImpl from \"./GroupImpl.js\";\nimport * as GroupRegistry from \"./GroupRegistry.js\";\nimport * as FunctionRegistryItem from \"./FunctionRegistryItem.js\";\nimport * as RegisteredConvexFunction from \"./RegisteredConvexFunction.js\";\nimport type * as RegisteredFunctions from \"./RegisteredFunctions.js\";\nimport * as ResolvedMiddleware from \"./ResolvedMiddleware.js\";\nimport { mapLeaves } from \"./internal/utils.js\";\n\nexport interface Definitions {\n readonly [name: string]: RegisteredConvexFunction.Definition | Definitions;\n}\n\ntype DefinitionTag<\n Function extends FunctionSpec.AnyWithProps,\n Provenance = Function[\"functionProvenance\"],\n> = Provenance extends { readonly _tag: \"Convex\" }\n ? \"Registered\"\n : `${Capitalize<Function[\"functionVisibility\"]>}${Capitalize<Function[\"runtimeAndFunctionType\"][\"functionType\"]>}`;\n\nexport type ForGroup<Group extends GroupSpec.AnyWithProps> = {\n readonly [Name in FunctionSpec.Name<GroupSpec.Functions<Group>>]: Extract<\n RegisteredConvexFunction.Definition,\n {\n readonly _tag: DefinitionTag<\n FunctionSpec.WithName<GroupSpec.Functions<Group>, Name>\n >;\n }\n >;\n} & {\n readonly [Name in GroupSpec.Name<GroupSpec.Groups<Group>>]: ForGroup<\n GroupSpec.WithName<GroupSpec.Groups<Group>, Name>\n >;\n};\n\nexport const isDefinition = (\n value: RegisteredConvexFunction.Definition | Definitions,\n): value is RegisteredConvexFunction.Definition =>\n typeof value._tag === \"string\";\n\nconst registerDefinitions = (\n definitions: Definitions,\n): RegisteredFunctions.AnyWithProps =>\n Record.map(definitions, (value) =>\n isDefinition(value)\n ? RegisteredConvexFunction.register(value)\n : registerDefinitions(value),\n );\n\nexport const register = <Group extends GroupSpec.AnyWithProps>(\n definitions: Definitions,\n): RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group> =>\n registerDefinitions(\n definitions,\n ) as RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group>;\n\nexport const buildForGroup = <Group extends GroupSpec.AnyWithProps>(\n databaseSchema: DatabaseSchema.AnyWithProps,\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n): ForGroup<Group> => {\n const { functionRegistryItems, middlewareRegistryItems, observability } =\n GroupRegistry.make(groupLayer);\n return mapLeaves<\n FunctionRegistryItem.AnyWithProps,\n RegisteredConvexFunction.Definition\n >(\n functionRegistryItems as {\n [key: string]: FunctionRegistryItem.AnyWithProps;\n },\n FunctionRegistryItem.isFunctionRegistryItem,\n (item) =>\n Match.value(item).pipe(\n Match.tag(\"Convex\", ({ handler }) =>\n RegisteredConvexFunction.Definition.Registered({ handler }),\n ),\n Match.tag(\"Confect\", (confect) =>\n RegisteredConvexFunction.prepare(\n databaseSchema,\n confect,\n ResolvedMiddleware.resolve(confect, middlewareRegistryItems),\n observability,\n ),\n ),\n Match.exhaustive,\n ),\n ) as ForGroup<Group>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAwCA,MAAa,gBACX,UAEA,OAAO,MAAM,SAAS;AAExB,MAAM,uBACJ,gBAEA,OAAO,IAAI,cAAc,UACvB,aAAa,KAAK,IACdA,WAAkC,KAAK,IACvC,oBAAoB,KAAK,CAC/B;AAEF,MAAa,YACX,gBAEA,oBACE,WACF;AAEF,MAAa,iBACX,gBACA,eACoB;CACpB,MAAM,EAAE,uBAAuB,yBAAyB,kBACtDC,KAAmB,UAAU;CAC/B,OAAO,UAIL,uBAGAC,yBACC,SACC,MAAM,MAAM,IAAI,CAAC,CAAC,KAChB,MAAM,IAAI,WAAW,EAAE,cAAA,WACe,WAAW,EAAE,QAAQ,CAAC,CAC5D,GACA,MAAM,IAAI,YAAY,YACpBC,QACE,gBACA,SACAC,QAA2B,SAAS,uBAAuB,GAC3D,aACF,CACF,GACA,MAAM,UACR,CACJ;AACF"}
|
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":"AAAA,OAAO,KAAK,EAIV,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"DatabaseWriter.d.ts","sourceRoot":"","sources":["../src/DatabaseWriter.ts"],"names":[],"mappings":"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"}
|
package/dist/DatabaseWriter.js
CHANGED
|
@@ -1,46 +1,93 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { tables } from "./DatabaseSchema.js";
|
|
3
|
-
import { encode } from "./Document.js";
|
|
4
|
-
import { getById } from "./QueryInitializer.js";
|
|
3
|
+
import { DocumentEncodeError, decode, encode } from "./Document.js";
|
|
4
|
+
import { GetByIdFailure, getById } from "./QueryInitializer.js";
|
|
5
|
+
import { encoder } from "./internal/DocumentPatch.js";
|
|
5
6
|
import * as Context from "effect/Context";
|
|
6
|
-
import * as Layer from "effect/Layer";
|
|
7
7
|
import * as Effect from "effect/Effect";
|
|
8
|
-
import
|
|
8
|
+
import * as Layer from "effect/Layer";
|
|
9
|
+
import * as Predicate from "effect/Predicate";
|
|
9
10
|
import * as Record from "effect/Record";
|
|
11
|
+
import { pipe } from "effect/Function";
|
|
12
|
+
import * as Result from "effect/Result";
|
|
10
13
|
//#region src/DatabaseWriter.ts
|
|
11
14
|
var DatabaseWriter_exports = /* @__PURE__ */ __exportAll({
|
|
12
15
|
DatabaseWriter: () => DatabaseWriter,
|
|
13
16
|
layer: () => layer,
|
|
14
17
|
make: () => make
|
|
15
18
|
});
|
|
16
|
-
const make = (databaseSchema, convexDatabaseWriter) => {
|
|
19
|
+
const make = (databaseSchema, convexDatabaseWriter, hook) => {
|
|
17
20
|
const table = (tableName) => {
|
|
18
21
|
const tableDef = tables(databaseSchema)[tableName];
|
|
19
22
|
const insert = Effect.fn("DatabaseWriter.insert")(function* (document) {
|
|
20
23
|
const encodedDocument = yield* encode(document, tableDef);
|
|
21
24
|
return yield* Effect.promise(() => convexDatabaseWriter.insert(tableName, encodedDocument));
|
|
22
25
|
});
|
|
23
|
-
const
|
|
26
|
+
const replacePatched = (id, patchedValues) => Effect.gen(function* () {
|
|
24
27
|
const originalDecodedDoc = yield* getById(convexDatabaseWriter, tableDef)(id);
|
|
25
28
|
const updatedEncodedDoc = yield* pipe(patchedValues, Record.reduce(originalDecodedDoc, (acc, value, key) => value === void 0 ? Record.remove(acc, key) : Record.set(acc, key, value)), encode(tableDef));
|
|
26
29
|
yield* Effect.promise(() => convexDatabaseWriter.replace(id, updatedEncodedDoc));
|
|
27
30
|
});
|
|
31
|
+
const patch = Effect.fn("DatabaseWriter.patch")(function* (id, patchedValues) {
|
|
32
|
+
const encodePatch = encoder(tableDef);
|
|
33
|
+
if (encodePatch === void 0) return yield* replacePatched(id, patchedValues);
|
|
34
|
+
const storedDoc = yield* pipe(Effect.promise(() => convexDatabaseWriter.get(id)), Effect.andThen((value) => Effect.fromResult(Result.fromNullishOr(value, () => new GetByIdFailure({
|
|
35
|
+
tableName,
|
|
36
|
+
id
|
|
37
|
+
})))));
|
|
38
|
+
const encodedPatch = yield* pipe(encodePatch(patchedValues), Effect.mapError(({ message }) => message), Effect.tap((delta) => pipe({
|
|
39
|
+
...storedDoc,
|
|
40
|
+
...delta
|
|
41
|
+
}, Record.filter(Predicate.isNotUndefined), decode(tableDef), Effect.mapError(({ parseError }) => parseError))), Effect.catch((parseError) => pipe(decode(storedDoc, tableDef), Effect.andThen(Effect.fail(new DocumentEncodeError({
|
|
42
|
+
tableName,
|
|
43
|
+
id,
|
|
44
|
+
parseError
|
|
45
|
+
}))))));
|
|
46
|
+
yield* Effect.promise(() => convexDatabaseWriter.patch(id, encodedPatch));
|
|
47
|
+
});
|
|
28
48
|
const replace = Effect.fn("DatabaseWriter.replace")(function* (id, value) {
|
|
29
49
|
const updatedEncodedDoc = yield* encode(value, tableDef);
|
|
30
50
|
yield* Effect.promise(() => convexDatabaseWriter.replace(id, updatedEncodedDoc));
|
|
31
51
|
});
|
|
32
52
|
const delete_ = (id) => Effect.promise(() => convexDatabaseWriter.delete(id));
|
|
33
|
-
|
|
53
|
+
const accessor = {
|
|
34
54
|
insert,
|
|
35
55
|
patch,
|
|
36
56
|
replace,
|
|
37
57
|
delete: delete_
|
|
38
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
|
+
};
|
|
39
86
|
};
|
|
40
87
|
return { table };
|
|
41
88
|
};
|
|
42
89
|
const DatabaseWriter = () => Context.Service("@confect/server/DatabaseWriter");
|
|
43
|
-
const layer = (databaseSchema, convexDatabaseWriter) => Layer.succeed(DatabaseWriter(), make(databaseSchema, convexDatabaseWriter));
|
|
90
|
+
const layer = (databaseSchema, convexDatabaseWriter, hook) => Layer.succeed(DatabaseWriter(), make(databaseSchema, convexDatabaseWriter, hook));
|
|
44
91
|
//#endregion
|
|
45
92
|
export { DatabaseWriter, DatabaseWriter_exports, layer, make };
|
|
46
93
|
|