@breadstone/archipel-mcp 0.0.22 → 0.0.25
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 +32 -13
- package/data/guides/ai-text-generation.md +16 -24
- package/data/guides/caching.md +33 -0
- package/data/guides/email-delivery.md +27 -1
- package/data/guides/email-templates.md +49 -39
- package/data/guides/esigning-integration.md +11 -5
- package/data/guides/health-indicators.md +220 -0
- package/data/guides/index.md +2 -0
- package/data/guides/queue-infrastructure.md +329 -0
- package/data/guides/telemetry-and-observability.md +20 -0
- package/data/packages/platform-analytics/api/Class.AnalyticsClientPort.md +20 -0
- package/data/packages/platform-analytics/api/Class.AnalyticsHealthIndicator.md +78 -0
- package/data/packages/platform-analytics/api/Class.AppInsightsAnalyticsClient.md +24 -0
- package/data/packages/platform-analytics/api/Class.DatadogAnalyticsClient.md +24 -0
- package/data/packages/platform-analytics/api/Class.NoopAnalyticsClient.md +24 -0
- package/data/packages/platform-analytics/api/Class.SentryAnalyticsClient.md +24 -0
- package/data/packages/platform-analytics/api/index.md +1 -0
- package/data/packages/platform-analytics/index.md +25 -1
- package/data/packages/platform-authentication/api/Class.AuthenticationHealthIndicator.md +68 -0
- package/data/packages/platform-authentication/api/Interface.IMfaSubjectUpdate.md +1 -1
- package/data/packages/platform-authentication/api/index.md +2 -1
- package/data/packages/platform-authentication/index.md +25 -1
- package/data/packages/platform-blob-storage/api/Class.BlobHealthIndicator.md +7 -7
- package/data/packages/platform-blob-storage/api/Class.BlobModule.md +2 -2
- package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +3 -3
- package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +3 -3
- package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +5 -5
- package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +3 -3
- package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +3 -3
- package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +1 -1
- package/data/packages/platform-blob-storage/api/index.md +1 -1
- package/data/packages/platform-blob-storage/index.md +19 -14
- package/data/packages/platform-caching/api/Class.MemoryLayeredCache.md +10 -10
- package/data/packages/platform-caching/api/Class.NoopCacheMetricsRecorder.md +6 -6
- package/data/packages/platform-caching/api/Class.RedisLayeredCache.md +13 -13
- package/data/packages/platform-caching/api/Interface.ILayeredCache.md +9 -9
- package/data/packages/platform-caching/api/Interface.ILayeredCacheOptions.md +6 -6
- package/data/packages/platform-caching/api/Variable.CACHE_DEFAULT_TTL_MS.md +14 -0
- package/data/packages/platform-caching/api/Variable.CACHE_MAX_ENTRIES.md +14 -0
- package/data/packages/platform-caching/api/Variable.CACHE_STALE_WHILE_REVALIDATE.md +14 -0
- package/data/packages/platform-caching/api/Variable.PLATFORM_CACHING_CONFIG_ENTRIES.md +14 -0
- package/data/packages/platform-caching/api/Variable.REDIS_CONFIG_ENTRIES.md +14 -0
- package/data/packages/platform-caching/api/Variable.REDIS_KEY_PREFIX.md +14 -0
- package/data/packages/platform-caching/api/Variable.REDIS_TTL_SECONDS.md +14 -0
- package/data/packages/platform-caching/api/Variable.REDIS_URL.md +14 -0
- package/data/packages/platform-caching/api/index.md +13 -0
- package/data/packages/platform-caching/index.md +47 -1
- package/data/packages/platform-configuration/api/Function.createConfigKey.md +1 -1
- package/data/packages/platform-core/api/Class.HttpLoggerMiddleware.md +3 -3
- package/data/packages/platform-core/api/Function.maskSensitive.md +26 -0
- package/data/packages/platform-core/api/Function.maskSensitiveFields.md +26 -0
- package/data/packages/platform-core/api/index.md +2 -0
- package/data/packages/platform-core/index.md +11 -0
- package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +8 -6
- package/data/packages/platform-database/api/Class.DatabaseModule.md +3 -3
- package/data/packages/platform-database/api/Class.RepositoryBase.md +20 -20
- package/data/packages/platform-database/api/Function.paginator.md +1 -1
- package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +3 -3
- package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +1 -1
- package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +1 -1
- package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +1 -1
- package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +1 -1
- package/data/packages/platform-database/index.md +17 -5
- package/data/packages/platform-documents/api/Class.DocumentEngine.md +9 -5
- package/data/packages/platform-documents/index.md +1 -1
- package/data/packages/platform-esigning/api/Class.AdobeSignEsigningProvider.md +24 -0
- package/data/packages/platform-esigning/api/Class.DocuSignEsigningProvider.md +24 -0
- package/data/packages/platform-esigning/api/Class.DropboxSignEsigningProvider.md +24 -0
- package/data/packages/platform-esigning/api/Class.EsigningClientPort.md +20 -0
- package/data/packages/platform-esigning/api/Class.EsigningHealthIndicator.md +78 -0
- package/data/packages/platform-esigning/api/Class.InternalEsigningProvider.md +24 -0
- package/data/packages/platform-esigning/api/index.md +1 -0
- package/data/packages/platform-esigning/index.md +26 -2
- package/data/packages/platform-health/api/Class.HealthModule.md +42 -0
- package/data/packages/platform-health/api/Class.HealthOrchestrator.md +64 -0
- package/data/packages/platform-health/api/Interface.IHealthCheckResult.md +46 -0
- package/data/packages/platform-health/api/Interface.IHealthIndicator.md +41 -0
- package/data/packages/platform-health/api/Variable.HEALTH_INDICATORS_TOKEN.md +14 -0
- package/data/packages/platform-health/api/index.md +26 -0
- package/data/packages/platform-health/index.md +19 -8
- package/data/packages/platform-intelligence/api/Class.IntelligenceHealthIndicator.md +78 -0
- package/data/packages/platform-intelligence/api/index.md +1 -0
- package/data/packages/platform-intelligence/index.md +24 -1
- package/data/packages/platform-logging/api/Class.ContextLogger.md +152 -0
- package/data/packages/platform-logging/api/Class.LoggerModule.md +8 -2
- package/data/packages/platform-logging/api/Class.RequestContextStore.md +90 -0
- package/data/packages/platform-logging/api/Class.RequestIdMiddleware.md +68 -0
- package/data/packages/platform-logging/api/Interface.IRequestContext.md +34 -0
- package/data/packages/platform-logging/api/Variable.REQUEST_ID_HEADER.md +14 -0
- package/data/packages/platform-logging/api/index.md +11 -1
- package/data/packages/platform-logging/index.md +89 -7
- package/data/packages/platform-mailing/api/Class.MailHealthIndicator.md +5 -5
- package/data/packages/platform-mailing/api/Class.MailModule.md +28 -1
- package/data/packages/platform-mailing/api/Class.MailVerificationService.md +49 -16
- package/data/packages/platform-mailing/api/Class.SmtpConnectionVerifier.md +84 -0
- package/data/packages/platform-mailing/api/Interface.IMailModuleOptions.md +36 -0
- package/data/packages/platform-mailing/api/index.md +3 -1
- package/data/packages/platform-mailing/index.md +64 -8
- package/data/packages/platform-mapping/api/Class.MappingBuilder.md +110 -0
- package/data/packages/platform-mapping/api/Class.MappingError.md +56 -0
- package/data/packages/platform-mapping/api/Class.MappingModule.md +46 -0
- package/data/packages/platform-mapping/api/Class.MappingNotRegisteredError.md +52 -0
- package/data/packages/platform-mapping/api/Class.MappingProfileBase.md +52 -0
- package/data/packages/platform-mapping/api/Class.MappingService.md +284 -0
- package/data/packages/platform-mapping/api/Class.TypeMappingNotRegisteredError.md +53 -0
- package/data/packages/platform-mapping/api/Function.createMappingKey.md +39 -0
- package/data/packages/platform-mapping/api/Interface.IMappingBuilder.md +76 -0
- package/data/packages/platform-mapping/api/Interface.IMappingKey.md +58 -0
- package/data/packages/platform-mapping/api/Interface.IMappingProfile.md +32 -0
- package/data/packages/platform-mapping/api/TypeAlias.Constructor.md +28 -0
- package/data/packages/platform-mapping/api/index.md +38 -0
- package/data/packages/platform-mapping/index.md +1 -1
- package/data/packages/platform-mcp/api/Class.McpHealthIndicator.md +78 -0
- package/data/packages/platform-mcp/api/index.md +1 -0
- package/data/packages/platform-mcp/index.md +24 -1
- package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +2 -2
- package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +2 -2
- package/data/packages/platform-payments/api/Class.LemonSqueezyClient.md +24 -0
- package/data/packages/platform-payments/api/Class.MollieClient.md +24 -0
- package/data/packages/platform-payments/api/Class.PaddleClient.md +24 -0
- package/data/packages/platform-payments/api/Class.PaymentClientPort.md +20 -0
- package/data/packages/platform-payments/api/Class.PaymentHealthIndicator.md +78 -0
- package/data/packages/platform-payments/api/Class.StripeClient.md +28 -4
- package/data/packages/platform-payments/api/index.md +1 -0
- package/data/packages/platform-payments/index.md +26 -2
- package/data/packages/platform-queue/api/Class.AzureQueue.md +221 -0
- package/data/packages/platform-queue/api/Class.BullMqQueue.md +220 -0
- package/data/packages/platform-queue/api/Class.MemoryQueue.md +194 -0
- package/data/packages/platform-queue/api/Class.QueueError.md +51 -0
- package/data/packages/platform-queue/api/Class.QueueHealthIndicator.md +68 -0
- package/data/packages/platform-queue/api/Class.QueueJobNotFoundError.md +43 -0
- package/data/packages/platform-queue/api/Class.QueueJobStateError.md +48 -0
- package/data/packages/platform-queue/api/Class.QueueValidationError.md +43 -0
- package/data/packages/platform-queue/api/Interface.IAzureQueueOptions.md +48 -0
- package/data/packages/platform-queue/api/Interface.IBullMqQueueOptions.md +45 -0
- package/data/packages/platform-queue/api/Interface.IMemoryQueueOptions.md +32 -0
- package/data/packages/platform-queue/api/Interface.IQueue.md +173 -0
- package/data/packages/platform-queue/api/Interface.IQueueJob.md +139 -0
- package/data/packages/platform-queue/api/TypeAlias.QueueJobStatus.md +14 -0
- package/data/packages/platform-queue/api/Variable.AZURE_CONFIG_ENTRIES.md +17 -0
- package/data/packages/platform-queue/api/Variable.AZURE_CONNECTION_STRING.md +14 -0
- package/data/packages/platform-queue/api/Variable.AZURE_RECEIVE_WAIT_MS.md +21 -0
- package/data/packages/platform-queue/api/Variable.BULLMQ_CONFIG_ENTRIES.md +17 -0
- package/data/packages/platform-queue/api/Variable.BULLMQ_PREFIX.md +18 -0
- package/data/packages/platform-queue/api/Variable.BULLMQ_REDIS_URL.md +21 -0
- package/data/packages/platform-queue/api/Variable.PLATFORM_QUEUE_CONFIG_ENTRIES.md +17 -0
- package/data/packages/platform-queue/api/Variable.QUEUE_JOB_STATUS.md +30 -0
- package/data/packages/platform-queue/api/Variable.QUEUE_MAX_JOBS.md +21 -0
- package/data/packages/platform-queue/api/index.md +49 -0
- package/data/packages/platform-queue/index.md +168 -0
- package/data/packages/platform-resources/api/Class.BlobResourceStrategy.md +195 -0
- package/data/packages/platform-resources/api/Class.EmbeddedResourceStrategy.md +215 -0
- package/data/packages/platform-resources/api/Class.FileResourceStrategy.md +190 -0
- package/data/packages/platform-resources/api/Class.ResourceManager.md +477 -0
- package/data/packages/platform-resources/api/Class.ResourceModule.md +46 -0
- package/data/packages/platform-resources/api/Class.ResourceNotFoundError.md +60 -0
- package/data/packages/platform-resources/api/Interface.IBlobResourceStrategyConfig.md +28 -0
- package/data/packages/platform-resources/api/Interface.IBlobServiceAdapter.md +40 -0
- package/data/packages/platform-resources/api/Interface.IFileResourceStrategyConfig.md +72 -0
- package/data/packages/platform-resources/api/Interface.IResourceManagerConfig.md +89 -0
- package/data/packages/platform-resources/api/Interface.IResourceMetadata.md +94 -0
- package/data/packages/platform-resources/api/Interface.IResourceResult.md +34 -0
- package/data/packages/platform-resources/api/Interface.IResourceStrategy.md +134 -0
- package/data/packages/platform-resources/api/index.md +29 -0
- package/data/packages/platform-resources/index.md +1 -1
- package/data/packages/platform-telemetry/api/Class.OtelSdkHolder.md +21 -3
- package/data/packages/platform-telemetry/api/Class.TelemetryHealthIndicator.md +78 -0
- package/data/packages/platform-telemetry/api/index.md +1 -0
- package/data/packages/platform-telemetry/index.md +25 -1
- package/data/patterns/config-pattern.md +5 -3
- package/package.json +2 -2
- package/src/tools/registerGetConfigPatternTool.js +1 -1
- package/src/tools/registerGetDtoPatternTool.js +1 -1
- package/src/tools/registerGetErrorHandlingPatternTool.js +1 -1
- package/src/tools/registerGetGuardPatternTool.js +1 -1
- package/src/tools/registerGetMappingPatternTool.js +1 -1
- package/src/tools/registerGetModulePatternTool.js +1 -1
- package/src/tools/registerGetQueryPatternTool.js +1 -1
- package/src/tools/registerGetRepositoryPatternTool.js +1 -1
- package/src/tools/registerGetTestingPatternTool.js +1 -1
|
@@ -46,7 +46,7 @@ Defined in: [stripe/StripeClient.ts:40](https://github.com/RueDeRennes/archipel/
|
|
|
46
46
|
constructWebhookEvent(payload, signature): INormalizedWebhookEvent;
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
Defined in: [stripe/StripeClient.ts:
|
|
49
|
+
Defined in: [stripe/StripeClient.ts:156](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L156)
|
|
50
50
|
|
|
51
51
|
Construct and normalize a webhook event.
|
|
52
52
|
|
|
@@ -79,7 +79,7 @@ createCheckoutSession(
|
|
|
79
79
|
userId?): Promise<INormalizedCheckoutSession>;
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
Defined in: [stripe/StripeClient.ts:
|
|
82
|
+
Defined in: [stripe/StripeClient.ts:91](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L91)
|
|
83
83
|
|
|
84
84
|
Create a checkout session.
|
|
85
85
|
|
|
@@ -110,7 +110,7 @@ Normalized checkout session
|
|
|
110
110
|
fetchPrices(productId): Promise<INormalizedPrice[]>;
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
Defined in: [stripe/StripeClient.ts:
|
|
113
|
+
Defined in: [stripe/StripeClient.ts:62](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L62)
|
|
114
114
|
|
|
115
115
|
Fetch all active prices for a product.
|
|
116
116
|
|
|
@@ -140,7 +140,7 @@ fetchSubscription(subscriptionId): Promise<
|
|
|
140
140
|
| null>;
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
-
Defined in: [stripe/StripeClient.ts:
|
|
143
|
+
Defined in: [stripe/StripeClient.ts:131](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L131)
|
|
144
144
|
|
|
145
145
|
Retrieve subscription details.
|
|
146
146
|
|
|
@@ -161,3 +161,27 @@ Normalized subscription
|
|
|
161
161
|
#### Overrides
|
|
162
162
|
|
|
163
163
|
[`PaymentClientPort`](Class.PaymentClientPort).[`fetchSubscription`](Class.PaymentClientPort#fetchsubscription)
|
|
164
|
+
|
|
165
|
+
***
|
|
166
|
+
|
|
167
|
+
### ping()
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
ping(): Promise<boolean>;
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Defined in: [contracts/PaymentClientPort.ts:76](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/PaymentClientPort.ts#L76)
|
|
174
|
+
|
|
175
|
+
Lightweight connectivity check for the payment provider.
|
|
176
|
+
Override in adapters to perform a real API call (e.g. list products).
|
|
177
|
+
Defaults to `true` if not overridden.
|
|
178
|
+
|
|
179
|
+
#### Returns
|
|
180
|
+
|
|
181
|
+
`Promise`\<`boolean`\>
|
|
182
|
+
|
|
183
|
+
`true` if the provider is reachable.
|
|
184
|
+
|
|
185
|
+
#### Inherited from
|
|
186
|
+
|
|
187
|
+
[`PaymentClientPort`](Class.PaymentClientPort).[`ping`](Class.PaymentClientPort#ping)
|
|
@@ -17,6 +17,7 @@ editUrl: false
|
|
|
17
17
|
| [PaddleClient](Class.PaddleClient) | Paddle implementation of the [PaymentClientPort](Class.PaymentClientPort). Uses the official `@paddle/paddle-node-sdk` to interact with the Paddle Billing API. |
|
|
18
18
|
| [PaymentClientPort](Class.PaymentClientPort) | Abstract port for payment provider clients. Each provider (Stripe, Paddle, LemonSqueezy, Mollie) must implement this contract so that the consuming application can switch providers without changing business logic. |
|
|
19
19
|
| [PaymentError](Class.PaymentError) | Domain error thrown when a payment operation fails. |
|
|
20
|
+
| [PaymentHealthIndicator](Class.PaymentHealthIndicator) | Health indicator for the payment infrastructure. Calls [PaymentClientPort.ping](Class.PaymentClientPort#ping) to verify provider connectivity. |
|
|
20
21
|
| [PaymentModule](Class.PaymentModule) | NestJS module providing generic payment infrastructure. Exposes a configurable payment client, a feature-gating guard, and a usage-tracking interceptor. The specific payment provider (Stripe, Paddle, LemonSqueezy, Mollie) is selected via the options. |
|
|
21
22
|
| [StripeClient](Class.StripeClient) | Stripe implementation of the [PaymentClientPort](Class.PaymentClientPort). All Stripe-specific types and logic are encapsulated here. |
|
|
22
23
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: platform-payments
|
|
3
3
|
description: Provider-agnostic payment infrastructure with support for Stripe, Paddle, LemonSqueezy, and Mollie.
|
|
4
4
|
order: 4
|
|
5
|
-
tags: [payments, stripe, paddle, lemonsqueezy, mollie, feature-gating, quotas, guards, interceptors, ports-and-adapters]
|
|
5
|
+
tags: [payments, stripe, paddle, lemonsqueezy, mollie, feature-gating, quotas, guards, interceptors, ports-and-adapters, health]
|
|
6
6
|
package: '@breadstone/archipel-platform-payments'
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -151,7 +151,7 @@ import { LemonSqueezyClient, LEMONSQUEEZY_CONFIG_ENTRIES } from '@breadstone/arc
|
|
|
151
151
|
| Variable | Description | Required |
|
|
152
152
|
| ----------------------- | -------------------------------------- | -------- |
|
|
153
153
|
| `MOLLIE_API_KEY` | Mollie API key | Yes |
|
|
154
|
-
| `MOLLIE_WEBHOOK_SECRET` | Mollie webhook secret for verification |
|
|
154
|
+
| `MOLLIE_WEBHOOK_SECRET` | Mollie webhook secret for verification | Yes |
|
|
155
155
|
|
|
156
156
|
```typescript
|
|
157
157
|
import { MollieClient, MOLLIE_CONFIG_ENTRIES } from '@breadstone/archipel-platform-payments/mollie';
|
|
@@ -532,6 +532,29 @@ try {
|
|
|
532
532
|
|
|
533
533
|
---
|
|
534
534
|
|
|
535
|
+
## Health Check
|
|
536
|
+
|
|
537
|
+
The `PaymentHealthIndicator` verifies that a `PaymentClientPort` is injected. If no payment client is registered, it reports `disabled: true`. Import it from the `/health` subpath:
|
|
538
|
+
|
|
539
|
+
```typescript
|
|
540
|
+
import { PaymentHealthIndicator } from '@breadstone/archipel-platform-payments/health';
|
|
541
|
+
import { HealthModule } from '@breadstone/archipel-platform-health';
|
|
542
|
+
|
|
543
|
+
@Module({
|
|
544
|
+
imports: [
|
|
545
|
+
PaymentModule.register({ /* ... */ }),
|
|
546
|
+
HealthModule.withIndicators([PaymentHealthIndicator]),
|
|
547
|
+
],
|
|
548
|
+
})
|
|
549
|
+
export class AppModule {}
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
| Key | Check | Dependencies |
|
|
553
|
+
| --- | ----- | ------------ |
|
|
554
|
+
| `payment` | `up` if `PaymentClientPort` injected, else `disabled` | `@Optional() PaymentClientPort` |
|
|
555
|
+
|
|
556
|
+
---
|
|
557
|
+
|
|
535
558
|
## Exports Summary
|
|
536
559
|
|
|
537
560
|
### Core (`@breadstone/archipel-platform-payments`)
|
|
@@ -552,6 +575,7 @@ try {
|
|
|
552
575
|
| `INormalizedWebhookEvent` | Interface | Normalized webhook event |
|
|
553
576
|
| `SubscriptionStatus` | Type Alias | Subscription status union |
|
|
554
577
|
| `PaymentError` | Error class | Domain error for payment failures |
|
|
578
|
+
| `PaymentHealthIndicator` | Health | Payment readiness check (`/health` subpath) |
|
|
555
579
|
|
|
556
580
|
### Provider subpaths
|
|
557
581
|
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Class: AzureQueue'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Class: AzureQueue
|
|
7
|
+
|
|
8
|
+
Defined in: [azure/AzureQueue.ts:56](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L56)
|
|
9
|
+
|
|
10
|
+
Azure Service Bus queue implementation.
|
|
11
|
+
|
|
12
|
+
Uses Azure Service Bus for cloud-native, enterprise-grade messaging.
|
|
13
|
+
Operates in peek-lock mode: dequeued messages remain locked until
|
|
14
|
+
explicitly completed or dead-lettered.
|
|
15
|
+
|
|
16
|
+
## Remarks
|
|
17
|
+
|
|
18
|
+
Senders and receivers are lazily created per queue name and cached for
|
|
19
|
+
the lifetime of the instance. Call [onModuleDestroy](#onmoduledestroy) (handled
|
|
20
|
+
automatically by NestJS) to release all underlying connections.
|
|
21
|
+
|
|
22
|
+
## Implements
|
|
23
|
+
|
|
24
|
+
- [`IQueue`](Interface.IQueue)
|
|
25
|
+
- `OnModuleDestroy`
|
|
26
|
+
|
|
27
|
+
## Constructors
|
|
28
|
+
|
|
29
|
+
### Constructor
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
new AzureQueue(options): AzureQueue;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Defined in: [azure/AzureQueue.ts:76](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L76)
|
|
36
|
+
|
|
37
|
+
Creates a new AzureQueue instance.
|
|
38
|
+
|
|
39
|
+
#### Parameters
|
|
40
|
+
|
|
41
|
+
| Parameter | Type | Description |
|
|
42
|
+
| ------ | ------ | ------ |
|
|
43
|
+
| `options` | [`IAzureQueueOptions`](Interface.IAzureQueueOptions) | Connection and receive configuration. See [IAzureQueueOptions](Interface.IAzureQueueOptions). |
|
|
44
|
+
|
|
45
|
+
#### Returns
|
|
46
|
+
|
|
47
|
+
`AzureQueue`
|
|
48
|
+
|
|
49
|
+
## Methods
|
|
50
|
+
|
|
51
|
+
### dequeue()
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
dequeue(queueName): Promise<IQueueJob<unknown> | null>;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Defined in: [azure/AzureQueue.ts:115](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L115)
|
|
58
|
+
|
|
59
|
+
Dequeues the next pending job from the named queue.
|
|
60
|
+
|
|
61
|
+
The returned job transitions to `processing` status.
|
|
62
|
+
|
|
63
|
+
#### Parameters
|
|
64
|
+
|
|
65
|
+
| Parameter | Type | Description |
|
|
66
|
+
| ------ | ------ | ------ |
|
|
67
|
+
| `queueName` | `string` | The name of the queue to dequeue from. |
|
|
68
|
+
|
|
69
|
+
#### Returns
|
|
70
|
+
|
|
71
|
+
`Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\> \| `null`\>
|
|
72
|
+
|
|
73
|
+
The next pending job, or `null` if the queue is empty.
|
|
74
|
+
|
|
75
|
+
#### Implementation of
|
|
76
|
+
|
|
77
|
+
[`IQueue`](Interface.IQueue).[`dequeue`](Interface.IQueue#dequeue)
|
|
78
|
+
|
|
79
|
+
***
|
|
80
|
+
|
|
81
|
+
### enqueue()
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
enqueue<T>(queueName, payload): Promise<IQueueJob<T>>;
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Defined in: [azure/AzureQueue.ts:86](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L86)
|
|
88
|
+
|
|
89
|
+
Enqueues a new job into the named queue.
|
|
90
|
+
|
|
91
|
+
#### Type Parameters
|
|
92
|
+
|
|
93
|
+
| Type Parameter | Default type | Description |
|
|
94
|
+
| ------ | ------ | ------ |
|
|
95
|
+
| `T` | `unknown` | |
|
|
96
|
+
|
|
97
|
+
#### Parameters
|
|
98
|
+
|
|
99
|
+
| Parameter | Type | Description |
|
|
100
|
+
| ------ | ------ | ------ |
|
|
101
|
+
| `queueName` | `string` | The name of the target queue. |
|
|
102
|
+
| `payload` | `T` | The job payload. |
|
|
103
|
+
|
|
104
|
+
#### Returns
|
|
105
|
+
|
|
106
|
+
`Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`T`\>\>
|
|
107
|
+
|
|
108
|
+
The created job in `pending` status.
|
|
109
|
+
|
|
110
|
+
#### Implementation of
|
|
111
|
+
|
|
112
|
+
[`IQueue`](Interface.IQueue).[`enqueue`](Interface.IQueue#enqueue)
|
|
113
|
+
|
|
114
|
+
***
|
|
115
|
+
|
|
116
|
+
### getJobs()
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
getJobs(queueName): Promise<readonly IQueueJob<unknown>[]>;
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Defined in: [azure/AzureQueue.ts:222](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L222)
|
|
123
|
+
|
|
124
|
+
Returns all jobs for the given queue in insertion order.
|
|
125
|
+
|
|
126
|
+
#### Parameters
|
|
127
|
+
|
|
128
|
+
| Parameter | Type | Description |
|
|
129
|
+
| ------ | ------ | ------ |
|
|
130
|
+
| `queueName` | `string` | The name of the queue. |
|
|
131
|
+
|
|
132
|
+
#### Returns
|
|
133
|
+
|
|
134
|
+
`Promise`\<readonly [`IQueueJob`](Interface.IQueueJob)\<`unknown`\>[]\>
|
|
135
|
+
|
|
136
|
+
An array of jobs, possibly empty.
|
|
137
|
+
|
|
138
|
+
#### Implementation of
|
|
139
|
+
|
|
140
|
+
[`IQueue`](Interface.IQueue).[`getJobs`](Interface.IQueue#getjobs)
|
|
141
|
+
|
|
142
|
+
***
|
|
143
|
+
|
|
144
|
+
### markCompleted()
|
|
145
|
+
|
|
146
|
+
```ts
|
|
147
|
+
markCompleted(jobId): Promise<IQueueJob<unknown>>;
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Defined in: [azure/AzureQueue.ts:147](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L147)
|
|
151
|
+
|
|
152
|
+
Marks a processing job as completed.
|
|
153
|
+
|
|
154
|
+
#### Parameters
|
|
155
|
+
|
|
156
|
+
| Parameter | Type | Description |
|
|
157
|
+
| ------ | ------ | ------ |
|
|
158
|
+
| `jobId` | `string` | The ID of the job to complete. |
|
|
159
|
+
|
|
160
|
+
#### Returns
|
|
161
|
+
|
|
162
|
+
`Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\>\>
|
|
163
|
+
|
|
164
|
+
The updated job in `completed` status.
|
|
165
|
+
|
|
166
|
+
#### Implementation of
|
|
167
|
+
|
|
168
|
+
[`IQueue`](Interface.IQueue).[`markCompleted`](Interface.IQueue#markcompleted)
|
|
169
|
+
|
|
170
|
+
***
|
|
171
|
+
|
|
172
|
+
### markFailed()
|
|
173
|
+
|
|
174
|
+
```ts
|
|
175
|
+
markFailed(jobId, errorMessage): Promise<IQueueJob<unknown>>;
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Defined in: [azure/AzureQueue.ts:180](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L180)
|
|
179
|
+
|
|
180
|
+
Marks a processing job as failed.
|
|
181
|
+
|
|
182
|
+
#### Parameters
|
|
183
|
+
|
|
184
|
+
| Parameter | Type | Description |
|
|
185
|
+
| ------ | ------ | ------ |
|
|
186
|
+
| `jobId` | `string` | The ID of the job to mark as failed. |
|
|
187
|
+
| `errorMessage` | `string` | A human-readable error message. |
|
|
188
|
+
|
|
189
|
+
#### Returns
|
|
190
|
+
|
|
191
|
+
`Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\>\>
|
|
192
|
+
|
|
193
|
+
The updated job in `failed` status.
|
|
194
|
+
|
|
195
|
+
#### Implementation of
|
|
196
|
+
|
|
197
|
+
[`IQueue`](Interface.IQueue).[`markFailed`](Interface.IQueue#markfailed)
|
|
198
|
+
|
|
199
|
+
***
|
|
200
|
+
|
|
201
|
+
### onModuleDestroy()
|
|
202
|
+
|
|
203
|
+
```ts
|
|
204
|
+
onModuleDestroy(): Promise<void>;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Defined in: [azure/AzureQueue.ts:247](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L247)
|
|
208
|
+
|
|
209
|
+
Closes all senders, receivers, and the underlying Service Bus client.
|
|
210
|
+
|
|
211
|
+
Called automatically by the NestJS lifecycle when the module is destroyed.
|
|
212
|
+
|
|
213
|
+
#### Returns
|
|
214
|
+
|
|
215
|
+
`Promise`\<`void`\>
|
|
216
|
+
|
|
217
|
+
#### Implementation of
|
|
218
|
+
|
|
219
|
+
```ts
|
|
220
|
+
OnModuleDestroy.onModuleDestroy
|
|
221
|
+
```
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Class: BullMqQueue'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Class: BullMqQueue
|
|
7
|
+
|
|
8
|
+
Defined in: [bullmq/BullMqQueue.ts:56](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/bullmq/BullMqQueue.ts#L56)
|
|
9
|
+
|
|
10
|
+
BullMQ-backed queue implementation.
|
|
11
|
+
|
|
12
|
+
Uses Redis via BullMQ for persistent, distributed job processing.
|
|
13
|
+
Supports FIFO ordering, automatic retries, and horizontal scaling.
|
|
14
|
+
|
|
15
|
+
## Remarks
|
|
16
|
+
|
|
17
|
+
Each named queue lazily creates its own BullMQ Queue and Worker
|
|
18
|
+
instance. Job tokens are tracked internally so that [markCompleted](#markcompleted)
|
|
19
|
+
and [markFailed](#markfailed) can move jobs to the correct terminal state.
|
|
20
|
+
|
|
21
|
+
## Implements
|
|
22
|
+
|
|
23
|
+
- [`IQueue`](Interface.IQueue)
|
|
24
|
+
- `OnModuleDestroy`
|
|
25
|
+
|
|
26
|
+
## Constructors
|
|
27
|
+
|
|
28
|
+
### Constructor
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
new BullMqQueue(options): BullMqQueue;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Defined in: [bullmq/BullMqQueue.ts:75](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/bullmq/BullMqQueue.ts#L75)
|
|
35
|
+
|
|
36
|
+
Creates a new BullMqQueue instance.
|
|
37
|
+
|
|
38
|
+
#### Parameters
|
|
39
|
+
|
|
40
|
+
| Parameter | Type | Description |
|
|
41
|
+
| ------ | ------ | ------ |
|
|
42
|
+
| `options` | [`IBullMqQueueOptions`](Interface.IBullMqQueueOptions) | Redis connection and optional prefix. See [IBullMqQueueOptions](Interface.IBullMqQueueOptions). |
|
|
43
|
+
|
|
44
|
+
#### Returns
|
|
45
|
+
|
|
46
|
+
`BullMqQueue`
|
|
47
|
+
|
|
48
|
+
## Methods
|
|
49
|
+
|
|
50
|
+
### dequeue()
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
dequeue(queueName): Promise<IQueueJob<unknown> | null>;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Defined in: [bullmq/BullMqQueue.ts:97](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/bullmq/BullMqQueue.ts#L97)
|
|
57
|
+
|
|
58
|
+
Dequeues the next pending job from the named queue.
|
|
59
|
+
|
|
60
|
+
The returned job transitions to `processing` status.
|
|
61
|
+
|
|
62
|
+
#### Parameters
|
|
63
|
+
|
|
64
|
+
| Parameter | Type | Description |
|
|
65
|
+
| ------ | ------ | ------ |
|
|
66
|
+
| `queueName` | `string` | The name of the queue to dequeue from. |
|
|
67
|
+
|
|
68
|
+
#### Returns
|
|
69
|
+
|
|
70
|
+
`Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\> \| `null`\>
|
|
71
|
+
|
|
72
|
+
The next pending job, or `null` if the queue is empty.
|
|
73
|
+
|
|
74
|
+
#### Implementation of
|
|
75
|
+
|
|
76
|
+
[`IQueue`](Interface.IQueue).[`dequeue`](Interface.IQueue#dequeue)
|
|
77
|
+
|
|
78
|
+
***
|
|
79
|
+
|
|
80
|
+
### enqueue()
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
enqueue<T>(queueName, payload): Promise<IQueueJob<T>>;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Defined in: [bullmq/BullMqQueue.ts:85](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/bullmq/BullMqQueue.ts#L85)
|
|
87
|
+
|
|
88
|
+
Enqueues a new job into the named queue.
|
|
89
|
+
|
|
90
|
+
#### Type Parameters
|
|
91
|
+
|
|
92
|
+
| Type Parameter | Default type | Description |
|
|
93
|
+
| ------ | ------ | ------ |
|
|
94
|
+
| `T` | `unknown` | |
|
|
95
|
+
|
|
96
|
+
#### Parameters
|
|
97
|
+
|
|
98
|
+
| Parameter | Type | Description |
|
|
99
|
+
| ------ | ------ | ------ |
|
|
100
|
+
| `queueName` | `string` | The name of the target queue. |
|
|
101
|
+
| `payload` | `T` | The job payload. |
|
|
102
|
+
|
|
103
|
+
#### Returns
|
|
104
|
+
|
|
105
|
+
`Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`T`\>\>
|
|
106
|
+
|
|
107
|
+
The created job in `pending` status.
|
|
108
|
+
|
|
109
|
+
#### Implementation of
|
|
110
|
+
|
|
111
|
+
[`IQueue`](Interface.IQueue).[`enqueue`](Interface.IQueue#enqueue)
|
|
112
|
+
|
|
113
|
+
***
|
|
114
|
+
|
|
115
|
+
### getJobs()
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
getJobs(queueName): Promise<readonly IQueueJob<unknown>[]>;
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Defined in: [bullmq/BullMqQueue.ts:190](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/bullmq/BullMqQueue.ts#L190)
|
|
122
|
+
|
|
123
|
+
Returns all jobs for the given queue in insertion order.
|
|
124
|
+
|
|
125
|
+
#### Parameters
|
|
126
|
+
|
|
127
|
+
| Parameter | Type | Description |
|
|
128
|
+
| ------ | ------ | ------ |
|
|
129
|
+
| `queueName` | `string` | The name of the queue. |
|
|
130
|
+
|
|
131
|
+
#### Returns
|
|
132
|
+
|
|
133
|
+
`Promise`\<readonly [`IQueueJob`](Interface.IQueueJob)\<`unknown`\>[]\>
|
|
134
|
+
|
|
135
|
+
An array of jobs, possibly empty.
|
|
136
|
+
|
|
137
|
+
#### Implementation of
|
|
138
|
+
|
|
139
|
+
[`IQueue`](Interface.IQueue).[`getJobs`](Interface.IQueue#getjobs)
|
|
140
|
+
|
|
141
|
+
***
|
|
142
|
+
|
|
143
|
+
### markCompleted()
|
|
144
|
+
|
|
145
|
+
```ts
|
|
146
|
+
markCompleted(jobId): Promise<IQueueJob<unknown>>;
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Defined in: [bullmq/BullMqQueue.ts:116](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/bullmq/BullMqQueue.ts#L116)
|
|
150
|
+
|
|
151
|
+
Marks a processing job as completed.
|
|
152
|
+
|
|
153
|
+
#### Parameters
|
|
154
|
+
|
|
155
|
+
| Parameter | Type | Description |
|
|
156
|
+
| ------ | ------ | ------ |
|
|
157
|
+
| `jobId` | `string` | The ID of the job to complete. |
|
|
158
|
+
|
|
159
|
+
#### Returns
|
|
160
|
+
|
|
161
|
+
`Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\>\>
|
|
162
|
+
|
|
163
|
+
The updated job in `completed` status.
|
|
164
|
+
|
|
165
|
+
#### Implementation of
|
|
166
|
+
|
|
167
|
+
[`IQueue`](Interface.IQueue).[`markCompleted`](Interface.IQueue#markcompleted)
|
|
168
|
+
|
|
169
|
+
***
|
|
170
|
+
|
|
171
|
+
### markFailed()
|
|
172
|
+
|
|
173
|
+
```ts
|
|
174
|
+
markFailed(jobId, errorMessage): Promise<IQueueJob<unknown>>;
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Defined in: [bullmq/BullMqQueue.ts:150](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/bullmq/BullMqQueue.ts#L150)
|
|
178
|
+
|
|
179
|
+
Marks a processing job as failed.
|
|
180
|
+
|
|
181
|
+
#### Parameters
|
|
182
|
+
|
|
183
|
+
| Parameter | Type | Description |
|
|
184
|
+
| ------ | ------ | ------ |
|
|
185
|
+
| `jobId` | `string` | The ID of the job to mark as failed. |
|
|
186
|
+
| `errorMessage` | `string` | A human-readable error message. |
|
|
187
|
+
|
|
188
|
+
#### Returns
|
|
189
|
+
|
|
190
|
+
`Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\>\>
|
|
191
|
+
|
|
192
|
+
The updated job in `failed` status.
|
|
193
|
+
|
|
194
|
+
#### Implementation of
|
|
195
|
+
|
|
196
|
+
[`IQueue`](Interface.IQueue).[`markFailed`](Interface.IQueue#markfailed)
|
|
197
|
+
|
|
198
|
+
***
|
|
199
|
+
|
|
200
|
+
### onModuleDestroy()
|
|
201
|
+
|
|
202
|
+
```ts
|
|
203
|
+
onModuleDestroy(): Promise<void>;
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Defined in: [bullmq/BullMqQueue.ts:208](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/bullmq/BullMqQueue.ts#L208)
|
|
207
|
+
|
|
208
|
+
Closes all workers and queues, releasing Redis connections.
|
|
209
|
+
|
|
210
|
+
Called automatically by the NestJS lifecycle when the module is destroyed.
|
|
211
|
+
|
|
212
|
+
#### Returns
|
|
213
|
+
|
|
214
|
+
`Promise`\<`void`\>
|
|
215
|
+
|
|
216
|
+
#### Implementation of
|
|
217
|
+
|
|
218
|
+
```ts
|
|
219
|
+
OnModuleDestroy.onModuleDestroy
|
|
220
|
+
```
|