@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,265 +0,0 @@
|
|
|
1
|
-
import { Cloudflare, ErrorFactory, FeatureFlags, Logger, QueryBuilder } from '../../../src/index.js';
|
|
2
|
-
import { CREATE_MIGRATIONS_TABLE_SQL, MYSQL_PLACEHOLDER, MYSQL_TYPE } from './common.js';
|
|
3
|
-
const getInjectedMysqlModule = () => {
|
|
4
|
-
const globalAny = globalThis;
|
|
5
|
-
return globalAny.__zintrustMysqlModule;
|
|
6
|
-
};
|
|
7
|
-
function isMissingEsmPackage(error, packageName) {
|
|
8
|
-
if (error === null || typeof error !== 'object')
|
|
9
|
-
return false;
|
|
10
|
-
const maybe = error;
|
|
11
|
-
if (maybe.code === 'ERR_MODULE_NOT_FOUND') {
|
|
12
|
-
return typeof maybe.message === 'string' && maybe.message.includes(packageName);
|
|
13
|
-
}
|
|
14
|
-
if (typeof maybe.message === 'string') {
|
|
15
|
-
return (maybe.message.includes(`Cannot find package '${packageName}'`) ||
|
|
16
|
-
maybe.message.includes(`Cannot find module '${packageName}'`));
|
|
17
|
-
}
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
async function loadMysql() {
|
|
21
|
-
const injected = getInjectedMysqlModule();
|
|
22
|
-
if (injected)
|
|
23
|
-
return injected;
|
|
24
|
-
return (await import('mysql2/promise'));
|
|
25
|
-
}
|
|
26
|
-
async function loadCloudflareSocketFactory() {
|
|
27
|
-
try {
|
|
28
|
-
const { CloudflareSocket } = await import('../../../src/index.js');
|
|
29
|
-
return ({ host, port, tls, timeoutMs }) => CloudflareSocket.create(host, port, { tls, timeoutMs });
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
throw ErrorFactory.createConfigError('Cloudflare Workers socket support requires cloudflare:sockets compatibility (set compatibility_date >= 2024-01-15).', error);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
function getConnectionParams(config) {
|
|
36
|
-
if (config.connectionString !== undefined && config.connectionString.trim() !== '') {
|
|
37
|
-
try {
|
|
38
|
-
const url = new URL(config.connectionString);
|
|
39
|
-
const database = url.pathname.replace(/^\//, '') || 'mysql';
|
|
40
|
-
return {
|
|
41
|
-
host: url.hostname || 'localhost',
|
|
42
|
-
port: url.port ? Number.parseInt(url.port, 10) : 3306,
|
|
43
|
-
database,
|
|
44
|
-
user: decodeURIComponent(url.username || 'root'),
|
|
45
|
-
password: decodeURIComponent(url.password || ''),
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
throw ErrorFactory.createConfigError('Invalid MySQL connection string', error);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
host: config.host ?? 'localhost',
|
|
54
|
-
port: config.port ?? 3306,
|
|
55
|
-
database: config.database ?? 'mysql',
|
|
56
|
-
user: config.username ?? 'root',
|
|
57
|
-
password: config.password ?? '',
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
function ensurePool(state) {
|
|
61
|
-
if (!state.connected || state.pool === undefined) {
|
|
62
|
-
throw ErrorFactory.createConnectionError('Database not connected');
|
|
63
|
-
}
|
|
64
|
-
return state.pool;
|
|
65
|
-
}
|
|
66
|
-
function normalizeQueryResult(raw) {
|
|
67
|
-
// mysql2/promise returns:
|
|
68
|
-
// - SELECT: RowDataPacket[]
|
|
69
|
-
// - INSERT/UPDATE: ResultSetHeader
|
|
70
|
-
// We normalize to the framework's { rows, rowCount }.
|
|
71
|
-
if (Array.isArray(raw)) {
|
|
72
|
-
return {
|
|
73
|
-
rows: raw,
|
|
74
|
-
rowCount: raw.length,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
if (raw !== null && typeof raw === 'object') {
|
|
78
|
-
const maybe = raw;
|
|
79
|
-
const affectedRows = typeof maybe.affectedRows === 'number' && Number.isFinite(maybe.affectedRows)
|
|
80
|
-
? maybe.affectedRows
|
|
81
|
-
: 0;
|
|
82
|
-
const insertId = (typeof maybe.insertId === 'number' ||
|
|
83
|
-
typeof maybe.insertId === 'string' ||
|
|
84
|
-
typeof maybe.insertId === 'bigint') &&
|
|
85
|
-
maybe.insertId !== 0 // Only return if valid ID
|
|
86
|
-
? maybe.insertId
|
|
87
|
-
: undefined;
|
|
88
|
-
return { rows: [], rowCount: affectedRows, lastInsertId: insertId };
|
|
89
|
-
}
|
|
90
|
-
return { rows: [], rowCount: 0 };
|
|
91
|
-
}
|
|
92
|
-
async function connect(state, config) {
|
|
93
|
-
if (state.connected)
|
|
94
|
-
return;
|
|
95
|
-
try {
|
|
96
|
-
const mysql = await loadMysql();
|
|
97
|
-
const { host, port, database, user, password } = getConnectionParams(config);
|
|
98
|
-
const isWorkersRuntime = Cloudflare.getWorkersEnv() !== null;
|
|
99
|
-
const tlsEnabled = Boolean(config.ssl);
|
|
100
|
-
let timeoutMs;
|
|
101
|
-
if (typeof config.socketTimeoutMs === 'number' && config.socketTimeoutMs > 0) {
|
|
102
|
-
timeoutMs = config.socketTimeoutMs;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
timeoutMs = 30000; // default 30s
|
|
106
|
-
}
|
|
107
|
-
if (isWorkersRuntime) {
|
|
108
|
-
if (!Cloudflare.isCloudflareSocketsEnabled()) {
|
|
109
|
-
throw ErrorFactory.createConfigError('Cloudflare sockets are disabled. Set ENABLE_CLOUDFLARE_SOCKETS=true to use MySQL sockets on Workers.');
|
|
110
|
-
}
|
|
111
|
-
const createSocket = await loadCloudflareSocketFactory();
|
|
112
|
-
state.pool = mysql.createPool({
|
|
113
|
-
host,
|
|
114
|
-
port,
|
|
115
|
-
database,
|
|
116
|
-
user,
|
|
117
|
-
password,
|
|
118
|
-
waitForConnections: true,
|
|
119
|
-
connectionLimit: 10,
|
|
120
|
-
namedPlaceholders: false,
|
|
121
|
-
disableEval: true,
|
|
122
|
-
stream: () => createSocket({ host, port, tls: tlsEnabled, timeoutMs }),
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
state.pool = mysql.createPool({
|
|
127
|
-
host,
|
|
128
|
-
port,
|
|
129
|
-
database,
|
|
130
|
-
user,
|
|
131
|
-
password,
|
|
132
|
-
waitForConnections: true,
|
|
133
|
-
connectionLimit: 10,
|
|
134
|
-
namedPlaceholders: false,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
// Probe.
|
|
138
|
-
await state.pool.execute('SELECT 1');
|
|
139
|
-
state.connected = true;
|
|
140
|
-
Logger.info(`✓ Cloudflare sockets MySQL connected (${host}:${port})`);
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
if (isMissingEsmPackage(error, 'mysql2')) {
|
|
144
|
-
throw ErrorFactory.createConfigError("MySQL adapter requires the 'mysql2' package (run `npm install mysql2` or `zin add db:mysql`).");
|
|
145
|
-
}
|
|
146
|
-
throw ErrorFactory.createTryCatchError('Failed to connect to MySQL', error);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
async function disconnect(state) {
|
|
150
|
-
if (!state.connected)
|
|
151
|
-
return;
|
|
152
|
-
const pool = state.pool;
|
|
153
|
-
state.connected = false;
|
|
154
|
-
state.pool = undefined;
|
|
155
|
-
try {
|
|
156
|
-
if (pool !== undefined)
|
|
157
|
-
await pool.end();
|
|
158
|
-
}
|
|
159
|
-
finally {
|
|
160
|
-
Logger.info('✓ MySQL disconnected');
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
async function rawQuery(state, sql, parameters) {
|
|
164
|
-
if (!FeatureFlags.isRawQueryEnabled()) {
|
|
165
|
-
throw ErrorFactory.createConfigError('Raw SQL queries are disabled');
|
|
166
|
-
}
|
|
167
|
-
const pool = ensurePool(state);
|
|
168
|
-
try {
|
|
169
|
-
Logger.warn(`Raw SQL Query executed: ${sql}`, { parameters });
|
|
170
|
-
const [rows] = await pool.execute(sql, parameters ?? []);
|
|
171
|
-
if (Array.isArray(rows))
|
|
172
|
-
return rows;
|
|
173
|
-
return [];
|
|
174
|
-
}
|
|
175
|
-
catch (error) {
|
|
176
|
-
throw ErrorFactory.createTryCatchError(`Raw SQL query failed: ${sql}`, error);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
const createTransactionAdapter = (baseAdapter, conn) => {
|
|
180
|
-
return {
|
|
181
|
-
...baseAdapter,
|
|
182
|
-
query: async (sql, parameters) => {
|
|
183
|
-
try {
|
|
184
|
-
const connection = conn;
|
|
185
|
-
const [rows] = await connection.execute(sql, parameters);
|
|
186
|
-
return normalizeQueryResult(rows);
|
|
187
|
-
}
|
|
188
|
-
catch (error) {
|
|
189
|
-
throw ErrorFactory.createTryCatchError(`MySQL query failed: ${sql}`, error);
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
queryOne: async (sql, parameters) => {
|
|
193
|
-
const res = await baseAdapter.query(sql, parameters);
|
|
194
|
-
return res.rows[0] ?? null;
|
|
195
|
-
},
|
|
196
|
-
};
|
|
197
|
-
};
|
|
198
|
-
const createMigrationsTable = async (adapter) => {
|
|
199
|
-
await adapter.query(CREATE_MIGRATIONS_TABLE_SQL, []);
|
|
200
|
-
};
|
|
201
|
-
function createMySqlAdapter(config) {
|
|
202
|
-
const state = { connected: false };
|
|
203
|
-
const adapter = {
|
|
204
|
-
connect: async () => connect(state, config),
|
|
205
|
-
disconnect: async () => disconnect(state),
|
|
206
|
-
query: async (sql, parameters) => {
|
|
207
|
-
const pool = ensurePool(state);
|
|
208
|
-
try {
|
|
209
|
-
const [rows] = await pool.execute(sql, parameters);
|
|
210
|
-
return normalizeQueryResult(rows);
|
|
211
|
-
}
|
|
212
|
-
catch (error) {
|
|
213
|
-
throw ErrorFactory.createTryCatchError(`MySQL query failed: ${sql}`, error);
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
queryOne: async (sql, parameters) => {
|
|
217
|
-
const result = await adapter.query(sql, parameters);
|
|
218
|
-
return result.rows[0] ?? null;
|
|
219
|
-
},
|
|
220
|
-
ping: async () => {
|
|
221
|
-
await adapter.query(QueryBuilder.create('').select('1').toSQL(), []);
|
|
222
|
-
},
|
|
223
|
-
transaction: async (callback) => {
|
|
224
|
-
const pool = ensurePool(state);
|
|
225
|
-
const conn = await pool.getConnection();
|
|
226
|
-
const txAdapter = createTransactionAdapter(adapter, conn);
|
|
227
|
-
try {
|
|
228
|
-
await conn.beginTransaction();
|
|
229
|
-
const result = await callback(txAdapter);
|
|
230
|
-
await conn.commit();
|
|
231
|
-
return result;
|
|
232
|
-
}
|
|
233
|
-
catch (error) {
|
|
234
|
-
try {
|
|
235
|
-
await conn.rollback();
|
|
236
|
-
}
|
|
237
|
-
catch {
|
|
238
|
-
// ignore rollback errors
|
|
239
|
-
}
|
|
240
|
-
throw ErrorFactory.createTryCatchError('MySQL transaction failed', error);
|
|
241
|
-
}
|
|
242
|
-
finally {
|
|
243
|
-
conn.release();
|
|
244
|
-
}
|
|
245
|
-
},
|
|
246
|
-
ensureMigrationsTable: async () => {
|
|
247
|
-
await createMigrationsTable(adapter);
|
|
248
|
-
},
|
|
249
|
-
getType: () => MYSQL_TYPE,
|
|
250
|
-
isConnected: () => state.connected,
|
|
251
|
-
rawQuery: async (sql, parameters) => rawQuery(state, sql, parameters),
|
|
252
|
-
getPlaceholder: (_index) => MYSQL_PLACEHOLDER,
|
|
253
|
-
};
|
|
254
|
-
return adapter;
|
|
255
|
-
}
|
|
256
|
-
export const MySQLAdapter = Object.freeze({
|
|
257
|
-
create: (config) => createMySqlAdapter(config),
|
|
258
|
-
});
|
|
259
|
-
export default MySQLAdapter;
|
|
260
|
-
/**
|
|
261
|
-
* Package version and build metadata
|
|
262
|
-
* Available at runtime for debugging and health checks
|
|
263
|
-
*/
|
|
264
|
-
export const _ZINTRUST_DB_MYSQL_VERSION = '0.1.15';
|
|
265
|
-
export const _ZINTRUST_DB_MYSQL_BUILD_DATE = '__BUILD_DATE__';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../packages/db-mysql/src/register.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,KAAK,IAAI,CAAC;CACxE,CAAC;AAgBF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE7D"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// Prefer production build output shape first.
|
|
2
|
-
// Dev (tsx) fallback when running directly from src.
|
|
3
|
-
const adapterModule = (await (async () => {
|
|
4
|
-
try {
|
|
5
|
-
return (await import('./index.js'));
|
|
6
|
-
}
|
|
7
|
-
catch {
|
|
8
|
-
return (await import('./index.js'));
|
|
9
|
-
}
|
|
10
|
-
})());
|
|
11
|
-
export function registerMySqlAdapter(registry) {
|
|
12
|
-
registry.register('mysql', (config) => adapterModule.MySQLAdapter.create(config));
|
|
13
|
-
}
|
|
14
|
-
const globalWithRegistry = globalThis;
|
|
15
|
-
const globalRegistry = globalWithRegistry.__zintrust_db_adapter_registry__ ??
|
|
16
|
-
(globalWithRegistry.__zintrust_db_adapter_registry__ = new Map());
|
|
17
|
-
registerMySqlAdapter({
|
|
18
|
-
register: (driver, factory) => {
|
|
19
|
-
globalRegistry.set(driver, factory);
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
// Side-effect registration when used as a published package.
|
|
23
|
-
// In monorepo/dev setups, @zintrust/core may not be resolvable; ignore if missing.
|
|
24
|
-
try {
|
|
25
|
-
const core = (await import('../../../src/index.js'));
|
|
26
|
-
if (core.DatabaseAdapterRegistry !== undefined) {
|
|
27
|
-
registerMySqlAdapter(core.DatabaseAdapterRegistry);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
catch {
|
|
31
|
-
// no-op
|
|
32
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export type DatabaseConfig = {
|
|
2
|
-
driver: 'sqlite' | 'postgresql' | 'mysql' | 'sqlserver' | 'd1';
|
|
3
|
-
database?: string;
|
|
4
|
-
host?: string;
|
|
5
|
-
port?: number;
|
|
6
|
-
username?: string;
|
|
7
|
-
password?: string;
|
|
8
|
-
synchronize?: boolean;
|
|
9
|
-
logging?: boolean;
|
|
10
|
-
readHosts?: string[];
|
|
11
|
-
};
|
|
12
|
-
export type QueryResult = {
|
|
13
|
-
rows: Record<string, unknown>[];
|
|
14
|
-
rowCount: number;
|
|
15
|
-
};
|
|
16
|
-
export interface IDatabaseAdapter {
|
|
17
|
-
connect(): Promise<void>;
|
|
18
|
-
disconnect(): Promise<void>;
|
|
19
|
-
query(sql: string, parameters: unknown[]): Promise<QueryResult>;
|
|
20
|
-
queryOne(sql: string, parameters: unknown[]): Promise<Record<string, unknown> | null>;
|
|
21
|
-
ping(): Promise<void>;
|
|
22
|
-
transaction<T>(callback: (adapter: IDatabaseAdapter) => Promise<T>): Promise<T>;
|
|
23
|
-
rawQuery<T = unknown>(sql: string, parameters?: unknown[]): Promise<T[]>;
|
|
24
|
-
ensureMigrationsTable?(): Promise<void>;
|
|
25
|
-
getType(): string;
|
|
26
|
-
isConnected(): boolean;
|
|
27
|
-
getPlaceholder(index: number): string;
|
|
28
|
-
}
|
|
29
|
-
export declare const PostgreSQLAdapter: Readonly<{
|
|
30
|
-
create(config: DatabaseConfig): IDatabaseAdapter;
|
|
31
|
-
}>;
|
|
32
|
-
export default PostgreSQLAdapter;
|
|
33
|
-
/**
|
|
34
|
-
* Package version and build metadata
|
|
35
|
-
* Available at runtime for debugging and health checks
|
|
36
|
-
*/
|
|
37
|
-
export declare const _ZINTRUST_DB_POSTGRES_VERSION = "0.1.15";
|
|
38
|
-
export declare const _ZINTRUST_DB_POSTGRES_BUILD_DATE = "__BUILD_DATE__";
|
|
39
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/db-postgres/src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAChE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACtF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChF,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,qBAAqB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,MAAM,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IACvB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC;AA4BD,eAAO,MAAM,iBAAiB;mBACb,cAAc,GAAG,gBAAgB;EAGhD,CAAC;AAoNH,eAAe,iBAAiB,CAAC;AAEjC;;;GAGG;AACH,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,eAAO,MAAM,gCAAgC,mBAAmB,CAAC"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { Cloudflare, ErrorFactory, FeatureFlags, Logger, QueryBuilder } from '../../../src/index.js';
|
|
2
|
-
function isMissingEsmPackage(error, packageName) {
|
|
3
|
-
if (error === null || typeof error !== 'object')
|
|
4
|
-
return false;
|
|
5
|
-
const maybe = error;
|
|
6
|
-
if (maybe.code === 'ERR_MODULE_NOT_FOUND') {
|
|
7
|
-
return typeof maybe.message === 'string' && maybe.message.includes(packageName);
|
|
8
|
-
}
|
|
9
|
-
if (typeof maybe.message === 'string') {
|
|
10
|
-
return (maybe.message.includes(`Cannot find package '${packageName}'`) ||
|
|
11
|
-
maybe.message.includes(`Cannot find module '${packageName}'`));
|
|
12
|
-
}
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
export const PostgreSQLAdapter = Object.freeze({
|
|
16
|
-
create(config) {
|
|
17
|
-
return createPostgresAdapter(config);
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
function getConnectionParams(config) {
|
|
21
|
-
return {
|
|
22
|
-
host: config.host ?? 'localhost',
|
|
23
|
-
port: config.port ?? 5432,
|
|
24
|
-
database: config.database ?? 'postgres',
|
|
25
|
-
user: config.username ?? 'postgres',
|
|
26
|
-
password: config.password ?? '',
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
async function loadPgPoolCtor() {
|
|
30
|
-
// Dynamic import keeps this package usable even if pg is missing.
|
|
31
|
-
return (await import('pg'));
|
|
32
|
-
}
|
|
33
|
-
async function loadCloudflareSocketFactory() {
|
|
34
|
-
try {
|
|
35
|
-
const { CloudflareSocket } = await import('../../../src/index.js');
|
|
36
|
-
return ({ host, port, tls, timeoutMs }) => CloudflareSocket.create(host, port, { tls, timeoutMs });
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
throw ErrorFactory.createConfigError('Cloudflare Workers socket support requires cloudflare:sockets compatibility (set compatibility_date >= 2024-01-15).', error);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
function ensurePool(state) {
|
|
43
|
-
if (!state.connected || state.pool === undefined) {
|
|
44
|
-
throw ErrorFactory.createConnectionError('Database not connected');
|
|
45
|
-
}
|
|
46
|
-
return state.pool;
|
|
47
|
-
}
|
|
48
|
-
async function connect(state, config) {
|
|
49
|
-
if (state.connected)
|
|
50
|
-
return;
|
|
51
|
-
try {
|
|
52
|
-
const { Pool } = await loadPgPoolCtor();
|
|
53
|
-
const { host, port, database, user, password } = getConnectionParams(config);
|
|
54
|
-
const workersEnv = Cloudflare.getWorkersEnv();
|
|
55
|
-
const isWorkersRuntime = workersEnv !== null;
|
|
56
|
-
const tlsEnabled = Boolean(config.ssl);
|
|
57
|
-
const timeoutMs = typeof config.socketTimeoutMs === 'number'
|
|
58
|
-
? config.socketTimeoutMs
|
|
59
|
-
: 30000;
|
|
60
|
-
if (isWorkersRuntime) {
|
|
61
|
-
if (!Cloudflare.isCloudflareSocketsEnabled()) {
|
|
62
|
-
throw ErrorFactory.createConfigError('Cloudflare sockets are disabled. Set ENABLE_CLOUDFLARE_SOCKETS=true to use PostgreSQL sockets on Workers.');
|
|
63
|
-
}
|
|
64
|
-
const createSocket = await loadCloudflareSocketFactory();
|
|
65
|
-
state.pool = new Pool({
|
|
66
|
-
host,
|
|
67
|
-
port,
|
|
68
|
-
database,
|
|
69
|
-
user,
|
|
70
|
-
password,
|
|
71
|
-
stream: () => createSocket({ host, port, tls: tlsEnabled, timeoutMs: Number(timeoutMs) }),
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
state.pool = new Pool({ host, port, database, user, password });
|
|
76
|
-
}
|
|
77
|
-
await state.pool.query('SELECT 1');
|
|
78
|
-
state.connected = true;
|
|
79
|
-
Logger.info(`✓ PostgreSQL connected (${host}:${port})`);
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
if (isMissingEsmPackage(error, 'pg')) {
|
|
83
|
-
throw ErrorFactory.createConfigError("PostgreSQL adapter requires the 'pg' package (run `zin add db:postgres` or `npm install pg`).");
|
|
84
|
-
}
|
|
85
|
-
throw ErrorFactory.createTryCatchError('Failed to connect to PostgreSQL', error);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
async function disconnect(state) {
|
|
89
|
-
if (!state.connected)
|
|
90
|
-
return;
|
|
91
|
-
const current = state.pool;
|
|
92
|
-
state.pool = undefined;
|
|
93
|
-
state.connected = false;
|
|
94
|
-
if (current !== undefined) {
|
|
95
|
-
await current.end();
|
|
96
|
-
}
|
|
97
|
-
Logger.info('✓ PostgreSQL disconnected');
|
|
98
|
-
}
|
|
99
|
-
async function query(state, sql, parameters) {
|
|
100
|
-
const current = ensurePool(state);
|
|
101
|
-
try {
|
|
102
|
-
// Convert ? placeholders to PostgreSQL's $1, $2, etc format
|
|
103
|
-
let paramIndex = 0;
|
|
104
|
-
const processedSql = sql.replaceAll('?', () => {
|
|
105
|
-
paramIndex++;
|
|
106
|
-
return `$${paramIndex}`;
|
|
107
|
-
});
|
|
108
|
-
const result = await current.query(processedSql, parameters);
|
|
109
|
-
return {
|
|
110
|
-
rows: (result.rows ?? []),
|
|
111
|
-
rowCount: result.rowCount ?? result.rows?.length ?? 0,
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
catch (error) {
|
|
115
|
-
throw ErrorFactory.createTryCatchError('PostgreSQL query failed', error);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
async function transaction(state, adapter, callback) {
|
|
119
|
-
if (!state.connected)
|
|
120
|
-
throw ErrorFactory.createConnectionError('Database not connected');
|
|
121
|
-
try {
|
|
122
|
-
await adapter.query('BEGIN', []);
|
|
123
|
-
const result = await callback(adapter);
|
|
124
|
-
await adapter.query('COMMIT', []);
|
|
125
|
-
return result;
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
await adapter.query('ROLLBACK', []);
|
|
129
|
-
throw ErrorFactory.createTryCatchError('PostgreSQL transaction failed', error);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
async function rawQuery(adapter, sql, parameters) {
|
|
133
|
-
if (!FeatureFlags.isRawQueryEnabled()) {
|
|
134
|
-
throw ErrorFactory.createConfigError('Raw SQL queries are disabled. Set USE_RAW_QRY=true environment variable to enable.');
|
|
135
|
-
}
|
|
136
|
-
const result = await adapter.query(sql, parameters ?? []);
|
|
137
|
-
return result.rows;
|
|
138
|
-
}
|
|
139
|
-
function createPostgresAdapter(config) {
|
|
140
|
-
const state = { connected: false, pool: undefined };
|
|
141
|
-
const adapter = {
|
|
142
|
-
connect: async () => connect(state, config),
|
|
143
|
-
disconnect: async () => disconnect(state),
|
|
144
|
-
query: async (sql, parameters) => query(state, sql, parameters),
|
|
145
|
-
queryOne: async (sql, parameters) => {
|
|
146
|
-
const result = await adapter.query(sql, parameters);
|
|
147
|
-
return result.rows[0] ?? null;
|
|
148
|
-
},
|
|
149
|
-
ping: async () => {
|
|
150
|
-
await adapter.query(QueryBuilder.create('').select('1').toSQL(), []);
|
|
151
|
-
},
|
|
152
|
-
transaction: async (callback) => transaction(state, adapter, callback),
|
|
153
|
-
rawQuery: async (sql, parameters) => rawQuery(adapter, sql, parameters),
|
|
154
|
-
ensureMigrationsTable: async () => {
|
|
155
|
-
await adapter.query(`CREATE TABLE IF NOT EXISTS migrations (
|
|
156
|
-
id SERIAL PRIMARY KEY,
|
|
157
|
-
name VARCHAR(255) NOT NULL,
|
|
158
|
-
scope VARCHAR(255) NOT NULL DEFAULT 'global',
|
|
159
|
-
service VARCHAR(255) NOT NULL DEFAULT '',
|
|
160
|
-
batch INTEGER NOT NULL,
|
|
161
|
-
status VARCHAR(255) NOT NULL,
|
|
162
|
-
applied_at TIMESTAMP NULL,
|
|
163
|
-
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
164
|
-
UNIQUE(name, scope, service)
|
|
165
|
-
)`, []);
|
|
166
|
-
},
|
|
167
|
-
getType: () => 'postgresql',
|
|
168
|
-
isConnected: () => state.connected,
|
|
169
|
-
getPlaceholder: (index) => `$${index}`,
|
|
170
|
-
};
|
|
171
|
-
return adapter;
|
|
172
|
-
}
|
|
173
|
-
export default PostgreSQLAdapter;
|
|
174
|
-
/**
|
|
175
|
-
* Package version and build metadata
|
|
176
|
-
* Available at runtime for debugging and health checks
|
|
177
|
-
*/
|
|
178
|
-
export const _ZINTRUST_DB_POSTGRES_VERSION = '0.1.15';
|
|
179
|
-
export const _ZINTRUST_DB_POSTGRES_BUILD_DATE = '__BUILD_DATE__';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../packages/db-postgres/src/register.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,KAAK,IAAI,CAAC;CACxE,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAEhE"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { PostgreSQLAdapter } from './index.js';
|
|
2
|
-
export function registerPostgresAdapter(registry) {
|
|
3
|
-
registry.register('postgresql', (config) => PostgreSQLAdapter.create(config));
|
|
4
|
-
}
|
|
5
|
-
const core = (await import('../../../src/index.js'));
|
|
6
|
-
if (core.DatabaseAdapterRegistry !== undefined) {
|
|
7
|
-
registerPostgresAdapter(core.DatabaseAdapterRegistry);
|
|
8
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { SQLiteAdapter } from '../../../src/index.js';
|
|
2
|
-
export type { DatabaseConfig, IDatabaseAdapter, QueryResult } from '../../../src/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Package version and build metadata
|
|
5
|
-
* Available at runtime for debugging and health checks
|
|
6
|
-
*/
|
|
7
|
-
export declare const _ZINTRUST_DB_SQLITE_VERSION = "0.1.15";
|
|
8
|
-
export declare const _ZINTRUST_DB_SQLITE_BUILD_DATE = "__BUILD_DATE__";
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/db-sqlite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,WAAW,CAAC;AACpD,eAAO,MAAM,8BAA8B,mBAAmB,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { SQLiteAdapter } from '../../../src/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Package version and build metadata
|
|
4
|
-
* Available at runtime for debugging and health checks
|
|
5
|
-
*/
|
|
6
|
-
export const _ZINTRUST_DB_SQLITE_VERSION = '0.1.15';
|
|
7
|
-
export const _ZINTRUST_DB_SQLITE_BUILD_DATE = '__BUILD_DATE__';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../packages/db-sqlite/src/register.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,KAAK,IAAI,CAAC;CACxE,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE9D"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SQLiteAdapter } from './index.js';
|
|
2
|
-
export function registerSqliteAdapter(registry) {
|
|
3
|
-
registry.register('sqlite', (config) => SQLiteAdapter.create(config));
|
|
4
|
-
}
|
|
5
|
-
const core = (await import('../../../src/index.js'));
|
|
6
|
-
if (core.DatabaseAdapterRegistry !== undefined) {
|
|
7
|
-
registerSqliteAdapter(core.DatabaseAdapterRegistry);
|
|
8
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export type DatabaseConfig = {
|
|
2
|
-
driver: 'sqlite' | 'postgresql' | 'mysql' | 'sqlserver' | 'd1';
|
|
3
|
-
database?: string;
|
|
4
|
-
host?: string;
|
|
5
|
-
port?: number;
|
|
6
|
-
username?: string;
|
|
7
|
-
password?: string;
|
|
8
|
-
synchronize?: boolean;
|
|
9
|
-
logging?: boolean;
|
|
10
|
-
readHosts?: string[];
|
|
11
|
-
};
|
|
12
|
-
export type QueryResult = {
|
|
13
|
-
rows: Record<string, unknown>[];
|
|
14
|
-
rowCount: number;
|
|
15
|
-
};
|
|
16
|
-
export interface IDatabaseAdapter {
|
|
17
|
-
connect(): Promise<void>;
|
|
18
|
-
disconnect(): Promise<void>;
|
|
19
|
-
query(sql: string, parameters: unknown[]): Promise<QueryResult>;
|
|
20
|
-
queryOne(sql: string, parameters: unknown[]): Promise<Record<string, unknown> | null>;
|
|
21
|
-
ping(): Promise<void>;
|
|
22
|
-
transaction<T>(callback: (adapter: IDatabaseAdapter) => Promise<T>): Promise<T>;
|
|
23
|
-
rawQuery<T = unknown>(sql: string, parameters?: unknown[]): Promise<T[]>;
|
|
24
|
-
getType(): string;
|
|
25
|
-
isConnected(): boolean;
|
|
26
|
-
getPlaceholder(index: number): string;
|
|
27
|
-
}
|
|
28
|
-
export declare const SQLServerAdapter: Readonly<{
|
|
29
|
-
create: (config: DatabaseConfig) => IDatabaseAdapter;
|
|
30
|
-
}>;
|
|
31
|
-
export default SQLServerAdapter;
|
|
32
|
-
/**
|
|
33
|
-
* Package version and build metadata
|
|
34
|
-
* Available at runtime for debugging and health checks
|
|
35
|
-
*/
|
|
36
|
-
export declare const _ZINTRUST_DB_SQLSERVER_VERSION = "0.1.15";
|
|
37
|
-
export declare const _ZINTRUST_DB_SQLSERVER_BUILD_DATE = "__BUILD_DATE__";
|
|
38
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/db-sqlserver/src/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAChE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACtF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChF,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,OAAO,IAAI,MAAM,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IACvB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC;AA+ED,eAAO,MAAM,gBAAgB;qBACV,cAAc;EAC/B,CAAC;AAEH,eAAe,gBAAgB,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,8BAA8B,WAAW,CAAC;AACvD,eAAO,MAAM,iCAAiC,mBAAmB,CAAC"}
|