@fluojs/email 1.0.0-beta.1 → 1.0.0-beta.3

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.ko.md CHANGED
@@ -38,7 +38,7 @@ npm install @fluojs/notifications @fluojs/queue
38
38
  npm install @fluojs/email nodemailer
39
39
  ```
40
40
 
41
- Node 전용 SMTP 전달은 이제 명시적인 `@fluojs/email/node` 서브패스에 위치합니다. queue 기반 notifications 통합도 `@fluojs/email/queue` 서브패스로 분리되었고, 이 서브패스용 `@fluojs/queue`는 루트 설치 필수가 아닌 optional peer로 선언됩니다. 루트 `@fluojs/email` 엔트리포인트는 계속 transport-agnostic 상태를 유지하므로 Bun, Deno, Cloudflare, 커스텀 HTTP transport가 Node 전용 또는 queue 전용 동작을 함께 끌어오지 않습니다.
41
+ Node 전용 SMTP 전달은 명시적인 `@fluojs/email/node` 서브패스에서 사용할 수 있습니다. queue 기반 notifications 통합은 `@fluojs/email/queue` 서브패스에 있으며, 이 서브패스용 `@fluojs/queue`는 루트 설치 필수가 아닌 optional peer로 선언됩니다. 루트 `@fluojs/email` 엔트리포인트는 계속 transport-agnostic 상태를 유지하므로 Bun, Deno, Cloudflare, 커스텀 HTTP transport가 Node 전용 또는 queue 전용 동작을 함께 끌어오지 않습니다.
42
42
 
43
43
  ## 사용 시점
44
44
 
@@ -163,7 +163,10 @@ Behavioral contract 메모:
163
163
 
164
164
  - `EmailService.send(...)`는 전달 전에 `defaultFrom`과 `defaultReplyTo`를 해석합니다.
165
165
  - `EmailService.send(...)`는 `accepted`, `pending`, `rejected` 수신자를 분리해 보존하므로 provider의 부분 실패가 호출자에게 그대로 보입니다.
166
+ - `EmailService.sendMany(...)`는 기본적으로 fail-fast입니다. 실패를 batch result에 수집하려면 `continueOnError: true`를 전달합니다.
167
+ - `EmailService.createPlatformStatusSnapshot()`은 diagnostics를 위해 lifecycle, readiness, health, transport ownership details를 노출합니다.
166
168
  - 서비스는 모듈 bootstrap 시 transport를 초기화하고, factory가 소유한 리소스만 애플리케이션 shutdown 시 닫습니다.
169
+ - 모듈 옵션은 provider wiring 전에 trim 및 normalize됩니다. 여기에는 sender 기본값, notification channel 이름, transport factory 소유권이 포함됩니다.
167
170
  - 이 패키지는 절대로 `process.env`를 직접 읽지 않습니다. 모든 설정은 명시적인 옵션 또는 DI를 통해 들어와야 합니다.
168
171
 
169
172
  ### `@fluojs/notifications`와의 통합
@@ -205,10 +208,11 @@ export class AppModule {}
205
208
  Behavioral contract 메모:
206
209
 
207
210
  - `EmailChannel`은 `pending` 또는 `rejected` 수신자가 하나라도 있으면 전달을 성공으로 보고하지 않고 notification dispatch를 실패로 처리합니다.
211
+ - `EmailService.sendNotification(...)`은 렌더링된 template output을 payload 및 notification metadata와 병합합니다. payload 필드는 notification fallback보다 우선합니다.
208
212
 
209
213
  ### 큐 기반 대량 전달
210
214
 
211
- `@fluojs/notifications`가 대량 이메일 전달을 백그라운드로 넘겨야 한다면 `QueueLifecycleService`를 주입해 `createEmailNotificationsQueueAdapter(queue)`를 만들고 `QueueModule`을 함께 import합니다.
215
+ `@fluojs/notifications`가 대량 이메일 전달을 백그라운드로 넘겨야 한다면 `QueueModule`을 import하고, `QueueLifecycleService`를 주입해 `createEmailNotificationsQueueAdapter(queue)`를 만든 뒤, `EmailNotificationsQueueWorker`를 애플리케이션 provider로 등록합니다. 루트 `EmailModule`은 worker를 자동 등록하지 않으므로 `@fluojs/email/queue`를 import하지 않는 애플리케이션은 런타임에서 `@fluojs/queue`를 필요로 하지 않습니다.
212
216
 
213
217
  ```typescript
214
218
  import { Module } from '@fluojs/core';
@@ -216,7 +220,7 @@ import {
216
220
  EmailModule,
217
221
  EMAIL_CHANNEL,
218
222
  } from '@fluojs/email';
219
- import { createEmailNotificationsQueueAdapter } from '@fluojs/email/queue';
223
+ import { createEmailNotificationsQueueAdapter, EmailNotificationsQueueWorker } from '@fluojs/email/queue';
220
224
  import { NotificationsModule } from '@fluojs/notifications';
221
225
  import { QueueLifecycleService, QueueModule } from '@fluojs/queue';
222
226
 
@@ -242,6 +246,7 @@ import { QueueLifecycleService, QueueModule } from '@fluojs/queue';
242
246
  }),
243
247
  }),
244
248
  ],
249
+ providers: [EmailNotificationsQueueWorker],
245
250
  })
246
251
  export class AppModule {}
247
252
  ```
@@ -256,13 +261,19 @@ export class AppModule {}
256
261
 
257
262
  이 기본값은 `@fluojs/email/queue`에서 `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS`로 export되므로, 호출 측에서 커스텀 queue adapter/worker를 만들 때 동일한 계약을 문서화하거나 반영할 수 있습니다.
258
263
 
264
+ Behavioral contract 메모:
265
+
266
+ - Queue 지원은 opt-in입니다. 루트 `@fluojs/email` 엔트리포인트와 `EmailModule`은 `@fluojs/queue`를 import하거나 `EmailNotificationsQueueWorker`를 등록하거나 queue peer 설치를 요구하지 않습니다.
267
+ - `EmailNotificationsQueueWorker`는 `@fluojs/email/queue`에서 export되며, queue 기반 전달을 활성화하는 애플리케이션이 직접 등록해야 합니다.
268
+ - worker는 `EmailChannel` 전달 semantics를 재사용하므로 transport가 수락된 수신자 0명 또는 `pending`/`rejected` 수신자를 보고하면 queued job이 실패합니다. 따라서 incomplete delivery는 성공한 job으로 승인되지 않고 `@fluojs/queue`의 retry/dead-letter 흐름으로 넘어갑니다.
269
+
259
270
  ### 의도적인 제한 사항
260
271
 
261
272
  email 패키지는 의도적으로 다음을 **포함하지 않습니다**:
262
273
 
263
274
  - `process.env`에서 transport 자격 증명을 직접 읽는 동작
264
275
  - 공유 루트 패키지에 내장된 SMTP 또는 Nodemailer transport 제공
265
- - `QueueModule` 자동 설정
276
+ - `QueueModule` 설정 또는 queue worker 자동 등록
266
277
  - provider 전용 옵션 타입을 `@fluojs/notifications`에 누출하는 것
267
278
 
268
279
  이 제한 사항은 transport 선택, 템플릿 전략, 큐 도입 여부가 애플리케이션 경계에서 명시적으로 결정되도록 하기 위한 package contract의 일부입니다.
@@ -273,6 +284,9 @@ email 패키지는 의도적으로 다음을 **포함하지 않습니다**:
273
284
 
274
285
  - `EmailModule.forRoot(options)` / `EmailModule.forRootAsync(options)`
275
286
  - `EmailService`
287
+ - `EmailService.sendMany(messages, options)`
288
+ - `EmailService.sendNotification(notification, options)`
289
+ - `EmailService.createPlatformStatusSnapshot()`
276
290
  - `EmailChannel`
277
291
  - `EMAIL`
278
292
  - `EMAIL_CHANNEL`
@@ -286,7 +300,7 @@ email 패키지는 의도적으로 다음을 **포함하지 않습니다**:
286
300
 
287
301
  ### 통합 서브패스
288
302
 
289
- - `@fluojs/email/queue`: `createEmailNotificationsQueueAdapter(queue)`, `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS`
303
+ - `@fluojs/email/queue`: `createEmailNotificationsQueueAdapter(queue)`, `EmailNotificationQueueJob`, `EmailNotificationsQueueWorker`, `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS`, `EmailQueueWorkerOptions`
290
304
 
291
305
  ### 상태 및 에러
292
306
 
@@ -299,16 +313,19 @@ email 패키지는 의도적으로 다음을 **포함하지 않습니다**:
299
313
  - `createNodemailerEmailTransport(...)`
300
314
  - `createNodemailerEmailTransportFactory(...)`
301
315
  - `NodemailerEmailTransport`
316
+ - `NodemailerTransporter`
317
+ - `NodemailerEmailTransportOptions`
318
+ - `NodemailerEmailTransportFactoryOptions`
302
319
 
303
320
  ## 런타임 전용 및 통합 서브패스
304
321
 
305
322
  | 런타임 | 서브패스 | export |
306
323
  | --- | --- | --- |
307
- | Node.js | `@fluojs/email/node` | `createNodemailerEmailTransport(...)`, `createNodemailerEmailTransportFactory(...)`, `NodemailerEmailTransport` |
324
+ | Node.js | `@fluojs/email/node` | `createNodemailerEmailTransport(...)`, `createNodemailerEmailTransportFactory(...)`, `NodemailerEmailTransport`, `NodemailerTransporter`, `NodemailerEmailTransportOptions`, `NodemailerEmailTransportFactoryOptions` |
308
325
 
309
326
  | 관심사 | 서브패스 | export |
310
327
  | --- | --- | --- |
311
- | queue 기반 notifications 통합 | `@fluojs/email/queue` | `createEmailNotificationsQueueAdapter(queue)`, `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS` |
328
+ | queue 기반 notifications 통합 | `@fluojs/email/queue` | `createEmailNotificationsQueueAdapter(queue)`, `EmailNotificationQueueJob`, `EmailNotificationsQueueWorker`, `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS`, `EmailQueueWorkerOptions` |
312
329
 
313
330
  ## 관련 패키지
314
331
 
package/README.md CHANGED
@@ -163,7 +163,10 @@ Behavioral contract notes:
163
163
 
164
164
  - `EmailService.send(...)` resolves `defaultFrom` and `defaultReplyTo` before delivery.
165
165
  - `EmailService.send(...)` preserves `accepted`, `pending`, and `rejected` recipients separately so partial provider failures stay caller-visible.
166
+ - `EmailService.sendMany(...)` is fail-fast by default; pass `continueOnError: true` to collect failures in a batch result.
167
+ - `EmailService.createPlatformStatusSnapshot()` exposes lifecycle, readiness, health, and transport ownership details for diagnostics.
166
168
  - The service initializes the configured transport during module bootstrap and closes factory-owned resources during application shutdown.
169
+ - Module options are trimmed and normalized before provider wiring, including sender defaults, notification channel names, and transport factory ownership.
167
170
  - The package never reads `process.env` directly. All configuration must enter through explicit options or DI.
168
171
 
169
172
  ### Integration with `@fluojs/notifications`
@@ -205,10 +208,11 @@ Supported notification payload fields:
205
208
  Behavioral contract notes:
206
209
 
207
210
  - `EmailChannel` treats any `pending` or `rejected` recipients as a failed notification dispatch instead of reporting the delivery as successful.
211
+ - `EmailService.sendNotification(...)` merges rendered template output with payload and notification metadata; payload fields override notification fallbacks.
208
212
 
209
213
  ### Queue-backed bulk delivery
210
214
 
211
- When `@fluojs/notifications` should offload bulk email delivery to the background, inject `QueueLifecycleService`, call `createEmailNotificationsQueueAdapter(queue)`, and import `QueueModule`.
215
+ When `@fluojs/notifications` should offload bulk email delivery to the background, import `QueueModule`, inject `QueueLifecycleService`, call `createEmailNotificationsQueueAdapter(queue)`, and register `EmailNotificationsQueueWorker` as an application provider. The root `EmailModule` does not register the worker automatically, so applications that never import `@fluojs/email/queue` do not need `@fluojs/queue` at runtime.
212
216
 
213
217
  ```typescript
214
218
  import { Module } from '@fluojs/core';
@@ -216,7 +220,7 @@ import {
216
220
  EmailModule,
217
221
  EMAIL_CHANNEL,
218
222
  } from '@fluojs/email';
219
- import { createEmailNotificationsQueueAdapter } from '@fluojs/email/queue';
223
+ import { createEmailNotificationsQueueAdapter, EmailNotificationsQueueWorker } from '@fluojs/email/queue';
220
224
  import { NotificationsModule } from '@fluojs/notifications';
221
225
  import { QueueLifecycleService, QueueModule } from '@fluojs/queue';
222
226
 
@@ -242,6 +246,7 @@ import { QueueLifecycleService, QueueModule } from '@fluojs/queue';
242
246
  }),
243
247
  }),
244
248
  ],
249
+ providers: [EmailNotificationsQueueWorker],
245
250
  })
246
251
  export class AppModule {}
247
252
  ```
@@ -256,13 +261,19 @@ The built-in queue worker contract uses these defaults:
256
261
 
257
262
  These defaults are exported from `@fluojs/email/queue` as `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS` so callers can document or mirror them when they build custom queue adapters/workers.
258
263
 
264
+ Behavioral contract notes:
265
+
266
+ - Queue support is opt-in. The root `@fluojs/email` entrypoint and `EmailModule` do not import `@fluojs/queue`, register `EmailNotificationsQueueWorker`, or require queue peer installation.
267
+ - `EmailNotificationsQueueWorker` is exported from `@fluojs/email/queue` and must be registered by applications that enable queue-backed delivery.
268
+ - The worker reuses `EmailChannel` delivery semantics, so a queued job fails when the underlying transport reports zero accepted recipients or any `pending`/`rejected` recipients. This lets `@fluojs/queue` retry and dead-letter incomplete deliveries instead of acknowledging them as successful jobs.
269
+
259
270
  ### Intentional limitations
260
271
 
261
272
  The email package intentionally does **not**:
262
273
 
263
274
  - read transport credentials from `process.env`
264
275
  - ship a built-in SMTP or Nodemailer transport in the shared root package
265
- - configure `QueueModule` automatically
276
+ - configure `QueueModule` or register queue workers automatically
266
277
  - leak provider-specific option types into `@fluojs/notifications`
267
278
 
268
279
  These limitations are part of the package contract so transport selection, template strategy, and queue rollout stay explicit at the application boundary.
@@ -273,6 +284,9 @@ These limitations are part of the package contract so transport selection, templ
273
284
 
274
285
  - `EmailModule.forRoot(options)` / `EmailModule.forRootAsync(options)`
275
286
  - `EmailService`
287
+ - `EmailService.sendMany(messages, options)`
288
+ - `EmailService.sendNotification(notification, options)`
289
+ - `EmailService.createPlatformStatusSnapshot()`
276
290
  - `EmailChannel`
277
291
  - `EMAIL`
278
292
  - `EMAIL_CHANNEL`
@@ -286,7 +300,7 @@ These limitations are part of the package contract so transport selection, templ
286
300
 
287
301
  ### Integration subpaths
288
302
 
289
- - `@fluojs/email/queue`: `createEmailNotificationsQueueAdapter(queue)`, `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS`
303
+ - `@fluojs/email/queue`: `createEmailNotificationsQueueAdapter(queue)`, `EmailNotificationQueueJob`, `EmailNotificationsQueueWorker`, `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS`, `EmailQueueWorkerOptions`
290
304
 
291
305
  ### Status and errors
292
306
 
@@ -299,16 +313,19 @@ These limitations are part of the package contract so transport selection, templ
299
313
  - `createNodemailerEmailTransport(...)`
300
314
  - `createNodemailerEmailTransportFactory(...)`
301
315
  - `NodemailerEmailTransport`
316
+ - `NodemailerTransporter`
317
+ - `NodemailerEmailTransportOptions`
318
+ - `NodemailerEmailTransportFactoryOptions`
302
319
 
303
320
  ## Runtime-Specific and Integration Subpaths
304
321
 
305
322
  | Runtime | Subpath | Exports |
306
323
  | --- | --- | --- |
307
- | Node.js | `@fluojs/email/node` | `createNodemailerEmailTransport(...)`, `createNodemailerEmailTransportFactory(...)`, `NodemailerEmailTransport` |
324
+ | Node.js | `@fluojs/email/node` | `createNodemailerEmailTransport(...)`, `createNodemailerEmailTransportFactory(...)`, `NodemailerEmailTransport`, `NodemailerTransporter`, `NodemailerEmailTransportOptions`, `NodemailerEmailTransportFactoryOptions` |
308
325
 
309
326
  | Concern | Subpath | Exports |
310
327
  | --- | --- | --- |
311
- | Queue-backed notifications integration | `@fluojs/email/queue` | `createEmailNotificationsQueueAdapter(queue)`, `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS` |
328
+ | Queue-backed notifications integration | `@fluojs/email/queue` | `createEmailNotificationsQueueAdapter(queue)`, `EmailNotificationQueueJob`, `EmailNotificationsQueueWorker`, `DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS`, `EmailQueueWorkerOptions` |
312
329
 
313
330
  ## Related Packages
314
331
 
@@ -1,6 +1,17 @@
1
- import type { EmailQueueWorkerOptions } from './types.js';
2
1
  /** Stable queue job name used by the email notifications worker contract. */
3
2
  export declare const EMAIL_QUEUE_JOB_NAME = "fluo.email.notification";
4
3
  /** Default worker options used by the built-in email notifications queue seam. */
5
- export declare const DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS: Required<EmailQueueWorkerOptions>;
4
+ export declare const DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS: Readonly<{
5
+ attempts: 3;
6
+ backoff: {
7
+ delayMs: number;
8
+ type: "exponential";
9
+ };
10
+ concurrency: 5;
11
+ jobName: "fluo.email.notification";
12
+ rateLimiter: {
13
+ duration: number;
14
+ max: number;
15
+ };
16
+ }>;
6
17
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAE9D,kFAAkF;AAClF,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,uBAAuB,CAY/E,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAE9D,kFAAkF;AAClF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;EAY7C,CAAC"}
package/dist/module.d.ts CHANGED
@@ -6,7 +6,7 @@ export declare class EmailModule {
6
6
  * Registers email providers using static options.
7
7
  *
8
8
  * @param options Static email module options including transport wiring and optional template rendering behavior.
9
- * @returns A global module definition that exports {@link EmailService}, {@link EmailChannel}, and queue integration tokens.
9
+ * @returns A global module definition that exports {@link EmailService}, {@link EmailChannel}, and email facade tokens.
10
10
  *
11
11
  * @example
12
12
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAOhE,OAAO,KAAK,EAGV,uBAAuB,EAGvB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AA0HpB,kFAAkF;AAClF,qBAAa,WAAW;IACtB;;;;;;;;;;;;;;;;QAgBI;IACJ,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;IAIvD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU;CAGlE"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAMhE,OAAO,KAAK,EAGV,uBAAuB,EAGvB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAyHpB,kFAAkF;AAClF,qBAAa,WAAW;IACtB;;;;;;;;;;;;;;;;QAgBI;IACJ,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;IAIvD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU;CAGlE"}
package/dist/module.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { defineModule } from '@fluojs/runtime';
2
2
  import { EmailConfigurationError } from './errors.js';
3
3
  import { EmailChannel } from './channel.js';
4
- import { EmailNotificationsQueueWorker } from './queue.js';
5
4
  import { EmailService } from './service.js';
6
5
  import { EMAIL, EMAIL_CHANNEL, EMAIL_OPTIONS } from './tokens.js';
7
6
  function normalizeAddress(address) {
@@ -52,7 +51,7 @@ function normalizeEmailModuleOptions(options) {
52
51
  };
53
52
  }
54
53
  function createEmailRuntimeProviders(optionsProvider) {
55
- return [optionsProvider, EmailService, EmailChannel, EmailNotificationsQueueWorker, {
54
+ return [optionsProvider, EmailService, EmailChannel, {
56
55
  inject: [EmailService],
57
56
  provide: EMAIL,
58
57
  useFactory: service => ({
@@ -76,7 +75,7 @@ function buildEmailModule(options) {
76
75
  class EmailRootModuleDefinition {}
77
76
  return defineModule(EmailRootModuleDefinition, {
78
77
  exports: [EmailService, EmailChannel, EMAIL, EMAIL_CHANNEL],
79
- global: true,
78
+ global: options.global ?? true,
80
79
  providers: createEmailProviders(options)
81
80
  });
82
81
  }
@@ -92,7 +91,7 @@ function buildEmailModuleAsync(options) {
92
91
  };
93
92
  return defineModule(EmailAsyncModuleDefinition, {
94
93
  exports: [EmailService, EmailChannel, EMAIL, EMAIL_CHANNEL],
95
- global: true,
94
+ global: options.global ?? true,
96
95
  providers: createEmailRuntimeProviders({
97
96
  inject: options.inject,
98
97
  provide: EMAIL_OPTIONS,
@@ -108,7 +107,7 @@ export class EmailModule {
108
107
  * Registers email providers using static options.
109
108
  *
110
109
  * @param options Static email module options including transport wiring and optional template rendering behavior.
111
- * @returns A global module definition that exports {@link EmailService}, {@link EmailChannel}, and queue integration tokens.
110
+ * @returns A global module definition that exports {@link EmailService}, {@link EmailChannel}, and email facade tokens.
112
111
  *
113
112
  * @example
114
113
  * ```ts
@@ -1,4 +1,4 @@
1
1
  export { DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS } from './constants.js';
2
- export { createEmailNotificationsQueueAdapter } from './queue.js';
3
- export type { EmailQueueWorkerOptions } from './types.js';
2
+ export { EmailNotificationQueueJob, EmailNotificationsQueueWorker, createEmailNotificationsQueueAdapter } from './queue.js';
3
+ export type { EmailQueueWorkerOptions } from './queue.js';
4
4
  //# sourceMappingURL=queue-entry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue-entry.d.ts","sourceRoot":"","sources":["../src/queue-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"queue-entry.d.ts","sourceRoot":"","sources":["../src/queue-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAC5H,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export { DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS } from './constants.js';
2
- export { createEmailNotificationsQueueAdapter } from './queue.js';
2
+ export { EmailNotificationQueueJob, EmailNotificationsQueueWorker, createEmailNotificationsQueueAdapter } from './queue.js';
package/dist/queue.d.ts CHANGED
@@ -1,11 +1,19 @@
1
1
  import type { NotificationsQueueAdapter } from '@fluojs/notifications';
2
- import { QueueLifecycleService } from '@fluojs/queue';
3
- import { EmailService } from './service.js';
2
+ import { type QueueLifecycleService, type QueueWorkerOptions } from '@fluojs/queue';
3
+ import { EmailChannel } from './channel.js';
4
4
  import type { EmailNotificationDispatchRequest } from './types.js';
5
+ /** Queue worker execution defaults used by the built-in notifications queue integration. */
6
+ export type EmailQueueWorkerOptions = QueueWorkerOptions;
5
7
  /** Serialized queue payload used by the built-in notifications queue adapter. */
6
8
  export declare class EmailNotificationQueueJob {
7
9
  readonly notification: EmailNotificationDispatchRequest;
8
10
  readonly queuedAt: string;
11
+ /**
12
+ * Creates one queued email notification job payload.
13
+ *
14
+ * @param notification Notification envelope that will be delivered by the email channel worker.
15
+ * @param queuedAt ISO timestamp captured when the notifications foundation delegated the job.
16
+ */
9
17
  constructor(notification: EmailNotificationDispatchRequest, queuedAt: string);
10
18
  }
11
19
  /**
@@ -29,10 +37,16 @@ export declare class EmailNotificationQueueJob {
29
37
  * ```
30
38
  */
31
39
  export declare function createEmailNotificationsQueueAdapter(queue: QueueLifecycleService): NotificationsQueueAdapter;
32
- /** Internal queue worker that converts queued notification jobs back into email delivery. */
40
+ /** Queue worker that converts queued notification jobs back into email delivery. */
33
41
  export declare class EmailNotificationsQueueWorker {
34
- private readonly email;
35
- constructor(email: EmailService);
42
+ private readonly channel;
43
+ constructor(channel: EmailChannel);
44
+ /**
45
+ * Delivers one queued email notification through the same channel semantics as direct dispatch.
46
+ *
47
+ * @param job Queued notification payload created by `createEmailNotificationsQueueAdapter(...)`.
48
+ * @returns A promise that resolves only when email delivery is accepted by the channel contract.
49
+ */
36
50
  handle(job: EmailNotificationQueueJob): Promise<void>;
37
51
  }
38
52
  //# sourceMappingURL=queue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAyB,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAe,MAAM,eAAe,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAEnE,iFAAiF;AACjF,qBAAa,yBAAyB;aAElB,YAAY,EAAE,gCAAgC;aAC9C,QAAQ,EAAE,MAAM;gBADhB,YAAY,EAAE,gCAAgC,EAC9C,QAAQ,EAAE,MAAM;CAEnC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,qBAAqB,GAAG,yBAAyB,CAW5G;AAED,6FAA6F;AAC7F,qBAEa,6BAA6B;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,MAAM,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5D"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAyB,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAe,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGjG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAEnE,4FAA4F;AAC5F,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEzD,iFAAiF;AACjF,qBAAa,yBAAyB;aAQlB,YAAY,EAAE,gCAAgC;aAC9C,QAAQ,EAAE,MAAM;IARlC;;;;;OAKG;gBAEe,YAAY,EAAE,gCAAgC,EAC9C,QAAQ,EAAE,MAAM;CAEnC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,qBAAqB,GAAG,yBAAyB,CAW5G;AAED,oFAAoF;AACpF,qBAEa,6BAA6B;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAElD;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5D"}
package/dist/queue.js CHANGED
@@ -7,9 +7,18 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
7
7
  import { Inject } from '@fluojs/core';
8
8
  import { QueueWorker } from '@fluojs/queue';
9
9
  import { DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS } from './constants.js';
10
- import { EmailService } from './service.js';
10
+ import { EmailChannel } from './channel.js';
11
+
12
+ /** Queue worker execution defaults used by the built-in notifications queue integration. */
13
+
11
14
  /** Serialized queue payload used by the built-in notifications queue adapter. */
12
15
  export class EmailNotificationQueueJob {
16
+ /**
17
+ * Creates one queued email notification job payload.
18
+ *
19
+ * @param notification Notification envelope that will be delivered by the email channel worker.
20
+ * @param queuedAt ISO timestamp captured when the notifications foundation delegated the job.
21
+ */
13
22
  constructor(notification, queuedAt) {
14
23
  this.notification = notification;
15
24
  this.queuedAt = queuedAt;
@@ -47,17 +56,24 @@ export function createEmailNotificationsQueueAdapter(queue) {
47
56
  };
48
57
  }
49
58
 
50
- /** Internal queue worker that converts queued notification jobs back into email delivery. */
59
+ /** Queue worker that converts queued notification jobs back into email delivery. */
51
60
  let _EmailNotificationsQu;
52
61
  class EmailNotificationsQueueWorker {
53
62
  static {
54
- [_EmailNotificationsQu, _initClass] = _applyDecs(this, [QueueWorker(EmailNotificationQueueJob, DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS), Inject(EmailService)], []).c;
63
+ [_EmailNotificationsQu, _initClass] = _applyDecs(this, [QueueWorker(EmailNotificationQueueJob, DEFAULT_EMAIL_QUEUE_WORKER_OPTIONS), Inject(EmailChannel)], []).c;
55
64
  }
56
- constructor(email) {
57
- this.email = email;
65
+ constructor(channel) {
66
+ this.channel = channel;
58
67
  }
68
+
69
+ /**
70
+ * Delivers one queued email notification through the same channel semantics as direct dispatch.
71
+ *
72
+ * @param job Queued notification payload created by `createEmailNotificationsQueueAdapter(...)`.
73
+ * @returns A promise that resolves only when email delivery is accepted by the channel contract.
74
+ */
59
75
  async handle(job) {
60
- await this.email.sendNotification(job.notification);
76
+ await this.channel.send(job.notification, {});
61
77
  }
62
78
  static {
63
79
  _initClass();
package/dist/types.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import type { AsyncModuleOptions, MaybePromise } from '@fluojs/core';
2
2
  import type { NotificationDispatchRequest } from '@fluojs/notifications';
3
- import type { QueueBackoffOptions, QueueRateLimiterOptions } from '@fluojs/queue';
4
3
  /** RFC 5322-style email address with an optional display name. */
5
4
  export interface EmailAddress {
6
5
  address: string;
@@ -176,18 +175,12 @@ export interface EmailSendOptions {
176
175
  export interface EmailSendManyOptions extends EmailSendOptions {
177
176
  continueOnError?: boolean;
178
177
  }
179
- /** Queue worker execution defaults used by the built-in notifications queue integration. */
180
- export interface EmailQueueWorkerOptions {
181
- attempts?: number;
182
- backoff?: QueueBackoffOptions;
183
- concurrency?: number;
184
- jobName?: string;
185
- rateLimiter?: QueueRateLimiterOptions;
186
- }
187
178
  /** Module options accepted by {@link EmailModule.forRoot} and `forRootAsync`. */
188
179
  export interface EmailModuleOptions {
189
180
  defaultFrom?: EmailAddressLike;
190
181
  defaultReplyTo?: EmailAddressLike | readonly EmailAddressLike[];
182
+ /** Whether email providers should be visible globally. Defaults to `true`. */
183
+ global?: boolean;
191
184
  notifications?: {
192
185
  channel?: string;
193
186
  };
@@ -196,7 +189,7 @@ export interface EmailModuleOptions {
196
189
  verifyOnModuleInit?: boolean;
197
190
  }
198
191
  /** Async registration options for email modules that derive config through DI. */
199
- export type EmailAsyncModuleOptions = AsyncModuleOptions<EmailModuleOptions>;
192
+ export type EmailAsyncModuleOptions = AsyncModuleOptions<Omit<EmailModuleOptions, 'global'>> & Pick<EmailModuleOptions, 'global'>;
200
193
  /** Normalized module options resolved once during module registration. */
201
194
  export interface NormalizedEmailModuleOptions {
202
195
  defaultFrom?: EmailAddress;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAElF,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,YAAY,CAAC;AAErD,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACzC,GAAG,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;IACrD,EAAE,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;CACpD;AAED,+EAA+E;AAC/E,MAAM,MAAM,0BAA0B,GAAG,SAAS,YAAY,EAAE,CAAC;AAEjE,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACzC,GAAG,EAAE,0BAA0B,CAAC;IAChC,EAAE,EAAE,0BAA0B,CAAC;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,0BAA0B,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,0BAA0B,CAAC;CAChC;AAED,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,iEAAiE;AACjE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEtG;;;;OAIG;IACH,MAAM,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAE9B;;;;OAIG;IACH,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,MAAM,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;IAEvC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,yFAAyF;AACzF,MAAM,WAAW,wBAAwB,CAAC,QAAQ,SAAS,wBAAwB,GAAG,wBAAwB;IAC5G,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,SAAS,wBAAwB,GAAG,wBAAwB,EACzE,KAAK,EAAE,wBAAwB,CAAC,QAAQ,CAAC,GACxC,YAAY,CAAC,yBAAyB,CAAC,CAAC;CAC5C;AAED,yGAAyG;AACzG,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACzC,GAAG,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;IACrD,EAAE,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;CACrD;AAED,wFAAwF;AACxF,MAAM,WAAW,gCAAiC,SAAQ,2BAA2B,CAAC,wBAAwB,CAAC;IAC7G,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,2FAA2F;AAC3F,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,yDAAyD;AACzD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,+DAA+D;AAC/D,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,4FAA4F;AAC5F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,cAAc,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;IAChE,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,SAAS,EAAE,cAAc,GAAG,qBAAqB,CAAC;IAClD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,kFAAkF;AAClF,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AAE7E,0EAA0E;AAC1E,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,0BAA0B,CAAC;IAC3C,aAAa,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,KAAK;IACpB;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAElF;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3G;;;;;;OAMG;IACH,gBAAgB,CACd,YAAY,EAAE,gCAAgC,EAC9C,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "queue",
11
11
  "mailer"
12
12
  ],
13
- "version": "1.0.0-beta.1",
13
+ "version": "1.0.0-beta.3",
14
14
  "private": false,
15
15
  "license": "MIT",
16
16
  "repository": {
@@ -52,14 +52,14 @@
52
52
  "dist"
53
53
  ],
54
54
  "dependencies": {
55
- "@fluojs/core": "^1.0.0-beta.1",
56
- "@fluojs/runtime": "^1.0.0-beta.1",
57
- "@fluojs/notifications": "^1.0.0-beta.1",
58
- "@fluojs/di": "^1.0.0-beta.1"
55
+ "@fluojs/core": "^1.0.0-beta.4",
56
+ "@fluojs/di": "^1.0.0-beta.6",
57
+ "@fluojs/notifications": "^1.0.0-beta.3",
58
+ "@fluojs/runtime": "^1.0.0-beta.11"
59
59
  },
60
60
  "peerDependencies": {
61
61
  "nodemailer": "^6.10.1",
62
- "@fluojs/queue": "^1.0.0-beta.1"
62
+ "@fluojs/queue": "^1.0.0-beta.4"
63
63
  },
64
64
  "peerDependenciesMeta": {
65
65
  "@fluojs/queue": {
@@ -72,7 +72,7 @@
72
72
  "devDependencies": {
73
73
  "@types/nodemailer": "^8.0.0",
74
74
  "vitest": "^3.2.4",
75
- "@fluojs/queue": "^1.0.0-beta.1"
75
+ "@fluojs/queue": "^1.0.0-beta.4"
76
76
  },
77
77
  "scripts": {
78
78
  "prebuild": "node ../../tooling/scripts/clean-dist.mjs",