@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":"sqs-adapter.js","sourceRoot":"","sources":["../../../../src/core/queue/adapters/sqs-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqs-adapter.js","sourceRoot":"","sources":["../../../../src/core/queue/adapters/sqs-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AWS SQS Queue Adapter\n * Adapter for AWS Simple Queue Service\n * Uses lazy loading for optional dependencies\n */\n\nimport { QueueAdapter } from '../queue-adapter.js';\nimport type {\n Job,\n JobOptions,\n JobHandler,\n JobStatus,\n QueueMetrics,\n BulkJobData,\n QueueConnectionConfig,\n JobContext,\n} from '../types.js';\nimport { isPackageAvailable, resolveUserPackage } from '../../utilities/package-utils.js';\nimport { randomUUID } from 'crypto';\nimport { createFrameworkLogger } from '../../logger/index.js';\n\nconst logger = createFrameworkLogger('SQSQueue');\n\n/**\n * Type definitions for AWS SDK (loaded dynamically)\n */\ntype SQSClient = any;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype SendMessageCommand = any;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype ReceiveMessageCommand = any;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype DeleteMessageCommand = any;\n\n/**\n * Stored job data\n */\ninterface StoredJob {\n id: string;\n name: string;\n data: any;\n options: JobOptions;\n attemptsMade: number;\n timestamp: number;\n processedOn?: number | undefined;\n finishedOn?: number | undefined;\n failedReason?: string | undefined;\n progress: number;\n receiptHandle?: string | undefined;\n}\n\n/**\n * Per-queue long-polling state.\n *\n * SQS long polling (WaitTimeSeconds) already paces requests, so instead of a\n * fixed-rate setInterval — which would stack ~one 10s request every 100ms — we\n * run a single self-scheduling loop: poll, then schedule the next poll only once\n * the previous one settles.\n */\ninterface PollingState {\n timer: NodeJS.Timeout | null;\n stopped: boolean;\n inFlight: Promise<void> | null;\n}\n\n/**\n * AWS SQS adapter for cloud-native queues\n * Suitable for AWS-based applications\n */\nexport class SQSAdapter extends QueueAdapter {\n public name = 'sqs';\n\n private SQSClient: any = null;\n private SendMessageCommand: any = null;\n private SendMessageBatchCommand: any = null;\n private ReceiveMessageCommand: any = null;\n private DeleteMessageCommand: any = null;\n private client: SQSClient | null = null;\n private connectionConfig: QueueConnectionConfig;\n private processors: Map<string, JobHandler<any, any>> = new Map();\n private jobStore: Map<string, Map<string, StoredJob>> = new Map();\n private pollingState: Map<string, PollingState> = new Map();\n private queueUrls: Map<string, string> = new Map();\n\n constructor(connectionConfig: QueueConnectionConfig = {}) {\n super();\n this.connectionConfig = connectionConfig;\n }\n\n /**\n * Initialize the SQS adapter\n */\n async initialize(): Promise<void> {\n if (this.isReady) {\n return;\n }\n\n if (!isPackageAvailable('@aws-sdk/client-sqs')) {\n throw new Error(\n '@aws-sdk/client-sqs is not installed. Install it with: npm install @aws-sdk/client-sqs'\n );\n }\n\n try {\n // Load AWS SDK\n const sqsPath = resolveUserPackage('@aws-sdk/client-sqs');\n const sqsModule = await import(sqsPath);\n\n this.SQSClient = sqsModule.SQSClient;\n this.SendMessageCommand = sqsModule.SendMessageCommand;\n this.SendMessageBatchCommand = sqsModule.SendMessageBatchCommand;\n this.ReceiveMessageCommand = sqsModule.ReceiveMessageCommand;\n this.DeleteMessageCommand = sqsModule.DeleteMessageCommand;\n\n // Create SQS client\n this.client = new this.SQSClient({\n region: this.connectionConfig.region || 'us-east-1',\n });\n\n this.isReady = true;\n } catch (error) {\n throw new Error(\n `Failed to initialize SQS adapter: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n /**\n * Get or set queue URL\n */\n private getQueueUrl(queueName: string): string {\n if (!this.queueUrls.has(queueName)) {\n // Try to get from config, otherwise construct default\n const url =\n this.connectionConfig.queueUrl ||\n `https://sqs.${this.connectionConfig.region || 'us-east-1'}.amazonaws.com/${this.connectionConfig.accountId || '000000000000'}/${queueName}`;\n this.queueUrls.set(queueName, url);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.queueUrls.get(queueName)!;\n }\n\n /**\n * Ensure job store exists\n */\n private ensureJobStore(queueName: string): void {\n if (!this.jobStore.has(queueName)) {\n this.jobStore.set(queueName, new Map());\n }\n }\n\n /**\n * Add a job to the queue\n */\n async addJob<T = any>(queueName: string, data: T, options: JobOptions = {}): Promise<Job<T>> {\n this.ensureReady();\n this.ensureJobStore(queueName);\n\n const jobId = options.jobId || randomUUID();\n const job: StoredJob = {\n id: jobId,\n name: queueName,\n data,\n options,\n attemptsMade: 0,\n timestamp: Date.now(),\n progress: 0,\n };\n\n // Store job metadata\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.jobStore.get(queueName)!.set(jobId, job);\n\n // Prepare message\n const message = {\n jobId,\n data,\n options,\n timestamp: job.timestamp,\n };\n\n const params: any = {\n QueueUrl: this.getQueueUrl(queueName),\n MessageBody: JSON.stringify(message),\n MessageAttributes: {\n JobId: {\n DataType: 'String',\n StringValue: jobId,\n },\n },\n };\n\n // Add delay if specified\n if (options.delay && options.delay > 0) {\n params.DelaySeconds = Math.floor(options.delay / 1000); // Convert to seconds\n }\n\n // Send message\n const command = new this.SendMessageCommand(params);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n await this.client!.send(command);\n\n return {\n id: job.id,\n name: job.name,\n data: job.data,\n progress: job.progress,\n attemptsMade: job.attemptsMade,\n timestamp: job.timestamp,\n opts: job.options,\n };\n }\n\n /**\n * Add multiple jobs in bulk\n */\n async addBulkJobs<T = any>(queueName: string, jobs: BulkJobData<T>[]): Promise<Job<T>[]> {\n this.ensureReady();\n this.ensureJobStore(queueName);\n\n const addedJobs: Job<T>[] = [];\n const entries = [];\n\n for (let i = 0; i < jobs.length; i++) {\n const jobData = jobs[i];\n if (!jobData) {\n continue;\n }\n const jobId = jobData.options?.jobId || randomUUID();\n\n const job: StoredJob = {\n id: jobId,\n name: queueName,\n data: jobData.data,\n options: jobData.options || {},\n attemptsMade: 0,\n timestamp: Date.now(),\n progress: 0,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.jobStore.get(queueName)!.set(jobId, job);\n\n const message = {\n jobId,\n data: jobData.data,\n options: jobData.options || {},\n timestamp: job.timestamp,\n };\n\n entries.push({\n Id: String(i),\n MessageBody: JSON.stringify(message),\n MessageAttributes: {\n JobId: {\n DataType: 'String',\n StringValue: jobId,\n },\n },\n DelaySeconds: jobData.options?.delay ? Math.floor(jobData.options.delay / 1000) : 0,\n });\n\n addedJobs.push({\n id: job.id,\n name: job.name,\n data: job.data,\n progress: job.progress,\n attemptsMade: job.attemptsMade,\n timestamp: job.timestamp,\n opts: job.options,\n });\n\n // SQS batch limit is 10 messages\n if (entries.length === 10 || i === jobs.length - 1) {\n const command = new this.SendMessageBatchCommand({\n QueueUrl: this.getQueueUrl(queueName),\n Entries: entries,\n });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n await this.client!.send(command);\n entries.length = 0;\n }\n }\n\n return addedJobs;\n }\n\n /**\n * Register a job processor\n */\n async process<T = any, R = any>(\n queueName: string,\n concurrency: number,\n handler: JobHandler<T, R>\n ): Promise<void> {\n this.ensureReady();\n this.ensureJobStore(queueName);\n\n this.processors.set(queueName, handler);\n\n // Start polling for messages\n this.startPolling(queueName, concurrency);\n }\n\n /**\n * Get a job by ID\n */\n async getJob(queueName: string, jobId: string): Promise<Job | null> {\n this.ensureReady();\n\n const storedJob = this.jobStore.get(queueName)?.get(jobId);\n if (!storedJob) {\n return null;\n }\n\n return {\n id: storedJob.id,\n name: storedJob.name,\n data: storedJob.data,\n progress: storedJob.progress,\n attemptsMade: storedJob.attemptsMade,\n timestamp: storedJob.timestamp,\n processedOn: storedJob.processedOn,\n finishedOn: storedJob.finishedOn,\n failedReason: storedJob.failedReason,\n opts: storedJob.options,\n };\n }\n\n /**\n * Get jobs by status\n */\n async getJobs(\n queueName: string,\n status?: JobStatus,\n start: number = 0,\n end: number = -1\n ): Promise<Job[]> {\n this.ensureReady();\n\n const jobs = Array.from(this.jobStore.get(queueName)?.values() || []);\n\n // Filter by status if provided\n const filteredJobs = status ? jobs.filter(job => this.getJobStatus(job) === status) : jobs;\n\n // Apply pagination\n const endIndex = end === -1 ? filteredJobs.length : end + 1;\n return filteredJobs.slice(start, endIndex).map(job => ({\n id: job.id,\n name: job.name,\n data: job.data,\n progress: job.progress,\n attemptsMade: job.attemptsMade,\n timestamp: job.timestamp,\n processedOn: job.processedOn,\n finishedOn: job.finishedOn,\n failedReason: job.failedReason,\n opts: job.options,\n }));\n }\n\n /**\n * Remove a job\n */\n async removeJob(queueName: string, jobId: string): Promise<void> {\n this.ensureReady();\n\n const job = this.jobStore.get(queueName)?.get(jobId);\n if (job && job.receiptHandle) {\n // Delete from SQS\n const command = new this.DeleteMessageCommand({\n QueueUrl: this.getQueueUrl(queueName),\n ReceiptHandle: job.receiptHandle,\n });\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n await this.client!.send(command);\n } catch {\n // Message might already be deleted, ignore\n }\n }\n\n this.jobStore.get(queueName)?.delete(jobId);\n }\n\n /**\n * Retry a failed job\n */\n async retryJob(queueName: string, jobId: string): Promise<void> {\n this.ensureReady();\n\n const storedJob = this.jobStore.get(queueName)?.get(jobId);\n if (!storedJob) {\n return;\n }\n\n // Reset job state\n storedJob.failedReason = undefined;\n storedJob.processedOn = undefined;\n storedJob.finishedOn = undefined;\n storedJob.progress = 0;\n storedJob.receiptHandle = undefined;\n\n // Re-add to queue\n await this.addJob(queueName, storedJob.data, storedJob.options);\n }\n\n /**\n * Pause the queue\n */\n async pauseQueue(queueName: string): Promise<void> {\n this.ensureReady();\n await this.stopPolling(queueName);\n }\n\n /**\n * Resume the queue\n */\n async resumeQueue(queueName: string): Promise<void> {\n this.ensureReady();\n\n const handler = this.processors.get(queueName);\n if (handler) {\n this.startPolling(queueName, 1);\n }\n }\n\n /**\n * Get queue metrics\n */\n async getMetrics(queueName: string): Promise<QueueMetrics> {\n this.ensureReady();\n\n const jobs = Array.from(this.jobStore.get(queueName)?.values() || []);\n\n const metrics: QueueMetrics = {\n waiting: 0,\n active: 0,\n completed: 0,\n failed: 0,\n delayed: 0,\n paused: 0,\n };\n\n for (const job of jobs) {\n const status = this.getJobStatus(job);\n if (status in metrics) {\n metrics[status]++;\n }\n }\n\n return metrics;\n }\n\n /**\n * Clean old jobs\n */\n async clean(queueName: string, gracePeriod: number, status?: JobStatus): Promise<void> {\n this.ensureReady();\n\n const jobs = this.jobStore.get(queueName);\n if (!jobs) {\n return;\n }\n\n const cutoff = Date.now() - gracePeriod;\n const jobsToRemove: string[] = [];\n\n for (const [jobId, job] of jobs.entries()) {\n const jobStatus = this.getJobStatus(job);\n const shouldClean = !status || jobStatus === status;\n\n if (shouldClean && job.finishedOn && job.finishedOn < cutoff) {\n jobsToRemove.push(jobId);\n }\n }\n\n for (const jobId of jobsToRemove) {\n jobs.delete(jobId);\n }\n }\n\n /**\n * Obliterate a queue\n */\n async obliterate(queueName: string): Promise<void> {\n this.ensureReady();\n\n // Stop polling\n await this.pauseQueue(queueName);\n\n // Note: We don't delete the SQS queue itself, just stop processing\n // To delete the queue, use AWS console or CLI\n\n this.jobStore.delete(queueName);\n this.processors.delete(queueName);\n this.queueUrls.delete(queueName);\n }\n\n /**\n * Close the adapter\n */\n async close(): Promise<void> {\n // Stop all polling\n for (const queueName of Array.from(this.pollingState.keys())) {\n await this.stopPolling(queueName);\n }\n\n this.jobStore.clear();\n this.processors.clear();\n this.queueUrls.clear();\n this.client = null;\n this.isReady = false;\n }\n\n /**\n * Start polling for messages.\n *\n * Runs a single self-scheduling loop instead of a fixed-rate interval: the next\n * poll is only scheduled once the current one settles, so long-poll requests can\n * never stack up. The scheduling timer is unref'd so it doesn't keep the process\n * alive, and an in-flight promise is tracked so pause/close can await the active\n * poll before returning.\n */\n private startPolling(queueName: string, maxMessages: number): void {\n if (this.pollingState.has(queueName)) {\n return;\n }\n\n const state: PollingState = { timer: null, stopped: false, inFlight: null };\n this.pollingState.set(queueName, state);\n\n const pollOnce = async (): Promise<void> => {\n try {\n const command = new this.ReceiveMessageCommand({\n QueueUrl: this.getQueueUrl(queueName),\n MaxNumberOfMessages: Math.min(maxMessages, 10), // SQS max is 10\n WaitTimeSeconds: 10, // Long polling\n MessageAttributeNames: ['All'],\n });\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const response = await this.client!.send(command);\n\n if (response.Messages && response.Messages.length > 0) {\n // Process messages in parallel\n await Promise.all(\n response.Messages.map((message: any) => this.processMessage(queueName, message))\n );\n }\n } catch (error) {\n logger.error(`Error polling queue ${queueName}: ${error}`);\n }\n };\n\n const runLoop = (): void => {\n if (state.stopped) {\n return;\n }\n\n const current = pollOnce();\n state.inFlight = current;\n\n void current.then(() => {\n state.inFlight = null;\n if (state.stopped) {\n return;\n }\n // Long polling already paces us; schedule the next iteration immediately.\n const timer = setTimeout(runLoop, 0);\n timer.unref();\n state.timer = timer;\n });\n };\n\n runLoop();\n }\n\n /**\n * Stop the polling loop for a queue and wait for any in-flight poll to settle.\n */\n private async stopPolling(queueName: string): Promise<void> {\n const state = this.pollingState.get(queueName);\n if (!state) {\n return;\n }\n\n state.stopped = true;\n if (state.timer) {\n clearTimeout(state.timer);\n state.timer = null;\n }\n\n // Await the active poll so callers don't race with in-flight message processing.\n const inFlight = state.inFlight;\n if (inFlight) {\n await inFlight.catch(() => {});\n }\n\n this.pollingState.delete(queueName);\n }\n\n /**\n * Process a single message\n */\n private async processMessage(queueName: string, message: any): Promise<void> {\n const handler = this.processors.get(queueName);\n if (!handler) {\n return;\n }\n\n try {\n const body = JSON.parse(message.Body);\n const { jobId, data, options, timestamp } = body;\n\n // The SQS message body is the source of truth for the job. In the normal\n // topology producers and consumers are separate processes (or the\n // consumer restarted after enqueue), so this consumer's in-memory\n // jobStore will not contain the job. Reconstruct and cache a local record\n // from the body instead of deleting the message unprocessed — dropping it\n // here silently loses the job and never runs the handler.\n let storedJob = this.jobStore.get(queueName)?.get(jobId);\n if (!storedJob) {\n storedJob = {\n id: jobId,\n name: queueName,\n data,\n options: options || {},\n attemptsMade: 0,\n timestamp: timestamp || Date.now(),\n progress: 0,\n };\n this.ensureJobStore(queueName);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.jobStore.get(queueName)!.set(jobId, storedJob);\n }\n\n storedJob.receiptHandle = message.ReceiptHandle;\n storedJob.processedOn = Date.now();\n\n // Create job context\n const jobContext: JobContext = {\n id: jobId,\n name: queueName,\n data,\n progress: storedJob.progress,\n attemptsMade: storedJob.attemptsMade,\n timestamp: storedJob.timestamp,\n processedOn: storedJob.processedOn,\n finishedOn: storedJob.finishedOn,\n failedReason: storedJob.failedReason,\n opts: options,\n updateProgress: async (progress: number) => {\n storedJob.progress = progress;\n },\n log: (message: string) => {\n logger.debug(`[Job ${jobId}] ${message}`);\n },\n };\n\n // Execute handler\n await handler(jobContext);\n\n // Mark as completed\n storedJob.finishedOn = Date.now();\n storedJob.progress = 100;\n\n // Delete message from SQS\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n await this.client!.send(\n new this.DeleteMessageCommand({\n QueueUrl: this.getQueueUrl(queueName),\n ReceiptHandle: message.ReceiptHandle,\n })\n );\n\n // Auto-remove if configured\n if (options.removeOnComplete) {\n setTimeout(\n () => {\n this.jobStore.get(queueName)?.delete(jobId);\n },\n typeof options.removeOnComplete === 'number' ? options.removeOnComplete : 0\n );\n }\n } catch (error) {\n const body = JSON.parse(message.Body);\n const { jobId, options } = body;\n\n const storedJob = this.jobStore.get(queueName)?.get(jobId);\n if (storedJob) {\n storedJob.attemptsMade++;\n storedJob.failedReason = error instanceof Error ? error.message : String(error);\n storedJob.finishedOn = Date.now();\n\n // SQS handles retries automatically via visibility timeout\n // If max attempts reached, delete the message\n const maxAttempts = options.attempts || 1;\n if (storedJob.attemptsMade >= maxAttempts) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n await this.client!.send(\n new this.DeleteMessageCommand({\n QueueUrl: this.getQueueUrl(queueName),\n ReceiptHandle: message.ReceiptHandle,\n })\n );\n\n // Auto-remove if configured\n if (options.removeOnFail) {\n setTimeout(\n () => {\n this.jobStore.get(queueName)?.delete(jobId);\n },\n typeof options.removeOnFail === 'number' ? options.removeOnFail : 0\n );\n }\n }\n }\n }\n }\n\n /**\n * Get job status\n */\n private getJobStatus(job: StoredJob): JobStatus {\n if (job.failedReason) {\n return 'failed';\n }\n if (job.finishedOn) {\n return 'completed';\n }\n if (job.processedOn) {\n return 'active';\n }\n if (job.options.delay && job.options.delay > 0) {\n return 'delayed';\n }\n return 'waiting';\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/queue/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAyBlD,kBAAkB;AAClB,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,qBAAqB;AACrB,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,wBAAwB,EACxB,QAAQ,EACR,aAAa,EACb,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GAMvB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/queue/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAyBlD,kBAAkB;AAClB,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,qBAAqB;AACrB,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,wBAAwB,EACxB,QAAQ,EACR,aAAa,EACb,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GAMvB,MAAM,uBAAuB,CAAC","sourcesContent":["/**\n * Message Queue System for MoroJS\n * Production-ready queue support with multiple adapters\n *\n * @module queue\n */\n\n// Core exports\nexport { QueueManager } from './queue-manager.js';\nexport { QueueAdapter } from './queue-adapter.js';\n\n// Type exports\nexport type {\n QueueAdapterType,\n JobStatus,\n BackoffStrategy,\n QueueConnectionConfig,\n RetryConfig,\n DeadLetterQueueConfig,\n JobOptions,\n DefaultJobOptions,\n QueueOptions,\n Job,\n JobContext,\n JobHandler,\n BulkJobData,\n QueueMetrics,\n QueueEventType,\n QueueEvent,\n QueueStatus,\n IQueueAdapter,\n IQueueManager,\n} from './types.js';\n\n// Adapter exports\nexport {\n MemoryAdapter,\n BullAdapter,\n RabbitMQAdapter,\n SQSAdapter,\n KafkaAdapter,\n} from './adapters/index.js';\n\n// Middleware exports\nexport {\n createRateLimitMiddleware,\n RateLimiter,\n createPriorityMiddleware,\n Priority,\n PriorityQueue,\n createMonitoringMiddleware,\n QueueMetricsCollector,\n globalMetricsCollector,\n type RateLimiterOptions,\n type PriorityOptions,\n type MonitoringOptions,\n type JobMetrics,\n type QueueStats,\n} from './middleware/index.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/queue/middleware/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAA2B,MAAM,iBAAiB,CAAC;AAElG,OAAO,EACL,wBAAwB,EACxB,QAAQ,EACR,aAAa,GAEd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GAIvB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/queue/middleware/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAA2B,MAAM,iBAAiB,CAAC;AAElG,OAAO,EACL,wBAAwB,EACxB,QAAQ,EACR,aAAa,GAEd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GAIvB,MAAM,iBAAiB,CAAC","sourcesContent":["/**\n * Queue Middleware Index\n * Exports all queue middleware components\n */\n\nexport { createRateLimitMiddleware, RateLimiter, type RateLimiterOptions } from './rate-limit.js';\n\nexport {\n createPriorityMiddleware,\n Priority,\n PriorityQueue,\n type PriorityOptions,\n} from './priority.js';\n\nexport {\n createMonitoringMiddleware,\n QueueMetricsCollector,\n globalMetricsCollector,\n type MonitoringOptions,\n type JobMetrics,\n type QueueStats,\n} from './monitoring.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../../../src/core/queue/middleware/monitoring.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../../../src/core/queue/middleware/monitoring.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Monitoring Middleware for Queue Processing\n * Collects metrics and tracks job performance\n */\n\nimport type { JobHandler, JobContext } from '../types.js';\n\n/**\n * Job execution metrics\n */\nexport interface JobMetrics {\n jobId: string;\n queueName: string;\n startTime: number;\n endTime?: number;\n duration?: number;\n success: boolean;\n error?: string | undefined;\n attemptsMade: number;\n memoryUsage?: NodeJS.MemoryUsage;\n}\n\n/**\n * Queue metrics collector\n */\nexport class QueueMetricsCollector {\n private metrics: Map<string, JobMetrics> = new Map();\n private aggregatedStats: Map<string, QueueStats> = new Map();\n\n /**\n * Record job start\n */\n recordStart(jobId: string, queueName: string, attemptsMade: number): void {\n this.metrics.set(jobId, {\n jobId,\n queueName,\n startTime: Date.now(),\n success: false,\n attemptsMade,\n memoryUsage: process.memoryUsage(),\n });\n }\n\n /**\n * Record job completion\n */\n recordCompletion(jobId: string, success: boolean, error?: string): void {\n const metric = this.metrics.get(jobId);\n if (!metric) {\n return;\n }\n\n metric.endTime = Date.now();\n metric.duration = metric.endTime - metric.startTime;\n metric.success = success;\n metric.error = error;\n\n // Update aggregated stats\n this.updateStats(metric);\n }\n\n /**\n * Get metrics for a specific job\n */\n getJobMetrics(jobId: string): JobMetrics | undefined {\n return this.metrics.get(jobId);\n }\n\n /**\n * Get aggregated stats for a queue\n */\n getQueueStats(queueName: string): QueueStats | undefined {\n return this.aggregatedStats.get(queueName);\n }\n\n /**\n * Get all queue stats\n */\n getAllStats(): Map<string, QueueStats> {\n return new Map(this.aggregatedStats);\n }\n\n /**\n * Clear old metrics (keep last N)\n */\n cleanup(maxMetrics: number = 1000): void {\n if (this.metrics.size <= maxMetrics) {\n return;\n }\n\n const metricsArray = Array.from(this.metrics.entries());\n const toKeep = metricsArray.slice(-maxMetrics);\n this.metrics = new Map(toKeep);\n }\n\n /**\n * Update aggregated statistics\n */\n private updateStats(metric: JobMetrics): void {\n const queueName = metric.queueName;\n let stats = this.aggregatedStats.get(queueName);\n\n if (!stats) {\n stats = {\n queueName,\n totalJobs: 0,\n successfulJobs: 0,\n failedJobs: 0,\n totalDuration: 0,\n averageDuration: 0,\n minDuration: Infinity,\n maxDuration: 0,\n lastUpdated: Date.now(),\n };\n this.aggregatedStats.set(queueName, stats);\n }\n\n stats.totalJobs++;\n if (metric.success) {\n stats.successfulJobs++;\n } else {\n stats.failedJobs++;\n }\n\n if (metric.duration !== undefined) {\n stats.totalDuration += metric.duration;\n stats.averageDuration = stats.totalDuration / stats.totalJobs;\n stats.minDuration = Math.min(stats.minDuration, metric.duration);\n stats.maxDuration = Math.max(stats.maxDuration, metric.duration);\n }\n\n stats.lastUpdated = Date.now();\n }\n}\n\n/**\n * Aggregated queue statistics\n */\nexport interface QueueStats {\n queueName: string;\n totalJobs: number;\n successfulJobs: number;\n failedJobs: number;\n totalDuration: number;\n averageDuration: number;\n minDuration: number;\n maxDuration: number;\n lastUpdated: number;\n}\n\n/**\n * Monitoring middleware options\n */\nexport interface MonitoringOptions {\n collector?: QueueMetricsCollector;\n logMetrics?: boolean;\n trackMemory?: boolean;\n}\n\n/**\n * Create a monitoring middleware\n */\nexport function createMonitoringMiddleware<T = any, R = any>(\n handler: JobHandler<T, R>,\n options: MonitoringOptions = {}\n): JobHandler<T, R> {\n const collector = options.collector || new QueueMetricsCollector();\n\n return async (job: JobContext<T>): Promise<R> => {\n // Record start\n collector.recordStart(job.id, job.name, job.attemptsMade);\n\n const startTime = Date.now();\n const startMemory = options.trackMemory ? process.memoryUsage() : null;\n\n try {\n const result = await handler(job);\n\n // Record success\n collector.recordCompletion(job.id, true);\n\n if (options.logMetrics) {\n const duration = Date.now() - startTime;\n job.log(`Job completed in ${duration}ms`);\n\n if (startMemory && options.trackMemory) {\n const endMemory = process.memoryUsage();\n const heapDiff = endMemory.heapUsed - startMemory.heapUsed;\n job.log(`Heap usage: ${(heapDiff / 1024 / 1024).toFixed(2)}MB`);\n }\n }\n\n return result;\n } catch (error) {\n // Record failure\n const errorMessage = error instanceof Error ? error.message : String(error);\n collector.recordCompletion(job.id, false, errorMessage);\n\n if (options.logMetrics) {\n const duration = Date.now() - startTime;\n job.log(`Job failed after ${duration}ms: ${errorMessage}`);\n }\n\n throw error;\n }\n };\n}\n\n/**\n * Global metrics collector instance\n */\nexport const globalMetricsCollector = new QueueMetricsCollector();\n"]}
|
|
@@ -40,7 +40,8 @@ export class PriorityQueue {
|
|
|
40
40
|
// Find correct position based on priority
|
|
41
41
|
let added = false;
|
|
42
42
|
for (let i = 0; i < this.items.length; i++) {
|
|
43
|
-
|
|
43
|
+
const current = this.items[i];
|
|
44
|
+
if (current !== undefined && item.priority < current.priority) {
|
|
44
45
|
this.items.splice(i, 0, item);
|
|
45
46
|
added = true;
|
|
46
47
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priority.js","sourceRoot":"","sources":["../../../../src/core/queue/middleware/priority.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,+CAAY,CAAA;IACZ,uCAAQ,CAAA;IACR,2CAAU,CAAA;IACV,qCAAO,CAAA;IACP,+CAAY,CAAA;AACd,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAUD;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAyB,EACzB,UAA2B,EAAE;IAE7B,OAAO,KAAK,EAAE,GAAkB,EAAc,EAAE;QAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,eAAe,IAAI,QAAQ,CAAC,MAAM,CAAC;QAEjF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,iCAAiC,YAAY,KAAK,QAAQ,GAAG,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,KAAK,GAA0C,EAAE,CAAC;IAE1D;;OAEG;IACH,OAAO,CAAC,KAAQ,EAAE,WAAmB,QAAQ,CAAC,MAAM;QAClD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAEjC,0CAA0C;QAC1C,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,
|
|
1
|
+
{"version":3,"file":"priority.js","sourceRoot":"","sources":["../../../../src/core/queue/middleware/priority.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,+CAAY,CAAA;IACZ,uCAAQ,CAAA;IACR,2CAAU,CAAA;IACV,qCAAO,CAAA;IACP,+CAAY,CAAA;AACd,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAUD;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAyB,EACzB,UAA2B,EAAE;IAE7B,OAAO,KAAK,EAAE,GAAkB,EAAc,EAAE;QAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,eAAe,IAAI,QAAQ,CAAC,MAAM,CAAC;QAEjF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,iCAAiC,YAAY,KAAK,QAAQ,GAAG,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,KAAK,GAA0C,EAAE,CAAC;IAE1D;;OAEG;IACH,OAAO,CAAC,KAAQ,EAAE,WAAmB,QAAQ,CAAC,MAAM;QAClD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAEjC,0CAA0C;QAC1C,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC9B,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["/**\n * Priority Handling Middleware for Queue Processing\n * Manages job priority and execution order\n */\n\nimport type { JobHandler, JobContext } from '../types.js';\n\n/**\n * Priority levels\n */\nexport enum Priority {\n CRITICAL = 1,\n HIGH = 2,\n NORMAL = 3,\n LOW = 4,\n VERY_LOW = 5,\n}\n\n/**\n * Priority middleware options\n */\nexport interface PriorityOptions {\n defaultPriority?: Priority;\n logPriority?: boolean;\n}\n\n/**\n * Create a priority-aware job handler\n */\nexport function createPriorityMiddleware<T = any, R = any>(\n handler: JobHandler<T, R>,\n options: PriorityOptions = {}\n): JobHandler<T, R> {\n return async (job: JobContext<T>): Promise<R> => {\n const priority = job.opts.priority || options.defaultPriority || Priority.NORMAL;\n\n if (options.logPriority) {\n const priorityName = Priority[priority] || 'UNKNOWN';\n job.log(`Processing job with priority: ${priorityName} (${priority})`);\n }\n\n return await handler(job);\n };\n}\n\n/**\n * Priority queue helper\n * Sorts jobs by priority before processing\n */\nexport class PriorityQueue<T> {\n private items: Array<{ priority: number; value: T }> = [];\n\n /**\n * Add an item to the priority queue\n */\n enqueue(value: T, priority: number = Priority.NORMAL): void {\n const item = { priority, value };\n\n // Find correct position based on priority\n let added = false;\n for (let i = 0; i < this.items.length; i++) {\n const current = this.items[i];\n if (current !== undefined && item.priority < current.priority) {\n this.items.splice(i, 0, item);\n added = true;\n break;\n }\n }\n\n if (!added) {\n this.items.push(item);\n }\n }\n\n /**\n * Remove and return the highest priority item\n */\n dequeue(): T | undefined {\n return this.items.shift()?.value;\n }\n\n /**\n * Peek at the highest priority item without removing it\n */\n peek(): T | undefined {\n return this.items[0]?.value;\n }\n\n /**\n * Get queue size\n */\n size(): number {\n return this.items.length;\n }\n\n /**\n * Check if queue is empty\n */\n isEmpty(): boolean {\n return this.items.length === 0;\n }\n\n /**\n * Clear all items\n */\n clear(): void {\n this.items = [];\n }\n\n /**\n * Get all items sorted by priority\n */\n toArray(): T[] {\n return this.items.map(item => item.value);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../../src/core/queue/middleware/rate-limit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../../src/core/queue/middleware/rate-limit.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Rate Limiting Middleware for Queue Processing\n * Limits the rate at which jobs are processed\n */\n\nimport type { JobHandler, JobContext } from '../types.js';\n\n/**\n * Rate limiter configuration\n */\nexport interface RateLimiterOptions {\n max: number; // Maximum number of jobs\n duration: number; // Time window in milliseconds\n throwOnLimit?: boolean; // Throw error when limit exceeded (default: false)\n}\n\n/**\n * Token bucket implementation for rate limiting\n */\nclass TokenBucket {\n private tokens: number;\n private lastRefill: number;\n\n constructor(\n private max: number,\n private refillRate: number\n ) {\n this.tokens = max;\n this.lastRefill = Date.now();\n }\n\n /**\n * Try to consume a token\n */\n consume(): boolean {\n this.refill();\n\n if (this.tokens >= 1) {\n this.tokens -= 1;\n return true;\n }\n\n return false;\n }\n\n /**\n * Refill tokens based on time elapsed\n */\n private refill(): void {\n const now = Date.now();\n const elapsed = now - this.lastRefill;\n const tokensToAdd = (elapsed / 1000) * this.refillRate;\n\n if (tokensToAdd > 0) {\n this.tokens = Math.min(this.max, this.tokens + tokensToAdd);\n this.lastRefill = now;\n }\n }\n\n /**\n * Get time until next token is available (in ms)\n */\n getWaitTime(): number {\n if (this.tokens >= 1) {\n return 0;\n }\n\n const tokensNeeded = 1 - this.tokens;\n return (tokensNeeded / this.refillRate) * 1000;\n }\n}\n\n/**\n * Create a rate-limited job handler\n */\nexport function createRateLimitMiddleware<T = any, R = any>(\n handler: JobHandler<T, R>,\n options: RateLimiterOptions\n): JobHandler<T, R> {\n const refillRate = options.max / (options.duration / 1000);\n const bucket = new TokenBucket(options.max, refillRate);\n\n return async (job: JobContext<T>): Promise<R> => {\n // Try to consume a token\n if (!bucket.consume()) {\n if (options.throwOnLimit) {\n throw new Error('Rate limit exceeded');\n }\n\n // Wait for next token\n const waitTime = bucket.getWaitTime();\n job.log(`Rate limit reached, waiting ${Math.ceil(waitTime)}ms`);\n\n await new Promise(resolve => setTimeout(resolve, waitTime));\n\n // Try again after waiting\n if (!bucket.consume()) {\n throw new Error('Rate limit still exceeded after waiting');\n }\n }\n\n return await handler(job);\n };\n}\n\n/**\n * Rate limiter factory for queue configuration\n */\nexport class RateLimiter {\n /**\n * Create a rate limiter that allows X jobs per second\n */\n static perSecond(max: number): RateLimiterOptions {\n return {\n max,\n duration: 1000,\n };\n }\n\n /**\n * Create a rate limiter that allows X jobs per minute\n */\n static perMinute(max: number): RateLimiterOptions {\n return {\n max,\n duration: 60000,\n };\n }\n\n /**\n * Create a rate limiter that allows X jobs per hour\n */\n static perHour(max: number): RateLimiterOptions {\n return {\n max,\n duration: 3600000,\n };\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-adapter.js","sourceRoot":"","sources":["../../../src/core/queue/queue-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;;GAGG;AACH,MAAM,OAAgB,YAAY;IAEzB,OAAO,GAAY,KAAK,CAAC;IAiFhC;;OAEG;IACO,WAAW;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"queue-adapter.js","sourceRoot":"","sources":["../../../src/core/queue/queue-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;;GAGG;AACH,MAAM,OAAgB,YAAY;IAEzB,OAAO,GAAY,KAAK,CAAC;IAiFhC;;OAEG;IACO,WAAW;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF","sourcesContent":["/**\n * Base Queue Adapter Interface\n * Defines the contract that all queue adapters must implement\n */\n\nimport type {\n IQueueAdapter,\n Job,\n JobOptions,\n JobHandler,\n JobStatus,\n QueueMetrics,\n BulkJobData,\n} from './types.js';\n\n/**\n * Abstract base class for queue adapters\n * Provides common functionality and enforces interface implementation\n */\nexport abstract class QueueAdapter implements IQueueAdapter {\n public abstract name: string;\n public isReady: boolean = false;\n\n /**\n * Initialize the queue adapter\n */\n abstract initialize(): Promise<void>;\n\n /**\n * Add a single job to the queue\n */\n abstract addJob<T = any>(queueName: string, data: T, options?: JobOptions): Promise<Job<T>>;\n\n /**\n * Add multiple jobs to the queue in bulk\n */\n abstract addBulkJobs<T = any>(queueName: string, jobs: BulkJobData<T>[]): Promise<Job<T>[]>;\n\n /**\n * Register a processor for the queue\n */\n abstract process<T = any, R = any>(\n queueName: string,\n concurrency: number,\n handler: JobHandler<T, R>\n ): Promise<void>;\n\n /**\n * Get a specific job by ID\n */\n abstract getJob(queueName: string, jobId: string): Promise<Job | null>;\n\n /**\n * Get jobs by status\n */\n abstract getJobs(\n queueName: string,\n status?: JobStatus,\n start?: number,\n end?: number\n ): Promise<Job[]>;\n\n /**\n * Remove a job from the queue\n */\n abstract removeJob(queueName: string, jobId: string): Promise<void>;\n\n /**\n * Retry a failed job\n */\n abstract retryJob(queueName: string, jobId: string): Promise<void>;\n\n /**\n * Pause the queue\n */\n abstract pauseQueue(queueName: string): Promise<void>;\n\n /**\n * Resume the queue\n */\n abstract resumeQueue(queueName: string): Promise<void>;\n\n /**\n * Get queue metrics\n */\n abstract getMetrics(queueName: string): Promise<QueueMetrics>;\n\n /**\n * Clean old jobs from the queue\n */\n abstract clean(queueName: string, gracePeriod: number, status?: JobStatus): Promise<void>;\n\n /**\n * Completely remove a queue and all its data\n */\n abstract obliterate(queueName: string): Promise<void>;\n\n /**\n * Close the adapter and cleanup resources\n */\n abstract close(): Promise<void>;\n\n /**\n * Helper to ensure the adapter is initialized\n */\n protected ensureReady(): void {\n if (!this.isReady) {\n throw new Error(`Queue adapter ${this.name} is not initialized`);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-manager.js","sourceRoot":"","sources":["../../../src/core/queue/queue-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queue-manager.js","sourceRoot":"","sources":["../../../src/core/queue/queue-manager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Queue Manager\n * Central manager for all queue operations in MoroJS\n */\n\nimport type {\n IQueueManager,\n IQueueAdapter,\n QueueOptions,\n Job,\n JobOptions,\n JobHandler,\n BulkJobData,\n QueueStatus,\n QueueEvent,\n QueueEventType,\n} from './types.js';\nimport { MemoryAdapter } from './adapters/memory-adapter.js';\nimport { BullAdapter } from './adapters/bull-adapter.js';\nimport { RabbitMQAdapter } from './adapters/rabbitmq-adapter.js';\nimport { SQSAdapter } from './adapters/sqs-adapter.js';\nimport { KafkaAdapter } from './adapters/kafka-adapter.js';\nimport type { EventEmitter } from 'events';\nimport { createFrameworkLogger } from '../logger/index.js';\n\nconst logger = createFrameworkLogger('QueueManager');\n\n/**\n * Queue configuration with adapter instance\n */\ninterface RegisteredQueue {\n name: string;\n options: QueueOptions;\n adapter: IQueueAdapter;\n processors: Map<string, JobHandler<any, any>>;\n}\n\n/**\n * Queue Manager\n * Manages multiple queues with different adapters\n */\nexport class QueueManager implements IQueueManager {\n private queues: Map<string, RegisteredQueue> = new Map();\n private eventEmitter?: EventEmitter | undefined;\n private isShuttingDown: boolean = false;\n\n constructor(eventEmitter?: EventEmitter) {\n this.eventEmitter = eventEmitter;\n }\n\n /**\n * Register a new queue\n */\n async registerQueue(name: string, options: QueueOptions): Promise<void> {\n if (this.queues.has(name)) {\n throw new Error(`Queue \"${name}\" is already registered`);\n }\n\n // Create adapter based on type\n const adapter = this.createAdapter(options);\n\n // Initialize adapter\n await adapter.initialize();\n\n // Register queue\n this.queues.set(name, {\n name,\n options,\n adapter,\n processors: new Map(),\n });\n\n this.emitEvent('queue:created', {\n queueName: name,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Add a job to a queue\n */\n async addToQueue<T = any>(queueName: string, data: T, options?: JobOptions): Promise<Job<T>> {\n const queue = this.getQueue(queueName);\n\n // Merge with default options\n const finalOptions: JobOptions = {\n ...queue.options.defaultJobOptions,\n ...options,\n };\n\n const job = await queue.adapter.addJob(queueName, data, finalOptions);\n\n this.emitEvent('queue:job:added', {\n queueName,\n jobId: job.id,\n job,\n timestamp: Date.now(),\n });\n\n return job;\n }\n\n /**\n * Add multiple jobs to a queue in bulk\n */\n async addBulkToQueue<T = any>(queueName: string, jobs: BulkJobData<T>[]): Promise<Job<T>[]> {\n const queue = this.getQueue(queueName);\n\n // Merge with default options for each job\n const jobsWithDefaults = jobs.map(job => ({\n ...job,\n options: {\n ...queue.options.defaultJobOptions,\n ...job.options,\n },\n }));\n\n const addedJobs = await queue.adapter.addBulkJobs(queueName, jobsWithDefaults);\n\n for (const job of addedJobs) {\n this.emitEvent('queue:job:added', {\n queueName,\n jobId: job.id,\n job,\n timestamp: Date.now(),\n });\n }\n\n return addedJobs;\n }\n\n /**\n * Register a processor for a queue\n */\n async processQueue<T = any, R = any>(\n queueName: string,\n concurrencyOrHandler: number | JobHandler<T, R>,\n handler?: JobHandler<T, R>\n ): Promise<void> {\n const queue = this.getQueue(queueName);\n\n // Parse arguments\n let concurrency: number;\n let actualHandler: JobHandler<T, R>;\n\n if (typeof concurrencyOrHandler === 'function') {\n concurrency = queue.options.concurrency || 1;\n actualHandler = concurrencyOrHandler;\n } else {\n concurrency = concurrencyOrHandler;\n if (!handler) {\n throw new Error('Handler function is required when concurrency is specified');\n }\n actualHandler = handler;\n }\n\n // Wrap handler to emit events\n const wrappedHandler: JobHandler<T, R> = async job => {\n try {\n this.emitEvent('queue:job:active', {\n queueName,\n jobId: job.id,\n job,\n timestamp: Date.now(),\n });\n\n // Wrap updateProgress to emit events\n const originalUpdateProgress = job.updateProgress;\n job.updateProgress = async (progress: number) => {\n await originalUpdateProgress.call(job, progress);\n this.emitEvent('queue:job:progress', {\n queueName,\n jobId: job.id,\n progress,\n timestamp: Date.now(),\n });\n };\n\n const result = await actualHandler(job);\n\n this.emitEvent('queue:job:completed', {\n queueName,\n jobId: job.id,\n job,\n result,\n timestamp: Date.now(),\n });\n\n return result;\n } catch (error) {\n this.emitEvent('queue:job:failed', {\n queueName,\n jobId: job.id,\n job,\n error: error as Error,\n timestamp: Date.now(),\n });\n throw error;\n }\n };\n\n // Store processor\n queue.processors.set(queueName, wrappedHandler);\n\n // Register with adapter\n await queue.adapter.process(queueName, concurrency, wrappedHandler);\n }\n\n /**\n * Get queue status\n */\n async getQueueStatus(queueName: string): Promise<QueueStatus> {\n const queue = this.getQueue(queueName);\n\n const metrics = await queue.adapter.getMetrics(queueName);\n\n return {\n name: queueName,\n adapter: queue.options.adapter,\n isPaused: metrics.paused > 0,\n metrics,\n workers: queue.processors.size,\n };\n }\n\n /**\n * Get a specific job\n */\n async getJob(queueName: string, jobId: string): Promise<Job | null> {\n const queue = this.getQueue(queueName);\n return await queue.adapter.getJob(queueName, jobId);\n }\n\n /**\n * Get jobs by status\n */\n async getJobs(\n queueName: string,\n status?: 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused',\n start: number = 0,\n end: number = -1\n ): Promise<Job[]> {\n const queue = this.getQueue(queueName);\n return await queue.adapter.getJobs(queueName, status, start, end);\n }\n\n /**\n * Remove a job\n */\n async removeJob(queueName: string, jobId: string): Promise<void> {\n const queue = this.getQueue(queueName);\n await queue.adapter.removeJob(queueName, jobId);\n\n this.emitEvent('queue:job:removed', {\n queueName,\n jobId,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Retry a failed job\n */\n async retryJob(queueName: string, jobId: string): Promise<void> {\n const queue = this.getQueue(queueName);\n await queue.adapter.retryJob(queueName, jobId);\n }\n\n /**\n * Pause a queue\n */\n async pauseQueue(queueName: string): Promise<void> {\n const queue = this.getQueue(queueName);\n await queue.adapter.pauseQueue(queueName);\n\n this.emitEvent('queue:paused', {\n queueName,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Resume a queue\n */\n async resumeQueue(queueName: string): Promise<void> {\n const queue = this.getQueue(queueName);\n await queue.adapter.resumeQueue(queueName);\n\n this.emitEvent('queue:resumed', {\n queueName,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Clean old jobs from a queue\n */\n async cleanQueue(\n queueName: string,\n gracePeriod: number,\n status?: 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused'\n ): Promise<void> {\n const queue = this.getQueue(queueName);\n await queue.adapter.clean(queueName, gracePeriod, status);\n\n this.emitEvent('queue:cleaned', {\n queueName,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Obliterate a queue (delete all data)\n */\n async obliterateQueue(queueName: string): Promise<void> {\n const queue = this.getQueue(queueName);\n await queue.adapter.obliterate(queueName);\n\n this.emitEvent('queue:drained', {\n queueName,\n timestamp: Date.now(),\n });\n\n this.queues.delete(queueName);\n }\n\n /**\n * Get all registered queues\n */\n getQueueNames(): string[] {\n return Array.from(this.queues.keys());\n }\n\n /**\n * Check if a queue is registered\n */\n hasQueue(queueName: string): boolean {\n return this.queues.has(queueName);\n }\n\n /**\n * Shutdown all queues gracefully\n */\n async shutdown(): Promise<void> {\n if (this.isShuttingDown) {\n return;\n }\n\n this.isShuttingDown = true;\n\n // Close all adapters\n const shutdownPromises = Array.from(this.queues.values()).map(async queue => {\n try {\n await queue.adapter.close();\n } catch (error) {\n logger.error(`Error closing queue ${queue.name}: ${error}`);\n }\n });\n\n await Promise.all(shutdownPromises);\n\n this.queues.clear();\n this.isShuttingDown = false;\n }\n\n /**\n * Create an adapter instance based on options\n */\n private createAdapter(options: QueueOptions): IQueueAdapter {\n switch (options.adapter) {\n case 'memory':\n return new MemoryAdapter();\n\n case 'bull':\n return new BullAdapter(options.connection);\n\n case 'rabbitmq':\n return new RabbitMQAdapter(options.connection);\n\n case 'sqs':\n return new SQSAdapter(options.connection);\n\n case 'kafka':\n return new KafkaAdapter(options.connection);\n\n default:\n throw new Error(`Unknown queue adapter: ${options.adapter}`);\n }\n }\n\n /**\n * Get a registered queue\n */\n private getQueue(queueName: string): RegisteredQueue {\n const queue = this.queues.get(queueName);\n\n if (!queue) {\n throw new Error(\n `Queue \"${queueName}\" is not registered. Call app.queue('${queueName}', options) first.`\n );\n }\n\n return queue;\n }\n\n /**\n * Emit a queue event\n */\n private emitEvent(eventType: QueueEventType, payload: Partial<QueueEvent>): void {\n if (!this.eventEmitter) {\n return;\n }\n\n const event: QueueEvent = {\n queueName: payload.queueName || '',\n jobId: payload.jobId,\n job: payload.job,\n result: payload.result,\n error: payload.error,\n progress: payload.progress,\n timestamp: payload.timestamp || Date.now(),\n };\n\n this.eventEmitter.emit(eventType, event);\n }\n}\n"]}
|
|
@@ -107,10 +107,10 @@ export interface Job<T = any> {
|
|
|
107
107
|
progress: number;
|
|
108
108
|
attemptsMade: number;
|
|
109
109
|
timestamp: number;
|
|
110
|
-
processedOn?: number;
|
|
111
|
-
finishedOn?: number;
|
|
112
|
-
failedReason?: string;
|
|
113
|
-
stacktrace?: string[];
|
|
110
|
+
processedOn?: number | undefined;
|
|
111
|
+
finishedOn?: number | undefined;
|
|
112
|
+
failedReason?: string | undefined;
|
|
113
|
+
stacktrace?: string[] | undefined;
|
|
114
114
|
returnvalue?: any;
|
|
115
115
|
opts: JobOptions;
|
|
116
116
|
}
|
|
@@ -152,11 +152,11 @@ export type QueueEventType = 'queue:created' | 'queue:job:added' | 'queue:job:ac
|
|
|
152
152
|
*/
|
|
153
153
|
export interface QueueEvent {
|
|
154
154
|
queueName: string;
|
|
155
|
-
jobId?: string;
|
|
156
|
-
job?: Job;
|
|
155
|
+
jobId?: string | undefined;
|
|
156
|
+
job?: Job | undefined;
|
|
157
157
|
result?: any;
|
|
158
|
-
error?: Error;
|
|
159
|
-
progress?: number;
|
|
158
|
+
error?: Error | undefined;
|
|
159
|
+
progress?: number | undefined;
|
|
160
160
|
timestamp: number;
|
|
161
161
|
}
|
|
162
162
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/queue/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/queue/types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * Message Queue System - Type Definitions\n * Pure ESM module with comprehensive types for queue operations\n */\n\n/**\n * Supported queue adapter types\n */\nexport type QueueAdapterType = 'bull' | 'rabbitmq' | 'sqs' | 'kafka' | 'memory';\n\n/**\n * Job status states\n */\nexport type JobStatus = 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused';\n\n/**\n * Backoff strategy for job retries\n */\nexport type BackoffStrategy = 'fixed' | 'exponential' | 'linear';\n\n/**\n * Queue adapter connection configuration\n */\nexport interface QueueConnectionConfig {\n host?: string;\n port?: number;\n username?: string;\n password?: string;\n database?: number;\n brokers?: string[];\n groupId?: string;\n region?: string;\n queueUrl?: string;\n [key: string]: any;\n}\n\n/**\n * Retry configuration\n */\nexport interface RetryConfig {\n maxAttempts: number;\n backoff: BackoffStrategy;\n initialDelay: number;\n maxDelay?: number;\n}\n\n/**\n * Dead letter queue configuration\n */\nexport interface DeadLetterQueueConfig {\n enabled: boolean;\n maxRetries: number;\n queueName?: string;\n}\n\n/**\n * Job options for individual jobs\n */\nexport interface JobOptions {\n priority?: number;\n delay?: number;\n attempts?: number;\n backoff?: {\n type: BackoffStrategy;\n delay: number;\n };\n timeout?: number;\n removeOnComplete?: boolean | number;\n removeOnFail?: boolean | number;\n repeat?: {\n cron?: string;\n every?: number;\n limit?: number;\n endDate?: Date | string;\n };\n jobId?: string;\n [key: string]: any;\n}\n\n/**\n * Default job options for a queue\n */\nexport interface DefaultJobOptions {\n removeOnComplete?: boolean | number;\n removeOnFail?: boolean | number;\n attempts?: number;\n backoff?: {\n type: BackoffStrategy;\n delay: number;\n };\n}\n\n/**\n * Queue configuration options\n */\nexport interface QueueOptions {\n adapter: QueueAdapterType;\n connection?: QueueConnectionConfig;\n concurrency?: number;\n retry?: RetryConfig;\n deadLetterQueue?: DeadLetterQueueConfig;\n defaultJobOptions?: DefaultJobOptions;\n prefix?: string;\n limiter?: {\n max: number;\n duration: number;\n };\n}\n\n/**\n * Job data structure\n */\nexport interface Job<T = any> {\n id: string;\n name: string;\n data: T;\n progress: number;\n attemptsMade: number;\n timestamp: number;\n processedOn?: number | undefined;\n finishedOn?: number | undefined;\n failedReason?: string | undefined;\n stacktrace?: string[] | undefined;\n returnvalue?: any;\n opts: JobOptions;\n}\n\n/**\n * Job context with helper methods\n */\nexport interface JobContext<T = any> extends Job<T> {\n updateProgress(progress: number): Promise<void>;\n log(message: string): void;\n}\n\n/**\n * Job handler function\n */\nexport type JobHandler<T = any, R = any> = (job: JobContext<T>) => Promise<R>;\n\n/**\n * Bulk job data\n */\nexport interface BulkJobData<T = any> {\n data: T;\n options?: JobOptions;\n}\n\n/**\n * Queue metrics\n */\nexport interface QueueMetrics {\n waiting: number;\n active: number;\n completed: number;\n failed: number;\n delayed: number;\n paused: number;\n}\n\n/**\n * Queue event types\n */\nexport type QueueEventType =\n | 'queue:created'\n | 'queue:job:added'\n | 'queue:job:active'\n | 'queue:job:completed'\n | 'queue:job:failed'\n | 'queue:job:progress'\n | 'queue:job:stalled'\n | 'queue:job:removed'\n | 'queue:paused'\n | 'queue:resumed'\n | 'queue:cleaned'\n | 'queue:drained'\n | 'queue:error';\n\n/**\n * Queue event payload\n */\nexport interface QueueEvent {\n queueName: string;\n jobId?: string | undefined;\n job?: Job | undefined;\n result?: any;\n error?: Error | undefined;\n progress?: number | undefined;\n timestamp: number;\n}\n\n/**\n * Queue status\n */\nexport interface QueueStatus {\n name: string;\n adapter: QueueAdapterType;\n isPaused: boolean;\n metrics: QueueMetrics;\n workers: number;\n}\n\n/**\n * Base queue adapter interface\n */\nexport interface IQueueAdapter {\n name: string;\n isReady: boolean;\n\n initialize(): Promise<void>;\n\n addJob<T = any>(queueName: string, data: T, options?: JobOptions): Promise<Job<T>>;\n\n addBulkJobs<T = any>(queueName: string, jobs: BulkJobData<T>[]): Promise<Job<T>[]>;\n\n process<T = any, R = any>(\n queueName: string,\n concurrency: number,\n handler: JobHandler<T, R>\n ): Promise<void>;\n\n getJob(queueName: string, jobId: string): Promise<Job | null>;\n\n getJobs(queueName: string, status?: JobStatus, start?: number, end?: number): Promise<Job[]>;\n\n removeJob(queueName: string, jobId: string): Promise<void>;\n\n retryJob(queueName: string, jobId: string): Promise<void>;\n\n pauseQueue(queueName: string): Promise<void>;\n\n resumeQueue(queueName: string): Promise<void>;\n\n getMetrics(queueName: string): Promise<QueueMetrics>;\n\n clean(queueName: string, gracePeriod: number, status?: JobStatus): Promise<void>;\n\n obliterate(queueName: string): Promise<void>;\n\n close(): Promise<void>;\n}\n\n/**\n * Queue manager interface\n */\nexport interface IQueueManager {\n registerQueue(name: string, options: QueueOptions): Promise<void>;\n\n addToQueue<T = any>(queueName: string, data: T, options?: JobOptions): Promise<Job<T>>;\n\n addBulkToQueue<T = any>(queueName: string, jobs: BulkJobData<T>[]): Promise<Job<T>[]>;\n\n processQueue<T = any, R = any>(\n queueName: string,\n concurrencyOrHandler: number | JobHandler<T, R>,\n handler?: JobHandler<T, R>\n ): Promise<void>;\n\n getQueueStatus(queueName: string): Promise<QueueStatus>;\n\n pauseQueue(queueName: string): Promise<void>;\n\n resumeQueue(queueName: string): Promise<void>;\n\n shutdown(): Promise<void>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-integration.js","sourceRoot":"","sources":["../../../src/core/routing/app-integration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-integration.js","sourceRoot":"","sources":["../../../src/core/routing/app-integration.ts"],"names":[],"mappings":"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","sourcesContent":["// Integration layer for intelligent routing system with main Moro app\n// Provides both chainable and schema-first APIs\n//\n// NOTE: This is now a thin facade to UnifiedRouter\n// All routing logic has been consolidated in unified-router.ts\n\nimport {\n RouteBuilder,\n RouteSchema,\n CompiledRoute,\n createRoute,\n defineRoute,\n HttpMethod,\n} from './index.js';\nimport { HttpRequest, HttpResponse } from '../http/index.js';\nimport { UnifiedRouter } from './unified-router.js';\nimport { createFrameworkLogger } from '../logger/index.js';\n\nconst logger = createFrameworkLogger('AppIntegration');\n\n// ===== RouteRegistry (Public API - Backward Compatibility) =====\n\n/**\n * RouteRegistry - Facade to UnifiedRouter for backward compatibility\n * This was part of the public API, so we maintain it as an alias\n */\nexport class RouteRegistry {\n private router = UnifiedRouter.getInstance();\n\n register(_route: CompiledRoute): void {\n // Routes are automatically registered with UnifiedRouter when created\n // This is a no-op for API compatibility\n }\n\n async handleRequest(req: HttpRequest, res: HttpResponse): Promise<boolean> {\n return this.router.handleRequest(req, res) as Promise<boolean>;\n }\n\n getRoutes(): CompiledRoute[] {\n const routes = this.router.getAllRoutes();\n return routes.map(routeSchema => ({\n schema: routeSchema as RouteSchema,\n execute: async (_req: HttpRequest, _res: HttpResponse) => {\n throw new Error('CompiledRoute.execute() not used - routing handled by UnifiedRouter');\n },\n }));\n }\n}\n\n// Extended app interface with intelligent routing\nexport interface IntelligentApp {\n get(path: string): RouteBuilder;\n post(path: string): RouteBuilder;\n put(path: string): RouteBuilder;\n delete(path: string): RouteBuilder;\n patch(path: string): RouteBuilder;\n head(path: string): RouteBuilder;\n options(path: string): RouteBuilder;\n route(schema: RouteSchema): CompiledRoute;\n register(route: CompiledRoute): void;\n directRoute(\n method: string,\n path: string,\n handler: (req: any, res: any) => any | Promise<any>,\n options?: any\n ): void;\n}\n\n// Intelligent routing manager class\n// Now a thin facade to UnifiedRouter\nexport class IntelligentRoutingManager implements IntelligentApp {\n private router = UnifiedRouter.getInstance();\n\n // Chainable route methods - delegate to createRoute\n get(path: string): RouteBuilder {\n return this.createChainableRoute('GET', path);\n }\n\n post(path: string): RouteBuilder {\n return this.createChainableRoute('POST', path);\n }\n\n put(path: string): RouteBuilder {\n return this.createChainableRoute('PUT', path);\n }\n\n delete(path: string): RouteBuilder {\n return this.createChainableRoute('DELETE', path);\n }\n\n patch(path: string): RouteBuilder {\n return this.createChainableRoute('PATCH', path);\n }\n\n head(path: string): RouteBuilder {\n return this.createChainableRoute('HEAD', path);\n }\n\n options(path: string): RouteBuilder {\n return this.createChainableRoute('OPTIONS', path);\n }\n\n // Schema-first route method\n route(schema: RouteSchema): CompiledRoute {\n const compiledRoute = defineRoute(schema);\n this.register(compiledRoute);\n return compiledRoute;\n }\n\n // Register compiled route (no-op, already registered by defineRoute)\n register(_route: CompiledRoute): void {\n // Routes are automatically registered with UnifiedRouter in defineRoute()\n // This is just for API compatibility\n }\n\n // Handle incoming requests - delegates to UnifiedRouter\n async handleIntelligentRoute(req: HttpRequest, res: HttpResponse): Promise<boolean> {\n return this.router.handleRequest(req, res) as Promise<boolean>;\n }\n\n // Get all registered routes - fetch from UnifiedRouter\n getIntelligentRoutes(): CompiledRoute[] {\n // Convert UnifiedRouter's internal routes to CompiledRoute format for docs\n const routes = this.router.getAllRoutes();\n return routes.map(routeSchema => ({\n schema: routeSchema as RouteSchema, // Cast to match CompiledRoute interface\n execute: async (_req: HttpRequest, _res: HttpResponse) => {\n // Not used - routing handled by UnifiedRouter\n throw new Error('CompiledRoute.execute() not used - routing handled by UnifiedRouter');\n },\n }));\n }\n\n // Direct route method (deprecated but kept for compatibility)\n directRoute(\n method: string,\n path: string,\n handler: (req: any, res: any) => any | Promise<any>,\n options?: any\n ): void {\n logger.warn('Using deprecated direct route method', 'DirectRoute', {\n method,\n path,\n suggestion: 'Use chainable or schema-first API instead',\n });\n\n const schema: RouteSchema = {\n method: method.toUpperCase() as HttpMethod,\n path,\n handler: handler as any,\n };\n\n if (options?.validation) {\n schema.validation = { body: options.validation };\n }\n\n if (options?.rateLimit) {\n schema.rateLimit = options.rateLimit;\n }\n\n this.route(schema);\n }\n\n private createChainableRoute(method: HttpMethod, path: string): RouteBuilder {\n // Just create and return the builder - it auto-registers with UnifiedRouter\n return createRoute(method, path);\n }\n}\n\n// Convenience type for apps with intelligent routing\nexport type AppWithIntelligentRouting = IntelligentApp & {\n handleIntelligentRoute(req: HttpRequest, res: HttpResponse): Promise<boolean>;\n getIntelligentRoutes(): CompiledRoute[];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-router.js","sourceRoot":"","sources":["../../../src/core/routing/create-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-router.js","sourceRoot":"","sources":["../../../src/core/routing/create-router.ts"],"names":[],"mappings":"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","sourcesContent":["// Standalone router — collects route registrations and mounts them onto an app\n// at a given prefix. Equivalent semantics to Express's Router(), so migrations\n// from Express become a one-token swap: `express.Router()` → `createRouter()`.\n\nimport type { HttpRequest, HttpResponse, Middleware } from '../../types/http.js';\n\ntype RouteEntry = {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';\n path: string;\n middlewares: Middleware[];\n handler: (req: HttpRequest, res: HttpResponse) => any | Promise<any>;\n};\n\n/**\n * Standalone router. Collects routes and middlewares, then mounts them onto an\n * app at a given prefix via `app.use(prefix, router)` or `router.mount(app, prefix)`.\n *\n * @example\n * const r = createRouter();\n * r.get('/users', getUsers);\n * r.post('/users', createUser);\n * app.use('/api', r);\n */\nexport class MoroRouter {\n /** @internal — tag used by app.use(path, router) to detect router instances. */\n readonly _morojsRouter = true;\n private routes: RouteEntry[] = [];\n private globalMiddlewares: Middleware[] = [];\n\n use(...middleware: Middleware[]): this {\n for (const mw of middleware) this.globalMiddlewares.push(mw);\n return this;\n }\n\n get(path: string, ...handlers: any[]): this {\n return this.addRoute('GET', path, handlers);\n }\n post(path: string, ...handlers: any[]): this {\n return this.addRoute('POST', path, handlers);\n }\n put(path: string, ...handlers: any[]): this {\n return this.addRoute('PUT', path, handlers);\n }\n delete(path: string, ...handlers: any[]): this {\n return this.addRoute('DELETE', path, handlers);\n }\n patch(path: string, ...handlers: any[]): this {\n return this.addRoute('PATCH', path, handlers);\n }\n head(path: string, ...handlers: any[]): this {\n return this.addRoute('HEAD', path, handlers);\n }\n options(path: string, ...handlers: any[]): this {\n return this.addRoute('OPTIONS', path, handlers);\n }\n\n /** Register the same handler(s) for all HTTP methods on the path. */\n all(path: string, ...handlers: any[]): this {\n const methods: RouteEntry['method'][] = [\n 'GET',\n 'POST',\n 'PUT',\n 'DELETE',\n 'PATCH',\n 'HEAD',\n 'OPTIONS',\n ];\n for (const m of methods) this.addRoute(m, path, handlers);\n return this;\n }\n\n private addRoute(method: RouteEntry['method'], path: string, handlers: any[]): this {\n if (handlers.length === 0) {\n throw new Error(`${method} ${path}: handler is required`);\n }\n const handler = handlers[handlers.length - 1];\n const middlewares = handlers.slice(0, -1) as Middleware[];\n this.routes.push({ method, path, middlewares, handler });\n return this;\n }\n\n /** Mount all collected routes onto `app` at the given prefix. */\n mount(app: any, prefix = ''): void {\n const normalizedPrefix = prefix && !prefix.startsWith('/') ? `/${prefix}` : prefix;\n const cleanPrefix = normalizedPrefix.endsWith('/')\n ? normalizedPrefix.slice(0, -1)\n : normalizedPrefix;\n\n for (const route of this.routes) {\n const fullPath = cleanPrefix + (route.path.startsWith('/') ? route.path : `/${route.path}`);\n const combinedMiddleware = [...this.globalMiddlewares, ...route.middlewares];\n const method = route.method.toLowerCase() as\n | 'get'\n | 'post'\n | 'put'\n | 'delete'\n | 'patch'\n | 'head'\n | 'options';\n app[method](fullPath, route.handler, { middleware: combinedMiddleware });\n }\n }\n}\n\n/** Factory for a standalone router. */\nexport function createRouter(): MoroRouter {\n return new MoroRouter();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/routing/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/routing/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,oEAAoE;AACpE,EAAE;AACF,kEAAkE;AAClE,+DAA+D;AAI/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAwDpD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU;IACV,SAAS;IACT,WAAW;IACX,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,WAAW;IACX,OAAO;IACP,OAAO;IACP,SAAS;CACD,CAAC;AAuCX,iEAAiE;AAEjE;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAC1B,MAAM,CAAuB;IAC7B,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAE7C,YAAY,MAAkB,EAAE,IAAY;QAC1C,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM;YACN,IAAI;YACJ,UAAU,EAAE,EAAsB;SACnC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,MAAwB;QAC/B,oDAAoD;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAI,MAA2B;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAI,MAA2B;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAI,MAA2B;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAI,MAA2B;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAkB;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,MAAuB;QAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAmB;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAG,UAAwB;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAA8B,CAAC;QAC1D,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAe,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,UAAwB;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAA8B,CAAC;QAC1D,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAe,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,GAAG,UAAwB;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAA8B,CAAC;QAC1D,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAe,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAG,UAAwB;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,WAAmB;QAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAG,IAAc;QACnB,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAI,OAAwB;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAE9B,4BAA4B;QAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC;IACxD,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAe;IACE;IAA5B,YAA4B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;QAC7C,8BAA8B;QAC9B,aAAa,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAiB,EAAE,IAAkB;QACjD,yDAAyD;QACzD,kDAAkD;QAClD,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;IACJ,CAAC;CACF;AAED,yDAAyD;AAEzD,MAAM,UAAU,WAAW,CAAC,MAAkB,EAAE,IAAY;IAC1D,OAAO,IAAI,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,6CAA6C;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAuC,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC","sourcesContent":["// Intelligent Routing System for Moro Framework\n// Schema-first with automatic middleware ordering and chainable API\n//\n// NOTE: This file exports types and thin facades to UnifiedRouter\n// All routing logic has been consolidated in unified-router.ts\n\nimport { ValidationSchema } from '../validation/schema-interface.js';\nimport { HttpRequest, HttpResponse } from '../http/index.js';\nimport { UnifiedRouter } from './unified-router.js';\n\n// ===== TYPE EXPORTS (Keep all - used by app code) =====\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';\nexport type RouteHandler<T = any> = (req: HttpRequest, res: HttpResponse) => T | Promise<T>;\nexport type Middleware = (\n req: HttpRequest,\n res: HttpResponse,\n next: () => void\n) => void | Promise<void>;\n\nexport interface ValidationConfig {\n body?: ValidationSchema;\n query?: ValidationSchema;\n params?: ValidationSchema;\n headers?: ValidationSchema;\n}\n\nexport interface AuthConfig {\n roles?: string[];\n permissions?: string[];\n optional?: boolean;\n}\n\nexport interface RateLimitConfig {\n requests: number;\n window: number;\n skipSuccessfulRequests?: boolean;\n}\n\nexport interface CacheConfig {\n ttl: number;\n key?: string;\n tags?: string[];\n}\n\nexport interface MiddlewarePhases {\n before?: Middleware[];\n after?: Middleware[];\n transform?: Middleware[];\n}\n\nexport interface RouteSchema {\n method: HttpMethod;\n path: string;\n handler: RouteHandler;\n validation?: ValidationConfig;\n auth?: AuthConfig;\n rateLimit?: RateLimitConfig;\n cache?: CacheConfig;\n middleware?: MiddlewarePhases;\n description?: string;\n tags?: string[];\n}\n\nexport const EXECUTION_PHASES = [\n 'security',\n 'parsing',\n 'rateLimit',\n 'before',\n 'auth',\n 'validation',\n 'transform',\n 'cache',\n 'after',\n 'handler',\n] as const;\n\nexport type ExecutionPhase = (typeof EXECUTION_PHASES)[number];\n\nexport interface ValidatedRequest<T = any> extends HttpRequest {\n validatedBody?: T;\n validatedQuery?: any;\n validatedParams?: any;\n validatedHeaders?: any;\n user?: any;\n}\n\n// ===== ROUTE BUILDER INTERFACE (Public API) =====\n\nexport interface RouteBuilder {\n validate(config: ValidationConfig): RouteBuilder;\n body<T>(schema: ValidationSchema<T>): RouteBuilder;\n query<T>(schema: ValidationSchema<T>): RouteBuilder;\n params<T>(schema: ValidationSchema<T>): RouteBuilder;\n headers<T>(schema: ValidationSchema<T>): RouteBuilder;\n auth(config: AuthConfig): RouteBuilder;\n rateLimit(config: RateLimitConfig): RouteBuilder;\n cache(config: CacheConfig): RouteBuilder;\n before(...middleware: Middleware[]): RouteBuilder;\n after(...middleware: Middleware[]): RouteBuilder;\n transform(...middleware: Middleware[]): RouteBuilder;\n use(...middleware: Middleware[]): RouteBuilder;\n describe(description: string): RouteBuilder;\n tag(...tags: string[]): RouteBuilder;\n handler<T>(handler: RouteHandler<T>): void;\n}\n\n// ===== COMPILED ROUTE INTERFACE (Public API) =====\n\nexport interface CompiledRoute {\n schema: RouteSchema;\n execute(req: HttpRequest, res: HttpResponse): Promise<void>;\n}\n\n// ===== FACADE IMPLEMENTATIONS (Delegate to UnifiedRouter) =====\n\n/**\n * Thin facade to UnifiedRouter.RouteBuilder\n * Maintains backward compatibility while using optimized implementation\n */\nexport class IntelligentRouteBuilder implements RouteBuilder {\n private schema: Partial<RouteSchema>;\n private router = UnifiedRouter.getInstance();\n\n constructor(method: HttpMethod, path: string) {\n this.schema = {\n method,\n path,\n middleware: {} as MiddlewarePhases,\n };\n }\n\n validate(config: ValidationConfig): RouteBuilder {\n // Avoid spread operator - manually merge properties\n if (!this.schema.validation) {\n this.schema.validation = config;\n } else {\n if (config.body !== undefined) this.schema.validation.body = config.body;\n if (config.query !== undefined) this.schema.validation.query = config.query;\n if (config.params !== undefined) this.schema.validation.params = config.params;\n if (config.headers !== undefined) this.schema.validation.headers = config.headers;\n }\n return this;\n }\n\n body<T>(schema: ValidationSchema<T>): RouteBuilder {\n if (!this.schema.validation) this.schema.validation = {};\n this.schema.validation.body = schema;\n return this;\n }\n\n query<T>(schema: ValidationSchema<T>): RouteBuilder {\n if (!this.schema.validation) this.schema.validation = {};\n this.schema.validation.query = schema;\n return this;\n }\n\n params<T>(schema: ValidationSchema<T>): RouteBuilder {\n if (!this.schema.validation) this.schema.validation = {};\n this.schema.validation.params = schema;\n return this;\n }\n\n headers<T>(schema: ValidationSchema<T>): RouteBuilder {\n if (!this.schema.validation) this.schema.validation = {};\n this.schema.validation.headers = schema;\n return this;\n }\n\n auth(config: AuthConfig): RouteBuilder {\n this.schema.auth = config;\n return this;\n }\n\n rateLimit(config: RateLimitConfig): RouteBuilder {\n this.schema.rateLimit = config;\n return this;\n }\n\n cache(config: CacheConfig): RouteBuilder {\n this.schema.cache = config;\n return this;\n }\n\n before(...middleware: Middleware[]): RouteBuilder {\n if (!this.schema.middleware) this.schema.middleware = {};\n const phases = this.schema.middleware as MiddlewarePhases;\n // Avoid spread, use push for better performance\n if (!phases.before) phases.before = [];\n for (let i = 0; i < middleware.length; i++) {\n phases.before.push(middleware[i] as Middleware);\n }\n return this;\n }\n\n after(...middleware: Middleware[]): RouteBuilder {\n if (!this.schema.middleware) this.schema.middleware = {};\n const phases = this.schema.middleware as MiddlewarePhases;\n // Avoid spread, use push for better performance\n if (!phases.after) phases.after = [];\n for (let i = 0; i < middleware.length; i++) {\n phases.after.push(middleware[i] as Middleware);\n }\n return this;\n }\n\n transform(...middleware: Middleware[]): RouteBuilder {\n if (!this.schema.middleware) this.schema.middleware = {};\n const phases = this.schema.middleware as MiddlewarePhases;\n // Avoid spread, use push for better performance\n if (!phases.transform) phases.transform = [];\n for (let i = 0; i < middleware.length; i++) {\n phases.transform.push(middleware[i] as Middleware);\n }\n return this;\n }\n\n use(...middleware: Middleware[]): RouteBuilder {\n return this.after(...middleware);\n }\n\n describe(description: string): RouteBuilder {\n this.schema.description = description;\n return this;\n }\n\n tag(...tags: string[]): RouteBuilder {\n // Avoid spread, use push for better performance\n if (!this.schema.tags) this.schema.tags = [];\n for (let i = 0; i < tags.length; i++) {\n this.schema.tags.push(tags[i] as string);\n }\n return this;\n }\n\n handler<T>(handler: RouteHandler<T>): void {\n if (!handler) {\n throw new Error('Handler is required');\n }\n\n // Avoid spread operator - add handler directly\n this.schema.handler = handler;\n\n // Delegate to UnifiedRouter\n this.router.registerRoute(this.schema as RouteSchema);\n }\n}\n\n/**\n * Thin facade implementing CompiledRoute interface\n * Just stores schema for documentation purposes\n */\nexport class ExecutableRoute implements CompiledRoute {\n constructor(public readonly schema: RouteSchema) {\n // Register with UnifiedRouter\n UnifiedRouter.getInstance().registerRoute(schema);\n }\n\n async execute(_req: HttpRequest, _res: HttpResponse): Promise<void> {\n // This is never called - UnifiedRouter handles execution\n // But we implement it for interface compatibility\n throw new Error(\n 'ExecutableRoute.execute() should not be called directly - routing handled by UnifiedRouter'\n );\n }\n}\n\n// ===== FACTORY FUNCTIONS (Backward Compatibility) =====\n\nexport function createRoute(method: HttpMethod, path: string): RouteBuilder {\n return new IntelligentRouteBuilder(method, path);\n}\n\nexport function defineRoute(schema: RouteSchema): CompiledRoute {\n return new ExecutableRoute(schema);\n}\n\n// ===== RE-EXPORTS FROM UNIFIED ROUTER =====\n\nexport { UnifiedRouter } from './unified-router.js';\nexport { RouteBuilder as UnifiedRouteBuilder } from './unified-router.js';\nexport { PathMatcher, type CompiledPath, type MatchResult } from './path-matcher.js';\nexport { ObjectPoolManager, getPoolManager } from '../pooling/object-pool-manager.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-matcher.js","sourceRoot":"","sources":["../../../src/core/routing/path-matcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"path-matcher.js","sourceRoot":"","sources":["../../../src/core/routing/path-matcher.ts"],"names":[],"mappings":"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","sourcesContent":["// Shared Path Matching Utility with Caching\n// Replaces 6 different pathToRegex implementations across the codebase\n\nexport interface CompiledPath {\n pattern: RegExp | null;\n paramNames: string[];\n isStatic: boolean;\n path: string;\n segments: number;\n}\n\nexport interface MatchResult {\n params: Record<string, string>;\n}\n\n/**\n * LRU Cache implementation for compiled paths\n */\nclass LRUCache<K, V> {\n private cache = new Map<K, V>();\n private readonly maxSize: number;\n\n constructor(maxSize: number = 1000) {\n this.maxSize = maxSize;\n }\n\n get(key: K): V | undefined {\n const value = this.cache.get(key);\n if (value !== undefined) {\n // Move to end (most recently used)\n this.cache.delete(key);\n this.cache.set(key, value);\n }\n return value;\n }\n\n set(key: K, value: V): void {\n // Remove if exists (to update position)\n if (this.cache.has(key)) {\n this.cache.delete(key);\n }\n\n // Add to end\n this.cache.set(key, value);\n\n // Evict oldest if over capacity\n if (this.cache.size > this.maxSize) {\n const firstKey = this.cache.keys().next().value;\n if (firstKey !== undefined) {\n this.cache.delete(firstKey);\n }\n }\n }\n\n has(key: K): boolean {\n return this.cache.has(key);\n }\n\n clear(): void {\n this.cache.clear();\n }\n\n get size(): number {\n return this.cache.size;\n }\n}\n\n/**\n * PathMatcher - Single source of truth for path pattern compilation and matching\n */\nexport class PathMatcher {\n private static readonly cache = new LRUCache<string, CompiledPath>(1000);\n private static compilationCount = 0;\n private static cacheHits = 0;\n private static cacheMisses = 0;\n\n // PERFORMANCE: Cache segment counts for 500%+ speedup on repeated paths\n private static readonly segmentCountCache = new Map<string, number>();\n private static readonly MAX_SEGMENT_CACHE_SIZE = 1000;\n\n /**\n * Compile a path pattern into an efficient matching structure\n * Results are cached for performance\n */\n static compile(path: string): CompiledPath {\n // Check cache first\n const cached = this.cache.get(path);\n if (cached) {\n this.cacheHits++;\n return cached;\n }\n\n this.cacheMisses++;\n this.compilationCount++;\n\n // Compile the pattern\n const compiled = this.compileInternal(path);\n this.cache.set(path, compiled);\n return compiled;\n }\n\n /**\n * Internal compilation logic\n */\n private static compileInternal(path: string): CompiledPath {\n const paramNames: string[] = [];\n const isStatic = !path.includes(':') && !path.includes('*');\n\n // Calculate segment count for optimization using shared utility\n const segments = PathMatcher.countSegments(path);\n\n if (isStatic) {\n // No regex needed for static routes\n return {\n pattern: null,\n paramNames: [],\n isStatic: true,\n path,\n segments,\n };\n }\n\n // Convert parameterized routes to regex\n // Match :paramName and capture the parameter name\n const regexPath = path\n .replace(/\\/:([^/]+)/g, (match, paramName) => {\n paramNames.push(paramName);\n return '/([^/]+)';\n })\n .replace(/\\//g, '\\\\/');\n\n return {\n pattern: new RegExp(`^${regexPath}$`),\n paramNames,\n isStatic: false,\n path,\n segments,\n };\n }\n\n /**\n * Match a request path against a compiled pattern\n * Returns match result with extracted parameters, or null if no match\n */\n static match(compiledPath: CompiledPath, requestPath: string): MatchResult | null {\n // Path for static routes - simple string comparison\n if (compiledPath.isStatic) {\n return compiledPath.path === requestPath ? { params: {} } : null;\n }\n\n // Dynamic route - use regex matching\n if (!compiledPath.pattern) {\n return null;\n }\n\n const matches = requestPath.match(compiledPath.pattern);\n if (!matches) {\n return null;\n }\n\n // Extract params - optimized with for loop instead of forEach\n const params: Record<string, string> = {};\n const paramNames = compiledPath.paramNames;\n const paramCount = paramNames.length;\n for (let i = 0; i < paramCount; i++) {\n params[paramNames[i] as string] = matches[i + 1] as string;\n }\n\n return { params };\n }\n\n /**\n * Compile and match in one operation (convenience method)\n */\n static compileAndMatch(pathPattern: string, requestPath: string): MatchResult | null {\n const compiled = this.compile(pathPattern);\n return this.match(compiled, requestPath);\n }\n\n /**\n * Check if a path pattern is static (no parameters)\n */\n static isStatic(path: string): boolean {\n return !path.includes(':') && !path.includes('*');\n }\n\n /**\n * Count segments in a path (optimized with caching)\n */\n static countSegments(path: string): number {\n // Check cache first - most paths are repeated\n const cached = this.segmentCountCache.get(path);\n if (cached !== undefined) {\n return cached;\n }\n\n // Count segments manually (fast charCode comparison)\n let segmentCount = 0;\n const pathLen = path.length;\n let inSegment = false;\n\n for (let i = 0; i < pathLen; i++) {\n const char = path.charCodeAt(i);\n if (char === 47) {\n // '/' character\n inSegment = false;\n } else if (!inSegment) {\n inSegment = true;\n segmentCount++;\n }\n }\n\n // Cache result (limit cache size to prevent memory leaks)\n if (this.segmentCountCache.size < this.MAX_SEGMENT_CACHE_SIZE) {\n this.segmentCountCache.set(path, segmentCount);\n }\n\n return segmentCount;\n }\n\n /**\n * Get performance statistics\n */\n static getStats() {\n const totalRequests = this.cacheHits + this.cacheMisses;\n return {\n cacheSize: this.cache.size,\n cacheHits: this.cacheHits,\n cacheMisses: this.cacheMisses,\n hitRate: totalRequests > 0 ? this.cacheHits / totalRequests : 0,\n compilationCount: this.compilationCount,\n };\n }\n\n /**\n * Clear the cache (useful for testing)\n */\n static clearCache(): void {\n this.cache.clear();\n this.segmentCountCache.clear(); // Clear segment count cache too\n this.cacheHits = 0;\n this.cacheMisses = 0;\n }\n\n /**\n * Pre-compile multiple paths (cache warming)\n */\n static precompile(paths: string[]): void {\n const pathsLen = paths.length;\n for (let i = 0; i < pathsLen; i++) {\n this.compile(paths[i] as string);\n }\n }\n}\n\n/**\n * Legacy compatibility function - maps to PathMatcher.compile\n * @deprecated Use PathMatcher.compile instead\n */\nexport function pathToRegex(path: string): { pattern: RegExp; paramNames: string[] } {\n const compiled = PathMatcher.compile(path);\n return {\n pattern: compiled.pattern || new RegExp(`^${path.replace(/\\//g, '\\\\/')}$`),\n paramNames: compiled.paramNames,\n };\n}\n"]}
|