@zintrust/core 0.4.28 → 0.4.30
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/bin/z.js +0 -0
- package/bin/zin.js +0 -0
- package/bin/zintrust.js +0 -0
- package/bin/zt.js +0 -0
- package/package.json +78 -23
- package/src/cli/commands/D1ProxyCommand.d.ts.map +1 -1
- package/src/cli/commands/D1ProxyCommand.js +69 -9
- package/src/cli/commands/KvProxyCommand.d.ts.map +1 -1
- package/src/cli/commands/KvProxyCommand.js +69 -9
- package/src/cli/commands/NewCommand.d.ts.map +1 -1
- package/src/cli/commands/NewCommand.js +8 -28
- package/src/cli/scaffolding/GovernanceScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/GovernanceScaffolder.js +31 -4
- package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/ProjectScaffolder.js +31 -5
- package/src/cli/utils/DistPackager.d.ts +2 -2
- package/src/cli/utils/DistPackager.js +2 -2
- package/src/index.js +3 -3
- package/src/zintrust.plugins.js +1 -1
- package/app/Controllers/AuthController.d.ts +0 -10
- package/app/Controllers/AuthController.d.ts.map +0 -1
- package/app/Controllers/AuthController.js +0 -233
- package/app/Controllers/TestController.d.ts +0 -22
- package/app/Controllers/TestController.d.ts.map +0 -1
- package/app/Controllers/TestController.js +0 -188
- package/app/Controllers/UserController.d.ts +0 -9
- package/app/Controllers/UserController.d.ts.map +0 -1
- package/app/Controllers/UserController.js +0 -8
- package/app/Controllers/UserQueryBuilderController.d.ts +0 -16
- package/app/Controllers/UserQueryBuilderController.d.ts.map +0 -1
- package/app/Controllers/UserQueryBuilderController.js +0 -404
- package/app/Jobs/AdvancedEmailJobService.d.ts +0 -57
- package/app/Jobs/AdvancedEmailJobService.d.ts.map +0 -1
- package/app/Jobs/AdvancedEmailJobService.js +0 -185
- package/app/Jobs/EmailJobService.d.ts +0 -33
- package/app/Jobs/EmailJobService.d.ts.map +0 -1
- package/app/Jobs/EmailJobService.js +0 -113
- package/app/Middleware/AuthFailureResponder.d.ts +0 -3
- package/app/Middleware/AuthFailureResponder.d.ts.map +0 -1
- package/app/Middleware/AuthFailureResponder.js +0 -8
- package/app/Middleware/ProfilerMiddleware.d.ts +0 -12
- package/app/Middleware/ProfilerMiddleware.d.ts.map +0 -1
- package/app/Middleware/ProfilerMiddleware.js +0 -47
- package/app/Middleware/index.d.ts +0 -59
- package/app/Middleware/index.d.ts.map +0 -1
- package/app/Middleware/index.js +0 -216
- package/app/Models/Post.d.ts +0 -14
- package/app/Models/Post.d.ts.map +0 -1
- package/app/Models/Post.js +0 -27
- package/app/Models/User.d.ts +0 -14
- package/app/Models/User.d.ts.map +0 -1
- package/app/Models/User.js +0 -44
- package/app/Schedules/JobTracking.d.ts +0 -3
- package/app/Schedules/JobTracking.d.ts.map +0 -1
- package/app/Schedules/JobTracking.js +0 -13
- package/app/Schedules/index.d.ts +0 -2
- package/app/Schedules/index.d.ts.map +0 -1
- package/app/Schedules/index.js +0 -1
- package/app/Toolkit/Broadcast/sendBroadcast.d.ts +0 -6
- package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +0 -1
- package/app/Toolkit/Broadcast/sendBroadcast.js +0 -5
- package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +0 -6
- package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +0 -1
- package/app/Toolkit/Mail/sendWelcomeEmail.js +0 -20
- package/app/Toolkit/Notification/sendSlackNotification.d.ts +0 -8
- package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +0 -1
- package/app/Toolkit/Notification/sendSlackNotification.js +0 -5
- package/app/Toolkit/Notification/sendSms.d.ts +0 -6
- package/app/Toolkit/Notification/sendSms.d.ts.map +0 -1
- package/app/Toolkit/Notification/sendSms.js +0 -5
- package/app/Types/controller.d.ts +0 -44
- package/app/Types/controller.d.ts.map +0 -1
- package/app/Types/controller.js +0 -1
- package/app/Workers/AdvancEmailWorker.d.ts +0 -44
- package/app/Workers/AdvancEmailWorker.d.ts.map +0 -1
- package/app/Workers/AdvancEmailWorker.js +0 -192
- package/app/Workers/EmailWorker.d.ts +0 -39
- package/app/Workers/EmailWorker.d.ts.map +0 -1
- package/app/Workers/EmailWorker.js +0 -199
- package/app/Workers/TestWorker.d.ts +0 -16
- package/app/Workers/TestWorker.d.ts.map +0 -1
- package/app/Workers/TestWorker.js +0 -153
- package/build-manifest.json +0 -6410
- package/config/broadcast.d.ts +0 -38
- package/config/broadcast.d.ts.map +0 -1
- package/config/broadcast.js +0 -37
- package/config/cache.d.ts +0 -40
- package/config/cache.d.ts.map +0 -1
- package/config/cache.js +0 -39
- package/config/database.d.ts +0 -58
- package/config/database.d.ts.map +0 -1
- package/config/database.js +0 -65
- package/config/mail.d.ts +0 -51
- package/config/mail.d.ts.map +0 -1
- package/config/mail.js +0 -69
- package/config/middleware.d.ts +0 -21
- package/config/middleware.d.ts.map +0 -1
- package/config/middleware.js +0 -61
- package/config/notification.d.ts +0 -33
- package/config/notification.d.ts.map +0 -1
- package/config/notification.js +0 -33
- package/config/queue.d.ts +0 -55
- package/config/queue.d.ts.map +0 -1
- package/config/queue.js +0 -87
- package/config/storage.d.ts +0 -59
- package/config/storage.d.ts.map +0 -1
- package/config/storage.js +0 -59
- package/config/workers.d.ts +0 -54
- package/config/workers.d.ts.map +0 -1
- package/config/workers.js +0 -83
- package/database/factories/UserFactory.d.ts +0 -40
- package/database/factories/UserFactory.d.ts.map +0 -1
- package/database/factories/UserFactory.js +0 -99
- package/database/migrations/20260109074544_create_users_table.d.ts +0 -7
- package/database/migrations/20260109074544_create_users_table.d.ts.map +0 -1
- package/database/migrations/20260109074544_create_users_table.js +0 -21
- package/database/migrations/20260109144731_create_tasks_table.d.ts +0 -7
- package/database/migrations/20260109144731_create_tasks_table.d.ts.map +0 -1
- package/database/migrations/20260109144731_create_tasks_table.js +0 -19
- package/database/migrations/20260109144735_add_done_tasks_table.d.ts +0 -11
- package/database/migrations/20260109144735_add_done_tasks_table.d.ts.map +0 -1
- package/database/migrations/20260109144735_add_done_tasks_table.js +0 -25
- package/database/migrations/20260109150837_add_start_tasks_table.d.ts +0 -11
- package/database/migrations/20260109150837_add_start_tasks_table.d.ts.map +0 -1
- package/database/migrations/20260109150837_add_start_tasks_table.js +0 -22
- package/database/migrations/20260109152114_add_way_tasks_table.d.ts +0 -11
- package/database/migrations/20260109152114_add_way_tasks_table.d.ts.map +0 -1
- package/database/migrations/20260109152114_add_way_tasks_table.js +0 -22
- package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts +0 -7
- package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts.map +0 -1
- package/database/migrations/20260218121500_create_jwt_revocations_table.js +0 -22
- package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts +0 -11
- package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts.map +0 -1
- package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.js +0 -20
- package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts +0 -11
- package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts.map +0 -1
- package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.js +0 -20
- package/database/migrations/20260327112651_create_posts_table.d.ts +0 -11
- package/database/migrations/20260327112651_create_posts_table.d.ts.map +0 -1
- package/database/migrations/20260327112651_create_posts_table.js +0 -24
- package/database/seeders/DatabaseSeeder.d.ts +0 -5
- package/database/seeders/DatabaseSeeder.d.ts.map +0 -1
- package/database/seeders/DatabaseSeeder.js +0 -15
- package/database/seeders/UserSeeder.d.ts +0 -30
- package/database/seeders/UserSeeder.d.ts.map +0 -1
- package/database/seeders/UserSeeder.js +0 -97
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/packages/cache-redis/src/RedisProxyAdapter.d.ts +0 -6
- package/packages/cache-redis/src/RedisProxyAdapter.d.ts.map +0 -1
- package/packages/cache-redis/src/RedisProxyAdapter.js +0 -144
- package/packages/cache-redis/src/index.d.ts +0 -27
- package/packages/cache-redis/src/index.d.ts.map +0 -1
- package/packages/cache-redis/src/index.js +0 -153
- package/packages/db-d1/src/index.d.ts +0 -55
- package/packages/db-d1/src/index.d.ts.map +0 -1
- package/packages/db-d1/src/index.js +0 -118
- package/packages/db-d1/src/register.d.ts +0 -6
- package/packages/db-d1/src/register.d.ts.map +0 -1
- package/packages/db-d1/src/register.js +0 -8
- package/packages/db-mysql/src/common.d.ts +0 -7
- package/packages/db-mysql/src/common.d.ts.map +0 -1
- package/packages/db-mysql/src/common.js +0 -17
- package/packages/db-mysql/src/index.d.ts +0 -43
- package/packages/db-mysql/src/index.d.ts.map +0 -1
- package/packages/db-mysql/src/index.js +0 -265
- package/packages/db-mysql/src/register.d.ts +0 -6
- package/packages/db-mysql/src/register.d.ts.map +0 -1
- package/packages/db-mysql/src/register.js +0 -32
- package/packages/db-postgres/src/index.d.ts +0 -39
- package/packages/db-postgres/src/index.d.ts.map +0 -1
- package/packages/db-postgres/src/index.js +0 -179
- package/packages/db-postgres/src/register.d.ts +0 -6
- package/packages/db-postgres/src/register.d.ts.map +0 -1
- package/packages/db-postgres/src/register.js +0 -8
- package/packages/db-sqlite/src/index.d.ts +0 -9
- package/packages/db-sqlite/src/index.d.ts.map +0 -1
- package/packages/db-sqlite/src/index.js +0 -7
- package/packages/db-sqlite/src/register.d.ts +0 -6
- package/packages/db-sqlite/src/register.d.ts.map +0 -1
- package/packages/db-sqlite/src/register.js +0 -8
- package/packages/db-sqlserver/src/index.d.ts +0 -38
- package/packages/db-sqlserver/src/index.d.ts.map +0 -1
- package/packages/db-sqlserver/src/index.js +0 -73
- package/packages/db-sqlserver/src/register.d.ts +0 -6
- package/packages/db-sqlserver/src/register.d.ts.map +0 -1
- package/packages/db-sqlserver/src/register.js +0 -21
- package/packages/mail-sendgrid/src/register.d.ts +0 -6
- package/packages/mail-sendgrid/src/register.d.ts.map +0 -1
- package/packages/mail-sendgrid/src/register.js +0 -24
- package/packages/mail-smtp/src/register.d.ts +0 -6
- package/packages/mail-smtp/src/register.d.ts.map +0 -1
- package/packages/mail-smtp/src/register.js +0 -29
- package/packages/queue-monitor/src/QueueMonitoringService.d.ts +0 -35
- package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +0 -1
- package/packages/queue-monitor/src/QueueMonitoringService.js +0 -194
- package/packages/queue-monitor/src/connection.d.ts +0 -3
- package/packages/queue-monitor/src/connection.d.ts.map +0 -1
- package/packages/queue-monitor/src/connection.js +0 -1
- package/packages/queue-monitor/src/dashboard-ui.d.ts +0 -7
- package/packages/queue-monitor/src/dashboard-ui.d.ts.map +0 -1
- package/packages/queue-monitor/src/dashboard-ui.js +0 -997
- package/packages/queue-monitor/src/driver.d.ts +0 -15
- package/packages/queue-monitor/src/driver.d.ts.map +0 -1
- package/packages/queue-monitor/src/driver.js +0 -115
- package/packages/queue-monitor/src/index.d.ts +0 -71
- package/packages/queue-monitor/src/index.d.ts.map +0 -1
- package/packages/queue-monitor/src/index.js +0 -296
- package/packages/queue-monitor/src/metrics.d.ts +0 -27
- package/packages/queue-monitor/src/metrics.d.ts.map +0 -1
- package/packages/queue-monitor/src/metrics.js +0 -92
- package/packages/queue-monitor/src/worker.d.ts +0 -8
- package/packages/queue-monitor/src/worker.d.ts.map +0 -1
- package/packages/queue-monitor/src/worker.js +0 -35
- package/packages/queue-redis/src/BullMQRedisQueue.d.ts +0 -26
- package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +0 -1
- package/packages/queue-redis/src/BullMQRedisQueue.js +0 -465
- package/packages/queue-redis/src/HttpQueueDriver.d.ts +0 -18
- package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +0 -1
- package/packages/queue-redis/src/HttpQueueDriver.js +0 -249
- package/packages/queue-redis/src/QueueHttpGateway.d.ts +0 -16
- package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +0 -1
- package/packages/queue-redis/src/QueueHttpGateway.js +0 -217
- package/packages/queue-redis/src/RedisPublishClient.d.ts +0 -14
- package/packages/queue-redis/src/RedisPublishClient.d.ts.map +0 -1
- package/packages/queue-redis/src/RedisPublishClient.js +0 -251
- package/packages/queue-redis/src/index.d.ts +0 -12
- package/packages/queue-redis/src/index.d.ts.map +0 -1
- package/packages/queue-redis/src/index.js +0 -10
- package/packages/queue-redis/src/register.d.ts +0 -6
- package/packages/queue-redis/src/register.d.ts.map +0 -1
- package/packages/queue-redis/src/register.js +0 -21
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +0 -11
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +0 -1
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +0 -32
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +0 -11
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +0 -1
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +0 -46
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +0 -7
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +0 -1
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +0 -44
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +0 -7
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +0 -1
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +0 -104
- package/packages/workers/src/AnomalyDetection.d.ts +0 -107
- package/packages/workers/src/AnomalyDetection.d.ts.map +0 -1
- package/packages/workers/src/AnomalyDetection.js +0 -329
- package/packages/workers/src/AutoScaler.d.ts +0 -128
- package/packages/workers/src/AutoScaler.d.ts.map +0 -1
- package/packages/workers/src/AutoScaler.js +0 -425
- package/packages/workers/src/BroadcastWorker.d.ts +0 -29
- package/packages/workers/src/BroadcastWorker.d.ts.map +0 -1
- package/packages/workers/src/BroadcastWorker.js +0 -24
- package/packages/workers/src/CanaryController.d.ts +0 -104
- package/packages/workers/src/CanaryController.d.ts.map +0 -1
- package/packages/workers/src/CanaryController.js +0 -424
- package/packages/workers/src/ChaosEngineering.d.ts +0 -80
- package/packages/workers/src/ChaosEngineering.d.ts.map +0 -1
- package/packages/workers/src/ChaosEngineering.js +0 -229
- package/packages/workers/src/CircuitBreaker.d.ts +0 -107
- package/packages/workers/src/CircuitBreaker.d.ts.map +0 -1
- package/packages/workers/src/CircuitBreaker.js +0 -374
- package/packages/workers/src/ClusterLock.d.ts +0 -91
- package/packages/workers/src/ClusterLock.d.ts.map +0 -1
- package/packages/workers/src/ClusterLock.js +0 -397
- package/packages/workers/src/ComplianceManager.d.ts +0 -178
- package/packages/workers/src/ComplianceManager.d.ts.map +0 -1
- package/packages/workers/src/ComplianceManager.js +0 -556
- package/packages/workers/src/DatacenterOrchestrator.d.ts +0 -134
- package/packages/workers/src/DatacenterOrchestrator.d.ts.map +0 -1
- package/packages/workers/src/DatacenterOrchestrator.js +0 -404
- package/packages/workers/src/DeadLetterQueue.d.ts +0 -123
- package/packages/workers/src/DeadLetterQueue.d.ts.map +0 -1
- package/packages/workers/src/DeadLetterQueue.js +0 -544
- package/packages/workers/src/HealthMonitor.d.ts +0 -43
- package/packages/workers/src/HealthMonitor.d.ts.map +0 -1
- package/packages/workers/src/HealthMonitor.js +0 -312
- package/packages/workers/src/MultiQueueWorker.d.ts +0 -90
- package/packages/workers/src/MultiQueueWorker.d.ts.map +0 -1
- package/packages/workers/src/MultiQueueWorker.js +0 -282
- package/packages/workers/src/NotificationWorker.d.ts +0 -29
- package/packages/workers/src/NotificationWorker.d.ts.map +0 -1
- package/packages/workers/src/NotificationWorker.js +0 -23
- package/packages/workers/src/Observability.d.ts +0 -154
- package/packages/workers/src/Observability.d.ts.map +0 -1
- package/packages/workers/src/Observability.js +0 -538
- package/packages/workers/src/PluginManager.d.ts +0 -124
- package/packages/workers/src/PluginManager.d.ts.map +0 -1
- package/packages/workers/src/PluginManager.js +0 -392
- package/packages/workers/src/PriorityQueue.d.ts +0 -118
- package/packages/workers/src/PriorityQueue.d.ts.map +0 -1
- package/packages/workers/src/PriorityQueue.js +0 -276
- package/packages/workers/src/ResourceMonitor.d.ts +0 -165
- package/packages/workers/src/ResourceMonitor.d.ts.map +0 -1
- package/packages/workers/src/ResourceMonitor.js +0 -632
- package/packages/workers/src/SLAMonitor.d.ts +0 -111
- package/packages/workers/src/SLAMonitor.d.ts.map +0 -1
- package/packages/workers/src/SLAMonitor.js +0 -274
- package/packages/workers/src/WorkerFactory.d.ts +0 -226
- package/packages/workers/src/WorkerFactory.d.ts.map +0 -1
- package/packages/workers/src/WorkerFactory.js +0 -2551
- package/packages/workers/src/WorkerInit.d.ts +0 -103
- package/packages/workers/src/WorkerInit.d.ts.map +0 -1
- package/packages/workers/src/WorkerInit.js +0 -359
- package/packages/workers/src/WorkerMetrics.d.ts +0 -116
- package/packages/workers/src/WorkerMetrics.d.ts.map +0 -1
- package/packages/workers/src/WorkerMetrics.js +0 -570
- package/packages/workers/src/WorkerRegistry.d.ts +0 -152
- package/packages/workers/src/WorkerRegistry.d.ts.map +0 -1
- package/packages/workers/src/WorkerRegistry.js +0 -396
- package/packages/workers/src/WorkerShutdown.d.ts +0 -70
- package/packages/workers/src/WorkerShutdown.d.ts.map +0 -1
- package/packages/workers/src/WorkerShutdown.js +0 -185
- package/packages/workers/src/WorkerVersioning.d.ts +0 -108
- package/packages/workers/src/WorkerVersioning.d.ts.map +0 -1
- package/packages/workers/src/WorkerVersioning.js +0 -300
- package/packages/workers/src/config/workerConfig.d.ts +0 -5
- package/packages/workers/src/config/workerConfig.d.ts.map +0 -1
- package/packages/workers/src/config/workerConfig.js +0 -25
- package/packages/workers/src/createQueueWorker.d.ts +0 -31
- package/packages/workers/src/createQueueWorker.d.ts.map +0 -1
- package/packages/workers/src/createQueueWorker.js +0 -382
- package/packages/workers/src/dashboard/index.d.ts +0 -2
- package/packages/workers/src/dashboard/index.d.ts.map +0 -1
- package/packages/workers/src/dashboard/index.js +0 -1
- package/packages/workers/src/dashboard/types.d.ts +0 -123
- package/packages/workers/src/dashboard/types.d.ts.map +0 -1
- package/packages/workers/src/dashboard/types.js +0 -1
- package/packages/workers/src/dashboard/workers-api.d.ts +0 -5
- package/packages/workers/src/dashboard/workers-api.d.ts.map +0 -1
- package/packages/workers/src/dashboard/workers-api.js +0 -776
- package/packages/workers/src/helper/index.d.ts +0 -6
- package/packages/workers/src/helper/index.d.ts.map +0 -1
- package/packages/workers/src/helper/index.js +0 -10
- package/packages/workers/src/http/WorkerApiController.d.ts +0 -39
- package/packages/workers/src/http/WorkerApiController.d.ts.map +0 -1
- package/packages/workers/src/http/WorkerApiController.js +0 -313
- package/packages/workers/src/http/WorkerController.d.ts +0 -375
- package/packages/workers/src/http/WorkerController.d.ts.map +0 -1
- package/packages/workers/src/http/WorkerController.js +0 -1454
- package/packages/workers/src/http/WorkerMonitoringService.d.ts +0 -12
- package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +0 -1
- package/packages/workers/src/http/WorkerMonitoringService.js +0 -89
- package/packages/workers/src/http/middleware/CustomValidation.d.ts +0 -93
- package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/CustomValidation.js +0 -270
- package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +0 -4
- package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/DatacenterValidator.js +0 -94
- package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +0 -8
- package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/EditWorkerValidation.js +0 -56
- package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +0 -4
- package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/FeaturesValidator.js +0 -61
- package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +0 -32
- package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/InfrastructureValidator.js +0 -226
- package/packages/workers/src/http/middleware/OptionsValidator.d.ts +0 -4
- package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/OptionsValidator.js +0 -112
- package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +0 -8
- package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/PayloadSanitizer.js +0 -42
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +0 -4
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +0 -140
- package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +0 -4
- package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/QueueNameSanitizer.js +0 -45
- package/packages/workers/src/http/middleware/ValidateDriver.d.ts +0 -8
- package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/ValidateDriver.js +0 -20
- package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +0 -4
- package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/VersionSanitizer.js +0 -25
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +0 -4
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +0 -46
- package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +0 -28
- package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +0 -1
- package/packages/workers/src/http/middleware/WorkerValidationChain.js +0 -186
- package/packages/workers/src/index.d.ts +0 -47
- package/packages/workers/src/index.d.ts.map +0 -1
- package/packages/workers/src/index.js +0 -48
- package/packages/workers/src/register.d.ts +0 -10
- package/packages/workers/src/register.d.ts.map +0 -1
- package/packages/workers/src/register.js +0 -43
- package/packages/workers/src/routes/workers.d.ts +0 -13
- package/packages/workers/src/routes/workers.d.ts.map +0 -1
- package/packages/workers/src/routes/workers.js +0 -126
- package/packages/workers/src/storage/WorkerStore.d.ts +0 -52
- package/packages/workers/src/storage/WorkerStore.d.ts.map +0 -1
- package/packages/workers/src/storage/WorkerStore.js +0 -259
- package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +0 -47
- package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +0 -1
- package/packages/workers/src/telemetry/api/TelemetryAPI.js +0 -219
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +0 -18
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +0 -1
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +0 -140
- package/packages/workers/src/telemetry/components/AlertPanel.d.ts +0 -2
- package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +0 -1
- package/packages/workers/src/telemetry/components/AlertPanel.js +0 -13
- package/packages/workers/src/telemetry/components/CostTracking.d.ts +0 -2
- package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +0 -1
- package/packages/workers/src/telemetry/components/CostTracking.js +0 -14
- package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +0 -2
- package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +0 -1
- package/packages/workers/src/telemetry/components/ResourceUsageChart.js +0 -11
- package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +0 -2
- package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +0 -1
- package/packages/workers/src/telemetry/components/WorkerHealthChart.js +0 -11
- package/packages/workers/src/telemetry/index.d.ts +0 -16
- package/packages/workers/src/telemetry/index.d.ts.map +0 -1
- package/packages/workers/src/telemetry/index.js +0 -60
- package/packages/workers/src/telemetry/routes/dashboard.d.ts +0 -7
- package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +0 -1
- package/packages/workers/src/telemetry/routes/dashboard.js +0 -608
- package/packages/workers/src/type.d.ts +0 -77
- package/packages/workers/src/type.d.ts.map +0 -1
- package/packages/workers/src/type.js +0 -1
- package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +0 -5
- package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +0 -1
- package/packages/workers/src/ui/router/EmbeddedAssets.js +0 -13
- package/packages/workers/src/ui/router/ui.d.ts +0 -4
- package/packages/workers/src/ui/router/ui.d.ts.map +0 -1
- package/packages/workers/src/ui/router/ui.js +0 -208
- package/packages/workers/src/ui/types/worker-ui.d.ts +0 -230
- package/packages/workers/src/ui/types/worker-ui.d.ts.map +0 -1
- package/packages/workers/src/ui/types/worker-ui.js +0 -5
- package/routes/DirectTestRoutes.d.ts +0 -25
- package/routes/DirectTestRoutes.d.ts.map +0 -1
- package/routes/DirectTestRoutes.js +0 -480
- package/routes/TestRoutes.d.ts +0 -11
- package/routes/TestRoutes.d.ts.map +0 -1
- package/routes/TestRoutes.js +0 -25
- package/routes/api.d.ts +0 -7
- package/routes/api.d.ts.map +0 -1
- package/routes/api.js +0 -136
- package/routes/apiDev.d.ts +0 -7
- package/routes/apiDev.d.ts.map +0 -1
- package/routes/apiDev.js +0 -92
- package/routes/broadcast.d.ts +0 -9
- package/routes/broadcast.d.ts.map +0 -1
- package/routes/broadcast.js +0 -27
- package/routes/mail.d.ts +0 -12
- package/routes/mail.d.ts.map +0 -1
- package/routes/mail.js +0 -138
- package/routes/storage.d.ts +0 -4
- package/routes/storage.d.ts.map +0 -1
- package/routes/storage.js +0 -35
- package/start.d.ts +0 -1
- package/start.js +0 -1
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { EmailQueue } from '../Workers/EmailWorker.js';
|
|
2
|
-
import Logger from '../../src/config/logger.js';
|
|
3
|
-
export const EmailJobService = Object.freeze({
|
|
4
|
-
/**
|
|
5
|
-
* Send a welcome email using worker queue
|
|
6
|
-
*/
|
|
7
|
-
async sendWelcome(to, userName, _queueName = 'default') {
|
|
8
|
-
const payload = {
|
|
9
|
-
to,
|
|
10
|
-
subject: 'Welcome to ZinTrust!',
|
|
11
|
-
template: 'welcome',
|
|
12
|
-
templateData: {
|
|
13
|
-
name: userName,
|
|
14
|
-
action_url: 'https://app.zintrust.com/dashboard',
|
|
15
|
-
action_text: 'Get Started',
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
// Queue job for persistence and monitoring
|
|
19
|
-
const jobId = await EmailQueue.add(payload, _queueName);
|
|
20
|
-
// Process immediately for fast delivery
|
|
21
|
-
Logger.info('Welcome email job queued and waiting to be processed', { jobId, to, userName });
|
|
22
|
-
return jobId;
|
|
23
|
-
},
|
|
24
|
-
/**
|
|
25
|
-
* Send a password reset email using the worker queue
|
|
26
|
-
*/
|
|
27
|
-
async sendPasswordReset(to, resetToken) {
|
|
28
|
-
const payload = {
|
|
29
|
-
to,
|
|
30
|
-
subject: 'Reset Your Password',
|
|
31
|
-
template: 'password-reset',
|
|
32
|
-
templateData: {
|
|
33
|
-
name: to.split('@')[0], // Extract username from email
|
|
34
|
-
reset_link: `https://zintrust.com/reset-password?token=${resetToken}`,
|
|
35
|
-
action_text: 'Reset Password',
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
// Queue job for persistence and monitoring
|
|
39
|
-
const jobId = await EmailQueue.add(payload);
|
|
40
|
-
// Process immediately for fast delivery
|
|
41
|
-
Logger.info('Password reset email job queued and processed', { jobId, to });
|
|
42
|
-
return jobId;
|
|
43
|
-
},
|
|
44
|
-
/**
|
|
45
|
-
* Send a worker alert email using the worker queue
|
|
46
|
-
*/
|
|
47
|
-
async sendWorkerAlert(to, workerName, error, jobId) {
|
|
48
|
-
const payload = {
|
|
49
|
-
to,
|
|
50
|
-
subject: `Worker Alert: ${workerName}`,
|
|
51
|
-
template: 'worker-alert',
|
|
52
|
-
templateData: {
|
|
53
|
-
name: to.split('@')[0],
|
|
54
|
-
alert_level: 'ERROR',
|
|
55
|
-
alert_message: `Worker ${workerName} encountered an error`,
|
|
56
|
-
worker_name: workerName,
|
|
57
|
-
queue_name: 'default',
|
|
58
|
-
job_id: jobId ?? 'unknown',
|
|
59
|
-
error_message: error,
|
|
60
|
-
dashboard_url: 'https://app.zintrust.com/admin/workers',
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
const queueJobId = await EmailQueue.add(payload, 'worker-alerts');
|
|
64
|
-
Logger.info('Worker alert email job queued', { queueJobId, to, workerName });
|
|
65
|
-
return queueJobId;
|
|
66
|
-
},
|
|
67
|
-
/**
|
|
68
|
-
* Send a general notification email using the worker queue
|
|
69
|
-
*/
|
|
70
|
-
async sendGeneral(to, subject, message, options = {}) {
|
|
71
|
-
const payload = {
|
|
72
|
-
to,
|
|
73
|
-
subject,
|
|
74
|
-
template: 'general',
|
|
75
|
-
templateData: {
|
|
76
|
-
name: to.split('@')[0],
|
|
77
|
-
headline: subject,
|
|
78
|
-
message,
|
|
79
|
-
primary_color: options.primaryColor ?? '#3b82f6',
|
|
80
|
-
action_url: options.actionUrl ?? null,
|
|
81
|
-
action_text: options.actionText ?? 'View Details',
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
const jobId = await EmailQueue.add(payload);
|
|
85
|
-
Logger.info('General email job queued', { jobId, to, subject });
|
|
86
|
-
return jobId;
|
|
87
|
-
},
|
|
88
|
-
/**
|
|
89
|
-
* Send a custom email with any template
|
|
90
|
-
*/
|
|
91
|
-
async sendCustom(to, subject, template, templateData) {
|
|
92
|
-
const payload = {
|
|
93
|
-
to,
|
|
94
|
-
subject,
|
|
95
|
-
template,
|
|
96
|
-
templateData: {
|
|
97
|
-
...templateData,
|
|
98
|
-
name: Object.hasOwn(templateData, 'name') ? String(templateData['name']) : to.split('@')[0],
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
const jobId = await EmailQueue.add(payload);
|
|
102
|
-
Logger.info('Custom email job queued', { jobId, to, subject, template });
|
|
103
|
-
return jobId;
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
export default EmailJobService;
|
|
107
|
-
// Test samples pulled from docs/advanced-queue-patterns.md
|
|
108
|
-
// These are small excerpts used by unit tests to ensure docs content is available
|
|
109
|
-
export const testSamples = Object.freeze({
|
|
110
|
-
advancedQueuePatternsHeadline: 'Advanced Queue Patterns',
|
|
111
|
-
uniqueIdExample: "await Queue.enqueue('email', { to: 'user@example.com', template: 'welcome' }, { uniqueId: `welcome-email-${userId}` })",
|
|
112
|
-
releaseAfterExample: "deduplication: { id: 'daily-cleanup', ttl: 86400000, releaseAfter: 3600000 }",
|
|
113
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthFailureResponder.d.ts","sourceRoot":"","sources":["../../../app/Middleware/AuthFailureResponder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEzF,eAAO,MAAM,oBAAoB,EAAE,0BAOlC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Profiler Middleware
|
|
3
|
-
* Enables request profiling when ENABLE_PROFILER environment variable is set
|
|
4
|
-
*/
|
|
5
|
-
import type { Middleware } from '../../src/middleware/MiddlewareStack';
|
|
6
|
-
/**
|
|
7
|
-
* ProfilerMiddleware wraps request execution with performance profiling
|
|
8
|
-
* Enabled via ENABLE_PROFILER=true environment variable
|
|
9
|
-
* Attaches profiling report to response headers
|
|
10
|
-
*/
|
|
11
|
-
export declare const ProfilerMiddleware: Middleware;
|
|
12
|
-
//# sourceMappingURL=ProfilerMiddleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProfilerMiddleware.d.ts","sourceRoot":"","sources":["../../../app/Middleware/ProfilerMiddleware.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAwChC,CAAC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck - Example middleware - WIP
|
|
2
|
-
/**
|
|
3
|
-
* Profiler Middleware
|
|
4
|
-
* Enables request profiling when ENABLE_PROFILER environment variable is set
|
|
5
|
-
*/
|
|
6
|
-
import { Logger } from '../../src/config/logger.js';
|
|
7
|
-
import { RequestProfiler } from '../../src/profiling/RequestProfiler.js';
|
|
8
|
-
/**
|
|
9
|
-
* ProfilerMiddleware wraps request execution with performance profiling
|
|
10
|
-
* Enabled via ENABLE_PROFILER=true environment variable
|
|
11
|
-
* Attaches profiling report to response headers
|
|
12
|
-
*/
|
|
13
|
-
export const ProfilerMiddleware = async (req, res, next) => {
|
|
14
|
-
const isEnabled = process.env.ENABLE_PROFILER === 'true';
|
|
15
|
-
if (!isEnabled) {
|
|
16
|
-
// Pass through without profiling
|
|
17
|
-
await next();
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const profiler = RequestProfiler.create();
|
|
21
|
-
const queryLogger = profiler.getQueryLogger();
|
|
22
|
-
// Set up query logging if database is available
|
|
23
|
-
const db = req.context.db;
|
|
24
|
-
if (db !== undefined && db !== null && typeof db.onAfterQuery === 'function') {
|
|
25
|
-
db.onAfterQuery((sql, params, duration) => {
|
|
26
|
-
queryLogger.logQuery(sql, params, duration, 'middleware-profiling');
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
// Capture request execution
|
|
30
|
-
const profile = await profiler.captureRequest(async () => next());
|
|
31
|
-
// Attach profile to response
|
|
32
|
-
res.locals.profile = profile;
|
|
33
|
-
// Add profiling report to response header
|
|
34
|
-
try {
|
|
35
|
-
const report = profiler.generateReport(profile);
|
|
36
|
-
res.setHeader('X-Profiler-Report', Buffer.from(report).toString('base64'));
|
|
37
|
-
res.setHeader('X-Profiler-Queries', profile.queriesExecuted.toString());
|
|
38
|
-
res.setHeader('X-Profiler-Duration', profile.duration.toString());
|
|
39
|
-
if (profile.n1Patterns.length > 0) {
|
|
40
|
-
res.setHeader('X-Profiler-N1-Patterns', profile.n1Patterns.length.toString());
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
// Silently fail if header encoding fails
|
|
45
|
-
Logger.error('Failed to encode profiler report header:', error);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example Middleware
|
|
3
|
-
* Common middleware patterns for ZinTrust
|
|
4
|
-
*/
|
|
5
|
-
import type { IRequest } from '../../src/http/Request';
|
|
6
|
-
import type { IResponse } from '../../src/http/Response';
|
|
7
|
-
import type { CsrfTokenManagerType, ICsrfTokenManager } from '../../src/security/CsrfTokenManager';
|
|
8
|
-
import type { IJwtManager, JwtAlgorithm, JwtManagerType } from '../../src/security/JwtManager';
|
|
9
|
-
import type { SchemaType } from '../../src/validation/Validator';
|
|
10
|
-
type JwtManagerInput = IJwtManager | JwtManagerType;
|
|
11
|
-
type CsrfManagerInput = ICsrfTokenManager | CsrfTokenManagerType;
|
|
12
|
-
/**
|
|
13
|
-
* Authentication Middleware
|
|
14
|
-
* Verify user is authenticated
|
|
15
|
-
*/
|
|
16
|
-
export declare const authMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* CORS Middleware
|
|
19
|
-
* Handle CORS headers
|
|
20
|
-
*/
|
|
21
|
-
export declare const corsMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* JSON Request Middleware
|
|
24
|
-
* Parse JSON request bodies
|
|
25
|
-
*/
|
|
26
|
-
export declare const jsonMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Logging Middleware
|
|
29
|
-
* Log all requests
|
|
30
|
-
*/
|
|
31
|
-
export declare const loggingMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
32
|
-
export declare const rateLimitMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* Trailing Slash Middleware
|
|
35
|
-
* Redirect URLs with trailing slashes
|
|
36
|
-
*/
|
|
37
|
-
export declare const trailingSlashMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* JWT Authentication Middleware
|
|
40
|
-
* Verify JWT token and extract claims
|
|
41
|
-
*/
|
|
42
|
-
export declare const jwtMiddleware: (jwtManager: JwtManagerInput, algorithm?: JwtAlgorithm) => (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
43
|
-
export { authFailureResponder } from '../Middleware/AuthFailureResponder';
|
|
44
|
-
/**
|
|
45
|
-
* CSRF Protection Middleware
|
|
46
|
-
* Validate CSRF tokens for state-changing requests
|
|
47
|
-
*/
|
|
48
|
-
export declare const csrfMiddleware: (csrfManager: CsrfManagerInput) => (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Input Validation Middleware
|
|
51
|
-
* Validate request body against schema
|
|
52
|
-
*/
|
|
53
|
-
export declare const validationMiddleware: (schema: SchemaType) => (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
54
|
-
/**
|
|
55
|
-
* XSS Protection Middleware
|
|
56
|
-
* Sanitize and escape user input
|
|
57
|
-
*/
|
|
58
|
-
export declare const xssProtectionMiddleware: (req: IRequest, res: IResponse, next: () => Promise<void>) => Promise<void>;
|
|
59
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../app/Middleware/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtF,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGjE,KAAK,eAAe,GAAG,WAAW,GAAG,cAAc,CAAC;AACpD,KAAK,gBAAgB,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAajE;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KACxB,OAAO,CAAC,IAAI,CASd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KACxB,OAAO,CAAC,IAAI,CAWd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KACxB,OAAO,CAAC,IAAI,CAYd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KACxB,OAAO,CAAC,IAAI,CAYd,CAAC;AAQF,eAAO,MAAM,mBAAmB,GAC9B,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KACxB,OAAO,CAAC,IAAI,CAsBd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KACxB,OAAO,CAAC,IAAI,CAUd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,YAAY,eAAe,EAAE,YAAW,YAAsB,MAC5E,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,IAAI,CAgCtF,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,aAAa,gBAAgB,MAC5C,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,IAAI,CAmCtF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,UAAU,MACvC,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,IAAI,CAwBtF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,KACxB,OAAO,CAAC,IAAI,CAiBd,CAAC"}
|
package/app/Middleware/index.js
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example Middleware
|
|
3
|
-
* Common middleware patterns for ZinTrust
|
|
4
|
-
*/
|
|
5
|
-
import { Logger } from '../../src/config/logger.js';
|
|
6
|
-
import { JwtSessions } from '../../src/security/JwtSessions.js';
|
|
7
|
-
import { XssProtection } from '../../src/security/XssProtection.js';
|
|
8
|
-
import { Validator } from '../../src/validation/Validator.js';
|
|
9
|
-
const resolveJwtManager = (jwtManager) => 'verify' in jwtManager ? jwtManager : jwtManager.create();
|
|
10
|
-
const resolveCsrfManager = (csrfManager) => 'validateToken' in csrfManager ? csrfManager : csrfManager.create();
|
|
11
|
-
const resolveSchema = (schema) => 'getRules' in schema ? schema : schema.create();
|
|
12
|
-
/**
|
|
13
|
-
* Authentication Middleware
|
|
14
|
-
* Verify user is authenticated
|
|
15
|
-
*/
|
|
16
|
-
export const authMiddleware = async (req, res, next) => {
|
|
17
|
-
const token = req.getHeader('authorization');
|
|
18
|
-
if (token === undefined || token === '') {
|
|
19
|
-
res.setStatus(401).json({ error: 'Unauthorized' });
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
await next();
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* CORS Middleware
|
|
26
|
-
* Handle CORS headers
|
|
27
|
-
*/
|
|
28
|
-
export const corsMiddleware = async (req, res, next) => {
|
|
29
|
-
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
30
|
-
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
|
|
31
|
-
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
|
|
32
|
-
if (req.getMethod() === 'OPTIONS') {
|
|
33
|
-
res.setStatus(200).send('');
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
await next();
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* JSON Request Middleware
|
|
40
|
-
* Parse JSON request bodies
|
|
41
|
-
*/
|
|
42
|
-
export const jsonMiddleware = async (req, res, next) => {
|
|
43
|
-
if (req.getMethod() === 'GET' || req.getMethod() === 'DELETE') {
|
|
44
|
-
await next();
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if (req.isJson() === false) {
|
|
48
|
-
res.setStatus(415).json({ error: 'Content-Type must be application/json' });
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
await next();
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Logging Middleware
|
|
55
|
-
* Log all requests
|
|
56
|
-
*/
|
|
57
|
-
export const loggingMiddleware = async (req, res, next) => {
|
|
58
|
-
const startTime = Date.now();
|
|
59
|
-
const method = req.getMethod();
|
|
60
|
-
const path = req.getPath();
|
|
61
|
-
Logger.info(`→ ${method} ${path}`);
|
|
62
|
-
await next();
|
|
63
|
-
const duration = Date.now() - startTime;
|
|
64
|
-
const status = res.getStatus();
|
|
65
|
-
Logger.info(`← ${status} ${method} ${path} (${duration}ms)`);
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Rate Limiting Middleware
|
|
69
|
-
* Simple in-memory rate limiting
|
|
70
|
-
*/
|
|
71
|
-
const requestCounts = new Map();
|
|
72
|
-
export const rateLimitMiddleware = async (req, res, next) => {
|
|
73
|
-
const ip = req.getRaw().socket.remoteAddress ?? 'unknown';
|
|
74
|
-
const now = Date.now();
|
|
75
|
-
const windowMs = 60 * 1000; // 1 minute
|
|
76
|
-
const maxRequests = 100;
|
|
77
|
-
if (requestCounts.has(ip) === false) {
|
|
78
|
-
requestCounts.set(ip, []);
|
|
79
|
-
}
|
|
80
|
-
const requests = requestCounts.get(ip) ?? [];
|
|
81
|
-
const recentRequests = requests.filter((time) => now - time < windowMs);
|
|
82
|
-
if (recentRequests.length >= maxRequests) {
|
|
83
|
-
res.setStatus(429).json({ error: 'Too many requests' });
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
recentRequests.push(now);
|
|
87
|
-
requestCounts.set(ip, recentRequests);
|
|
88
|
-
await next();
|
|
89
|
-
};
|
|
90
|
-
/**
|
|
91
|
-
* Trailing Slash Middleware
|
|
92
|
-
* Redirect URLs with trailing slashes
|
|
93
|
-
*/
|
|
94
|
-
export const trailingSlashMiddleware = async (req, res, next) => {
|
|
95
|
-
const path = req.getPath();
|
|
96
|
-
if (path.length > 1 && path.endsWith('/') === true) {
|
|
97
|
-
const withoutSlash = path.slice(0, -1);
|
|
98
|
-
res.redirect(withoutSlash, 301);
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
await next();
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* JWT Authentication Middleware
|
|
105
|
-
* Verify JWT token and extract claims
|
|
106
|
-
*/
|
|
107
|
-
export const jwtMiddleware = (jwtManager, algorithm = 'HS256') => {
|
|
108
|
-
return async (req, res, next) => {
|
|
109
|
-
const authHeader = req.getHeader('authorization');
|
|
110
|
-
if (authHeader === undefined || authHeader === '') {
|
|
111
|
-
res.setStatus(401).json({ error: 'Missing authorization header' });
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
const authHeaderStr = (Array.isArray(authHeader) ? authHeader[0] : authHeader).trim();
|
|
115
|
-
const [scheme, ...rest] = authHeaderStr.split(/\s+/);
|
|
116
|
-
const token = rest.join(' ').trim();
|
|
117
|
-
if (scheme.toLowerCase() !== 'bearer' || token === '') {
|
|
118
|
-
res.setStatus(401).json({ error: 'Invalid authorization header format' });
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
try {
|
|
122
|
-
if (!(await JwtSessions.isActive(token))) {
|
|
123
|
-
res.setStatus(401).json({ error: 'Invalid or expired token' });
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
const payload = resolveJwtManager(jwtManager).verify(token, algorithm);
|
|
127
|
-
// Store in request context (TypeScript allows dynamic properties)
|
|
128
|
-
req.user = payload;
|
|
129
|
-
await next();
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
Logger.error('JWT verification failed:', error);
|
|
133
|
-
res.setStatus(401).json({ error: 'Invalid or expired token' });
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
export { authFailureResponder } from '../Middleware/AuthFailureResponder.js';
|
|
138
|
-
/**
|
|
139
|
-
* CSRF Protection Middleware
|
|
140
|
-
* Validate CSRF tokens for state-changing requests
|
|
141
|
-
*/
|
|
142
|
-
export const csrfMiddleware = (csrfManager) => {
|
|
143
|
-
return async (req, res, next) => {
|
|
144
|
-
const method = req.getMethod();
|
|
145
|
-
// Only validate on state-changing requests
|
|
146
|
-
if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(method) === false) {
|
|
147
|
-
await next();
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
const sessionId = req.sessionId ?? req.getHeader('x-session-id');
|
|
151
|
-
if (sessionId === undefined || sessionId === '') {
|
|
152
|
-
res.setStatus(400).json({ error: 'Missing session ID' });
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
const csrfToken = req.getHeader('x-csrf-token');
|
|
156
|
-
if (csrfToken === undefined || csrfToken === '') {
|
|
157
|
-
res.setStatus(403).json({ error: 'Missing CSRF token' });
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
const isValid = await resolveCsrfManager(csrfManager).validateToken(String(sessionId), String(csrfToken));
|
|
161
|
-
if (isValid === false) {
|
|
162
|
-
res.setStatus(403).json({ error: 'Invalid or expired CSRF token' });
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
await next();
|
|
166
|
-
};
|
|
167
|
-
};
|
|
168
|
-
/**
|
|
169
|
-
* Input Validation Middleware
|
|
170
|
-
* Validate request body against schema
|
|
171
|
-
*/
|
|
172
|
-
export const validationMiddleware = (schema) => {
|
|
173
|
-
return async (req, res, next) => {
|
|
174
|
-
if (req.getMethod() === 'GET' || req.getMethod() === 'DELETE') {
|
|
175
|
-
await next();
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
try {
|
|
179
|
-
const body = req.body ?? {};
|
|
180
|
-
Validator.validate(body, resolveSchema(schema));
|
|
181
|
-
await next();
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
Logger.error('Validation error:', error);
|
|
185
|
-
const newError = error;
|
|
186
|
-
if (error !== undefined &&
|
|
187
|
-
'toObject' in newError &&
|
|
188
|
-
typeof newError.toObject === 'function') {
|
|
189
|
-
res.setStatus(422).json({ errors: newError.toObject() });
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
res.setStatus(400).json({ error: 'Invalid request body' });
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
};
|
|
197
|
-
/**
|
|
198
|
-
* XSS Protection Middleware
|
|
199
|
-
* Sanitize and escape user input
|
|
200
|
-
*/
|
|
201
|
-
export const xssProtectionMiddleware = async (req, res, next) => {
|
|
202
|
-
// Add XSS protection headers
|
|
203
|
-
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
204
|
-
res.setHeader('X-Frame-Options', 'DENY');
|
|
205
|
-
res.setHeader('X-XSS-Protection', '1; mode=block');
|
|
206
|
-
// Sanitize request body if present
|
|
207
|
-
const body = req.body;
|
|
208
|
-
if (body !== undefined && body !== null && typeof body === 'object') {
|
|
209
|
-
for (const [key, value] of Object.entries(body)) {
|
|
210
|
-
if (typeof value === 'string') {
|
|
211
|
-
body[key] = XssProtection.escape(value);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
await next();
|
|
216
|
-
};
|
package/app/Models/Post.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example Post Model
|
|
3
|
-
*/
|
|
4
|
-
import type { IRelationship } from '../../src/orm/Relationships';
|
|
5
|
-
import type { ModelConfig } from '../../src/orm/Model';
|
|
6
|
-
export declare const PostConfig: ModelConfig;
|
|
7
|
-
/**
|
|
8
|
-
* Post Model
|
|
9
|
-
* Refactored to Functional Object pattern
|
|
10
|
-
*/
|
|
11
|
-
export declare const Post: import("../../src/orm/Model").DefinedModel<{
|
|
12
|
-
readonly author: () => IRelationship;
|
|
13
|
-
}>;
|
|
14
|
-
//# sourceMappingURL=Post.d.ts.map
|
package/app/Models/Post.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Post.d.ts","sourceRoot":"","sources":["../../../app/Models/Post.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAU,WAAW,EAAE,MAAM,YAAY,CAAC;AAGtD,eAAO,MAAM,UAAU,EAAE,WASxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,IAAI;;EAOf,CAAC"}
|
package/app/Models/Post.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example Post Model
|
|
3
|
-
*/
|
|
4
|
-
import { User } from '../Models/User.js';
|
|
5
|
-
import { Model } from '../../src/orm/Model.js';
|
|
6
|
-
export const PostConfig = {
|
|
7
|
-
table: 'posts',
|
|
8
|
-
fillable: ['title', 'content', 'user_id'],
|
|
9
|
-
hidden: [],
|
|
10
|
-
timestamps: true,
|
|
11
|
-
casts: {
|
|
12
|
-
published_at: 'datetime',
|
|
13
|
-
is_published: 'boolean',
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Post Model
|
|
18
|
-
* Refactored to Functional Object pattern
|
|
19
|
-
*/
|
|
20
|
-
export const Post = Model.define(PostConfig, {
|
|
21
|
-
/**
|
|
22
|
-
* Get post's author
|
|
23
|
-
*/
|
|
24
|
-
author(model) {
|
|
25
|
-
return model.belongsTo(User);
|
|
26
|
-
},
|
|
27
|
-
});
|
package/app/Models/User.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User Model
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* User Model Definition
|
|
6
|
-
*/
|
|
7
|
-
export declare const User: import("../../src/orm/Model").DefinedModel<{
|
|
8
|
-
readonly profile: () => undefined;
|
|
9
|
-
readonly posts: () => import("../../src").IRelationship;
|
|
10
|
-
readonly isAdmin: () => boolean;
|
|
11
|
-
readonly getFullName: () => string;
|
|
12
|
-
}>;
|
|
13
|
-
export default User;
|
|
14
|
-
//# sourceMappingURL=User.d.ts.map
|
package/app/Models/User.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../app/Models/User.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;EAwChB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/app/Models/User.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* User Model
|
|
3
|
-
*/
|
|
4
|
-
import { Post } from '../Models/Post.js';
|
|
5
|
-
import { Model } from '../../src/orm/Model.js';
|
|
6
|
-
/**
|
|
7
|
-
* User Model Definition
|
|
8
|
-
*/
|
|
9
|
-
export const User = Model.define({
|
|
10
|
-
table: 'users',
|
|
11
|
-
fillable: ['name', 'email', 'password'],
|
|
12
|
-
hidden: ['password'],
|
|
13
|
-
timestamps: true,
|
|
14
|
-
casts: {
|
|
15
|
-
email_verified_at: 'datetime',
|
|
16
|
-
},
|
|
17
|
-
}, {
|
|
18
|
-
/**
|
|
19
|
-
* Get user's profile
|
|
20
|
-
*/
|
|
21
|
-
profile(_model) {
|
|
22
|
-
return undefined; // Placeholder
|
|
23
|
-
},
|
|
24
|
-
/**
|
|
25
|
-
* Get user's posts
|
|
26
|
-
*/
|
|
27
|
-
posts(model) {
|
|
28
|
-
return model.hasMany(Post);
|
|
29
|
-
},
|
|
30
|
-
/**
|
|
31
|
-
* Check if user is admin
|
|
32
|
-
*/
|
|
33
|
-
isAdmin(model) {
|
|
34
|
-
return model.getAttribute('is_admin') === 1;
|
|
35
|
-
},
|
|
36
|
-
/**
|
|
37
|
-
* Get user's full name
|
|
38
|
-
*/
|
|
39
|
-
getFullName(model) {
|
|
40
|
-
const name = model.getAttribute('name');
|
|
41
|
-
return typeof name === 'string' ? name : '';
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
export default User;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"JobTracking.d.ts","sourceRoot":"","sources":["../../../app/Schedules/JobTracking.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,0BAA0B,yCAMtB,CAAC;AAEX,eAAe,0BAA0B,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Env } from '../../src/config/env.js';
|
|
2
|
-
import Schedule from '../../src/scheduler/Schedule.js';
|
|
3
|
-
import { cleanupJobTrackingOnce } from '../../src/schedules/job-tracking-cleanup.js';
|
|
4
|
-
const enabled = Env.getBool('JOB_TRACKING_CLEANUP_ENABLED', false);
|
|
5
|
-
const intervalMs = Env.getInt('JOB_TRACKING_CLEANUP_INTERVAL_MS', 6 * 60 * 60 * 1000);
|
|
6
|
-
const JobTrackingCleanupSchedule = Schedule.define('jobTracking.cleanup', async () => {
|
|
7
|
-
await cleanupJobTrackingOnce();
|
|
8
|
-
})
|
|
9
|
-
.intervalMs(intervalMs)
|
|
10
|
-
.withoutOverlapping({ provider: Env.get('JOB_TRACKING_CLEANUP_LOCK_PROVIDER', 'redis') })
|
|
11
|
-
.enabledWhen(enabled)
|
|
12
|
-
.build();
|
|
13
|
-
export default JobTrackingCleanupSchedule;
|
package/app/Schedules/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../app/Schedules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/app/Schedules/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as jobTrackingCleanup } from '../Schedules/JobTracking.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sendBroadcast.d.ts","sourceRoot":"","sources":["../../../../app/Toolkit/Broadcast/sendBroadcast.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhG;;;;AAED,wBAAgD"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare function sendWelcomeEmail(to: string, name: string, attachmentDisk?: string, attachmentPath?: string): Promise<void>;
|
|
2
|
-
declare const _default: Readonly<{
|
|
3
|
-
sendWelcomeEmail: typeof sendWelcomeEmail;
|
|
4
|
-
}>;
|
|
5
|
-
export default _default;
|
|
6
|
-
//# sourceMappingURL=sendWelcomeEmail.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sendWelcomeEmail.d.ts","sourceRoot":"","sources":["../../../../app/Toolkit/Mail/sendWelcomeEmail.ts"],"names":[],"mappings":"AAEA,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAoBf;;;;AAED,wBAAmD"}
|