@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 +2 -2
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/mailer/SKILL.md +2 -2
- package/build/service.d.ts.map +1 -1
- package/build/service.js +9 -3
- package/build/service.js.map +1 -1
- package/package.json +3 -2
- package/src/service.ts +10 -3
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.
|
|
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.
|
|
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
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/mailer",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-
|
|
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.
|
|
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
|
-
-
|
|
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
|
|
package/build/service.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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;
|
package/build/service.js.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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.
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|