@zintrust/core 0.1.41 → 0.1.43

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.
Files changed (547) hide show
  1. package/app/Controllers/AuthController.d.ts +10 -0
  2. package/app/Controllers/AuthController.d.ts.map +1 -0
  3. package/app/Controllers/AuthController.js +201 -0
  4. package/app/Controllers/UserController.d.ts +9 -0
  5. package/app/Controllers/UserController.d.ts.map +1 -0
  6. package/app/Controllers/UserController.js +8 -0
  7. package/app/Controllers/UserQueryBuilderController.d.ts +16 -0
  8. package/app/Controllers/UserQueryBuilderController.d.ts.map +1 -0
  9. package/app/Controllers/UserQueryBuilderController.js +404 -0
  10. package/app/Middleware/ProfilerMiddleware.d.ts +12 -0
  11. package/app/Middleware/ProfilerMiddleware.d.ts.map +1 -0
  12. package/app/Middleware/ProfilerMiddleware.js +47 -0
  13. package/app/Middleware/index.d.ts +59 -0
  14. package/app/Middleware/index.d.ts.map +1 -0
  15. package/app/Middleware/index.js +215 -0
  16. package/app/Models/Post.d.ts +14 -0
  17. package/app/Models/Post.d.ts.map +1 -0
  18. package/app/Models/Post.js +27 -0
  19. package/app/Models/User.d.ts +14 -0
  20. package/app/Models/User.d.ts.map +1 -0
  21. package/app/Models/User.js +44 -0
  22. package/app/Schedules/JobTracking.d.ts +3 -0
  23. package/app/Schedules/JobTracking.d.ts.map +1 -0
  24. package/app/Schedules/JobTracking.js +13 -0
  25. package/app/Schedules/index.d.ts +2 -0
  26. package/app/Schedules/index.d.ts.map +1 -0
  27. package/app/Schedules/index.js +1 -0
  28. package/app/Toolkit/Broadcast/sendBroadcast.d.ts +6 -0
  29. package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +1 -0
  30. package/app/Toolkit/Broadcast/sendBroadcast.js +5 -0
  31. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +6 -0
  32. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +1 -0
  33. package/app/Toolkit/Mail/sendWelcomeEmail.js +20 -0
  34. package/app/Toolkit/Notification/sendSlackNotification.d.ts +8 -0
  35. package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +1 -0
  36. package/app/Toolkit/Notification/sendSlackNotification.js +5 -0
  37. package/app/Toolkit/Notification/sendSms.d.ts +6 -0
  38. package/app/Toolkit/Notification/sendSms.d.ts.map +1 -0
  39. package/app/Toolkit/Notification/sendSms.js +5 -0
  40. package/app/Types/controller.d.ts +42 -0
  41. package/app/Types/controller.d.ts.map +1 -0
  42. package/app/Types/controller.js +1 -0
  43. package/config/broadcast.d.ts +38 -0
  44. package/config/broadcast.d.ts.map +1 -0
  45. package/config/broadcast.js +37 -0
  46. package/config/cache.d.ts +40 -0
  47. package/config/cache.d.ts.map +1 -0
  48. package/config/cache.js +39 -0
  49. package/config/database.d.ts +58 -0
  50. package/config/database.d.ts.map +1 -0
  51. package/config/database.js +65 -0
  52. package/config/mail.d.ts +51 -0
  53. package/config/mail.d.ts.map +1 -0
  54. package/config/mail.js +69 -0
  55. package/config/middleware.d.ts +11 -0
  56. package/config/middleware.d.ts.map +1 -0
  57. package/config/middleware.js +30 -0
  58. package/config/notification.d.ts +33 -0
  59. package/config/notification.d.ts.map +1 -0
  60. package/config/notification.js +33 -0
  61. package/config/queue.d.ts +55 -0
  62. package/config/queue.d.ts.map +1 -0
  63. package/config/queue.js +87 -0
  64. package/config/storage.d.ts +59 -0
  65. package/config/storage.d.ts.map +1 -0
  66. package/config/storage.js +59 -0
  67. package/config/workers.d.ts +54 -0
  68. package/config/workers.d.ts.map +1 -0
  69. package/config/workers.js +83 -0
  70. package/package.json +27 -5
  71. package/packages/cloudflare-d1-proxy/src/index.d.ts +48 -0
  72. package/packages/cloudflare-d1-proxy/src/index.d.ts.map +1 -0
  73. package/packages/cloudflare-d1-proxy/src/index.js +387 -0
  74. package/packages/cloudflare-kv-proxy/src/index.d.ts +44 -0
  75. package/packages/cloudflare-kv-proxy/src/index.d.ts.map +1 -0
  76. package/packages/cloudflare-kv-proxy/src/index.js +325 -0
  77. package/packages/queue-monitor/src/QueueMonitoringService.d.ts +35 -0
  78. package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +1 -0
  79. package/packages/queue-monitor/src/QueueMonitoringService.js +194 -0
  80. package/packages/queue-monitor/src/connection.d.ts +3 -0
  81. package/packages/queue-monitor/src/connection.d.ts.map +1 -0
  82. package/packages/queue-monitor/src/connection.js +1 -0
  83. package/packages/queue-monitor/src/dashboard-ui.d.ts +7 -0
  84. package/packages/queue-monitor/src/dashboard-ui.d.ts.map +1 -0
  85. package/packages/queue-monitor/src/dashboard-ui.js +997 -0
  86. package/packages/queue-monitor/src/driver.d.ts +15 -0
  87. package/packages/queue-monitor/src/driver.d.ts.map +1 -0
  88. package/packages/queue-monitor/src/driver.js +115 -0
  89. package/packages/queue-monitor/src/index.d.ts +71 -0
  90. package/packages/queue-monitor/src/index.d.ts.map +1 -0
  91. package/packages/queue-monitor/src/index.js +296 -0
  92. package/packages/queue-monitor/src/metrics.d.ts +27 -0
  93. package/packages/queue-monitor/src/metrics.d.ts.map +1 -0
  94. package/packages/queue-monitor/src/metrics.js +92 -0
  95. package/packages/queue-monitor/src/worker.d.ts +8 -0
  96. package/packages/queue-monitor/src/worker.d.ts.map +1 -0
  97. package/packages/queue-monitor/src/worker.js +35 -0
  98. package/packages/queue-redis/src/BullMQRedisQueue.d.ts +26 -0
  99. package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +1 -0
  100. package/packages/queue-redis/src/BullMQRedisQueue.js +463 -0
  101. package/packages/queue-redis/src/HttpQueueDriver.d.ts +18 -0
  102. package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +1 -0
  103. package/packages/queue-redis/src/HttpQueueDriver.js +249 -0
  104. package/packages/queue-redis/src/QueueHttpGateway.d.ts +16 -0
  105. package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +1 -0
  106. package/packages/queue-redis/src/QueueHttpGateway.js +217 -0
  107. package/packages/queue-redis/src/RedisPublishClient.d.ts +14 -0
  108. package/packages/queue-redis/src/RedisPublishClient.d.ts.map +1 -0
  109. package/packages/queue-redis/src/RedisPublishClient.js +251 -0
  110. package/packages/queue-redis/src/index.d.ts +12 -0
  111. package/packages/queue-redis/src/index.d.ts.map +1 -0
  112. package/packages/queue-redis/src/index.js +10 -0
  113. package/packages/queue-redis/src/register.d.ts +6 -0
  114. package/packages/queue-redis/src/register.d.ts.map +1 -0
  115. package/packages/queue-redis/src/register.js +21 -0
  116. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +11 -0
  117. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +1 -0
  118. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +32 -0
  119. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +11 -0
  120. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +1 -0
  121. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +46 -0
  122. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +7 -0
  123. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +1 -0
  124. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +44 -0
  125. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +7 -0
  126. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +1 -0
  127. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +104 -0
  128. package/packages/workers/src/AnomalyDetection.d.ts +107 -0
  129. package/packages/workers/src/AnomalyDetection.d.ts.map +1 -0
  130. package/packages/workers/src/AnomalyDetection.js +329 -0
  131. package/packages/workers/src/AutoScaler.d.ts +128 -0
  132. package/packages/workers/src/AutoScaler.d.ts.map +1 -0
  133. package/packages/workers/src/AutoScaler.js +425 -0
  134. package/packages/workers/src/BroadcastWorker.d.ts +24 -0
  135. package/packages/workers/src/BroadcastWorker.d.ts.map +1 -0
  136. package/packages/workers/src/BroadcastWorker.js +24 -0
  137. package/packages/workers/src/CanaryController.d.ts +104 -0
  138. package/packages/workers/src/CanaryController.d.ts.map +1 -0
  139. package/packages/workers/src/CanaryController.js +424 -0
  140. package/packages/workers/src/ChaosEngineering.d.ts +80 -0
  141. package/packages/workers/src/ChaosEngineering.d.ts.map +1 -0
  142. package/packages/workers/src/ChaosEngineering.js +229 -0
  143. package/packages/workers/src/CircuitBreaker.d.ts +107 -0
  144. package/packages/workers/src/CircuitBreaker.d.ts.map +1 -0
  145. package/packages/workers/src/CircuitBreaker.js +374 -0
  146. package/packages/workers/src/ClusterLock.d.ts +91 -0
  147. package/packages/workers/src/ClusterLock.d.ts.map +1 -0
  148. package/packages/workers/src/ClusterLock.js +397 -0
  149. package/packages/workers/src/ComplianceManager.d.ts +178 -0
  150. package/packages/workers/src/ComplianceManager.d.ts.map +1 -0
  151. package/packages/workers/src/ComplianceManager.js +556 -0
  152. package/packages/workers/src/DatacenterOrchestrator.d.ts +134 -0
  153. package/packages/workers/src/DatacenterOrchestrator.d.ts.map +1 -0
  154. package/packages/workers/src/DatacenterOrchestrator.js +404 -0
  155. package/packages/workers/src/DeadLetterQueue.d.ts +123 -0
  156. package/packages/workers/src/DeadLetterQueue.d.ts.map +1 -0
  157. package/packages/workers/src/DeadLetterQueue.js +544 -0
  158. package/packages/workers/src/HealthMonitor.d.ts +43 -0
  159. package/packages/workers/src/HealthMonitor.d.ts.map +1 -0
  160. package/packages/workers/src/HealthMonitor.js +312 -0
  161. package/packages/workers/src/MultiQueueWorker.d.ts +90 -0
  162. package/packages/workers/src/MultiQueueWorker.d.ts.map +1 -0
  163. package/packages/workers/src/MultiQueueWorker.js +282 -0
  164. package/packages/workers/src/NotificationWorker.d.ts +24 -0
  165. package/packages/workers/src/NotificationWorker.d.ts.map +1 -0
  166. package/packages/workers/src/NotificationWorker.js +23 -0
  167. package/packages/workers/src/Observability.d.ts +154 -0
  168. package/packages/workers/src/Observability.d.ts.map +1 -0
  169. package/packages/workers/src/Observability.js +538 -0
  170. package/packages/workers/src/PluginManager.d.ts +124 -0
  171. package/packages/workers/src/PluginManager.d.ts.map +1 -0
  172. package/packages/workers/src/PluginManager.js +392 -0
  173. package/packages/workers/src/PriorityQueue.d.ts +118 -0
  174. package/packages/workers/src/PriorityQueue.d.ts.map +1 -0
  175. package/packages/workers/src/PriorityQueue.js +276 -0
  176. package/packages/workers/src/ResourceMonitor.d.ts +165 -0
  177. package/packages/workers/src/ResourceMonitor.d.ts.map +1 -0
  178. package/packages/workers/src/ResourceMonitor.js +632 -0
  179. package/packages/workers/src/SLAMonitor.d.ts +111 -0
  180. package/packages/workers/src/SLAMonitor.d.ts.map +1 -0
  181. package/packages/workers/src/SLAMonitor.js +274 -0
  182. package/packages/workers/src/WorkerFactory.d.ts +218 -0
  183. package/packages/workers/src/WorkerFactory.d.ts.map +1 -0
  184. package/packages/workers/src/WorkerFactory.js +2253 -0
  185. package/packages/workers/src/WorkerInit.d.ts +86 -0
  186. package/packages/workers/src/WorkerInit.d.ts.map +1 -0
  187. package/packages/workers/src/WorkerInit.js +307 -0
  188. package/packages/workers/src/WorkerMetrics.d.ts +116 -0
  189. package/packages/workers/src/WorkerMetrics.d.ts.map +1 -0
  190. package/packages/workers/src/WorkerMetrics.js +570 -0
  191. package/packages/workers/src/WorkerRegistry.d.ts +152 -0
  192. package/packages/workers/src/WorkerRegistry.d.ts.map +1 -0
  193. package/packages/workers/src/WorkerRegistry.js +396 -0
  194. package/packages/workers/src/WorkerShutdown.d.ts +70 -0
  195. package/packages/workers/src/WorkerShutdown.d.ts.map +1 -0
  196. package/packages/workers/src/WorkerShutdown.js +185 -0
  197. package/packages/workers/src/WorkerVersioning.d.ts +108 -0
  198. package/packages/workers/src/WorkerVersioning.d.ts.map +1 -0
  199. package/packages/workers/src/WorkerVersioning.js +300 -0
  200. package/packages/workers/src/config/workerConfig.d.ts +5 -0
  201. package/packages/workers/src/config/workerConfig.d.ts.map +1 -0
  202. package/packages/workers/src/config/workerConfig.js +25 -0
  203. package/packages/workers/src/createQueueWorker.d.ts +26 -0
  204. package/packages/workers/src/createQueueWorker.d.ts.map +1 -0
  205. package/packages/workers/src/createQueueWorker.js +367 -0
  206. package/packages/workers/src/dashboard/index.d.ts +2 -0
  207. package/packages/workers/src/dashboard/index.d.ts.map +1 -0
  208. package/packages/workers/src/dashboard/index.js +1 -0
  209. package/packages/workers/src/dashboard/types.d.ts +123 -0
  210. package/packages/workers/src/dashboard/types.d.ts.map +1 -0
  211. package/packages/workers/src/dashboard/types.js +1 -0
  212. package/packages/workers/src/dashboard/workers-api.d.ts +5 -0
  213. package/packages/workers/src/dashboard/workers-api.d.ts.map +1 -0
  214. package/packages/workers/src/dashboard/workers-api.js +738 -0
  215. package/packages/workers/src/helper/index.d.ts +6 -0
  216. package/packages/workers/src/helper/index.d.ts.map +1 -0
  217. package/packages/workers/src/helper/index.js +10 -0
  218. package/packages/workers/src/http/WorkerApiController.d.ts +39 -0
  219. package/packages/workers/src/http/WorkerApiController.d.ts.map +1 -0
  220. package/packages/workers/src/http/WorkerApiController.js +313 -0
  221. package/packages/workers/src/http/WorkerController.d.ts +375 -0
  222. package/packages/workers/src/http/WorkerController.d.ts.map +1 -0
  223. package/packages/workers/src/http/WorkerController.js +1454 -0
  224. package/packages/workers/src/http/WorkerMonitoringService.d.ts +12 -0
  225. package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +1 -0
  226. package/packages/workers/src/http/WorkerMonitoringService.js +89 -0
  227. package/packages/workers/src/http/middleware/CustomValidation.d.ts +93 -0
  228. package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +1 -0
  229. package/packages/workers/src/http/middleware/CustomValidation.js +270 -0
  230. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +4 -0
  231. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +1 -0
  232. package/packages/workers/src/http/middleware/DatacenterValidator.js +94 -0
  233. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +8 -0
  234. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +1 -0
  235. package/packages/workers/src/http/middleware/EditWorkerValidation.js +56 -0
  236. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +4 -0
  237. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +1 -0
  238. package/packages/workers/src/http/middleware/FeaturesValidator.js +60 -0
  239. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +32 -0
  240. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +1 -0
  241. package/packages/workers/src/http/middleware/InfrastructureValidator.js +226 -0
  242. package/packages/workers/src/http/middleware/OptionsValidator.d.ts +4 -0
  243. package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +1 -0
  244. package/packages/workers/src/http/middleware/OptionsValidator.js +112 -0
  245. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +8 -0
  246. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +1 -0
  247. package/packages/workers/src/http/middleware/PayloadSanitizer.js +42 -0
  248. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +4 -0
  249. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +1 -0
  250. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +140 -0
  251. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +4 -0
  252. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +1 -0
  253. package/packages/workers/src/http/middleware/QueueNameSanitizer.js +45 -0
  254. package/packages/workers/src/http/middleware/ValidateDriver.d.ts +8 -0
  255. package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +1 -0
  256. package/packages/workers/src/http/middleware/ValidateDriver.js +20 -0
  257. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +4 -0
  258. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +1 -0
  259. package/packages/workers/src/http/middleware/VersionSanitizer.js +25 -0
  260. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +4 -0
  261. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +1 -0
  262. package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +46 -0
  263. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +28 -0
  264. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +1 -0
  265. package/packages/workers/src/http/middleware/WorkerValidationChain.js +186 -0
  266. package/packages/workers/src/index.d.ts +47 -0
  267. package/packages/workers/src/index.d.ts.map +1 -0
  268. package/packages/workers/src/index.js +48 -0
  269. package/packages/workers/src/routes/workers.d.ts +13 -0
  270. package/packages/workers/src/routes/workers.d.ts.map +1 -0
  271. package/packages/workers/src/routes/workers.js +126 -0
  272. package/packages/workers/src/storage/WorkerStore.d.ts +52 -0
  273. package/packages/workers/src/storage/WorkerStore.d.ts.map +1 -0
  274. package/packages/workers/src/storage/WorkerStore.js +259 -0
  275. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +47 -0
  276. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +1 -0
  277. package/packages/workers/src/telemetry/api/TelemetryAPI.js +219 -0
  278. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +18 -0
  279. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +1 -0
  280. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +140 -0
  281. package/packages/workers/src/telemetry/components/AlertPanel.d.ts +2 -0
  282. package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +1 -0
  283. package/packages/workers/src/telemetry/components/AlertPanel.js +13 -0
  284. package/packages/workers/src/telemetry/components/CostTracking.d.ts +2 -0
  285. package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +1 -0
  286. package/packages/workers/src/telemetry/components/CostTracking.js +14 -0
  287. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +2 -0
  288. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +1 -0
  289. package/packages/workers/src/telemetry/components/ResourceUsageChart.js +11 -0
  290. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +2 -0
  291. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +1 -0
  292. package/packages/workers/src/telemetry/components/WorkerHealthChart.js +11 -0
  293. package/packages/workers/src/telemetry/index.d.ts +16 -0
  294. package/packages/workers/src/telemetry/index.d.ts.map +1 -0
  295. package/packages/workers/src/telemetry/index.js +60 -0
  296. package/packages/workers/src/telemetry/routes/dashboard.d.ts +7 -0
  297. package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +1 -0
  298. package/packages/workers/src/telemetry/routes/dashboard.js +608 -0
  299. package/packages/workers/src/type.d.ts +77 -0
  300. package/packages/workers/src/type.d.ts.map +1 -0
  301. package/packages/workers/src/type.js +1 -0
  302. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +5 -0
  303. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +1 -0
  304. package/packages/workers/src/ui/router/EmbeddedAssets.js +13 -0
  305. package/packages/workers/src/ui/router/ui.d.ts +4 -0
  306. package/packages/workers/src/ui/router/ui.d.ts.map +1 -0
  307. package/packages/workers/src/ui/router/ui.js +208 -0
  308. package/packages/workers/src/ui/types/worker-ui.d.ts +230 -0
  309. package/packages/workers/src/ui/types/worker-ui.d.ts.map +1 -0
  310. package/packages/workers/src/ui/types/worker-ui.js +5 -0
  311. package/routes/api.d.ts +7 -0
  312. package/routes/api.d.ts.map +1 -0
  313. package/routes/api.js +129 -0
  314. package/routes/broadcast.d.ts +9 -0
  315. package/routes/broadcast.d.ts.map +1 -0
  316. package/routes/broadcast.js +27 -0
  317. package/routes/storage.d.ts +4 -0
  318. package/routes/storage.d.ts.map +1 -0
  319. package/routes/storage.js +35 -0
  320. package/src/boot/bootstrap.js +27 -11
  321. package/src/boot/registry/runtime.d.ts.map +1 -1
  322. package/src/boot/registry/runtime.js +11 -0
  323. package/src/cache/Cache.d.ts.map +1 -1
  324. package/src/cache/Cache.js +40 -8
  325. package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
  326. package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
  327. package/src/cache/drivers/KVRemoteDriver.js +259 -44
  328. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
  329. package/src/cache/drivers/MemoryDriver.js +10 -2
  330. package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
  331. package/src/cache/drivers/RedisDriver.js +256 -33
  332. package/src/cli/CLI.d.ts.map +1 -1
  333. package/src/cli/CLI.js +12 -0
  334. package/src/cli/commands/ConfigCommand.d.ts.map +1 -1
  335. package/src/cli/commands/ConfigCommand.js +3 -5
  336. package/src/cli/commands/D1LearnCommand.d.ts +9 -0
  337. package/src/cli/commands/D1LearnCommand.d.ts.map +1 -0
  338. package/src/cli/commands/D1LearnCommand.js +143 -0
  339. package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -1
  340. package/src/cli/commands/D1MigrateCommand.js +55 -16
  341. package/src/cli/commands/InitContainerCommand.d.ts.map +1 -1
  342. package/src/cli/commands/InitContainerCommand.js +30 -15
  343. package/src/cli/commands/InitEcosystemCommand.d.ts +6 -0
  344. package/src/cli/commands/InitEcosystemCommand.d.ts.map +1 -0
  345. package/src/cli/commands/InitEcosystemCommand.js +51 -0
  346. package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
  347. package/src/cli/commands/MigrateCommand.js +78 -36
  348. package/src/cli/commands/MigrateWorkerCommand.d.ts.map +1 -1
  349. package/src/cli/commands/MigrateWorkerCommand.js +36 -2
  350. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  351. package/src/cli/commands/NewCommand.js +33 -0
  352. package/src/cli/commands/PutCommand.d.ts +6 -0
  353. package/src/cli/commands/PutCommand.d.ts.map +1 -0
  354. package/src/cli/commands/PutCommand.js +173 -0
  355. package/src/cli/commands/QueueRecoveryCommand.d.ts.map +1 -1
  356. package/src/cli/commands/QueueRecoveryCommand.js +113 -14
  357. package/src/cli/commands/ScheduleListCommand.d.ts +6 -0
  358. package/src/cli/commands/ScheduleListCommand.d.ts.map +1 -0
  359. package/src/cli/commands/ScheduleListCommand.js +62 -0
  360. package/src/cli/commands/ScheduleRunCommand.d.ts +6 -0
  361. package/src/cli/commands/ScheduleRunCommand.d.ts.map +1 -0
  362. package/src/cli/commands/ScheduleRunCommand.js +32 -0
  363. package/src/cli/commands/ScheduleStartCommand.d.ts +6 -0
  364. package/src/cli/commands/ScheduleStartCommand.d.ts.map +1 -0
  365. package/src/cli/commands/ScheduleStartCommand.js +40 -0
  366. package/src/cli/commands/SecretsCommand.d.ts.map +1 -1
  367. package/src/cli/commands/SecretsCommand.js +2 -2
  368. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  369. package/src/cli/commands/StartCommand.js +23 -1
  370. package/src/cli/commands/schedule/ScheduleCliSupport.d.ts +6 -0
  371. package/src/cli/commands/schedule/ScheduleCliSupport.d.ts.map +1 -0
  372. package/src/cli/commands/schedule/ScheduleCliSupport.js +55 -0
  373. package/src/cli/config/ConfigManager.d.ts.map +1 -1
  374. package/src/cli/config/ConfigManager.js +8 -1
  375. package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
  376. package/src/cli/d1/D1SqlMigrations.js +11 -1
  377. package/src/cli/d1/WranglerConfig.d.ts.map +1 -1
  378. package/src/cli/d1/WranglerConfig.js +34 -2
  379. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  380. package/src/cli/scaffolding/ProjectScaffolder.js +65 -73
  381. package/src/cli/services/VersionChecker.d.ts.map +1 -1
  382. package/src/cli/services/VersionChecker.js +5 -1
  383. package/src/cli/utils/DatabaseCliUtils.d.ts.map +1 -1
  384. package/src/cli/utils/DatabaseCliUtils.js +6 -1
  385. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  386. package/src/cli/utils/DistPackager.js +25 -0
  387. package/src/cli/utils/EnvFileLoader.d.ts +1 -0
  388. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
  389. package/src/cli/utils/EnvFileLoader.js +47 -14
  390. package/src/cli.d.ts +5 -0
  391. package/src/cli.d.ts.map +1 -0
  392. package/src/cli.js +4 -0
  393. package/src/collections/index.d.ts +2 -2
  394. package/src/collections/index.d.ts.map +1 -1
  395. package/src/collections/index.js +1 -1
  396. package/src/common/RemoteSignedJson.d.ts.map +1 -1
  397. package/src/common/RemoteSignedJson.js +58 -25
  398. package/src/common/utility.d.ts.map +1 -1
  399. package/src/common/utility.js +2 -6
  400. package/src/config/cache.js +1 -1
  401. package/src/config/cloudflare.d.ts.map +1 -1
  402. package/src/config/cloudflare.js +19 -8
  403. package/src/config/env.d.ts +7 -0
  404. package/src/config/env.d.ts.map +1 -1
  405. package/src/config/env.js +10 -2
  406. package/src/config/queue.js +1 -1
  407. package/src/functions/cloudflare.d.ts.map +1 -1
  408. package/src/functions/cloudflare.js +4 -2
  409. package/src/helper/index.d.ts +225 -0
  410. package/src/helper/index.d.ts.map +1 -0
  411. package/src/helper/index.js +347 -0
  412. package/src/index.d.ts +3 -6
  413. package/src/index.d.ts.map +1 -1
  414. package/src/index.js +7 -9
  415. package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -1
  416. package/src/middleware/JwtAuthMiddleware.js +11 -5
  417. package/src/migrations/MigrationDiscovery.d.ts.map +1 -1
  418. package/src/migrations/MigrationDiscovery.js +2 -1
  419. package/src/orm/DatabaseAdapter.d.ts +1 -0
  420. package/src/orm/DatabaseAdapter.d.ts.map +1 -1
  421. package/src/orm/SchemaStatemenWriter.d.ts +15 -0
  422. package/src/orm/SchemaStatemenWriter.d.ts.map +1 -0
  423. package/src/orm/SchemaStatemenWriter.js +78 -0
  424. package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
  425. package/src/orm/adapters/D1Adapter.js +52 -2
  426. package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
  427. package/src/orm/adapters/D1RemoteAdapter.js +137 -89
  428. package/src/orm/adapters/MySQLProxyAdapter.d.ts.map +1 -1
  429. package/src/orm/adapters/MySQLProxyAdapter.js +100 -81
  430. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts.map +1 -1
  431. package/src/orm/adapters/PostgreSQLProxyAdapter.js +26 -10
  432. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts.map +1 -1
  433. package/src/orm/adapters/SqlProxyAdapterUtils.js +2 -1
  434. package/src/orm/adapters/SqlProxyRegistryMode.d.ts +12 -0
  435. package/src/orm/adapters/SqlProxyRegistryMode.d.ts.map +1 -0
  436. package/src/orm/adapters/SqlProxyRegistryMode.js +24 -0
  437. package/src/orm/adapters/SqlServerProxyAdapter.d.ts +3 -0
  438. package/src/orm/adapters/SqlServerProxyAdapter.d.ts.map +1 -1
  439. package/src/orm/adapters/SqlServerProxyAdapter.js +125 -117
  440. package/src/orm/migrations/MigrationStore.js +1 -1
  441. package/src/proxy/ProxyRequestParsing.d.ts +9 -0
  442. package/src/proxy/ProxyRequestParsing.d.ts.map +1 -0
  443. package/src/proxy/ProxyRequestParsing.js +16 -0
  444. package/src/proxy/RequestValidator.d.ts.map +1 -1
  445. package/src/proxy/RequestValidator.js +2 -1
  446. package/src/proxy/SigningService.js +2 -2
  447. package/src/proxy/SqlProxyDbOverrides.d.ts +17 -0
  448. package/src/proxy/SqlProxyDbOverrides.d.ts.map +1 -0
  449. package/src/proxy/SqlProxyDbOverrides.js +1 -0
  450. package/src/proxy/SqlProxyServerDeps.d.ts +12 -0
  451. package/src/proxy/SqlProxyServerDeps.d.ts.map +1 -0
  452. package/src/proxy/SqlProxyServerDeps.js +9 -0
  453. package/src/proxy/StatementPayloadValidator.d.ts +13 -0
  454. package/src/proxy/StatementPayloadValidator.d.ts.map +1 -0
  455. package/src/proxy/StatementPayloadValidator.js +18 -0
  456. package/src/proxy/StatementRegistryLoader.d.ts +2 -0
  457. package/src/proxy/StatementRegistryLoader.d.ts.map +1 -0
  458. package/src/proxy/StatementRegistryLoader.js +36 -0
  459. package/src/proxy/StatementRegistryResolver.d.ts +15 -0
  460. package/src/proxy/StatementRegistryResolver.d.ts.map +1 -0
  461. package/src/proxy/StatementRegistryResolver.js +34 -0
  462. package/src/proxy/d1/ZintrustD1Proxy.d.ts +2 -1
  463. package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -1
  464. package/src/proxy/d1/ZintrustD1Proxy.js +2 -1
  465. package/src/proxy/isMutatingSql.d.ts +2 -0
  466. package/src/proxy/isMutatingSql.d.ts.map +1 -0
  467. package/src/proxy/isMutatingSql.js +12 -0
  468. package/src/proxy/kv/ZintrustKvProxy.d.ts +2 -1
  469. package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -1
  470. package/src/proxy/kv/ZintrustKvProxy.js +2 -1
  471. package/src/proxy/mysql/MySqlProxyServer.d.ts +2 -8
  472. package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -1
  473. package/src/proxy/mysql/MySqlProxyServer.js +84 -51
  474. package/src/proxy/postgres/PostgresProxyServer.d.ts +2 -8
  475. package/src/proxy/postgres/PostgresProxyServer.d.ts.map +1 -1
  476. package/src/proxy/postgres/PostgresProxyServer.js +86 -48
  477. package/src/proxy/smtp/SmtpProxyServer.d.ts.map +1 -1
  478. package/src/proxy/smtp/SmtpProxyServer.js +6 -5
  479. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts +2 -8
  480. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts.map +1 -1
  481. package/src/proxy/sqlserver/SqlServerProxyServer.js +84 -49
  482. package/src/proxy.d.ts +4 -0
  483. package/src/proxy.d.ts.map +1 -0
  484. package/src/proxy.js +3 -0
  485. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  486. package/src/runtime/RuntimeAdapter.js +30 -12
  487. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  488. package/src/runtime/adapters/CloudflareAdapter.js +15 -4
  489. package/src/scheduler/Schedule.d.ts +36 -0
  490. package/src/scheduler/Schedule.d.ts.map +1 -0
  491. package/src/scheduler/Schedule.js +197 -0
  492. package/src/scheduler/ScheduleHttpGateway.d.ts +8 -0
  493. package/src/scheduler/ScheduleHttpGateway.d.ts.map +1 -0
  494. package/src/scheduler/ScheduleHttpGateway.js +196 -0
  495. package/src/scheduler/ScheduleRunner.d.ts +6 -0
  496. package/src/scheduler/ScheduleRunner.d.ts.map +1 -1
  497. package/src/scheduler/ScheduleRunner.js +166 -29
  498. package/src/scheduler/SchedulerRuntime.d.ts +15 -0
  499. package/src/scheduler/SchedulerRuntime.d.ts.map +1 -0
  500. package/src/scheduler/SchedulerRuntime.js +79 -0
  501. package/src/scheduler/cron/Cron.d.ts +19 -0
  502. package/src/scheduler/cron/Cron.d.ts.map +1 -0
  503. package/src/scheduler/cron/Cron.js +200 -0
  504. package/src/scheduler/leader/SchedulerLeader.d.ts +14 -0
  505. package/src/scheduler/leader/SchedulerLeader.d.ts.map +1 -0
  506. package/src/scheduler/leader/SchedulerLeader.js +187 -0
  507. package/src/scheduler/state/ScheduleStateStore.d.ts +27 -0
  508. package/src/scheduler/state/ScheduleStateStore.d.ts.map +1 -0
  509. package/src/scheduler/state/ScheduleStateStore.js +27 -0
  510. package/src/scheduler/types.d.ts +10 -0
  511. package/src/scheduler/types.d.ts.map +1 -1
  512. package/src/schedules/index.d.ts +1 -0
  513. package/src/schedules/index.d.ts.map +1 -1
  514. package/src/schedules/index.js +1 -0
  515. package/src/schedules/job-tracking-cleanup.d.ts +4 -0
  516. package/src/schedules/job-tracking-cleanup.d.ts.map +1 -0
  517. package/src/schedules/job-tracking-cleanup.js +116 -0
  518. package/src/schedules/log-cleanup.d.ts +1 -2
  519. package/src/schedules/log-cleanup.d.ts.map +1 -1
  520. package/src/schedules/log-cleanup.js +12 -15
  521. package/src/security/Sanitizer.d.ts.map +1 -1
  522. package/src/security/Sanitizer.js +1 -9
  523. package/src/security/SignedRequest.d.ts.map +1 -1
  524. package/src/security/SignedRequest.js +2 -2
  525. package/src/security/TokenRevocation.d.ts +19 -2
  526. package/src/security/TokenRevocation.d.ts.map +1 -1
  527. package/src/security/TokenRevocation.js +558 -30
  528. package/src/templates/docker/docker-compose.ecosystem.yml.tpl +301 -0
  529. package/src/templates/docker/docker-compose.schedules.yml.tpl +84 -0
  530. package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +11 -3
  531. package/src/templates/project/basic/app/Schedules/index.ts.tpl +0 -0
  532. package/src/templates/project/basic/config/database.ts.tpl +1 -1
  533. package/src/templates/project/basic/config/middleware.ts.tpl +23 -22
  534. package/src/templates/project/basic/wrangler.jsonc.tpl +28 -0
  535. package/src/toolkit/Secrets/Manifest.d.ts.map +1 -1
  536. package/src/toolkit/Secrets/Manifest.js +5 -7
  537. package/src/tools/mail/drivers/Smtp.d.ts.map +1 -1
  538. package/src/tools/mail/drivers/Smtp.js +7 -1
  539. package/src/tools/queue/JobReconciliationRunner.d.ts.map +1 -1
  540. package/src/tools/queue/JobReconciliationRunner.js +7 -39
  541. package/src/tools/queue/JobRecoveryDaemon.d.ts.map +1 -1
  542. package/src/tools/queue/JobRecoveryDaemon.js +116 -18
  543. package/src/tools/queue/JobStateTracker.d.ts +10 -1
  544. package/src/tools/queue/JobStateTracker.d.ts.map +1 -1
  545. package/src/tools/queue/JobStateTracker.js +24 -2
  546. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts.map +1 -1
  547. package/src/tools/queue/JobStateTrackerDbPersistence.js +93 -2
@@ -1,4 +1,5 @@
1
1
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
2
+ import { isObject } from '../helper/index.js';
2
3
  import { normalizeSigningCredentials } from '../proxy/SigningService.js';
3
4
  import { SignedRequest } from '../security/SignedRequest.js';
4
5
  const joinUrl = (baseUrl, path) => {
@@ -20,6 +21,22 @@ const asJson = async (resp) => {
20
21
  return { message: text };
21
22
  }
22
23
  };
24
+ const isRecord = (value) => isObject(value);
25
+ const describeProxyError = (details) => {
26
+ // Expected Worker proxy error shape: { status: number, body: { code: string, message: string } }
27
+ if (!isRecord(details))
28
+ return '';
29
+ const body = details['body'];
30
+ if (!isRecord(body))
31
+ return '';
32
+ const code = typeof body['code'] === 'string' ? body['code'] : '';
33
+ const message = typeof body['message'] === 'string' ? body['message'] : '';
34
+ if (code === '' && message === '')
35
+ return '';
36
+ if (code !== '' && message !== '')
37
+ return `${code}: ${message}`;
38
+ return code === '' ? message : code;
39
+ };
23
40
  const normalizeSettings = (settings) => {
24
41
  const creds = normalizeSigningCredentials({
25
42
  keyId: settings.keyId,
@@ -35,7 +52,7 @@ const requireConfigured = (settings) => {
35
52
  throw ErrorFactory.createConfigError(settings.missingCredentialsMessage);
36
53
  }
37
54
  };
38
- const createTimeoutSignal = (timeoutMs) => {
55
+ const getNativeTimeoutSignal = (timeoutMs) => {
39
56
  if (timeoutMs <= 0)
40
57
  return undefined;
41
58
  const timeout = AbortSignal.timeout;
@@ -57,6 +74,36 @@ const buildSigningUrl = (url, settings) => {
57
74
  }
58
75
  return signingUrl;
59
76
  };
77
+ const throwForNonOkResponse = async (resp, settings) => {
78
+ const details = await asJson(resp);
79
+ switch (resp.status) {
80
+ case 401:
81
+ throw ErrorFactory.createUnauthorizedError(settings.messages.unauthorized, details);
82
+ case 403:
83
+ throw ErrorFactory.createForbiddenError(settings.messages.forbidden, details);
84
+ case 429:
85
+ throw ErrorFactory.createSecurityError(settings.messages.rateLimited, details);
86
+ default: {
87
+ if (resp.status >= 400 && resp.status < 500) {
88
+ throw ErrorFactory.createValidationError(settings.messages.rejected, details);
89
+ }
90
+ const extra = describeProxyError(details);
91
+ const msg = extra === '' ? settings.messages.error : `${settings.messages.error} (${extra})`;
92
+ throw ErrorFactory.createConnectionError(msg, {
93
+ status: resp.status,
94
+ details,
95
+ });
96
+ }
97
+ }
98
+ };
99
+ const rethrowRequestError = (error, settings) => {
100
+ if (error instanceof Error && error.name === 'AbortError') {
101
+ throw ErrorFactory.createConnectionError(settings.messages.timedOut, {
102
+ timeoutMs: settings.timeoutMs,
103
+ });
104
+ }
105
+ throw error;
106
+ };
60
107
  export const RemoteSignedJson = Object.freeze({
61
108
  async request(settings, path, payload) {
62
109
  const normalized = normalizeSettings(settings);
@@ -71,41 +118,27 @@ export const RemoteSignedJson = Object.freeze({
71
118
  keyId: normalized.keyId,
72
119
  secret: normalized.secret,
73
120
  });
121
+ const nativeSignal = getNativeTimeoutSignal(normalized.timeoutMs);
122
+ if (nativeSignal === undefined && normalized.timeoutMs > 0) {
123
+ throw ErrorFactory.createConfigError('RemoteSignedJson timeout requires AbortSignal.timeout() support in this runtime', { timeoutMs: normalized.timeoutMs });
124
+ }
74
125
  try {
75
126
  const resp = await fetch(url, {
76
127
  method: 'POST',
77
128
  headers: { 'Content-Type': 'application/json', ...signed },
78
129
  body,
79
- signal: createTimeoutSignal(normalized.timeoutMs),
130
+ signal: nativeSignal,
80
131
  });
81
132
  if (!resp.ok) {
82
- const details = await asJson(resp);
83
- if (resp.status === 401) {
84
- throw ErrorFactory.createUnauthorizedError(normalized.messages.unauthorized, details);
85
- }
86
- if (resp.status === 403) {
87
- throw ErrorFactory.createForbiddenError(normalized.messages.forbidden, details);
88
- }
89
- if (resp.status === 429) {
90
- throw ErrorFactory.createSecurityError(normalized.messages.rateLimited, details);
91
- }
92
- if (resp.status >= 400 && resp.status < 500) {
93
- throw ErrorFactory.createValidationError(normalized.messages.rejected, details);
94
- }
95
- throw ErrorFactory.createConnectionError(normalized.messages.error, {
96
- status: resp.status,
97
- details,
98
- });
133
+ await throwForNonOkResponse(resp, normalized);
99
134
  }
100
135
  return (await asJson(resp));
101
136
  }
102
137
  catch (error) {
103
- if (error instanceof Error && error.name === 'AbortError') {
104
- throw ErrorFactory.createConnectionError(normalized.messages.timedOut, {
105
- timeoutMs: normalized.timeoutMs,
106
- });
107
- }
108
- throw error;
138
+ return rethrowRequestError(error, normalized);
139
+ }
140
+ finally {
141
+ // No timer cleanup needed: uses AbortSignal.timeout() when available.
109
142
  }
110
143
  },
111
144
  });
@@ -1 +1 @@
1
- {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../../src/common/utility.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,QAAO,MAG/B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,MAAgE,GACvE,MAAM,CAoBR;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,MAAkD,CAAC;AAQ9F,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS/C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAGpF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKtD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,MAAM,CAqB3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,MAAM,CAe5D;AAED,eAAO,MAAM,MAAM,QAAO,MAAkC,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACtC,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5E,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,SAAS;wBA5HU,MAAM;uBA6BL,OAAO,KAAG,MAAM;;;;;;;;;kBA+EvB,MAAM;EA4B9B,CAAC"}
1
+ {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../../src/common/utility.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,QAAO,MAG/B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,MAAgE,GACvE,MAAM,CAoBR;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,MAAkD,CAAC;AAQ9F,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAGpF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKtD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,MAAM,CAqB3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,MAAM,CAe5D;AAED,eAAO,MAAM,MAAM,QAAO,MAAkC,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACtC,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5E,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,SAAS;wBArHU,MAAM;uBA6BL,OAAO,KAAG,MAAM;;;;;;;;;kBAwEvB,MAAM;EA4B9B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
2
+ import { isEmpty as isEmptyHelper } from '../helper/index.js';
2
3
  import { randomBytes } from '../node-singletons/crypto.js';
3
4
  export const generateUuid = () => {
4
5
  if (typeof globalThis?.crypto?.randomUUID === 'function')
@@ -30,12 +31,7 @@ function bytesToHex(bytes) {
30
31
  return out;
31
32
  }
32
33
  export function isEmpty(value) {
33
- return (value === null ||
34
- value === undefined ||
35
- value === false ||
36
- value === 0 ||
37
- value === '' ||
38
- value === '0');
34
+ return isEmptyHelper(value);
39
35
  }
40
36
  export function toStr(value) {
41
37
  return String(value ?? '');
@@ -3,8 +3,8 @@
3
3
  * Caching drivers and settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
- import { Env } from './env.js';
7
6
  import { Cloudflare } from './cloudflare.js';
7
+ import { Env } from './env.js';
8
8
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
9
9
  import { StartupConfigFile, StartupConfigFileRegistry } from '../runtime/StartupConfigFileRegistry.js';
10
10
  const getCacheDriver = (config, name) => {
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/config/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAwExE,eAAO,MAAM,UAAU;yBAtEG,UAAU,GAAG,IAAI;2BAOb,cAAc,KAAG,WAAW,GAAG,IAAI;4CAanB,WAAW,GAAG,IAAI;iCAQ5B,MAAM,KAAG,OAAO;4BA0BvB,aAAa,GAAG,IAAI;yBATrB,MAAM,KAAG,MAAM,GAAG,IAAI;sCAiBX,OAAO;EAgB5C,CAAC"}
1
+ {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/config/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAwFxE,eAAO,MAAM,UAAU;yBAtFG,UAAU,GAAG,IAAI;2BAOb,cAAc,KAAG,WAAW,GAAG,IAAI;iCAwB7B,MAAM,KAAG,WAAW,GAAG,IAAI;iCAa3B,MAAM,KAAG,OAAO;4BA0BvB,aAAa,GAAG,IAAI;yBATrB,MAAM,KAAG,MAAM,GAAG,IAAI;sCAiBX,OAAO;EAgB5C,CAAC"}
@@ -16,19 +16,30 @@ const getD1Binding = (config) => {
16
16
  if (config.d1 !== undefined && config.d1 !== null)
17
17
  return config.d1;
18
18
  const env = getWorkersEnv();
19
- const envDb = env === null ? undefined : env['DB'];
20
- if (envDb !== undefined)
21
- return envDb;
22
- const globalDb = globalThis.DB;
23
- if (globalDb !== undefined)
24
- return globalDb;
19
+ const candidateNames = ['DB', 'zintrust_db', getWorkersVar('D1_BINDING') ?? ''].filter((name, idx, arr) => name.trim() !== '' && arr.indexOf(name) === idx);
20
+ if (env !== null) {
21
+ for (const name of candidateNames) {
22
+ const binding = env[name];
23
+ if (binding !== undefined && binding !== null)
24
+ return binding;
25
+ }
26
+ }
27
+ const globalRef = globalThis;
28
+ for (const name of candidateNames) {
29
+ const binding = globalRef[name];
30
+ if (binding !== undefined && binding !== null)
31
+ return binding;
32
+ }
25
33
  return null;
26
34
  };
27
- const getKVBinding = (bindingName = 'CACHE') => {
35
+ const getKVBinding = (bindingName) => {
28
36
  const env = getWorkersEnv();
29
37
  if (env === null)
30
38
  return null;
31
- const kv = env[bindingName];
39
+ const resolvedName = typeof bindingName === 'string' && bindingName.trim() !== ''
40
+ ? bindingName
41
+ : (getWorkersVar('KV_NAMESPACE') ?? 'CACHE');
42
+ const kv = env[resolvedName];
32
43
  return kv ?? null;
33
44
  };
34
45
  const getR2Binding = (bindingName) => {
@@ -171,6 +171,13 @@ export declare const Env: Readonly<{
171
171
  CSRF_STORE: string;
172
172
  CSRF_DRIVER: string;
173
173
  CSRF_REDIS_DB: number;
174
+ JWT_REVOCATION_DRIVER: string;
175
+ JWT_REVOCATION_DB_CONNECTION: string;
176
+ JWT_REVOCATION_DB_TABLE: string;
177
+ JWT_REVOCATION_REDIS_DB: number;
178
+ JWT_REVOCATION_REDIS_PREFIX: string;
179
+ JWT_REVOCATION_KV_BINDING: string;
180
+ JWT_REVOCATION_KV_PREFIX: string;
174
181
  ENCRYPTION_CIPHER: string;
175
182
  ENVIRONMENT: string;
176
183
  REQUEST_TIMEOUT: number;
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAuBlF,eAAO,MAAM,cAAc,QAAO,WAAW,GAAG,SAAwB,CAAC;AAEzE,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,MAKzE,CAAC;AAGF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAIxD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,cAAc,MAAM,KAAG,MAI1D,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAI7D,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,eAAe,OAAO,KAAG,OAI7D,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,IAGhD,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,IAInC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,QAAQ,SAAS,GAAG,IAAI,KAAG,IAEpD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAOhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAKjE,CAAC;AACF,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAKxE,eAAO,MAAM,GAAG;eA3DS,MAAM,iBAAiB,MAAM,KAAG,MAAM;kBAMnC,MAAM,gBAAgB,MAAM,KAAG,MAAM;mBAYpC,MAAM,iBAAiB,OAAO,KAAG,OAAO;oBANvC,MAAM,iBAAiB,MAAM,KAAG,MAAM;eAY3C,MAAM,SAAS,MAAM,KAAG,IAAI;iBAK1B,MAAM,KAAG,IAAI;wBAMN,SAAS,GAAG,IAAI,KAAG,IAAI;oBAI7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;cAgCJ,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAuNpB,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFxF,CAAC;AAEH,eAAO,MAAM,aAAa,QAAO,MAchC,CAAC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAuBlF,eAAO,MAAM,cAAc,QAAO,WAAW,GAAG,SAAwB,CAAC;AAEzE,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,MAKzE,CAAC;AAGF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAIxD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,cAAc,MAAM,KAAG,MAI1D,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAI7D,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,eAAe,OAAO,KAAG,OAI7D,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,IAGhD,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,IAInC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,QAAQ,SAAS,GAAG,IAAI,KAAG,IAEpD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAOhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAKjE,CAAC;AACF,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAKxE,eAAO,MAAM,GAAG;eA3DS,MAAM,iBAAiB,MAAM,KAAG,MAAM;kBAMnC,MAAM,gBAAgB,MAAM,KAAG,MAAM;mBAYpC,MAAM,iBAAiB,OAAO,KAAG,OAAO;oBANvC,MAAM,iBAAiB,MAAM,KAAG,MAAM;eAY3C,MAAM,SAAS,MAAM,KAAG,IAAI;iBAK1B,MAAM,KAAG,IAAI;wBAMN,SAAS,GAAG,IAAI,KAAG,IAAI;oBAI7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;cAgCJ,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAgOpB,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFxF,CAAC;AAEH,eAAO,MAAM,aAAa,QAAO,MAchC,CAAC"}
package/src/config/env.js CHANGED
@@ -138,8 +138,8 @@ export const Env = Object.freeze({
138
138
  KV_NAMESPACE_ID: get('KV_NAMESPACE_ID'),
139
139
  // Cloudflare proxy services (D1/KV outside Cloudflare)
140
140
  D1_REMOTE_URL: get('D1_REMOTE_URL', ''),
141
- D1_REMOTE_KEY_ID: get('D1_REMOTE_KEY_ID', ''),
142
- D1_REMOTE_SECRET: get('D1_REMOTE_SECRET', ''),
141
+ D1_REMOTE_KEY_ID: get('D1_REMOTE_KEY_ID', PROXY_KEY_ID_FALLBACK),
142
+ D1_REMOTE_SECRET: get('D1_REMOTE_SECRET', PROXY_SECRET_FALLBACK),
143
143
  D1_REMOTE_MODE: get('D1_REMOTE_MODE', 'registry'),
144
144
  MYSQL_PROXY_URL: get('MYSQL_PROXY_URL', ''),
145
145
  MYSQL_PROXY_HOST: get('MYSQL_PROXY_HOST', '127.0.0.1'),
@@ -261,6 +261,14 @@ export const Env = Object.freeze({
261
261
  CSRF_STORE: get('CSRF_STORE', ''),
262
262
  CSRF_DRIVER: get('CSRF_DRIVER', ''),
263
263
  CSRF_REDIS_DB: getInt('CSRF_REDIS_DB', 1),
264
+ // JWT revocation (token invalidation)
265
+ JWT_REVOCATION_DRIVER: get('JWT_REVOCATION_DRIVER', 'database'),
266
+ JWT_REVOCATION_DB_CONNECTION: get('JWT_REVOCATION_DB_CONNECTION', 'default'),
267
+ JWT_REVOCATION_DB_TABLE: get('JWT_REVOCATION_DB_TABLE', 'zintrust_jwt_revocations'),
268
+ JWT_REVOCATION_REDIS_DB: getInt('JWT_REVOCATION_REDIS_DB', 0),
269
+ JWT_REVOCATION_REDIS_PREFIX: get('JWT_REVOCATION_REDIS_PREFIX', 'zt:jwt:revoked:'),
270
+ JWT_REVOCATION_KV_BINDING: get('JWT_REVOCATION_KV_BINDING', 'CACHE'),
271
+ JWT_REVOCATION_KV_PREFIX: get('JWT_REVOCATION_KV_PREFIX', 'zt:jwt:revoked:'),
264
272
  // Encryption interop
265
273
  ENCRYPTION_CIPHER: get('ENCRYPTION_CIPHER', ''),
266
274
  // Deployment
@@ -114,7 +114,7 @@ export const createBaseDrivers = () => ({
114
114
  * Helper: Create monitor configuration from environment
115
115
  */
116
116
  const createBaseMonitor = () => ({
117
- enabled: Env.getBool('QUEUE_MONITOR_ENABLED', true),
117
+ enabled: Env.getBool('QUEUE_MONITOR_ENABLED', false),
118
118
  basePath: Env.get('QUEUE_MONITOR_BASE_PATH', '/queue-monitor'),
119
119
  middleware: Env.get('QUEUE_MONITOR_MIDDLEWARE', '')
120
120
  .split(',')
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/functions/cloudflare.ts"],"names":[],"mappings":";mBAqFuB,OAAO,QAAQ,OAAO,QAAQ,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;;AADhF,wBA8BE"}
1
+ {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/functions/cloudflare.ts"],"names":[],"mappings":";mBAmFuB,OAAO,QAAQ,OAAO,QAAQ,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;;AADhF,wBAkCE"}
@@ -1,5 +1,4 @@
1
1
  import { Logger } from '../config/logger.js';
2
- import * as AppRoutes from '../../routes/api.js';
3
2
  import { CloudflareAdapter } from '../runtime/adapters/CloudflareAdapter.js';
4
3
  import { StartupConfigFile } from '../runtime/StartupConfigFileRegistry.js';
5
4
  import { WorkerAdapterImports } from '../runtime/WorkerAdapterImports.js';
@@ -52,7 +51,10 @@ export default {
52
51
  try {
53
52
  // Make bindings available to framework code in Workers
54
53
  globalThis.env = _env;
55
- globalThis.__zintrustRoutes = AppRoutes;
54
+ const AppRoutes = (await import('@routes/' + 'api.ts'));
55
+ if (AppRoutes !== undefined) {
56
+ globalThis.__zintrustRoutes = AppRoutes;
57
+ }
56
58
  await ensureStartupConfigOverridesLoaded();
57
59
  await WorkerAdapterImports.ready; // NOSONAR - Ensure adapter imports are ready before handling requests.
58
60
  await injectIoredisModule();
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Lightweight validation / type helper utilities used across the codebase.
3
+ * Keep implementations small and dependency-free so they work in both
4
+ * Node and Cloudflare Worker runtimes.
5
+ */
6
+ /** Check whether value is a string primitive */
7
+ export declare const isString: (value: unknown) => value is string;
8
+ /** Check whether value is an array */
9
+ export declare const isArray: (value: unknown) => value is unknown[];
10
+ /** Check whether value is an object (and not null/array) */
11
+ export declare const isObject: (value: unknown) => value is Record<string, unknown>;
12
+ /** Check whether value is a function */
13
+ export declare const isFunction: (value: unknown) => value is (...args: unknown[]) => unknown;
14
+ /** Check whether value is a valid Date object */
15
+ export declare const isDate: (value: unknown) => value is Date;
16
+ /**
17
+ * Check if value is "empty".
18
+ * Matches legacy behavior: null, undefined, false, 0, '', '0' are all considered empty.
19
+ */
20
+ export declare const isEmpty: (value: unknown) => boolean;
21
+ /** Check if value is null or string 'null'/'NULL' or empty string */
22
+ export declare const isNull: (value: unknown) => boolean;
23
+ /** Check if value is undefined */
24
+ export declare const isUndefined: (value: unknown) => boolean;
25
+ /** Check if value is undefined or satisfies isNull() */
26
+ export declare const isUndefinedOrNull: (value: unknown) => boolean;
27
+ /**
28
+ * Check whether value is a boolean primitive.
29
+ */
30
+ export declare function isBoolean(value: unknown, allowString?: false): value is boolean;
31
+ /**
32
+ * Check whether value is a boolean primitive OR a boolean-like string.
33
+ */
34
+ export declare function isBoolean(value: unknown, allowString: true): value is boolean | string;
35
+ /** Check if value is a string representation of a boolean (true/false/1/0) */
36
+ export declare const isBooleanString: (value: unknown) => boolean;
37
+ /** Check if value is a valid number or numeric string */
38
+ export declare const isNumeric: (value: unknown) => boolean;
39
+ /**
40
+ * Check if value is an integer.
41
+ */
42
+ export declare function isInt(value: unknown, allowString?: false, conditions?: {
43
+ min?: number;
44
+ max?: number;
45
+ }): value is number;
46
+ /**
47
+ * Check if value is an integer OR a string representing an integer.
48
+ */
49
+ export declare function isInt(value: unknown, allowString: true, conditions?: {
50
+ min?: number;
51
+ max?: number;
52
+ }): value is number | string;
53
+ /**
54
+ * Check if value is a float (finite number).
55
+ */
56
+ export declare function isFloat(value: unknown, allowString?: false, conditions?: {
57
+ min?: number;
58
+ max?: number;
59
+ }): value is number;
60
+ /**
61
+ * Check if value is a float OR a string representing a float.
62
+ */
63
+ export declare function isFloat(value: unknown, allowString: true, conditions?: {
64
+ min?: number;
65
+ max?: number;
66
+ }): value is number | string;
67
+ /** Check if value is a valid integer string (supports min/max) */
68
+ export declare const isIntString: (value: unknown, conditions?: {
69
+ min?: number;
70
+ max?: number;
71
+ }) => boolean;
72
+ /** Check if value is a valid float string (supports min/max) */
73
+ export declare const isFloatString: (value: unknown, conditions?: {
74
+ min?: number;
75
+ max?: number;
76
+ }) => boolean;
77
+ /** Check if value is a valid email string */
78
+ export declare const isEmail: (value: unknown) => boolean;
79
+ /** Check if value is a valid URL string (http/https) */
80
+ export declare const isUrl: (value: unknown) => boolean;
81
+ /** Check if string contains only letters */
82
+ export declare const isAlpha: (value: unknown) => boolean;
83
+ /** Check if string contains only letters and numbers */
84
+ export declare const isAlphanumeric: (value: unknown) => boolean;
85
+ /**
86
+ * Check if string matches regex.
87
+ *
88
+ * Security/perf: Regex evaluation can be expensive for some patterns.
89
+ * This helper defensively caps the input length to reduce ReDoS risk
90
+ * when used on untrusted strings.
91
+ */
92
+ export declare const isMatch: (value: unknown, regex: RegExp, options?: {
93
+ maxLength?: number;
94
+ }) => boolean;
95
+ /** Check if value exists in array */
96
+ export declare const isIn: (value: unknown, array: unknown[]) => boolean;
97
+ /** Check if value does not exist in array */
98
+ export declare const isNotIn: (value: unknown, array: unknown[]) => boolean;
99
+ /** Check if string or array has exact length */
100
+ export declare const isLength: (value: unknown, length: number) => boolean;
101
+ /** Check if string or array has minimum length */
102
+ export declare const isMinLength: (value: unknown, min: number) => boolean;
103
+ /** Check if string or array has maximum length */
104
+ export declare const isMaxLength: (value: unknown, max: number) => boolean;
105
+ /** Check if value is a string with length > 0 (after trim) */
106
+ export declare const isNonEmptyString: (value: unknown) => value is string;
107
+ /** Check if value is an array with items */
108
+ export declare const isNonEmptyArray: (value: unknown) => value is unknown[];
109
+ /** Check if value is an object with keys */
110
+ export declare const isNonEmptyObject: (value: unknown) => value is Record<string, unknown>;
111
+ /**
112
+ * Check if value is a string containing only whitespace.
113
+ * Useful for distinguishing between truly empty and whitespace-only strings.
114
+ */
115
+ export declare const isWhitespaceOnly: (value: unknown) => boolean;
116
+ /**
117
+ * Check if value is a valid UUID v4 string.
118
+ * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
119
+ */
120
+ export declare const isUUID: (value: unknown) => boolean;
121
+ /**
122
+ * Check if value is a valid JSON string (parses without error).
123
+ */
124
+ export declare const isJSON: (value: unknown) => boolean;
125
+ /**
126
+ * Check if value is a valid Base64-encoded string.
127
+ */
128
+ export declare const isBase64: (value: unknown) => boolean;
129
+ /**
130
+ * Check if value is a valid hexadecimal color string.
131
+ * Accepts #RGB, #RGBA, #RRGGBB, #RRGGBBAA formats.
132
+ */
133
+ export declare const isHexColor: (value: unknown) => boolean;
134
+ /**
135
+ * Check if value is a valid URL slug (lowercase alphanumeric with hyphens).
136
+ * Example: "my-blog-post", "user-profile-page"
137
+ */
138
+ export declare const isSlug: (value: unknown) => boolean;
139
+ /**
140
+ * Check if value is a string with uppercase letters.
141
+ */
142
+ export declare const isUpperCase: (value: unknown) => boolean;
143
+ /**
144
+ * Check if value is a string with lowercase letters.
145
+ */
146
+ export declare const isLowerCase: (value: unknown) => boolean;
147
+ /** Check if number is positive (> 0) */
148
+ export declare const isPositive: (value: unknown) => boolean;
149
+ /** Check if number is negative (< 0) */
150
+ export declare const isNegative: (value: unknown) => boolean;
151
+ /** Check if number is zero */
152
+ export declare const isZero: (value: unknown) => boolean;
153
+ /** Check if number is even */
154
+ export declare const isEven: (value: unknown) => boolean;
155
+ /** Check if number is odd */
156
+ export declare const isOdd: (value: unknown) => boolean;
157
+ /**
158
+ * Check if number has decimal places.
159
+ * Examples: 1.5 → true, 1.0 → false, 1 → false
160
+ */
161
+ export declare const isDecimal: (value: unknown) => boolean;
162
+ /**
163
+ * Check if number is between min and max (inclusive).
164
+ */
165
+ export declare const isBetween: (value: unknown, min: number, max: number) => boolean;
166
+ /**
167
+ * Check if number is divisible by divisor.
168
+ */
169
+ export declare const isDivisibleBy: (value: unknown, divisor: number) => boolean;
170
+ export declare const Helpers: Readonly<{
171
+ isString: (value: unknown) => value is string;
172
+ isBoolean: typeof isBoolean;
173
+ isBooleanString: (value: unknown) => boolean;
174
+ isEmpty: (value: unknown) => boolean;
175
+ isNull: (value: unknown) => boolean;
176
+ isUndefined: (value: unknown) => boolean;
177
+ isUndefinedOrNull: (value: unknown) => boolean;
178
+ isArray: (value: unknown) => value is unknown[];
179
+ isObject: (value: unknown) => value is Record<string, unknown>;
180
+ isFunction: (value: unknown) => value is (...args: unknown[]) => unknown;
181
+ isDate: (value: unknown) => value is Date;
182
+ isEmail: (value: unknown) => boolean;
183
+ isUrl: (value: unknown) => boolean;
184
+ isIn: (value: unknown, array: unknown[]) => boolean;
185
+ isNotIn: (value: unknown, array: unknown[]) => boolean;
186
+ isLength: (value: unknown, length: number) => boolean;
187
+ isMinLength: (value: unknown, min: number) => boolean;
188
+ isMaxLength: (value: unknown, max: number) => boolean;
189
+ isMatch: (value: unknown, regex: RegExp, options?: {
190
+ maxLength?: number;
191
+ }) => boolean;
192
+ isAlpha: (value: unknown) => boolean;
193
+ isAlphanumeric: (value: unknown) => boolean;
194
+ isNumeric: (value: unknown) => boolean;
195
+ isInt: typeof isInt;
196
+ isFloat: typeof isFloat;
197
+ isIntString: (value: unknown, conditions?: {
198
+ min?: number;
199
+ max?: number;
200
+ }) => boolean;
201
+ isFloatString: (value: unknown, conditions?: {
202
+ min?: number;
203
+ max?: number;
204
+ }) => boolean;
205
+ isNonEmptyString: (value: unknown) => value is string;
206
+ isNonEmptyArray: (value: unknown) => value is unknown[];
207
+ isNonEmptyObject: (value: unknown) => value is Record<string, unknown>;
208
+ isWhitespaceOnly: (value: unknown) => boolean;
209
+ isUUID: (value: unknown) => boolean;
210
+ isJSON: (value: unknown) => boolean;
211
+ isBase64: (value: unknown) => boolean;
212
+ isHexColor: (value: unknown) => boolean;
213
+ isSlug: (value: unknown) => boolean;
214
+ isUpperCase: (value: unknown) => boolean;
215
+ isLowerCase: (value: unknown) => boolean;
216
+ isPositive: (value: unknown) => boolean;
217
+ isNegative: (value: unknown) => boolean;
218
+ isZero: (value: unknown) => boolean;
219
+ isEven: (value: unknown) => boolean;
220
+ isOdd: (value: unknown) => boolean;
221
+ isDecimal: (value: unknown) => boolean;
222
+ isBetween: (value: unknown, min: number, max: number) => boolean;
223
+ isDivisibleBy: (value: unknown, divisor: number) => boolean;
224
+ }>;
225
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helper/index.ts"],"names":[],"mappings":"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"}