@owlmeans/mailer 0.1.18-rc.32 → 0.1.18-rc.34

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/README.md CHANGED
@@ -13,7 +13,7 @@ Provider-agnostic email dispatch interface for the OwlMeans framework — `Maile
13
13
  ## Installation
14
14
 
15
15
  ```bash
16
- bun add @owlmeans/mailer@^0.1.18-rc.32
16
+ bun add @owlmeans/mailer@^0.1.18-rc.34
17
17
  ```
18
18
 
19
19
  ## Usage
@@ -37,7 +37,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
37
37
  your project's skill store (`.agents/skills/`):
38
38
 
39
39
  ```sh
40
- npx @owlmeans/agent-skills@^0.1.18-rc.38
40
+ npx @owlmeans/agent-skills@^0.1.18-rc.47
41
41
  ```
42
42
 
43
43
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/mailer",
4
- "version": "0.1.18-rc.32",
5
- "generatedAt": "2026-09-23T19:57:40.699Z",
4
+ "version": "0.1.18-rc.34",
5
+ "generatedAt": "2026-10-03T20:05:07.603Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ metadata:
8
8
 
9
9
  # Using `@owlmeans/mailer`
10
10
 
11
- **Install:** `"@owlmeans/mailer": "^0.1.18-rc.32"` in `dependencies`
11
+ **Install:** `"@owlmeans/mailer": "^0.1.18-rc.34"` in `dependencies`
12
12
 
13
13
  Provider-agnostic email dispatch service. It defines the `MailerService` interface and ships one
14
14
  transport of its own — the console/dev one. Real delivery is a separate package:
@@ -40,7 +40,7 @@ console.log(mailer.captured[0].text) // '123456'
40
40
  ```
41
41
 
42
42
  The console transport:
43
- - Logs to `console.log` (not `console.error`) — safe to use in tests without noise.
43
+ - Writes each message through `@owlmeans/log` at `info`, scope `mailer`, event `mail.console` — visible at the default level (printing the mail IS its delivery; e2e runs read login codes from it) and silenced by `configureLog({ level: 'warn' })` in a noisy test. Never register it where real mail is sent.
44
44
  - Accumulates all sent messages in `mailer.captured: MailMessage[]`.
45
45
  - Never throws: it has no transport to fail, which is what makes it the right double in a test.
46
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG5D,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAE9C,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,sBAA6B,aAAa,GAAG;IAChF,sEAAsE;IACtE,QAAQ,EAAE,WAAW,EAAE,CAAA;CAexB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,+BAA+B,QAAO,UAAU,CAAC,OAAO,wBAAwB,CACnD,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI5D,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAI9C,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,sBAA6B,aAAa,GAAG;IAChF,sEAAsE;IACtE,QAAQ,EAAE,WAAW,EAAE,CAAA;CAmBxB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,+BAA+B,QAAO,UAAU,CAAC,OAAO,wBAAwB,CACnD,CAAA"}
package/build/service.js CHANGED
@@ -1,15 +1,21 @@
1
1
  import { createService } from '@owlmeans/context';
2
2
  import { MAILER_SERVICE } from './consts.js';
3
+ import { logger } from '@owlmeans/log';
3
4
  export const CONSOLE_MAILER = 'console-mailer';
5
+ const log = logger('mailer');
4
6
  /** Dev/test transport: logs the message to console and stores it for inspection. */
5
7
  export const makeConsoleMailerService = (alias = CONSOLE_MAILER) => {
6
8
  const captured = [];
7
9
  const service = createService(alias, {
8
10
  send: async (message) => {
9
11
  captured.push(message);
10
- const from = message.from != null ? ` from=${message.from}` : '';
11
- console.log(`[console-mailer]${from} to=${message.to} subject="${message.subject}"`);
12
- console.log(`[console-mailer] body=${message.text ?? message.html ?? ''}`);
12
+ // The explicit dev transport: printing the mail IS its delivery, so it is written at `info`
13
+ // under the scope `mailer` and stays visible at the default level (e2e runs read login codes
14
+ // from it). Never register it where real mail is sent.
15
+ log.info('Mail written to the console', {
16
+ ...(message.from != null ? { from: message.from } : {}),
17
+ to: message.to, subject: message.subject, body: message.text ?? message.html ?? '',
18
+ }, { event: 'mail.console' });
13
19
  },
14
20
  });
15
21
  service.captured = captured;
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAE9C,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAK,GAAG,cAAc,EAG7D,EAAE;IACF,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAElC,MAAM,OAAO,GAAG,aAAa,CAAgB,KAAK,EAAE;QAClD,IAAI,EAAE,KAAK,EAAE,OAAoB,EAAiB,EAAE;YAClD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAChE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,OAAO,CAAC,EAAE,aAAa,OAAO,CAAC,OAAO,GAAG,CAAC,CAAA;YACpF,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;QAC5E,CAAC;KACF,CAAgD,CAAA;IAEjD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAgD,EAAE,CAC/F,wBAAwB,CAAC,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAE9C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAE5B,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAK,GAAG,cAAc,EAG7D,EAAE;IACF,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAElC,MAAM,OAAO,GAAG,aAAa,CAAgB,KAAK,EAAE;QAClD,IAAI,EAAE,KAAK,EAAE,OAAoB,EAAiB,EAAE;YAClD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACtB,4FAA4F;YAC5F,6FAA6F;YAC7F,uDAAuD;YACvD,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACtC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE;aACnF,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;QAC/B,CAAC;KACF,CAAgD,CAAA;IAEjD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAgD,EAAE,CAC/F,wBAAwB,CAAC,cAAc,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/mailer",
3
- "version": "0.1.18-rc.32",
3
+ "version": "0.1.18-rc.34",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -23,7 +23,8 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@owlmeans/context": "^0.1.18-rc.32",
26
- "@owlmeans/error": "^0.1.18-rc.35"
26
+ "@owlmeans/error": "^0.1.18-rc.36",
27
+ "@owlmeans/log": "^0.1.18-rc.0"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@owlmeans/dep-config": "workspace:*",
package/src/service.ts CHANGED
@@ -1,9 +1,12 @@
1
1
  import { createService } from '@owlmeans/context'
2
2
  import type { MailerService, MailMessage } from './types.js'
3
3
  import { MAILER_SERVICE } from './consts.js'
4
+ import { logger } from '@owlmeans/log'
4
5
 
5
6
  export const CONSOLE_MAILER = 'console-mailer'
6
7
 
8
+ const log = logger('mailer')
9
+
7
10
  /** Dev/test transport: logs the message to console and stores it for inspection. */
8
11
  export const makeConsoleMailerService = (alias = CONSOLE_MAILER): MailerService & {
9
12
  /** Messages captured since the service was created (use in tests). */
@@ -14,9 +17,13 @@ export const makeConsoleMailerService = (alias = CONSOLE_MAILER): MailerService
14
17
  const service = createService<MailerService>(alias, {
15
18
  send: async (message: MailMessage): Promise<void> => {
16
19
  captured.push(message)
17
- const from = message.from != null ? ` from=${message.from}` : ''
18
- console.log(`[console-mailer]${from} to=${message.to} subject="${message.subject}"`)
19
- console.log(`[console-mailer] body=${message.text ?? message.html ?? ''}`)
20
+ // The explicit dev transport: printing the mail IS its delivery, so it is written at `info`
21
+ // under the scope `mailer` and stays visible at the default level (e2e runs read login codes
22
+ // from it). Never register it where real mail is sent.
23
+ log.info('Mail written to the console', {
24
+ ...(message.from != null ? { from: message.from } : {}),
25
+ to: message.to, subject: message.subject, body: message.text ?? message.html ?? '',
26
+ }, { event: 'mail.console' })
20
27
  },
21
28
  }) as MailerService & { captured: MailMessage[] }
22
29