@zintrust/core 0.4.26 → 0.4.28
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/app/Controllers/AuthController.d.ts +10 -0
- package/app/Controllers/AuthController.d.ts.map +1 -0
- package/app/Controllers/AuthController.js +233 -0
- package/app/Controllers/TestController.d.ts +22 -0
- package/app/Controllers/TestController.d.ts.map +1 -0
- package/app/Controllers/TestController.js +188 -0
- package/app/Controllers/UserController.d.ts +9 -0
- package/app/Controllers/UserController.d.ts.map +1 -0
- package/app/Controllers/UserController.js +8 -0
- package/app/Controllers/UserQueryBuilderController.d.ts +16 -0
- package/app/Controllers/UserQueryBuilderController.d.ts.map +1 -0
- package/app/Controllers/UserQueryBuilderController.js +404 -0
- package/app/Jobs/AdvancedEmailJobService.d.ts +57 -0
- package/app/Jobs/AdvancedEmailJobService.d.ts.map +1 -0
- package/app/Jobs/AdvancedEmailJobService.js +185 -0
- package/app/Jobs/EmailJobService.d.ts +33 -0
- package/app/Jobs/EmailJobService.d.ts.map +1 -0
- package/app/Jobs/EmailJobService.js +113 -0
- package/app/Middleware/AuthFailureResponder.d.ts +3 -0
- package/app/Middleware/AuthFailureResponder.d.ts.map +1 -0
- package/app/Middleware/AuthFailureResponder.js +8 -0
- package/app/Middleware/ProfilerMiddleware.d.ts +12 -0
- package/app/Middleware/ProfilerMiddleware.d.ts.map +1 -0
- package/app/Middleware/ProfilerMiddleware.js +47 -0
- package/app/Middleware/index.d.ts +59 -0
- package/app/Middleware/index.d.ts.map +1 -0
- package/app/Middleware/index.js +216 -0
- package/app/Models/Post.d.ts +14 -0
- package/app/Models/Post.d.ts.map +1 -0
- package/app/Models/Post.js +27 -0
- package/app/Models/User.d.ts +14 -0
- package/app/Models/User.d.ts.map +1 -0
- package/app/Models/User.js +44 -0
- package/app/Schedules/JobTracking.d.ts +3 -0
- package/app/Schedules/JobTracking.d.ts.map +1 -0
- package/app/Schedules/JobTracking.js +13 -0
- package/app/Schedules/index.d.ts +2 -0
- package/app/Schedules/index.d.ts.map +1 -0
- package/app/Schedules/index.js +1 -0
- package/app/Toolkit/Broadcast/sendBroadcast.d.ts +6 -0
- package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +1 -0
- package/app/Toolkit/Broadcast/sendBroadcast.js +5 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +6 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +1 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.js +20 -0
- package/app/Toolkit/Notification/sendSlackNotification.d.ts +8 -0
- package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +1 -0
- package/app/Toolkit/Notification/sendSlackNotification.js +5 -0
- package/app/Toolkit/Notification/sendSms.d.ts +6 -0
- package/app/Toolkit/Notification/sendSms.d.ts.map +1 -0
- package/app/Toolkit/Notification/sendSms.js +5 -0
- package/app/Types/controller.d.ts +44 -0
- package/app/Types/controller.d.ts.map +1 -0
- package/app/Types/controller.js +1 -0
- package/app/Workers/AdvancEmailWorker.d.ts +44 -0
- package/app/Workers/AdvancEmailWorker.d.ts.map +1 -0
- package/app/Workers/AdvancEmailWorker.js +192 -0
- package/app/Workers/EmailWorker.d.ts +39 -0
- package/app/Workers/EmailWorker.d.ts.map +1 -0
- package/app/Workers/EmailWorker.js +199 -0
- package/app/Workers/TestWorker.d.ts +16 -0
- package/app/Workers/TestWorker.d.ts.map +1 -0
- package/app/Workers/TestWorker.js +153 -0
- 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/build-manifest.json +6410 -0
- package/config/broadcast.d.ts +38 -0
- package/config/broadcast.d.ts.map +1 -0
- package/config/broadcast.js +37 -0
- package/config/cache.d.ts +40 -0
- package/config/cache.d.ts.map +1 -0
- package/config/cache.js +39 -0
- package/config/database.d.ts +58 -0
- package/config/database.d.ts.map +1 -0
- package/config/database.js +65 -0
- package/config/mail.d.ts +51 -0
- package/config/mail.d.ts.map +1 -0
- package/config/mail.js +69 -0
- package/config/middleware.d.ts +21 -0
- package/config/middleware.d.ts.map +1 -0
- package/config/middleware.js +61 -0
- package/config/notification.d.ts +33 -0
- package/config/notification.d.ts.map +1 -0
- package/config/notification.js +33 -0
- package/config/queue.d.ts +55 -0
- package/config/queue.d.ts.map +1 -0
- package/config/queue.js +87 -0
- package/config/storage.d.ts +59 -0
- package/config/storage.d.ts.map +1 -0
- package/config/storage.js +59 -0
- package/config/workers.d.ts +54 -0
- package/config/workers.d.ts.map +1 -0
- package/config/workers.js +83 -0
- package/database/factories/UserFactory.d.ts +40 -0
- package/database/factories/UserFactory.d.ts.map +1 -0
- package/database/factories/UserFactory.js +99 -0
- package/database/migrations/20260109074544_create_users_table.d.ts +7 -0
- package/database/migrations/20260109074544_create_users_table.d.ts.map +1 -0
- package/database/migrations/20260109074544_create_users_table.js +21 -0
- package/database/migrations/20260109144731_create_tasks_table.d.ts +7 -0
- package/database/migrations/20260109144731_create_tasks_table.d.ts.map +1 -0
- package/database/migrations/20260109144731_create_tasks_table.js +19 -0
- package/database/migrations/20260109144735_add_done_tasks_table.d.ts +11 -0
- package/database/migrations/20260109144735_add_done_tasks_table.d.ts.map +1 -0
- package/database/migrations/20260109144735_add_done_tasks_table.js +25 -0
- package/database/migrations/20260109150837_add_start_tasks_table.d.ts +11 -0
- package/database/migrations/20260109150837_add_start_tasks_table.d.ts.map +1 -0
- package/database/migrations/20260109150837_add_start_tasks_table.js +22 -0
- package/database/migrations/20260109152114_add_way_tasks_table.d.ts +11 -0
- package/database/migrations/20260109152114_add_way_tasks_table.d.ts.map +1 -0
- package/database/migrations/20260109152114_add_way_tasks_table.js +22 -0
- package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts +7 -0
- package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts.map +1 -0
- package/database/migrations/20260218121500_create_jwt_revocations_table.js +22 -0
- package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts +11 -0
- package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts.map +1 -0
- package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.js +20 -0
- package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts +11 -0
- package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts.map +1 -0
- package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.js +20 -0
- package/database/migrations/20260327112651_create_posts_table.d.ts +11 -0
- package/database/migrations/20260327112651_create_posts_table.d.ts.map +1 -0
- package/database/migrations/20260327112651_create_posts_table.js +24 -0
- package/database/seeders/DatabaseSeeder.d.ts +5 -0
- package/database/seeders/DatabaseSeeder.d.ts.map +1 -0
- package/database/seeders/DatabaseSeeder.js +15 -0
- package/database/seeders/UserSeeder.d.ts +30 -0
- package/database/seeders/UserSeeder.d.ts.map +1 -0
- package/database/seeders/UserSeeder.js +97 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +27 -78
- package/packages/cache-redis/src/RedisProxyAdapter.d.ts +6 -0
- package/packages/cache-redis/src/RedisProxyAdapter.d.ts.map +1 -0
- package/packages/cache-redis/src/RedisProxyAdapter.js +144 -0
- package/packages/cache-redis/src/index.d.ts +27 -0
- package/packages/cache-redis/src/index.d.ts.map +1 -0
- package/packages/cache-redis/src/index.js +153 -0
- package/packages/db-d1/src/index.d.ts +55 -0
- package/packages/db-d1/src/index.d.ts.map +1 -0
- package/packages/db-d1/src/index.js +118 -0
- package/packages/db-d1/src/register.d.ts +6 -0
- package/packages/db-d1/src/register.d.ts.map +1 -0
- package/packages/db-d1/src/register.js +8 -0
- package/packages/db-mysql/src/common.d.ts +7 -0
- package/packages/db-mysql/src/common.d.ts.map +1 -0
- package/packages/db-mysql/src/common.js +17 -0
- package/packages/db-mysql/src/index.d.ts +43 -0
- package/packages/db-mysql/src/index.d.ts.map +1 -0
- package/packages/db-mysql/src/index.js +265 -0
- package/packages/db-mysql/src/register.d.ts +6 -0
- package/packages/db-mysql/src/register.d.ts.map +1 -0
- package/packages/db-mysql/src/register.js +32 -0
- package/packages/db-postgres/src/index.d.ts +39 -0
- package/packages/db-postgres/src/index.d.ts.map +1 -0
- package/packages/db-postgres/src/index.js +179 -0
- package/packages/db-postgres/src/register.d.ts +6 -0
- package/packages/db-postgres/src/register.d.ts.map +1 -0
- package/packages/db-postgres/src/register.js +8 -0
- package/packages/db-sqlite/src/index.d.ts +9 -0
- package/packages/db-sqlite/src/index.d.ts.map +1 -0
- package/packages/db-sqlite/src/index.js +7 -0
- package/packages/db-sqlite/src/register.d.ts +6 -0
- package/packages/db-sqlite/src/register.d.ts.map +1 -0
- package/packages/db-sqlite/src/register.js +8 -0
- package/packages/db-sqlserver/src/index.d.ts +38 -0
- package/packages/db-sqlserver/src/index.d.ts.map +1 -0
- package/packages/db-sqlserver/src/index.js +73 -0
- package/packages/db-sqlserver/src/register.d.ts +6 -0
- package/packages/db-sqlserver/src/register.d.ts.map +1 -0
- package/packages/db-sqlserver/src/register.js +21 -0
- package/packages/mail-sendgrid/src/register.d.ts +6 -0
- package/packages/mail-sendgrid/src/register.d.ts.map +1 -0
- package/packages/mail-sendgrid/src/register.js +24 -0
- package/packages/mail-smtp/src/register.d.ts +6 -0
- package/packages/mail-smtp/src/register.d.ts.map +1 -0
- package/packages/mail-smtp/src/register.js +29 -0
- package/packages/queue-monitor/src/QueueMonitoringService.d.ts +35 -0
- package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +1 -0
- package/packages/queue-monitor/src/QueueMonitoringService.js +194 -0
- package/packages/queue-monitor/src/connection.d.ts +3 -0
- package/packages/queue-monitor/src/connection.d.ts.map +1 -0
- package/packages/queue-monitor/src/connection.js +1 -0
- package/packages/queue-monitor/src/dashboard-ui.d.ts +7 -0
- package/packages/queue-monitor/src/dashboard-ui.d.ts.map +1 -0
- package/packages/queue-monitor/src/dashboard-ui.js +997 -0
- package/packages/queue-monitor/src/driver.d.ts +15 -0
- package/packages/queue-monitor/src/driver.d.ts.map +1 -0
- package/packages/queue-monitor/src/driver.js +115 -0
- package/packages/queue-monitor/src/index.d.ts +71 -0
- package/packages/queue-monitor/src/index.d.ts.map +1 -0
- package/packages/queue-monitor/src/index.js +296 -0
- package/packages/queue-monitor/src/metrics.d.ts +27 -0
- package/packages/queue-monitor/src/metrics.d.ts.map +1 -0
- package/packages/queue-monitor/src/metrics.js +92 -0
- package/packages/queue-monitor/src/worker.d.ts +8 -0
- package/packages/queue-monitor/src/worker.d.ts.map +1 -0
- package/packages/queue-monitor/src/worker.js +35 -0
- package/packages/queue-redis/src/BullMQRedisQueue.d.ts +26 -0
- package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +1 -0
- package/packages/queue-redis/src/BullMQRedisQueue.js +465 -0
- package/packages/queue-redis/src/HttpQueueDriver.d.ts +18 -0
- package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +1 -0
- package/packages/queue-redis/src/HttpQueueDriver.js +249 -0
- package/packages/queue-redis/src/QueueHttpGateway.d.ts +16 -0
- package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +1 -0
- package/packages/queue-redis/src/QueueHttpGateway.js +217 -0
- package/packages/queue-redis/src/RedisPublishClient.d.ts +14 -0
- package/packages/queue-redis/src/RedisPublishClient.d.ts.map +1 -0
- package/packages/queue-redis/src/RedisPublishClient.js +251 -0
- package/packages/queue-redis/src/index.d.ts +12 -0
- package/packages/queue-redis/src/index.d.ts.map +1 -0
- package/packages/queue-redis/src/index.js +10 -0
- package/packages/queue-redis/src/register.d.ts +6 -0
- package/packages/queue-redis/src/register.d.ts.map +1 -0
- package/packages/queue-redis/src/register.js +21 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +11 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +1 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +32 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +11 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +1 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +46 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +7 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +1 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +44 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +7 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +1 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +104 -0
- package/packages/workers/src/AnomalyDetection.d.ts +107 -0
- package/packages/workers/src/AnomalyDetection.d.ts.map +1 -0
- package/packages/workers/src/AnomalyDetection.js +329 -0
- package/packages/workers/src/AutoScaler.d.ts +128 -0
- package/packages/workers/src/AutoScaler.d.ts.map +1 -0
- package/packages/workers/src/AutoScaler.js +425 -0
- package/packages/workers/src/BroadcastWorker.d.ts +29 -0
- package/packages/workers/src/BroadcastWorker.d.ts.map +1 -0
- package/packages/workers/src/BroadcastWorker.js +24 -0
- package/packages/workers/src/CanaryController.d.ts +104 -0
- package/packages/workers/src/CanaryController.d.ts.map +1 -0
- package/packages/workers/src/CanaryController.js +424 -0
- package/packages/workers/src/ChaosEngineering.d.ts +80 -0
- package/packages/workers/src/ChaosEngineering.d.ts.map +1 -0
- package/packages/workers/src/ChaosEngineering.js +229 -0
- package/packages/workers/src/CircuitBreaker.d.ts +107 -0
- package/packages/workers/src/CircuitBreaker.d.ts.map +1 -0
- package/packages/workers/src/CircuitBreaker.js +374 -0
- package/packages/workers/src/ClusterLock.d.ts +91 -0
- package/packages/workers/src/ClusterLock.d.ts.map +1 -0
- package/packages/workers/src/ClusterLock.js +397 -0
- package/packages/workers/src/ComplianceManager.d.ts +178 -0
- package/packages/workers/src/ComplianceManager.d.ts.map +1 -0
- package/packages/workers/src/ComplianceManager.js +556 -0
- package/packages/workers/src/DatacenterOrchestrator.d.ts +134 -0
- package/packages/workers/src/DatacenterOrchestrator.d.ts.map +1 -0
- package/packages/workers/src/DatacenterOrchestrator.js +404 -0
- package/packages/workers/src/DeadLetterQueue.d.ts +123 -0
- package/packages/workers/src/DeadLetterQueue.d.ts.map +1 -0
- package/packages/workers/src/DeadLetterQueue.js +544 -0
- package/packages/workers/src/HealthMonitor.d.ts +43 -0
- package/packages/workers/src/HealthMonitor.d.ts.map +1 -0
- package/packages/workers/src/HealthMonitor.js +312 -0
- package/packages/workers/src/MultiQueueWorker.d.ts +90 -0
- package/packages/workers/src/MultiQueueWorker.d.ts.map +1 -0
- package/packages/workers/src/MultiQueueWorker.js +282 -0
- package/packages/workers/src/NotificationWorker.d.ts +29 -0
- package/packages/workers/src/NotificationWorker.d.ts.map +1 -0
- package/packages/workers/src/NotificationWorker.js +23 -0
- package/packages/workers/src/Observability.d.ts +154 -0
- package/packages/workers/src/Observability.d.ts.map +1 -0
- package/packages/workers/src/Observability.js +538 -0
- package/packages/workers/src/PluginManager.d.ts +124 -0
- package/packages/workers/src/PluginManager.d.ts.map +1 -0
- package/packages/workers/src/PluginManager.js +392 -0
- package/packages/workers/src/PriorityQueue.d.ts +118 -0
- package/packages/workers/src/PriorityQueue.d.ts.map +1 -0
- package/packages/workers/src/PriorityQueue.js +276 -0
- package/packages/workers/src/ResourceMonitor.d.ts +165 -0
- package/packages/workers/src/ResourceMonitor.d.ts.map +1 -0
- package/packages/workers/src/ResourceMonitor.js +632 -0
- package/packages/workers/src/SLAMonitor.d.ts +111 -0
- package/packages/workers/src/SLAMonitor.d.ts.map +1 -0
- package/packages/workers/src/SLAMonitor.js +274 -0
- package/packages/workers/src/WorkerFactory.d.ts +226 -0
- package/packages/workers/src/WorkerFactory.d.ts.map +1 -0
- package/packages/workers/src/WorkerFactory.js +2551 -0
- package/packages/workers/src/WorkerInit.d.ts +103 -0
- package/packages/workers/src/WorkerInit.d.ts.map +1 -0
- package/packages/workers/src/WorkerInit.js +359 -0
- package/packages/workers/src/WorkerMetrics.d.ts +116 -0
- package/packages/workers/src/WorkerMetrics.d.ts.map +1 -0
- package/packages/workers/src/WorkerMetrics.js +570 -0
- package/packages/workers/src/WorkerRegistry.d.ts +152 -0
- package/packages/workers/src/WorkerRegistry.d.ts.map +1 -0
- package/packages/workers/src/WorkerRegistry.js +396 -0
- package/packages/workers/src/WorkerShutdown.d.ts +70 -0
- package/packages/workers/src/WorkerShutdown.d.ts.map +1 -0
- package/packages/workers/src/WorkerShutdown.js +185 -0
- package/packages/workers/src/WorkerVersioning.d.ts +108 -0
- package/packages/workers/src/WorkerVersioning.d.ts.map +1 -0
- package/packages/workers/src/WorkerVersioning.js +300 -0
- package/packages/workers/src/config/workerConfig.d.ts +5 -0
- package/packages/workers/src/config/workerConfig.d.ts.map +1 -0
- package/packages/workers/src/config/workerConfig.js +25 -0
- package/packages/workers/src/createQueueWorker.d.ts +31 -0
- package/packages/workers/src/createQueueWorker.d.ts.map +1 -0
- package/packages/workers/src/createQueueWorker.js +382 -0
- package/packages/workers/src/dashboard/index.d.ts +2 -0
- package/packages/workers/src/dashboard/index.d.ts.map +1 -0
- package/packages/workers/src/dashboard/index.js +1 -0
- package/packages/workers/src/dashboard/types.d.ts +123 -0
- package/packages/workers/src/dashboard/types.d.ts.map +1 -0
- package/packages/workers/src/dashboard/types.js +1 -0
- package/packages/workers/src/dashboard/workers-api.d.ts +5 -0
- package/packages/workers/src/dashboard/workers-api.d.ts.map +1 -0
- package/packages/workers/src/dashboard/workers-api.js +776 -0
- package/packages/workers/src/helper/index.d.ts +6 -0
- package/packages/workers/src/helper/index.d.ts.map +1 -0
- package/packages/workers/src/helper/index.js +10 -0
- package/packages/workers/src/http/WorkerApiController.d.ts +39 -0
- package/packages/workers/src/http/WorkerApiController.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerApiController.js +313 -0
- package/packages/workers/src/http/WorkerController.d.ts +375 -0
- package/packages/workers/src/http/WorkerController.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerController.js +1454 -0
- package/packages/workers/src/http/WorkerMonitoringService.d.ts +12 -0
- package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerMonitoringService.js +89 -0
- package/packages/workers/src/http/middleware/CustomValidation.d.ts +93 -0
- package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/CustomValidation.js +270 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.js +94 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +8 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.js +56 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.js +61 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +32 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.js +226 -0
- package/packages/workers/src/http/middleware/OptionsValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/OptionsValidator.js +112 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +8 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.js +42 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +140 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.js +45 -0
- package/packages/workers/src/http/middleware/ValidateDriver.d.ts +8 -0
- package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/ValidateDriver.js +20 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.js +25 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +46 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +28 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.js +186 -0
- package/packages/workers/src/index.d.ts +47 -0
- package/packages/workers/src/index.d.ts.map +1 -0
- package/packages/workers/src/index.js +48 -0
- package/packages/workers/src/register.d.ts +10 -0
- package/packages/workers/src/register.d.ts.map +1 -0
- package/packages/workers/src/register.js +43 -0
- package/packages/workers/src/routes/workers.d.ts +13 -0
- package/packages/workers/src/routes/workers.d.ts.map +1 -0
- package/packages/workers/src/routes/workers.js +126 -0
- package/packages/workers/src/storage/WorkerStore.d.ts +52 -0
- package/packages/workers/src/storage/WorkerStore.d.ts.map +1 -0
- package/packages/workers/src/storage/WorkerStore.js +259 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +47 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +1 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.js +219 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +18 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +1 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +140 -0
- package/packages/workers/src/telemetry/components/AlertPanel.d.ts +2 -0
- package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/AlertPanel.js +13 -0
- package/packages/workers/src/telemetry/components/CostTracking.d.ts +2 -0
- package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/CostTracking.js +14 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +2 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.js +11 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +2 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.js +11 -0
- package/packages/workers/src/telemetry/index.d.ts +16 -0
- package/packages/workers/src/telemetry/index.d.ts.map +1 -0
- package/packages/workers/src/telemetry/index.js +60 -0
- package/packages/workers/src/telemetry/routes/dashboard.d.ts +7 -0
- package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +1 -0
- package/packages/workers/src/telemetry/routes/dashboard.js +608 -0
- package/packages/workers/src/type.d.ts +77 -0
- package/packages/workers/src/type.d.ts.map +1 -0
- package/packages/workers/src/type.js +1 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +5 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +1 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.js +13 -0
- package/packages/workers/src/ui/router/ui.d.ts +4 -0
- package/packages/workers/src/ui/router/ui.d.ts.map +1 -0
- package/packages/workers/src/ui/router/ui.js +208 -0
- package/packages/workers/src/ui/types/worker-ui.d.ts +230 -0
- package/packages/workers/src/ui/types/worker-ui.d.ts.map +1 -0
- package/packages/workers/src/ui/types/worker-ui.js +5 -0
- package/routes/DirectTestRoutes.d.ts +25 -0
- package/routes/DirectTestRoutes.d.ts.map +1 -0
- package/routes/DirectTestRoutes.js +480 -0
- package/routes/TestRoutes.d.ts +11 -0
- package/routes/TestRoutes.d.ts.map +1 -0
- package/routes/TestRoutes.js +25 -0
- package/routes/api.d.ts +7 -0
- package/routes/api.d.ts.map +1 -0
- package/routes/api.js +136 -0
- package/routes/apiDev.d.ts +7 -0
- package/routes/apiDev.d.ts.map +1 -0
- package/routes/apiDev.js +92 -0
- package/routes/broadcast.d.ts +9 -0
- package/routes/broadcast.d.ts.map +1 -0
- package/routes/broadcast.js +27 -0
- package/routes/mail.d.ts +12 -0
- package/routes/mail.d.ts.map +1 -0
- package/routes/mail.js +138 -0
- package/routes/storage.d.ts +4 -0
- package/routes/storage.d.ts.map +1 -0
- package/routes/storage.js +35 -0
- package/src/boot/bootstrap.js +5 -0
- package/src/cli/CLI.d.ts.map +1 -1
- package/src/cli/CLI.js +4 -0
- package/src/cli/commands/D1ProxyCommand.d.ts +6 -0
- package/src/cli/commands/D1ProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/D1ProxyCommand.js +170 -0
- package/src/cli/commands/InitContainerCommand.d.ts.map +1 -1
- package/src/cli/commands/InitContainerCommand.js +61 -23
- package/src/cli/commands/KvProxyCommand.d.ts +6 -0
- package/src/cli/commands/KvProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/KvProxyCommand.js +158 -0
- package/src/cli/commands/MigrateCommand.js +1 -1
- package/src/cli/commands/MigrateWorkerCommand.d.ts.map +1 -1
- package/src/cli/commands/MigrateWorkerCommand.js +8 -2
- package/src/cli/commands/ProxyCommand.d.ts.map +1 -1
- package/src/cli/commands/ProxyCommand.js +2 -0
- package/src/cli/commands/WorkerCommands.d.ts.map +1 -1
- package/src/cli/commands/WorkerCommands.js +47 -7
- package/src/cli/commands/index.d.ts +2 -0
- package/src/cli/commands/index.d.ts.map +1 -1
- package/src/cli/commands/index.js +2 -0
- package/src/cli/index.d.ts +2 -0
- package/src/cli/index.d.ts.map +1 -1
- package/src/cli/index.js +2 -0
- package/src/cli/scaffolding/GovernanceScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/GovernanceScaffolder.js +20 -3
- package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/ProjectScaffolder.js +13 -4
- package/src/cli/utils/DistPackager.d.ts +2 -2
- package/src/cli/utils/DistPackager.d.ts.map +1 -1
- package/src/cli/utils/DistPackager.js +9 -3
- package/src/index.js +3 -3
- package/src/proxy.d.ts +2 -0
- package/src/proxy.d.ts.map +1 -1
- package/src/proxy.js +2 -0
- package/src/runtime/WorkerProjectAutoImports.d.ts +14 -0
- package/src/runtime/WorkerProjectAutoImports.d.ts.map +1 -0
- package/src/runtime/WorkerProjectAutoImports.js +63 -0
- package/src/templates/project/basic/app/Workers/ExampleWorker.ts.tpl +17 -0
- package/src/templates/project/basic/package.json.tpl +1 -1
- package/src/templates/project/basic/src/zintrust.workers.ts.tpl +11 -0
- package/src/zintrust.comon.d.ts +9 -0
- package/src/zintrust.comon.d.ts.map +1 -0
- package/src/zintrust.comon.js +15 -0
- package/src/zintrust.plugins.d.ts +6 -3
- package/src/zintrust.plugins.d.ts.map +1 -1
- package/src/zintrust.plugins.js +27 -3
- package/start.d.ts +1 -0
- package/start.js +1 -0
|
@@ -6,14 +6,14 @@ import { join } from '../../node-singletons/path.js';
|
|
|
6
6
|
const DOCKER_COMPOSE_WORKERS_TEMPLATE = `name: zintrust-workers
|
|
7
7
|
|
|
8
8
|
services:
|
|
9
|
-
#
|
|
10
|
-
#
|
|
9
|
+
# Worker runtime service (Port 7772)
|
|
10
|
+
# Boots the full ZinTrust server so the worker pages stay reachable while workers auto-start.
|
|
11
11
|
workers-api:
|
|
12
|
-
image: \${WORKERS_IMAGE:-zintrust
|
|
12
|
+
image: \${WORKERS_IMAGE:-zintrust-workers-local:latest}
|
|
13
13
|
build:
|
|
14
14
|
context: .
|
|
15
|
-
dockerfile: Dockerfile
|
|
16
|
-
|
|
15
|
+
dockerfile: Dockerfile.workers
|
|
16
|
+
target: worker
|
|
17
17
|
environment:
|
|
18
18
|
# Runtime
|
|
19
19
|
- NODE_ENV=\${NODE_ENV:-development}
|
|
@@ -26,11 +26,10 @@ services:
|
|
|
26
26
|
- APP_KEY=\${APP_KEY}
|
|
27
27
|
- ENCRYPTION_CIPHER=\${ENCRYPTION_CIPHER:-aes-256-cbc}
|
|
28
28
|
- LOG_LEVEL=\${LOG_LEVEL:-info}
|
|
29
|
-
- ZINTRUST_PROJECT_ROOT=/app/dist
|
|
30
29
|
|
|
31
30
|
# Workers & Queue
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
- WORKER_ENABLED=\${WORKER_ENABLED:-true}
|
|
32
|
+
- WORKER_AUTO_START=\${WORKER_AUTO_START:-true}
|
|
34
33
|
- QUEUE_ENABLED=true
|
|
35
34
|
- QUEUE_MONITOR_ENABLED=\${QUEUE_MONITOR_ENABLED:-false}
|
|
36
35
|
- QUEUE_MONITOR_MIDDLEWARE=\${QUEUE_MONITOR_MIDDLEWARE:-}
|
|
@@ -97,22 +96,61 @@ services:
|
|
|
97
96
|
- '7772:7772'
|
|
98
97
|
|
|
99
98
|
`;
|
|
100
|
-
const DOCKERFILE_TEMPLATE = String.raw
|
|
99
|
+
const DOCKERFILE_TEMPLATE = String.raw `# Multi-stage worker overlay image.
|
|
100
|
+
#
|
|
101
|
+
# This compiles the local ZinTrust app first, then copies only the compiled worker-related
|
|
102
|
+
# artifacts onto the published zintrust/zintrust runtime image.
|
|
103
|
+
|
|
104
|
+
FROM node:20-alpine AS project-build
|
|
105
|
+
|
|
106
|
+
WORKDIR /project
|
|
107
|
+
|
|
108
|
+
ENV NPM_CONFIG_CACHE=/root/.npm
|
|
109
|
+
ENV NPM_CONFIG_PREFER_OFFLINE=true
|
|
110
|
+
|
|
111
|
+
RUN apk upgrade --no-cache \
|
|
112
|
+
&& apk add --no-cache g++ git make python3
|
|
113
|
+
|
|
114
|
+
COPY package.json package-lock.json ./
|
|
115
|
+
|
|
116
|
+
RUN --mount=type=cache,target=/root/.npm,id=zintrust-worker-overlay-npm-cache,sharing=locked \
|
|
117
|
+
npm config set fetch-retries 5 \
|
|
118
|
+
&& npm config set fetch-retry-mintimeout 20000 \
|
|
119
|
+
&& npm config set fetch-retry-maxtimeout 120000 \
|
|
120
|
+
&& npm ci
|
|
121
|
+
|
|
122
|
+
COPY . .
|
|
123
|
+
|
|
124
|
+
# Fresh projects always ship npm run build; do not depend on framework-internal build variants.
|
|
125
|
+
RUN --mount=type=cache,target=/root/.npm,id=zintrust-worker-overlay-npm-cache,sharing=locked npm run build
|
|
126
|
+
|
|
127
|
+
FROM project-build AS worker-overlay
|
|
128
|
+
|
|
129
|
+
RUN set -eu; \
|
|
130
|
+
overlay_root=/overlay; \
|
|
131
|
+
mkdir -p "$overlay_root/dist"; \
|
|
132
|
+
if [ -d /project/dist/app ]; then cp -R /project/dist/app "$overlay_root/dist/app"; fi; \
|
|
133
|
+
mkdir -p "$overlay_root/dist/src"; \
|
|
134
|
+
if [ -f /project/dist/src/zintrust.workers.js ]; then cp /project/dist/src/zintrust.workers.js "$overlay_root/dist/src/zintrust.workers.js"; fi; \
|
|
135
|
+
if [ -f /project/dist/src/zintrust.workers.js.map ]; then cp /project/dist/src/zintrust.workers.js.map "$overlay_root/dist/src/zintrust.workers.js.map"; fi
|
|
136
|
+
|
|
137
|
+
FROM zintrust/zintrust:latest AS runtime
|
|
101
138
|
|
|
102
139
|
WORKDIR /app
|
|
103
140
|
|
|
104
|
-
|
|
105
|
-
ENV PORT=7772
|
|
106
|
-
ENV HOST=0.0.0.0
|
|
141
|
+
COPY --from=worker-overlay --chown=nodejs:nodejs /overlay/dist/ /app/dist/
|
|
107
142
|
|
|
108
|
-
|
|
143
|
+
FROM runtime AS worker
|
|
109
144
|
|
|
110
|
-
|
|
111
|
-
|
|
145
|
+
ENV WORKER_ENABLED=true
|
|
146
|
+
ENV WORKER_AUTO_START=true
|
|
147
|
+
ENV QUEUE_ENABLED=true
|
|
148
|
+
ENV HOST=0.0.0.0
|
|
149
|
+
ENV PORT=7772
|
|
112
150
|
|
|
113
|
-
|
|
151
|
+
HEALTHCHECK NONE
|
|
114
152
|
|
|
115
|
-
CMD ["node", "dist/src/boot/bootstrap.js"]
|
|
153
|
+
CMD ["node", "--experimental-specifier-resolution=node", "dist/src/boot/bootstrap.js"]
|
|
116
154
|
`;
|
|
117
155
|
const backupSuffix = () => new Date().toISOString().replaceAll(/[:.]/g, '-');
|
|
118
156
|
const backupFileIfExists = (filePath) => {
|
|
@@ -138,19 +176,18 @@ async function writeDockerComposeFile(cwd) {
|
|
|
138
176
|
}
|
|
139
177
|
}
|
|
140
178
|
async function writeDockerfile(cwd) {
|
|
141
|
-
const dockerfilePath = join(cwd, 'Dockerfile');
|
|
179
|
+
const dockerfilePath = join(cwd, 'Dockerfile.workers');
|
|
142
180
|
let shouldWrite = true;
|
|
143
181
|
if (existsSync(dockerfilePath)) {
|
|
144
|
-
|
|
145
|
-
shouldWrite = await PromptHelper.confirm('Dockerfile already exists. Overwrite with standard worker configuration?', false);
|
|
182
|
+
shouldWrite = await PromptHelper.confirm('Dockerfile.workers already exists. Overwrite with the ZinTrust worker overlay image?', false);
|
|
146
183
|
}
|
|
147
184
|
if (shouldWrite) {
|
|
148
185
|
backupFileIfExists(dockerfilePath);
|
|
149
186
|
writeFileSync(dockerfilePath, DOCKERFILE_TEMPLATE);
|
|
150
|
-
Logger.info('✅ Created Dockerfile');
|
|
187
|
+
Logger.info('✅ Created Dockerfile.workers');
|
|
151
188
|
}
|
|
152
189
|
else {
|
|
153
|
-
Logger.info('Skipped Dockerfile');
|
|
190
|
+
Logger.info('Skipped Dockerfile.workers');
|
|
154
191
|
}
|
|
155
192
|
}
|
|
156
193
|
export const InitContainerCommand = Object.freeze({
|
|
@@ -165,7 +202,8 @@ export const InitContainerCommand = Object.freeze({
|
|
|
165
202
|
await writeDockerComposeFile(cwd);
|
|
166
203
|
await writeDockerfile(cwd);
|
|
167
204
|
Logger.info('✅ Container worker scaffolding complete.');
|
|
168
|
-
Logger.info('Run with: docker
|
|
205
|
+
Logger.info('Run with: docker compose -f docker-compose.workers.yml up');
|
|
206
|
+
Logger.info('Build worker runtime with: docker build -f Dockerfile.workers --target worker .');
|
|
169
207
|
await Promise.resolve();
|
|
170
208
|
},
|
|
171
209
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KvProxyCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/KvProxyCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA0KrE,eAAO,MAAM,cAAc;cACf,YAAY;EAmCtB,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { BaseCommand } from '../BaseCommand.js';
|
|
2
|
+
import { maybeRunProxyWatchMode } from '../commands/ProxyCommandUtils.js';
|
|
3
|
+
import { SpawnUtil } from '../utils/spawn.js';
|
|
4
|
+
import { Env } from '../../config/env.js';
|
|
5
|
+
import { Logger } from '../../config/logger.js';
|
|
6
|
+
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
7
|
+
import { isNonEmptyString } from '../../helper/index.js';
|
|
8
|
+
import { existsSync, readFileSync, writeFileSync } from '../../node-singletons/fs.js';
|
|
9
|
+
import { join } from '../../node-singletons/path.js';
|
|
10
|
+
const DEFAULT_CONFIG = 'wrangler.jsonc';
|
|
11
|
+
const DEFAULT_COMPATIBILITY_DATE = '2026-03-12';
|
|
12
|
+
const DEFAULT_BINDING = 'ZIN_KV';
|
|
13
|
+
const DEFAULT_NAMESPACE_ID = '<your-kv-namespace-id>';
|
|
14
|
+
const trimOption = (value) => {
|
|
15
|
+
if (!isNonEmptyString(value))
|
|
16
|
+
return undefined;
|
|
17
|
+
const trimmed = value.trim();
|
|
18
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
19
|
+
};
|
|
20
|
+
const resolveConfigPath = (raw) => trimOption(raw) ?? DEFAULT_CONFIG;
|
|
21
|
+
const findQuotedValue = (content, key) => {
|
|
22
|
+
const pattern = new RegExp(String.raw `"${key}"\s*:\s*"([^"]+)"`);
|
|
23
|
+
const match = pattern.exec(content);
|
|
24
|
+
return trimOption(match?.[1]);
|
|
25
|
+
};
|
|
26
|
+
const resolveConfigValues = (content, options) => {
|
|
27
|
+
const fileContent = content ?? '';
|
|
28
|
+
const namespaceId = trimOption(options.namespaceId) ??
|
|
29
|
+
trimOption(Env.get('KV_NAMESPACE_ID', '')) ??
|
|
30
|
+
findQuotedValue(fileContent, 'preview_id') ??
|
|
31
|
+
findQuotedValue(fileContent, 'id') ??
|
|
32
|
+
DEFAULT_NAMESPACE_ID;
|
|
33
|
+
return {
|
|
34
|
+
binding: trimOption(options.binding) ??
|
|
35
|
+
trimOption(Env.get('KV_NAMESPACE', '')) ??
|
|
36
|
+
findQuotedValue(fileContent, 'KV_NAMESPACE') ??
|
|
37
|
+
findQuotedValue(fileContent, 'binding') ??
|
|
38
|
+
DEFAULT_BINDING,
|
|
39
|
+
namespaceId,
|
|
40
|
+
previewId: trimOption(options.previewId) ??
|
|
41
|
+
trimOption(Env.get('KV_NAMESPACE_PREVIEW_ID', '')) ??
|
|
42
|
+
findQuotedValue(fileContent, 'preview_id') ??
|
|
43
|
+
namespaceId,
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
const renderKvProxyEnvBlock = (values) => {
|
|
47
|
+
return [
|
|
48
|
+
' "kv-proxy": {',
|
|
49
|
+
' "name": "zintrust-kv-proxy",',
|
|
50
|
+
' "main": "./src/proxy/kv/ZintrustKvProxy.ts",',
|
|
51
|
+
' "compatibility_flags": ["nodejs_compat"],',
|
|
52
|
+
` "compatibility_date": "${DEFAULT_COMPATIBILITY_DATE}",`,
|
|
53
|
+
' "vars": {',
|
|
54
|
+
` "KV_NAMESPACE": "${values.binding}",`,
|
|
55
|
+
' "NODE_ENV": "development"',
|
|
56
|
+
' },',
|
|
57
|
+
' "kv_namespaces": [',
|
|
58
|
+
' {',
|
|
59
|
+
` "binding": "${values.binding}",`,
|
|
60
|
+
` "id": "${values.namespaceId}",`,
|
|
61
|
+
` "preview_id": "${values.previewId}",`,
|
|
62
|
+
' "remote": false',
|
|
63
|
+
' }',
|
|
64
|
+
' ]',
|
|
65
|
+
' }',
|
|
66
|
+
].join('\n');
|
|
67
|
+
};
|
|
68
|
+
const renderDefaultWranglerConfig = (values) => {
|
|
69
|
+
return [
|
|
70
|
+
'{',
|
|
71
|
+
' "name": "zintrust-api",',
|
|
72
|
+
' "main": "./src/functions/cloudflare.ts",',
|
|
73
|
+
` "compatibility_date": "${DEFAULT_COMPATIBILITY_DATE}",`,
|
|
74
|
+
' "compatibility_flags": ["nodejs_compat"],',
|
|
75
|
+
' "env": {',
|
|
76
|
+
renderKvProxyEnvBlock(values),
|
|
77
|
+
' }',
|
|
78
|
+
'}',
|
|
79
|
+
'',
|
|
80
|
+
].join('\n');
|
|
81
|
+
};
|
|
82
|
+
const injectEnvBlock = (content, block) => {
|
|
83
|
+
if (/"kv-proxy"\s*:\s*\{/.test(content))
|
|
84
|
+
return content;
|
|
85
|
+
if (/"env"\s*:\s*\{\s*\}/m.test(content)) {
|
|
86
|
+
return content.replace(/"env"\s*:\s*\{\s*\}/m, `"env": {\n${block}\n }`);
|
|
87
|
+
}
|
|
88
|
+
if (/"env"\s*:\s*\{/m.test(content)) {
|
|
89
|
+
return content.replace(/"env"\s*:\s*\{/m, (match) => `${match}\n${block},`);
|
|
90
|
+
}
|
|
91
|
+
const closingIndex = content.lastIndexOf('}');
|
|
92
|
+
if (closingIndex < 0) {
|
|
93
|
+
throw ErrorFactory.createCliError('Invalid wrangler.jsonc: missing closing brace.');
|
|
94
|
+
}
|
|
95
|
+
const before = content.slice(0, closingIndex).trimEnd();
|
|
96
|
+
const suffix = before.endsWith('{') ? '\n' : ',\n';
|
|
97
|
+
return `${before}${suffix} "env": {\n${block}\n }\n}\n`;
|
|
98
|
+
};
|
|
99
|
+
const ensureWranglerConfig = (configPath, options) => {
|
|
100
|
+
if (!existsSync(configPath)) {
|
|
101
|
+
const values = resolveConfigValues(undefined, options);
|
|
102
|
+
writeFileSync(configPath, renderDefaultWranglerConfig(values), 'utf-8');
|
|
103
|
+
return { createdFile: true, insertedEnv: true, values };
|
|
104
|
+
}
|
|
105
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
106
|
+
const values = resolveConfigValues(content, options);
|
|
107
|
+
const next = injectEnvBlock(content, renderKvProxyEnvBlock(values));
|
|
108
|
+
if (next !== content) {
|
|
109
|
+
writeFileSync(configPath, next, 'utf-8');
|
|
110
|
+
return { createdFile: false, insertedEnv: true, values };
|
|
111
|
+
}
|
|
112
|
+
return { createdFile: false, insertedEnv: false, values };
|
|
113
|
+
};
|
|
114
|
+
const warnOnPlaceholderNamespaceId = (values) => {
|
|
115
|
+
if (values.namespaceId !== DEFAULT_NAMESPACE_ID)
|
|
116
|
+
return;
|
|
117
|
+
Logger.warn('Could not resolve a KV namespace id automatically. Update wrangler.jsonc or pass --namespace-id before relying on the generated kv-proxy environment.');
|
|
118
|
+
};
|
|
119
|
+
const addOptions = (command) => {
|
|
120
|
+
command.option('-c, --config <path>', 'Wrangler config file', DEFAULT_CONFIG);
|
|
121
|
+
command.option('--watch', 'Auto-restart proxy on file changes');
|
|
122
|
+
command.option('--binding <name>', 'KV binding name', DEFAULT_BINDING);
|
|
123
|
+
command.option('--namespace-id <id>', 'Cloudflare KV namespace id');
|
|
124
|
+
command.option('--preview-id <id>', 'Cloudflare KV preview namespace id');
|
|
125
|
+
};
|
|
126
|
+
export const KvProxyCommand = Object.freeze({
|
|
127
|
+
create() {
|
|
128
|
+
return BaseCommand.create({
|
|
129
|
+
name: 'proxy:kv',
|
|
130
|
+
aliases: ['kv:proxy'],
|
|
131
|
+
description: 'Start the local Cloudflare KV proxy Worker via Wrangler and scaffold env.kv-proxy in wrangler.jsonc when missing',
|
|
132
|
+
addOptions,
|
|
133
|
+
execute: async (options) => {
|
|
134
|
+
await maybeRunProxyWatchMode(options.watch);
|
|
135
|
+
const cwd = process.cwd();
|
|
136
|
+
const configPath = join(cwd, resolveConfigPath(options.config));
|
|
137
|
+
const result = ensureWranglerConfig(configPath, options);
|
|
138
|
+
if (result.createdFile) {
|
|
139
|
+
Logger.info(`Created ${configPath} with a default kv-proxy environment.`);
|
|
140
|
+
}
|
|
141
|
+
else if (result.insertedEnv) {
|
|
142
|
+
Logger.info(`Added env.kv-proxy to ${configPath}.`);
|
|
143
|
+
}
|
|
144
|
+
warnOnPlaceholderNamespaceId(result.values);
|
|
145
|
+
const exitCode = await SpawnUtil.spawnAndWait({
|
|
146
|
+
command: 'wrangler',
|
|
147
|
+
args: ['dev', '--config', configPath, '--env', 'kv-proxy'],
|
|
148
|
+
env: process.env,
|
|
149
|
+
forwardSignals: false,
|
|
150
|
+
});
|
|
151
|
+
if (exitCode !== 0) {
|
|
152
|
+
process.exit(exitCode);
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
export default KvProxyCommand;
|
|
@@ -215,7 +215,7 @@ const warnIfAdapterMissing = (cmd, conn) => {
|
|
|
215
215
|
if (conn.driver === 'mysql' && DatabaseAdapterRegistry.get('mysql') === undefined) {
|
|
216
216
|
cmd.warn('MySQL adapter is not installed/registered; migrations may not hit a real MySQL DB.');
|
|
217
217
|
cmd.warn('Install via `zin plugin install adapter:mysql` (or `zin add db:mysql`).');
|
|
218
|
-
cmd.debug('[debug] Expected a side-effect import in src/zintrust.plugins.ts like: import "
|
|
218
|
+
cmd.debug('[debug] Expected a side-effect import in src/zintrust.plugins.ts like: import "../../../packages/db-mysql/src/register";');
|
|
219
219
|
}
|
|
220
220
|
if (conn.driver === 'postgresql' && DatabaseAdapterRegistry.get('postgresql') === undefined) {
|
|
221
221
|
cmd.warn('PostgreSQL adapter is not installed/registered; migrations may not hit a real PostgreSQL DB.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrateWorkerCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/MigrateWorkerCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"MigrateWorkerCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/MigrateWorkerCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAuNrE,eAAO,MAAM,oBAAoB;cACrB,YAAY;EAUtB,CAAC"}
|
|
@@ -15,7 +15,12 @@ const isBuiltInDriver = (driver) => driver === 'sqlite' ||
|
|
|
15
15
|
driver === 'sqlserver' ||
|
|
16
16
|
driver === 'd1' ||
|
|
17
17
|
driver === 'd1-remote';
|
|
18
|
-
const getWorkerPersistenceConnectionName = () => {
|
|
18
|
+
const getWorkerPersistenceConnectionName = (optionValue) => {
|
|
19
|
+
if (typeof optionValue === 'string') {
|
|
20
|
+
const trimmed = optionValue.trim();
|
|
21
|
+
if (trimmed.length > 0)
|
|
22
|
+
return trimmed;
|
|
23
|
+
}
|
|
19
24
|
if (typeof process === 'undefined')
|
|
20
25
|
return 'default';
|
|
21
26
|
const raw = process.env?.['WORKER_PERSISTENCE_DB_CONNECTION'];
|
|
@@ -31,6 +36,7 @@ const addOptions = (command) => {
|
|
|
31
36
|
.option('--step <number>', 'Number of batches to rollback (use with --rollback)', '1')
|
|
32
37
|
.option('--force', 'Skip production confirmation (allow unsafe operations in production)')
|
|
33
38
|
.option('--all', 'Run migrations for all configured database connections')
|
|
39
|
+
.option('--connection <name>', 'Use a specific database connection for worker migrations')
|
|
34
40
|
.option('--no-interactive', 'Disable interactive prompts (useful for CI/CD)');
|
|
35
41
|
};
|
|
36
42
|
const getInteractive = (options) => options['interactive'] !== false;
|
|
@@ -137,7 +143,7 @@ const executeMigrateWorker = async (options, cmd) => {
|
|
|
137
143
|
}
|
|
138
144
|
}
|
|
139
145
|
else {
|
|
140
|
-
const selected = getWorkerPersistenceConnectionName();
|
|
146
|
+
const selected = getWorkerPersistenceConnectionName(options['connection']);
|
|
141
147
|
const hasSelected = selected.length > 0;
|
|
142
148
|
const connections = databaseConfig.connections;
|
|
143
149
|
const configured = hasSelected ? connections[selected] : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/ProxyCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMrE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0BAA0B,CAAC;AAClC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProxyCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/ProxyCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMrE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0BAA0B,CAAC;AAClC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AA2D9B,eAAO,MAAM,YAAY;cACb,YAAY;EAyBtB,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -10,6 +10,8 @@ import '../../proxy/postgres/register.js';
|
|
|
10
10
|
import '../../proxy/redis/register.js';
|
|
11
11
|
import '../../proxy/smtp/register.js';
|
|
12
12
|
const PROXY_TARGET_MAP = Object.freeze({
|
|
13
|
+
d1: 'proxy:d1',
|
|
14
|
+
kv: 'proxy:kv',
|
|
13
15
|
mysql: 'proxy:mysql',
|
|
14
16
|
my: 'proxy:mysql',
|
|
15
17
|
postgres: 'proxy:postgres',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerCommands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/WorkerCommands.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkerCommands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/WorkerCommands.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA0lBrD;;GAEG;AACH,eAAO,MAAM,cAAc;mCAtaS,YAAY;qCA4CV,YAAY;oCAiDb,YAAY;uCAqHT,YAAY;mCAyFhB,YAAY;sCAgCT,YAAY;sCAgCZ,YAAY;CAmElD,CAAC"}
|
|
@@ -7,14 +7,26 @@ import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
|
7
7
|
import { BaseCommand } from '../BaseCommand.js';
|
|
8
8
|
import { Env } from '../../config/env.js';
|
|
9
9
|
import { Logger } from '../../config/logger.js';
|
|
10
|
+
import { WorkerProjectAutoImports } from '../../runtime/WorkerProjectAutoImports.js';
|
|
10
11
|
import { loadWorkersModule as loadWorkersRuntimeModule } from '../../runtime/WorkersModule.js';
|
|
11
12
|
// Lazy initialization to prevent temporal dead zone issues
|
|
12
13
|
let WorkerFactory;
|
|
13
14
|
let WorkerRegistry;
|
|
14
15
|
let HealthMonitor;
|
|
15
16
|
let ResourceMonitor;
|
|
17
|
+
let workerProjectEntrypointAttempted = false;
|
|
18
|
+
const ensureProjectWorkerEntrypointLoaded = async () => {
|
|
19
|
+
if (workerProjectEntrypointAttempted)
|
|
20
|
+
return;
|
|
21
|
+
workerProjectEntrypointAttempted = true;
|
|
22
|
+
const result = await WorkerProjectAutoImports.tryImportProjectWorkerEntrypoint();
|
|
23
|
+
if (!result.ok && result.reason === 'import-failed') {
|
|
24
|
+
Logger.warn(`Project worker entrypoint import failed: ${result.errorMessage ?? 'Unknown error'}`);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
16
27
|
const loadWorkersModule = async () => {
|
|
17
28
|
try {
|
|
29
|
+
await ensureProjectWorkerEntrypointLoaded();
|
|
18
30
|
return (await loadWorkersRuntimeModule());
|
|
19
31
|
}
|
|
20
32
|
catch (error) {
|
|
@@ -232,6 +244,32 @@ const isRegisteredWorkerRunning = async (workerLike) => {
|
|
|
232
244
|
const isPaused = typeof pausedFn === 'function' ? pausedFn() : false;
|
|
233
245
|
return isRunning && !isPaused;
|
|
234
246
|
};
|
|
247
|
+
const resolveAutoStartWorkerNames = async (factory, workersModule) => {
|
|
248
|
+
const persistedRecords = await factory.listPersistedRecords();
|
|
249
|
+
const fileRecords = typeof factory.listFileBackedRecords === 'function'
|
|
250
|
+
? await factory.listFileBackedRecords()
|
|
251
|
+
: [];
|
|
252
|
+
if (typeof workersModule.selectAutoStartNames === 'function') {
|
|
253
|
+
return workersModule.selectAutoStartNames(persistedRecords, fileRecords, Logger.warn);
|
|
254
|
+
}
|
|
255
|
+
const persistedNames = persistedRecords
|
|
256
|
+
.filter((record) => record.activeStatus !== false && record.autoStart === true)
|
|
257
|
+
.map((record) => record.name);
|
|
258
|
+
if (persistedNames.length > 0) {
|
|
259
|
+
return { names: persistedNames, source: 'persisted' };
|
|
260
|
+
}
|
|
261
|
+
const seen = new Set();
|
|
262
|
+
const fileNames = [];
|
|
263
|
+
for (const record of fileRecords) {
|
|
264
|
+
if (record.activeStatus === false || record.autoStart !== true)
|
|
265
|
+
continue;
|
|
266
|
+
if (seen.has(record.name))
|
|
267
|
+
continue;
|
|
268
|
+
seen.add(record.name);
|
|
269
|
+
fileNames.push(record.name);
|
|
270
|
+
}
|
|
271
|
+
return { names: fileNames, source: fileNames.length > 0 ? 'file' : 'none' };
|
|
272
|
+
};
|
|
235
273
|
/**
|
|
236
274
|
* Worker Start All Command
|
|
237
275
|
*/
|
|
@@ -244,17 +282,19 @@ const createWorkerStartAllCommand = () => {
|
|
|
244
282
|
return;
|
|
245
283
|
}
|
|
246
284
|
const factory = await getWorkerFactory();
|
|
247
|
-
const
|
|
248
|
-
const
|
|
249
|
-
const workers = autoStartRecords.map((record) => record.name);
|
|
285
|
+
const workersModule = await loadWorkersModule();
|
|
286
|
+
const { names: workers, source } = await resolveAutoStartWorkerNames(factory, workersModule);
|
|
250
287
|
if (workers.length === 0) {
|
|
251
|
-
Logger.info('No auto-start eligible persisted workers found.');
|
|
288
|
+
Logger.info('No auto-start eligible persisted or file-backed workers found.');
|
|
252
289
|
return;
|
|
253
290
|
}
|
|
254
|
-
|
|
255
|
-
|
|
291
|
+
let eligibleWorkers = workers;
|
|
292
|
+
if (source === 'persisted') {
|
|
293
|
+
const discoveredWorkers = await pollForPersistedWorkers(factory);
|
|
294
|
+
eligibleWorkers = workers.filter((name) => discoveredWorkers.includes(name));
|
|
295
|
+
}
|
|
256
296
|
if (eligibleWorkers.length === 0) {
|
|
257
|
-
Logger.info('No auto-start eligible workers are currently
|
|
297
|
+
Logger.info('No auto-start eligible workers are currently available.');
|
|
258
298
|
return;
|
|
259
299
|
}
|
|
260
300
|
const results = await Promise.all(eligibleWorkers.map(async (name) => {
|
|
@@ -6,8 +6,10 @@ export { BroadcastWorkCommand } from '../commands/BroadcastWorkCommand';
|
|
|
6
6
|
export { ConfigCommand } from '../commands/ConfigCommand';
|
|
7
7
|
export { ContainerWorkersCommand } from '../commands/ContainerWorkersCommand';
|
|
8
8
|
export { AddMigrationCommand, CreateCommand, CreateMigrationCommand, } from '../commands/CreateCommand';
|
|
9
|
+
export { D1ProxyCommand } from '../commands/D1ProxyCommand';
|
|
9
10
|
export { DebugCommand } from '../commands/DebugCommand';
|
|
10
11
|
export { JwtDevCommand } from '../commands/JwtDevCommand';
|
|
12
|
+
export { KvProxyCommand } from '../commands/KvProxyCommand';
|
|
11
13
|
export { LogsCleanupCommand } from '../commands/LogsCleanupCommand';
|
|
12
14
|
export { MakeMailTemplateCommand } from '../commands/MakeMailTemplateCommand';
|
|
13
15
|
export { MakeNotificationTemplateCommand } from '../commands/MakeNotificationTemplateCommand';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -6,8 +6,10 @@ export { BroadcastWorkCommand } from '../commands/BroadcastWorkCommand.js';
|
|
|
6
6
|
export { ConfigCommand } from '../commands/ConfigCommand.js';
|
|
7
7
|
export { ContainerWorkersCommand } from '../commands/ContainerWorkersCommand.js';
|
|
8
8
|
export { AddMigrationCommand, CreateCommand, CreateMigrationCommand, } from '../commands/CreateCommand.js';
|
|
9
|
+
export { D1ProxyCommand } from '../commands/D1ProxyCommand.js';
|
|
9
10
|
export { DebugCommand } from '../commands/DebugCommand.js';
|
|
10
11
|
export { JwtDevCommand } from '../commands/JwtDevCommand.js';
|
|
12
|
+
export { KvProxyCommand } from '../commands/KvProxyCommand.js';
|
|
11
13
|
export { LogsCleanupCommand } from '../commands/LogsCleanupCommand.js';
|
|
12
14
|
export { MakeMailTemplateCommand } from '../commands/MakeMailTemplateCommand.js';
|
|
13
15
|
export { MakeNotificationTemplateCommand } from '../commands/MakeNotificationTemplateCommand.js';
|
package/src/cli/index.d.ts
CHANGED
|
@@ -8,7 +8,9 @@ export { EXIT_CODES, ErrorHandler } from './ErrorHandler';
|
|
|
8
8
|
export { PromptHelper, type PromptOptions } from './PromptHelper';
|
|
9
9
|
export { AddCommand } from './commands/AddCommand';
|
|
10
10
|
export { ConfigCommand } from './commands/ConfigCommand';
|
|
11
|
+
export { D1ProxyCommand } from './commands/D1ProxyCommand';
|
|
11
12
|
export { DebugCommand } from './commands/DebugCommand';
|
|
13
|
+
export { KvProxyCommand } from './commands/KvProxyCommand';
|
|
12
14
|
export { MigrateCommand } from './commands/MigrateCommand';
|
|
13
15
|
export { MySqlProxyCommand } from './commands/MySqlProxyCommand';
|
|
14
16
|
export { NewCommand } from './commands/NewCommand';
|
package/src/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
|
package/src/cli/index.js
CHANGED
|
@@ -9,7 +9,9 @@ export { PromptHelper } from './PromptHelper.js';
|
|
|
9
9
|
// Export commands
|
|
10
10
|
export { AddCommand } from './commands/AddCommand.js';
|
|
11
11
|
export { ConfigCommand } from './commands/ConfigCommand.js';
|
|
12
|
+
export { D1ProxyCommand } from './commands/D1ProxyCommand.js';
|
|
12
13
|
export { DebugCommand } from './commands/DebugCommand.js';
|
|
14
|
+
export { KvProxyCommand } from './commands/KvProxyCommand.js';
|
|
13
15
|
export { MigrateCommand } from './commands/MigrateCommand.js';
|
|
14
16
|
export { MySqlProxyCommand } from './commands/MySqlProxyCommand.js';
|
|
15
17
|
export { NewCommand } from './commands/NewCommand.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GovernanceScaffolder.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/GovernanceScaffolder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"GovernanceScaffolder.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/GovernanceScaffolder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoBH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAgTH,eAAO,MAAM,oBAAoB;0BAEhB,MAAM,YACV,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC;EA+DpC,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* - Architecture tests (Vitest)
|
|
7
7
|
*/
|
|
8
8
|
import { FileGenerator } from '../scaffolding/FileGenerator.js';
|
|
9
|
+
import { VersionChecker } from '../services/VersionChecker.js';
|
|
9
10
|
import { SpawnUtil } from '../utils/spawn.js';
|
|
10
11
|
import { resolvePackageManager } from '../../common/index.js';
|
|
11
12
|
import { Logger } from '../../config/logger.js';
|
|
@@ -49,12 +50,28 @@ const ensureDevDependency = (devDependencies, name, version) => {
|
|
|
49
50
|
devDependencies[name] = version;
|
|
50
51
|
}
|
|
51
52
|
};
|
|
53
|
+
const toCompatibleGovernanceVersion = (value) => {
|
|
54
|
+
const match = /(\d+)\.(\d+)\.(\d+)/.exec(value);
|
|
55
|
+
if (match === null)
|
|
56
|
+
return undefined;
|
|
57
|
+
const [, major, minor] = match;
|
|
58
|
+
return `^${major}.${minor}.0`;
|
|
59
|
+
};
|
|
52
60
|
const inferGovernanceVersion = (pkg) => {
|
|
53
61
|
const deps = getStringRecord(pkg.dependencies);
|
|
54
62
|
const core = deps?.['@zintrust/core'];
|
|
55
|
-
if (typeof core === 'string' && core.trim() !== '')
|
|
56
|
-
|
|
57
|
-
|
|
63
|
+
if (typeof core === 'string' && core.trim() !== '') {
|
|
64
|
+
const compatibleFromCore = toCompatibleGovernanceVersion(core);
|
|
65
|
+
if (compatibleFromCore !== undefined)
|
|
66
|
+
return compatibleFromCore;
|
|
67
|
+
}
|
|
68
|
+
const currentVersion = VersionChecker.getCurrentVersion().trim();
|
|
69
|
+
if (currentVersion !== '' && currentVersion !== '0.0.0') {
|
|
70
|
+
const compatibleFromCli = toCompatibleGovernanceVersion(currentVersion);
|
|
71
|
+
if (compatibleFromCli !== undefined)
|
|
72
|
+
return compatibleFromCli;
|
|
73
|
+
}
|
|
74
|
+
return '^0.4.0';
|
|
58
75
|
};
|
|
59
76
|
const writeEslintConfig = (projectRoot) => {
|
|
60
77
|
const eslintConfigPath = path.join(projectRoot, 'eslint.config.mjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectScaffolder.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/ProjectScaffolder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtD,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IACpE,cAAc,IAAI,MAAM,CAAC;IACzB,sBAAsB,IAAI,OAAO,CAAC;IAClC,iBAAiB,IAAI,MAAM,CAAC;IAC5B,WAAW,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC;IACtD,gBAAgB,IAAI,OAAO,CAAC;IAC5B,aAAa,IAAI,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC3E;
|
|
1
|
+
{"version":3,"file":"ProjectScaffolder.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/ProjectScaffolder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtD,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IACpE,cAAc,IAAI,MAAM,CAAC;IACzB,sBAAsB,IAAI,OAAO,CAAC;IAClC,iBAAiB,IAAI,MAAM,CAAC;IAC5B,WAAW,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC;IACtD,gBAAgB,IAAI,OAAO,CAAC;IAC5B,aAAa,IAAI,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC3E;AA8dD,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAsBrE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAsBA;AA8ID;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,GAAE,MAAsB,GAAG,kBAAkB,CAsB/F;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;EAM5B,CAAC"}
|
|
@@ -20,6 +20,14 @@ const loadCoreVersion = () => {
|
|
|
20
20
|
return '0.0.0';
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
+
const toCompatibleGovernanceVersion = (version) => {
|
|
24
|
+
const match = /(\d+)\.(\d+)\.(\d+)/.exec(version);
|
|
25
|
+
if (match !== null) {
|
|
26
|
+
const [, major, minor] = match;
|
|
27
|
+
return `^${major}.${minor}.0`;
|
|
28
|
+
}
|
|
29
|
+
return '^0.4.0';
|
|
30
|
+
};
|
|
23
31
|
const createDirectories = (projectPath, directories) => {
|
|
24
32
|
let count = 0;
|
|
25
33
|
if (!fs.existsSync(projectPath)) {
|
|
@@ -239,11 +247,11 @@ const readTemplateJson = (templateJsonPath) => {
|
|
|
239
247
|
}
|
|
240
248
|
};
|
|
241
249
|
const resolveTemplateMetadata = (templateName, meta, fallback) => {
|
|
242
|
-
const name = typeof meta.name === 'string' ? meta.name : fallback?.name ?? templateName;
|
|
243
|
-
const description = typeof meta.description === 'string' ? meta.description : fallback?.description ?? '';
|
|
250
|
+
const name = typeof meta.name === 'string' ? meta.name : (fallback?.name ?? templateName);
|
|
251
|
+
const description = typeof meta.description === 'string' ? meta.description : (fallback?.description ?? '');
|
|
244
252
|
const directories = Array.isArray(meta.directories)
|
|
245
253
|
? coerceStringArray(meta.directories)
|
|
246
|
-
: fallback?.directories ?? [];
|
|
254
|
+
: (fallback?.directories ?? []);
|
|
247
255
|
return { name, description, directories };
|
|
248
256
|
};
|
|
249
257
|
const loadTemplateFiles = (templateDir) => {
|
|
@@ -451,6 +459,8 @@ const prepareContext = (state, options) => {
|
|
|
451
459
|
.replaceAll(/[-:T.Z]/g, '')
|
|
452
460
|
.slice(0, 14);
|
|
453
461
|
state.variables = {
|
|
462
|
+
coreVersion: loadCoreVersion(),
|
|
463
|
+
governanceVersion: toCompatibleGovernanceVersion(loadCoreVersion()),
|
|
454
464
|
projectName: options.name,
|
|
455
465
|
projectSlug: options.name,
|
|
456
466
|
author: options.author ?? 'Your Name',
|
|
@@ -459,7 +469,6 @@ const prepareContext = (state, options) => {
|
|
|
459
469
|
database: options.database ?? 'sqlite',
|
|
460
470
|
template: state.templateName,
|
|
461
471
|
migrationTimestamp,
|
|
462
|
-
coreVersion: loadCoreVersion(),
|
|
463
472
|
};
|
|
464
473
|
};
|
|
465
474
|
const createDirectoriesForState = (state) => {
|