@morojs/moro 1.6.8 → 1.7.0
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 +3 -1
- package/dist/core/auth/morojs-adapter.js +16 -6
- package/dist/core/auth/morojs-adapter.js.map +1 -1
- package/dist/core/config/config-sources.js +27 -15
- package/dist/core/config/config-sources.js.map +1 -1
- package/dist/core/config/config-validator.js +201 -6
- package/dist/core/config/config-validator.js.map +1 -1
- package/dist/core/docs/openapi-generator.js +8 -9
- package/dist/core/docs/openapi-generator.js.map +1 -1
- package/dist/core/events/event-bus.js +1 -1
- package/dist/core/events/event-bus.js.map +1 -1
- package/dist/core/framework.d.ts +4 -2
- package/dist/core/framework.js +25 -24
- package/dist/core/framework.js.map +1 -1
- package/dist/core/graphql/core.js +34 -8
- package/dist/core/graphql/core.js.map +1 -1
- package/dist/core/grpc/adapters/grpc-js-adapter.d.ts +28 -0
- package/dist/core/grpc/adapters/grpc-js-adapter.js +449 -0
- package/dist/core/grpc/adapters/grpc-js-adapter.js.map +1 -0
- package/dist/core/grpc/adapters/index.d.ts +1 -0
- package/dist/core/grpc/adapters/index.js +6 -0
- package/dist/core/grpc/adapters/index.js.map +1 -0
- package/dist/core/grpc/grpc-adapter.d.ts +47 -0
- package/dist/core/grpc/grpc-adapter.js +4 -0
- package/dist/core/grpc/grpc-adapter.js.map +1 -0
- package/dist/core/grpc/grpc-manager.d.ts +59 -0
- package/dist/core/grpc/grpc-manager.js +218 -0
- package/dist/core/grpc/grpc-manager.js.map +1 -0
- package/dist/core/grpc/index.d.ts +7 -0
- package/dist/core/grpc/index.js +10 -0
- package/dist/core/grpc/index.js.map +1 -0
- package/dist/core/grpc/middleware/auth.d.ts +22 -0
- package/dist/core/grpc/middleware/auth.js +126 -0
- package/dist/core/grpc/middleware/auth.js.map +1 -0
- package/dist/core/grpc/middleware/logging.d.ts +19 -0
- package/dist/core/grpc/middleware/logging.js +57 -0
- package/dist/core/grpc/middleware/logging.js.map +1 -0
- package/dist/core/grpc/middleware/validation.d.ts +18 -0
- package/dist/core/grpc/middleware/validation.js +126 -0
- package/dist/core/grpc/middleware/validation.js.map +1 -0
- package/dist/core/grpc/types.d.ts +233 -0
- package/dist/core/grpc/types.js +36 -0
- package/dist/core/grpc/types.js.map +1 -0
- package/dist/core/http/http-server.d.ts +13 -84
- package/dist/core/http/http-server.js +205 -792
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/http2-server.d.ts +131 -0
- package/dist/core/http/http2-server.js +803 -0
- package/dist/core/http/http2-server.js.map +1 -0
- package/dist/core/http/index.d.ts +3 -1
- package/dist/core/http/index.js +2 -1
- package/dist/core/http/index.js.map +1 -1
- package/dist/core/http/uws-http-server.js +21 -26
- package/dist/core/http/uws-http-server.js.map +1 -1
- package/dist/core/jobs/job-executor.js +6 -1
- package/dist/core/jobs/job-executor.js.map +1 -1
- package/dist/core/jobs/job-scheduler.js +4 -1
- package/dist/core/jobs/job-scheduler.js.map +1 -1
- package/dist/core/jobs/leader-election.js +2 -1
- package/dist/core/jobs/leader-election.js.map +1 -1
- package/dist/core/logger/logger.js +41 -18
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/logger/outputs.js +9 -3
- package/dist/core/logger/outputs.js.map +1 -1
- package/dist/core/mail/adapters/console-adapter.d.ts +14 -0
- package/dist/core/mail/adapters/console-adapter.js +89 -0
- package/dist/core/mail/adapters/console-adapter.js.map +1 -0
- package/dist/core/mail/adapters/index.d.ts +5 -0
- package/dist/core/mail/adapters/index.js +8 -0
- package/dist/core/mail/adapters/index.js.map +1 -0
- package/dist/core/mail/adapters/nodemailer-adapter.d.ts +18 -0
- package/dist/core/mail/adapters/nodemailer-adapter.js +188 -0
- package/dist/core/mail/adapters/nodemailer-adapter.js.map +1 -0
- package/dist/core/mail/adapters/resend-adapter.d.ts +18 -0
- package/dist/core/mail/adapters/resend-adapter.js +169 -0
- package/dist/core/mail/adapters/resend-adapter.js.map +1 -0
- package/dist/core/mail/adapters/sendgrid-adapter.d.ts +19 -0
- package/dist/core/mail/adapters/sendgrid-adapter.js +186 -0
- package/dist/core/mail/adapters/sendgrid-adapter.js.map +1 -0
- package/dist/core/mail/adapters/ses-adapter.d.ts +18 -0
- package/dist/core/mail/adapters/ses-adapter.js +167 -0
- package/dist/core/mail/adapters/ses-adapter.js.map +1 -0
- package/dist/core/mail/index.d.ts +5 -0
- package/dist/core/mail/index.js +8 -0
- package/dist/core/mail/index.js.map +1 -0
- package/dist/core/mail/mail-adapter.d.ts +62 -0
- package/dist/core/mail/mail-adapter.js +83 -0
- package/dist/core/mail/mail-adapter.js.map +1 -0
- package/dist/core/mail/mail-manager.d.ts +63 -0
- package/dist/core/mail/mail-manager.js +302 -0
- package/dist/core/mail/mail-manager.js.map +1 -0
- package/dist/core/mail/template-engine.d.ts +43 -0
- package/dist/core/mail/template-engine.js +239 -0
- package/dist/core/mail/template-engine.js.map +1 -0
- package/dist/core/mail/types.d.ts +237 -0
- package/dist/core/mail/types.js +4 -0
- package/dist/core/mail/types.js.map +1 -0
- package/dist/core/middleware/built-in/body-size/core.d.ts +12 -0
- package/dist/core/middleware/built-in/body-size/core.js +52 -0
- package/dist/core/middleware/built-in/body-size/core.js.map +1 -0
- package/dist/core/middleware/built-in/body-size/hook.d.ts +2 -0
- package/dist/core/middleware/built-in/body-size/hook.js +12 -0
- package/dist/core/middleware/built-in/body-size/hook.js.map +1 -0
- package/dist/core/middleware/built-in/body-size/index.d.ts +6 -0
- package/dist/core/middleware/built-in/body-size/index.js +7 -0
- package/dist/core/middleware/built-in/body-size/index.js.map +1 -0
- package/dist/core/middleware/built-in/body-size/middleware.d.ts +14 -0
- package/dist/core/middleware/built-in/body-size/middleware.js +22 -0
- package/dist/core/middleware/built-in/body-size/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/cache/core.d.ts +20 -1
- package/dist/core/middleware/built-in/cache/core.js.map +1 -1
- package/dist/core/middleware/built-in/cache/hook.d.ts +38 -1
- package/dist/core/middleware/built-in/cache/hook.js +202 -16
- package/dist/core/middleware/built-in/cache/hook.js.map +1 -1
- package/dist/core/middleware/built-in/cache/index.js +1 -1
- package/dist/core/middleware/built-in/cache/index.js.map +1 -1
- package/dist/core/middleware/built-in/compression/core.d.ts +16 -0
- package/dist/core/middleware/built-in/compression/core.js +75 -0
- package/dist/core/middleware/built-in/compression/core.js.map +1 -0
- package/dist/core/middleware/built-in/compression/hook.d.ts +2 -0
- package/dist/core/middleware/built-in/compression/hook.js +14 -0
- package/dist/core/middleware/built-in/compression/hook.js.map +1 -0
- package/dist/core/middleware/built-in/compression/index.d.ts +6 -0
- package/dist/core/middleware/built-in/compression/index.js +7 -0
- package/dist/core/middleware/built-in/compression/index.js.map +1 -0
- package/dist/core/middleware/built-in/compression/middleware.d.ts +20 -0
- package/dist/core/middleware/built-in/compression/middleware.js +28 -0
- package/dist/core/middleware/built-in/compression/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/core.js +37 -9
- package/dist/core/middleware/built-in/cookie/core.js.map +1 -1
- package/dist/core/middleware/built-in/helmet/core.d.ts +19 -0
- package/dist/core/middleware/built-in/helmet/core.js +70 -0
- package/dist/core/middleware/built-in/helmet/core.js.map +1 -0
- package/dist/core/middleware/built-in/helmet/hook.d.ts +2 -0
- package/dist/core/middleware/built-in/helmet/hook.js +12 -0
- package/dist/core/middleware/built-in/helmet/hook.js.map +1 -0
- package/dist/core/middleware/built-in/helmet/index.d.ts +6 -0
- package/dist/core/middleware/built-in/helmet/index.js +7 -0
- package/dist/core/middleware/built-in/helmet/index.js.map +1 -0
- package/dist/core/middleware/built-in/helmet/middleware.d.ts +22 -0
- package/dist/core/middleware/built-in/helmet/middleware.js +28 -0
- package/dist/core/middleware/built-in/helmet/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/http2/core.d.ts +35 -0
- package/dist/core/middleware/built-in/http2/core.js +128 -0
- package/dist/core/middleware/built-in/http2/core.js.map +1 -0
- package/dist/core/middleware/built-in/http2/hook.d.ts +5 -0
- package/dist/core/middleware/built-in/http2/hook.js +34 -0
- package/dist/core/middleware/built-in/http2/hook.js.map +1 -0
- package/dist/core/middleware/built-in/http2/index.d.ts +8 -0
- package/dist/core/middleware/built-in/http2/index.js +10 -0
- package/dist/core/middleware/built-in/http2/index.js.map +1 -0
- package/dist/core/middleware/built-in/http2/middleware.d.ts +20 -0
- package/dist/core/middleware/built-in/http2/middleware.js +31 -0
- package/dist/core/middleware/built-in/http2/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/index.d.ts +18 -0
- package/dist/core/middleware/built-in/index.js +28 -0
- package/dist/core/middleware/built-in/index.js.map +1 -1
- package/dist/core/middleware/built-in/range/core.d.ts +16 -0
- package/dist/core/middleware/built-in/range/core.js +112 -0
- package/dist/core/middleware/built-in/range/core.js.map +1 -0
- package/dist/core/middleware/built-in/range/hook.d.ts +2 -0
- package/dist/core/middleware/built-in/range/hook.js +12 -0
- package/dist/core/middleware/built-in/range/hook.js.map +1 -0
- package/dist/core/middleware/built-in/range/index.d.ts +6 -0
- package/dist/core/middleware/built-in/range/index.js +7 -0
- package/dist/core/middleware/built-in/range/index.js.map +1 -0
- package/dist/core/middleware/built-in/range/middleware.d.ts +21 -0
- package/dist/core/middleware/built-in/range/middleware.js +27 -0
- package/dist/core/middleware/built-in/range/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/session/core.js +14 -1
- package/dist/core/middleware/built-in/session/core.js.map +1 -1
- package/dist/core/middleware/built-in/static/core.d.ts +20 -0
- package/dist/core/middleware/built-in/static/core.js +143 -0
- package/dist/core/middleware/built-in/static/core.js.map +1 -0
- package/dist/core/middleware/built-in/static/hook.d.ts +2 -0
- package/dist/core/middleware/built-in/static/hook.js +12 -0
- package/dist/core/middleware/built-in/static/hook.js.map +1 -0
- package/dist/core/middleware/built-in/static/index.d.ts +6 -0
- package/dist/core/middleware/built-in/static/index.js +7 -0
- package/dist/core/middleware/built-in/static/index.js.map +1 -0
- package/dist/core/middleware/built-in/static/middleware.d.ts +18 -0
- package/dist/core/middleware/built-in/static/middleware.js +26 -0
- package/dist/core/middleware/built-in/static/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/template/core.d.ts +19 -0
- package/dist/core/middleware/built-in/template/core.js +108 -0
- package/dist/core/middleware/built-in/template/core.js.map +1 -0
- package/dist/core/middleware/built-in/template/hook.d.ts +2 -0
- package/dist/core/middleware/built-in/template/hook.js +12 -0
- package/dist/core/middleware/built-in/template/hook.js.map +1 -0
- package/dist/core/middleware/built-in/template/index.d.ts +6 -0
- package/dist/core/middleware/built-in/template/index.js +7 -0
- package/dist/core/middleware/built-in/template/index.js.map +1 -0
- package/dist/core/middleware/built-in/template/middleware.d.ts +21 -0
- package/dist/core/middleware/built-in/template/middleware.js +27 -0
- package/dist/core/middleware/built-in/template/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/upload/core.d.ts +29 -0
- package/dist/core/middleware/built-in/upload/core.js +66 -0
- package/dist/core/middleware/built-in/upload/core.js.map +1 -0
- package/dist/core/middleware/built-in/upload/hook.d.ts +2 -0
- package/dist/core/middleware/built-in/upload/hook.js +25 -0
- package/dist/core/middleware/built-in/upload/hook.js.map +1 -0
- package/dist/core/middleware/built-in/upload/index.d.ts +6 -0
- package/dist/core/middleware/built-in/upload/index.js +7 -0
- package/dist/core/middleware/built-in/upload/index.js.map +1 -0
- package/dist/core/middleware/built-in/upload/middleware.d.ts +18 -0
- package/dist/core/middleware/built-in/upload/middleware.js +41 -0
- package/dist/core/middleware/built-in/upload/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/validation/middleware.js +2 -1
- package/dist/core/middleware/built-in/validation/middleware.js.map +1 -1
- package/dist/core/networking/adapters/uws-adapter.js +54 -6
- package/dist/core/networking/adapters/uws-adapter.js.map +1 -1
- package/dist/core/networking/adapters/ws-adapter.js +56 -17
- package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
- package/dist/core/pooling/object-pool-manager.js +9 -1
- package/dist/core/pooling/object-pool-manager.js.map +1 -1
- package/dist/core/queue/adapters/bull-adapter.d.ts +86 -0
- package/dist/core/queue/adapters/bull-adapter.js +330 -0
- package/dist/core/queue/adapters/bull-adapter.js.map +1 -0
- package/dist/core/queue/adapters/index.d.ts +9 -0
- package/dist/core/queue/adapters/index.js +10 -0
- package/dist/core/queue/adapters/index.js.map +1 -0
- package/dist/core/queue/adapters/kafka-adapter.d.ts +86 -0
- package/dist/core/queue/adapters/kafka-adapter.js +462 -0
- package/dist/core/queue/adapters/kafka-adapter.js.map +1 -0
- package/dist/core/queue/adapters/memory-adapter.d.ts +87 -0
- package/dist/core/queue/adapters/memory-adapter.js +415 -0
- package/dist/core/queue/adapters/memory-adapter.js.map +1 -0
- package/dist/core/queue/adapters/rabbitmq-adapter.d.ts +86 -0
- package/dist/core/queue/adapters/rabbitmq-adapter.js +436 -0
- package/dist/core/queue/adapters/rabbitmq-adapter.js.map +1 -0
- package/dist/core/queue/adapters/sqs-adapter.d.ts +102 -0
- package/dist/core/queue/adapters/sqs-adapter.js +522 -0
- package/dist/core/queue/adapters/sqs-adapter.js.map +1 -0
- package/dist/core/queue/index.d.ts +11 -0
- package/dist/core/queue/index.js +14 -0
- package/dist/core/queue/index.js.map +1 -0
- package/dist/core/queue/middleware/index.d.ts +7 -0
- package/dist/core/queue/middleware/index.js +8 -0
- package/dist/core/queue/middleware/index.js.map +1 -0
- package/dist/core/queue/middleware/monitoring.d.ts +84 -0
- package/dist/core/queue/middleware/monitoring.js +145 -0
- package/dist/core/queue/middleware/monitoring.js.map +1 -0
- package/dist/core/queue/middleware/priority.d.ts +61 -0
- package/dist/core/queue/middleware/priority.js +90 -0
- package/dist/core/queue/middleware/priority.js.map +1 -0
- package/dist/core/queue/middleware/rate-limit.d.ts +34 -0
- package/dist/core/queue/middleware/rate-limit.js +109 -0
- package/dist/core/queue/middleware/rate-limit.js.map +1 -0
- package/dist/core/queue/queue-adapter.d.ts +73 -0
- package/dist/core/queue/queue-adapter.js +20 -0
- package/dist/core/queue/queue-adapter.js.map +1 -0
- package/dist/core/queue/queue-manager.d.ts +92 -0
- package/dist/core/queue/queue-manager.js +327 -0
- package/dist/core/queue/queue-manager.js.map +1 -0
- package/dist/core/queue/types.d.ts +205 -0
- package/dist/core/queue/types.js +6 -0
- package/dist/core/queue/types.js.map +1 -0
- package/dist/core/routing/index.js +41 -10
- package/dist/core/routing/index.js.map +1 -1
- package/dist/core/routing/radix-tree.d.ts +48 -0
- package/dist/core/routing/radix-tree.js +211 -0
- package/dist/core/routing/radix-tree.js.map +1 -0
- package/dist/core/routing/router.d.ts +10 -9
- package/dist/core/routing/router.js +3 -1
- package/dist/core/routing/router.js.map +1 -1
- package/dist/core/routing/unified-router.d.ts +18 -12
- package/dist/core/routing/unified-router.js +220 -163
- package/dist/core/routing/unified-router.js.map +1 -1
- package/dist/core/runtime/aws-lambda-adapter.js +21 -10
- package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
- package/dist/core/runtime/base-adapter.js +15 -5
- package/dist/core/runtime/base-adapter.js.map +1 -1
- package/dist/core/runtime/cloudflare-workers-adapter.js +35 -12
- package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
- package/dist/core/runtime/vercel-edge-adapter.js +16 -6
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
- package/dist/core/utilities/container.js +3 -1
- package/dist/core/utilities/container.js.map +1 -1
- package/dist/core/workers/facade.d.ts +74 -0
- package/dist/core/workers/facade.js +98 -0
- package/dist/core/workers/facade.js.map +1 -0
- package/dist/core/workers/index.d.ts +2 -0
- package/dist/core/workers/index.js +6 -0
- package/dist/core/workers/index.js.map +1 -0
- package/dist/core/workers/worker-manager.d.ts +124 -0
- package/dist/core/workers/worker-manager.js +299 -0
- package/dist/core/workers/worker-manager.js.map +1 -0
- package/dist/core/workers/worker.d.ts +1 -0
- package/dist/core/workers/worker.js +225 -0
- package/dist/core/workers/worker.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +345 -13
- package/dist/moro.js +803 -214
- package/dist/moro.js.map +1 -1
- package/dist/types/cache.d.ts +4 -0
- package/dist/types/config.d.ts +42 -0
- package/dist/types/core.d.ts +18 -1
- package/package.json +94 -20
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type { RuntimeType, RuntimeAdapter, RuntimeConfig, RuntimeHttpResponse, }
|
|
|
7
7
|
export { NodeRuntimeAdapter, VercelEdgeAdapter, AWSLambdaAdapter, CloudflareWorkersAdapter, createRuntimeAdapter, createNodeHandler, createEdgeHandler, createLambdaHandler, createWorkerHandler, } from './core/runtime/index.js';
|
|
8
8
|
export type { LambdaEvent, LambdaContext, LambdaResponse, } from './core/runtime/aws-lambda-adapter.js';
|
|
9
9
|
export type { WorkersEnv, WorkersContext } from './core/runtime/cloudflare-workers-adapter.js';
|
|
10
|
-
export { MoroHttpServer, UWebSocketsHttpServer
|
|
10
|
+
export { MoroHttpServer, UWebSocketsHttpServer } from './core/http/index.js';
|
|
11
11
|
export { builtInMiddleware, simpleMiddleware } from './core/middleware/built-in/index.js';
|
|
12
12
|
export { WebSocketManager, ServiceRegistry } from './core/networking/index.js';
|
|
13
13
|
export type { ServiceInfo, ServiceDiscoveryOptions } from './core/networking/service-discovery.js';
|
|
@@ -56,3 +56,10 @@ export type { CacheAdapter, CacheOptions, CacheStrategy } from './types/cache.js
|
|
|
56
56
|
export type { CDNAdapter, CDNOptions } from './types/cdn.js';
|
|
57
57
|
export type { DatabaseAdapter, DatabaseTransaction, DatabaseConfig } from './types/database.js';
|
|
58
58
|
export type { CookieOptions } from './types/http.js';
|
|
59
|
+
export type { GrpcOptions, GrpcCall, GrpcCallback, GrpcMetadata, GrpcError, GrpcStatusCode, GrpcCredentials, GrpcServer, GrpcClient, GrpcClientOptions, GrpcInterceptor, ServiceImplementation, ServiceDefinition, ServiceRegistration, MethodDefinition, UnaryHandler, ServerStreamingHandler, ClientStreamingHandler, BidirectionalStreamingHandler, GrpcHandler, GrpcStats, HealthCheckStatus, HealthCheckResponse, ProtoLoadOptions, } from './core/grpc/types.js';
|
|
60
|
+
export type { GrpcAdapter } from './core/grpc/grpc-adapter.js';
|
|
61
|
+
export { GrpcJsAdapter } from './core/grpc/adapters/index.js';
|
|
62
|
+
export { grpcAuth, grpcRequirePermission, grpcRequireRole, extractTokenFromMetadata, grpcLogger, grpcSimpleLogger, grpcDetailedLogger, grpcValidate, grpcValidateHandler, } from './core/grpc/index.js';
|
|
63
|
+
export type { MailConfig, MailOptions, MailResult, MailAdapter, MailAdapterType, EmailAddress, EmailAttachment, TemplateConfig, TemplateEngine, MailQueueConfig, NodemailerConnection, SendGridConnection, SESConnection, ResendConnection, } from './core/mail/types.js';
|
|
64
|
+
export { BaseMailAdapter } from './core/mail/mail-adapter.js';
|
|
65
|
+
export { ConsoleAdapter, NodemailerAdapter, SendGridAdapter, SESAdapter, ResendAdapter, } from './core/mail/adapters/index.js';
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { createAuthMiddleware, MoroJSAuth } from './core/auth/morojs-adapter.js'
|
|
|
6
6
|
export { auth, providers } from './core/middleware/built-in/auth/index.js';
|
|
7
7
|
export { NodeRuntimeAdapter, VercelEdgeAdapter, AWSLambdaAdapter, CloudflareWorkersAdapter, createRuntimeAdapter, createNodeHandler, createEdgeHandler, createLambdaHandler, createWorkerHandler, } from './core/runtime/index.js';
|
|
8
8
|
// Core exports
|
|
9
|
-
export { MoroHttpServer, UWebSocketsHttpServer
|
|
9
|
+
export { MoroHttpServer, UWebSocketsHttpServer } from './core/http/index.js';
|
|
10
10
|
export { builtInMiddleware, simpleMiddleware } from './core/middleware/built-in/index.js';
|
|
11
11
|
// Networking System
|
|
12
12
|
export { WebSocketManager, ServiceRegistry } from './core/networking/index.js';
|
|
@@ -43,4 +43,9 @@ export { MiddlewareManager } from './core/middleware/index.js';
|
|
|
43
43
|
export * from './core/middleware/built-in/cache/adapters/index.js';
|
|
44
44
|
export * from './core/middleware/built-in/cdn/adapters/index.js';
|
|
45
45
|
export * from './core/database/adapters/index.js';
|
|
46
|
+
export { GrpcJsAdapter } from './core/grpc/adapters/index.js';
|
|
47
|
+
// gRPC Middleware
|
|
48
|
+
export { grpcAuth, grpcRequirePermission, grpcRequireRole, extractTokenFromMetadata, grpcLogger, grpcSimpleLogger, grpcDetailedLogger, grpcValidate, grpcValidateHandler, } from './core/grpc/index.js';
|
|
49
|
+
export { BaseMailAdapter } from './core/mail/mail-adapter.js';
|
|
50
|
+
export { ConsoleAdapter, NodemailerAdapter, SendGridAdapter, SESAdapter, ResendAdapter, } from './core/mail/adapters/index.js';
|
|
46
51
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,IAAI,EACJ,IAAI,IAAI,QAAQ,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AAwBnB,qCAAqC;AACrC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEjF,0CAA0C;AAC1C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAU3E,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAUjC,eAAe;AACf,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,IAAI,EACJ,IAAI,IAAI,QAAQ,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AAwBnB,qCAAqC;AACrC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEjF,0CAA0C;AAC1C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAU3E,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAUjC,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE1F,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG/E,iCAAiC;AACjC,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,SAAS,EACT,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAYtD,gBAAgB;AAChB,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEvE,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AAe9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,eAAe,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEhG,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAcjC,8BAA8B;AAC9B,OAAO,EACL,eAAe,EACf,SAAS,EACT,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAE7C,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAa7F,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAG9B,0BAA0B;AAC1B,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AA6BhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAEjF,wEAAwE;AACxE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,+CAA+C,CAAC;AAEvD,aAAa;AACb,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,SAAS,EACT,SAAS,GACV,MAAM,sBAAsB,CAAC;AAmB9B,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAc/D,WAAW;AACX,cAAc,oDAAoD,CAAC;AACnE,cAAc,kDAAkD,CAAC;AACjE,cAAc,mCAAmC,CAAC;AAqClD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,kBAAkB;AAClB,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAoB9B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,+BAA+B,CAAC"}
|
package/dist/moro.d.ts
CHANGED
|
@@ -10,7 +10,10 @@ import { EventEmitter } from 'events';
|
|
|
10
10
|
import { type AppConfig } from './core/config/index.js';
|
|
11
11
|
import { RuntimeAdapter, RuntimeType } from './core/runtime/index.js';
|
|
12
12
|
import type { JobSchedule, SimpleJobOptions, JobFunction, JobMetrics, SchedulerStats, JobHealth } from './core/jobs/index.js';
|
|
13
|
+
import { WorkerThreadsFacade, type WorkerTask } from './core/workers/index.js';
|
|
13
14
|
import type { GraphQLOptions } from './core/graphql/types.js';
|
|
15
|
+
import type { GrpcOptions, ServiceImplementation, GrpcClient, GrpcClientOptions } from './core/grpc/types.js';
|
|
16
|
+
import type { MailConfig, MailOptions, MailResult } from './core/mail/types.js';
|
|
14
17
|
export declare class Moro extends EventEmitter {
|
|
15
18
|
private coreFramework;
|
|
16
19
|
private routes;
|
|
@@ -39,6 +42,19 @@ export declare class Moro extends EventEmitter {
|
|
|
39
42
|
private graphqlCore?;
|
|
40
43
|
private graphqlSubscriptionManager?;
|
|
41
44
|
private graphqlInitPromise?;
|
|
45
|
+
private graphqlConfig?;
|
|
46
|
+
private grpcManager?;
|
|
47
|
+
private grpcInitPromise?;
|
|
48
|
+
private grpcStarted;
|
|
49
|
+
private grpcConfig?;
|
|
50
|
+
private queueManager?;
|
|
51
|
+
private queueInitialized;
|
|
52
|
+
private queueInitPromise?;
|
|
53
|
+
private queueConfigs;
|
|
54
|
+
private workerFacade;
|
|
55
|
+
private mailManager?;
|
|
56
|
+
private mailInitialized;
|
|
57
|
+
private mailConfig?;
|
|
42
58
|
constructor(options?: MoroOptions);
|
|
43
59
|
/**
|
|
44
60
|
* Get configuration object
|
|
@@ -141,13 +157,6 @@ export declare class Moro extends EventEmitter {
|
|
|
141
157
|
private clusterWorkers;
|
|
142
158
|
private startWithClustering;
|
|
143
159
|
private handleWorkerMessage;
|
|
144
|
-
/**
|
|
145
|
-
* uWebSockets Worker Thread Clustering Implementation
|
|
146
|
-
* Uses worker threads with acceptor pattern for maximum performance
|
|
147
|
-
*/
|
|
148
|
-
private startWithUWSClustering;
|
|
149
|
-
private startUWSAcceptor;
|
|
150
|
-
private startUWSWorker;
|
|
151
160
|
/**
|
|
152
161
|
* Gracefully close the application and clean up resources
|
|
153
162
|
* This should be called in tests and during shutdown
|
|
@@ -225,14 +234,14 @@ export declare class Moro extends EventEmitter {
|
|
|
225
234
|
*/
|
|
226
235
|
private startJobScheduler;
|
|
227
236
|
/**
|
|
228
|
-
* Configure GraphQL endpoint
|
|
237
|
+
* Configure GraphQL endpoint (synchronous, lazy initialization)
|
|
229
238
|
*
|
|
230
239
|
* @param options - GraphQL configuration options
|
|
231
240
|
*
|
|
232
241
|
* @example
|
|
233
242
|
* ```ts
|
|
234
243
|
* // Using type definitions and resolvers
|
|
235
|
-
* app.
|
|
244
|
+
* app.graphqlInit({
|
|
236
245
|
* typeDefs: `
|
|
237
246
|
* type Query {
|
|
238
247
|
* hello: String
|
|
@@ -261,12 +270,16 @@ export declare class Moro extends EventEmitter {
|
|
|
261
270
|
* })
|
|
262
271
|
* });
|
|
263
272
|
*
|
|
264
|
-
* app.
|
|
273
|
+
* app.graphqlInit({
|
|
265
274
|
* pothosSchema: builder
|
|
266
275
|
* });
|
|
267
276
|
* ```
|
|
268
277
|
*/
|
|
269
|
-
|
|
278
|
+
graphqlInit(options: GraphQLOptions): this;
|
|
279
|
+
/**
|
|
280
|
+
* Lazy initialize GraphQL system
|
|
281
|
+
*/
|
|
282
|
+
private ensureGraphQLInitialized;
|
|
270
283
|
/**
|
|
271
284
|
* Initialize GraphQL system asynchronously
|
|
272
285
|
*/
|
|
@@ -286,11 +299,330 @@ export declare class Moro extends EventEmitter {
|
|
|
286
299
|
/**
|
|
287
300
|
* Get GraphQL schema (if configured)
|
|
288
301
|
*/
|
|
289
|
-
getGraphQLSchema(): any | undefined
|
|
302
|
+
getGraphQLSchema(): Promise<any | undefined>;
|
|
303
|
+
/**
|
|
304
|
+
* Execute a task on worker threads (CPU-intensive operations)
|
|
305
|
+
* @param task - Task to execute
|
|
306
|
+
* @returns Promise resolving to task result
|
|
307
|
+
*
|
|
308
|
+
* @example
|
|
309
|
+
* ```ts
|
|
310
|
+
* // JWT verification (CPU-intensive)
|
|
311
|
+
* const payload = await app.executeOnWorker({
|
|
312
|
+
* id: 'jwt-verify-123',
|
|
313
|
+
* type: 'jwt:verify',
|
|
314
|
+
* data: { token, secret }
|
|
315
|
+
* });
|
|
316
|
+
*
|
|
317
|
+
* // Heavy computation
|
|
318
|
+
* const result = await app.executeOnWorker({
|
|
319
|
+
* id: 'compute-456',
|
|
320
|
+
* type: 'computation:heavy',
|
|
321
|
+
* data: { iterations: 1000000 }
|
|
322
|
+
* });
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
executeOnWorker<T = any>(task: WorkerTask): Promise<T>;
|
|
326
|
+
/**
|
|
327
|
+
* Get worker manager instance for advanced usage
|
|
328
|
+
*/
|
|
329
|
+
getWorkerManager(): Promise<WorkerThreadsFacade>;
|
|
330
|
+
/**
|
|
331
|
+
* Get worker thread statistics
|
|
332
|
+
*/
|
|
333
|
+
getWorkerStats(): Promise<import("./core/workers/facade.js").WorkerStats | null>;
|
|
334
|
+
/**
|
|
335
|
+
* JWT operations using worker threads (prevents event loop blocking)
|
|
336
|
+
*/
|
|
337
|
+
getJwtWorker(): Promise<{
|
|
338
|
+
verify: import("./core/workers/facade.js").WorkerHelpers["verifyJWT"];
|
|
339
|
+
sign: import("./core/workers/facade.js").WorkerHelpers["signJWT"];
|
|
340
|
+
} | null>;
|
|
341
|
+
/**
|
|
342
|
+
* Crypto operations using worker threads
|
|
343
|
+
*/
|
|
344
|
+
getCryptoWorker(): Promise<{
|
|
345
|
+
hash: import("./core/workers/facade.js").WorkerHelpers["hash"];
|
|
346
|
+
} | null>;
|
|
347
|
+
/**
|
|
348
|
+
* Heavy computation operations using worker threads
|
|
349
|
+
*/
|
|
350
|
+
getComputeWorker(): Promise<{
|
|
351
|
+
heavy: import("./core/workers/facade.js").WorkerHelpers["heavyComputation"];
|
|
352
|
+
transformJSON: import("./core/workers/facade.js").WorkerHelpers["transformJSON"];
|
|
353
|
+
} | null>;
|
|
290
354
|
/**
|
|
291
355
|
* Get GraphQL stats
|
|
292
356
|
*/
|
|
293
|
-
getGraphQLStats(): any
|
|
357
|
+
getGraphQLStats(): Promise<any>;
|
|
358
|
+
/**
|
|
359
|
+
* Configure gRPC server (synchronous, lazy initialization)
|
|
360
|
+
*
|
|
361
|
+
* @example
|
|
362
|
+
* ```typescript
|
|
363
|
+
* app.grpcInit({
|
|
364
|
+
* port: 50051,
|
|
365
|
+
* host: '0.0.0.0',
|
|
366
|
+
* adapter: 'grpc-js',
|
|
367
|
+
* enableHealthCheck: true,
|
|
368
|
+
* enableReflection: true
|
|
369
|
+
* });
|
|
370
|
+
* ```
|
|
371
|
+
*/
|
|
372
|
+
grpcInit(options?: GrpcOptions): this;
|
|
373
|
+
/**
|
|
374
|
+
* Lazy initialize gRPC system
|
|
375
|
+
*/
|
|
376
|
+
private ensureGrpcInitialized;
|
|
377
|
+
/**
|
|
378
|
+
* Register a gRPC service from a proto file
|
|
379
|
+
*
|
|
380
|
+
* @example
|
|
381
|
+
* ```typescript
|
|
382
|
+
* app.grpcService('./proto/users.proto', 'UserService', {
|
|
383
|
+
* getUser: async (call, callback) => {
|
|
384
|
+
* const user = await db.users.findById(call.request.id);
|
|
385
|
+
* callback(null, user);
|
|
386
|
+
* },
|
|
387
|
+
* listUsers: async (call) => {
|
|
388
|
+
* for (const user of users) {
|
|
389
|
+
* call.write(user);
|
|
390
|
+
* }
|
|
391
|
+
* call.end();
|
|
392
|
+
* }
|
|
393
|
+
* });
|
|
394
|
+
* ```
|
|
395
|
+
*/
|
|
396
|
+
grpcService(protoPath: string, serviceName: string, implementation: ServiceImplementation, packageName?: string): Promise<void>;
|
|
397
|
+
/**
|
|
398
|
+
* Start gRPC server
|
|
399
|
+
* Called automatically by listen() if gRPC is configured
|
|
400
|
+
*/
|
|
401
|
+
startGrpc(): Promise<void>;
|
|
402
|
+
/**
|
|
403
|
+
* Stop gRPC server gracefully
|
|
404
|
+
*/
|
|
405
|
+
stopGrpc(): Promise<void>;
|
|
406
|
+
/**
|
|
407
|
+
* Create a gRPC client for calling remote services
|
|
408
|
+
*
|
|
409
|
+
* @example
|
|
410
|
+
* ```typescript
|
|
411
|
+
* const client = await app.createGrpcClient(
|
|
412
|
+
* './proto/users.proto',
|
|
413
|
+
* 'UserService',
|
|
414
|
+
* 'localhost:50051'
|
|
415
|
+
* );
|
|
416
|
+
*
|
|
417
|
+
* const user = await client.getUser({ id: '123' });
|
|
418
|
+
* ```
|
|
419
|
+
*/
|
|
420
|
+
createGrpcClient(protoPath: string, serviceName: string, address: string, options?: Partial<GrpcClientOptions>): Promise<GrpcClient>;
|
|
421
|
+
/**
|
|
422
|
+
* Get gRPC statistics
|
|
423
|
+
*/
|
|
424
|
+
getGrpcStats(): any;
|
|
425
|
+
/**
|
|
426
|
+
* Get list of registered gRPC services
|
|
427
|
+
*/
|
|
428
|
+
getGrpcServices(): any;
|
|
429
|
+
/**
|
|
430
|
+
* Initialize queue system (synchronous for first queue, subsequent queues added immediately)
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* ```typescript
|
|
434
|
+
* app.queueInit('emails', {
|
|
435
|
+
* adapter: 'bull',
|
|
436
|
+
* connection: {
|
|
437
|
+
* host: 'localhost',
|
|
438
|
+
* port: 6379
|
|
439
|
+
* },
|
|
440
|
+
* concurrency: 5
|
|
441
|
+
* });
|
|
442
|
+
* ```
|
|
443
|
+
*/
|
|
444
|
+
queueInit(name: string, options: any): this;
|
|
445
|
+
/**
|
|
446
|
+
* Ensure queue system is initialized
|
|
447
|
+
*/
|
|
448
|
+
private ensureQueueInitialized;
|
|
449
|
+
/**
|
|
450
|
+
* @deprecated Use queueInit() instead
|
|
451
|
+
*/
|
|
452
|
+
queue(name: string, options: any): Promise<void>;
|
|
453
|
+
/**
|
|
454
|
+
* Add a job to a queue
|
|
455
|
+
*
|
|
456
|
+
* @example
|
|
457
|
+
* ```typescript
|
|
458
|
+
* await app.addToQueue('emails', {
|
|
459
|
+
* to: 'user@example.com',
|
|
460
|
+
* subject: 'Welcome'
|
|
461
|
+
* }, {
|
|
462
|
+
* priority: 10,
|
|
463
|
+
* delay: 5000
|
|
464
|
+
* });
|
|
465
|
+
* ```
|
|
466
|
+
*/
|
|
467
|
+
addToQueue<T = any>(queueName: string, data: T, options?: any): Promise<any>;
|
|
468
|
+
/**
|
|
469
|
+
* Add multiple jobs to a queue in bulk
|
|
470
|
+
*
|
|
471
|
+
* @example
|
|
472
|
+
* ```typescript
|
|
473
|
+
* await app.addBulkToQueue('emails', [
|
|
474
|
+
* { data: { to: 'user1@example.com' }, options: { priority: 1 } },
|
|
475
|
+
* { data: { to: 'user2@example.com' }, options: { priority: 2 } }
|
|
476
|
+
* ]);
|
|
477
|
+
* ```
|
|
478
|
+
*/
|
|
479
|
+
addBulkToQueue<T = any>(queueName: string, jobs: Array<{
|
|
480
|
+
data: T;
|
|
481
|
+
options?: any;
|
|
482
|
+
}>): Promise<any[]>;
|
|
483
|
+
/**
|
|
484
|
+
* Register a processor for a queue
|
|
485
|
+
*
|
|
486
|
+
* @example
|
|
487
|
+
* ```typescript
|
|
488
|
+
* // Simple processor
|
|
489
|
+
* app.processQueue('emails', async (job) => {
|
|
490
|
+
* await sendEmail(job.data);
|
|
491
|
+
* });
|
|
492
|
+
*
|
|
493
|
+
* // With concurrency
|
|
494
|
+
* app.processQueue('images', 3, async (job) => {
|
|
495
|
+
* await processImage(job.data);
|
|
496
|
+
* });
|
|
497
|
+
* ```
|
|
498
|
+
*/
|
|
499
|
+
processQueue<R = any>(queueName: string, concurrencyOrHandler: number | ((job: any) => Promise<R>), handler?: (job: any) => Promise<R>): Promise<void>;
|
|
500
|
+
/**
|
|
501
|
+
* Get queue status
|
|
502
|
+
*/
|
|
503
|
+
getQueueStatus(queueName: string): Promise<any>;
|
|
504
|
+
/**
|
|
505
|
+
* Get a specific job from a queue
|
|
506
|
+
*/
|
|
507
|
+
getJob(queueName: string, jobId: string): Promise<any>;
|
|
508
|
+
/**
|
|
509
|
+
* Get jobs from a queue by status
|
|
510
|
+
*/
|
|
511
|
+
getJobs(queueName: string, status?: 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused', start?: number, end?: number): Promise<any[]>;
|
|
512
|
+
/**
|
|
513
|
+
* Remove a job from a queue
|
|
514
|
+
*/
|
|
515
|
+
removeJob(queueName: string, jobId: string): Promise<void>;
|
|
516
|
+
/**
|
|
517
|
+
* Retry a failed job
|
|
518
|
+
*/
|
|
519
|
+
retryJob(queueName: string, jobId: string): Promise<void>;
|
|
520
|
+
/**
|
|
521
|
+
* Pause a queue
|
|
522
|
+
*/
|
|
523
|
+
pauseQueue(queueName: string): Promise<void>;
|
|
524
|
+
/**
|
|
525
|
+
* Resume a paused queue
|
|
526
|
+
*/
|
|
527
|
+
resumeQueue(queueName: string): Promise<void>;
|
|
528
|
+
/**
|
|
529
|
+
* Clean old jobs from a queue
|
|
530
|
+
*/
|
|
531
|
+
cleanQueue(queueName: string, gracePeriod: number, status?: 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused'): Promise<void>;
|
|
532
|
+
/**
|
|
533
|
+
* Get all registered queue names
|
|
534
|
+
*/
|
|
535
|
+
getQueueNames(): string[];
|
|
536
|
+
/**
|
|
537
|
+
* Check if a queue is registered
|
|
538
|
+
*/
|
|
539
|
+
hasQueue(queueName: string): boolean;
|
|
540
|
+
/**
|
|
541
|
+
* Configure mail system (synchronous, lazy initialization)
|
|
542
|
+
*
|
|
543
|
+
* @example
|
|
544
|
+
* ```typescript
|
|
545
|
+
* // Using Nodemailer (SMTP) - chainable, no await needed!
|
|
546
|
+
* app.mailInit({
|
|
547
|
+
* adapter: 'nodemailer',
|
|
548
|
+
* from: { name: 'My App', email: 'noreply@myapp.com' },
|
|
549
|
+
* connection: {
|
|
550
|
+
* host: 'smtp.gmail.com',
|
|
551
|
+
* port: 587,
|
|
552
|
+
* secure: false,
|
|
553
|
+
* auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASSWORD }
|
|
554
|
+
* },
|
|
555
|
+
* templates: { path: './emails', engine: 'moro', cache: true }
|
|
556
|
+
* });
|
|
557
|
+
*
|
|
558
|
+
* // Using SendGrid
|
|
559
|
+
* app.mailInit({
|
|
560
|
+
* adapter: 'sendgrid',
|
|
561
|
+
* from: 'noreply@myapp.com',
|
|
562
|
+
* connection: { apiKey: process.env.SENDGRID_API_KEY }
|
|
563
|
+
* });
|
|
564
|
+
* ```
|
|
565
|
+
*/
|
|
566
|
+
mailInit(config: MailConfig): this;
|
|
567
|
+
/**
|
|
568
|
+
* Lazy initialize mail system on first use
|
|
569
|
+
*/
|
|
570
|
+
private ensureMailInitialized;
|
|
571
|
+
/**
|
|
572
|
+
* Send an email
|
|
573
|
+
*
|
|
574
|
+
* @example
|
|
575
|
+
* ```typescript
|
|
576
|
+
* // Simple email
|
|
577
|
+
* await app.sendMail({
|
|
578
|
+
* to: 'user@example.com',
|
|
579
|
+
* subject: 'Welcome',
|
|
580
|
+
* text: 'Welcome to our app!'
|
|
581
|
+
* });
|
|
582
|
+
*
|
|
583
|
+
* // With template
|
|
584
|
+
* await app.sendMail({
|
|
585
|
+
* to: 'user@example.com',
|
|
586
|
+
* subject: 'Password Reset',
|
|
587
|
+
* template: 'password-reset',
|
|
588
|
+
* data: { name: 'John', resetUrl: 'https://myapp.com/reset/token123' }
|
|
589
|
+
* });
|
|
590
|
+
*
|
|
591
|
+
* // With attachments
|
|
592
|
+
* await app.sendMail({
|
|
593
|
+
* to: 'user@example.com',
|
|
594
|
+
* subject: 'Invoice',
|
|
595
|
+
* template: 'invoice',
|
|
596
|
+
* data: { invoice },
|
|
597
|
+
* attachments: [{ filename: 'invoice.pdf', content: pdfBuffer }]
|
|
598
|
+
* });
|
|
599
|
+
* ```
|
|
600
|
+
*/
|
|
601
|
+
sendMail(options: MailOptions): Promise<MailResult>;
|
|
602
|
+
/**
|
|
603
|
+
* Send multiple emails in bulk
|
|
604
|
+
*
|
|
605
|
+
* @example
|
|
606
|
+
* ```typescript
|
|
607
|
+
* await app.sendBulkMail([
|
|
608
|
+
* { to: 'user1@example.com', subject: 'Hello', text: 'Hi!' },
|
|
609
|
+
* { to: 'user2@example.com', subject: 'Hello', text: 'Hi!' }
|
|
610
|
+
* ]);
|
|
611
|
+
* ```
|
|
612
|
+
*/
|
|
613
|
+
sendBulkMail(options: MailOptions[]): Promise<MailResult[]>;
|
|
614
|
+
/**
|
|
615
|
+
* Verify mail adapter connection
|
|
616
|
+
*/
|
|
617
|
+
verifyMail(): Promise<boolean>;
|
|
618
|
+
/**
|
|
619
|
+
* Get mail template engine for advanced usage
|
|
620
|
+
*/
|
|
621
|
+
getMailTemplateEngine(): any;
|
|
622
|
+
/**
|
|
623
|
+
* Check if mail system is configured
|
|
624
|
+
*/
|
|
625
|
+
hasMailSystem(): boolean;
|
|
294
626
|
}
|
|
295
627
|
export declare function createApp(options?: MoroOptions): Moro;
|
|
296
628
|
export declare function createAppNode(options?: Omit<MoroOptions, 'runtime'>): Moro;
|