@effect-app/infra 0.219.2 → 0.220.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/RequestContext.d.ts +10 -10
- package/dist/api/routing/base.d.ts +5 -5
- package/dist/api/routing/match.d.ts +1 -1
- package/dist/services/Operations.d.ts +1 -1
- package/dist/services/QueueMaker/service.d.ts +2 -2
- package/dist/services/Repository/ext.d.ts +11 -11
- package/dist/services/RepositoryBase.d.ts +9 -9
- package/dist/services/RequestContextContainer.d.ts +1 -1
- package/dist/services/Store/index.d.ts +1 -1
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/service.d.ts +1 -1
- package/dist/services/query/new-kid-interpreter.d.ts +1 -1
- package/package.json +10 -10
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/query.test.ts +1 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 0.220.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 51253a2: update packages
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [51253a2]
|
|
12
|
+
- @effect-app/fluent-extensions@0.148.0
|
|
13
|
+
- @effect-app/infra-adapters@0.142.0
|
|
14
|
+
- effect-app@0.187.0
|
|
15
|
+
- @effect-app/schema@0.208.0
|
|
16
|
+
- @effect-app/core@0.154.0
|
|
17
|
+
|
|
3
18
|
## 0.219.2
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/RequestContext.d.ts
CHANGED
|
@@ -22,8 +22,8 @@ declare const RequestContextParent_base: S.EnhancedClass<RequestContextParent, {
|
|
|
22
22
|
createdAt: S.PropertySignature<":", Date, never, ":", string, true, never>;
|
|
23
23
|
}, {
|
|
24
24
|
readonly _tag: "RequestContext";
|
|
25
|
-
readonly name: string & S.NonEmptyString255Brand;
|
|
26
25
|
readonly id: NonEmptyString255;
|
|
26
|
+
readonly name: string & S.NonEmptyString255Brand;
|
|
27
27
|
readonly locale: "en" | "de";
|
|
28
28
|
readonly createdAt: Date;
|
|
29
29
|
readonly userProfile?: {
|
|
@@ -31,16 +31,16 @@ declare const RequestContextParent_base: S.EnhancedClass<RequestContextParent, {
|
|
|
31
31
|
} | undefined;
|
|
32
32
|
}, {
|
|
33
33
|
readonly _tag: "RequestContext";
|
|
34
|
-
readonly name: string;
|
|
35
34
|
readonly id: string;
|
|
35
|
+
readonly name: string;
|
|
36
36
|
readonly locale: "en" | "de";
|
|
37
37
|
readonly createdAt: string;
|
|
38
38
|
readonly userProfile?: {
|
|
39
39
|
readonly sub: string;
|
|
40
40
|
} | undefined;
|
|
41
41
|
}, never, {
|
|
42
|
-
readonly name: string & S.NonEmptyString255Brand;
|
|
43
42
|
readonly id: NonEmptyString255;
|
|
43
|
+
readonly name: string & S.NonEmptyString255Brand;
|
|
44
44
|
readonly locale: "en" | "de";
|
|
45
45
|
readonly userProfile?: {
|
|
46
46
|
readonly sub: string & import("effect-app/ids").UserProfileIdBrand;
|
|
@@ -62,8 +62,8 @@ declare const RequestContext_base: S.EnhancedClass<RequestContext, {
|
|
|
62
62
|
};
|
|
63
63
|
parent: S.PropertySignature<"?:", RequestContextParent | undefined, never, "?:", {
|
|
64
64
|
readonly _tag: "RequestContext";
|
|
65
|
-
readonly name: string;
|
|
66
65
|
readonly id: string;
|
|
66
|
+
readonly name: string;
|
|
67
67
|
readonly locale: "en" | "de";
|
|
68
68
|
readonly createdAt: string;
|
|
69
69
|
readonly userProfile?: {
|
|
@@ -72,19 +72,19 @@ declare const RequestContext_base: S.EnhancedClass<RequestContext, {
|
|
|
72
72
|
} | undefined, false, never>;
|
|
73
73
|
namespace: S.PropertySignature<"?:", (string & S.NonEmptyString255Brand) | undefined, never, "?:", string | undefined, false, never>;
|
|
74
74
|
name: S.WithDefaults<S.Schema<string & S.NonEmptyString255Brand, string, never>> & S.Schema<string & S.NonEmptyString255Brand, string, never>;
|
|
75
|
-
locale: S.Schema<"en" | "de", "en" | "de", never> & {
|
|
76
|
-
literals: ["en", "de"];
|
|
77
|
-
};
|
|
78
75
|
userProfile: S.PropertySignature<"?:", {
|
|
79
76
|
readonly sub: string & import("effect-app/ids").UserProfileIdBrand;
|
|
80
77
|
} | undefined, never, "?:", {
|
|
81
78
|
readonly sub: string;
|
|
82
79
|
} | undefined, false, never>;
|
|
80
|
+
locale: S.Schema<"en" | "de", "en" | "de", never> & {
|
|
81
|
+
literals: ["en", "de"];
|
|
82
|
+
};
|
|
83
83
|
createdAt: S.PropertySignature<":", Date, never, ":", string, true, never>;
|
|
84
84
|
}, {
|
|
85
85
|
readonly _tag: "RequestContext";
|
|
86
|
-
readonly name: string & S.NonEmptyString255Brand;
|
|
87
86
|
readonly id: NonEmptyString255;
|
|
87
|
+
readonly name: string & S.NonEmptyString255Brand;
|
|
88
88
|
readonly locale: "en" | "de";
|
|
89
89
|
readonly createdAt: Date;
|
|
90
90
|
readonly rootId: NonEmptyString255;
|
|
@@ -95,8 +95,8 @@ declare const RequestContext_base: S.EnhancedClass<RequestContext, {
|
|
|
95
95
|
readonly namespace?: (string & S.NonEmptyString255Brand) | undefined;
|
|
96
96
|
}, {
|
|
97
97
|
readonly _tag: "RequestContext";
|
|
98
|
-
readonly name: string;
|
|
99
98
|
readonly id: string;
|
|
99
|
+
readonly name: string;
|
|
100
100
|
readonly locale: "en" | "de";
|
|
101
101
|
readonly createdAt: string;
|
|
102
102
|
readonly rootId: string;
|
|
@@ -105,8 +105,8 @@ declare const RequestContext_base: S.EnhancedClass<RequestContext, {
|
|
|
105
105
|
} | undefined;
|
|
106
106
|
readonly parent?: {
|
|
107
107
|
readonly _tag: "RequestContext";
|
|
108
|
-
readonly name: string;
|
|
109
108
|
readonly id: string;
|
|
109
|
+
readonly name: string;
|
|
110
110
|
readonly locale: "en" | "de";
|
|
111
111
|
readonly createdAt: string;
|
|
112
112
|
readonly userProfile?: {
|
|
@@ -37,11 +37,11 @@ export declare function parseRequestParams<PathA extends Struct.Fields, CookieA
|
|
|
37
37
|
params: unknown;
|
|
38
38
|
query: unknown;
|
|
39
39
|
}) => Effect.Effect<{
|
|
40
|
-
body: Option<Simplify<Struct.Type<BodyA
|
|
41
|
-
cookie: Option<Simplify<Struct.Type<CookieA
|
|
42
|
-
headers: Option<Simplify<Struct.Type<HeaderA
|
|
43
|
-
path: Option<Simplify<Struct.Type<PathA
|
|
44
|
-
query: Option<Simplify<Struct.Type<QueryA
|
|
40
|
+
body: Option<Simplify<Struct.Type<BodyA>>>;
|
|
41
|
+
cookie: Option<Simplify<Struct.Type<CookieA>>>;
|
|
42
|
+
headers: Option<Simplify<Struct.Type<HeaderA>>>;
|
|
43
|
+
path: Option<Simplify<Struct.Type<PathA>>>;
|
|
44
|
+
query: Option<Simplify<Struct.Type<QueryA>>>;
|
|
45
45
|
}, ValidationError, never>;
|
|
46
46
|
export declare function makeRequestParsers<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, Errors, PPath extends `/${string}`, CTX, Context, Config>(Request: RequestHandler<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, Errors, PPath, CTX, Context, Config>["Request"]): RequestParsers<PathA, CookieA, QueryA, BodyA, HeaderA>;
|
|
47
47
|
type Decode<A> = (u: unknown) => Effect<A, unknown>;
|
|
@@ -8,5 +8,5 @@ import type { HttpServerRequest, HttpServerResponse } from "effect-app/http";
|
|
|
8
8
|
import type { RequestHandler } from "./base.js";
|
|
9
9
|
import type { Middleware } from "./makeRequestHandler.js";
|
|
10
10
|
export declare const RouteDescriptors: Context.Tag<Ref<RouteDescriptorAny[]>, Ref<RouteDescriptorAny[]>>;
|
|
11
|
-
export declare function match<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, ResE, MiddlewareE, PPath extends `/${string}`, R2, PR, RErr, CTX, Context, Config>(requestHandler: RequestHandler<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, ResE, PPath, CTX, Context, Config>, errorHandler: <R>(req: HttpServerRequest.ServerRequest, res: HttpServerResponse.ServerResponse, r2: Effect<HttpServerResponse.ServerResponse, ValidationError | MiddlewareE | ResE, R>) => Effect<HttpServerResponse.ServerResponse, never, Exclude<RErr | R, HttpServerRequest.ServerRequest | HttpRouter.RouteContext | Scope>>, middleware?: Middleware<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, ResE, MiddlewareE, PPath, R2, PR, CTX, Context, Config>): Effect.Effect<HttpRouter.Route<import("src/services/RequestContextContainer.js").RequestContextContainer | import("src/services/Store/ContextMapContainer.js").ContextMapContainer | Exclude<R2,
|
|
11
|
+
export declare function match<R, M, PathA extends Struct.Fields, CookieA extends Struct.Fields, QueryA extends Struct.Fields, BodyA extends Struct.Fields, HeaderA extends Struct.Fields, ReqA extends PathA & QueryA & BodyA, ResA extends Struct.Fields, ResE, MiddlewareE, PPath extends `/${string}`, R2, PR, RErr, CTX, Context, Config>(requestHandler: RequestHandler<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, ResE, PPath, CTX, Context, Config>, errorHandler: <R>(req: HttpServerRequest.ServerRequest, res: HttpServerResponse.ServerResponse, r2: Effect<HttpServerResponse.ServerResponse, ValidationError | MiddlewareE | ResE, R>) => Effect<HttpServerResponse.ServerResponse, never, Exclude<RErr | R, HttpServerRequest.ServerRequest | HttpRouter.RouteContext | Scope>>, middleware?: Middleware<R, M, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, ResE, MiddlewareE, PPath, R2, PR, CTX, Context, Config>): Effect.Effect<HttpRouter.Route<import("src/services/RequestContextContainer.js").RequestContextContainer | import("src/services/Store/ContextMapContainer.js").ContextMapContainer | Exclude<R2, Scope.Scope | HttpServerRequest.ServerRequest | HttpRouter.RouteContext> | Exclude<RErr, Scope.Scope | HttpServerRequest.ServerRequest | HttpRouter.RouteContext> | Exclude<Exclude<Exclude<R, import("effect-app/utils").EnforceNonEmptyRecord<M>>, PR>, Scope.Scope | HttpServerRequest.ServerRequest | HttpRouter.RouteContext>, import("@effect/platform/Http/ServerError").RequestError>, never, never>;
|
|
12
12
|
//# sourceMappingURL=match.d.ts.map
|
|
@@ -40,7 +40,7 @@ declare const Operations_base: (abstract new (service: {
|
|
|
40
40
|
register: Effect.Effect<StringId, never, Scope.Scope>;
|
|
41
41
|
find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
42
42
|
update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
43
|
-
}) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5,
|
|
43
|
+
}) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, R_5 | Operations> : Effect<X, never, Operations>;
|
|
44
44
|
};
|
|
45
45
|
export declare class Operations extends Operations_base {
|
|
46
46
|
static readonly Live: Layer.Layer<Operations, never, never>;
|
|
@@ -16,12 +16,12 @@ export declare const QueueMaker: QueueMakerOps;
|
|
|
16
16
|
export declare const QueueMeta: import("@effect/schema/Schema").struct<{
|
|
17
17
|
requestContext: typeof RequestContext;
|
|
18
18
|
span: S.PropertySignature<"?:", {
|
|
19
|
-
readonly traceId: string;
|
|
20
19
|
readonly spanId: string;
|
|
20
|
+
readonly traceId: string;
|
|
21
21
|
readonly sampled?: boolean | undefined;
|
|
22
22
|
} | undefined, never, "?:", {
|
|
23
|
-
readonly traceId: string;
|
|
24
23
|
readonly spanId: string;
|
|
24
|
+
readonly traceId: string;
|
|
25
25
|
readonly sampled?: boolean | undefined;
|
|
26
26
|
} | undefined, false, never>;
|
|
27
27
|
}>;
|
|
@@ -21,7 +21,7 @@ export declare function log<T extends {
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function byIdAndSaveWithPure<T extends {
|
|
23
23
|
id: unknown;
|
|
24
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, id: T["id"]): <R, A, E, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) => Effect.Effect<A, import("effect-app/client/errors").
|
|
24
|
+
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, id: T["id"]): <R, A, E, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) => Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | NotFoundError<ItemType> | E, Exclude<R, {
|
|
25
25
|
env: import("effect-app/Pure").PureEnv<Evt, T, S2>;
|
|
26
26
|
}>>;
|
|
27
27
|
/**
|
|
@@ -32,7 +32,7 @@ export declare function handleByIdAndSaveWithPure<T extends {
|
|
|
32
32
|
id: unknown;
|
|
33
33
|
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>): <Req extends {
|
|
34
34
|
id: T["id"];
|
|
35
|
-
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A, import("effect-app/client/errors").
|
|
35
|
+
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E | NotFoundError<ItemType>, Exclude<R, {
|
|
36
36
|
env: import("effect-app/Pure").PureEnv<Evt, T, S2>;
|
|
37
37
|
}>>;
|
|
38
38
|
/**
|
|
@@ -40,7 +40,7 @@ export declare function handleByIdAndSaveWithPure<T extends {
|
|
|
40
40
|
*/
|
|
41
41
|
export declare function saveManyWithPure_<R, T extends {
|
|
42
42
|
id: unknown;
|
|
43
|
-
}, PM extends PersistenceModelType<string>, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>): Effect.Effect<A, import("effect-app/client/errors").
|
|
43
|
+
}, PM extends PersistenceModelType<string>, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>): Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
|
|
44
44
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
45
45
|
}>>;
|
|
46
46
|
/**
|
|
@@ -48,18 +48,18 @@ export declare function saveManyWithPure_<R, T extends {
|
|
|
48
48
|
*/
|
|
49
49
|
export declare function saveWithPure_<R, T extends {
|
|
50
50
|
id: unknown;
|
|
51
|
-
}, PM extends PersistenceModelType<string>, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A, import("effect-app/client/errors").
|
|
51
|
+
}, PM extends PersistenceModelType<string>, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
|
|
52
52
|
env: import("effect-app/Pure").PureEnv<Evt, S1, S2>;
|
|
53
53
|
}>>;
|
|
54
54
|
export declare function saveAllWithEffectInt<T extends {
|
|
55
55
|
id: unknown;
|
|
56
|
-
}, PM extends PersistenceModelType<string>, P extends T, Evt, ItemType extends string, R, E, A>(self: RepositoryBaseC<T, PM, Evt, ItemType>, gen: Effect<readonly [Iterable<P>, Iterable<Evt>, A], E, R>): Effect.Effect<A, import("effect-app/client/errors").
|
|
56
|
+
}, PM extends PersistenceModelType<string>, P extends T, Evt, ItemType extends string, R, E, A>(self: RepositoryBaseC<T, PM, Evt, ItemType>, gen: Effect<readonly [Iterable<P>, Iterable<Evt>, A], E, R>): Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, R>;
|
|
57
57
|
/**
|
|
58
58
|
* @tsplus fluent Repository saveManyWithPureBatched
|
|
59
59
|
*/
|
|
60
60
|
export declare function saveManyWithPureBatched<T extends {
|
|
61
61
|
id: unknown;
|
|
62
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>) => (items: Iterable<S1>) => Effect.Effect<A[], import("effect-app/client/errors").
|
|
62
|
+
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>) => (items: Iterable<S1>) => Effect.Effect<A[], import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
|
|
63
63
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
64
64
|
}>>;
|
|
65
65
|
/**
|
|
@@ -67,7 +67,7 @@ export declare function saveManyWithPureBatched<T extends {
|
|
|
67
67
|
*/
|
|
68
68
|
export declare function saveManyWithPureBatched_<R, T extends {
|
|
69
69
|
id: unknown;
|
|
70
|
-
}, PM extends PersistenceModelType<string>, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>, batchSize?: number): Effect.Effect<A[], import("effect-app/client/errors").
|
|
70
|
+
}, PM extends PersistenceModelType<string>, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>, batchSize?: number): Effect.Effect<A[], import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
|
|
71
71
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
72
72
|
}>>;
|
|
73
73
|
/**
|
|
@@ -75,25 +75,25 @@ export declare function saveManyWithPureBatched_<R, T extends {
|
|
|
75
75
|
*/
|
|
76
76
|
export declare function save<T extends {
|
|
77
77
|
id: unknown;
|
|
78
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>): (items_0: T, ...items_1: T[]) => Effect<void, import("effect-app/client/errors").
|
|
78
|
+
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>): (items_0: T, ...items_1: T[]) => Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError>;
|
|
79
79
|
/**
|
|
80
80
|
* @tsplus getter Repository saveWithEvents
|
|
81
81
|
*/
|
|
82
82
|
export declare function saveWithEvents<T extends {
|
|
83
83
|
id: unknown;
|
|
84
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => Effect<void, import("effect-app/client/errors").
|
|
84
|
+
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError>;
|
|
85
85
|
/**
|
|
86
86
|
* @tsplus fluent Repository updateWithEffect
|
|
87
87
|
*/
|
|
88
88
|
export declare function itemUpdateWithEffect<R, E, T extends {
|
|
89
89
|
id: string;
|
|
90
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(repo: RepositoryBaseC<T, PM, Evt, ItemType>, id: T["id"], mod: (item: T) => Effect<T, E, R>): Effect.Effect<void, import("effect-app/client/errors").
|
|
90
|
+
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(repo: RepositoryBaseC<T, PM, Evt, ItemType>, id: T["id"], mod: (item: T) => Effect<T, E, R>): Effect.Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E | NotFoundError<ItemType>, R>;
|
|
91
91
|
/**
|
|
92
92
|
* @tsplus fluent Repository update
|
|
93
93
|
*/
|
|
94
94
|
export declare function itemUpdate<T extends {
|
|
95
95
|
id: string;
|
|
96
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(repo: RepositoryBaseC<T, PM, Evt, ItemType>, id: T["id"], mod: (item: T) => T): Effect.Effect<void, import("effect-app/client/errors").
|
|
96
|
+
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(repo: RepositoryBaseC<T, PM, Evt, ItemType>, id: T["id"], mod: (item: T) => T): Effect.Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | NotFoundError<ItemType>, never>;
|
|
97
97
|
/**
|
|
98
98
|
* only use this as a shortcut if you don't have the item already
|
|
99
99
|
* @tsplus fluent Repository removeById
|
|
@@ -68,15 +68,15 @@ export declare class RepositoryBaseC2<T extends {
|
|
|
68
68
|
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string> extends RepositoryBaseC1<T, PM, Evt, ItemType> {
|
|
69
69
|
protected readonly impl: Repository<T, PM, Evt, ItemType>;
|
|
70
70
|
constructor(itemType: ItemType, impl: Repository<T, PM, Evt, ItemType>);
|
|
71
|
-
saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<void,
|
|
71
|
+
saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
|
|
72
72
|
removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<void>;
|
|
73
73
|
find: (id: T["id"]) => Effect<Option<T>>;
|
|
74
74
|
all: Effect<T[]>;
|
|
75
75
|
changeFeed: PubSub.PubSub<[T[], "save" | "remove"]>;
|
|
76
76
|
mapped: Mapped<PM, Omit<PM, "_etag">>;
|
|
77
77
|
query: {
|
|
78
|
-
<A, R, From extends FieldValues, TType extends "
|
|
79
|
-
<R_1 = never, TType_1 extends "
|
|
78
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many">(q: (initial: Query<Omit<PM, "_etag">>) => QueryProjection<Omit<PM, "_etag"> extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? number & S.NonNegativeIntBrand : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), R>;
|
|
79
|
+
<R_1 = never, TType_1 extends "one" | "many" = "many">(q: (initial: Query<Omit<PM, "_etag">>) => QAll<Omit<PM, "_etag">, T, R_1, TType_1>): Effect.Effect<TType_1 extends "many" ? readonly T[] : T, TType_1 extends "many" ? never : NotFoundError<ItemType>, R_1>;
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
export declare class RepositoryBaseC3<T extends {
|
|
@@ -85,8 +85,8 @@ export declare class RepositoryBaseC3<T extends {
|
|
|
85
85
|
get(id: T["id"]): Effect.Effect<T, NotFoundError<ItemType>, never>;
|
|
86
86
|
readonly log: (evt: Evt) => import("effect-app/Pure").PureLogT<any>;
|
|
87
87
|
removeById(id: T["id"]): Effect.Effect<void, NotFoundError<ItemType>, never>;
|
|
88
|
-
readonly save: (items_0: T, ...items_1: T[]) => Effect<void,
|
|
89
|
-
readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => Effect<void,
|
|
88
|
+
readonly save: (items_0: T, ...items_1: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
|
|
89
|
+
readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
|
|
90
90
|
readonly queryAndSavePure: {
|
|
91
91
|
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<PM, "_etag">>) => QueryEnd<Omit<PM, "_etag">, "one">, pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E2, Exclude<R2, {
|
|
92
92
|
env: PureEnv<Evt, T, T2>;
|
|
@@ -103,7 +103,7 @@ export declare class RepositoryBaseC3<T extends {
|
|
|
103
103
|
*/
|
|
104
104
|
readonly handleByIdAndSaveWithPure: <Req extends {
|
|
105
105
|
id: T["id"];
|
|
106
|
-
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A,
|
|
106
|
+
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A, OptimisticConcurrencyException | InvalidStateError | NotFoundError<ItemType> | E, Exclude<R, {
|
|
107
107
|
env: PureEnv<Evt, T, S2>;
|
|
108
108
|
}>>;
|
|
109
109
|
saveManyWithPure: {
|
|
@@ -119,7 +119,7 @@ export declare class RepositoryBaseC3<T extends {
|
|
|
119
119
|
env: PureEnv<Evt, T, S2>;
|
|
120
120
|
}>>;
|
|
121
121
|
};
|
|
122
|
-
saveWithPure<R, A, E, S1 extends T, S2 extends T>(item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A,
|
|
122
|
+
saveWithPure<R, A, E, S1 extends T, S2 extends T>(item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A, OptimisticConcurrencyException | InvalidStateError | E, Exclude<R, {
|
|
123
123
|
env: PureEnv<Evt, S1, S2>;
|
|
124
124
|
}>>;
|
|
125
125
|
}
|
|
@@ -146,7 +146,7 @@ export declare function makeRepo<PM extends {
|
|
|
146
146
|
config?: Omit<StoreConfig<PM>, "partitionValue"> & {
|
|
147
147
|
partitionValue?: (a: PM) => string;
|
|
148
148
|
};
|
|
149
|
-
}) => Effect.Effect<Repository<T, PM, Evt, ItemType>, E,
|
|
149
|
+
}) => Effect.Effect<Repository<T, PM, Evt, ItemType>, E, StoreMaker | ContextMapContainer | R | RInitial | R2>;
|
|
150
150
|
Q: Query<Omit<PM, "_etag">>;
|
|
151
151
|
};
|
|
152
152
|
export declare function makeStore<PM extends {
|
|
@@ -158,7 +158,7 @@ export declare function makeStore<PM extends {
|
|
|
158
158
|
id: unknown;
|
|
159
159
|
}>(name: ItemType, schema: S.Schema<T, E, R>, mapTo: (e: E, etag: string | undefined) => PM) => <RInitial = never, EInitial = never>(makeInitial?: Effect<readonly T[], EInitial, RInitial>, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
|
|
160
160
|
partitionValue?: (a: PM) => string;
|
|
161
|
-
}) | undefined) => Effect.Effect<import("src/services/Store/service.js").Store<PM, string>, EInitial,
|
|
161
|
+
}) | undefined) => Effect.Effect<import("src/services/Store/service.js").Store<PM, string>, EInitial, StoreMaker | R | RInitial>;
|
|
162
162
|
export interface Repos<T extends {
|
|
163
163
|
id: unknown;
|
|
164
164
|
}, PM extends {
|
|
@@ -26,7 +26,7 @@ declare const RequestContextContainer_base: (abstract new (service: {
|
|
|
26
26
|
requestContext: Effect<RequestContext>;
|
|
27
27
|
update: (f: (rc: RequestContext) => RequestContext) => Effect<RequestContext>;
|
|
28
28
|
start: (f: RequestContext) => Effect<void>;
|
|
29
|
-
}) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4,
|
|
29
|
+
}) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, R_4 | RequestContextContainer> : Effect<X, never, RequestContextContainer>;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* @tsplus type RequestContextContainer
|
|
@@ -2,6 +2,6 @@ import type { StorageConfig } from "./service.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* @tsplus static StoreMaker.Ops Layer
|
|
4
4
|
*/
|
|
5
|
-
export declare function StoreMakerLayer(cfg: StorageConfig): import("effect
|
|
5
|
+
export declare function StoreMakerLayer(cfg: StorageConfig): import("effect-app").Layer<import("./service.js").StoreMaker, never, never>;
|
|
6
6
|
export * from "./service.js";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/Store/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/Store/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,+EAkBjD;AAED,cAAc,cAAc,CAAA"}
|
|
@@ -72,7 +72,7 @@ declare const StoreMaker_base: (abstract new (service: {
|
|
|
72
72
|
} & import("effect/Context").Tag<StoreMaker, StoreMaker> & {} & {
|
|
73
73
|
use: <X>(body: (_: {
|
|
74
74
|
make: <PM extends PersistenceModelType<Id>, Id extends string, R = never, E = never>(name: string, seed?: Effect<Iterable<PM>, E, R> | undefined, config?: StoreConfig<PM> | undefined) => Effect<Store<PM, Id>, E, R>;
|
|
75
|
-
}) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4,
|
|
75
|
+
}) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, StoreMaker | R_4> : Effect<X, never, StoreMaker>;
|
|
76
76
|
};
|
|
77
77
|
/**
|
|
78
78
|
* @tsplus type StoreMaker
|
|
@@ -14,7 +14,7 @@ export declare const toFilter: <TFieldValues extends FieldValues, A, R>(q: QAll<
|
|
|
14
14
|
key: import("../../filter/types/path/eager.js").Path<TFieldValues>;
|
|
15
15
|
direction: "ASC" | "DESC";
|
|
16
16
|
}[]];
|
|
17
|
-
ttype: "
|
|
17
|
+
ttype: "one" | "many" | "count";
|
|
18
18
|
mode: "project" | "collect" | "transform";
|
|
19
19
|
filter: QueryBuilder<any>;
|
|
20
20
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.220.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -18,17 +18,17 @@
|
|
|
18
18
|
"proper-lockfile": "^4.1.2",
|
|
19
19
|
"pure-rand": "6.0.4",
|
|
20
20
|
"redlock": "^4.2.0",
|
|
21
|
-
"@effect-app/
|
|
22
|
-
"@effect-app/
|
|
23
|
-
"
|
|
24
|
-
"effect-app": "0.
|
|
25
|
-
"@effect-app/
|
|
21
|
+
"@effect-app/core": "0.154.0",
|
|
22
|
+
"@effect-app/fluent-extensions": "0.148.0",
|
|
23
|
+
"effect-app": "0.187.0",
|
|
24
|
+
"@effect-app/infra-adapters": "0.142.0",
|
|
25
|
+
"@effect-app/schema": "0.208.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/cli": "^7.23.9",
|
|
29
29
|
"@sentry/node": "^7.106.1",
|
|
30
30
|
"@types/express": "^4.17.21",
|
|
31
|
-
"@types/node": "~20.11.
|
|
31
|
+
"@types/node": "~20.11.27",
|
|
32
32
|
"@types/proper-lockfile": "^4.1.4",
|
|
33
33
|
"@types/redis": "^2.8.32",
|
|
34
34
|
"@types/redlock": "^4.0.7",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"express": "^4.18.3",
|
|
46
|
-
"@effect/platform": "^0.48.
|
|
47
|
-
"@effect/schema": "^0.64.
|
|
48
|
-
"effect": "^2.4.
|
|
46
|
+
"@effect/platform": "^0.48.1",
|
|
47
|
+
"@effect/schema": "^0.64.1",
|
|
48
|
+
"effect": "^2.4.5"
|
|
49
49
|
},
|
|
50
50
|
"typesVersions": {
|
|
51
51
|
"*": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAgB,CAAC,EAAE,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcjE,qBAAa,CAAE,SAAQ,
|
|
1
|
+
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAgB,CAAC,EAAE,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcjE,qBAAa,CAAE,SAAQ,MAKrB;CAAG;AACL,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;IACzB,KAAY,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CAC9C;;;;;;;;;;;;;;;;;;;;;;;;;AAGD,qBAAa,WAAY,SAAQ,gBAA6D;CAAG"}
|
package/test/query.test.ts
CHANGED
|
@@ -16,9 +16,7 @@ export class s extends S.Class<s>()({
|
|
|
16
16
|
id: S.StringId.withDefault,
|
|
17
17
|
displayName: S.NonEmptyString255,
|
|
18
18
|
n: S.Date.withDefault,
|
|
19
|
-
union: S.
|
|
20
|
-
default: () => ({ _tag: "string", value: "hi" }) as S.Schema.Type<typeof someUnion>
|
|
21
|
-
})
|
|
19
|
+
union: someUnion.pipe(S.withDefaultConstructor(() => ({ _tag: "string" as const, value: "hi" })))
|
|
22
20
|
}) {}
|
|
23
21
|
export declare namespace s {
|
|
24
22
|
export type From = S.Schema.Encoded<typeof s>
|