@effect-app/infra 0.219.1 → 0.219.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 0.219.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 0a0b8e9: add ServiceUnavailableError
8
+ - Updated dependencies [0a0b8e9]
9
+ - effect-app@0.186.2
10
+ - @effect-app/infra-adapters@0.141.2
11
+
3
12
  ## 0.219.1
4
13
 
5
14
  ### Patch Changes
@@ -36,6 +36,7 @@ function defaultErrorHandler(req, res, r2) {
36
36
  "NotLoggedInError": sendError(401, _errors.NotLoggedInError),
37
37
  "UnauthorizedError": sendError(403, _errors.UnauthorizedError),
38
38
  "InvalidStateError": sendError(422, _errors.InvalidStateError),
39
+ "ServiceUnavailableError": sendError(503, _errors.ServiceUnavailableError),
39
40
  // 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
40
41
  "OptimisticConcurrencyException": sendError(412, _errors.OptimisticConcurrencyException)
41
42
  }), _effectApp.Effect
@@ -1 +1 @@
1
- {"version":3,"file":"defaultErrorHandler.cjs","names":["_errorReporter","require","_ServerResponse","_effectApp","_errors","_http","JWTError","Data","TaggedClass","exports","logRequestError","logError","defaultBasicErrorHandler","_req","res","r2","sendError","code","body","Effect","sync","setBody","HttpBody","unsafeJson","pipe","setStatus","tapErrorCause","cause","Cause","isFailure","unit","catchTag","err","errors","catchAll","map","flatMap","die","optimisticConcurrencySchedule","Schedule","once","recurWhile","a","_tag","defaultErrorHandler","req","r3","method","retry","schema","S","encode","orDie","andThen","catchTags","succeed","HttpServerResponse","message","error","status","headers","HttpHeaders","fromInput","ValidationError","NotFoundError","NotLoggedInError","UnauthorizedError","InvalidStateError","OptimisticConcurrencyException"],"sources":["../../../src/api/routing/defaultErrorHandler.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"defaultErrorHandler.cjs","names":["_errorReporter","require","_ServerResponse","_effectApp","_errors","_http","JWTError","Data","TaggedClass","exports","logRequestError","logError","defaultBasicErrorHandler","_req","res","r2","sendError","code","body","Effect","sync","setBody","HttpBody","unsafeJson","pipe","setStatus","tapErrorCause","cause","Cause","isFailure","unit","catchTag","err","errors","catchAll","map","flatMap","die","optimisticConcurrencySchedule","Schedule","once","recurWhile","a","_tag","defaultErrorHandler","req","r3","method","retry","schema","S","encode","orDie","andThen","catchTags","succeed","HttpServerResponse","message","error","status","headers","HttpHeaders","fromInput","ValidationError","NotFoundError","NotLoggedInError","UnauthorizedError","InvalidStateError","ServiceUnavailableError","OptimisticConcurrencyException"],"sources":["../../../src/api/routing/defaultErrorHandler.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -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 id: NonEmptyString255;
26
25
  readonly name: string & S.NonEmptyString255Brand;
26
+ readonly id: NonEmptyString255;
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 id: string;
35
34
  readonly name: string;
35
+ readonly id: 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 id: NonEmptyString255;
43
42
  readonly name: string & S.NonEmptyString255Brand;
43
+ readonly id: NonEmptyString255;
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 id: string;
66
65
  readonly name: string;
66
+ readonly id: 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
+ };
75
78
  userProfile: S.PropertySignature<"?:", {
76
79
  readonly sub: string & import("effect-app/ids").UserProfileIdBrand;
77
80
  } | undefined, never, "?:", {
78
81
  readonly sub: string;
79
82
  } | 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 id: NonEmptyString255;
87
86
  readonly name: string & S.NonEmptyString255Brand;
87
+ readonly id: NonEmptyString255;
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 id: string;
99
98
  readonly name: string;
99
+ readonly id: 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 id: string;
109
108
  readonly name: string;
109
+ readonly id: string;
110
110
  readonly locale: "en" | "de";
111
111
  readonly createdAt: string;
112
112
  readonly userProfile?: {
@@ -1 +1 @@
1
- {"version":3,"file":"defaultErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/api/routing/defaultErrorHandler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,MAAM,EAAe,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAML,eAAe,EAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAyB,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACnG,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,IAAI,oBAAoB,EAC1C,MAAM,2BAA2B,CAAA;;;;AAElC,qBAAa,QAAS,SAAQ,cAA6B;IACzD,KAAK,EACD,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,CAAA;CACzB,CAAC;CAAG;AAIL,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,iBAAiB,CAAC,aAAa,EACrC,GAAG,EAAE,kBAAkB,CAAC,cAAc,EACtC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,8DAoBlE;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,iBAAiB,CAAC,aAAa,EACpC,GAAG,EAAE,kBAAkB,CAAC,cAAc,EACtC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,eAAe,GAAG,QAAQ,EAAE,CAAC,CAAC,8DA+C7E"}
1
+ {"version":3,"file":"defaultErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/api/routing/defaultErrorHandler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,MAAM,EAAe,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAOL,eAAe,EAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAyB,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACnG,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,IAAI,oBAAoB,EAC1C,MAAM,2BAA2B,CAAA;;;;AAElC,qBAAa,QAAS,SAAQ,cAA6B;IACzD,KAAK,EACD,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,CAAA;CACzB,CAAC;CAAG;AAIL,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,iBAAiB,CAAC,aAAa,EACrC,GAAG,EAAE,kBAAkB,CAAC,cAAc,EACtC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,8DAoBlE;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,iBAAiB,CAAC,aAAa,EACpC,GAAG,EAAE,kBAAkB,CAAC,cAAc,EACtC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,eAAe,GAAG,QAAQ,EAAE,CAAC,CAAC,8DAgD7E"}
@@ -1,7 +1,7 @@
1
1
  import { logError } from "@effect-app/infra/errorReporter";
2
2
  import { setBody, setStatus } from "@effect/platform/Http/ServerResponse";
3
3
  import { Cause, Data, Effect, S, Schedule } from "effect-app";
4
- import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, UnauthorizedError, ValidationError } from "effect-app/client/errors";
4
+ import { InvalidStateError, NotFoundError, NotLoggedInError, OptimisticConcurrencyException, ServiceUnavailableError, UnauthorizedError, ValidationError } from "effect-app/client/errors";
5
5
  import { HttpBody, HttpHeaders, HttpServerResponse } from "effect-app/http";
6
6
  export class JWTError extends Data.TaggedClass("JWTError") {
7
7
  }
@@ -37,6 +37,7 @@ export function defaultErrorHandler(req, res, r2) {
37
37
  "NotLoggedInError": sendError(401, NotLoggedInError),
38
38
  "UnauthorizedError": sendError(403, UnauthorizedError),
39
39
  "InvalidStateError": sendError(422, InvalidStateError),
40
+ "ServiceUnavailableError": sendError(503, ServiceUnavailableError),
40
41
  // 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
41
42
  "OptimisticConcurrencyException": sendError(412, OptimisticConcurrencyException)
42
43
  }), Effect
@@ -45,4 +46,4 @@ export function defaultErrorHandler(req, res, r2) {
45
46
  .logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err)
46
47
  .pipe(Effect.map(() => err), Effect.flatMap(Effect.die))));
47
48
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9kZWZhdWx0RXJyb3JIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDaEIsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBMEIsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQVFuRyxNQUFNLE9BQU8sUUFBUyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQU12RDtDQUFHO0FBRUwsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRTNDLE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsSUFBcUMsRUFDckMsR0FBc0MsRUFDdEMsRUFBaUU7SUFFakUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FDcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNsRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENB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
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9kZWZhdWx0RXJyb3JIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixlQUFlLEVBQ2hCLE1BQU0sMEJBQTBCLENBQUE7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQTBCLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFRbkcsTUFBTSxPQUFPLFFBQVMsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FNdkQ7Q0FBRztBQUVMLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUUzQyxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLElBQXFDLEVBQ3JDLEdBQXNDLEVBQ3RDLEVBQWlFO0lBRWpFLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEYsT0FBTyxFQUFF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
@@ -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, 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>;
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, HttpServerRequest.ServerRequest | Scope.Scope | HttpRouter.RouteContext> | Exclude<RErr, HttpServerRequest.ServerRequest | Scope.Scope | HttpRouter.RouteContext> | Exclude<Exclude<Exclude<R, import("effect-app/utils").EnforceNonEmptyRecord<M>>, PR>, HttpServerRequest.ServerRequest | Scope.Scope | 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, R_5 | Operations> : Effect<X, never, Operations>;
43
+ }) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, Operations | R_5> : 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 spanId: string;
20
19
  readonly traceId: string;
20
+ readonly spanId: string;
21
21
  readonly sampled?: boolean | undefined;
22
22
  } | undefined, never, "?:", {
23
- readonly spanId: string;
24
23
  readonly traceId: string;
24
+ readonly spanId: 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | NotFoundError<ItemType> | E, Exclude<R, {
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | E | NotFoundError<ItemType>, 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E | NotFoundError<ItemType>, Exclude<R, {
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, R>;
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError>;
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException>;
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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError>;
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException>;
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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E | NotFoundError<ItemType>, R>;
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | 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").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | NotFoundError<ItemType>, never>;
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").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | 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, OptimisticConcurrencyException | InvalidStateError>;
71
+ saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<void, InvalidStateError | OptimisticConcurrencyException>;
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 "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>;
78
+ <A, R, From extends FieldValues, TType extends "many" | "one" | "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 "many" | "one" = "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, OptimisticConcurrencyException | InvalidStateError>;
89
- readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
88
+ readonly save: (items_0: T, ...items_1: T[]) => Effect<void, InvalidStateError | OptimisticConcurrencyException>;
89
+ readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => Effect<void, InvalidStateError | OptimisticConcurrencyException>;
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, OptimisticConcurrencyException | InvalidStateError | NotFoundError<ItemType> | E, Exclude<R, {
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, InvalidStateError | OptimisticConcurrencyException | 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, OptimisticConcurrencyException | InvalidStateError | E, Exclude<R, {
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, InvalidStateError | OptimisticConcurrencyException | 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, StoreMaker | ContextMapContainer | R | RInitial | R2>;
149
+ }) => Effect.Effect<Repository<T, PM, Evt, ItemType>, E, ContextMapContainer | R | StoreMaker | 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, StoreMaker | R | RInitial>;
161
+ }) | undefined) => Effect.Effect<import("src/services/Store/service.js").Store<PM, string>, EInitial, R | StoreMaker | 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, R_4 | RequestContextContainer> : Effect<X, never, RequestContextContainer>;
29
+ }) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, RequestContextContainer | R_4> : 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-app").Layer<import("./service.js").StoreMaker, never, never>;
5
+ export declare function StoreMakerLayer(cfg: StorageConfig): import("effect/Layer").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,+EAkBjD;AAED,cAAc,cAAc,CAAA"}
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,iFAkBjD;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, StoreMaker | R_4> : Effect<X, never, StoreMaker>;
75
+ }) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, R_4 | StoreMaker> : 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: "one" | "many" | "count";
17
+ ttype: "many" | "one" | "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.219.1",
3
+ "version": "0.219.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -18,11 +18,11 @@
18
18
  "proper-lockfile": "^4.1.2",
19
19
  "pure-rand": "6.0.4",
20
20
  "redlock": "^4.2.0",
21
- "@effect-app/core": "0.153.0",
22
- "effect-app": "0.186.1",
23
21
  "@effect-app/fluent-extensions": "0.147.0",
24
- "@effect-app/infra-adapters": "0.141.1",
25
- "@effect-app/schema": "0.207.1"
22
+ "@effect-app/infra-adapters": "0.141.2",
23
+ "@effect-app/schema": "0.207.1",
24
+ "effect-app": "0.186.2",
25
+ "@effect-app/core": "0.153.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@babel/cli": "^7.23.9",
@@ -8,6 +8,7 @@ import {
8
8
  NotFoundError,
9
9
  NotLoggedInError,
10
10
  OptimisticConcurrencyException,
11
+ ServiceUnavailableError,
11
12
  UnauthorizedError,
12
13
  ValidationError
13
14
  } from "effect-app/client/errors"
@@ -91,6 +92,7 @@ export function defaultErrorHandler<R>(
91
92
  "NotLoggedInError": sendError(401, NotLoggedInError),
92
93
  "UnauthorizedError": sendError(403, UnauthorizedError),
93
94
  "InvalidStateError": sendError(422, InvalidStateError),
95
+ "ServiceUnavailableError": sendError(503, ServiceUnavailableError),
94
96
  // 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
95
97
  "OptimisticConcurrencyException": sendError(412, OptimisticConcurrencyException)
96
98
  }),
@@ -0,0 +1,33 @@
1
+ // packages/infra/vitest.config.ts
2
+ import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.1.5_@types+node@20.11.25/node_modules/vite/dist/node/index.js";
3
+
4
+ // vite.config.base.ts
5
+ import path from "path";
6
+ import fs from "fs";
7
+ var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
8
+ function makeConfig(dirName) {
9
+ const prefix = path.resolve(__vite_injected_original_dirname, "packages");
10
+ const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
11
+ const cfg = {
12
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
13
+ //plugins: [autoImport],
14
+ test: {
15
+ include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
16
+ reporters: "verbose",
17
+ globals: true
18
+ },
19
+ resolve: packages.reduce((acc, cur) => {
20
+ acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, "src");
21
+ return acc;
22
+ }, {})
23
+ };
24
+ return cfg;
25
+ }
26
+
27
+ // packages/infra/vitest.config.ts
28
+ var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/infra";
29
+ var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
30
+ export {
31
+ vitest_config_default as default
32
+ };
33
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50cyIsICJ2aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoX19kaXJuYW1lKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVzdC9jb25maWdcIlxuXG4vLyBjb25zdCBhdXRvSW1wb3J0ID0gQXV0b0ltcG9ydCh7XG4vLyAgIGR0czogXCIuL3Rlc3QvYXV0by1pbXBvcnRzLmQudHNcIixcbi8vICAgLy8gaW5jbHVkZTogW1xuLy8gICAvLyAgIC9cXC50ZXN0XFwuW3RqXXN4PyQvIC8vIC50cywgLnRzeCwgLmpzLCAuanN4XG4vLyAgIC8vIF0sXG4vLyAgIGltcG9ydHM6IFtcbi8vICAgICBcInZpdGVzdFwiXG4vLyAgIF1cbi8vIH0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VDb25maWcoZGlyTmFtZT86IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInBhY2thZ2VzXCIpXG4gIGNvbnN0IHBhY2thZ2VzID0gZnMucmVhZGRpclN5bmMocHJlZml4KS5tYXAoZiA9PiBwcmVmaXggKyBcIi9cIiArIGYpLmZpbHRlcihmID0+IGZzLmxzdGF0U3luYyhmKS5pc0RpcmVjdG9yeSgpIClcbiAgY29uc3QgY2ZnID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgLy9wbHVnaW5zOiBbYXV0b0ltcG9ydF0sXG4gICAgdGVzdDoge1xuICAgICAgaW5jbHVkZTogIFtcIi4vdGVzdC8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICByZXNvbHZlOiBwYWNrYWdlcy5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7XG4gICAgICBhY2NbSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoY3VyICsgXCIvcGFja2FnZS5qc29uXCIsIFwidXRmLThcIikpLm5hbWVdID0gcGF0aC5yZXNvbHZlKGN1ciwgXCJzcmNcIilcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCB7fSlcbiAgfVxuICAvL2NvbnNvbGUubG9nKGNmZylcbiAgcmV0dXJuIGNmZ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUNBLFNBQVMsb0JBQW9COzs7QUNBN0IsT0FBTyxVQUFVO0FBQ2pCLE9BQU8sUUFBUTtBQUZmLElBQU0sbUNBQW1DO0FBZ0IxQixTQUFSLFdBQTRCLFNBQWtCO0FBQ25ELFFBQU0sU0FBUyxLQUFLLFFBQVEsa0NBQVcsVUFBVTtBQUNqRCxRQUFNLFdBQVcsR0FBRyxZQUFZLE1BQU0sRUFBRSxJQUFJLE9BQUssU0FBUyxNQUFNLENBQUMsRUFBRSxPQUFPLE9BQUssR0FBRyxVQUFVLENBQUMsRUFBRSxZQUFZLENBQUU7QUFDN0csUUFBTSxNQUFNO0FBQUE7QUFBQTtBQUFBLElBR1YsTUFBTTtBQUFBLE1BQ0osU0FBVSxDQUFDLGtEQUFrRDtBQUFBLE1BQzdELFdBQVc7QUFBQSxNQUNYLFNBQVM7QUFBQSxJQUNYO0FBQUEsSUFDQSxTQUFTLFNBQVMsT0FBTyxDQUFDLEtBQUssUUFBUTtBQUNyQyxVQUFJLEtBQUssTUFBTSxHQUFHLGFBQWEsTUFBTSxpQkFBaUIsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLEtBQUssUUFBUSxLQUFLLEtBQUs7QUFDL0YsYUFBTztBQUFBLElBQ1QsR0FBRyxDQUFDLENBQUM7QUFBQSxFQUNQO0FBRUEsU0FBTztBQUNUOzs7QURsQ0EsSUFBTUEsb0NBQW1DO0FBSXpDLElBQU8sd0JBQVEsYUFBYSxXQUFXQyxpQ0FBUyxDQUFDOyIsCiAgIm5hbWVzIjogWyJfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSIsICJfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSJdCn0K
@@ -0,0 +1,33 @@
1
+ // packages/infra/vitest.config.ts
2
+ import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.1.5_@types+node@20.11.25/node_modules/vite/dist/node/index.js";
3
+
4
+ // vite.config.base.ts
5
+ import path from "path";
6
+ import fs from "fs";
7
+ var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
8
+ function makeConfig(dirName) {
9
+ const prefix = path.resolve(__vite_injected_original_dirname, "packages");
10
+ const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
11
+ const cfg = {
12
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
13
+ //plugins: [autoImport],
14
+ test: {
15
+ include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
16
+ reporters: "verbose",
17
+ globals: true
18
+ },
19
+ resolve: packages.reduce((acc, cur) => {
20
+ acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, "src");
21
+ return acc;
22
+ }, {})
23
+ };
24
+ return cfg;
25
+ }
26
+
27
+ // packages/infra/vitest.config.ts
28
+ var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/infra";
29
+ var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
30
+ export {
31
+ vitest_config_default as default
32
+ };
33
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50cyIsICJ2aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoX19kaXJuYW1lKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVzdC9jb25maWdcIlxuXG4vLyBjb25zdCBhdXRvSW1wb3J0ID0gQXV0b0ltcG9ydCh7XG4vLyAgIGR0czogXCIuL3Rlc3QvYXV0by1pbXBvcnRzLmQudHNcIixcbi8vICAgLy8gaW5jbHVkZTogW1xuLy8gICAvLyAgIC9cXC50ZXN0XFwuW3RqXXN4PyQvIC8vIC50cywgLnRzeCwgLmpzLCAuanN4XG4vLyAgIC8vIF0sXG4vLyAgIGltcG9ydHM6IFtcbi8vICAgICBcInZpdGVzdFwiXG4vLyAgIF1cbi8vIH0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VDb25maWcoZGlyTmFtZT86IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInBhY2thZ2VzXCIpXG4gIGNvbnN0IHBhY2thZ2VzID0gZnMucmVhZGRpclN5bmMocHJlZml4KS5tYXAoZiA9PiBwcmVmaXggKyBcIi9cIiArIGYpLmZpbHRlcihmID0+IGZzLmxzdGF0U3luYyhmKS5pc0RpcmVjdG9yeSgpIClcbiAgY29uc3QgY2ZnID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgLy9wbHVnaW5zOiBbYXV0b0ltcG9ydF0sXG4gICAgdGVzdDoge1xuICAgICAgaW5jbHVkZTogIFtcIi4vdGVzdC8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICByZXNvbHZlOiBwYWNrYWdlcy5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7XG4gICAgICBhY2NbSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoY3VyICsgXCIvcGFja2FnZS5qc29uXCIsIFwidXRmLThcIikpLm5hbWVdID0gcGF0aC5yZXNvbHZlKGN1ciwgXCJzcmNcIilcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCB7fSlcbiAgfVxuICAvL2NvbnNvbGUubG9nKGNmZylcbiAgcmV0dXJuIGNmZ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUNBLFNBQVMsb0JBQW9COzs7QUNBN0IsT0FBTyxVQUFVO0FBQ2pCLE9BQU8sUUFBUTtBQUZmLElBQU0sbUNBQW1DO0FBZ0IxQixTQUFSLFdBQTRCLFNBQWtCO0FBQ25ELFFBQU0sU0FBUyxLQUFLLFFBQVEsa0NBQVcsVUFBVTtBQUNqRCxRQUFNLFdBQVcsR0FBRyxZQUFZLE1BQU0sRUFBRSxJQUFJLE9BQUssU0FBUyxNQUFNLENBQUMsRUFBRSxPQUFPLE9BQUssR0FBRyxVQUFVLENBQUMsRUFBRSxZQUFZLENBQUU7QUFDN0csUUFBTSxNQUFNO0FBQUE7QUFBQTtBQUFBLElBR1YsTUFBTTtBQUFBLE1BQ0osU0FBVSxDQUFDLGtEQUFrRDtBQUFBLE1BQzdELFdBQVc7QUFBQSxNQUNYLFNBQVM7QUFBQSxJQUNYO0FBQUEsSUFDQSxTQUFTLFNBQVMsT0FBTyxDQUFDLEtBQUssUUFBUTtBQUNyQyxVQUFJLEtBQUssTUFBTSxHQUFHLGFBQWEsTUFBTSxpQkFBaUIsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLEtBQUssUUFBUSxLQUFLLEtBQUs7QUFDL0YsYUFBTztBQUFBLElBQ1QsR0FBRyxDQUFDLENBQUM7QUFBQSxFQUNQO0FBRUEsU0FBTztBQUNUOzs7QURsQ0EsSUFBTUEsb0NBQW1DO0FBSXpDLElBQU8sd0JBQVEsYUFBYSxXQUFXQyxpQ0FBUyxDQUFDOyIsCiAgIm5hbWVzIjogWyJfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSIsICJfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSJdCn0K