@effect-app/infra 1.1.12 → 1.1.13

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
+ ## 1.1.13
4
+
5
+ ### Patch Changes
6
+
7
+ - feat: improve error reported state.
8
+ - Updated dependencies
9
+ - effect-app@1.0.11
10
+ - @effect-app/infra-adapters@1.0.15
11
+
3
12
  ## 1.1.12
4
13
 
5
14
  ### Patch Changes
@@ -27,22 +27,23 @@ function reportError(name) {
27
27
  yield* $(_effectApp.Effect.logDebug("Interrupted").pipe(_effectApp.Effect.annotateLogs("extras", JSON.stringify(extras ?? {}))));
28
28
  return;
29
29
  }
30
- yield* $(reportSentry(cause, name, extras));
31
30
  const error = new _errors.CauseException(cause, name);
31
+ yield* $(reportSentry(error, extras));
32
32
  yield* $(_effectApp.Effect.logError("Reporting error", cause).pipe(_effectApp.Effect.annotateLogs((0, _utils.dropUndefined)({
33
33
  extras,
34
34
  __cause__: error.toJSON(),
35
35
  __error_name__: name
36
36
  }))));
37
+ error[_errors.ErrorReported] = true;
38
+ return error;
37
39
  });
38
40
  }
39
- function reportSentry(cause, name, extras) {
41
+ function reportSentry(error, extras) {
40
42
  return _RequestContextContainer.RequestContextContainer.getOption.pipe(_effectApp.Effect.map(ctx => {
41
43
  const context = _effectApp.Option.getOrUndefined(ctx);
42
44
  const scope = new Sentry.Scope();
43
45
  if (context) scope.setContext("context", context);
44
46
  if (extras) scope.setContext("extras", extras);
45
- const error = new _errors.CauseException(cause, name);
46
47
  scope.setContext("error", error.toJSON());
47
48
  Sentry.captureException(error, scope);
48
49
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"errorReporter.cjs","names":["_utils","require","Sentry","_interopRequireWildcard","_effectApp","_errors","_RequestContextContainer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportError","name","cause","extras","Effect","gen","$","annotateCurrentSpan","Cause","pretty","squashWith","_","Predicate","hasProperty","_tag","isInterrupted","logDebug","pipe","annotateLogs","JSON","stringify","reportSentry","error","CauseException","logError","dropUndefined","__cause__","toJSON","__error_name__","RequestContextContainer","getOption","map","ctx","context","Option","getOrUndefined","scope","Scope","setContext","captureException","logWarning","console","reportMessage","message","captureMessage","warn"],"sources":["../src/errorReporter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"errorReporter.cjs","names":["_utils","require","Sentry","_interopRequireWildcard","_effectApp","_errors","_RequestContextContainer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportError","name","cause","extras","Effect","gen","$","annotateCurrentSpan","Cause","pretty","squashWith","_","Predicate","hasProperty","_tag","isInterrupted","logDebug","pipe","annotateLogs","JSON","stringify","error","CauseException","reportSentry","logError","dropUndefined","__cause__","toJSON","__error_name__","ErrorReported","RequestContextContainer","getOption","map","ctx","context","Option","getOrUndefined","scope","Scope","setContext","captureException","logWarning","console","reportMessage","message","captureMessage","warn"],"sources":["../src/errorReporter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ import { Effect } from "effect-app";
9
9
  *
10
10
  * @tsplus getter effect/io/Effect forkDaemonReportRequest
11
11
  */
12
- export declare function forkDaemonReportRequest<R, E, A>(self: Effect<A, E, R>): Effect.Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, RequestFiberSet | Exclude<R, import("effect/Tracer").ParentSpan>>;
12
+ export declare function forkDaemonReportRequest<R, E, A>(self: Effect<A, E, R>): Effect.Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, Exclude<R, import("effect/Tracer").ParentSpan> | RequestFiberSet>;
13
13
  /**
14
14
  * Forks the effect into a new fiber attached to the global scope. Because the
15
15
  * new fiber is attached to the global scope, when the fiber executing the
@@ -19,5 +19,5 @@ export declare function forkDaemonReportRequest<R, E, A>(self: Effect<A, E, R>):
19
19
  *
20
20
  * @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
21
21
  */
22
- export declare function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<A, E, R>): Effect.Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, Exclude<R, import("effect/Tracer").ParentSpan> | RequestFiberSet>;
22
+ export declare function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<A, E, R>): Effect.Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, RequestFiberSet | Exclude<R, import("effect/Tracer").ParentSpan>>;
23
23
  //# sourceMappingURL=reportError.d.ts.map
@@ -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("@effect/platform/Http/ServerError").RequestError, import("../../services/Store/ContextMapContainer.js").ContextMapContainer | import("../../services/RequestContextContainer.js").RequestContextContainer | import("@effect-app/infra-adapters/RequestFiberSet").RequestFiberSet | 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>>, 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("@effect/platform/Http/ServerError").RequestError, import("../../services/RequestContextContainer.js").RequestContextContainer | import("@effect-app/infra-adapters/RequestFiberSet").RequestFiberSet | import("../../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>>, never, never>;
12
12
  //# sourceMappingURL=match.d.ts.map
@@ -2,8 +2,8 @@ import { Effect } from "effect-app";
2
2
  import { RequestContext } from "../RequestContext.js";
3
3
  import { RequestContextContainer } from "../services/RequestContextContainer.js";
4
4
  import { ContextMapContainer } from "../services/Store/ContextMapContainer.js";
5
- export declare function setupRequestContext<R, E, A>(self: Effect<A, E, R>, requestContext: RequestContext | string): Effect.Effect<A, E, ContextMapContainer | RequestContextContainer | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never>>;
6
- export declare function setupExistingRequestContext<R, E, A>(self: Effect<A, E, R>, requestContext: RequestContext | string): Effect.Effect<A, E, ContextMapContainer | RequestContextContainer | Exclude<R, never>>;
5
+ export declare function setupRequestContext<R, E, A>(self: Effect<A, E, R>, requestContext: RequestContext | string): Effect.Effect<A, E, RequestContextContainer | ContextMapContainer | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never>>;
6
+ export declare function setupExistingRequestContext<R, E, A>(self: Effect<A, E, R>, requestContext: RequestContext | string): Effect.Effect<A, E, RequestContextContainer | ContextMapContainer | Exclude<R, never>>;
7
7
  /**
8
8
  * @tsplus fluent effect/io/Effect updateRequestContext
9
9
  */
@@ -1,5 +1,6 @@
1
1
  import { Cause, Effect } from "effect-app";
2
- export declare function reportError(name: string): (cause: Cause<unknown>, extras?: Record<string, unknown>) => Effect.Effect<void, never, never>;
2
+ import { CauseException } from "./errors.js";
3
+ export declare function reportError(name: string): (cause: Cause<unknown>, extras?: Record<string, unknown>) => Effect.Effect<CauseException<unknown> | undefined, never, never>;
3
4
  export declare function logError<E>(name: string): (cause: Cause<E>, extras?: Record<string, unknown>) => Effect.Effect<void, never, never>;
4
5
  export declare function captureException(error: unknown): void;
5
6
  export declare function reportMessage(message: string, extras?: Record<string, unknown> | undefined): Effect.Effect<void, never, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAqB,MAAM,YAAY,CAAA;AAI7D,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,WAEG,MAAM,OAAO,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,uCA4BhE;AAkBD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,WAEG,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,uCAiB1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,QAG9C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,qCAU1F"}
1
+ {"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAqB,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAA;AAG3D,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,WAEG,MAAM,OAAO,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,sEA+BhE;AAgBD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,WAEG,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,uCAiB1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,QAG9C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,qCAU1F"}
@@ -1,7 +1,7 @@
1
1
  import { dropUndefined } from "@effect-app/core/utils";
2
2
  import * as Sentry from "@sentry/node";
3
3
  import { Cause, Effect, Option, Predicate } from "effect-app";
4
- import { CauseException } from "./errors.js";
4
+ import { CauseException, ErrorReported } from "./errors.js";
5
5
  import { RequestContextContainer } from "./services/RequestContextContainer.js";
6
6
  export function reportError(name) {
7
7
  return (cause, extras) => Effect.gen(function* ($) {
@@ -16,8 +16,8 @@ export function reportError(name) {
16
16
  yield* $(Effect.logDebug("Interrupted").pipe(Effect.annotateLogs("extras", JSON.stringify(extras ?? {}))));
17
17
  return;
18
18
  }
19
- yield* $(reportSentry(cause, name, extras));
20
19
  const error = new CauseException(cause, name);
20
+ yield* $(reportSentry(error, extras));
21
21
  yield* $(Effect
22
22
  .logError("Reporting error", cause)
23
23
  .pipe(Effect.annotateLogs(dropUndefined({
@@ -25,9 +25,11 @@ export function reportError(name) {
25
25
  __cause__: error.toJSON(),
26
26
  __error_name__: name
27
27
  }))));
28
+ error[ErrorReported] = true;
29
+ return error;
28
30
  });
29
31
  }
30
- function reportSentry(cause, name, extras) {
32
+ function reportSentry(error, extras) {
31
33
  return RequestContextContainer.getOption.pipe(Effect.map((ctx) => {
32
34
  const context = Option.getOrUndefined(ctx);
33
35
  const scope = new Sentry.Scope();
@@ -35,7 +37,6 @@ function reportSentry(cause, name, extras) {
35
37
  scope.setContext("context", context);
36
38
  if (extras)
37
39
  scope.setContext("extras", extras);
38
- const error = new CauseException(cause, name);
39
40
  scope.setContext("error", error.toJSON());
40
41
  Sentry.captureException(error, scope);
41
42
  }));
@@ -72,4 +73,4 @@ export function reportMessage(message, extras) {
72
73
  console.warn(message);
73
74
  }));
74
75
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFFL0UsTUFBTSxVQUFVLFdBQVcsQ0FDekIsSUFBWTtJQUVaLE9BQU8sQ0FBQyxLQUFxQixFQUFFLE1BQWdDLEVBQUUsRUFBRSxDQUNqRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDcEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztZQUNsQyxtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLG1CQUFtQixFQUFFLHFCQUFxQixHQUFHLElBQUk7WUFDakQsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDM0MsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FDaEMsS0FBSyxFQUNMLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ3RHO1lBQ0Qs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
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBRS9FLE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQVk7SUFFWixPQUFPLENBQUMsS0FBcUIsRUFBRSxNQUFnQyxFQUFFLEVBQUUsQ0FDakUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7WUFDbEMsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixtQkFBbUIsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1lBQ2pELHNCQUFzQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQ2hDLEtBQUssRUFDTCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxD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
@@ -47,7 +47,7 @@ declare const Operations_base: (abstract new (service: {
47
47
  all: Effect.Effect<Operation[], never, never>;
48
48
  find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
49
49
  update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
50
- }) => 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>;
50
+ }) => 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>;
51
51
  };
52
52
  export declare class Operations extends Operations_base {
53
53
  private static readonly CleanupLive;
@@ -1,5 +1,5 @@
1
1
  import { Cause, Effect, Exit } from "effect-app";
2
- export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<string, unknown> | undefined) => Effect.Effect<void, never, never>;
2
+ export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<string, unknown> | undefined) => Effect.Effect<import("effect-app/client/errors").CauseException<unknown> | undefined, never, never>;
3
3
  /**
4
4
  * Forks the effect into a new fiber attached to the global scope. Because the
5
5
  * new fiber is attached to the global scope, when the fiber executing the
@@ -10,7 +10,7 @@ export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<stri
10
10
  * @tsplus getter effect/io/Effect forkDaemonReportQueue
11
11
  */
12
12
  export declare function forkDaemonReportQueue<R, E, A>(self: Effect<A, E, R>): Effect.Effect<import("effect/Fiber").RuntimeFiber<A, E>, never, Exclude<R, import("effect/Tracer").ParentSpan>>;
13
- export declare const reportFatalQueueError: (cause: Cause<unknown>, extras?: Record<string, unknown> | undefined) => Effect.Effect<void, never, never>;
13
+ export declare const reportFatalQueueError: (cause: Cause<unknown>, extras?: Record<string, unknown> | undefined) => Effect.Effect<import("effect-app/client/errors").CauseException<unknown> | undefined, never, never>;
14
14
  export declare function reportNonInterruptedFailure(context?: Record<string, unknown>): <R, E, A>(inp: Effect<A, E, R>) => Effect<Exit<A, E>, never, R>;
15
15
  export declare function reportNonInterruptedFailureCause(context?: Record<string, unknown>): <E>(cause: Cause<E>) => Effect<void>;
16
16
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,gBAAgB,aAAc,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,sCAC/D,CAAA;AAElC;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,mHAMnE;AAED,eAAO,MAAM,qBAAqB,4GAEjC,CAAA;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAErD,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAYrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAC9D,MAAM,CAAC,CAAC,KAAG,OAAO,IAAI,CAAC,CAM1C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,gBAAgB,aAAc,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,wGAC/D,CAAA;AAElC;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,mHAMnE;AAED,eAAO,MAAM,qBAAqB,8KAEjC,CAAA;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAErD,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAYrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAC9D,MAAM,CAAC,CAAC,KAAG,OAAO,IAAI,CAAC,CAM1C"}
@@ -13,6 +13,6 @@ export declare function makeMemQueue<Evt extends {
13
13
  _tag: string;
14
14
  }, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
15
15
  publish: (messages_0: Evt, ...messages_1: Evt[]) => Effect.Effect<void, never, never>;
16
- drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("../Store/ContextMapContainer.js").ContextMapContainer | RequestContextContainer | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>>;
16
+ drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>>;
17
17
  }, never, RequestContextContainer | MemQueue>;
18
18
  //# sourceMappingURL=memQueue.d.ts.map
@@ -13,7 +13,7 @@ export declare function makeServiceBusQueue<Evt extends {
13
13
  id: StringId;
14
14
  _tag: string;
15
15
  }, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
16
- drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("../Store/ContextMapContainer.js").ContextMapContainer | import("effect/Scope").Scope | RequestContextContainer | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, ServiceBusReceiverFactory>>;
16
+ drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope | RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, ServiceBusReceiverFactory>>;
17
17
  publish: (messages_0: Evt, ...messages_1: Evt[]) => Effect.Effect<void, never, never>;
18
18
  }, never, RequestContextContainer | ServiceBusReceiverFactory | import("@azure/service-bus").ServiceBusSender>;
19
19
  /**
@@ -145,7 +145,7 @@ export declare function makeRepo<Evt = never>(): <ItemType extends string, R, En
145
145
  config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
146
146
  partitionValue?: (a: Encoded) => string;
147
147
  };
148
- }) => Effect.Effect<Repository<T, Encoded, Evt, ItemType>, E, ContextMapContainer | StoreMaker | R | RInitial | R2>;
148
+ }) => Effect.Effect<Repository<T, Encoded, Evt, ItemType>, E, StoreMaker | ContextMapContainer | R | RInitial | R2>;
149
149
  Q: Query<Encoded>;
150
150
  };
151
151
  export declare function makeStore<Encoded extends {
@@ -20,7 +20,7 @@ declare const ContextMapContainer_base: (abstract new (service: {
20
20
  use: <X>(body: (_: {
21
21
  get: Effect<ContextMap>;
22
22
  start: Effect<void>;
23
- }) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, ContextMapContainer | R_4> : Effect<X, never, ContextMapContainer>;
23
+ }) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, R_4 | ContextMapContainer> : Effect<X, never, ContextMapContainer>;
24
24
  };
25
25
  /**
26
26
  * @tsplus companion ContextMapContainer.Ops
@@ -88,7 +88,7 @@ declare const StoreMaker_base: (abstract new (service: {
88
88
  make: <Encoded extends {
89
89
  id: Id;
90
90
  }, Id extends string, R = never, E = never>(name: string, seed?: Effect<Iterable<Encoded>, E, R> | undefined, config?: StoreConfig<Encoded> | undefined) => Effect<Store<Encoded, Id, PersistenceModelType<Encoded>>, E, R>;
91
- }) => 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>;
91
+ }) => 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>;
92
92
  };
93
93
  /**
94
94
  * @tsplus type StoreMaker
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "1.1.12",
3
+ "version": "1.1.13",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -19,8 +19,8 @@
19
19
  "pure-rand": "6.1.0",
20
20
  "redlock": "^4.2.0",
21
21
  "@effect-app/core": "1.0.5",
22
- "@effect-app/infra-adapters": "1.0.14",
23
- "effect-app": "1.0.10",
22
+ "effect-app": "1.0.11",
23
+ "@effect-app/infra-adapters": "1.0.15",
24
24
  "@effect-app/schema": "1.0.9"
25
25
  },
26
26
  "devDependencies": {
@@ -1,7 +1,7 @@
1
1
  import { dropUndefined } from "@effect-app/core/utils"
2
2
  import * as Sentry from "@sentry/node"
3
3
  import { Cause, Effect, Option, Predicate } from "effect-app"
4
- import { CauseException } from "./errors.js"
4
+ import { CauseException, ErrorReported } from "./errors.js"
5
5
  import { RequestContextContainer } from "./services/RequestContextContainer.js"
6
6
 
7
7
  export function reportError(
@@ -23,8 +23,9 @@ export function reportError(
23
23
  yield* $(Effect.logDebug("Interrupted").pipe(Effect.annotateLogs("extras", JSON.stringify(extras ?? {}))))
24
24
  return
25
25
  }
26
- yield* $(reportSentry(cause, name, extras))
27
26
  const error = new CauseException(cause, name)
27
+
28
+ yield* $(reportSentry(error, extras))
28
29
  yield* $(
29
30
  Effect
30
31
  .logError("Reporting error", cause)
@@ -34,12 +35,13 @@ export function reportError(
34
35
  __error_name__: name
35
36
  })))
36
37
  )
38
+ error[ErrorReported] = true
39
+ return error
37
40
  })
38
41
  }
39
42
 
40
43
  function reportSentry(
41
- cause: Cause<unknown>,
42
- name: string,
44
+ error: CauseException<unknown>,
43
45
  extras: Record<string, unknown> | undefined
44
46
  ) {
45
47
  return RequestContextContainer.getOption.pipe(Effect.map((ctx) => {
@@ -47,7 +49,6 @@ function reportSentry(
47
49
  const scope = new Sentry.Scope()
48
50
  if (context) scope.setContext("context", context as unknown as Record<string, unknown>)
49
51
  if (extras) scope.setContext("extras", extras)
50
- const error = new CauseException(cause, name)
51
52
  scope.setContext("error", error.toJSON() as any)
52
53
  Sentry.captureException(error, scope)
53
54
  }))