@effect-app/infra 2.53.0 → 2.53.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,21 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 2.53.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 8b7fdbe: update packages
8
+ - fd226c3: improve email spans
9
+ - Updated dependencies [8b7fdbe]
10
+ - effect-app@2.38.5
11
+
12
+ ## 2.53.1
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies
17
+ - effect-app@2.38.4
18
+
3
19
  ## 2.53.0
4
20
 
5
21
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../src/Emailer/Sendgrid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAiC,MAAM,YAAY,CAAA;AAIjE,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAA6B,KAAK,cAAc,EAAiB,MAAM,cAAc,CAAA;AA0DpH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,uDAE9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,SAWpC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,WAO1C"}
1
+ {"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../src/Emailer/Sendgrid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAiC,MAAM,YAAY,CAAA;AAIjE,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAA6B,KAAK,cAAc,EAAiB,MAAM,cAAc,CAAA;AAwDpH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,uDAE9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,SAWpC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,WAO1C"}
@@ -7,41 +7,39 @@ import { Emailer, SendMailError } from "./service.js";
7
7
  const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPrefix }) => Effect.sync(() => {
8
8
  sgMail.setApiKey(Redacted.value(apiKey));
9
9
  return Emailer.of({
10
- sendMail(msg_) {
11
- return Effect.gen(function* () {
12
- const msg = dropUndefinedT({
13
- ...msg_,
14
- from: msg_.from ?? defaultFrom,
15
- replyTo: msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
16
- });
17
- const render = renderMessage(!realMail);
18
- const renderedMsg_ = render(msg);
19
- const renderedMsg = {
20
- ...renderedMsg_,
21
- subject: `${subjectPrefix}${renderedMsg_.subject}`,
22
- ..."content" in renderedMsg_
23
- ? { content: [...renderedMsg_.content] }
24
- : {}
25
- };
26
- yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)));
27
- const ret = yield* Effect
28
- .async((cb) => void sgMail.send(renderedMsg, // sue me
29
- msg.isMultiple ?? true, (err, result) => err
30
- ? cb(Effect.fail(err))
31
- : cb(Effect.sync(() => result))))
32
- .pipe(Effect.mapError((raw) => new SendMailError({ raw })));
33
- // const event = {
34
- // name: "EmailSent",
35
- // properties: {
36
- // templateId: msg.templateId
37
- // }
38
- // }
39
- // yield* InfraLogger.logDebug("Tracking email event").annotateLogs("event", event.$$.pretty)
40
- // const { trackEvent } = yield* AiContextService
41
- // trackEvent(event)
42
- return ret;
10
+ sendMail: Effect.fn("Sendgrid.sendMail")(function* (msg_) {
11
+ const msg = dropUndefinedT({
12
+ ...msg_,
13
+ from: msg_.from ?? defaultFrom,
14
+ replyTo: msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
43
15
  });
44
- }
16
+ const render = renderMessage(!realMail);
17
+ const renderedMsg_ = render(msg);
18
+ const renderedMsg = {
19
+ ...renderedMsg_,
20
+ subject: `${subjectPrefix}${renderedMsg_.subject}`,
21
+ ..."content" in renderedMsg_
22
+ ? { content: [...renderedMsg_.content] }
23
+ : {}
24
+ };
25
+ yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)));
26
+ const ret = yield* Effect
27
+ .async((cb) => void sgMail.send(renderedMsg, // sue me
28
+ msg.isMultiple ?? true, (err, result) => err
29
+ ? cb(Effect.fail(err))
30
+ : cb(Effect.sync(() => result))))
31
+ .pipe(Effect.mapError((raw) => new SendMailError({ raw })));
32
+ // const event = {
33
+ // name: "EmailSent",
34
+ // properties: {
35
+ // templateId: msg.templateId
36
+ // }
37
+ // }
38
+ // yield* InfraLogger.logDebug("Tracking email event").annotateLogs("event", event.$$.pretty)
39
+ // const { trackEvent } = yield* AiContextService
40
+ // trackEvent(event)
41
+ return ret;
42
+ })
45
43
  });
46
44
  });
47
45
  export function Sendgrid(config) {
@@ -102,4 +100,4 @@ function renderMailData(md) {
102
100
  }
103
101
  return md.email;
104
102
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRW1haWxlci9TZW5kZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBaUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXBILE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFrQixFQUFFLEVBQUUsQ0FDeEcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDZixNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUV4QyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEIsUUFBUSxDQUFDLElBQTBCO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLE1BQU0sR0FBRyxHQUFhLGNBQWMsQ0FBQztvQkFDbkMsR0FBRyxJQUFJO29CQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVc7b0JBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7aUJBQ2xFLENBQUMsQ0FBQTtnQkFDRixN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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRW1haWxlci9TZW5kZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBaUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXBILE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFrQixFQUFFLEVBQUUsQ0FDeEcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDZixNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUV4QyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUEwQjtZQUMzRSxNQUFNLEdBQUcsR0FBYSxjQUFjLENBQUM7Z0JBQ25DLEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXO2dCQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2FBQ2xFLENBQUMsQ0FB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
@@ -5,11 +5,9 @@ import { Emailer } from "./service.js";
5
5
  const makeFake = InfraLogger
6
6
  .logInfo("FAKE Emailer Service enabled")
7
7
  .pipe(Effect.map(() => Emailer.of({
8
- sendMail(msg) {
9
- return InfraLogger
10
- .logDebug(`Fake send mail`)
11
- .pipe(Effect.annotateLogs("msg", pretty(msg)));
12
- }
8
+ sendMail: Effect.fn("Fake.sendMail")((msg) => InfraLogger
9
+ .logDebug(`Fake send mail`)
10
+ .pipe(Effect.annotateLogs("msg", pretty(msg))))
13
11
  })));
14
12
  export const FakeSendgrid = Emailer.toLayer(makeFake);
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbWFpbGVyL2Zha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXRDLE1BQU0sUUFBUSxHQUFHLFdBQVc7S0FDekIsT0FBTyxDQUFDLDhCQUE4QixDQUFDO0tBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUNwQixPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ1QsUUFBUSxDQUFDLEdBQUc7UUFDVixPQUFPLFdBQVc7YUFDZixRQUFRLENBQUMsZ0JBQWdCLENBQUM7YUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEQsQ0FBQztDQUNGLENBQUMsQ0FDSCxDQUFDLENBQUE7QUFFSixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQSJ9
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbWFpbGVyL2Zha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXRDLE1BQU0sUUFBUSxHQUFHLFdBQVc7S0FDekIsT0FBTyxDQUFDLDhCQUE4QixDQUFDO0tBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUNwQixPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ1QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUMzQyxXQUFXO1NBQ1IsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1NBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNqRDtDQUNGLENBQUMsQ0FDSCxDQUFDLENBQUE7QUFFSixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQSJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "2.53.0",
3
+ "version": "2.53.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -8,17 +8,17 @@
8
8
  "change-case": "^5.4.4",
9
9
  "cross-fetch": "^4.1.0",
10
10
  "express-oauth2-jwt-bearer": "^1.6.1",
11
- "fast-check": "~4.1.0",
11
+ "fast-check": "~4.1.1",
12
12
  "path-parser": "^6.1.0",
13
13
  "proper-lockfile": "^4.1.2",
14
14
  "pure-rand": "7.0.1",
15
15
  "query-string": "^9.1.1",
16
- "effect-app": "2.38.3"
16
+ "effect-app": "2.38.5"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@azure/cosmos": "^4.3.0",
20
20
  "@azure/service-bus": "^7.9.5",
21
- "@sentry/node": "^9.11.0",
21
+ "@sentry/node": "^9.12.0",
22
22
  "@types/express": "^5.0.1",
23
23
  "@types/node": "~22.14.0",
24
24
  "@types/proper-lockfile": "^4.1.4",
@@ -37,17 +37,17 @@
37
37
  "peerDependencies": {
38
38
  "@azure/cosmos": "^4.3.0",
39
39
  "@azure/service-bus": "^7.9.5",
40
- "@effect/experimental": "^0.44.6",
41
- "@effect/platform": "^0.80.6",
40
+ "@effect/experimental": "^0.44.7",
41
+ "@effect/platform": "^0.80.7",
42
42
  "@effect/rpc-http": "^0.52.4",
43
- "@effect/rpc": "^0.55.8",
44
- "@effect/sql": "^0.33.6",
45
- "@effect/vitest": "^0.20.6",
43
+ "@effect/rpc": "^0.55.10",
44
+ "@effect/sql": "^0.33.7",
45
+ "@effect/vitest": "^0.20.7",
46
46
  "@sendgrid/helpers": "^8.0.0",
47
- "@sendgrid/mail": "^8.1.4",
47
+ "@sendgrid/mail": "^8.1.5",
48
48
  "redis": "^3.1.2",
49
49
  "redlock": "^4.2.0",
50
- "effect": "^3.14.6",
50
+ "effect": "^3.14.7",
51
51
  "express": "^5.1.0"
52
52
  },
53
53
  "typesVersions": {
@@ -12,54 +12,52 @@ const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPr
12
12
  sgMail.setApiKey(Redacted.value(apiKey))
13
13
 
14
14
  return Emailer.of({
15
- sendMail(msg_: EmailMsgOptionalFrom) {
16
- return Effect.gen(function*() {
17
- const msg: EmailMsg = dropUndefinedT({
18
- ...msg_,
19
- from: msg_.from ?? defaultFrom,
20
- replyTo: msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
21
- })
22
- const render = renderMessage(!realMail)
15
+ sendMail: Effect.fn("Sendgrid.sendMail")(function*(msg_: EmailMsgOptionalFrom) {
16
+ const msg: EmailMsg = dropUndefinedT({
17
+ ...msg_,
18
+ from: msg_.from ?? defaultFrom,
19
+ replyTo: msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
20
+ })
21
+ const render = renderMessage(!realMail)
23
22
 
24
- const renderedMsg_ = render(msg)
25
- const renderedMsg = {
26
- ...renderedMsg_ as Omit<typeof renderedMsg_, "content">,
27
- subject: `${subjectPrefix}${renderedMsg_.subject}`,
28
- ..."content" in renderedMsg_
29
- ? { content: [...renderedMsg_.content] as [MailContent, ...MailContent[]] }
30
- : {}
31
- }
32
- yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)))
23
+ const renderedMsg_ = render(msg)
24
+ const renderedMsg = {
25
+ ...renderedMsg_ as Omit<typeof renderedMsg_, "content">,
26
+ subject: `${subjectPrefix}${renderedMsg_.subject}`,
27
+ ..."content" in renderedMsg_
28
+ ? { content: [...renderedMsg_.content] as [MailContent, ...MailContent[]] }
29
+ : {}
30
+ }
31
+ yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)))
33
32
 
34
- const ret = yield* Effect
35
- .async<
36
- [sgMail.ClientResponse, Record<string, unknown>],
37
- Error | sgMail.ResponseError
38
- >(
39
- (cb) =>
40
- void sgMail.send(
41
- renderedMsg as any, // sue me
42
- msg.isMultiple ?? true,
43
- (err, result) =>
44
- err
45
- ? cb(Effect.fail(err))
46
- : cb(Effect.sync(() => result))
47
- )
48
- )
49
- .pipe(Effect.mapError((raw) => new SendMailError({ raw })))
33
+ const ret = yield* Effect
34
+ .async<
35
+ [sgMail.ClientResponse, Record<string, unknown>],
36
+ Error | sgMail.ResponseError
37
+ >(
38
+ (cb) =>
39
+ void sgMail.send(
40
+ renderedMsg as any, // sue me
41
+ msg.isMultiple ?? true,
42
+ (err, result) =>
43
+ err
44
+ ? cb(Effect.fail(err))
45
+ : cb(Effect.sync(() => result))
46
+ )
47
+ )
48
+ .pipe(Effect.mapError((raw) => new SendMailError({ raw })))
50
49
 
51
- // const event = {
52
- // name: "EmailSent",
53
- // properties: {
54
- // templateId: msg.templateId
55
- // }
56
- // }
57
- // yield* InfraLogger.logDebug("Tracking email event").annotateLogs("event", event.$$.pretty)
58
- // const { trackEvent } = yield* AiContextService
59
- // trackEvent(event)
60
- return ret
61
- })
62
- }
50
+ // const event = {
51
+ // name: "EmailSent",
52
+ // properties: {
53
+ // templateId: msg.templateId
54
+ // }
55
+ // }
56
+ // yield* InfraLogger.logDebug("Tracking email event").annotateLogs("event", event.$$.pretty)
57
+ // const { trackEvent } = yield* AiContextService
58
+ // trackEvent(event)
59
+ return ret
60
+ })
63
61
  })
64
62
  })
65
63
 
@@ -7,11 +7,11 @@ const makeFake = InfraLogger
7
7
  .logInfo("FAKE Emailer Service enabled")
8
8
  .pipe(Effect.map(() =>
9
9
  Emailer.of({
10
- sendMail(msg) {
11
- return InfraLogger
10
+ sendMail: Effect.fn("Fake.sendMail")((msg) =>
11
+ InfraLogger
12
12
  .logDebug(`Fake send mail`)
13
13
  .pipe(Effect.annotateLogs("msg", pretty(msg)))
14
- }
14
+ )
15
15
  })
16
16
  ))
17
17