@morojs/moro 1.8.0 → 1.8.2
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 +29 -38
- package/dist/core/auth/morojs-adapter.js +95 -45
- package/dist/core/auth/morojs-adapter.js.map +1 -1
- package/dist/core/config/config-manager.js.map +1 -1
- package/dist/core/config/config-sources.js +8 -49
- package/dist/core/config/config-sources.js.map +1 -1
- package/dist/core/config/config-validator.js +2 -3
- package/dist/core/config/config-validator.js.map +1 -1
- package/dist/core/config/file-loader.js.map +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.js +4 -1
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.js.map +1 -1
- package/dist/core/database/adapters/drizzle.js +2 -2
- package/dist/core/database/adapters/drizzle.js.map +1 -1
- package/dist/core/database/adapters/index.js.map +1 -1
- package/dist/core/database/adapters/mongodb.d.ts +1 -0
- package/dist/core/database/adapters/mongodb.js +16 -0
- package/dist/core/database/adapters/mongodb.js.map +1 -1
- package/dist/core/database/adapters/mysql.d.ts +1 -0
- package/dist/core/database/adapters/mysql.js +13 -2
- package/dist/core/database/adapters/mysql.js.map +1 -1
- package/dist/core/database/adapters/postgresql.js +2 -2
- package/dist/core/database/adapters/postgresql.js.map +1 -1
- package/dist/core/database/adapters/redis.js.map +1 -1
- package/dist/core/database/adapters/sql-safety.js +5 -4
- package/dist/core/database/adapters/sql-safety.js.map +1 -1
- package/dist/core/database/adapters/sqlite.js.map +1 -1
- package/dist/core/database/index.js.map +1 -1
- package/dist/core/docs/index.js +11 -7
- package/dist/core/docs/index.js.map +1 -1
- package/dist/core/docs/openapi-generator.js +8 -6
- package/dist/core/docs/openapi-generator.js.map +1 -1
- package/dist/core/docs/schema-to-openapi.js +3 -3
- package/dist/core/docs/schema-to-openapi.js.map +1 -1
- package/dist/core/docs/simple-docs.js.map +1 -1
- package/dist/core/docs/swagger-ui.js.map +1 -1
- package/dist/core/docs/zod-to-openapi.js +2 -2
- package/dist/core/docs/zod-to-openapi.js.map +1 -1
- package/dist/core/events/event-bus.js +14 -5
- package/dist/core/events/event-bus.js.map +1 -1
- package/dist/core/events/index.js.map +1 -1
- package/dist/core/framework.d.ts +2 -2
- package/dist/core/framework.js +21 -14
- package/dist/core/framework.js.map +1 -1
- package/dist/core/graphql/adapter.js.map +1 -1
- package/dist/core/graphql/adapters/graphql-js-adapter.js.map +1 -1
- package/dist/core/graphql/core.js.map +1 -1
- package/dist/core/graphql/index.js.map +1 -1
- package/dist/core/graphql/loader.js.map +1 -1
- package/dist/core/graphql/types.js.map +1 -1
- package/dist/core/grpc/adapters/grpc-js-adapter.js +4 -0
- package/dist/core/grpc/adapters/grpc-js-adapter.js.map +1 -1
- package/dist/core/grpc/adapters/index.js.map +1 -1
- package/dist/core/grpc/grpc-adapter.js.map +1 -1
- package/dist/core/grpc/grpc-manager.js.map +1 -1
- package/dist/core/grpc/index.js.map +1 -1
- package/dist/core/grpc/middleware/auth.js +1 -1
- package/dist/core/grpc/middleware/auth.js.map +1 -1
- package/dist/core/grpc/middleware/logging.js.map +1 -1
- package/dist/core/grpc/middleware/validation.js +1 -1
- package/dist/core/grpc/middleware/validation.js.map +1 -1
- package/dist/core/grpc/types.d.ts +7 -7
- package/dist/core/grpc/types.js.map +1 -1
- package/dist/core/http/http-server.d.ts +0 -13
- package/dist/core/http/http-server.js +34 -141
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/http2-server.js +27 -5
- package/dist/core/http/http2-server.js.map +1 -1
- package/dist/core/http/index.js.map +1 -1
- package/dist/core/http/moro-engine-server.d.ts +2 -2
- package/dist/core/http/moro-engine-server.js +48 -22
- package/dist/core/http/moro-engine-server.js.map +1 -1
- package/dist/core/http/utils/compression.js +3 -3
- package/dist/core/http/utils/compression.js.map +1 -1
- package/dist/core/http/utils/lazy-event-emitter.js.map +1 -1
- package/dist/core/http/utils/multipart-parser.js +7 -3
- package/dist/core/http/utils/multipart-parser.js.map +1 -1
- package/dist/core/http/utils/query-parser.js.map +1 -1
- package/dist/core/http/utils/size.js +2 -2
- package/dist/core/http/utils/size.js.map +1 -1
- package/dist/core/http/utils/ssl-config.d.ts +10 -10
- package/dist/core/http/utils/ssl-config.js.map +1 -1
- package/dist/core/http/utils/uws-worker-clustering.js +37 -30
- package/dist/core/http/utils/uws-worker-clustering.js.map +1 -1
- package/dist/core/http/uws-http-server.d.ts +1 -0
- package/dist/core/http/uws-http-server.js +80 -22
- package/dist/core/http/uws-http-server.js.map +1 -1
- package/dist/core/jobs/cron-parser.js +7 -5
- package/dist/core/jobs/cron-parser.js.map +1 -1
- package/dist/core/jobs/index.js.map +1 -1
- package/dist/core/jobs/job-executor.d.ts +1 -1
- package/dist/core/jobs/job-executor.js.map +1 -1
- package/dist/core/jobs/job-scheduler.d.ts +3 -3
- package/dist/core/jobs/job-scheduler.js.map +1 -1
- package/dist/core/jobs/job-state-manager.d.ts +3 -3
- package/dist/core/jobs/job-state-manager.js +25 -4
- package/dist/core/jobs/job-state-manager.js.map +1 -1
- package/dist/core/jobs/leader-election.d.ts +15 -0
- package/dist/core/jobs/leader-election.js +158 -69
- package/dist/core/jobs/leader-election.js.map +1 -1
- package/dist/core/jobs/types.d.ts +4 -4
- package/dist/core/jobs/types.js.map +1 -1
- package/dist/core/jobs/utils.d.ts +1 -1
- package/dist/core/jobs/utils.js +7 -3
- package/dist/core/jobs/utils.js.map +1 -1
- package/dist/core/logger/filters.js +3 -2
- package/dist/core/logger/filters.js.map +1 -1
- package/dist/core/logger/index.js.map +1 -1
- package/dist/core/logger/logger.js +56 -25
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/logger/outputs.js.map +1 -1
- package/dist/core/mail/adapters/console-adapter.js.map +1 -1
- package/dist/core/mail/adapters/index.js.map +1 -1
- package/dist/core/mail/adapters/nodemailer-adapter.js.map +1 -1
- package/dist/core/mail/adapters/resend-adapter.js.map +1 -1
- package/dist/core/mail/adapters/sendgrid-adapter.js.map +1 -1
- package/dist/core/mail/adapters/ses-adapter.js.map +1 -1
- package/dist/core/mail/index.js.map +1 -1
- package/dist/core/mail/mail-adapter.js.map +1 -1
- package/dist/core/mail/mail-manager.d.ts +10 -0
- package/dist/core/mail/mail-manager.js +21 -5
- package/dist/core/mail/mail-manager.js.map +1 -1
- package/dist/core/mail/template-engine.js.map +1 -1
- package/dist/core/mail/types.js.map +1 -1
- package/dist/core/middleware/built-in/auth/core.js +3 -3
- package/dist/core/middleware/built-in/auth/core.js.map +1 -1
- package/dist/core/middleware/built-in/auth/helpers.js +4 -4
- package/dist/core/middleware/built-in/auth/helpers.js.map +1 -1
- package/dist/core/middleware/built-in/auth/hook.js.map +1 -1
- package/dist/core/middleware/built-in/auth/index.js.map +1 -1
- package/dist/core/middleware/built-in/auth/jwt-helpers.d.ts +4 -4
- package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -1
- package/dist/core/middleware/built-in/auth/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/auth/providers.js.map +1 -1
- package/dist/core/middleware/built-in/body-parsers/index.js.map +1 -1
- package/dist/core/middleware/built-in/body-size/core.js +2 -2
- package/dist/core/middleware/built-in/body-size/core.js.map +1 -1
- package/dist/core/middleware/built-in/body-size/hook.js.map +1 -1
- package/dist/core/middleware/built-in/body-size/index.js.map +1 -1
- package/dist/core/middleware/built-in/body-size/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/file.js +3 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -1
- package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -1
- package/dist/core/middleware/built-in/cache/core.js.map +1 -1
- package/dist/core/middleware/built-in/cache/hook.js +3 -3
- package/dist/core/middleware/built-in/cache/hook.js.map +1 -1
- package/dist/core/middleware/built-in/cache/index.js.map +1 -1
- package/dist/core/middleware/built-in/cache/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/core.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/hook.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/index.js.map +1 -1
- package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/compression/core.js.map +1 -1
- package/dist/core/middleware/built-in/compression/hook.js.map +1 -1
- package/dist/core/middleware/built-in/compression/index.js.map +1 -1
- package/dist/core/middleware/built-in/compression/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/cookie/core.js.map +1 -1
- package/dist/core/middleware/built-in/cookie/hook.js.map +1 -1
- package/dist/core/middleware/built-in/cookie/index.js.map +1 -1
- package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/cors/core.js.map +1 -1
- package/dist/core/middleware/built-in/cors/hook.js.map +1 -1
- package/dist/core/middleware/built-in/cors/index.js.map +1 -1
- package/dist/core/middleware/built-in/cors/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/csp/core.js.map +1 -1
- package/dist/core/middleware/built-in/csp/hook.js.map +1 -1
- package/dist/core/middleware/built-in/csp/index.js.map +1 -1
- package/dist/core/middleware/built-in/csp/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/csrf/core.js +1 -1
- package/dist/core/middleware/built-in/csrf/core.js.map +1 -1
- package/dist/core/middleware/built-in/csrf/hook.js.map +1 -1
- package/dist/core/middleware/built-in/csrf/index.js.map +1 -1
- package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -1
- package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/graphql/core.js.map +1 -1
- package/dist/core/middleware/built-in/graphql/helpers.js.map +1 -1
- package/dist/core/middleware/built-in/graphql/hook.js.map +1 -1
- package/dist/core/middleware/built-in/graphql/index.js.map +1 -1
- package/dist/core/middleware/built-in/graphql/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/graphql/subscriptions.js.map +1 -1
- package/dist/core/middleware/built-in/helmet/core.js.map +1 -1
- package/dist/core/middleware/built-in/helmet/hook.js.map +1 -1
- package/dist/core/middleware/built-in/helmet/index.js.map +1 -1
- package/dist/core/middleware/built-in/helmet/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/http2/core.js.map +1 -1
- package/dist/core/middleware/built-in/http2/hook.js.map +1 -1
- package/dist/core/middleware/built-in/http2/index.js.map +1 -1
- package/dist/core/middleware/built-in/http2/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/index.js.map +1 -1
- package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -1
- package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/range/core.js +4 -1
- package/dist/core/middleware/built-in/range/core.js.map +1 -1
- package/dist/core/middleware/built-in/range/hook.js.map +1 -1
- package/dist/core/middleware/built-in/range/index.js.map +1 -1
- package/dist/core/middleware/built-in/range/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -1
- package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -1
- package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -1
- package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/request-logger/index.js.map +1 -1
- package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/session/core.js +4 -4
- package/dist/core/middleware/built-in/session/core.js.map +1 -1
- package/dist/core/middleware/built-in/session/hook.js.map +1 -1
- package/dist/core/middleware/built-in/session/index.js.map +1 -1
- package/dist/core/middleware/built-in/session/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/sse/core.js.map +1 -1
- package/dist/core/middleware/built-in/sse/hook.js.map +1 -1
- package/dist/core/middleware/built-in/sse/index.js.map +1 -1
- package/dist/core/middleware/built-in/sse/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/static/core.js.map +1 -1
- package/dist/core/middleware/built-in/static/hook.js.map +1 -1
- package/dist/core/middleware/built-in/static/index.js.map +1 -1
- package/dist/core/middleware/built-in/static/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/template/core.js +1 -1
- package/dist/core/middleware/built-in/template/core.js.map +1 -1
- package/dist/core/middleware/built-in/template/hook.js.map +1 -1
- package/dist/core/middleware/built-in/template/index.js.map +1 -1
- package/dist/core/middleware/built-in/template/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/upload/core.js.map +1 -1
- package/dist/core/middleware/built-in/upload/hook.js.map +1 -1
- package/dist/core/middleware/built-in/upload/index.js.map +1 -1
- package/dist/core/middleware/built-in/upload/middleware.js.map +1 -1
- package/dist/core/middleware/built-in/validation/core.js.map +1 -1
- package/dist/core/middleware/built-in/validation/hook.js.map +1 -1
- package/dist/core/middleware/built-in/validation/index.js.map +1 -1
- package/dist/core/middleware/built-in/validation/middleware.js.map +1 -1
- package/dist/core/middleware/index.js +2 -2
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/modules/auto-discovery.js +11 -7
- package/dist/core/modules/auto-discovery.js.map +1 -1
- package/dist/core/modules/index.js.map +1 -1
- package/dist/core/modules/modules.js +18 -13
- package/dist/core/modules/modules.js.map +1 -1
- package/dist/core/networking/adapters/engine-adapter.js +30 -2
- package/dist/core/networking/adapters/engine-adapter.js.map +1 -1
- package/dist/core/networking/adapters/index.js.map +1 -1
- package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -0
- package/dist/core/networking/adapters/socketio-adapter.js +12 -1
- package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
- package/dist/core/networking/adapters/uws-adapter.js +1 -1
- package/dist/core/networking/adapters/uws-adapter.js.map +1 -1
- package/dist/core/networking/adapters/ws-adapter.d.ts +15 -0
- package/dist/core/networking/adapters/ws-adapter.js +120 -6
- package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
- package/dist/core/networking/index.js.map +1 -1
- package/dist/core/networking/service-discovery.js +7 -5
- package/dist/core/networking/service-discovery.js.map +1 -1
- package/dist/core/networking/websocket-adapter.d.ts +22 -3
- package/dist/core/networking/websocket-adapter.js.map +1 -1
- package/dist/core/networking/websocket-manager.js +70 -67
- package/dist/core/networking/websocket-manager.js.map +1 -1
- package/dist/core/pooling/object-pool-manager.js +6 -0
- package/dist/core/pooling/object-pool-manager.js.map +1 -1
- package/dist/core/queue/adapters/bull-adapter.js.map +1 -1
- package/dist/core/queue/adapters/index.js.map +1 -1
- package/dist/core/queue/adapters/kafka-adapter.js +2 -2
- package/dist/core/queue/adapters/kafka-adapter.js.map +1 -1
- package/dist/core/queue/adapters/memory-adapter.js +6 -6
- package/dist/core/queue/adapters/memory-adapter.js.map +1 -1
- package/dist/core/queue/adapters/rabbitmq-adapter.d.ts +50 -0
- package/dist/core/queue/adapters/rabbitmq-adapter.js +176 -20
- package/dist/core/queue/adapters/rabbitmq-adapter.js.map +1 -1
- package/dist/core/queue/adapters/sqs-adapter.d.ts +12 -2
- package/dist/core/queue/adapters/sqs-adapter.js +75 -24
- package/dist/core/queue/adapters/sqs-adapter.js.map +1 -1
- package/dist/core/queue/index.js.map +1 -1
- package/dist/core/queue/middleware/index.js.map +1 -1
- package/dist/core/queue/middleware/monitoring.d.ts +1 -1
- package/dist/core/queue/middleware/monitoring.js.map +1 -1
- package/dist/core/queue/middleware/priority.js +2 -1
- package/dist/core/queue/middleware/priority.js.map +1 -1
- package/dist/core/queue/middleware/rate-limit.js.map +1 -1
- package/dist/core/queue/queue-adapter.js.map +1 -1
- package/dist/core/queue/queue-manager.js.map +1 -1
- package/dist/core/queue/types.d.ts +8 -8
- package/dist/core/queue/types.js.map +1 -1
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/create-router.js.map +1 -1
- package/dist/core/routing/index.js.map +1 -1
- package/dist/core/routing/path-matcher.js.map +1 -1
- package/dist/core/routing/radix-tree.js.map +1 -1
- package/dist/core/routing/router.js.map +1 -1
- package/dist/core/routing/unified-router.js +12 -4
- package/dist/core/routing/unified-router.js.map +1 -1
- package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
- package/dist/core/runtime/base-adapter.js +2 -2
- package/dist/core/runtime/base-adapter.js.map +1 -1
- package/dist/core/runtime/cloudflare-workers-adapter.js +2 -0
- package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
- package/dist/core/runtime/index.js.map +1 -1
- package/dist/core/runtime/node-adapter.js +19 -17
- package/dist/core/runtime/node-adapter.js.map +1 -1
- package/dist/core/runtime/vercel-edge-adapter.js +2 -0
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
- package/dist/core/utilities/circuit-breaker.d.ts +1 -0
- package/dist/core/utilities/circuit-breaker.js +25 -2
- package/dist/core/utilities/circuit-breaker.js.map +1 -1
- package/dist/core/utilities/container.js +9 -9
- package/dist/core/utilities/container.js.map +1 -1
- package/dist/core/utilities/hooks.js +28 -6
- package/dist/core/utilities/hooks.js.map +1 -1
- package/dist/core/utilities/index.js.map +1 -1
- package/dist/core/utilities/module-path.js.map +1 -1
- package/dist/core/utilities/package-utils.js +1 -1
- package/dist/core/utilities/package-utils.js.map +1 -1
- package/dist/core/utilities/response-helpers.js +1 -1
- package/dist/core/utilities/response-helpers.js.map +1 -1
- package/dist/core/validation/adapters.js.map +1 -1
- package/dist/core/validation/error-handler.js.map +1 -1
- package/dist/core/validation/index.js.map +1 -1
- package/dist/core/validation/schema-interface.js.map +1 -1
- package/dist/core/workers/facade.js.map +1 -1
- package/dist/core/workers/index.js.map +1 -1
- package/dist/core/workers/worker-entry.d.ts +1 -0
- package/dist/core/workers/worker-entry.js +12 -0
- package/dist/core/workers/worker-entry.js.map +1 -0
- package/dist/core/workers/worker-manager.d.ts +23 -2
- package/dist/core/workers/worker-manager.js +117 -17
- package/dist/core/workers/worker-manager.js.map +1 -1
- package/dist/core/workers/worker.js +8 -6
- package/dist/core/workers/worker.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +18 -1
- package/dist/moro.js +168 -50
- package/dist/moro.js.map +1 -1
- package/dist/types/auth.d.ts +4 -4
- package/dist/types/auth.js.map +1 -1
- package/dist/types/cache.js.map +1 -1
- package/dist/types/cdn.js.map +1 -1
- package/dist/types/config.d.ts +10 -10
- package/dist/types/config.js.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/database.js.map +1 -1
- package/dist/types/discovery.js.map +1 -1
- package/dist/types/events.js.map +1 -1
- package/dist/types/hooks.js.map +1 -1
- package/dist/types/http.js.map +1 -1
- package/dist/types/logger.js.map +1 -1
- package/dist/types/module.js.map +1 -1
- package/dist/types/runtime.js.map +1 -1
- package/dist/types/session.js.map +1 -1
- package/package.json +29 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendgrid-adapter.js","sourceRoot":"","sources":["../../../../src/core/mail/adapters/sendgrid-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sendgrid-adapter.js","sourceRoot":"","sources":["../../../../src/core/mail/adapters/sendgrid-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["// SendGrid Adapter - SendGrid Email Service\n// ESM-first module with lazy loading\n\nimport { BaseMailAdapter } from '../mail-adapter.js';\nimport type { MailOptions, MailResult, SendGridConnection } from '../types.js';\nimport { isPackageAvailable, resolveUserPackage } from '../../utilities/package-utils.js';\nimport { createFrameworkLogger } from '../../logger/index.js';\nimport type { Logger } from '../../../types/logger.js';\n\n/**\n * SendGrid adapter for email sending\n * Supports SendGrid API features\n */\nexport class SendGridAdapter extends BaseMailAdapter {\n private client: any;\n private logger: Logger;\n private sandboxMode: boolean;\n\n constructor() {\n super();\n this.logger = createFrameworkLogger('Mail:SendGrid');\n this.sandboxMode = false;\n }\n\n override async initialize(config: SendGridConnection): Promise<void> {\n if (!config.apiKey) {\n throw new Error('SendGrid API key is required');\n }\n\n if (!isPackageAvailable('@sendgrid/mail')) {\n throw new Error(\n 'SendGrid mail package is not installed.\\n' +\n 'Install it with: npm install @sendgrid/mail\\n' +\n 'Or use a different mail adapter.'\n );\n }\n\n const sendgridPath = resolveUserPackage('@sendgrid/mail');\n const sgMail = await import(sendgridPath);\n\n sgMail.default.setApiKey(config.apiKey);\n this.client = sgMail.default;\n this.sandboxMode = config.sandboxMode || false;\n\n await super.initialize(config);\n this.logger.info('SendGrid adapter initialized', 'Mail');\n }\n\n async send(options: MailOptions): Promise<MailResult> {\n this.ensureInitialized();\n\n if (!this.client) {\n throw new Error('SendGrid client not initialized');\n }\n\n try {\n const msg: any = {\n from: this.formatAddress(options.from),\n to: this.formatAddressesArray(options.to),\n subject: options.subject,\n text: options.text,\n html: options.html,\n };\n\n if (options.cc) {\n msg.cc = this.formatAddressesArray(options.cc);\n }\n\n if (options.bcc) {\n msg.bcc = this.formatAddressesArray(options.bcc);\n }\n\n if (options.replyTo) {\n msg.replyTo = this.formatAddress(options.replyTo);\n }\n\n if (options.attachments) {\n msg.attachments = options.attachments.map(att => ({\n filename: att.filename,\n content: Buffer.isBuffer(att.content) ? att.content.toString('base64') : att.content,\n type: att.contentType,\n disposition: 'attachment',\n contentId: att.cid,\n }));\n }\n\n // Build headers with compliance fields\n const headers: Record<string, string> = { ...options.headers };\n\n if (options.messageId) {\n headers['Message-ID'] = options.messageId;\n }\n\n if (options.references) {\n headers['References'] = Array.isArray(options.references)\n ? options.references.join(' ')\n : options.references;\n }\n\n if (options.inReplyTo) {\n headers['In-Reply-To'] = options.inReplyTo;\n }\n\n // List management headers (RFC 2369)\n if (options.listUnsubscribe) {\n headers['List-Unsubscribe'] = Array.isArray(options.listUnsubscribe)\n ? `<${options.listUnsubscribe.join('>, <')}>`\n : `<${options.listUnsubscribe}>`;\n }\n\n if (options.listUnsubscribePost) {\n headers['List-Unsubscribe-Post'] = options.listUnsubscribePost;\n }\n\n if (options.listId) {\n headers['List-ID'] = options.listId;\n }\n\n if (Object.keys(headers).length > 0) {\n msg.headers = headers;\n }\n\n // SendGrid-specific features\n if (options.tags && options.tags.length > 0) {\n msg.categories = options.tags;\n }\n\n if (options.metadata) {\n msg.customArgs = options.metadata;\n }\n\n if (options.scheduledAt) {\n msg.sendAt = Math.floor(options.scheduledAt.getTime() / 1000);\n }\n\n if (this.sandboxMode) {\n msg.mailSettings = {\n sandboxMode: {\n enable: true,\n },\n };\n }\n\n const response = await this.client.send(msg);\n\n return {\n success: true,\n messageId: response[0]?.headers?.['x-message-id'],\n response: JSON.stringify(response[0]),\n };\n } catch (error: any) {\n this.logger.error('Failed to send email via SendGrid', 'Mail', { error });\n\n return {\n success: false,\n error: error?.message || String(error),\n };\n }\n }\n\n override async sendBulk(options: MailOptions[]): Promise<MailResult[]> {\n this.ensureInitialized();\n\n if (!this.client) {\n throw new Error('SendGrid client not initialized');\n }\n\n try {\n const messages = options.map(opts => ({\n from: this.formatAddress(opts.from),\n to: this.formatAddressesArray(opts.to),\n subject: opts.subject,\n text: opts.text,\n html: opts.html,\n }));\n\n const response = await this.client.send(messages);\n\n return response.map((res: any) => ({\n success: true,\n messageId: res?.headers?.['x-message-id'],\n response: JSON.stringify(res),\n }));\n } catch (error: any) {\n this.logger.error('Failed to send bulk emails via SendGrid', 'Mail', { error });\n\n return options.map(() => ({\n success: false,\n error: error?.message || String(error),\n }));\n }\n }\n\n getName(): string {\n return 'SendGrid';\n }\n\n override async verify(): Promise<boolean> {\n return this.initialized;\n }\n\n private formatAddress(address: any): any {\n if (!address) {\n return '';\n }\n\n if (typeof address === 'string') {\n return { email: address };\n }\n\n return {\n email: address.email,\n name: address.name,\n };\n }\n\n private formatAddressesArray(addresses: any): any[] {\n if (!addresses) {\n return [];\n }\n\n if (typeof addresses === 'string') {\n return [{ email: addresses }];\n }\n\n if (Array.isArray(addresses)) {\n return addresses.map(addr => this.formatAddress(addr));\n }\n\n return [this.formatAddress(addresses)];\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ses-adapter.js","sourceRoot":"","sources":["../../../../src/core/mail/adapters/ses-adapter.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,qCAAqC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IACrC,MAAM,CAAM;IACZ,MAAM,CAAS;IACf,gBAAgB,CAAU;IAElC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAqB;QACpC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,iCAAiC;gBAC/B,oDAAoD;gBACpD,kCAAkC,CACrC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,YAAY,GAAQ;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAChD,CAAC;aAAM,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YACxD,YAAY,CAAC,WAAW,GAAG;gBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEhD,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;YAC1D,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnD,MAAM,WAAW,GAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;aACnD,CAAC;YAEF,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACf,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,OAAO,GAAQ;gBACnB,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO,CAAC,OAAO;oBACrB,OAAO,EAAE,OAAO;iBACjB;gBACD,IAAI,EAAE,EAAE;aACT,CAAC;YAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO;iBACjB,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO;iBACjB,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAQ;gBACzB,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC9C,WAAW,EAAE,WAAW;gBACxB,OAAO,EAAE,OAAO;gBAChB,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3F,oBAAoB,EAAE,IAAI,CAAC,gBAAgB;aAC5C,CAAC;YAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,aAAa,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAChD,CAAC;YAED,qFAAqF;YACrF,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;oBACrE,IAAI,EAAE,OAAO,KAAK,EAAE;oBACpB,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC,CAAC;YACN,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aACnC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAErE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;aACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;YAC1D,MAAM,EAAE,+BAA+B,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YAElE,MAAM,OAAO,GAAG,IAAI,+BAA+B,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,OAAY;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,KAAK,GAAG,CAAC;QAChD,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IAEO,oBAAoB,CAAC,SAAc;QACzC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"ses-adapter.js","sourceRoot":"","sources":["../../../../src/core/mail/adapters/ses-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["// AWS SES Adapter - Amazon Simple Email Service\n// ESM-first module with lazy loading\n\nimport { BaseMailAdapter } from '../mail-adapter.js';\nimport type { MailOptions, MailResult, SESConnection } from '../types.js';\nimport { isPackageAvailable, resolveUserPackage } from '../../utilities/package-utils.js';\nimport { createFrameworkLogger } from '../../logger/index.js';\nimport type { Logger } from '../../../types/logger.js';\n\n/**\n * AWS SES adapter for email sending\n * Supports AWS Simple Email Service\n */\nexport class SESAdapter extends BaseMailAdapter {\n private client: any;\n private logger: Logger;\n private configurationSet?: string | undefined;\n\n constructor() {\n super();\n this.logger = createFrameworkLogger('Mail:SES');\n }\n\n override async initialize(config: SESConnection): Promise<void> {\n if (!config.region) {\n throw new Error('AWS region is required for SES adapter');\n }\n\n if (!isPackageAvailable('@aws-sdk/client-ses')) {\n throw new Error(\n 'AWS SES SDK is not installed.\\n' +\n 'Install it with: npm install @aws-sdk/client-ses\\n' +\n 'Or use a different mail adapter.'\n );\n }\n\n const sesPath = resolveUserPackage('@aws-sdk/client-ses');\n const { SESClient } = await import(sesPath);\n\n const clientConfig: any = {\n region: config.region,\n };\n\n if (config.credentials) {\n clientConfig.credentials = config.credentials;\n } else if (config.accessKeyId && config.secretAccessKey) {\n clientConfig.credentials = {\n accessKeyId: config.accessKeyId,\n secretAccessKey: config.secretAccessKey,\n };\n }\n\n this.client = new SESClient(clientConfig);\n this.configurationSet = config.configurationSet;\n\n await super.initialize(config);\n this.logger.info('AWS SES adapter initialized', 'Mail');\n }\n\n async send(options: MailOptions): Promise<MailResult> {\n this.ensureInitialized();\n\n if (!this.client) {\n throw new Error('SES client not initialized');\n }\n\n try {\n const sesPath = resolveUserPackage('@aws-sdk/client-ses');\n const { SendEmailCommand } = await import(sesPath);\n\n const destination: any = {\n ToAddresses: this.formatAddressesArray(options.to),\n };\n\n if (options.cc) {\n destination.CcAddresses = this.formatAddressesArray(options.cc);\n }\n\n if (options.bcc) {\n destination.BccAddresses = this.formatAddressesArray(options.bcc);\n }\n\n const message: any = {\n Subject: {\n Data: options.subject,\n Charset: 'UTF-8',\n },\n Body: {},\n };\n\n if (options.text) {\n message.Body.Text = {\n Data: options.text,\n Charset: 'UTF-8',\n };\n }\n\n if (options.html) {\n message.Body.Html = {\n Data: options.html,\n Charset: 'UTF-8',\n };\n }\n\n const commandParams: any = {\n Source: this.formatSingleAddress(options.from),\n Destination: destination,\n Message: message,\n ReplyToAddresses: options.replyTo ? [this.formatSingleAddress(options.replyTo)] : undefined,\n ConfigurationSetName: this.configurationSet,\n };\n\n if (options.returnPath) {\n commandParams.ReturnPath = options.returnPath;\n }\n\n // Add custom headers via Tags (SES limitation - headers must be added via raw email)\n if (options.tags && options.tags.length > 0) {\n commandParams.Tags = options.tags.map((tag: string, index: number) => ({\n Name: `tag-${index}`,\n Value: tag,\n }));\n }\n\n const command = new SendEmailCommand(commandParams);\n\n const response = await this.client.send(command);\n\n return {\n success: true,\n messageId: response.MessageId,\n response: JSON.stringify(response),\n };\n } catch (error: any) {\n this.logger.error('Failed to send email via SES', 'Mail', { error });\n\n return {\n success: false,\n error: error?.message || String(error),\n };\n }\n }\n\n getName(): string {\n return 'AWS SES';\n }\n\n override async verify(): Promise<boolean> {\n if (!this.client) {\n return false;\n }\n\n try {\n const sesPath = resolveUserPackage('@aws-sdk/client-ses');\n const { GetAccountSendingEnabledCommand } = await import(sesPath);\n\n const command = new GetAccountSendingEnabledCommand({});\n await this.client.send(command);\n return true;\n } catch (error) {\n this.logger.error('SES verification failed', 'Mail', { error });\n return false;\n }\n }\n\n private formatSingleAddress(address: any): string {\n if (!address) {\n return '';\n }\n\n if (typeof address === 'string') {\n return address;\n }\n\n if (address.name) {\n return `\"${address.name}\" <${address.email}>`;\n }\n\n return address.email;\n }\n\n private formatAddressesArray(addresses: any): string[] {\n if (!addresses) {\n return [];\n }\n\n if (typeof addresses === 'string') {\n return [addresses];\n }\n\n if (Array.isArray(addresses)) {\n return addresses.map(addr => {\n if (typeof addr === 'string') {\n return addr;\n }\n return addr.email;\n });\n }\n\n if (typeof addresses === 'object') {\n return [addresses.email];\n }\n\n return [];\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/mail/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,mBAAmB;AAmBnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/mail/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,mBAAmB;AAmBnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,qBAAqB,CAAC","sourcesContent":["// Mail System - Public API\n// ESM-first module\n\nexport type {\n MailConfig,\n MailOptions,\n MailResult,\n MailAdapter,\n MailAdapterType,\n EmailAddress,\n EmailAttachment,\n TemplateConfig,\n TemplateEngine,\n MailQueueConfig,\n NodemailerConnection,\n SendGridConnection,\n SESConnection,\n ResendConnection,\n} from './types.js';\n\nexport { MailManager } from './mail-manager.js';\nexport { TemplateEngineManager } from './template-engine.js';\nexport { BaseMailAdapter } from './mail-adapter.js';\n\n// Export adapters\nexport {\n ConsoleAdapter,\n NodemailerAdapter,\n SendGridAdapter,\n SESAdapter,\n ResendAdapter,\n} from './adapters/index.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-adapter.js","sourceRoot":"","sources":["../../../src/core/mail/mail-adapter.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,mBAAmB;AAInB;;;GAGG;AACH,MAAM,OAAgB,eAAe;IACzB,MAAM,CAAM;IACZ,WAAW,GAAG,KAAK,CAAC;IAE9B;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAW;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAYD;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,OAAkD;QAI3E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACO,kBAAkB,CAC1B,SAIsC;QAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"mail-adapter.js","sourceRoot":"","sources":["../../../src/core/mail/mail-adapter.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,mBAAmB;AAInB;;;GAGG;AACH,MAAM,OAAgB,eAAe;IACzB,MAAM,CAAM;IACZ,WAAW,GAAG,KAAK,CAAC;IAE9B;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAW;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAYD;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,OAAkD;QAI3E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACO,kBAAkB,CAC1B,SAIsC;QAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;CACF","sourcesContent":["// Base Mail Adapter Interface\n// ESM-first module\n\nimport type { MailAdapter, MailOptions, MailResult } from './types.js';\n\n/**\n * Abstract base class for mail adapters\n * Provides common functionality and interface\n */\nexport abstract class BaseMailAdapter implements MailAdapter {\n protected config: any;\n protected initialized = false;\n\n /**\n * Initialize adapter with configuration\n */\n async initialize(config: any): Promise<void> {\n this.config = config;\n this.initialized = true;\n }\n\n /**\n * Send an email (must be implemented by subclasses)\n */\n abstract send(options: MailOptions): Promise<MailResult>;\n\n /**\n * Get adapter name (must be implemented by subclasses)\n */\n abstract getName(): string;\n\n /**\n * Send multiple emails in bulk\n * Default implementation sends one by one\n * Override for better performance\n */\n async sendBulk(options: MailOptions[]): Promise<MailResult[]> {\n if (!this.initialized) {\n throw new Error(`${this.getName()} adapter not initialized`);\n }\n\n const results: MailResult[] = [];\n\n for (const mailOptions of options) {\n try {\n const result = await this.send(mailOptions);\n results.push(result);\n } catch (error) {\n results.push({\n success: false,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return results;\n }\n\n /**\n * Verify adapter connection (optional)\n */\n async verify(): Promise<boolean> {\n return this.initialized;\n }\n\n /**\n * Close adapter connections (optional)\n */\n async close(): Promise<void> {\n this.initialized = false;\n }\n\n /**\n * Normalize email address\n */\n protected normalizeAddress(address: string | { name?: string; email: string }): {\n name?: string;\n email: string;\n } {\n if (typeof address === 'string') {\n return { email: address };\n }\n return address;\n }\n\n /**\n * Normalize email addresses array\n */\n protected normalizeAddresses(\n addresses:\n | string\n | string[]\n | { name?: string; email: string }\n | { name?: string; email: string }[]\n ): { name?: string; email: string }[] {\n if (!addresses) {\n return [];\n }\n\n if (Array.isArray(addresses)) {\n return addresses.map(addr => this.normalizeAddress(addr));\n }\n\n return [this.normalizeAddress(addresses)];\n }\n\n /**\n * Check if adapter is initialized\n */\n protected ensureInitialized(): void {\n if (!this.initialized) {\n throw new Error(`${this.getName()} adapter not initialized. Call initialize() first.`);\n }\n }\n}\n"]}
|
|
@@ -24,6 +24,16 @@ export declare class MailManager {
|
|
|
24
24
|
* Send an email
|
|
25
25
|
*/
|
|
26
26
|
send(options: MailOptions): Promise<MailResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Deliver an email immediately through the adapter, bypassing the queue.
|
|
29
|
+
*
|
|
30
|
+
* The mail queue processor MUST call this instead of send(): send() re-checks
|
|
31
|
+
* queue.enabled and re-enqueues, so routing a dequeued job back through it
|
|
32
|
+
* loops forever and no mail is ever delivered. Options pulled off the queue
|
|
33
|
+
* are already from-defaulted and template-rendered, so no re-processing is
|
|
34
|
+
* needed here.
|
|
35
|
+
*/
|
|
36
|
+
deliver(options: MailOptions): Promise<MailResult>;
|
|
27
37
|
/**
|
|
28
38
|
* Send email directly (synchronous)
|
|
29
39
|
*/
|
|
@@ -94,9 +94,10 @@ export class MailManager {
|
|
|
94
94
|
if (!options.from && !this.defaultFrom) {
|
|
95
95
|
throw new Error('Email "from" address not specified');
|
|
96
96
|
}
|
|
97
|
+
const resolvedFrom = options.from || this.defaultFrom;
|
|
97
98
|
const mailOptions = {
|
|
98
99
|
...options,
|
|
99
|
-
from:
|
|
100
|
+
...(resolvedFrom ? { from: resolvedFrom } : {}),
|
|
100
101
|
};
|
|
101
102
|
if (!mailOptions.from) {
|
|
102
103
|
throw new Error('Email "from" address could not be determined');
|
|
@@ -124,6 +125,18 @@ export class MailManager {
|
|
|
124
125
|
}
|
|
125
126
|
return this.sendDirect(mailOptions);
|
|
126
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Deliver an email immediately through the adapter, bypassing the queue.
|
|
130
|
+
*
|
|
131
|
+
* The mail queue processor MUST call this instead of send(): send() re-checks
|
|
132
|
+
* queue.enabled and re-enqueues, so routing a dequeued job back through it
|
|
133
|
+
* loops forever and no mail is ever delivered. Options pulled off the queue
|
|
134
|
+
* are already from-defaulted and template-rendered, so no re-processing is
|
|
135
|
+
* needed here.
|
|
136
|
+
*/
|
|
137
|
+
async deliver(options) {
|
|
138
|
+
return this.sendDirect(options);
|
|
139
|
+
}
|
|
127
140
|
/**
|
|
128
141
|
* Send email directly (synchronous)
|
|
129
142
|
*/
|
|
@@ -204,10 +217,13 @@ export class MailManager {
|
|
|
204
217
|
if (!this.adapter) {
|
|
205
218
|
throw new Error('Mail adapter not initialized');
|
|
206
219
|
}
|
|
207
|
-
const mailOptions = options.map(opts =>
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
220
|
+
const mailOptions = options.map(opts => {
|
|
221
|
+
const resolvedFrom = opts.from || this.defaultFrom;
|
|
222
|
+
return {
|
|
223
|
+
...opts,
|
|
224
|
+
...(resolvedFrom ? { from: resolvedFrom } : {}),
|
|
225
|
+
};
|
|
226
|
+
});
|
|
211
227
|
if (mailOptions.some(opts => !opts.from)) {
|
|
212
228
|
throw new Error('Email "from" address not specified for one or more emails');
|
|
213
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-manager.js","sourceRoot":"","sources":["../../../src/core/mail/mail-manager.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,mBAAmB;AAUnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;;GAGG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,CAAa;IACnB,OAAO,CAAe;IACtB,cAAc,CAAyB;IACvC,MAAM,CAAS;IACf,WAAW,CAAyB;IACpC,YAAY,CAAO;IAE3B,YAAY,SAAqB,EAAE;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,EAAE;YACnD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS;YACzC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI;YACxC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK;SAC3C,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzB,2CAA2C;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEvE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5E,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7E,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YAC3C,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAClC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAoB,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,WAAW,UAAU,EAAE,MAAM,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;gBACzE,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACtC,CAAC;iBAAM,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;gBACxC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;gBAC/E,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACzC,CAAC;iBAAM,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;gBACtC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBAC3E,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;YACvC,CAAC;iBAAM,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBACjC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBACjE,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;YAClC,CAAC;iBAAM,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;gBACvE,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,8BAA8B,EAAE,MAAM,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,WAAW,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,WAAW,GAAgB;YAC/B,GAAG,OAAO;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;SACvC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAE5F,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClB,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACnC,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClB,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACnC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,EAAE;oBACrD,KAAK;oBACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,OAAoB;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE;gBACzC,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEhD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,EAAE;oBAClD,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE;oBAC5C,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,EAAE;gBAC5C,KAAK;gBACL,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,OAAoB;QAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE;gBACjE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC;gBAC1C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;gBACpC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC;aAC3C,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,EAAE;gBACnD,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,GAAG,CAAC,EAAE;aAClB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAE9D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvC,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;SACpC,CAAC,CAAC,CAAC;QAEJ,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,OAAsB;QACnD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC;QACtD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC;gBAC1C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;gBACpC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC;aAC3C;SACF,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE3E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;gBACnC,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,GAAG,CAAC,EAAE;aAClB,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAEpE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,YAAiB;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"mail-manager.js","sourceRoot":"","sources":["../../../src/core/mail/mail-manager.ts"],"names":[],"mappings":"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","sourcesContent":["// Mail Manager - Main Email System Controller\n// ESM-first module\n\nimport type {\n MailConfig,\n MailOptions,\n MailResult,\n MailAdapter,\n MailAdapterType,\n EmailAddress,\n} from './types.js';\nimport { TemplateEngineManager } from './template-engine.js';\nimport { createFrameworkLogger } from '../logger/index.js';\nimport type { Logger } from '../../types/logger.js';\n\n/**\n * Main mail manager class\n * Coordinates adapters, templates, and queue integration\n */\nexport class MailManager {\n private config: MailConfig;\n private adapter?: MailAdapter;\n private templateEngine?: TemplateEngineManager;\n private logger: Logger;\n private defaultFrom?: string | EmailAddress | undefined;\n private queueManager?: any;\n\n constructor(config: MailConfig = {}) {\n this.config = config;\n this.logger = createFrameworkLogger('Mail');\n this.defaultFrom = config.from;\n }\n\n /**\n * Initialize mail manager\n */\n async initialize(): Promise<void> {\n this.logger.info('Initializing mail system', 'Mail', {\n adapter: this.config.adapter || 'console',\n templates: !!this.config.templates?.path,\n queue: this.config.queue?.enabled || false,\n });\n\n // Load adapter\n await this.loadAdapter();\n\n // Initialize template engine if configured\n if (this.config.templates) {\n this.templateEngine = new TemplateEngineManager(this.config.templates);\n\n if (this.config.templates.engine && this.config.templates.engine !== 'moro') {\n await this.templateEngine.loadExternalEngine(this.config.templates.engine);\n }\n\n if (this.config.templates.partials) {\n await this.templateEngine.loadPartials();\n }\n\n if (this.config.templates.helpers) {\n for (const [name, fn] of Object.entries(this.config.templates.helpers)) {\n this.templateEngine.registerHelper(name, fn);\n }\n }\n }\n\n this.logger.info('Mail system initialized successfully', 'Mail');\n }\n\n /**\n * Load email adapter based on configuration\n */\n private async loadAdapter(): Promise<void> {\n const adapterType = (this.config.adapter || 'console') as MailAdapterType;\n\n this.logger.debug(`Loading ${adapterType} adapter`, 'Mail');\n\n try {\n if (adapterType === 'console') {\n const { ConsoleAdapter } = await import('./adapters/console-adapter.js');\n this.adapter = new ConsoleAdapter();\n } else if (adapterType === 'nodemailer') {\n const { NodemailerAdapter } = await import('./adapters/nodemailer-adapter.js');\n this.adapter = new NodemailerAdapter();\n } else if (adapterType === 'sendgrid') {\n const { SendGridAdapter } = await import('./adapters/sendgrid-adapter.js');\n this.adapter = new SendGridAdapter();\n } else if (adapterType === 'ses') {\n const { SESAdapter } = await import('./adapters/ses-adapter.js');\n this.adapter = new SESAdapter();\n } else if (adapterType === 'resend') {\n const { ResendAdapter } = await import('./adapters/resend-adapter.js');\n this.adapter = new ResendAdapter();\n } else {\n throw new Error(`Unknown mail adapter: ${adapterType}`);\n }\n\n await this.adapter.initialize(this.config.connection || {});\n this.logger.info(`${this.adapter.getName()} adapter loaded successfully`, 'Mail');\n } catch (error) {\n this.logger.error(`Failed to load ${adapterType} adapter`, 'Mail', { error });\n throw error;\n }\n }\n\n /**\n * Send an email\n */\n async send(options: MailOptions): Promise<MailResult> {\n if (!this.adapter) {\n throw new Error('Mail adapter not initialized');\n }\n\n if (!options.from && !this.defaultFrom) {\n throw new Error('Email \"from\" address not specified');\n }\n\n const resolvedFrom = options.from || this.defaultFrom;\n const mailOptions: MailOptions = {\n ...options,\n ...(resolvedFrom ? { from: resolvedFrom } : {}),\n };\n\n if (!mailOptions.from) {\n throw new Error('Email \"from\" address could not be determined');\n }\n\n if (options.template && this.templateEngine) {\n try {\n const rendered = await this.templateEngine.renderFile(options.template, options.data || {});\n\n if (rendered.html) {\n mailOptions.html = rendered.html;\n }\n if (rendered.text) {\n mailOptions.text = rendered.text;\n }\n } catch (error) {\n this.logger.error('Template rendering failed', 'Mail', {\n error,\n template: options.template,\n });\n throw error;\n }\n }\n\n if (this.config.queue?.enabled && this.queueManager) {\n return this.sendViaQueue(mailOptions);\n }\n\n return this.sendDirect(mailOptions);\n }\n\n /**\n * Deliver an email immediately through the adapter, bypassing the queue.\n *\n * The mail queue processor MUST call this instead of send(): send() re-checks\n * queue.enabled and re-enqueues, so routing a dequeued job back through it\n * loops forever and no mail is ever delivered. Options pulled off the queue\n * are already from-defaulted and template-rendered, so no re-processing is\n * needed here.\n */\n async deliver(options: MailOptions): Promise<MailResult> {\n return this.sendDirect(options);\n }\n\n /**\n * Send email directly (synchronous)\n */\n private async sendDirect(options: MailOptions): Promise<MailResult> {\n if (!this.adapter) {\n throw new Error('Mail adapter not initialized');\n }\n\n try {\n this.logger.debug('Sending email', 'Mail', {\n to: options.to,\n subject: options.subject,\n });\n\n const result = await this.adapter.send(options);\n\n if (result.success) {\n this.logger.info('Email sent successfully', 'Mail', {\n to: options.to,\n subject: options.subject,\n messageId: result.messageId,\n });\n } else {\n this.logger.warn('Email send failed', 'Mail', {\n to: options.to,\n subject: options.subject,\n error: result.error,\n });\n }\n\n return result;\n } catch (error) {\n this.logger.error('Email send error', 'Mail', {\n error,\n to: options.to,\n subject: options.subject,\n });\n\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Send email via queue (asynchronous)\n */\n private async sendViaQueue(options: MailOptions): Promise<MailResult> {\n if (!this.queueManager) {\n throw new Error('Queue manager not set. Call setQueueManager() first.');\n }\n\n const queueName = this.config.queue?.name || 'emails';\n\n try {\n const job = await this.queueManager.addToQueue(queueName, options, {\n priority: this.config.queue?.priority || 0,\n delay: this.config.queue?.delay || 0,\n attempts: this.config.queue?.attempts || 3,\n });\n\n this.logger.info('Email queued for sending', 'Mail', {\n jobId: job.id,\n to: options.to,\n subject: options.subject,\n });\n\n return {\n success: true,\n messageId: job.id,\n };\n } catch (error) {\n this.logger.error('Failed to queue email', 'Mail', { error });\n\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Send multiple emails in bulk\n */\n async sendBulk(options: MailOptions[]): Promise<MailResult[]> {\n if (!this.adapter) {\n throw new Error('Mail adapter not initialized');\n }\n\n const mailOptions: MailOptions[] = options.map(opts => {\n const resolvedFrom = opts.from || this.defaultFrom;\n return {\n ...opts,\n ...(resolvedFrom ? { from: resolvedFrom } : {}),\n };\n });\n\n if (mailOptions.some(opts => !opts.from)) {\n throw new Error('Email \"from\" address not specified for one or more emails');\n }\n\n if (this.config.queue?.enabled && this.queueManager) {\n return this.sendBulkViaQueue(mailOptions);\n }\n\n if (this.adapter.sendBulk) {\n return this.adapter.sendBulk(mailOptions);\n }\n\n const results: MailResult[] = [];\n for (const opts of mailOptions) {\n results.push(await this.send(opts));\n }\n\n return results;\n }\n\n /**\n * Send bulk emails via queue\n */\n private async sendBulkViaQueue(options: MailOptions[]): Promise<MailResult[]> {\n if (!this.queueManager) {\n throw new Error('Queue manager not set');\n }\n\n const queueName = this.config.queue?.name || 'emails';\n const jobs = options.map(opts => ({\n data: opts,\n options: {\n priority: this.config.queue?.priority || 0,\n delay: this.config.queue?.delay || 0,\n attempts: this.config.queue?.attempts || 3,\n },\n }));\n\n try {\n const queuedJobs = await this.queueManager.addBulkToQueue(queueName, jobs);\n\n return queuedJobs.map((job: any) => ({\n success: true,\n messageId: job.id,\n }));\n } catch (error) {\n this.logger.error('Failed to queue bulk emails', 'Mail', { error });\n\n return options.map(() => ({\n success: false,\n error: error instanceof Error ? error.message : String(error),\n }));\n }\n }\n\n /**\n * Set queue manager for async email sending\n */\n setQueueManager(queueManager: any): void {\n this.queueManager = queueManager;\n }\n\n /**\n * Verify adapter connection\n */\n async verify(): Promise<boolean> {\n if (!this.adapter || !this.adapter.verify) {\n return false;\n }\n\n try {\n return await this.adapter.verify();\n } catch (error) {\n this.logger.error('Adapter verification failed', 'Mail', { error });\n return false;\n }\n }\n\n /**\n * Close connections and clean up\n */\n async close(): Promise<void> {\n if (this.adapter?.close) {\n await this.adapter.close();\n }\n\n if (this.templateEngine) {\n this.templateEngine.clearCache();\n }\n }\n\n /**\n * Get template engine\n */\n getTemplateEngine(): TemplateEngineManager | undefined {\n return this.templateEngine;\n }\n\n /**\n * Get adapter\n */\n getAdapter(): MailAdapter | undefined {\n return this.adapter;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/core/mail/template-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/core/mail/template-engine.ts"],"names":[],"mappings":"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","sourcesContent":["// Email Template Engine\n// ESM-first module with support for Moro, Handlebars, and EJS\n\nimport fs from 'fs/promises';\nimport path from 'path';\nimport type {\n TemplateConfig,\n TemplateEngineInterface,\n TemplateEngine,\n TemplateResult,\n} from './types.js';\nimport { isPackageAvailable, resolveUserPackage } from '../utilities/package-utils.js';\n\n/**\n * Moro built-in template engine\n * Supports: {{variable}}, {{#if}}, {{#each}}, partials\n */\nclass MoroTemplateEngine implements TemplateEngineInterface {\n private compiled = new Map<string, (data: Record<string, any>) => string>();\n private partials = new Map<string, string>();\n\n async render(template: string, data: Record<string, any>): Promise<string> {\n // Replace partials first\n let processed = this.processPartials(template);\n\n // Process conditionals\n processed = this.processConditionals(processed, data);\n\n // Process loops\n processed = this.processLoops(processed, data);\n\n // Process variables\n processed = this.processVariables(processed, data);\n\n return processed;\n }\n\n compile(template: string): (data: Record<string, any>) => string {\n return (data: Record<string, any>) => {\n let processed = this.processPartials(template);\n processed = this.processConditionals(processed, data);\n processed = this.processLoops(processed, data);\n processed = this.processVariables(processed, data);\n return processed;\n };\n }\n\n registerPartial(name: string, template: string): void {\n this.partials.set(name, template);\n }\n\n private processPartials(template: string): string {\n return template.replace(/\\{\\{>\\s*(\\w+)\\s*\\}\\}/g, (_, name) => {\n return this.partials.get(name) || '';\n });\n }\n\n private processConditionals(template: string, data: Record<string, any>): string {\n return template.replace(\n /\\{\\{#if\\s+(\\w+)\\}\\}([\\s\\S]*?)(?:\\{\\{else\\}\\}([\\s\\S]*?))?\\{\\{\\/if\\}\\}/g,\n (_, condition, truthy, falsy = '') => {\n const value = this.getValue(data, condition);\n return value ? truthy : falsy;\n }\n );\n }\n\n private processLoops(template: string, data: Record<string, any>): string {\n return template.replace(\n /\\{\\{#each\\s+(\\w+)\\}\\}([\\s\\S]*?)\\{\\{\\/each\\}\\}/g,\n (_, arrayName, body) => {\n const array = this.getValue(data, arrayName);\n\n if (!Array.isArray(array)) {\n return '';\n }\n\n return array\n .map((item: any) => {\n let itemBody = body;\n\n if (typeof item === 'object') {\n for (const [key, value] of Object.entries(item)) {\n const regex = new RegExp(`\\\\{\\\\{${key}\\\\}\\\\}`, 'g');\n itemBody = itemBody.replace(regex, String(value));\n }\n } else {\n itemBody = itemBody.replace(/\\{\\{this\\}\\}/g, String(item));\n }\n\n return itemBody;\n })\n .join('');\n }\n );\n }\n\n private processVariables(template: string, data: Record<string, any>): string {\n return template.replace(/\\{\\{(\\w+(?:\\.\\w+)*)\\}\\}/g, (_, key) => {\n const value = this.getValue(data, key);\n return value !== undefined && value !== null ? String(value) : '';\n });\n }\n\n private getValue(data: Record<string, any>, path: string): any {\n const keys = path.split('.');\n let value: any = data;\n\n for (const key of keys) {\n if (!value || typeof value !== 'object') {\n return undefined;\n }\n value = value[key];\n }\n\n return value;\n }\n}\n\n/**\n * Main template engine manager\n */\nexport class TemplateEngineManager {\n private config: TemplateConfig;\n private engine: TemplateEngineInterface;\n private cache = new Map<string, any>();\n private engineType: TemplateEngine;\n\n constructor(config: TemplateConfig = {}) {\n this.config = {\n engine: 'moro',\n cache: true,\n ...config,\n };\n this.engineType = this.config.engine || 'moro';\n this.engine = this.createEngine(this.engineType);\n }\n\n /**\n * Create template engine instance\n */\n private createEngine(type: TemplateEngine): TemplateEngineInterface {\n if (type === 'moro') {\n return new MoroTemplateEngine();\n }\n\n throw new Error(`Template engine \"${type}\" will be lazy loaded when needed`);\n }\n\n /**\n * Render a template file with data\n */\n async renderFile(templateName: string, data: Record<string, any>): Promise<TemplateResult> {\n if (!this.config.path) {\n throw new Error('Template path not configured');\n }\n\n const cacheKey = `${templateName}:${this.engineType}`;\n\n if (!this.config.cache || !this.cache.has(cacheKey)) {\n const templatePath = path.join(this.config.path, `${templateName}.html`);\n\n try {\n const template = await fs.readFile(templatePath, 'utf-8');\n\n if (this.config.cache && this.engine.compile) {\n this.cache.set(cacheKey, this.engine.compile(template));\n }\n } catch {\n throw new Error(`Template file not found: ${templatePath}`);\n }\n }\n\n if (this.config.cache && this.cache.has(cacheKey)) {\n const compiled = this.cache.get(cacheKey);\n const html = compiled(data);\n return { html };\n }\n\n const templatePath = path.join(this.config.path, `${templateName}.html`);\n const template = await fs.readFile(templatePath, 'utf-8');\n const html = await this.engine.render(template, data);\n\n return { html };\n }\n\n /**\n * Render a template string with data\n */\n async renderString(template: string, data: Record<string, any>): Promise<string> {\n return await this.engine.render(template, data);\n }\n\n /**\n * Load external template engine (Handlebars, EJS)\n */\n async loadExternalEngine(type: TemplateEngine): Promise<void> {\n if (type === 'moro') {\n return;\n }\n\n if (type === 'handlebars') {\n if (!isPackageAvailable('handlebars')) {\n throw new Error(\n 'Handlebars is not installed.\\n' + 'Install it with: npm install handlebars'\n );\n }\n\n const handlebarsPath = resolveUserPackage('handlebars');\n const Handlebars = await import(handlebarsPath);\n\n this.engine = {\n render: async (template: string, data: Record<string, any>) => {\n const compiledTemplate = Handlebars.default.compile(template);\n return compiledTemplate(data);\n },\n compile: (template: string) => {\n return Handlebars.default.compile(template);\n },\n registerHelper: (name: string, fn: (...args: any[]) => any) => {\n Handlebars.default.registerHelper(name, fn);\n },\n registerPartial: (name: string, template: string) => {\n Handlebars.default.registerPartial(name, template);\n },\n };\n } else if (type === 'ejs') {\n if (!isPackageAvailable('ejs')) {\n throw new Error('EJS is not installed.\\n' + 'Install it with: npm install ejs');\n }\n\n const ejsPath = resolveUserPackage('ejs');\n const ejs = await import(ejsPath);\n\n this.engine = {\n render: async (template: string, data: Record<string, any>) => {\n return ejs.default.render(template, data);\n },\n compile: (template: string) => {\n return ejs.default.compile(template);\n },\n };\n }\n }\n\n /**\n * Register a helper function\n */\n registerHelper(name: string, fn: (...args: any[]) => any): void {\n if (this.engine.registerHelper) {\n this.engine.registerHelper(name, fn);\n }\n }\n\n /**\n * Register a partial template\n */\n registerPartial(name: string, template: string): void {\n if (this.engine.registerPartial) {\n this.engine.registerPartial(name, template);\n }\n }\n\n /**\n * Clear template cache\n */\n clearCache(): void {\n this.cache.clear();\n }\n\n /**\n * Load partials from directory\n */\n async loadPartials(): Promise<void> {\n if (!this.config.partials) {\n return;\n }\n\n try {\n const files = await fs.readdir(this.config.partials);\n\n for (const file of files) {\n if (file.endsWith('.html')) {\n const name = file.replace('.html', '');\n const content = await fs.readFile(path.join(this.config.partials, file), 'utf-8');\n this.registerPartial(name, content);\n }\n }\n } catch {\n // Partials directory doesn't exist or can't be read\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/mail/types.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,gDAAgD"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/mail/types.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,gDAAgD","sourcesContent":["// Email System Types\n// ESM-first module with full TypeScript support\n\n/**\n * Email address representation\n */\nexport interface EmailAddress {\n name?: string;\n email: string;\n}\n\n/**\n * Email attachment\n */\nexport interface EmailAttachment {\n filename: string;\n content: Buffer | string;\n encoding?: string;\n contentType?: string;\n cid?: string;\n}\n\n/**\n * Core email options\n */\nexport interface MailOptions {\n to: string | string[] | EmailAddress | EmailAddress[];\n from?: string | EmailAddress;\n subject: string;\n text?: string;\n html?: string;\n template?: string;\n data?: Record<string, any>;\n cc?: string | string[] | EmailAddress | EmailAddress[];\n bcc?: string | string[] | EmailAddress | EmailAddress[];\n replyTo?: string | EmailAddress;\n attachments?: EmailAttachment[];\n\n // Custom headers - add ANY headers you need\n // Common examples: X-Mailer, X-Priority, X-Request-ID, X-Campaign-ID, etc.\n headers?: Record<string, string>;\n\n priority?: 'high' | 'normal' | 'low';\n\n // Compliance and threading headers\n messageId?: string;\n references?: string | string[];\n inReplyTo?: string;\n\n // Sender identification (RFC 5322)\n sender?: string | EmailAddress;\n returnPath?: string;\n\n // List management (RFC 2369 - Required for bulk email compliance)\n listUnsubscribe?: string | string[];\n listUnsubscribePost?: string;\n listId?: string;\n listHelp?: string;\n listSubscribe?: string;\n listOwner?: string;\n listArchive?: string;\n\n // Delivery and tracking\n dsn?: {\n notify?: 'never' | 'success' | 'failure' | 'delay';\n returnFull?: boolean;\n returnHeaders?: boolean;\n };\n\n // Encoding and content\n encoding?: string;\n textEncoding?: string;\n\n // Additional metadata\n date?: Date;\n messageIdDomain?: string;\n\n // Tags for tracking/categorization (provider-specific)\n tags?: string[];\n metadata?: Record<string, string>;\n\n // Scheduling (if supported by adapter)\n scheduledAt?: Date;\n}\n\n/**\n * Email send result\n */\nexport interface MailResult {\n success: boolean;\n messageId?: string;\n error?: string;\n accepted?: string[];\n rejected?: string[];\n response?: string;\n}\n\n/**\n * Adapter types\n */\nexport type MailAdapterType = 'nodemailer' | 'sendgrid' | 'ses' | 'resend' | 'console';\n\n/**\n * Template engine types\n */\nexport type TemplateEngine = 'moro' | 'handlebars' | 'ejs';\n\n/**\n * Template configuration\n */\nexport interface TemplateConfig {\n path?: string;\n engine?: TemplateEngine;\n cache?: boolean;\n partials?: string;\n layouts?: string;\n helpers?: Record<string, (...args: any[]) => any>;\n}\n\n/**\n * Queue configuration for async email sending\n */\nexport interface MailQueueConfig {\n enabled?: boolean;\n name?: string;\n priority?: number;\n delay?: number;\n attempts?: number;\n}\n\n/**\n * Mail manager configuration\n */\nexport interface MailConfig {\n adapter?: MailAdapterType | string;\n from?: string | EmailAddress;\n connection?: any;\n templates?: TemplateConfig;\n queue?: MailQueueConfig;\n debug?: boolean;\n}\n\n/**\n * Nodemailer-specific connection options\n */\nexport interface NodemailerConnection {\n host?: string;\n port?: number;\n secure?: boolean;\n auth?: {\n user: string;\n pass: string;\n };\n service?: string;\n pool?: boolean;\n maxConnections?: number;\n maxMessages?: number;\n}\n\n/**\n * SendGrid-specific connection options\n */\nexport interface SendGridConnection {\n apiKey: string;\n sandboxMode?: boolean;\n}\n\n/**\n * AWS SES-specific connection options\n */\nexport interface SESConnection {\n region: string;\n accessKeyId?: string;\n secretAccessKey?: string;\n credentials?: any;\n configurationSet?: string;\n}\n\n/**\n * Resend-specific connection options\n */\nexport interface ResendConnection {\n apiKey: string;\n}\n\n/**\n * Template render result\n */\nexport interface TemplateResult {\n html?: string;\n text?: string;\n}\n\n/**\n * Base mail adapter interface\n */\nexport interface MailAdapter {\n /**\n * Initialize the adapter with configuration\n */\n initialize(config: any): Promise<void>;\n\n /**\n * Send an email\n */\n send(options: MailOptions): Promise<MailResult>;\n\n /**\n * Send multiple emails in bulk\n */\n sendBulk?(options: MailOptions[]): Promise<MailResult[]>;\n\n /**\n * Verify adapter connection\n */\n verify?(): Promise<boolean>;\n\n /**\n * Close adapter connections\n */\n close?(): Promise<void>;\n\n /**\n * Get adapter name\n */\n getName(): string;\n}\n\n/**\n * Template engine interface\n */\nexport interface TemplateEngineInterface {\n /**\n * Render a template with data\n */\n render(template: string, data: Record<string, any>): Promise<string>;\n\n /**\n * Compile a template for caching\n */\n compile?(template: string): any;\n\n /**\n * Register a helper function\n */\n registerHelper?(name: string, fn: (...args: any[]) => any): void;\n\n /**\n * Register a partial template\n */\n registerPartial?(name: string, template: string): void;\n}\n\n/**\n * Mail events\n */\nexport interface MailEvents {\n 'mail:configured': { config: MailConfig };\n 'mail:sending': { options: MailOptions };\n 'mail:sent': { result: MailResult; options: MailOptions };\n 'mail:failed': { error: Error; options: MailOptions };\n 'mail:queued': { jobId: string; options: MailOptions };\n 'template:rendered': { template: string; data: Record<string, any> };\n 'template:error': { error: Error; template: string };\n}\n"]}
|
|
@@ -381,9 +381,9 @@ export class AuthCore {
|
|
|
381
381
|
*/
|
|
382
382
|
createAuthRequest(session, token) {
|
|
383
383
|
const authRequest = {
|
|
384
|
-
user: session
|
|
385
|
-
session
|
|
386
|
-
token
|
|
384
|
+
...(session?.user ? { user: session.user } : {}),
|
|
385
|
+
...(session ? { session } : {}),
|
|
386
|
+
...(token ? { token } : {}),
|
|
387
387
|
isAuthenticated: !!session?.user,
|
|
388
388
|
signIn: async (provider, options) => {
|
|
389
389
|
if (!this.authInstance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/core.ts"],"names":[],"mappings":"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","sourcesContent":["// Auth Core - Reusable authentication logic with Better Auth\nimport crypto from 'crypto';\nimport { HttpRequest, HttpResponse } from '../../../../types/http.js';\nimport { AuthOptions, AuthProvider, AuthSession, AuthRequest } from '../../../../types/auth.js';\nimport { safeVerifyJWT, createAuthErrorResponse } from './jwt-helpers.js';\nimport { createFrameworkLogger } from '../../../logger/index.js';\n\nconst logger = createFrameworkLogger('AuthCore');\n\n// ===== Better Auth Provider Factory Functions =====\n\nexport const providers = {\n // OAuth Providers - Better Auth native support\n google: (options: { clientId: string; clientSecret: string; scope?: string }): AuthProvider => ({\n id: 'google',\n name: 'Google',\n type: 'oauth' as const,\n authorization: 'https://accounts.google.com/oauth/authorize',\n token: 'https://oauth2.googleapis.com/token',\n userinfo: 'https://www.googleapis.com/oauth2/v2/userinfo',\n ...options,\n }),\n\n github: (options: { clientId: string; clientSecret: string; scope?: string }): AuthProvider => ({\n id: 'github',\n name: 'GitHub',\n type: 'oauth' as const,\n authorization: 'https://github.com/login/oauth/authorize',\n token: 'https://github.com/login/oauth/access_token',\n userinfo: 'https://api.github.com/user',\n ...options,\n }),\n\n discord: (options: { clientId: string; clientSecret: string; scope?: string }): AuthProvider => ({\n id: 'discord',\n name: 'Discord',\n type: 'oauth' as const,\n authorization: 'https://discord.com/api/oauth2/authorize',\n token: 'https://discord.com/api/oauth2/token',\n userinfo: 'https://discord.com/api/users/@me',\n ...options,\n }),\n\n twitter: (options: { clientId: string; clientSecret: string }): AuthProvider => ({\n id: 'twitter',\n name: 'Twitter',\n type: 'oauth' as const,\n authorization: 'https://twitter.com/i/oauth2/authorize',\n token: 'https://api.twitter.com/2/oauth2/token',\n userinfo: 'https://api.twitter.com/2/users/me',\n ...options,\n }),\n\n microsoft: (options: {\n clientId: string;\n clientSecret: string;\n tenant?: string;\n }): AuthProvider => ({\n id: 'microsoft',\n name: 'Microsoft',\n type: 'oauth' as const,\n authorization: `https://login.microsoftonline.com/${options.tenant || 'common'}/oauth2/v2.0/authorize`,\n token: `https://login.microsoftonline.com/${options.tenant || 'common'}/oauth2/v2.0/token`,\n userinfo: 'https://graph.microsoft.com/oidc/userinfo',\n clientId: options.clientId,\n clientSecret: options.clientSecret,\n }),\n\n apple: (options: { clientId: string; clientSecret: string }): AuthProvider => ({\n id: 'apple',\n name: 'Apple',\n type: 'oauth' as const,\n authorization: 'https://appleid.apple.com/auth/authorize',\n token: 'https://appleid.apple.com/auth/token',\n ...options,\n }),\n\n facebook: (options: { clientId: string; clientSecret: string }): AuthProvider => ({\n id: 'facebook',\n name: 'Facebook',\n type: 'oauth' as const,\n authorization: 'https://www.facebook.com/v18.0/dialog/oauth',\n token: 'https://graph.facebook.com/v18.0/oauth/access_token',\n userinfo: 'https://graph.facebook.com/me?fields=id,name,email,picture',\n ...options,\n }),\n\n linkedin: (options: { clientId: string; clientSecret: string }): AuthProvider => ({\n id: 'linkedin',\n name: 'LinkedIn',\n type: 'oauth' as const,\n authorization: 'https://www.linkedin.com/oauth/v2/authorization',\n token: 'https://www.linkedin.com/oauth/v2/accessToken',\n userinfo: 'https://api.linkedin.com/v2/me',\n ...options,\n }),\n\n // Traditional Providers\n credentials: (options: {\n name?: string;\n credentials: Record<string, any>;\n authorize: (credentials: any) => Promise<any>;\n }): AuthProvider => ({\n id: 'credentials',\n name: options.name || 'Credentials',\n type: 'credentials' as const,\n ...options,\n }),\n\n email: (options: {\n server: string | { host: string; port: number; auth: any };\n from: string;\n }): AuthProvider => ({\n id: 'email',\n name: 'Email',\n type: 'email' as const,\n ...options,\n }),\n\n // Modern Passwordless Authentication\n magicLink: (options: {\n from: string;\n sendMagicLink?: (email: string, url: string) => Promise<void>;\n expiresIn?: number; // in seconds, default 300 (5 minutes)\n }): AuthProvider => ({\n id: 'magic-link',\n name: 'Magic Link',\n type: 'email' as const,\n from: options.from,\n sendMagicLink: options.sendMagicLink,\n expiresIn: options.expiresIn || 300,\n }),\n\n otp: (options: {\n from?: string;\n sendOTP?: (contact: string, code: string) => Promise<void>;\n expiresIn?: number; // in seconds, default 300 (5 minutes)\n length?: number; // OTP code length, default 6\n }): AuthProvider => ({\n id: 'otp',\n name: 'One-Time Password',\n type: 'email' as const,\n from: options.from || '',\n sendOTP: options.sendOTP,\n expiresIn: options.expiresIn || 300,\n length: options.length || 6,\n }),\n\n passkey: (options: {\n rpName?: string; // Relying Party name\n rpId?: string; // Relying Party ID (usually your domain)\n origin?: string; // Origin URL\n }): AuthProvider => ({\n id: 'passkey',\n name: 'Passkey (WebAuthn)',\n type: 'credentials' as const,\n rpName: options.rpName || 'MoroJS App',\n rpId: options.rpId,\n origin: options.origin,\n }),\n};\n\n// ===== Two-Factor Authentication (2FA) Options =====\n// 2FA in Better Auth is configured as a plugin, not a provider\n// These helper types define 2FA configuration options\n\nexport interface TwoFactorAuthOptions {\n /**\n * Enable TOTP (Time-based One-Time Password) via authenticator apps\n * @default true\n */\n totp?: boolean;\n\n /**\n * Enable backup codes for account recovery\n * @default true\n */\n backupCodes?: boolean;\n\n /**\n * Number of backup codes to generate\n * @default 10\n */\n backupCodesCount?: number;\n\n /**\n * Trust device after successful 2FA verification\n * @default true\n */\n trustDevice?: boolean;\n\n /**\n * Duration to trust a device (in seconds)\n * @default 2592000 (30 days)\n */\n trustDeviceDuration?: number;\n\n /**\n * Issuer name for TOTP (shown in authenticator apps)\n */\n issuer?: string;\n}\n\n/**\n * Helper to create 2FA configuration\n * Usage in auth config:\n * ```ts\n * auth({\n * plugins: [twoFactor({ issuer: 'MyApp' })],\n * ...\n * })\n * ```\n */\nexport function twoFactor(options: TwoFactorAuthOptions = {}) {\n return {\n type: '2fa' as const,\n totp: options.totp !== false,\n backupCodes: options.backupCodes !== false,\n backupCodesCount: options.backupCodesCount || 10,\n trustDevice: options.trustDevice !== false,\n trustDeviceDuration: options.trustDeviceDuration || 2592000,\n issuer: options.issuer || 'MoroJS App',\n };\n}\n\n// ===== Additional Plugin Helpers =====\n\n/**\n * Organization/Multi-tenant plugin configuration\n * Enables support for organizations, teams, and multi-tenant applications\n */\nexport interface OrganizationOptions {\n /**\n * Allow users to create organizations\n * @default true\n */\n allowUserCreate?: boolean;\n\n /**\n * Maximum number of organizations per user\n * @default 10\n */\n maxOrganizationsPerUser?: number;\n\n /**\n * Enable role-based access within organizations\n * @default true\n */\n organizationRoles?: boolean;\n}\n\nexport function organization(options: OrganizationOptions = {}) {\n return {\n type: 'organization' as const,\n allowUserCreate: options.allowUserCreate !== false,\n maxOrganizationsPerUser: options.maxOrganizationsPerUser || 10,\n organizationRoles: options.organizationRoles !== false,\n };\n}\n\n/**\n * Anonymous user support\n * Allows users to interact with your app before signing up\n */\nexport interface AnonymousOptions {\n /**\n * Automatically link anonymous accounts when user signs up\n * @default true\n */\n linkOnSignUp?: boolean;\n\n /**\n * Anonymous session duration (in seconds)\n * @default 2592000 (30 days)\n */\n sessionDuration?: number;\n}\n\nexport function anonymous(options: AnonymousOptions = {}) {\n return {\n type: 'anonymous' as const,\n linkOnSignUp: options.linkOnSignUp !== false,\n sessionDuration: options.sessionDuration || 2592000,\n };\n}\n\n/**\n * Account linking - allows users to link multiple auth providers to one account\n */\nexport interface AccountLinkingOptions {\n /**\n * Automatically link accounts with same email\n * @default false (requires user confirmation for security)\n */\n autoLinkSameEmail?: boolean;\n\n /**\n * Allow users to manually link additional providers\n * @default true\n */\n allowManualLink?: boolean;\n}\n\nexport function accountLinking(options: AccountLinkingOptions = {}) {\n return {\n type: 'account-linking' as const,\n autoLinkSameEmail: options.autoLinkSameEmail || false,\n allowManualLink: options.allowManualLink !== false,\n };\n}\n\n/**\n * Rate limiting configuration for authentication endpoints\n */\nexport interface RateLimitOptions {\n /**\n * Maximum failed login attempts before lockout\n * @default 5\n */\n maxAttempts?: number;\n\n /**\n * Lockout duration in seconds\n * @default 900 (15 minutes)\n */\n lockoutDuration?: number;\n\n /**\n * Window to track attempts (in seconds)\n * @default 300 (5 minutes)\n */\n window?: number;\n}\n\nexport function rateLimit(options: RateLimitOptions = {}) {\n return {\n type: 'rate-limit' as const,\n maxAttempts: options.maxAttempts || 5,\n lockoutDuration: options.lockoutDuration || 900,\n window: options.window || 300,\n };\n}\n\n/**\n * Bearer token support for API authentication\n */\nexport interface BearerTokenOptions {\n /**\n * Token expiration time (in seconds)\n * @default 3600 (1 hour)\n */\n expiresIn?: number;\n\n /**\n * Allow refresh tokens\n * @default true\n */\n refreshTokens?: boolean;\n\n /**\n * Refresh token expiration (in seconds)\n * @default 2592000 (30 days)\n */\n refreshTokenExpiresIn?: number;\n}\n\nexport function bearerToken(options: BearerTokenOptions = {}) {\n return {\n type: 'bearer-token' as const,\n expiresIn: options.expiresIn || 3600,\n refreshTokens: options.refreshTokens !== false,\n refreshTokenExpiresIn: options.refreshTokenExpiresIn || 2592000,\n };\n}\n\n// ===== Auth Implementation =====\n\ninterface AuthInstance {\n handler: (req: any, res: any) => Promise<any>;\n getSession: ({ req }: { req: any }) => Promise<AuthSession | null>;\n verifyJWT: (token: string) => Promise<any>;\n signIn: (provider?: string, options?: any) => Promise<{ url: string }>;\n signOut: (options?: any) => Promise<{ url: string }>;\n updateSession: (session: any) => Promise<any>;\n getCsrfToken: () => Promise<string>;\n}\n\nasync function handleSignIn(_req: any, _res: any, _config: AuthOptions) {\n logger.debug('Handling sign in request', 'SignIn');\n return null;\n}\n\nasync function handleSignOut(_req: any, _res: any, _config: AuthOptions) {\n logger.debug('Handling sign out request', 'SignOut');\n return null;\n}\n\nasync function handleCallback(_req: any, _res: any, _config: AuthOptions) {\n logger.debug('Handling OAuth callback', 'Callback');\n return null;\n}\n\nasync function handleSession(_req: any, _res: any, _config: AuthOptions) {\n logger.debug('Handling session request', 'Session');\n return null;\n}\n\nasync function initializeAuthJS(config: AuthOptions): Promise<AuthInstance> {\n return {\n handler: async (req: any, res: any) => {\n const basePath = config.basePath || '/api/auth';\n const path = req.url.replace(basePath, '');\n\n if (path.startsWith('/signin')) {\n return handleSignIn(req, res, config);\n } else if (path.startsWith('/signout')) {\n return handleSignOut(req, res, config);\n } else if (path.startsWith('/callback')) {\n return handleCallback(req, res, config);\n } else if (path.startsWith('/session')) {\n return handleSession(req, res, config);\n }\n\n return null;\n },\n\n getSession: async ({ req }: { req: any }) => {\n const sessionId =\n req.cookies?.['next-auth.session-token'] ||\n req.cookies?.['__Secure-next-auth.session-token'];\n\n if (sessionId && req.session) {\n const sessionMaxAge = config.session?.maxAge || 30 * 24 * 60 * 60;\n return {\n user: req.session.user || null,\n expires: new Date(Date.now() + sessionMaxAge * 1000),\n sessionToken: sessionId,\n userId: req.session.user?.id || '',\n };\n }\n\n return null;\n },\n\n verifyJWT: async (token: string) => {\n const secret =\n process.env.JWT_SECRET ||\n config.jwt?.secret ||\n config.secret ||\n (() => {\n const generated = crypto.randomBytes(32).toString('hex');\n logger.warn(\n '[MoroJS Security] No JWT secret configured. A random secret was generated — JWTs will NOT survive restarts. Set JWT_SECRET for production use.',\n 'AuthCore'\n );\n return generated;\n })();\n const result = await safeVerifyJWT(token, secret);\n\n if (!result.success) {\n const customError = new Error(result.error?.message || 'JWT verification failed');\n (customError as any).jwtErrorType = result.error?.type;\n (customError as any).jwtErrorDetails = result.error;\n\n if (result.error?.type === 'expired') {\n customError.name = 'TokenExpiredError';\n (customError as any).expiredAt = result.error.expiredAt;\n } else if (result.error?.type === 'invalid') {\n customError.name = 'JsonWebTokenError';\n } else if (result.error?.type === 'malformed') {\n customError.name = 'NotBeforeError';\n (customError as any).date = result.error.date;\n }\n\n throw customError;\n }\n\n return result.payload;\n },\n\n signIn: async (provider?: string, _options?: any) => {\n return { url: `${config.basePath}/signin${provider ? `/${provider}` : ''}` };\n },\n\n signOut: async (_options?: any) => {\n return { url: `${config.basePath}/signout` };\n },\n\n updateSession: async (session: any) => {\n return session;\n },\n\n getCsrfToken: async () => {\n return crypto.randomBytes(32).toString('hex');\n },\n };\n}\n\n// ===== Core Logic =====\n\n/**\n * AuthCore - Core authentication logic with Better Auth\n * Used directly by the router for route-based authentication\n * Now delegates to the main morojs-adapter for Better Auth integration\n */\nexport class AuthCore {\n private config: AuthOptions;\n private authInstance: AuthInstance | null = null;\n private cachedProviderMap: Record<string, AuthProvider> | null = null;\n\n constructor(options: AuthOptions) {\n this.config = {\n secret:\n process.env.NEXTAUTH_SECRET ||\n process.env.AUTH_SECRET ||\n (() => {\n const generated = crypto.randomBytes(32).toString('hex');\n logger.warn(\n '[MoroJS Security] No secret configured for auth. A random secret was generated — sessions will NOT survive restarts. Set an explicit secret for production use.',\n 'AuthCore'\n );\n return generated;\n })(),\n session: {\n strategy: 'jwt',\n maxAge: 30 * 24 * 60 * 60, // 30 days\n updateAge: 24 * 60 * 60, // 24 hours\n },\n basePath: '/api/auth',\n trustHost: true,\n debug: process.env.NODE_ENV === 'development',\n ...options,\n };\n }\n\n /**\n * Initialize Better Auth instance\n */\n async initialize(): Promise<void> {\n if (!this.config.providers || this.config.providers.length === 0) {\n throw new Error('At least one authentication provider must be configured');\n }\n\n try {\n this.authInstance = await initializeAuthJS(this.config);\n logger.info('Better Auth initialized successfully', 'Initialization');\n } catch (error) {\n logger.error('Failed to initialize Better Auth', 'InitializationError', { error });\n throw error;\n }\n }\n\n /**\n * Check if request is for Better Auth API routes\n */\n isAuthRoute(url?: string): boolean {\n if (!url) {\n return false;\n }\n const basePath = this.config.basePath || '/api/auth';\n return url.startsWith(basePath);\n }\n\n /**\n * Handle Better Auth API routes\n */\n async handleAuthRoute(req: HttpRequest, res: HttpResponse): Promise<any> {\n if (!this.authInstance) {\n throw new Error('Auth instance not initialized');\n }\n\n try {\n const response = await this.authInstance.handler(req, res);\n return response;\n } catch (error) {\n logger.error('Better Auth handler error', 'HandlerError', { error });\n throw error;\n }\n }\n\n /**\n * Extract and verify JWT token from request\n */\n async verifyToken(\n authHeader?: string\n ): Promise<{ token: string | null; session: AuthSession | null; error?: any }> {\n if (!authHeader?.startsWith('Bearer ') || !this.authInstance) {\n return { token: null, session: null };\n }\n\n const token = authHeader.substring(7);\n\n try {\n const decoded = await this.authInstance.verifyJWT(token);\n if (decoded) {\n const session = await this.authInstance.getSession({ req: { token } });\n return { token, session };\n }\n } catch (error: any) {\n return { token, session: null, error };\n }\n\n return { token: null, session: null };\n }\n\n /**\n * Get session from request\n */\n async getSession(req: HttpRequest): Promise<AuthSession | null> {\n if (!this.authInstance) {\n return null;\n }\n\n try {\n return await this.authInstance.getSession({ req });\n } catch (error) {\n logger.debug('No valid session found', 'SessionValidation', { error });\n return null;\n }\n }\n\n /**\n * Create auth request object with methods\n */\n createAuthRequest(session: AuthSession | null, token?: string): AuthRequest {\n const authRequest: AuthRequest = {\n ...(session?.user ? { user: session.user } : {}),\n ...(session ? { session } : {}),\n ...(token ? { token } : {}),\n isAuthenticated: !!session?.user,\n signIn: async (provider?: string, options?: any) => {\n if (!this.authInstance) {\n throw new Error('Auth instance not initialized');\n }\n return this.authInstance.signIn(provider, options);\n },\n signOut: async (options?: any) => {\n if (!this.authInstance) {\n throw new Error('Auth instance not initialized');\n }\n return this.authInstance.signOut(options);\n },\n getSession: async () => {\n if (!this.authInstance) {\n return null;\n }\n return this.authInstance.getSession({ req: {} });\n },\n getToken: async () => {\n if (!this.authInstance || !token) {\n return null;\n }\n try {\n return this.authInstance.verifyJWT(token);\n } catch (error: any) {\n logger.debug('Failed to verify token in getToken', 'TokenValidation', {\n error: error.message,\n });\n return null;\n }\n },\n getCsrfToken: async () => {\n if (!this.authInstance) {\n return '';\n }\n return this.authInstance.getCsrfToken();\n },\n getProviders: async () => {\n if (!this.cachedProviderMap) {\n this.cachedProviderMap = {};\n for (const provider of this.config.providers) {\n this.cachedProviderMap[provider.id] = provider;\n }\n }\n return this.cachedProviderMap;\n },\n };\n\n return authRequest;\n }\n\n /**\n * Handle JWT verification errors\n */\n handleJWTError(error: any, req: HttpRequest, res: HttpResponse): any | null {\n const acceptsJson = req.headers.accept?.includes('application/json');\n\n if (error.name === 'TokenExpiredError') {\n logger.debug('JWT token expired', 'TokenValidation', {\n message: error.message,\n expiredAt: error.expiredAt,\n });\n\n if (acceptsJson) {\n return res.status(401).json(\n createAuthErrorResponse({\n type: 'expired',\n message: error.message,\n expiredAt: error.expiredAt,\n })\n );\n }\n } else if (error.name === 'JsonWebTokenError') {\n logger.debug('Invalid JWT token format', 'TokenValidation', {\n message: error.message,\n });\n\n if (acceptsJson) {\n return res.status(401).json(\n createAuthErrorResponse({\n type: 'invalid',\n message: error.message,\n })\n );\n }\n } else if (error.name === 'NotBeforeError') {\n logger.debug('JWT token not active yet', 'TokenValidation', {\n message: error.message,\n date: error.date,\n });\n\n if (acceptsJson) {\n return res.status(401).json(\n createAuthErrorResponse({\n type: 'malformed',\n message: error.message,\n date: error.date,\n })\n );\n }\n } else {\n logger.debug('JWT token validation failed', 'TokenValidation', {\n error: error.message || error,\n });\n }\n\n return null;\n }\n\n /**\n * Update session activity\n */\n async updateSession(session: AuthSession): Promise<void> {\n if (!this.authInstance) {\n return;\n }\n\n try {\n await this.authInstance.updateSession(session);\n } catch (error) {\n logger.warn('Failed to update session', 'SessionUpdate', { error });\n }\n }\n\n /**\n * Get provider count\n */\n getProviderCount(): number {\n return this.config.providers.length;\n }\n}\n"]}
|
|
@@ -131,11 +131,11 @@ export function withAuth(options = {}) {
|
|
|
131
131
|
descriptor.value = async function (req, res, next) {
|
|
132
132
|
if (options.requireAuth !== false) {
|
|
133
133
|
const authMiddleware = requireAuth({
|
|
134
|
-
roles: options.roles,
|
|
135
|
-
redirectTo: options.redirectTo,
|
|
134
|
+
...(options.roles !== undefined ? { roles: options.roles } : {}),
|
|
135
|
+
...(options.redirectTo !== undefined ? { redirectTo: options.redirectTo } : {}),
|
|
136
136
|
});
|
|
137
137
|
await new Promise((resolve, reject) => {
|
|
138
|
-
authMiddleware(req, res, (error) => {
|
|
138
|
+
void authMiddleware(req, res, (error) => {
|
|
139
139
|
if (error)
|
|
140
140
|
reject(error);
|
|
141
141
|
else
|
|
@@ -266,7 +266,7 @@ export function protectedRoute(handler, options = {}) {
|
|
|
266
266
|
return async (req, res, next) => {
|
|
267
267
|
const authMiddleware = requireAuth(options);
|
|
268
268
|
return new Promise((resolve, reject) => {
|
|
269
|
-
authMiddleware(req, res, (error) => {
|
|
269
|
+
void authMiddleware(req, res, (error) => {
|
|
270
270
|
if (error) {
|
|
271
271
|
reject(error);
|
|
272
272
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Auth Helper Middleware and Utilities\nimport { AuthRequest } from '../../../../types/auth.js';\n\nexport interface AuthGuardOptions {\n redirectTo?: string;\n redirectOnAuth?: string; // Redirect if already authenticated\n authorize?: (user: any) => boolean | Promise<boolean>;\n roles?: string[];\n permissions?: string[];\n allowUnauthenticated?: boolean;\n onUnauthorized?: (req: any, res: any) => void;\n onForbidden?: (req: any, res: any) => void;\n}\n\nexport interface AuthRouteOptions {\n requireAuth?: boolean;\n roles?: string[];\n permissions?: string[];\n redirectTo?: string;\n}\n\n/**\n * Auth Guard Middleware - Protects routes with authentication and authorization\n */\nexport function requireAuth(options: AuthGuardOptions = {}) {\n return async (req: any, res: any, next: any) => {\n const auth: AuthRequest = req.auth;\n\n if (!auth) {\n throw new Error('Auth middleware must be installed before using requireAuth');\n }\n\n // Check if already authenticated and should redirect\n if (auth.isAuthenticated && options.redirectOnAuth) {\n return res.redirect(options.redirectOnAuth);\n }\n\n // Check authentication requirement\n if (!options.allowUnauthenticated && !auth.isAuthenticated) {\n if (options.onUnauthorized) {\n return options.onUnauthorized(req, res);\n }\n\n if (options.redirectTo) {\n return res.redirect(`${options.redirectTo}?callbackUrl=${encodeURIComponent(req.url)}`);\n }\n\n return res.status(401).json({\n error: 'Authentication required',\n message: 'You must be logged in to access this resource',\n signInUrl: '/api/auth/signin',\n });\n }\n\n // Skip further checks if not authenticated but allowed\n if (!auth.isAuthenticated && options.allowUnauthenticated) {\n return next();\n }\n\n const user = auth.user;\n\n // Check roles if specified\n if (options.roles && options.roles.length > 0) {\n const userRoles = user?.roles || [];\n const hasRole = options.roles.some(role => userRoles.includes(role));\n\n if (!hasRole) {\n if (options.onForbidden) {\n return options.onForbidden(req, res);\n }\n\n return res.status(403).json({\n error: 'Insufficient permissions',\n message: `Required roles: ${options.roles.join(', ')}`,\n userRoles,\n });\n }\n }\n\n // Check permissions if specified\n if (options.permissions && options.permissions.length > 0) {\n const userPermissions = user?.permissions || [];\n const hasPermission = options.permissions.every(permission =>\n userPermissions.includes(permission)\n );\n\n if (!hasPermission) {\n if (options.onForbidden) {\n return options.onForbidden(req, res);\n }\n\n return res.status(403).json({\n error: 'Insufficient permissions',\n message: `Required permissions: ${options.permissions.join(', ')}`,\n userPermissions,\n });\n }\n }\n\n // Custom authorization function\n if (options.authorize) {\n try {\n const authorized = await options.authorize(user);\n\n if (!authorized) {\n if (options.onForbidden) {\n return options.onForbidden(req, res);\n }\n\n return res.status(403).json({\n error: 'Access denied',\n message: 'Custom authorization check failed',\n });\n }\n } catch {\n return res.status(500).json({\n error: 'Authorization error',\n message: 'Failed to verify authorization',\n });\n }\n }\n\n // All checks passed\n next();\n };\n}\n\n/**\n * Role-based access control middleware\n */\nexport function requireRole(\n role: string | string[],\n options: Omit<AuthGuardOptions, 'roles'> = {}\n) {\n const roles = Array.isArray(role) ? role : [role];\n return requireAuth({ ...options, roles });\n}\n\n/**\n * Permission-based access control middleware\n */\nexport function requirePermission(\n permission: string | string[],\n options: Omit<AuthGuardOptions, 'permissions'> = {}\n) {\n const permissions = Array.isArray(permission) ? permission : [permission];\n return requireAuth({ ...options, permissions });\n}\n\n/**\n * Admin-only access middleware\n */\nexport function requireAdmin(options: Omit<AuthGuardOptions, 'roles'> = {}) {\n return requireRole('admin', options);\n}\n\n/**\n * Guest-only middleware (redirect if authenticated)\n */\nexport function guestOnly(redirectTo = '/dashboard') {\n return requireAuth({\n allowUnauthenticated: true,\n redirectOnAuth: redirectTo,\n });\n}\n\n/**\n * Optional auth middleware (allows both authenticated and unauthenticated)\n */\nexport function optionalAuth() {\n return requireAuth({\n allowUnauthenticated: true,\n });\n}\n\n/**\n * Route-level auth decorator\n */\nexport function withAuth(options: AuthRouteOptions = {}) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (req: any, res: any, next: any) {\n if (options.requireAuth !== false) {\n const authMiddleware = requireAuth({\n ...(options.roles !== undefined ? { roles: options.roles } : {}),\n ...(options.redirectTo !== undefined ? { redirectTo: options.redirectTo } : {}),\n });\n\n await new Promise<void>((resolve, reject) => {\n void authMiddleware(req, res, (error: any) => {\n if (error) reject(error);\n else resolve();\n });\n });\n }\n\n return originalMethod.call(this, req, res, next);\n };\n\n return descriptor;\n };\n}\n\n/**\n * Auth utilities for manual checks in route handlers\n */\nexport const authUtils = {\n /**\n * Check if user is authenticated\n */\n isAuthenticated(req: any): boolean {\n return req.auth?.isAuthenticated || false;\n },\n\n /**\n * Get current user\n */\n getUser(req: any) {\n return req.auth?.user || null;\n },\n\n /**\n * Check if user has role\n */\n hasRole(req: any, role: string | string[]): boolean {\n const user = this.getUser(req);\n if (!user?.roles) return false;\n\n const roles = Array.isArray(role) ? role : [role];\n return roles.some(r => user.roles.includes(r));\n },\n\n /**\n * Check if user has permission\n */\n hasPermission(req: any, permission: string | string[]): boolean {\n const user = this.getUser(req);\n if (!user?.permissions) return false;\n\n const permissions = Array.isArray(permission) ? permission : [permission];\n return permissions.every(p => user.permissions.includes(p));\n },\n\n /**\n * Check if user is admin\n */\n isAdmin(req: any): boolean {\n return this.hasRole(req, 'admin');\n },\n\n /**\n * Get user ID\n */\n getUserId(req: any): string | null {\n return this.getUser(req)?.id || null;\n },\n\n /**\n * Force authentication check and redirect if needed\n */\n ensureAuth(req: any, res: any, redirectTo = '/api/auth/signin'): boolean {\n if (!this.isAuthenticated(req)) {\n res.redirect(`${redirectTo}?callbackUrl=${encodeURIComponent(req.url)}`);\n return false;\n }\n return true;\n },\n\n /**\n * Create auth response for API endpoints\n */\n createAuthResponse(req: any) {\n const auth = req.auth;\n\n return {\n isAuthenticated: auth?.isAuthenticated || false,\n user: auth?.user || null,\n session: auth?.session || null,\n timestamp: new Date().toISOString(),\n };\n },\n};\n\n/**\n * API Response helpers for auth endpoints\n */\nexport const authResponses = {\n unauthorized: (res: any, message = 'Authentication required') => {\n return res.status(401).json({\n error: 'Unauthorized',\n message,\n code: 'AUTH_REQUIRED',\n signInUrl: '/api/auth/signin',\n });\n },\n\n forbidden: (res: any, message = 'Insufficient permissions') => {\n return res.status(403).json({\n error: 'Forbidden',\n message,\n code: 'INSUFFICIENT_PERMISSIONS',\n });\n },\n\n authSuccess: (res: any, user: any, message = 'Authentication successful') => {\n return res.json({\n success: true,\n message,\n user: {\n id: user.id,\n name: user.name,\n email: user.email,\n roles: user.roles || [],\n permissions: user.permissions || [],\n },\n });\n },\n\n authError: (res: any, error: string, message = 'Authentication failed') => {\n return res.status(400).json({\n error,\n message,\n code: 'AUTH_ERROR',\n });\n },\n};\n\n/**\n * Higher-order function to create protected route handlers\n */\nexport function protectedRoute(\n handler: (req: any, res: any, next?: any) => any,\n options: AuthGuardOptions = {}\n) {\n return async (req: any, res: any, next: any) => {\n const authMiddleware = requireAuth(options);\n\n return new Promise<void>((resolve, reject) => {\n void authMiddleware(req, res, (error: any) => {\n if (error) {\n reject(error);\n } else {\n Promise.resolve(handler(req, res, next))\n .then(() => resolve())\n .catch(reject);\n }\n });\n });\n };\n}\n\n/**\n * Session management helpers\n */\nexport const sessionHelpers = {\n /**\n * Store data in session\n */\n async setSessionData(req: any, key: string, value: any) {\n if (req.session) {\n req.session[key] = value;\n await req.session.save();\n }\n },\n\n /**\n * Get data from session\n */\n getSessionData(req: any, key: string) {\n return req.session?.[key] || null;\n },\n\n /**\n * Remove data from session\n */\n async removeSessionData(req: any, key: string) {\n if (req.session && key in req.session.data) {\n delete req.session.data[key];\n await req.session.save();\n }\n },\n\n /**\n * Clear entire session\n */\n async clearSession(req: any) {\n if (req.session) {\n await req.session.destroy();\n }\n },\n\n /**\n * Regenerate session ID\n */\n async regenerateSession(req: any) {\n if (req.session) {\n return await req.session.regenerate();\n }\n },\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/hook.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/hook.ts"],"names":[],"mappings":"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","sourcesContent":["// Auth Hook - MiddlewareInterface for global registration\nimport { MiddlewareInterface, HookContext } from '../../../../types/hooks.js';\nimport { createFrameworkLogger } from '../../../logger/index.js';\nimport { AuthCore } from './core.js';\nimport { AuthOptions } from '../../../../types/auth.js';\n\nconst logger = createFrameworkLogger('AuthMiddleware');\n\n/**\n * Auth hook for global usage\n * Registers with the hooks system for application-wide Better Auth authentication\n *\n * @example\n * ```ts\n * import { auth, providers } from '@/middleware/built-in/auth';\n *\n * app.use(auth({\n * secret: process.env.AUTH_SECRET,\n * providers: [\n * providers.google({\n * clientId: process.env.GOOGLE_CLIENT_ID,\n * clientSecret: process.env.GOOGLE_CLIENT_SECRET\n * }),\n * providers.github({\n * clientId: process.env.GITHUB_CLIENT_ID,\n * clientSecret: process.env.GITHUB_CLIENT_SECRET\n * })\n * ],\n * session: {\n * strategy: 'jwt',\n * maxAge: 30 * 24 * 60 * 60\n * }\n * }));\n * ```\n */\nexport const auth = (options: AuthOptions): MiddlewareInterface => ({\n name: 'auth',\n version: '2.0.0',\n metadata: {\n name: 'auth',\n version: '2.0.0',\n description: 'Better Auth authentication middleware with OAuth, JWT, and session support',\n author: 'MoroJS Team',\n dependencies: [],\n tags: ['authentication', 'oauth', 'jwt', 'security', 'better-auth'],\n },\n\n install: async (hooks: any, middlewareOptions: Partial<AuthOptions> = {}) => {\n logger.debug('Installing Better Auth middleware', 'Installation', {\n options: middlewareOptions,\n });\n\n const config = { ...options, ...middlewareOptions };\n const authCore = new AuthCore(config);\n\n // Initialize Better Auth\n await authCore.initialize();\n\n // Register hooks for request processing\n hooks.before('request', async (context: HookContext) => {\n const req = context.request as any;\n const res = context.response as any;\n\n // Handle Better Auth API routes first\n if (authCore.isAuthRoute(req.url)) {\n try {\n const response = await authCore.handleAuthRoute(req, res);\n if (response) {\n return response;\n }\n } catch (error) {\n logger.error('Better Auth handler error', 'HandlerError', { error });\n throw error;\n }\n }\n\n // Extract and verify JWT token\n const {\n token,\n session: tokenSession,\n error,\n } = await authCore.verifyToken(req.headers?.authorization);\n\n // Handle JWT errors for API requests\n if (error) {\n const errorResponse = authCore.handleJWTError(error, req, res);\n if (errorResponse) {\n return errorResponse;\n }\n }\n\n // Get session from cookie if no token session\n let session = tokenSession;\n if (!session) {\n session = await authCore.getSession(req);\n }\n\n // Create and attach auth request object\n const authRequest = authCore.createAuthRequest(session, token || undefined);\n req.auth = authRequest;\n\n if (authRequest.isAuthenticated) {\n logger.debug('User authenticated', 'Authentication', {\n userId: authRequest.user?.id,\n provider: authRequest.user?.provider || 'unknown',\n });\n }\n });\n\n // Response processing hook\n hooks.after('response', async (context: HookContext) => {\n const req = context.request as any;\n\n if (req.auth?.session) {\n await authCore.updateSession(req.auth.session);\n }\n });\n\n logger.info(\n `Better Auth middleware installed with ${authCore.getProviderCount()} providers`,\n 'Installation'\n );\n },\n});\n"]}
|