@zintrust/core 3.5.1 → 3.6.0

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 (2437) hide show
  1. package/README.md +171 -241
  2. package/bin/launcher.d.ts +6 -0
  3. package/bin/launcher.d.ts.map +1 -0
  4. package/bin/launcher.js +167 -0
  5. package/bin/z.d.ts +7 -0
  6. package/bin/z.d.ts.map +1 -0
  7. package/bin/zin.d.ts +7 -0
  8. package/bin/zin.d.ts.map +1 -0
  9. package/bin/zintrust-main.d.ts +24 -0
  10. package/bin/zintrust-main.d.ts.map +1 -0
  11. package/bin/zintrust-main.js +378 -0
  12. package/bin/zintrust-microservices.d.ts +7 -0
  13. package/bin/zintrust-microservices.d.ts.map +1 -0
  14. package/bin/zintrust-microservices.js +165 -0
  15. package/bin/zintrust.d.ts +10 -0
  16. package/bin/zintrust.d.ts.map +1 -0
  17. package/bin/zt.d.ts +7 -0
  18. package/bin/zt.d.ts.map +1 -0
  19. package/package.json +147 -315
  20. package/src/auth/Auth.d.ts +20 -0
  21. package/src/auth/Auth.d.ts.map +1 -0
  22. package/src/auth/Auth.js +33 -0
  23. package/src/auth/LoginFlow.d.ts +71 -0
  24. package/src/auth/LoginFlow.d.ts.map +1 -0
  25. package/src/auth/LoginFlow.js +448 -0
  26. package/src/auth-index.d.ts +8 -0
  27. package/src/auth-index.d.ts.map +1 -0
  28. package/src/auth-index.js +8 -0
  29. package/src/boot/Application.d.ts +16 -0
  30. package/src/boot/Application.d.ts.map +1 -0
  31. package/src/boot/Application.js +95 -0
  32. package/src/boot/Server.d.ts +24 -0
  33. package/src/boot/Server.d.ts.map +1 -0
  34. package/src/boot/Server.js +164 -0
  35. package/src/boot/bootstrap.d.ts +7 -0
  36. package/src/boot/bootstrap.d.ts.map +1 -0
  37. package/src/boot/bootstrap.js +371 -0
  38. package/src/boot/registry/registerRoute.d.ts +6 -0
  39. package/src/boot/registry/registerRoute.d.ts.map +1 -0
  40. package/src/boot/registry/registerRoute.js +201 -0
  41. package/src/boot/registry/runtime.d.ts +17 -0
  42. package/src/boot/registry/runtime.d.ts.map +1 -0
  43. package/src/boot/registry/runtime.js +665 -0
  44. package/src/boot/registry/type.d.ts +25 -0
  45. package/src/boot/registry/type.d.ts.map +1 -0
  46. package/src/boot/registry/type.js +1 -0
  47. package/src/boot/registry/worker.d.ts +6 -0
  48. package/src/boot/registry/worker.d.ts.map +1 -0
  49. package/src/boot/registry/worker.js +36 -0
  50. package/src/boot.d.ts +2 -0
  51. package/src/boot.d.ts.map +1 -0
  52. package/src/boot.js +6 -0
  53. package/src/bootstrap/service-manifest.d.ts +4 -0
  54. package/src/bootstrap/service-manifest.d.ts.map +1 -0
  55. package/src/bootstrap/service-manifest.js +2 -0
  56. package/src/builder/BundleOptimizer.d.ts +42 -0
  57. package/src/builder/BundleOptimizer.d.ts.map +1 -0
  58. package/src/builder/BundleOptimizer.js +352 -0
  59. package/src/cache/Cache.d.ts +50 -0
  60. package/src/cache/Cache.d.ts.map +1 -0
  61. package/src/cache/Cache.js +289 -0
  62. package/src/cache/CacheDriver.d.ts +52 -0
  63. package/src/cache/CacheDriver.d.ts.map +1 -0
  64. package/src/cache/CacheDriver.js +6 -0
  65. package/src/cache/CacheDriverRegistry.d.ts +17 -0
  66. package/src/cache/CacheDriverRegistry.d.ts.map +1 -0
  67. package/src/cache/CacheDriverRegistry.js +23 -0
  68. package/src/cache/CacheRuntimeRegistration.d.ts +11 -0
  69. package/src/cache/CacheRuntimeRegistration.d.ts.map +1 -0
  70. package/src/cache/CacheRuntimeRegistration.js +21 -0
  71. package/src/cache/drivers/KVDriver.d.ts +12 -0
  72. package/src/cache/drivers/KVDriver.d.ts.map +1 -0
  73. package/src/cache/drivers/KVDriver.js +58 -0
  74. package/src/cache/drivers/KVRemoteDriver.d.ts +11 -0
  75. package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -0
  76. package/src/cache/drivers/KVRemoteDriver.js +311 -0
  77. package/src/cache/drivers/MemoryDriver.d.ts +12 -0
  78. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -0
  79. package/src/cache/drivers/MemoryDriver.js +83 -0
  80. package/src/cache/drivers/MongoDriver.d.ts +17 -0
  81. package/src/cache/drivers/MongoDriver.d.ts.map +1 -0
  82. package/src/cache/drivers/MongoDriver.js +83 -0
  83. package/src/cache/drivers/RedisDriver.d.ts +12 -0
  84. package/src/cache/drivers/RedisDriver.d.ts.map +1 -0
  85. package/src/cache/drivers/RedisDriver.js +399 -0
  86. package/src/cli/BaseCommand.d.ts +41 -0
  87. package/src/cli/BaseCommand.d.ts.map +1 -0
  88. package/src/cli/BaseCommand.js +77 -0
  89. package/src/cli/CLI.d.ts +21 -0
  90. package/src/cli/CLI.d.ts.map +1 -0
  91. package/src/cli/CLI.js +326 -0
  92. package/src/cli/ErrorHandler.d.ts +28 -0
  93. package/src/cli/ErrorHandler.d.ts.map +1 -0
  94. package/src/cli/ErrorHandler.js +117 -0
  95. package/src/cli/OptionalCliCommandRegistry.d.ts +12 -0
  96. package/src/cli/OptionalCliCommandRegistry.d.ts.map +1 -0
  97. package/src/cli/OptionalCliCommandRegistry.js +25 -0
  98. package/src/cli/OptionalCliExtensions.d.ts +44 -0
  99. package/src/cli/OptionalCliExtensions.d.ts.map +1 -0
  100. package/src/cli/OptionalCliExtensions.js +323 -0
  101. package/src/cli/PromptHelper.d.ts +47 -0
  102. package/src/cli/PromptHelper.d.ts.map +1 -0
  103. package/src/cli/PromptHelper.js +157 -0
  104. package/src/cli/cloudflare/CloudflareEnvTargetConfig.d.ts +37 -0
  105. package/src/cli/cloudflare/CloudflareEnvTargetConfig.d.ts.map +1 -0
  106. package/src/cli/cloudflare/CloudflareEnvTargetConfig.js +104 -0
  107. package/src/cli/cloudflare/CloudflareSecretSync.d.ts +42 -0
  108. package/src/cli/cloudflare/CloudflareSecretSync.d.ts.map +1 -0
  109. package/src/cli/cloudflare/CloudflareSecretSync.js +285 -0
  110. package/src/cli/cloudflare/CloudflareWranglerDevEnv.d.ts +24 -0
  111. package/src/cli/cloudflare/CloudflareWranglerDevEnv.d.ts.map +1 -0
  112. package/src/cli/cloudflare/CloudflareWranglerDevEnv.js +222 -0
  113. package/src/cli/commands/AddCommand.d.ts +116 -0
  114. package/src/cli/commands/AddCommand.d.ts.map +1 -0
  115. package/src/cli/commands/AddCommand.js +1176 -0
  116. package/src/cli/commands/BroadcastWorkCommand.d.ts +10 -0
  117. package/src/cli/commands/BroadcastWorkCommand.d.ts.map +1 -0
  118. package/src/cli/commands/BroadcastWorkCommand.js +16 -0
  119. package/src/cli/commands/BulletproofKeyGenerateCommand.d.ts +10 -0
  120. package/src/cli/commands/BulletproofKeyGenerateCommand.d.ts.map +1 -0
  121. package/src/cli/commands/BulletproofKeyGenerateCommand.js +139 -0
  122. package/src/cli/commands/ConfigCommand.d.ts +15 -0
  123. package/src/cli/commands/ConfigCommand.d.ts.map +1 -0
  124. package/src/cli/commands/ConfigCommand.js +305 -0
  125. package/src/cli/commands/ContainerComposeLifecycle.d.ts +20 -0
  126. package/src/cli/commands/ContainerComposeLifecycle.d.ts.map +1 -0
  127. package/src/cli/commands/ContainerComposeLifecycle.js +46 -0
  128. package/src/cli/commands/ContainerProxiesCommand.d.ts +5 -0
  129. package/src/cli/commands/ContainerProxiesCommand.d.ts.map +1 -0
  130. package/src/cli/commands/ContainerProxiesCommand.js +40 -0
  131. package/src/cli/commands/ContainerWorkersCommand.d.ts +5 -0
  132. package/src/cli/commands/ContainerWorkersCommand.d.ts.map +1 -0
  133. package/src/cli/commands/ContainerWorkersCommand.js +34 -0
  134. package/src/cli/commands/CreateCommand.d.ts +15 -0
  135. package/src/cli/commands/CreateCommand.d.ts.map +1 -0
  136. package/src/cli/commands/CreateCommand.js +143 -0
  137. package/src/cli/commands/D1LearnCommand.d.ts +9 -0
  138. package/src/cli/commands/D1LearnCommand.d.ts.map +1 -0
  139. package/src/cli/commands/D1LearnCommand.js +143 -0
  140. package/src/cli/commands/D1MigrateCommand.d.ts +19 -0
  141. package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -0
  142. package/src/cli/commands/D1MigrateCommand.js +137 -0
  143. package/src/cli/commands/D1ProxyCommand.d.ts +6 -0
  144. package/src/cli/commands/D1ProxyCommand.d.ts.map +1 -0
  145. package/src/cli/commands/D1ProxyCommand.js +106 -0
  146. package/src/cli/commands/DbSeedCommand.d.ts +9 -0
  147. package/src/cli/commands/DbSeedCommand.d.ts.map +1 -0
  148. package/src/cli/commands/DbSeedCommand.js +139 -0
  149. package/src/cli/commands/DebugCommand.d.ts +15 -0
  150. package/src/cli/commands/DebugCommand.d.ts.map +1 -0
  151. package/src/cli/commands/DebugCommand.js +52 -0
  152. package/src/cli/commands/DeployCommand.d.ts +16 -0
  153. package/src/cli/commands/DeployCommand.d.ts.map +1 -0
  154. package/src/cli/commands/DeployCommand.js +147 -0
  155. package/src/cli/commands/DeployContainerProxiesCommand.d.ts +5 -0
  156. package/src/cli/commands/DeployContainerProxiesCommand.d.ts.map +1 -0
  157. package/src/cli/commands/DeployContainerProxiesCommand.js +27 -0
  158. package/src/cli/commands/DeployContainerWorkersCommand.d.ts +5 -0
  159. package/src/cli/commands/DeployContainerWorkersCommand.d.ts.map +1 -0
  160. package/src/cli/commands/DeployContainerWorkersCommand.js +27 -0
  161. package/src/cli/commands/DeployContainersProxyCommand.d.ts +5 -0
  162. package/src/cli/commands/DeployContainersProxyCommand.d.ts.map +1 -0
  163. package/src/cli/commands/DeployContainersProxyCommand.js +71 -0
  164. package/src/cli/commands/DockerCommand.d.ts +5 -0
  165. package/src/cli/commands/DockerCommand.d.ts.map +1 -0
  166. package/src/cli/commands/DockerCommand.js +184 -0
  167. package/src/cli/commands/DockerComposeCommandUtils.d.ts +3 -0
  168. package/src/cli/commands/DockerComposeCommandUtils.d.ts.map +1 -0
  169. package/src/cli/commands/DockerComposeCommandUtils.js +34 -0
  170. package/src/cli/commands/DockerPushCommand.d.ts +5 -0
  171. package/src/cli/commands/DockerPushCommand.d.ts.map +1 -0
  172. package/src/cli/commands/DockerPushCommand.js +107 -0
  173. package/src/cli/commands/DoctorArchitectureCommand.d.ts +5 -0
  174. package/src/cli/commands/DoctorArchitectureCommand.d.ts.map +1 -0
  175. package/src/cli/commands/DoctorArchitectureCommand.js +56 -0
  176. package/src/cli/commands/EmailProxyCommand.d.ts +6 -0
  177. package/src/cli/commands/EmailProxyCommand.d.ts.map +1 -0
  178. package/src/cli/commands/EmailProxyCommand.js +108 -0
  179. package/src/cli/commands/EnvKeyGenerateCommand.d.ts +6 -0
  180. package/src/cli/commands/EnvKeyGenerateCommand.d.ts.map +1 -0
  181. package/src/cli/commands/EnvKeyGenerateCommand.js +90 -0
  182. package/src/cli/commands/FixCommand.d.ts +15 -0
  183. package/src/cli/commands/FixCommand.d.ts.map +1 -0
  184. package/src/cli/commands/FixCommand.js +68 -0
  185. package/src/cli/commands/InitContainerCommand.d.ts +5 -0
  186. package/src/cli/commands/InitContainerCommand.d.ts.map +1 -0
  187. package/src/cli/commands/InitContainerCommand.js +211 -0
  188. package/src/cli/commands/InitContainersProxyCommand.d.ts +5 -0
  189. package/src/cli/commands/InitContainersProxyCommand.d.ts.map +1 -0
  190. package/src/cli/commands/InitContainersProxyCommand.js +159 -0
  191. package/src/cli/commands/InitEcosystemCommand.d.ts +6 -0
  192. package/src/cli/commands/InitEcosystemCommand.d.ts.map +1 -0
  193. package/src/cli/commands/InitEcosystemCommand.js +51 -0
  194. package/src/cli/commands/InitProducerCommand.d.ts +5 -0
  195. package/src/cli/commands/InitProducerCommand.d.ts.map +1 -0
  196. package/src/cli/commands/InitProducerCommand.js +47 -0
  197. package/src/cli/commands/InitProxyCommand.d.ts +5 -0
  198. package/src/cli/commands/InitProxyCommand.d.ts.map +1 -0
  199. package/src/cli/commands/InitProxyCommand.js +442 -0
  200. package/src/cli/commands/JwtDevCommand.d.ts +8 -0
  201. package/src/cli/commands/JwtDevCommand.d.ts.map +1 -0
  202. package/src/cli/commands/JwtDevCommand.js +133 -0
  203. package/src/cli/commands/KeyGenerateCommand.d.ts +9 -0
  204. package/src/cli/commands/KeyGenerateCommand.d.ts.map +1 -0
  205. package/src/cli/commands/KeyGenerateCommand.js +76 -0
  206. package/src/cli/commands/KvProxyCommand.d.ts +6 -0
  207. package/src/cli/commands/KvProxyCommand.d.ts.map +1 -0
  208. package/src/cli/commands/KvProxyCommand.js +86 -0
  209. package/src/cli/commands/LogsCleanupCommand.d.ts +6 -0
  210. package/src/cli/commands/LogsCleanupCommand.d.ts.map +1 -0
  211. package/src/cli/commands/LogsCleanupCommand.js +20 -0
  212. package/src/cli/commands/LogsCommand.d.ts +19 -0
  213. package/src/cli/commands/LogsCommand.d.ts.map +1 -0
  214. package/src/cli/commands/LogsCommand.js +217 -0
  215. package/src/cli/commands/MakeMailTemplateCommand.d.ts +10 -0
  216. package/src/cli/commands/MakeMailTemplateCommand.d.ts.map +1 -0
  217. package/src/cli/commands/MakeMailTemplateCommand.js +76 -0
  218. package/src/cli/commands/MakeNotificationTemplateCommand.d.ts +10 -0
  219. package/src/cli/commands/MakeNotificationTemplateCommand.d.ts.map +1 -0
  220. package/src/cli/commands/MakeNotificationTemplateCommand.js +115 -0
  221. package/src/cli/commands/MigrateCommand.d.ts +15 -0
  222. package/src/cli/commands/MigrateCommand.d.ts.map +1 -0
  223. package/src/cli/commands/MigrateCommand.js +355 -0
  224. package/src/cli/commands/MigrateWorkerCommand.d.ts +9 -0
  225. package/src/cli/commands/MigrateWorkerCommand.d.ts.map +1 -0
  226. package/src/cli/commands/MigrateWorkerCommand.js +176 -0
  227. package/src/cli/commands/MongoDBProxyCommand.d.ts +5 -0
  228. package/src/cli/commands/MongoDBProxyCommand.d.ts.map +1 -0
  229. package/src/cli/commands/MongoDBProxyCommand.js +100 -0
  230. package/src/cli/commands/MySqlProxyCommand.d.ts +6 -0
  231. package/src/cli/commands/MySqlProxyCommand.d.ts.map +1 -0
  232. package/src/cli/commands/MySqlProxyCommand.js +34 -0
  233. package/src/cli/commands/NewCommand.d.ts +37 -0
  234. package/src/cli/commands/NewCommand.d.ts.map +1 -0
  235. package/src/cli/commands/NewCommand.js +424 -0
  236. package/src/cli/commands/NotificationWorkCommand.d.ts +10 -0
  237. package/src/cli/commands/NotificationWorkCommand.d.ts.map +1 -0
  238. package/src/cli/commands/NotificationWorkCommand.js +16 -0
  239. package/src/cli/commands/PluginCommand.d.ts +9 -0
  240. package/src/cli/commands/PluginCommand.d.ts.map +1 -0
  241. package/src/cli/commands/PluginCommand.js +98 -0
  242. package/src/cli/commands/PostgresProxyCommand.d.ts +6 -0
  243. package/src/cli/commands/PostgresProxyCommand.d.ts.map +1 -0
  244. package/src/cli/commands/PostgresProxyCommand.js +34 -0
  245. package/src/cli/commands/PrepareCommand.d.ts +8 -0
  246. package/src/cli/commands/PrepareCommand.d.ts.map +1 -0
  247. package/src/cli/commands/PrepareCommand.js +87 -0
  248. package/src/cli/commands/ProxyCommand.d.ts +13 -0
  249. package/src/cli/commands/ProxyCommand.d.ts.map +1 -0
  250. package/src/cli/commands/ProxyCommand.js +88 -0
  251. package/src/cli/commands/ProxyCommandUtils.d.ts +8 -0
  252. package/src/cli/commands/ProxyCommandUtils.d.ts.map +1 -0
  253. package/src/cli/commands/ProxyCommandUtils.js +63 -0
  254. package/src/cli/commands/ProxyScaffoldUtils.d.ts +33 -0
  255. package/src/cli/commands/ProxyScaffoldUtils.d.ts.map +1 -0
  256. package/src/cli/commands/ProxyScaffoldUtils.js +262 -0
  257. package/src/cli/commands/PublishCommand.d.ts +5 -0
  258. package/src/cli/commands/PublishCommand.d.ts.map +1 -0
  259. package/src/cli/commands/PublishCommand.js +54 -0
  260. package/src/cli/commands/PutCommand.d.ts +6 -0
  261. package/src/cli/commands/PutCommand.d.ts.map +1 -0
  262. package/src/cli/commands/PutCommand.js +94 -0
  263. package/src/cli/commands/QACommand.d.ts +33 -0
  264. package/src/cli/commands/QACommand.d.ts.map +1 -0
  265. package/src/cli/commands/QACommand.js +480 -0
  266. package/src/cli/commands/QueueCommand.d.ts +10 -0
  267. package/src/cli/commands/QueueCommand.d.ts.map +1 -0
  268. package/src/cli/commands/QueueCommand.js +113 -0
  269. package/src/cli/commands/QueueLockCommand.d.ts +7 -0
  270. package/src/cli/commands/QueueLockCommand.d.ts.map +1 -0
  271. package/src/cli/commands/QueueLockCommand.js +138 -0
  272. package/src/cli/commands/QueueRecoveryCommand.d.ts +6 -0
  273. package/src/cli/commands/QueueRecoveryCommand.d.ts.map +1 -0
  274. package/src/cli/commands/QueueRecoveryCommand.js +612 -0
  275. package/src/cli/commands/QueueWorkCommandUtils.d.ts +10 -0
  276. package/src/cli/commands/QueueWorkCommandUtils.d.ts.map +1 -0
  277. package/src/cli/commands/QueueWorkCommandUtils.js +43 -0
  278. package/src/cli/commands/RedisProxyCommand.d.ts +6 -0
  279. package/src/cli/commands/RedisProxyCommand.d.ts.map +1 -0
  280. package/src/cli/commands/RedisProxyCommand.js +54 -0
  281. package/src/cli/commands/RedisRpcCommand.d.ts +6 -0
  282. package/src/cli/commands/RedisRpcCommand.d.ts.map +1 -0
  283. package/src/cli/commands/RedisRpcCommand.js +96 -0
  284. package/src/cli/commands/ResourceControlCommand.d.ts +6 -0
  285. package/src/cli/commands/ResourceControlCommand.d.ts.map +1 -0
  286. package/src/cli/commands/ResourceControlCommand.js +43 -0
  287. package/src/cli/commands/RoutesCommand.d.ts +10 -0
  288. package/src/cli/commands/RoutesCommand.d.ts.map +1 -0
  289. package/src/cli/commands/RoutesCommand.js +327 -0
  290. package/src/cli/commands/ScheduleListCommand.d.ts +6 -0
  291. package/src/cli/commands/ScheduleListCommand.d.ts.map +1 -0
  292. package/src/cli/commands/ScheduleListCommand.js +65 -0
  293. package/src/cli/commands/ScheduleRunCommand.d.ts +6 -0
  294. package/src/cli/commands/ScheduleRunCommand.d.ts.map +1 -0
  295. package/src/cli/commands/ScheduleRunCommand.js +35 -0
  296. package/src/cli/commands/ScheduleStartCommand.d.ts +6 -0
  297. package/src/cli/commands/ScheduleStartCommand.d.ts.map +1 -0
  298. package/src/cli/commands/ScheduleStartCommand.js +48 -0
  299. package/src/cli/commands/SecretsCommand.d.ts +16 -0
  300. package/src/cli/commands/SecretsCommand.d.ts.map +1 -0
  301. package/src/cli/commands/SecretsCommand.js +91 -0
  302. package/src/cli/commands/SimulateCommand.d.ts +12 -0
  303. package/src/cli/commands/SimulateCommand.d.ts.map +1 -0
  304. package/src/cli/commands/SimulateCommand.js +79 -0
  305. package/src/cli/commands/SmtpProxyCommand.d.ts +6 -0
  306. package/src/cli/commands/SmtpProxyCommand.d.ts.map +1 -0
  307. package/src/cli/commands/SmtpProxyCommand.js +57 -0
  308. package/src/cli/commands/SqlProxyCommandUtils.d.ts +46 -0
  309. package/src/cli/commands/SqlProxyCommandUtils.d.ts.map +1 -0
  310. package/src/cli/commands/SqlProxyCommandUtils.js +48 -0
  311. package/src/cli/commands/SqlServerProxyCommand.d.ts +5 -0
  312. package/src/cli/commands/SqlServerProxyCommand.d.ts.map +1 -0
  313. package/src/cli/commands/SqlServerProxyCommand.js +87 -0
  314. package/src/cli/commands/StartCommand.d.ts +12 -0
  315. package/src/cli/commands/StartCommand.d.ts.map +1 -0
  316. package/src/cli/commands/StartCommand.js +796 -0
  317. package/src/cli/commands/TemplatesCommand.d.ts +3 -0
  318. package/src/cli/commands/TemplatesCommand.d.ts.map +1 -0
  319. package/src/cli/commands/TemplatesCommand.js +65 -0
  320. package/src/cli/commands/TraceCommand.d.ts +18 -0
  321. package/src/cli/commands/TraceCommand.d.ts.map +1 -0
  322. package/src/cli/commands/TraceCommand.js +6 -0
  323. package/src/cli/commands/TraceCommands.d.ts +25 -0
  324. package/src/cli/commands/TraceCommands.d.ts.map +1 -0
  325. package/src/cli/commands/TraceCommands.js +536 -0
  326. package/src/cli/commands/UpgradeCommand.d.ts +16 -0
  327. package/src/cli/commands/UpgradeCommand.d.ts.map +1 -0
  328. package/src/cli/commands/UpgradeCommand.js +107 -0
  329. package/src/cli/commands/WorkerCommands.d.ts +19 -0
  330. package/src/cli/commands/WorkerCommands.d.ts.map +1 -0
  331. package/src/cli/commands/WorkerCommands.js +514 -0
  332. package/src/cli/commands/WranglerDevVarsCommand.d.ts +6 -0
  333. package/src/cli/commands/WranglerDevVarsCommand.d.ts.map +1 -0
  334. package/src/cli/commands/WranglerDevVarsCommand.js +52 -0
  335. package/src/cli/commands/WranglerProxyCommandUtils.d.ts +27 -0
  336. package/src/cli/commands/WranglerProxyCommandUtils.d.ts.map +1 -0
  337. package/src/cli/commands/WranglerProxyCommandUtils.js +108 -0
  338. package/src/cli/commands/createKindWorkCommand.d.ts +9 -0
  339. package/src/cli/commands/createKindWorkCommand.d.ts.map +1 -0
  340. package/src/cli/commands/createKindWorkCommand.js +33 -0
  341. package/src/cli/commands/index.d.ts +31 -0
  342. package/src/cli/commands/index.d.ts.map +1 -0
  343. package/src/cli/commands/index.js +30 -0
  344. package/src/cli/commands/runner/index.d.ts +4 -0
  345. package/src/cli/commands/runner/index.d.ts.map +1 -0
  346. package/src/cli/commands/runner/index.js +159 -0
  347. package/src/cli/commands/schedule/ScheduleCliSupport.d.ts +7 -0
  348. package/src/cli/commands/schedule/ScheduleCliSupport.d.ts.map +1 -0
  349. package/src/cli/commands/schedule/ScheduleCliSupport.js +206 -0
  350. package/src/cli/config/ConfigManager.d.ts +42 -0
  351. package/src/cli/config/ConfigManager.d.ts.map +1 -0
  352. package/src/cli/config/ConfigManager.js +175 -0
  353. package/src/cli/config/ConfigSchema.d.ts +195 -0
  354. package/src/cli/config/ConfigSchema.d.ts.map +1 -0
  355. package/src/cli/config/ConfigSchema.js +172 -0
  356. package/src/cli/config/ConfigValidator.d.ts +41 -0
  357. package/src/cli/config/ConfigValidator.d.ts.map +1 -0
  358. package/src/cli/config/ConfigValidator.js +200 -0
  359. package/src/cli/config/index.d.ts +8 -0
  360. package/src/cli/config/index.d.ts.map +1 -0
  361. package/src/cli/config/index.js +7 -0
  362. package/src/cli/d1/D1SchemaState.d.ts +25 -0
  363. package/src/cli/d1/D1SchemaState.d.ts.map +1 -0
  364. package/src/cli/d1/D1SchemaState.js +308 -0
  365. package/src/cli/d1/D1SqlMigrations.d.ts +20 -0
  366. package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -0
  367. package/src/cli/d1/D1SqlMigrations.js +267 -0
  368. package/src/cli/d1/LocalD1Resolver.d.ts +13 -0
  369. package/src/cli/d1/LocalD1Resolver.d.ts.map +1 -0
  370. package/src/cli/d1/LocalD1Resolver.js +141 -0
  371. package/src/cli/d1/WranglerConfig.d.ts +36 -0
  372. package/src/cli/d1/WranglerConfig.d.ts.map +1 -0
  373. package/src/cli/d1/WranglerConfig.js +282 -0
  374. package/src/cli/d1/WranglerD1.d.ts +21 -0
  375. package/src/cli/d1/WranglerD1.d.ts.map +1 -0
  376. package/src/cli/d1/WranglerD1.js +59 -0
  377. package/src/cli/debug/Dashboard.d.ts +34 -0
  378. package/src/cli/debug/Dashboard.d.ts.map +1 -0
  379. package/src/cli/debug/Dashboard.js +152 -0
  380. package/src/cli/env/EnvFileBackfill.d.ts +10 -0
  381. package/src/cli/env/EnvFileBackfill.d.ts.map +1 -0
  382. package/src/cli/env/EnvFileBackfill.js +64 -0
  383. package/src/cli/index.d.ts +23 -0
  384. package/src/cli/index.d.ts.map +1 -0
  385. package/src/cli/index.js +23 -0
  386. package/src/cli/logger/Logger.d.ts +43 -0
  387. package/src/cli/logger/Logger.d.ts.map +1 -0
  388. package/src/cli/logger/Logger.js +137 -0
  389. package/src/cli/scaffolding/ControllerGenerator.d.ts +44 -0
  390. package/src/cli/scaffolding/ControllerGenerator.d.ts.map +1 -0
  391. package/src/cli/scaffolding/ControllerGenerator.js +504 -0
  392. package/src/cli/scaffolding/FactoryGenerator.d.ts +47 -0
  393. package/src/cli/scaffolding/FactoryGenerator.d.ts.map +1 -0
  394. package/src/cli/scaffolding/FactoryGenerator.js +358 -0
  395. package/src/cli/scaffolding/FeatureScaffolder.d.ts +40 -0
  396. package/src/cli/scaffolding/FeatureScaffolder.d.ts.map +1 -0
  397. package/src/cli/scaffolding/FeatureScaffolder.js +747 -0
  398. package/src/cli/scaffolding/FileGenerator.d.ts +31 -0
  399. package/src/cli/scaffolding/FileGenerator.d.ts.map +1 -0
  400. package/src/cli/scaffolding/FileGenerator.js +222 -0
  401. package/src/cli/scaffolding/GovernanceScaffolder.d.ts +23 -0
  402. package/src/cli/scaffolding/GovernanceScaffolder.d.ts.map +1 -0
  403. package/src/cli/scaffolding/GovernanceScaffolder.js +330 -0
  404. package/src/cli/scaffolding/MigrationGenerator.d.ts +45 -0
  405. package/src/cli/scaffolding/MigrationGenerator.d.ts.map +1 -0
  406. package/src/cli/scaffolding/MigrationGenerator.js +345 -0
  407. package/src/cli/scaffolding/ModelGenerator.d.ts +81 -0
  408. package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -0
  409. package/src/cli/scaffolding/ModelGenerator.js +259 -0
  410. package/src/cli/scaffolding/ProjectScaffolder.d.ts +66 -0
  411. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -0
  412. package/src/cli/scaffolding/ProjectScaffolder.js +694 -0
  413. package/src/cli/scaffolding/RequestFactoryGenerator.d.ts +50 -0
  414. package/src/cli/scaffolding/RequestFactoryGenerator.d.ts.map +1 -0
  415. package/src/cli/scaffolding/RequestFactoryGenerator.js +465 -0
  416. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts +43 -0
  417. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts.map +1 -0
  418. package/src/cli/scaffolding/ResponseFactoryGenerator.js +322 -0
  419. package/src/cli/scaffolding/RouteGenerator.d.ts +66 -0
  420. package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -0
  421. package/src/cli/scaffolding/RouteGenerator.js +363 -0
  422. package/src/cli/scaffolding/ScaffoldingVersionUtils.d.ts +7 -0
  423. package/src/cli/scaffolding/ScaffoldingVersionUtils.d.ts.map +1 -0
  424. package/src/cli/scaffolding/ScaffoldingVersionUtils.js +35 -0
  425. package/src/cli/scaffolding/SeederGenerator.d.ts +52 -0
  426. package/src/cli/scaffolding/SeederGenerator.d.ts.map +1 -0
  427. package/src/cli/scaffolding/SeederGenerator.js +334 -0
  428. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts +40 -0
  429. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts.map +1 -0
  430. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.js +268 -0
  431. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts +45 -0
  432. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts.map +1 -0
  433. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.js +397 -0
  434. package/src/cli/scaffolding/ServiceScaffolder.d.ts +45 -0
  435. package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -0
  436. package/src/cli/scaffolding/ServiceScaffolder.js +577 -0
  437. package/src/cli/scaffolding/TemplateEngine.d.ts +42 -0
  438. package/src/cli/scaffolding/TemplateEngine.d.ts.map +1 -0
  439. package/src/cli/scaffolding/TemplateEngine.js +107 -0
  440. package/src/cli/scaffolding/TemplateGenerator.d.ts +40 -0
  441. package/src/cli/scaffolding/TemplateGenerator.d.ts.map +1 -0
  442. package/src/cli/scaffolding/TemplateGenerator.js +172 -0
  443. package/src/cli/scaffolding/WorkflowGenerator.d.ts +31 -0
  444. package/src/cli/scaffolding/WorkflowGenerator.d.ts.map +1 -0
  445. package/src/cli/scaffolding/WorkflowGenerator.js +193 -0
  446. package/src/cli/scaffolding/env.d.ts +2 -0
  447. package/src/cli/scaffolding/env.d.ts.map +1 -0
  448. package/src/cli/scaffolding/env.js +576 -0
  449. package/src/cli/scaffolding/index.d.ts +37 -0
  450. package/src/cli/scaffolding/index.d.ts.map +1 -0
  451. package/src/cli/scaffolding/index.js +20 -0
  452. package/src/cli/services/VersionChecker.d.ts +95 -0
  453. package/src/cli/services/VersionChecker.d.ts.map +1 -0
  454. package/src/cli/services/VersionChecker.js +360 -0
  455. package/src/cli/services/WorkerStartupDiagnostics.d.ts +41 -0
  456. package/src/cli/services/WorkerStartupDiagnostics.d.ts.map +1 -0
  457. package/src/cli/services/WorkerStartupDiagnostics.js +350 -0
  458. package/src/cli/utils/DatabaseCliUtils.d.ts +20 -0
  459. package/src/cli/utils/DatabaseCliUtils.d.ts.map +1 -0
  460. package/src/cli/utils/DatabaseCliUtils.js +59 -0
  461. package/src/cli/utils/DistPackager.d.ts +8 -0
  462. package/src/cli/utils/DistPackager.d.ts.map +1 -0
  463. package/src/cli/utils/DistPackager.js +137 -0
  464. package/src/cli/utils/EnvFileLoader.d.ts +28 -0
  465. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -0
  466. package/src/cli/utils/EnvFileLoader.js +299 -0
  467. package/src/cli/utils/spawn.d.ts +13 -0
  468. package/src/cli/utils/spawn.d.ts.map +1 -0
  469. package/src/cli/utils/spawn.js +389 -0
  470. package/src/cli/workers/QueueWorkRunner.d.ts +23 -0
  471. package/src/cli/workers/QueueWorkRunner.d.ts.map +1 -0
  472. package/src/cli/workers/QueueWorkRunner.js +311 -0
  473. package/src/cli-index.d.ts +16 -0
  474. package/src/cli-index.d.ts.map +1 -0
  475. package/src/cli-index.js +15 -0
  476. package/src/cli.d.ts +9 -0
  477. package/src/cli.d.ts.map +1 -0
  478. package/src/cli.js +7 -0
  479. package/src/cloudflare-index.d.ts +6 -0
  480. package/src/cloudflare-index.d.ts.map +1 -0
  481. package/src/cloudflare-index.js +5 -0
  482. package/src/collections/Collection.d.ts +30 -0
  483. package/src/collections/Collection.d.ts.map +1 -0
  484. package/src/collections/Collection.js +181 -0
  485. package/src/collections/index.d.ts +3 -0
  486. package/src/collections/index.d.ts.map +1 -0
  487. package/src/collections/index.js +1 -0
  488. package/src/common/AwsSigV4.d.ts +41 -0
  489. package/src/common/AwsSigV4.d.ts.map +1 -0
  490. package/src/common/AwsSigV4.js +69 -0
  491. package/src/common/ContextLoader.d.ts +27 -0
  492. package/src/common/ContextLoader.d.ts.map +1 -0
  493. package/src/common/ContextLoader.js +187 -0
  494. package/src/common/EnvFallbackUtils.d.ts +6 -0
  495. package/src/common/EnvFallbackUtils.d.ts.map +1 -0
  496. package/src/common/EnvFallbackUtils.js +50 -0
  497. package/src/common/ExternalServiceUtils.d.ts +68 -0
  498. package/src/common/ExternalServiceUtils.d.ts.map +1 -0
  499. package/src/common/ExternalServiceUtils.js +218 -0
  500. package/src/common/HealthRoutes.d.ts +10 -0
  501. package/src/common/HealthRoutes.d.ts.map +1 -0
  502. package/src/common/HealthRoutes.js +162 -0
  503. package/src/common/RemoteSignedJson.d.ts +23 -0
  504. package/src/common/RemoteSignedJson.d.ts.map +1 -0
  505. package/src/common/RemoteSignedJson.js +158 -0
  506. package/src/common/index.d.ts +135 -0
  507. package/src/common/index.d.ts.map +1 -0
  508. package/src/common/index.js +339 -0
  509. package/src/common/utility.d.ts +38 -0
  510. package/src/common/utility.d.ts.map +1 -0
  511. package/src/common/utility.js +97 -0
  512. package/src/config/FileLogWriter.d.ts +23 -0
  513. package/src/config/FileLogWriter.d.ts.map +1 -0
  514. package/src/config/FileLogWriter.js +307 -0
  515. package/src/config/SecretsManager.d.ts +80 -0
  516. package/src/config/SecretsManager.d.ts.map +1 -0
  517. package/src/config/SecretsManager.js +354 -0
  518. package/src/config/StartupConfigValidator.d.ts +7 -0
  519. package/src/config/StartupConfigValidator.d.ts.map +1 -0
  520. package/src/config/StartupConfigValidator.js +201 -0
  521. package/src/config/app.d.ts +81 -0
  522. package/src/config/app.d.ts.map +1 -0
  523. package/src/config/app.js +224 -0
  524. package/src/config/broadcast.d.ts +68 -0
  525. package/src/config/broadcast.d.ts.map +1 -0
  526. package/src/config/broadcast.js +209 -0
  527. package/src/config/cache.d.ts +23 -0
  528. package/src/config/cache.d.ts.map +1 -0
  529. package/src/config/cache.js +144 -0
  530. package/src/config/cloudflare.d.ts +18 -0
  531. package/src/config/cloudflare.d.ts.map +1 -0
  532. package/src/config/cloudflare.js +97 -0
  533. package/src/config/constants.d.ts +238 -0
  534. package/src/config/constants.d.ts.map +1 -0
  535. package/src/config/constants.js +145 -0
  536. package/src/config/database.d.ts +41 -0
  537. package/src/config/database.d.ts.map +1 -0
  538. package/src/config/database.js +325 -0
  539. package/src/config/env.d.ts +289 -0
  540. package/src/config/env.d.ts.map +1 -0
  541. package/src/config/env.js +599 -0
  542. package/src/config/features.d.ts +54 -0
  543. package/src/config/features.d.ts.map +1 -0
  544. package/src/config/features.js +104 -0
  545. package/src/config/index.d.ts +249 -0
  546. package/src/config/index.d.ts.map +1 -0
  547. package/src/config/index.js +62 -0
  548. package/src/config/logger.d.ts +26 -0
  549. package/src/config/logger.d.ts.map +1 -0
  550. package/src/config/logger.js +814 -0
  551. package/src/config/logging/HttpLogger.d.ts +23 -0
  552. package/src/config/logging/HttpLogger.d.ts.map +1 -0
  553. package/src/config/logging/HttpLogger.js +93 -0
  554. package/src/config/logging/KvLogger.d.ts +22 -0
  555. package/src/config/logging/KvLogger.d.ts.map +1 -0
  556. package/src/config/logging/KvLogger.js +155 -0
  557. package/src/config/logging/SlackLogger.d.ts +23 -0
  558. package/src/config/logging/SlackLogger.d.ts.map +1 -0
  559. package/src/config/logging/SlackLogger.js +119 -0
  560. package/src/config/mail.d.ts +27 -0
  561. package/src/config/mail.d.ts.map +1 -0
  562. package/src/config/mail.js +166 -0
  563. package/src/config/microservices.d.ts +88 -0
  564. package/src/config/microservices.d.ts.map +1 -0
  565. package/src/config/microservices.js +90 -0
  566. package/src/config/middleware.d.ts +83 -0
  567. package/src/config/middleware.d.ts.map +1 -0
  568. package/src/config/middleware.js +351 -0
  569. package/src/config/notification.d.ts +24 -0
  570. package/src/config/notification.d.ts.map +1 -0
  571. package/src/config/notification.js +149 -0
  572. package/src/config/queue.d.ts +59 -0
  573. package/src/config/queue.d.ts.map +1 -0
  574. package/src/config/queue.js +231 -0
  575. package/src/config/redis.d.ts +17 -0
  576. package/src/config/redis.d.ts.map +1 -0
  577. package/src/config/redis.js +91 -0
  578. package/src/config/security.d.ts +123 -0
  579. package/src/config/security.d.ts.map +1 -0
  580. package/src/config/security.js +154 -0
  581. package/src/config/startup.d.ts +25 -0
  582. package/src/config/startup.d.ts.map +1 -0
  583. package/src/config/startup.js +16 -0
  584. package/src/config/storage.d.ts +45 -0
  585. package/src/config/storage.d.ts.map +1 -0
  586. package/src/config/storage.js +162 -0
  587. package/src/config/type.d.ts +573 -0
  588. package/src/config/type.d.ts.map +1 -0
  589. package/src/config/type.js +10 -0
  590. package/src/config/workers.d.ts +15 -0
  591. package/src/config/workers.d.ts.map +1 -0
  592. package/src/config/workers.js +510 -0
  593. package/src/config-index.d.ts +40 -0
  594. package/src/config-index.d.ts.map +1 -0
  595. package/src/config-index.js +26 -0
  596. package/src/constants-index.d.ts +7 -0
  597. package/src/constants-index.d.ts.map +1 -0
  598. package/src/constants-index.js +6 -0
  599. package/src/container/ServiceContainer.d.ts +25 -0
  600. package/src/container/ServiceContainer.d.ts.map +1 -0
  601. package/src/container/ServiceContainer.js +75 -0
  602. package/src/database/Paginator.d.ts +37 -0
  603. package/src/database/Paginator.d.ts.map +1 -0
  604. package/src/database/Paginator.js +81 -0
  605. package/src/database/migrations/index.d.ts +2 -0
  606. package/src/database/migrations/index.d.ts.map +1 -0
  607. package/src/database/migrations/index.js +2 -0
  608. package/src/database-index.d.ts +18 -0
  609. package/src/database-index.d.ts.map +1 -0
  610. package/src/database-index.js +13 -0
  611. package/src/errors-index.d.ts +7 -0
  612. package/src/errors-index.d.ts.map +1 -0
  613. package/src/errors-index.js +5 -0
  614. package/src/events/EventDispatcher.d.ts +16 -0
  615. package/src/events/EventDispatcher.d.ts.map +1 -0
  616. package/src/events/EventDispatcher.js +95 -0
  617. package/src/events/index.d.ts +3 -0
  618. package/src/events/index.d.ts.map +1 -0
  619. package/src/events/index.js +1 -0
  620. package/src/exceptions/ZintrustError.d.ts +98 -0
  621. package/src/exceptions/ZintrustError.d.ts.map +1 -0
  622. package/src/exceptions/ZintrustError.js +170 -0
  623. package/src/functions/cloudflare.d.ts +10 -0
  624. package/src/functions/cloudflare.d.ts.map +1 -0
  625. package/src/functions/cloudflare.js +258 -0
  626. package/src/functions/deno.d.ts +3 -0
  627. package/src/functions/deno.d.ts.map +1 -0
  628. package/src/functions/deno.js +20 -0
  629. package/src/functions/lambda.d.ts +2 -0
  630. package/src/functions/lambda.d.ts.map +1 -0
  631. package/src/functions/lambda.js +26 -0
  632. package/src/health/RuntimeHealthProbes.d.ts +13 -0
  633. package/src/health/RuntimeHealthProbes.d.ts.map +1 -0
  634. package/src/health/RuntimeHealthProbes.js +62 -0
  635. package/src/health/StartupHealthChecks.d.ts +26 -0
  636. package/src/health/StartupHealthChecks.d.ts.map +1 -0
  637. package/src/health/StartupHealthChecks.js +124 -0
  638. package/src/helper/ShutdownTrace.d.ts +9 -0
  639. package/src/helper/ShutdownTrace.d.ts.map +1 -0
  640. package/src/helper/ShutdownTrace.js +148 -0
  641. package/src/helper/index.d.ts +242 -0
  642. package/src/helper/index.d.ts.map +1 -0
  643. package/src/helper/index.js +369 -0
  644. package/src/http/Controller.d.ts +20 -0
  645. package/src/http/Controller.d.ts.map +1 -0
  646. package/src/http/Controller.js +46 -0
  647. package/src/http/ErrorResponse.d.ts +28 -0
  648. package/src/http/ErrorResponse.d.ts.map +1 -0
  649. package/src/http/ErrorResponse.js +42 -0
  650. package/src/http/FileUpload.d.ts +69 -0
  651. package/src/http/FileUpload.d.ts.map +1 -0
  652. package/src/http/FileUpload.js +120 -0
  653. package/src/http/HttpStatus.d.ts +12 -0
  654. package/src/http/HttpStatus.d.ts.map +1 -0
  655. package/src/http/HttpStatus.js +80 -0
  656. package/src/http/Kernel.d.ts +29 -0
  657. package/src/http/Kernel.d.ts.map +1 -0
  658. package/src/http/Kernel.js +329 -0
  659. package/src/http/Request.d.ts +65 -0
  660. package/src/http/Request.d.ts.map +1 -0
  661. package/src/http/Request.js +240 -0
  662. package/src/http/RequestContext.d.ts +27 -0
  663. package/src/http/RequestContext.d.ts.map +1 -0
  664. package/src/http/RequestContext.js +174 -0
  665. package/src/http/Response.d.ts +32 -0
  666. package/src/http/Response.d.ts.map +1 -0
  667. package/src/http/Response.js +70 -0
  668. package/src/http/ValidationHelper.d.ts +78 -0
  669. package/src/http/ValidationHelper.d.ts.map +1 -0
  670. package/src/http/ValidationHelper.js +121 -0
  671. package/src/http/error-pages/ErrorPageRenderer.d.ts +21 -0
  672. package/src/http/error-pages/ErrorPageRenderer.d.ts.map +1 -0
  673. package/src/http/error-pages/ErrorPageRenderer.js +244 -0
  674. package/src/http/middleware/BodyParsingMiddleware.d.ts +40 -0
  675. package/src/http/middleware/BodyParsingMiddleware.d.ts.map +1 -0
  676. package/src/http/middleware/BodyParsingMiddleware.js +388 -0
  677. package/src/http/middleware/FileUploadMiddleware.d.ts +12 -0
  678. package/src/http/middleware/FileUploadMiddleware.d.ts.map +1 -0
  679. package/src/http/middleware/FileUploadMiddleware.js +182 -0
  680. package/src/http/parsers/BodyParsers.d.ts +32 -0
  681. package/src/http/parsers/BodyParsers.d.ts.map +1 -0
  682. package/src/http/parsers/BodyParsers.js +222 -0
  683. package/src/http/parsers/MultipartParser.d.ts +35 -0
  684. package/src/http/parsers/MultipartParser.d.ts.map +1 -0
  685. package/src/http/parsers/MultipartParser.js +158 -0
  686. package/src/http/parsers/MultipartParserRegistry.d.ts +34 -0
  687. package/src/http/parsers/MultipartParserRegistry.d.ts.map +1 -0
  688. package/src/http/parsers/MultipartParserRegistry.js +20 -0
  689. package/src/http/validated.d.ts +12 -0
  690. package/src/http/validated.d.ts.map +1 -0
  691. package/src/http/validated.js +41 -0
  692. package/src/http-index.d.ts +14 -0
  693. package/src/http-index.d.ts.map +1 -0
  694. package/src/http-index.js +8 -0
  695. package/src/index.d.ts +230 -0
  696. package/src/index.d.ts.map +1 -0
  697. package/src/index.js +229 -0
  698. package/src/lang/lang.d.ts +26 -0
  699. package/src/lang/lang.d.ts.map +1 -0
  700. package/src/lang/lang.js +25 -0
  701. package/src/lang-index.d.ts +6 -0
  702. package/src/lang-index.d.ts.map +1 -0
  703. package/src/lang-index.js +5 -0
  704. package/src/logger-index.d.ts +6 -0
  705. package/src/logger-index.d.ts.map +1 -0
  706. package/src/logger-index.js +5 -0
  707. package/src/mail-index.d.ts +12 -0
  708. package/src/mail-index.d.ts.map +1 -0
  709. package/src/mail-index.js +8 -0
  710. package/src/microservices/MicroserviceBootstrap.d.ts +76 -0
  711. package/src/microservices/MicroserviceBootstrap.d.ts.map +1 -0
  712. package/src/microservices/MicroserviceBootstrap.js +327 -0
  713. package/src/microservices/MicroserviceGenerator.d.ts +27 -0
  714. package/src/microservices/MicroserviceGenerator.d.ts.map +1 -0
  715. package/src/microservices/MicroserviceGenerator.js +434 -0
  716. package/src/microservices/MicroserviceManager.d.ts +69 -0
  717. package/src/microservices/MicroserviceManager.d.ts.map +1 -0
  718. package/src/microservices/MicroserviceManager.js +291 -0
  719. package/src/microservices/PostgresAdapter.d.ts +96 -0
  720. package/src/microservices/PostgresAdapter.d.ts.map +1 -0
  721. package/src/microservices/PostgresAdapter.js +318 -0
  722. package/src/microservices/RequestTracingMiddleware.d.ts +41 -0
  723. package/src/microservices/RequestTracingMiddleware.d.ts.map +1 -0
  724. package/src/microservices/RequestTracingMiddleware.js +125 -0
  725. package/src/microservices/ServiceAuthMiddleware.d.ts +58 -0
  726. package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -0
  727. package/src/microservices/ServiceAuthMiddleware.js +248 -0
  728. package/src/microservices/ServiceBundler.d.ts +45 -0
  729. package/src/microservices/ServiceBundler.d.ts.map +1 -0
  730. package/src/microservices/ServiceBundler.js +299 -0
  731. package/src/microservices/ServiceHealthMonitor.d.ts +96 -0
  732. package/src/microservices/ServiceHealthMonitor.d.ts.map +1 -0
  733. package/src/microservices/ServiceHealthMonitor.js +383 -0
  734. package/src/microservices/ServiceManifest.d.ts +65 -0
  735. package/src/microservices/ServiceManifest.d.ts.map +1 -0
  736. package/src/microservices/ServiceManifest.js +119 -0
  737. package/src/microservices-index.d.ts +7 -0
  738. package/src/microservices-index.d.ts.map +1 -0
  739. package/src/microservices-index.js +5 -0
  740. package/src/middleware/AuthMiddleware.d.ts +12 -0
  741. package/src/middleware/AuthMiddleware.d.ts.map +1 -0
  742. package/src/middleware/AuthMiddleware.js +29 -0
  743. package/src/middleware/BulletproofAuthMiddleware.d.ts +95 -0
  744. package/src/middleware/BulletproofAuthMiddleware.d.ts.map +1 -0
  745. package/src/middleware/BulletproofAuthMiddleware.js +499 -0
  746. package/src/middleware/CsrfMiddleware.d.ts +30 -0
  747. package/src/middleware/CsrfMiddleware.d.ts.map +1 -0
  748. package/src/middleware/CsrfMiddleware.js +174 -0
  749. package/src/middleware/ErrorHandlerMiddleware.d.ts +10 -0
  750. package/src/middleware/ErrorHandlerMiddleware.d.ts.map +1 -0
  751. package/src/middleware/ErrorHandlerMiddleware.js +74 -0
  752. package/src/middleware/JwtAuthMiddleware.d.ts +13 -0
  753. package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -0
  754. package/src/middleware/JwtAuthMiddleware.js +114 -0
  755. package/src/middleware/LoggingMiddleware.d.ts +9 -0
  756. package/src/middleware/LoggingMiddleware.d.ts.map +1 -0
  757. package/src/middleware/LoggingMiddleware.js +47 -0
  758. package/src/middleware/MiddlewareFailureBody.d.ts +12 -0
  759. package/src/middleware/MiddlewareFailureBody.d.ts.map +1 -0
  760. package/src/middleware/MiddlewareFailureBody.js +8 -0
  761. package/src/middleware/MiddlewareFailureResponder.d.ts +16 -0
  762. package/src/middleware/MiddlewareFailureResponder.d.ts.map +1 -0
  763. package/src/middleware/MiddlewareFailureResponder.js +16 -0
  764. package/src/middleware/MiddlewareStack.d.ts +27 -0
  765. package/src/middleware/MiddlewareStack.d.ts.map +1 -0
  766. package/src/middleware/MiddlewareStack.js +43 -0
  767. package/src/middleware/RateLimiter.d.ts +59 -0
  768. package/src/middleware/RateLimiter.d.ts.map +1 -0
  769. package/src/middleware/RateLimiter.js +277 -0
  770. package/src/middleware/SanitizeBodyMiddleware.d.ts +12 -0
  771. package/src/middleware/SanitizeBodyMiddleware.d.ts.map +1 -0
  772. package/src/middleware/SanitizeBodyMiddleware.js +31 -0
  773. package/src/middleware/SecurityMiddleware.d.ts +34 -0
  774. package/src/middleware/SecurityMiddleware.d.ts.map +1 -0
  775. package/src/middleware/SecurityMiddleware.js +241 -0
  776. package/src/middleware/SessionMiddleware.d.ts +8 -0
  777. package/src/middleware/SessionMiddleware.d.ts.map +1 -0
  778. package/src/middleware/SessionMiddleware.js +15 -0
  779. package/src/middleware/ValidationMiddleware.d.ts +30 -0
  780. package/src/middleware/ValidationMiddleware.d.ts.map +1 -0
  781. package/src/middleware/ValidationMiddleware.js +280 -0
  782. package/src/middleware/index.d.ts +13 -0
  783. package/src/middleware/index.d.ts.map +1 -0
  784. package/src/middleware/index.js +12 -0
  785. package/src/middleware-index.d.ts +6 -0
  786. package/src/middleware-index.d.ts.map +1 -0
  787. package/src/middleware-index.js +5 -0
  788. package/src/migrations/MigrationDiscovery.d.ts +5 -0
  789. package/src/migrations/MigrationDiscovery.d.ts.map +1 -0
  790. package/src/migrations/MigrationDiscovery.js +49 -0
  791. package/src/migrations/MigrationLoader.d.ts +5 -0
  792. package/src/migrations/MigrationLoader.d.ts.map +1 -0
  793. package/src/migrations/MigrationLoader.js +43 -0
  794. package/src/migrations/MigrationLock.d.ts +4 -0
  795. package/src/migrations/MigrationLock.d.ts.map +1 -0
  796. package/src/migrations/MigrationLock.js +33 -0
  797. package/src/migrations/Migrator.d.ts +23 -0
  798. package/src/migrations/Migrator.d.ts.map +1 -0
  799. package/src/migrations/Migrator.js +4 -0
  800. package/src/migrations/MigratorFactory.d.ts +25 -0
  801. package/src/migrations/MigratorFactory.d.ts.map +1 -0
  802. package/src/migrations/MigratorFactory.js +339 -0
  803. package/src/migrations/enum/index.d.ts +94 -0
  804. package/src/migrations/enum/index.d.ts.map +1 -0
  805. package/src/migrations/enum/index.js +93 -0
  806. package/src/migrations/schema/Blueprint.d.ts +5 -0
  807. package/src/migrations/schema/Blueprint.d.ts.map +1 -0
  808. package/src/migrations/schema/Blueprint.js +192 -0
  809. package/src/migrations/schema/Schema.d.ts +8 -0
  810. package/src/migrations/schema/Schema.d.ts.map +1 -0
  811. package/src/migrations/schema/Schema.js +259 -0
  812. package/src/migrations/schema/SchemaCompiler.d.ts +20 -0
  813. package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -0
  814. package/src/migrations/schema/SchemaCompiler.js +275 -0
  815. package/src/migrations/schema/index.d.ts +5 -0
  816. package/src/migrations/schema/index.d.ts.map +1 -0
  817. package/src/migrations/schema/index.js +3 -0
  818. package/src/migrations/schema/types.d.ts +88 -0
  819. package/src/migrations/schema/types.d.ts.map +1 -0
  820. package/src/migrations/schema/types.js +1 -0
  821. package/src/migrations/types.d.ts +45 -0
  822. package/src/migrations/types.d.ts.map +1 -0
  823. package/src/migrations/types.js +1 -0
  824. package/src/node-singletons/async_hooks.d.ts +9 -0
  825. package/src/node-singletons/async_hooks.d.ts.map +1 -0
  826. package/src/node-singletons/async_hooks.js +8 -0
  827. package/src/node-singletons/child-process.d.ts +7 -0
  828. package/src/node-singletons/child-process.d.ts.map +1 -0
  829. package/src/node-singletons/child-process.js +6 -0
  830. package/src/node-singletons/crypto.d.ts +7 -0
  831. package/src/node-singletons/crypto.d.ts.map +1 -0
  832. package/src/node-singletons/crypto.js +6 -0
  833. package/src/node-singletons/events.d.ts +7 -0
  834. package/src/node-singletons/events.d.ts.map +1 -0
  835. package/src/node-singletons/events.js +6 -0
  836. package/src/node-singletons/fs.d.ts +12 -0
  837. package/src/node-singletons/fs.d.ts.map +1 -0
  838. package/src/node-singletons/fs.js +14 -0
  839. package/src/node-singletons/http.d.ts +8 -0
  840. package/src/node-singletons/http.d.ts.map +1 -0
  841. package/src/node-singletons/http.js +6 -0
  842. package/src/node-singletons/index.d.ts +35 -0
  843. package/src/node-singletons/index.d.ts.map +1 -0
  844. package/src/node-singletons/index.js +36 -0
  845. package/src/node-singletons/module.d.ts +9 -0
  846. package/src/node-singletons/module.d.ts.map +1 -0
  847. package/src/node-singletons/module.js +9 -0
  848. package/src/node-singletons/net.d.ts +9 -0
  849. package/src/node-singletons/net.d.ts.map +1 -0
  850. package/src/node-singletons/net.js +8 -0
  851. package/src/node-singletons/os.d.ts +18 -0
  852. package/src/node-singletons/os.d.ts.map +1 -0
  853. package/src/node-singletons/os.js +17 -0
  854. package/src/node-singletons/path.d.ts +9 -0
  855. package/src/node-singletons/path.d.ts.map +1 -0
  856. package/src/node-singletons/path.js +8 -0
  857. package/src/node-singletons/perf-hooks.d.ts +9 -0
  858. package/src/node-singletons/perf-hooks.d.ts.map +1 -0
  859. package/src/node-singletons/perf-hooks.js +8 -0
  860. package/src/node-singletons/process.d.ts +23 -0
  861. package/src/node-singletons/process.d.ts.map +1 -0
  862. package/src/node-singletons/process.js +8 -0
  863. package/src/node-singletons/readline.d.ts +10 -0
  864. package/src/node-singletons/readline.d.ts.map +1 -0
  865. package/src/node-singletons/readline.js +8 -0
  866. package/src/node-singletons/stream.d.ts +11 -0
  867. package/src/node-singletons/stream.d.ts.map +1 -0
  868. package/src/node-singletons/stream.js +8 -0
  869. package/src/node-singletons/tls.d.ts +9 -0
  870. package/src/node-singletons/tls.d.ts.map +1 -0
  871. package/src/node-singletons/tls.js +8 -0
  872. package/src/node-singletons/url.d.ts +9 -0
  873. package/src/node-singletons/url.d.ts.map +1 -0
  874. package/src/node-singletons/url.js +8 -0
  875. package/src/node-singletons/util.d.ts +6 -0
  876. package/src/node-singletons/util.d.ts.map +1 -0
  877. package/src/node-singletons/util.js +5 -0
  878. package/src/node.d.ts +14 -0
  879. package/src/node.d.ts.map +1 -0
  880. package/src/node.js +18 -0
  881. package/src/observability/OpenTelemetry.d.ts +69 -0
  882. package/src/observability/OpenTelemetry.d.ts.map +1 -0
  883. package/src/observability/OpenTelemetry.js +269 -0
  884. package/src/observability/PrometheusMetrics.d.ts +25 -0
  885. package/src/observability/PrometheusMetrics.d.ts.map +1 -0
  886. package/src/observability/PrometheusMetrics.js +115 -0
  887. package/src/openapi/OpenApiGenerator.d.ts +68 -0
  888. package/src/openapi/OpenApiGenerator.d.ts.map +1 -0
  889. package/src/openapi/OpenApiGenerator.js +287 -0
  890. package/src/orm/ConnectionManager.d.ts +125 -0
  891. package/src/orm/ConnectionManager.d.ts.map +1 -0
  892. package/src/orm/ConnectionManager.js +571 -0
  893. package/src/orm/Database.d.ts +68 -0
  894. package/src/orm/Database.d.ts.map +1 -0
  895. package/src/orm/Database.js +554 -0
  896. package/src/orm/DatabaseAdapter.d.ts +192 -0
  897. package/src/orm/DatabaseAdapter.d.ts.map +1 -0
  898. package/src/orm/DatabaseAdapter.js +74 -0
  899. package/src/orm/DatabaseAdapterRegistry.d.ts +14 -0
  900. package/src/orm/DatabaseAdapterRegistry.d.ts.map +1 -0
  901. package/src/orm/DatabaseAdapterRegistry.js +21 -0
  902. package/src/orm/DatabaseConnectionRegistry.d.ts +8 -0
  903. package/src/orm/DatabaseConnectionRegistry.d.ts.map +1 -0
  904. package/src/orm/DatabaseConnectionRegistry.js +13 -0
  905. package/src/orm/DatabaseRuntimeRegistration.d.ts +17 -0
  906. package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -0
  907. package/src/orm/DatabaseRuntimeRegistration.js +76 -0
  908. package/src/orm/Model.d.ts +180 -0
  909. package/src/orm/Model.d.ts.map +1 -0
  910. package/src/orm/Model.js +848 -0
  911. package/src/orm/QueryBuilder.d.ts +139 -0
  912. package/src/orm/QueryBuilder.d.ts.map +1 -0
  913. package/src/orm/QueryBuilder.js +1711 -0
  914. package/src/orm/QueryBuilderTypeSurface.fixture.d.ts +32 -0
  915. package/src/orm/QueryBuilderTypeSurface.fixture.d.ts.map +1 -0
  916. package/src/orm/QueryBuilderTypeSurface.fixture.js +75 -0
  917. package/src/orm/RelationBootstrapDiagnostics.d.ts +21 -0
  918. package/src/orm/RelationBootstrapDiagnostics.d.ts.map +1 -0
  919. package/src/orm/RelationBootstrapDiagnostics.js +102 -0
  920. package/src/orm/Relationships.d.ts +119 -0
  921. package/src/orm/Relationships.d.ts.map +1 -0
  922. package/src/orm/Relationships.js +275 -0
  923. package/src/orm/Schema.d.ts +123 -0
  924. package/src/orm/Schema.d.ts.map +1 -0
  925. package/src/orm/Schema.js +169 -0
  926. package/src/orm/SchemaCompiler.d.ts +9 -0
  927. package/src/orm/SchemaCompiler.d.ts.map +1 -0
  928. package/src/orm/SchemaCompiler.js +148 -0
  929. package/src/orm/SchemaStatemenWriter.d.ts +15 -0
  930. package/src/orm/SchemaStatemenWriter.d.ts.map +1 -0
  931. package/src/orm/SchemaStatemenWriter.js +78 -0
  932. package/src/orm/adapters/D1Adapter.d.ts +15 -0
  933. package/src/orm/adapters/D1Adapter.d.ts.map +1 -0
  934. package/src/orm/adapters/D1Adapter.js +291 -0
  935. package/src/orm/adapters/D1ReadSession.d.ts +34 -0
  936. package/src/orm/adapters/D1ReadSession.d.ts.map +1 -0
  937. package/src/orm/adapters/D1ReadSession.js +69 -0
  938. package/src/orm/adapters/D1RemoteAdapter.d.ts +11 -0
  939. package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -0
  940. package/src/orm/adapters/D1RemoteAdapter.js +222 -0
  941. package/src/orm/adapters/MongoDBProxyAdapter.d.ts +3 -0
  942. package/src/orm/adapters/MongoDBProxyAdapter.d.ts.map +1 -0
  943. package/src/orm/adapters/MongoDBProxyAdapter.js +129 -0
  944. package/src/orm/adapters/MySQLAdapter.d.ts +16 -0
  945. package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -0
  946. package/src/orm/adapters/MySQLAdapter.js +109 -0
  947. package/src/orm/adapters/MySQLProxyAdapter.d.ts +11 -0
  948. package/src/orm/adapters/MySQLProxyAdapter.d.ts.map +1 -0
  949. package/src/orm/adapters/MySQLProxyAdapter.js +245 -0
  950. package/src/orm/adapters/PostgreSQLAdapter.d.ts +16 -0
  951. package/src/orm/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  952. package/src/orm/adapters/PostgreSQLAdapter.js +108 -0
  953. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts +11 -0
  954. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts.map +1 -0
  955. package/src/orm/adapters/PostgreSQLProxyAdapter.js +187 -0
  956. package/src/orm/adapters/ProxyCache.d.ts +9 -0
  957. package/src/orm/adapters/ProxyCache.d.ts.map +1 -0
  958. package/src/orm/adapters/ProxyCache.js +24 -0
  959. package/src/orm/adapters/ProxySignedRequest.d.ts +11 -0
  960. package/src/orm/adapters/ProxySignedRequest.d.ts.map +1 -0
  961. package/src/orm/adapters/ProxySignedRequest.js +30 -0
  962. package/src/orm/adapters/ProxySigningPath.d.ts +3 -0
  963. package/src/orm/adapters/ProxySigningPath.d.ts.map +1 -0
  964. package/src/orm/adapters/ProxySigningPath.js +25 -0
  965. package/src/orm/adapters/SQLServerAdapter.d.ts +16 -0
  966. package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -0
  967. package/src/orm/adapters/SQLServerAdapter.js +84 -0
  968. package/src/orm/adapters/SQLiteAdapter.d.ts +11 -0
  969. package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -0
  970. package/src/orm/adapters/SQLiteAdapter.js +249 -0
  971. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts +21 -0
  972. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts.map +1 -0
  973. package/src/orm/adapters/SqlProxyAdapterUtils.js +53 -0
  974. package/src/orm/adapters/SqlProxyHttpAdapterShared.d.ts +31 -0
  975. package/src/orm/adapters/SqlProxyHttpAdapterShared.d.ts.map +1 -0
  976. package/src/orm/adapters/SqlProxyHttpAdapterShared.js +69 -0
  977. package/src/orm/adapters/SqlProxyRegistryMode.d.ts +12 -0
  978. package/src/orm/adapters/SqlProxyRegistryMode.d.ts.map +1 -0
  979. package/src/orm/adapters/SqlProxyRegistryMode.js +24 -0
  980. package/src/orm/adapters/SqlServerProxyAdapter.d.ts +6 -0
  981. package/src/orm/adapters/SqlServerProxyAdapter.d.ts.map +1 -0
  982. package/src/orm/adapters/SqlServerProxyAdapter.js +172 -0
  983. package/src/orm/maintenance/SqliteMaintenance.d.ts +5 -0
  984. package/src/orm/maintenance/SqliteMaintenance.d.ts.map +1 -0
  985. package/src/orm/maintenance/SqliteMaintenance.js +14 -0
  986. package/src/orm/migrations/MigrationStore.d.ts +38 -0
  987. package/src/orm/migrations/MigrationStore.d.ts.map +1 -0
  988. package/src/orm/migrations/MigrationStore.js +555 -0
  989. package/src/orm-index.d.ts +23 -0
  990. package/src/orm-index.d.ts.map +1 -0
  991. package/src/orm-index.js +18 -0
  992. package/src/performance/Benchmark.d.ts +87 -0
  993. package/src/performance/Benchmark.d.ts.map +1 -0
  994. package/src/performance/Benchmark.js +299 -0
  995. package/src/performance/CodeGenerationBenchmark.d.ts +23 -0
  996. package/src/performance/CodeGenerationBenchmark.d.ts.map +1 -0
  997. package/src/performance/CodeGenerationBenchmark.js +249 -0
  998. package/src/performance/Optimizer.d.ts +101 -0
  999. package/src/performance/Optimizer.d.ts.map +1 -0
  1000. package/src/performance/Optimizer.js +640 -0
  1001. package/src/performance/establish-baseline.d.ts +9 -0
  1002. package/src/performance/establish-baseline.d.ts.map +1 -0
  1003. package/src/performance/establish-baseline.js +55 -0
  1004. package/src/profiling/MemoryProfiler.d.ts +32 -0
  1005. package/src/profiling/MemoryProfiler.d.ts.map +1 -0
  1006. package/src/profiling/MemoryProfiler.js +84 -0
  1007. package/src/profiling/N1Detector.d.ts +16 -0
  1008. package/src/profiling/N1Detector.d.ts.map +1 -0
  1009. package/src/profiling/N1Detector.js +120 -0
  1010. package/src/profiling/QueryLogger.d.ts +107 -0
  1011. package/src/profiling/QueryLogger.d.ts.map +1 -0
  1012. package/src/profiling/QueryLogger.js +148 -0
  1013. package/src/profiling/RequestProfiler.d.ts +30 -0
  1014. package/src/profiling/RequestProfiler.d.ts.map +1 -0
  1015. package/src/profiling/RequestProfiler.js +96 -0
  1016. package/src/profiling/types.d.ts +77 -0
  1017. package/src/profiling/types.d.ts.map +1 -0
  1018. package/src/profiling/types.js +5 -0
  1019. package/src/proxy/CloudflareProxyShared.d.ts +45 -0
  1020. package/src/proxy/CloudflareProxyShared.d.ts.map +1 -0
  1021. package/src/proxy/CloudflareProxyShared.js +89 -0
  1022. package/src/proxy/ErrorHandler.d.ts +11 -0
  1023. package/src/proxy/ErrorHandler.d.ts.map +1 -0
  1024. package/src/proxy/ErrorHandler.js +7 -0
  1025. package/src/proxy/PoolManager.d.ts +8 -0
  1026. package/src/proxy/PoolManager.d.ts.map +1 -0
  1027. package/src/proxy/PoolManager.js +18 -0
  1028. package/src/proxy/ProxyBackend.d.ts +18 -0
  1029. package/src/proxy/ProxyBackend.d.ts.map +1 -0
  1030. package/src/proxy/ProxyBackend.js +1 -0
  1031. package/src/proxy/ProxyConfig.d.ts +12 -0
  1032. package/src/proxy/ProxyConfig.d.ts.map +1 -0
  1033. package/src/proxy/ProxyConfig.js +1 -0
  1034. package/src/proxy/ProxyRegistry.d.ts +10 -0
  1035. package/src/proxy/ProxyRegistry.d.ts.map +1 -0
  1036. package/src/proxy/ProxyRegistry.js +11 -0
  1037. package/src/proxy/ProxyRequestParsing.d.ts +9 -0
  1038. package/src/proxy/ProxyRequestParsing.d.ts.map +1 -0
  1039. package/src/proxy/ProxyRequestParsing.js +16 -0
  1040. package/src/proxy/ProxyServer.d.ts +21 -0
  1041. package/src/proxy/ProxyServer.d.ts.map +1 -0
  1042. package/src/proxy/ProxyServer.js +93 -0
  1043. package/src/proxy/ProxyServerUtils.d.ts +37 -0
  1044. package/src/proxy/ProxyServerUtils.d.ts.map +1 -0
  1045. package/src/proxy/ProxyServerUtils.js +83 -0
  1046. package/src/proxy/ProxySigningConfigResolver.d.ts +22 -0
  1047. package/src/proxy/ProxySigningConfigResolver.d.ts.map +1 -0
  1048. package/src/proxy/ProxySigningConfigResolver.js +24 -0
  1049. package/src/proxy/ProxySigningRequest.d.ts +12 -0
  1050. package/src/proxy/ProxySigningRequest.d.ts.map +1 -0
  1051. package/src/proxy/ProxySigningRequest.js +31 -0
  1052. package/src/proxy/RequestValidator.d.ts +15 -0
  1053. package/src/proxy/RequestValidator.d.ts.map +1 -0
  1054. package/src/proxy/RequestValidator.js +26 -0
  1055. package/src/proxy/SigningService.d.ts +39 -0
  1056. package/src/proxy/SigningService.d.ts.map +1 -0
  1057. package/src/proxy/SigningService.js +104 -0
  1058. package/src/proxy/SqlPayloadValidator.d.ts +13 -0
  1059. package/src/proxy/SqlPayloadValidator.d.ts.map +1 -0
  1060. package/src/proxy/SqlPayloadValidator.js +14 -0
  1061. package/src/proxy/SqlProxyDbOverrides.d.ts +17 -0
  1062. package/src/proxy/SqlProxyDbOverrides.d.ts.map +1 -0
  1063. package/src/proxy/SqlProxyDbOverrides.js +1 -0
  1064. package/src/proxy/SqlProxyServerDeps.d.ts +12 -0
  1065. package/src/proxy/SqlProxyServerDeps.d.ts.map +1 -0
  1066. package/src/proxy/SqlProxyServerDeps.js +9 -0
  1067. package/src/proxy/StatementPayloadValidator.d.ts +13 -0
  1068. package/src/proxy/StatementPayloadValidator.d.ts.map +1 -0
  1069. package/src/proxy/StatementPayloadValidator.js +18 -0
  1070. package/src/proxy/StatementRegistryLoader.d.ts +2 -0
  1071. package/src/proxy/StatementRegistryLoader.d.ts.map +1 -0
  1072. package/src/proxy/StatementRegistryLoader.js +36 -0
  1073. package/src/proxy/StatementRegistryResolver.d.ts +15 -0
  1074. package/src/proxy/StatementRegistryResolver.d.ts.map +1 -0
  1075. package/src/proxy/StatementRegistryResolver.js +34 -0
  1076. package/src/proxy/WorkerSigning.d.ts +33 -0
  1077. package/src/proxy/WorkerSigning.d.ts.map +1 -0
  1078. package/src/proxy/WorkerSigning.js +77 -0
  1079. package/src/proxy/d1/ZintrustD1Proxy.d.ts +55 -0
  1080. package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -0
  1081. package/src/proxy/d1/ZintrustD1Proxy.js +311 -0
  1082. package/src/proxy/d1/register.d.ts +2 -0
  1083. package/src/proxy/d1/register.d.ts.map +1 -0
  1084. package/src/proxy/d1/register.js +5 -0
  1085. package/src/proxy/email/ZintrustEmailProxy.d.ts +20 -0
  1086. package/src/proxy/email/ZintrustEmailProxy.d.ts.map +1 -0
  1087. package/src/proxy/email/ZintrustEmailProxy.js +129 -0
  1088. package/src/proxy/email/register.d.ts +2 -0
  1089. package/src/proxy/email/register.d.ts.map +1 -0
  1090. package/src/proxy/email/register.js +5 -0
  1091. package/src/proxy/isMutatingSql.d.ts +2 -0
  1092. package/src/proxy/isMutatingSql.d.ts.map +1 -0
  1093. package/src/proxy/isMutatingSql.js +12 -0
  1094. package/src/proxy/kv/ZintrustKvProxy.d.ts +44 -0
  1095. package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -0
  1096. package/src/proxy/kv/ZintrustKvProxy.js +214 -0
  1097. package/src/proxy/kv/register.d.ts +2 -0
  1098. package/src/proxy/kv/register.d.ts.map +1 -0
  1099. package/src/proxy/kv/register.js +5 -0
  1100. package/src/proxy/mongodb/MongoDBProxyServer.d.ts +33 -0
  1101. package/src/proxy/mongodb/MongoDBProxyServer.d.ts.map +1 -0
  1102. package/src/proxy/mongodb/MongoDBProxyServer.js +210 -0
  1103. package/src/proxy/mongodb/register.d.ts +2 -0
  1104. package/src/proxy/mongodb/register.d.ts.map +1 -0
  1105. package/src/proxy/mongodb/register.js +5 -0
  1106. package/src/proxy/mysql/MySqlProxyServer.d.ts +8 -0
  1107. package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -0
  1108. package/src/proxy/mysql/MySqlProxyServer.js +209 -0
  1109. package/src/proxy/mysql/register.d.ts +2 -0
  1110. package/src/proxy/mysql/register.d.ts.map +1 -0
  1111. package/src/proxy/mysql/register.js +5 -0
  1112. package/src/proxy/postgres/PostgresProxyServer.d.ts +8 -0
  1113. package/src/proxy/postgres/PostgresProxyServer.d.ts.map +1 -0
  1114. package/src/proxy/postgres/PostgresProxyServer.js +183 -0
  1115. package/src/proxy/postgres/register.d.ts +2 -0
  1116. package/src/proxy/postgres/register.d.ts.map +1 -0
  1117. package/src/proxy/postgres/register.js +5 -0
  1118. package/src/proxy/redis/RedisProxyServer.d.ts +12 -0
  1119. package/src/proxy/redis/RedisProxyServer.d.ts.map +1 -0
  1120. package/src/proxy/redis/RedisProxyServer.js +195 -0
  1121. package/src/proxy/redis/register.d.ts +2 -0
  1122. package/src/proxy/redis/register.d.ts.map +1 -0
  1123. package/src/proxy/redis/register.js +5 -0
  1124. package/src/proxy/smtp/SmtpProxyServer.d.ts +19 -0
  1125. package/src/proxy/smtp/SmtpProxyServer.d.ts.map +1 -0
  1126. package/src/proxy/smtp/SmtpProxyServer.js +294 -0
  1127. package/src/proxy/smtp/register.d.ts +2 -0
  1128. package/src/proxy/smtp/register.d.ts.map +1 -0
  1129. package/src/proxy/smtp/register.js +5 -0
  1130. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts +8 -0
  1131. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts.map +1 -0
  1132. package/src/proxy/sqlserver/SqlServerProxyServer.js +208 -0
  1133. package/src/proxy/sqlserver/register.d.ts +2 -0
  1134. package/src/proxy/sqlserver/register.d.ts.map +1 -0
  1135. package/src/proxy/sqlserver/register.js +5 -0
  1136. package/src/proxy-index.d.ts +11 -0
  1137. package/src/proxy-index.d.ts.map +1 -0
  1138. package/src/proxy-index.js +10 -0
  1139. package/src/proxy.d.ts +7 -0
  1140. package/src/proxy.d.ts.map +1 -0
  1141. package/src/proxy.js +6 -0
  1142. package/src/queue-index.d.ts +14 -0
  1143. package/src/queue-index.d.ts.map +1 -0
  1144. package/src/queue-index.js +12 -0
  1145. package/src/redis-index.d.ts +10 -0
  1146. package/src/redis-index.d.ts.map +1 -0
  1147. package/src/redis-index.js +9 -0
  1148. package/src/routes/CoreRoutes.d.ts +12 -0
  1149. package/src/routes/CoreRoutes.d.ts.map +1 -0
  1150. package/src/routes/CoreRoutes.js +39 -0
  1151. package/src/routes/RouteRegistry.d.ts +39 -0
  1152. package/src/routes/RouteRegistry.d.ts.map +1 -0
  1153. package/src/routes/RouteRegistry.js +44 -0
  1154. package/src/routes/Router.d.ts +73 -0
  1155. package/src/routes/Router.d.ts.map +1 -0
  1156. package/src/routes/Router.js +250 -0
  1157. package/src/routes/common.d.ts +15 -0
  1158. package/src/routes/common.d.ts.map +1 -0
  1159. package/src/routes/common.js +47 -0
  1160. package/src/routes/doc.d.ts +27 -0
  1161. package/src/routes/doc.d.ts.map +1 -0
  1162. package/src/routes/doc.js +125 -0
  1163. package/src/routes/error.d.ts +22 -0
  1164. package/src/routes/error.d.ts.map +1 -0
  1165. package/src/routes/error.js +139 -0
  1166. package/src/routes/errorPages.d.ts +17 -0
  1167. package/src/routes/errorPages.d.ts.map +1 -0
  1168. package/src/routes/errorPages.js +267 -0
  1169. package/src/routes/health.d.ts +6 -0
  1170. package/src/routes/health.d.ts.map +1 -0
  1171. package/src/routes/health.js +5 -0
  1172. package/src/routes/metrics.d.ts +9 -0
  1173. package/src/routes/metrics.d.ts.map +1 -0
  1174. package/src/routes/metrics.js +20 -0
  1175. package/src/routes/openapi.d.ts +9 -0
  1176. package/src/routes/openapi.d.ts.map +1 -0
  1177. package/src/routes/openapi.js +76 -0
  1178. package/src/routes/publicRoot.d.ts +27 -0
  1179. package/src/routes/publicRoot.d.ts.map +1 -0
  1180. package/src/routes/publicRoot.js +112 -0
  1181. package/src/runtime/BackgroundTaskScheduler.d.ts +39 -0
  1182. package/src/runtime/BackgroundTaskScheduler.d.ts.map +1 -0
  1183. package/src/runtime/BackgroundTaskScheduler.js +105 -0
  1184. package/src/runtime/NodeStartup.d.ts +14 -0
  1185. package/src/runtime/NodeStartup.d.ts.map +1 -0
  1186. package/src/runtime/NodeStartup.js +39 -0
  1187. package/src/runtime/OfficialPlugins.d.ts +10 -0
  1188. package/src/runtime/OfficialPlugins.d.ts.map +1 -0
  1189. package/src/runtime/OfficialPlugins.js +158 -0
  1190. package/src/runtime/OverrideValueMerge.d.ts +3 -0
  1191. package/src/runtime/OverrideValueMerge.d.ts.map +1 -0
  1192. package/src/runtime/OverrideValueMerge.js +14 -0
  1193. package/src/runtime/PluginAutoImports.d.ts +24 -0
  1194. package/src/runtime/PluginAutoImports.d.ts.map +1 -0
  1195. package/src/runtime/PluginAutoImports.js +327 -0
  1196. package/src/runtime/PluginManager.d.ts +28 -0
  1197. package/src/runtime/PluginManager.d.ts.map +1 -0
  1198. package/src/runtime/PluginManager.js +369 -0
  1199. package/src/runtime/PluginRegistry.d.ts +27 -0
  1200. package/src/runtime/PluginRegistry.d.ts.map +1 -0
  1201. package/src/runtime/PluginRegistry.js +190 -0
  1202. package/src/runtime/ProjectBootstrap.d.ts +6 -0
  1203. package/src/runtime/ProjectBootstrap.d.ts.map +1 -0
  1204. package/src/runtime/ProjectBootstrap.js +52 -0
  1205. package/src/runtime/ProjectRuntime.d.ts +13 -0
  1206. package/src/runtime/ProjectRuntime.d.ts.map +1 -0
  1207. package/src/runtime/ProjectRuntime.js +121 -0
  1208. package/src/runtime/RuntimeAdapter.d.ts +125 -0
  1209. package/src/runtime/RuntimeAdapter.d.ts.map +1 -0
  1210. package/src/runtime/RuntimeAdapter.js +270 -0
  1211. package/src/runtime/RuntimeServices.d.ts +47 -0
  1212. package/src/runtime/RuntimeServices.d.ts.map +1 -0
  1213. package/src/runtime/RuntimeServices.js +134 -0
  1214. package/src/runtime/StartupConfigFileRegistry.d.ts +23 -0
  1215. package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -0
  1216. package/src/runtime/StartupConfigFileRegistry.js +82 -0
  1217. package/src/runtime/StartupErrorLogging.d.ts +16 -0
  1218. package/src/runtime/StartupErrorLogging.d.ts.map +1 -0
  1219. package/src/runtime/StartupErrorLogging.js +34 -0
  1220. package/src/runtime/WorkerAdapterImports.d.ts +5 -0
  1221. package/src/runtime/WorkerAdapterImports.d.ts.map +1 -0
  1222. package/src/runtime/WorkerAdapterImports.js +29 -0
  1223. package/src/runtime/WorkerProjectAutoImports.d.ts +14 -0
  1224. package/src/runtime/WorkerProjectAutoImports.d.ts.map +1 -0
  1225. package/src/runtime/WorkerProjectAutoImports.js +63 -0
  1226. package/src/runtime/WorkerProjectPlugins.d.ts +6 -0
  1227. package/src/runtime/WorkerProjectPlugins.d.ts.map +1 -0
  1228. package/src/runtime/WorkerProjectPlugins.js +5 -0
  1229. package/src/runtime/WorkersModule.d.ts +8 -0
  1230. package/src/runtime/WorkersModule.d.ts.map +1 -0
  1231. package/src/runtime/WorkersModule.js +387 -0
  1232. package/src/runtime/adapters/CloudflareAdapter.d.ts +43 -0
  1233. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -0
  1234. package/src/runtime/adapters/CloudflareAdapter.js +242 -0
  1235. package/src/runtime/adapters/DenoAdapter.d.ts +30 -0
  1236. package/src/runtime/adapters/DenoAdapter.d.ts.map +1 -0
  1237. package/src/runtime/adapters/DenoAdapter.js +194 -0
  1238. package/src/runtime/adapters/FargateAdapter.d.ts +40 -0
  1239. package/src/runtime/adapters/FargateAdapter.d.ts.map +1 -0
  1240. package/src/runtime/adapters/FargateAdapter.js +157 -0
  1241. package/src/runtime/adapters/LambdaAdapter.d.ts +13 -0
  1242. package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -0
  1243. package/src/runtime/adapters/LambdaAdapter.js +304 -0
  1244. package/src/runtime/adapters/NodeServerAdapter.d.ts +16 -0
  1245. package/src/runtime/adapters/NodeServerAdapter.d.ts.map +1 -0
  1246. package/src/runtime/adapters/NodeServerAdapter.js +200 -0
  1247. package/src/runtime/detectRuntime.d.ts +10 -0
  1248. package/src/runtime/detectRuntime.d.ts.map +1 -0
  1249. package/src/runtime/detectRuntime.js +65 -0
  1250. package/src/runtime/getKernel.d.ts +9 -0
  1251. package/src/runtime/getKernel.d.ts.map +1 -0
  1252. package/src/runtime/getKernel.js +27 -0
  1253. package/src/runtime/plugins/trace-runtime.d.ts +29 -0
  1254. package/src/runtime/plugins/trace-runtime.d.ts.map +1 -0
  1255. package/src/runtime/plugins/trace-runtime.js +82 -0
  1256. package/src/runtime/plugins/trace.d.ts +3 -0
  1257. package/src/runtime/plugins/trace.d.ts.map +1 -0
  1258. package/src/runtime/plugins/trace.js +16 -0
  1259. package/src/runtime/resolveNodeProjectRoot.d.ts +3 -0
  1260. package/src/runtime/resolveNodeProjectRoot.d.ts.map +1 -0
  1261. package/src/runtime/resolveNodeProjectRoot.js +18 -0
  1262. package/src/runtime/useFileLoader.d.ts +31 -0
  1263. package/src/runtime/useFileLoader.d.ts.map +1 -0
  1264. package/src/runtime/useFileLoader.js +225 -0
  1265. package/src/runtime-index.d.ts +109 -0
  1266. package/src/runtime-index.d.ts.map +1 -0
  1267. package/src/runtime-index.js +106 -0
  1268. package/src/scheduler/Schedule.d.ts +36 -0
  1269. package/src/scheduler/Schedule.d.ts.map +1 -0
  1270. package/src/scheduler/Schedule.js +197 -0
  1271. package/src/scheduler/ScheduleHttpGateway.d.ts +8 -0
  1272. package/src/scheduler/ScheduleHttpGateway.d.ts.map +1 -0
  1273. package/src/scheduler/ScheduleHttpGateway.js +196 -0
  1274. package/src/scheduler/ScheduleRunner.d.ts +38 -0
  1275. package/src/scheduler/ScheduleRunner.d.ts.map +1 -0
  1276. package/src/scheduler/ScheduleRunner.js +342 -0
  1277. package/src/scheduler/SchedulerRuntime.d.ts +30 -0
  1278. package/src/scheduler/SchedulerRuntime.d.ts.map +1 -0
  1279. package/src/scheduler/SchedulerRuntime.js +97 -0
  1280. package/src/scheduler/cron/Cron.d.ts +19 -0
  1281. package/src/scheduler/cron/Cron.d.ts.map +1 -0
  1282. package/src/scheduler/cron/Cron.js +204 -0
  1283. package/src/scheduler/index.d.ts +3 -0
  1284. package/src/scheduler/index.d.ts.map +1 -0
  1285. package/src/scheduler/index.js +1 -0
  1286. package/src/scheduler/leader/SchedulerLeader.d.ts +14 -0
  1287. package/src/scheduler/leader/SchedulerLeader.d.ts.map +1 -0
  1288. package/src/scheduler/leader/SchedulerLeader.js +187 -0
  1289. package/src/scheduler/state/ScheduleStateStore.d.ts +27 -0
  1290. package/src/scheduler/state/ScheduleStateStore.d.ts.map +1 -0
  1291. package/src/scheduler/state/ScheduleStateStore.js +27 -0
  1292. package/src/scheduler/types.d.ts +26 -0
  1293. package/src/scheduler/types.d.ts.map +1 -0
  1294. package/src/scheduler/types.js +4 -0
  1295. package/src/scheduler-index.d.ts +14 -0
  1296. package/src/scheduler-index.d.ts.map +1 -0
  1297. package/src/scheduler-index.js +9 -0
  1298. package/src/schedules/index.d.ts +3 -0
  1299. package/src/schedules/index.d.ts.map +1 -0
  1300. package/src/schedules/index.js +2 -0
  1301. package/src/schedules/job-tracking-cleanup.d.ts +4 -0
  1302. package/src/schedules/job-tracking-cleanup.d.ts.map +1 -0
  1303. package/src/schedules/job-tracking-cleanup.js +116 -0
  1304. package/src/schedules/log-cleanup.d.ts +3 -0
  1305. package/src/schedules/log-cleanup.d.ts.map +1 -0
  1306. package/src/schedules/log-cleanup.js +15 -0
  1307. package/src/scripts/GenerateEnvArtifacts.d.ts +13 -0
  1308. package/src/scripts/GenerateEnvArtifacts.d.ts.map +1 -0
  1309. package/src/scripts/GenerateEnvArtifacts.js +171 -0
  1310. package/src/scripts/TemplateImportsCheck.d.ts +2 -0
  1311. package/src/scripts/TemplateImportsCheck.d.ts.map +1 -0
  1312. package/src/scripts/TemplateImportsCheck.js +164 -0
  1313. package/src/scripts/TemplateSync.d.ts +7 -0
  1314. package/src/scripts/TemplateSync.d.ts.map +1 -0
  1315. package/src/scripts/TemplateSync.js +398 -0
  1316. package/src/scripts-index.d.ts +8 -0
  1317. package/src/scripts-index.d.ts.map +1 -0
  1318. package/src/scripts-index.js +9 -0
  1319. package/src/security/AuthStoreIds.d.ts +8 -0
  1320. package/src/security/AuthStoreIds.d.ts.map +1 -0
  1321. package/src/security/AuthStoreIds.js +31 -0
  1322. package/src/security/BulletproofDeviceStore.d.ts +18 -0
  1323. package/src/security/BulletproofDeviceStore.d.ts.map +1 -0
  1324. package/src/security/BulletproofDeviceStore.js +259 -0
  1325. package/src/security/CsrfTokenManager.d.ts +37 -0
  1326. package/src/security/CsrfTokenManager.d.ts.map +1 -0
  1327. package/src/security/CsrfTokenManager.js +305 -0
  1328. package/src/security/EncryptedEnvelope.d.ts +77 -0
  1329. package/src/security/EncryptedEnvelope.d.ts.map +1 -0
  1330. package/src/security/EncryptedEnvelope.js +256 -0
  1331. package/src/security/Encryptor.d.ts +15 -0
  1332. package/src/security/Encryptor.d.ts.map +1 -0
  1333. package/src/security/Encryptor.js +199 -0
  1334. package/src/security/Hash.d.ts +14 -0
  1335. package/src/security/Hash.d.ts.map +1 -0
  1336. package/src/security/Hash.js +76 -0
  1337. package/src/security/JwtManager.d.ts +45 -0
  1338. package/src/security/JwtManager.d.ts.map +1 -0
  1339. package/src/security/JwtManager.js +305 -0
  1340. package/src/security/JwtSessions.d.ts +12 -0
  1341. package/src/security/JwtSessions.d.ts.map +1 -0
  1342. package/src/security/JwtSessions.js +570 -0
  1343. package/src/security/JwtVerifier.d.ts +75 -0
  1344. package/src/security/JwtVerifier.d.ts.map +1 -0
  1345. package/src/security/JwtVerifier.js +336 -0
  1346. package/src/security/NonceReplay.d.ts +24 -0
  1347. package/src/security/NonceReplay.d.ts.map +1 -0
  1348. package/src/security/NonceReplay.js +42 -0
  1349. package/src/security/PasswordResetTokenBroker.d.ts +39 -0
  1350. package/src/security/PasswordResetTokenBroker.d.ts.map +1 -0
  1351. package/src/security/PasswordResetTokenBroker.js +131 -0
  1352. package/src/security/Sanitizer.d.ts +76 -0
  1353. package/src/security/Sanitizer.d.ts.map +1 -0
  1354. package/src/security/Sanitizer.js +404 -0
  1355. package/src/security/SecurePayload.d.ts +38 -0
  1356. package/src/security/SecurePayload.d.ts.map +1 -0
  1357. package/src/security/SecurePayload.js +214 -0
  1358. package/src/security/SignedRequest.d.ts +53 -0
  1359. package/src/security/SignedRequest.d.ts.map +1 -0
  1360. package/src/security/SignedRequest.js +172 -0
  1361. package/src/security/StartupSecretValidation.d.ts +20 -0
  1362. package/src/security/StartupSecretValidation.d.ts.map +1 -0
  1363. package/src/security/StartupSecretValidation.js +148 -0
  1364. package/src/security/TokenRevocation.d.ts +24 -0
  1365. package/src/security/TokenRevocation.d.ts.map +1 -0
  1366. package/src/security/TokenRevocation.js +617 -0
  1367. package/src/security/UrlValidator.d.ts +20 -0
  1368. package/src/security/UrlValidator.d.ts.map +1 -0
  1369. package/src/security/UrlValidator.js +41 -0
  1370. package/src/security/Xss.d.ts +14 -0
  1371. package/src/security/Xss.d.ts.map +1 -0
  1372. package/src/security/Xss.js +56 -0
  1373. package/src/security/XssProtection.d.ts +24 -0
  1374. package/src/security/XssProtection.d.ts.map +1 -0
  1375. package/src/security/XssProtection.js +324 -0
  1376. package/src/security-index.d.ts +27 -0
  1377. package/src/security-index.d.ts.map +1 -0
  1378. package/src/security-index.js +30 -0
  1379. package/src/seeders/SeederDiscovery.d.ts +5 -0
  1380. package/src/seeders/SeederDiscovery.d.ts.map +1 -0
  1381. package/src/seeders/SeederDiscovery.js +21 -0
  1382. package/src/seeders/SeederLoader.d.ts +5 -0
  1383. package/src/seeders/SeederLoader.d.ts.map +1 -0
  1384. package/src/seeders/SeederLoader.js +60 -0
  1385. package/src/seeders/types.d.ts +18 -0
  1386. package/src/seeders/types.d.ts.map +1 -0
  1387. package/src/seeders/types.js +1 -0
  1388. package/src/seeders-index.d.ts +8 -0
  1389. package/src/seeders-index.d.ts.map +1 -0
  1390. package/src/seeders-index.js +7 -0
  1391. package/src/session/SessionManager.d.ts +42 -0
  1392. package/src/session/SessionManager.d.ts.map +1 -0
  1393. package/src/session/SessionManager.js +188 -0
  1394. package/src/session/index.d.ts +3 -0
  1395. package/src/session/index.d.ts.map +1 -0
  1396. package/src/session/index.js +1 -0
  1397. package/src/socket-index.d.ts +9 -0
  1398. package/src/socket-index.d.ts.map +1 -0
  1399. package/src/socket-index.js +7 -0
  1400. package/src/sockets/CloudflareSocket.d.ts +24 -0
  1401. package/src/sockets/CloudflareSocket.d.ts.map +1 -0
  1402. package/src/sockets/CloudflareSocket.js +259 -0
  1403. package/src/sockets/SocketRuntime.d.ts +82 -0
  1404. package/src/sockets/SocketRuntime.d.ts.map +1 -0
  1405. package/src/sockets/SocketRuntime.js +59 -0
  1406. package/src/sockets/SocketRuntimeRegistry.d.ts +11 -0
  1407. package/src/sockets/SocketRuntimeRegistry.d.ts.map +1 -0
  1408. package/src/sockets/SocketRuntimeRegistry.js +29 -0
  1409. package/src/start.d.ts +29 -0
  1410. package/src/start.d.ts.map +1 -0
  1411. package/src/start.js +168 -0
  1412. package/src/storage-index.d.ts +14 -0
  1413. package/src/storage-index.d.ts.map +1 -0
  1414. package/src/storage-index.js +9 -0
  1415. package/src/tasks.d.ts +2 -0
  1416. package/src/tasks.d.ts.map +1 -0
  1417. package/src/tasks.js +1 -0
  1418. package/src/templates/TemplateRegistry.d.ts +40 -0
  1419. package/src/templates/TemplateRegistry.d.ts.map +1 -0
  1420. package/src/templates/TemplateRegistry.js +78 -0
  1421. package/src/templates-index.d.ts +6 -0
  1422. package/src/templates-index.d.ts.map +1 -0
  1423. package/src/templates-index.js +6 -0
  1424. package/src/testing/TestEnvironment.d.ts +40 -0
  1425. package/src/testing/TestEnvironment.d.ts.map +1 -0
  1426. package/src/testing/TestEnvironment.js +141 -0
  1427. package/src/testing/TestHttp.d.ts +29 -0
  1428. package/src/testing/TestHttp.d.ts.map +1 -0
  1429. package/src/testing/TestHttp.js +96 -0
  1430. package/src/testing/index.d.ts +5 -0
  1431. package/src/testing/index.d.ts.map +1 -0
  1432. package/src/testing/index.js +2 -0
  1433. package/src/testing-index.d.ts +7 -0
  1434. package/src/testing-index.d.ts.map +1 -0
  1435. package/src/testing-index.js +7 -0
  1436. package/src/time/DateTime.d.ts +181 -0
  1437. package/src/time/DateTime.d.ts.map +1 -0
  1438. package/src/time/DateTime.js +300 -0
  1439. package/src/time/index.d.ts +7 -0
  1440. package/src/time/index.d.ts.map +1 -0
  1441. package/src/time/index.js +5 -0
  1442. package/src/toolkit/Secrets/EnvFile.d.ts +15 -0
  1443. package/src/toolkit/Secrets/EnvFile.d.ts.map +1 -0
  1444. package/src/toolkit/Secrets/EnvFile.js +63 -0
  1445. package/src/toolkit/Secrets/Manifest.d.ts +24 -0
  1446. package/src/toolkit/Secrets/Manifest.d.ts.map +1 -0
  1447. package/src/toolkit/Secrets/Manifest.js +69 -0
  1448. package/src/toolkit/Secrets/index.d.ts +42 -0
  1449. package/src/toolkit/Secrets/index.d.ts.map +1 -0
  1450. package/src/toolkit/Secrets/index.js +123 -0
  1451. package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts +14 -0
  1452. package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts.map +1 -0
  1453. package/src/toolkit/Secrets/providers/AwsSecretsManager.js +134 -0
  1454. package/src/toolkit/Secrets/providers/CloudflareKv.d.ts +9 -0
  1455. package/src/toolkit/Secrets/providers/CloudflareKv.d.ts.map +1 -0
  1456. package/src/toolkit/Secrets/providers/CloudflareKv.js +74 -0
  1457. package/src/tools/broadcast/Broadcast.d.ts +56 -0
  1458. package/src/tools/broadcast/Broadcast.d.ts.map +1 -0
  1459. package/src/tools/broadcast/Broadcast.js +686 -0
  1460. package/src/tools/broadcast/BroadcastRegistry.d.ts +15 -0
  1461. package/src/tools/broadcast/BroadcastRegistry.d.ts.map +1 -0
  1462. package/src/tools/broadcast/BroadcastRegistry.js +29 -0
  1463. package/src/tools/broadcast/BroadcastRuntimeRegistration.d.ts +11 -0
  1464. package/src/tools/broadcast/BroadcastRuntimeRegistration.d.ts.map +1 -0
  1465. package/src/tools/broadcast/BroadcastRuntimeRegistration.js +23 -0
  1466. package/src/tools/broadcast/drivers/BaseDriver.d.ts +5 -0
  1467. package/src/tools/broadcast/drivers/BaseDriver.d.ts.map +1 -0
  1468. package/src/tools/broadcast/drivers/BaseDriver.js +8 -0
  1469. package/src/tools/broadcast/drivers/InMemory.d.ts +18 -0
  1470. package/src/tools/broadcast/drivers/InMemory.d.ts.map +1 -0
  1471. package/src/tools/broadcast/drivers/InMemory.js +16 -0
  1472. package/src/tools/broadcast/drivers/Pusher.d.ts +8 -0
  1473. package/src/tools/broadcast/drivers/Pusher.d.ts.map +1 -0
  1474. package/src/tools/broadcast/drivers/Pusher.js +76 -0
  1475. package/src/tools/broadcast/drivers/Redis.d.ts +19 -0
  1476. package/src/tools/broadcast/drivers/Redis.d.ts.map +1 -0
  1477. package/src/tools/broadcast/drivers/Redis.js +25 -0
  1478. package/src/tools/broadcast/drivers/RedisHttps.d.ts +14 -0
  1479. package/src/tools/broadcast/drivers/RedisHttps.d.ts.map +1 -0
  1480. package/src/tools/broadcast/drivers/RedisHttps.js +50 -0
  1481. package/src/tools/broadcast/index.d.ts +10 -0
  1482. package/src/tools/broadcast/index.d.ts.map +1 -0
  1483. package/src/tools/broadcast/index.js +8 -0
  1484. package/src/tools/http/Http.d.ts +64 -0
  1485. package/src/tools/http/Http.d.ts.map +1 -0
  1486. package/src/tools/http/Http.js +421 -0
  1487. package/src/tools/http/HttpResponse.d.ts +32 -0
  1488. package/src/tools/http/HttpResponse.d.ts.map +1 -0
  1489. package/src/tools/http/HttpResponse.js +80 -0
  1490. package/src/tools/http/index.d.ts +15 -0
  1491. package/src/tools/http/index.d.ts.map +1 -0
  1492. package/src/tools/http/index.js +9 -0
  1493. package/src/tools/mail/Mail.d.ts +2 -0
  1494. package/src/tools/mail/Mail.d.ts.map +1 -0
  1495. package/src/tools/mail/Mail.js +1 -0
  1496. package/src/tools/mail/MailDriverRegistry.d.ts +18 -0
  1497. package/src/tools/mail/MailDriverRegistry.d.ts.map +1 -0
  1498. package/src/tools/mail/MailDriverRegistry.js +23 -0
  1499. package/src/tools/mail/MailMessage.d.ts +18 -0
  1500. package/src/tools/mail/MailMessage.d.ts.map +1 -0
  1501. package/src/tools/mail/MailMessage.js +89 -0
  1502. package/src/tools/mail/attachments.d.ts +23 -0
  1503. package/src/tools/mail/attachments.d.ts.map +1 -0
  1504. package/src/tools/mail/attachments.js +26 -0
  1505. package/src/tools/mail/drivers/BaseDriver.d.ts +5 -0
  1506. package/src/tools/mail/drivers/BaseDriver.d.ts.map +1 -0
  1507. package/src/tools/mail/drivers/BaseDriver.js +8 -0
  1508. package/src/tools/mail/drivers/Cloudflare.d.ts +13 -0
  1509. package/src/tools/mail/drivers/Cloudflare.d.ts.map +1 -0
  1510. package/src/tools/mail/drivers/Cloudflare.js +114 -0
  1511. package/src/tools/mail/drivers/Mailgun.d.ts +31 -0
  1512. package/src/tools/mail/drivers/Mailgun.d.ts.map +1 -0
  1513. package/src/tools/mail/drivers/Mailgun.js +82 -0
  1514. package/src/tools/mail/drivers/SendGrid.d.ts +29 -0
  1515. package/src/tools/mail/drivers/SendGrid.d.ts.map +1 -0
  1516. package/src/tools/mail/drivers/SendGrid.js +59 -0
  1517. package/src/tools/mail/drivers/Ses.d.ts +24 -0
  1518. package/src/tools/mail/drivers/Ses.d.ts.map +1 -0
  1519. package/src/tools/mail/drivers/Ses.js +117 -0
  1520. package/src/tools/mail/drivers/Smtp.d.ts +24 -0
  1521. package/src/tools/mail/drivers/Smtp.d.ts.map +1 -0
  1522. package/src/tools/mail/drivers/Smtp.js +500 -0
  1523. package/src/tools/mail/index.d.ts +40 -0
  1524. package/src/tools/mail/index.d.ts.map +1 -0
  1525. package/src/tools/mail/index.js +144 -0
  1526. package/src/tools/mail/template-loader.d.ts +10 -0
  1527. package/src/tools/mail/template-loader.d.ts.map +1 -0
  1528. package/src/tools/mail/template-loader.js +268 -0
  1529. package/src/tools/mail/template-utils.d.ts +10 -0
  1530. package/src/tools/mail/template-utils.d.ts.map +1 -0
  1531. package/src/tools/mail/template-utils.js +16 -0
  1532. package/src/tools/mail/templates/auth-password-reset.d.ts +3 -0
  1533. package/src/tools/mail/templates/auth-password-reset.d.ts.map +1 -0
  1534. package/src/tools/mail/templates/auth-welcome.d.ts +3 -0
  1535. package/src/tools/mail/templates/auth-welcome.d.ts.map +1 -0
  1536. package/src/tools/mail/templates/general.d.ts +3 -0
  1537. package/src/tools/mail/templates/general.d.ts.map +1 -0
  1538. package/src/tools/mail/templates/index.d.ts +57 -0
  1539. package/src/tools/mail/templates/index.d.ts.map +1 -0
  1540. package/src/tools/mail/templates/index.js +104 -0
  1541. package/src/tools/mail/templates/job-completed.d.ts +3 -0
  1542. package/src/tools/mail/templates/job-completed.d.ts.map +1 -0
  1543. package/src/tools/mail/templates/notifications-new-comment.d.ts +3 -0
  1544. package/src/tools/mail/templates/notifications-new-comment.d.ts.map +1 -0
  1545. package/src/tools/mail/templates/password-reset.d.ts +3 -0
  1546. package/src/tools/mail/templates/password-reset.d.ts.map +1 -0
  1547. package/src/tools/mail/templates/performance-report.d.ts +3 -0
  1548. package/src/tools/mail/templates/performance-report.d.ts.map +1 -0
  1549. package/src/tools/mail/templates/welcome.d.ts +3 -0
  1550. package/src/tools/mail/templates/welcome.d.ts.map +1 -0
  1551. package/src/tools/mail/templates/worker-alert.d.ts +3 -0
  1552. package/src/tools/mail/templates/worker-alert.d.ts.map +1 -0
  1553. package/src/tools/mail/testing.d.ts +41 -0
  1554. package/src/tools/mail/testing.d.ts.map +1 -0
  1555. package/src/tools/mail/testing.js +34 -0
  1556. package/src/tools/notification/Composer.d.ts +40 -0
  1557. package/src/tools/notification/Composer.d.ts.map +1 -0
  1558. package/src/tools/notification/Composer.js +140 -0
  1559. package/src/tools/notification/Driver.d.ts +11 -0
  1560. package/src/tools/notification/Driver.d.ts.map +1 -0
  1561. package/src/tools/notification/Driver.js +1 -0
  1562. package/src/tools/notification/Notification.d.ts +30 -0
  1563. package/src/tools/notification/Notification.d.ts.map +1 -0
  1564. package/src/tools/notification/Notification.js +42 -0
  1565. package/src/tools/notification/NotificationChannelRegistry.d.ts +15 -0
  1566. package/src/tools/notification/NotificationChannelRegistry.d.ts.map +1 -0
  1567. package/src/tools/notification/NotificationChannelRegistry.js +36 -0
  1568. package/src/tools/notification/NotificationRuntimeRegistration.d.ts +13 -0
  1569. package/src/tools/notification/NotificationRuntimeRegistration.d.ts.map +1 -0
  1570. package/src/tools/notification/NotificationRuntimeRegistration.js +25 -0
  1571. package/src/tools/notification/Registry.d.ts +10 -0
  1572. package/src/tools/notification/Registry.d.ts.map +1 -0
  1573. package/src/tools/notification/Registry.js +26 -0
  1574. package/src/tools/notification/Service.d.ts +7 -0
  1575. package/src/tools/notification/Service.d.ts.map +1 -0
  1576. package/src/tools/notification/Service.js +107 -0
  1577. package/src/tools/notification/config.d.ts +5 -0
  1578. package/src/tools/notification/config.d.ts.map +1 -0
  1579. package/src/tools/notification/config.js +5 -0
  1580. package/src/tools/notification/drivers/BaseDriver.d.ts +5 -0
  1581. package/src/tools/notification/drivers/BaseDriver.d.ts.map +1 -0
  1582. package/src/tools/notification/drivers/BaseDriver.js +8 -0
  1583. package/src/tools/notification/drivers/Console.d.ts +7 -0
  1584. package/src/tools/notification/drivers/Console.d.ts.map +1 -0
  1585. package/src/tools/notification/drivers/Console.js +13 -0
  1586. package/src/tools/notification/drivers/Slack.d.ts +16 -0
  1587. package/src/tools/notification/drivers/Slack.d.ts.map +1 -0
  1588. package/src/tools/notification/drivers/Slack.js +25 -0
  1589. package/src/tools/notification/drivers/SlackNotification.d.ts +8 -0
  1590. package/src/tools/notification/drivers/SlackNotification.d.ts.map +1 -0
  1591. package/src/tools/notification/drivers/SlackNotification.js +13 -0
  1592. package/src/tools/notification/drivers/Termii.d.ts +10 -0
  1593. package/src/tools/notification/drivers/Termii.d.ts.map +1 -0
  1594. package/src/tools/notification/drivers/Termii.js +36 -0
  1595. package/src/tools/notification/drivers/Twilio.d.ts +21 -0
  1596. package/src/tools/notification/drivers/Twilio.d.ts.map +1 -0
  1597. package/src/tools/notification/drivers/Twilio.js +49 -0
  1598. package/src/tools/notification/drivers/TwilioNotification.d.ts +8 -0
  1599. package/src/tools/notification/drivers/TwilioNotification.d.ts.map +1 -0
  1600. package/src/tools/notification/drivers/TwilioNotification.js +13 -0
  1601. package/src/tools/notification/templates/markdown/index.d.ts +15 -0
  1602. package/src/tools/notification/templates/markdown/index.d.ts.map +1 -0
  1603. package/src/tools/notification/templates/markdown/index.js +38 -0
  1604. package/src/tools/notification/templates/markdown/registry.d.ts +15 -0
  1605. package/src/tools/notification/templates/markdown/registry.d.ts.map +1 -0
  1606. package/src/tools/notification/templates/markdown/registry.js +36 -0
  1607. package/src/tools/notification/testing.d.ts +19 -0
  1608. package/src/tools/notification/testing.d.ts.map +1 -0
  1609. package/src/tools/notification/testing.js +35 -0
  1610. package/src/tools/notification/testingHelpers.d.ts +12 -0
  1611. package/src/tools/notification/testingHelpers.d.ts.map +1 -0
  1612. package/src/tools/notification/testingHelpers.js +33 -0
  1613. package/src/tools/queue/AdvancedQueue.d.ts +20 -0
  1614. package/src/tools/queue/AdvancedQueue.d.ts.map +1 -0
  1615. package/src/tools/queue/AdvancedQueue.js +417 -0
  1616. package/src/tools/queue/DeduplicationBuilder.d.ts +20 -0
  1617. package/src/tools/queue/DeduplicationBuilder.d.ts.map +1 -0
  1618. package/src/tools/queue/DeduplicationBuilder.js +77 -0
  1619. package/src/tools/queue/DeduplicationKey.d.ts +2 -0
  1620. package/src/tools/queue/DeduplicationKey.d.ts.map +1 -0
  1621. package/src/tools/queue/DeduplicationKey.js +8 -0
  1622. package/src/tools/queue/IdempotencyManager.d.ts +6 -0
  1623. package/src/tools/queue/IdempotencyManager.d.ts.map +1 -0
  1624. package/src/tools/queue/IdempotencyManager.js +36 -0
  1625. package/src/tools/queue/JobHeartbeatStore.d.ts +16 -0
  1626. package/src/tools/queue/JobHeartbeatStore.d.ts.map +1 -0
  1627. package/src/tools/queue/JobHeartbeatStore.js +67 -0
  1628. package/src/tools/queue/JobReconciliationRunner.d.ts +16 -0
  1629. package/src/tools/queue/JobReconciliationRunner.d.ts.map +1 -0
  1630. package/src/tools/queue/JobReconciliationRunner.js +56 -0
  1631. package/src/tools/queue/JobRecoveryDaemon.d.ts +27 -0
  1632. package/src/tools/queue/JobRecoveryDaemon.d.ts.map +1 -0
  1633. package/src/tools/queue/JobRecoveryDaemon.js +303 -0
  1634. package/src/tools/queue/JobStateTracker.d.ts +140 -0
  1635. package/src/tools/queue/JobStateTracker.d.ts.map +1 -0
  1636. package/src/tools/queue/JobStateTracker.js +409 -0
  1637. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts +12 -0
  1638. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts.map +1 -0
  1639. package/src/tools/queue/JobStateTrackerDbPersistence.js +239 -0
  1640. package/src/tools/queue/LockProvider.d.ts +26 -0
  1641. package/src/tools/queue/LockProvider.d.ts.map +1 -0
  1642. package/src/tools/queue/LockProvider.js +298 -0
  1643. package/src/tools/queue/Queue.d.ts +74 -0
  1644. package/src/tools/queue/Queue.d.ts.map +1 -0
  1645. package/src/tools/queue/Queue.js +228 -0
  1646. package/src/tools/queue/QueueDataRedactor.d.ts +6 -0
  1647. package/src/tools/queue/QueueDataRedactor.d.ts.map +1 -0
  1648. package/src/tools/queue/QueueDataRedactor.js +45 -0
  1649. package/src/tools/queue/QueueExtensions.d.ts +47 -0
  1650. package/src/tools/queue/QueueExtensions.d.ts.map +1 -0
  1651. package/src/tools/queue/QueueExtensions.js +130 -0
  1652. package/src/tools/queue/QueueReliabilityMetrics.d.ts +38 -0
  1653. package/src/tools/queue/QueueReliabilityMetrics.d.ts.map +1 -0
  1654. package/src/tools/queue/QueueReliabilityMetrics.js +131 -0
  1655. package/src/tools/queue/QueueReliabilityOrchestrator.d.ts +7 -0
  1656. package/src/tools/queue/QueueReliabilityOrchestrator.d.ts.map +1 -0
  1657. package/src/tools/queue/QueueReliabilityOrchestrator.js +82 -0
  1658. package/src/tools/queue/QueueRuntimeRegistration.d.ts +3 -0
  1659. package/src/tools/queue/QueueRuntimeRegistration.d.ts.map +1 -0
  1660. package/src/tools/queue/QueueRuntimeRegistration.js +163 -0
  1661. package/src/tools/queue/QueueTracing.d.ts +32 -0
  1662. package/src/tools/queue/QueueTracing.d.ts.map +1 -0
  1663. package/src/tools/queue/QueueTracing.js +151 -0
  1664. package/src/tools/queue/StalledJobMonitor.d.ts +5 -0
  1665. package/src/tools/queue/StalledJobMonitor.d.ts.map +1 -0
  1666. package/src/tools/queue/StalledJobMonitor.js +21 -0
  1667. package/src/tools/queue/TimeoutManager.d.ts +14 -0
  1668. package/src/tools/queue/TimeoutManager.d.ts.map +1 -0
  1669. package/src/tools/queue/TimeoutManager.js +77 -0
  1670. package/src/tools/queue/drivers/Database.d.ts +23 -0
  1671. package/src/tools/queue/drivers/Database.d.ts.map +1 -0
  1672. package/src/tools/queue/drivers/Database.js +123 -0
  1673. package/src/tools/queue/drivers/InMemory.d.ts +10 -0
  1674. package/src/tools/queue/drivers/InMemory.d.ts.map +1 -0
  1675. package/src/tools/queue/drivers/InMemory.js +55 -0
  1676. package/src/tools/queue/drivers/Redis.d.ts +11 -0
  1677. package/src/tools/queue/drivers/Redis.d.ts.map +1 -0
  1678. package/src/tools/queue/drivers/Redis.js +27 -0
  1679. package/src/tools/queue/index.d.ts +20 -0
  1680. package/src/tools/queue/index.d.ts.map +1 -0
  1681. package/src/tools/queue/index.js +18 -0
  1682. package/src/tools/redis/RedisKeyManager.d.ts +56 -0
  1683. package/src/tools/redis/RedisKeyManager.d.ts.map +1 -0
  1684. package/src/tools/redis/RedisKeyManager.js +205 -0
  1685. package/src/tools/redis/RedisTransport.d.ts +42 -0
  1686. package/src/tools/redis/RedisTransport.d.ts.map +1 -0
  1687. package/src/tools/redis/RedisTransport.js +377 -0
  1688. package/src/tools/storage/LocalSignedUrl.d.ts +12 -0
  1689. package/src/tools/storage/LocalSignedUrl.d.ts.map +1 -0
  1690. package/src/tools/storage/LocalSignedUrl.js +108 -0
  1691. package/src/tools/storage/StorageDiskRegistry.d.ts +14 -0
  1692. package/src/tools/storage/StorageDiskRegistry.d.ts.map +1 -0
  1693. package/src/tools/storage/StorageDiskRegistry.js +36 -0
  1694. package/src/tools/storage/StorageDriverRegistry.d.ts +18 -0
  1695. package/src/tools/storage/StorageDriverRegistry.d.ts.map +1 -0
  1696. package/src/tools/storage/StorageDriverRegistry.js +24 -0
  1697. package/src/tools/storage/StorageRuntimeRegistration.d.ts +10 -0
  1698. package/src/tools/storage/StorageRuntimeRegistration.d.ts.map +1 -0
  1699. package/src/tools/storage/StorageRuntimeRegistration.js +21 -0
  1700. package/src/tools/storage/drivers/Gcs.d.ts +20 -0
  1701. package/src/tools/storage/drivers/Gcs.d.ts.map +1 -0
  1702. package/src/tools/storage/drivers/Gcs.js +152 -0
  1703. package/src/tools/storage/drivers/Local.d.ts +18 -0
  1704. package/src/tools/storage/drivers/Local.d.ts.map +1 -0
  1705. package/src/tools/storage/drivers/Local.js +89 -0
  1706. package/src/tools/storage/drivers/R2.d.ts +34 -0
  1707. package/src/tools/storage/drivers/R2.d.ts.map +1 -0
  1708. package/src/tools/storage/drivers/R2.js +160 -0
  1709. package/src/tools/storage/drivers/S3.d.ts +27 -0
  1710. package/src/tools/storage/drivers/S3.d.ts.map +1 -0
  1711. package/src/tools/storage/drivers/S3.js +264 -0
  1712. package/src/tools/storage/index.d.ts +21 -0
  1713. package/src/tools/storage/index.d.ts.map +1 -0
  1714. package/src/tools/storage/index.js +152 -0
  1715. package/src/tools/storage/testing.d.ts +23 -0
  1716. package/src/tools/storage/testing.d.ts.map +1 -0
  1717. package/src/tools/storage/testing.js +53 -0
  1718. package/src/tools/templates/MarkdownRenderer.d.ts +14 -0
  1719. package/src/tools/templates/MarkdownRenderer.d.ts.map +1 -0
  1720. package/src/tools/templates/MarkdownRenderer.js +300 -0
  1721. package/src/tools/templates/index.d.ts +5 -0
  1722. package/src/tools/templates/index.d.ts.map +1 -0
  1723. package/src/tools/templates/index.js +4 -0
  1724. package/src/tools-broadcast-index.d.ts +9 -0
  1725. package/src/tools-broadcast-index.d.ts.map +1 -0
  1726. package/src/tools-broadcast-index.js +7 -0
  1727. package/src/tools-http-index.d.ts +7 -0
  1728. package/src/tools-http-index.d.ts.map +1 -0
  1729. package/src/tools-http-index.js +5 -0
  1730. package/src/tools-index.d.ts +29 -0
  1731. package/src/tools-index.d.ts.map +1 -0
  1732. package/src/tools-index.js +28 -0
  1733. package/src/tools-mail-index.d.ts +17 -0
  1734. package/src/tools-mail-index.d.ts.map +1 -0
  1735. package/src/tools-mail-index.js +11 -0
  1736. package/src/tools-notification-index.d.ts +12 -0
  1737. package/src/tools-notification-index.d.ts.map +1 -0
  1738. package/src/tools-notification-index.js +10 -0
  1739. package/src/tools-queue-index.d.ts +22 -0
  1740. package/src/tools-queue-index.d.ts.map +1 -0
  1741. package/src/tools-queue-index.js +20 -0
  1742. package/src/tools-storage-index.d.ts +14 -0
  1743. package/src/tools-storage-index.d.ts.map +1 -0
  1744. package/src/tools-storage-index.js +10 -0
  1745. package/src/trace/SystemTraceBridge.d.ts +31 -0
  1746. package/src/trace/SystemTraceBridge.d.ts.map +1 -0
  1747. package/src/trace/SystemTraceBridge.js +121 -0
  1748. package/src/trace/SystemTraceWorkerBridge.d.ts +10 -0
  1749. package/src/trace/SystemTraceWorkerBridge.d.ts.map +1 -0
  1750. package/src/trace/SystemTraceWorkerBridge.js +35 -0
  1751. package/src/trace-index.d.ts +6 -0
  1752. package/src/trace-index.d.ts.map +1 -0
  1753. package/src/trace-index.js +5 -0
  1754. package/src/types/Queue.d.ts +64 -0
  1755. package/src/types/Queue.d.ts.map +1 -0
  1756. package/src/types/Queue.js +5 -0
  1757. package/src/utils-index.d.ts +9 -0
  1758. package/src/utils-index.d.ts.map +1 -0
  1759. package/src/utils-index.js +8 -0
  1760. package/src/validation/ValidationError.d.ts +42 -0
  1761. package/src/validation/ValidationError.d.ts.map +1 -0
  1762. package/src/validation/ValidationError.js +55 -0
  1763. package/src/validation/Validator.d.ts +93 -0
  1764. package/src/validation/Validator.d.ts.map +1 -0
  1765. package/src/validation/Validator.js +494 -0
  1766. package/src/worker-commands.d.ts +2 -0
  1767. package/src/worker-commands.d.ts.map +1 -0
  1768. package/src/worker-commands.js +1 -0
  1769. package/src/worker-runtime/drain.d.ts +37 -0
  1770. package/src/worker-runtime/drain.d.ts.map +1 -0
  1771. package/src/worker-runtime/drain.js +172 -0
  1772. package/src/worker-runtime/install-enqueue-hook.d.ts +17 -0
  1773. package/src/worker-runtime/install-enqueue-hook.d.ts.map +1 -0
  1774. package/src/worker-runtime/install-enqueue-hook.js +8 -0
  1775. package/src/worker-runtime/ping.d.ts +40 -0
  1776. package/src/worker-runtime/ping.d.ts.map +1 -0
  1777. package/src/worker-runtime/ping.js +84 -0
  1778. package/src/worker-runtime/processor-registry.d.ts +22 -0
  1779. package/src/worker-runtime/processor-registry.d.ts.map +1 -0
  1780. package/src/worker-runtime/processor-registry.js +24 -0
  1781. package/src/worker-runtime/rpc-client.d.ts +25 -0
  1782. package/src/worker-runtime/rpc-client.d.ts.map +1 -0
  1783. package/src/worker-runtime/rpc-client.js +251 -0
  1784. package/src/worker-runtime.d.ts +5 -0
  1785. package/src/worker-runtime.d.ts.map +1 -0
  1786. package/src/worker-runtime.js +3 -0
  1787. package/src/workers-index.d.ts +9 -0
  1788. package/src/workers-index.d.ts.map +1 -0
  1789. package/src/workers-index.js +7 -0
  1790. package/src/zintrust.plugins.d.ts +10 -0
  1791. package/src/zintrust.plugins.d.ts.map +1 -0
  1792. package/src/zintrust.plugins.js +10 -0
  1793. package/src/zintrust.plugins.wg.d.ts +10 -0
  1794. package/src/zintrust.plugins.wg.d.ts.map +1 -0
  1795. package/src/zintrust.plugins.wg.js +10 -0
  1796. package/src/zintrust.runtime.d.ts +7 -0
  1797. package/src/zintrust.runtime.d.ts.map +1 -0
  1798. package/src/zintrust.runtime.js +6 -0
  1799. package/src/zintrust.runtime.wg.d.ts +7 -0
  1800. package/src/zintrust.runtime.wg.d.ts.map +1 -0
  1801. package/src/zintrust.runtime.wg.js +6 -0
  1802. package/LICENSE.md +0 -21
  1803. package/bin/launcher.ts +0 -218
  1804. package/bin/z.ts +0 -10
  1805. package/bin/zin.ts +0 -10
  1806. package/bin/zintrust-main.ts +0 -482
  1807. package/bin/zintrust-microservices.ts +0 -199
  1808. package/bin/zintrust.ts +0 -13
  1809. package/bin/zt.ts +0 -10
  1810. package/dist/src/index.d.ts +0 -230
  1811. package/dist/src/index.js +0 -229
  1812. package/src/auth/Auth.ts +0 -42
  1813. package/src/auth/LoginFlow.ts +0 -724
  1814. package/src/auth-index.ts +0 -25
  1815. package/src/boot/Application.ts +0 -124
  1816. package/src/boot/Server.ts +0 -213
  1817. package/src/boot/bootstrap.ts +0 -441
  1818. package/src/boot/registry/registerRoute.ts +0 -259
  1819. package/src/boot/registry/runtime.ts +0 -871
  1820. package/src/boot/registry/type.ts +0 -26
  1821. package/src/boot/registry/worker.ts +0 -54
  1822. package/src/boot.ts +0 -9
  1823. package/src/bootstrap/service-manifest.ts +0 -5
  1824. package/src/builder/BundleOptimizer.ts +0 -485
  1825. package/src/cache/Cache.ts +0 -444
  1826. package/src/cache/CacheDriver.ts +0 -63
  1827. package/src/cache/CacheDriverRegistry.ts +0 -34
  1828. package/src/cache/CacheRuntimeRegistration.ts +0 -24
  1829. package/src/cache/drivers/KVDriver.ts +0 -69
  1830. package/src/cache/drivers/KVRemoteDriver.ts +0 -420
  1831. package/src/cache/drivers/MemoryDriver.ts +0 -105
  1832. package/src/cache/drivers/MongoDriver.ts +0 -102
  1833. package/src/cache/drivers/RedisDriver.ts +0 -481
  1834. package/src/cli/BaseCommand.ts +0 -129
  1835. package/src/cli/CLI.ts +0 -374
  1836. package/src/cli/ErrorHandler.ts +0 -149
  1837. package/src/cli/OptionalCliCommandRegistry.ts +0 -42
  1838. package/src/cli/OptionalCliExtensions.ts +0 -428
  1839. package/src/cli/PromptHelper.ts +0 -204
  1840. package/src/cli/cloudflare/CloudflareEnvTargetConfig.ts +0 -149
  1841. package/src/cli/cloudflare/CloudflareSecretSync.ts +0 -503
  1842. package/src/cli/cloudflare/CloudflareWranglerDevEnv.ts +0 -299
  1843. package/src/cli/commands/AddCommand.ts +0 -1591
  1844. package/src/cli/commands/BroadcastWorkCommand.ts +0 -20
  1845. package/src/cli/commands/BulletproofKeyGenerateCommand.ts +0 -173
  1846. package/src/cli/commands/ConfigCommand.ts +0 -420
  1847. package/src/cli/commands/ContainerComposeLifecycle.ts +0 -85
  1848. package/src/cli/commands/ContainerProxiesCommand.ts +0 -75
  1849. package/src/cli/commands/ContainerWorkersCommand.ts +0 -70
  1850. package/src/cli/commands/CreateCommand.ts +0 -177
  1851. package/src/cli/commands/D1LearnCommand.ts +0 -168
  1852. package/src/cli/commands/D1MigrateCommand.ts +0 -189
  1853. package/src/cli/commands/D1ProxyCommand.ts +0 -152
  1854. package/src/cli/commands/DbSeedCommand.ts +0 -181
  1855. package/src/cli/commands/DebugCommand.ts +0 -71
  1856. package/src/cli/commands/DeployCommand.ts +0 -208
  1857. package/src/cli/commands/DeployContainerProxiesCommand.ts +0 -41
  1858. package/src/cli/commands/DeployContainerWorkersCommand.ts +0 -41
  1859. package/src/cli/commands/DeployContainersProxyCommand.ts +0 -110
  1860. package/src/cli/commands/DockerCommand.ts +0 -222
  1861. package/src/cli/commands/DockerComposeCommandUtils.ts +0 -36
  1862. package/src/cli/commands/DockerPushCommand.ts +0 -143
  1863. package/src/cli/commands/DoctorArchitectureCommand.ts +0 -74
  1864. package/src/cli/commands/EmailProxyCommand.ts +0 -163
  1865. package/src/cli/commands/EnvKeyGenerateCommand.ts +0 -117
  1866. package/src/cli/commands/FixCommand.ts +0 -84
  1867. package/src/cli/commands/InitContainerCommand.ts +0 -229
  1868. package/src/cli/commands/InitContainersProxyCommand.ts +0 -182
  1869. package/src/cli/commands/InitEcosystemCommand.ts +0 -63
  1870. package/src/cli/commands/InitProducerCommand.ts +0 -57
  1871. package/src/cli/commands/InitProxyCommand.ts +0 -466
  1872. package/src/cli/commands/JwtDevCommand.ts +0 -178
  1873. package/src/cli/commands/KeyGenerateCommand.ts +0 -86
  1874. package/src/cli/commands/KvProxyCommand.ts +0 -121
  1875. package/src/cli/commands/LogsCleanupCommand.ts +0 -24
  1876. package/src/cli/commands/LogsCommand.ts +0 -270
  1877. package/src/cli/commands/MakeMailTemplateCommand.ts +0 -119
  1878. package/src/cli/commands/MakeNotificationTemplateCommand.ts +0 -164
  1879. package/src/cli/commands/MigrateCommand.ts +0 -522
  1880. package/src/cli/commands/MigrateWorkerCommand.ts +0 -232
  1881. package/src/cli/commands/MongoDBProxyCommand.ts +0 -140
  1882. package/src/cli/commands/MySqlProxyCommand.ts +0 -49
  1883. package/src/cli/commands/NewCommand.ts +0 -576
  1884. package/src/cli/commands/NotificationWorkCommand.ts +0 -20
  1885. package/src/cli/commands/PluginCommand.ts +0 -112
  1886. package/src/cli/commands/PostgresProxyCommand.ts +0 -49
  1887. package/src/cli/commands/PrepareCommand.ts +0 -120
  1888. package/src/cli/commands/ProxyCommand.ts +0 -105
  1889. package/src/cli/commands/ProxyCommandUtils.ts +0 -83
  1890. package/src/cli/commands/ProxyScaffoldUtils.ts +0 -348
  1891. package/src/cli/commands/PublishCommand.ts +0 -79
  1892. package/src/cli/commands/PutCommand.ts +0 -130
  1893. package/src/cli/commands/QACommand.ts +0 -551
  1894. package/src/cli/commands/QueueCommand.ts +0 -145
  1895. package/src/cli/commands/QueueLockCommand.ts +0 -156
  1896. package/src/cli/commands/QueueRecoveryCommand.ts +0 -788
  1897. package/src/cli/commands/QueueWorkCommandUtils.ts +0 -54
  1898. package/src/cli/commands/RedisProxyCommand.ts +0 -98
  1899. package/src/cli/commands/RedisRpcCommand.ts +0 -156
  1900. package/src/cli/commands/ResourceControlCommand.ts +0 -49
  1901. package/src/cli/commands/RoutesCommand.ts +0 -410
  1902. package/src/cli/commands/ScheduleListCommand.ts +0 -92
  1903. package/src/cli/commands/ScheduleRunCommand.ts +0 -44
  1904. package/src/cli/commands/ScheduleStartCommand.ts +0 -64
  1905. package/src/cli/commands/SecretsCommand.ts +0 -145
  1906. package/src/cli/commands/SimulateCommand.ts +0 -97
  1907. package/src/cli/commands/SmtpProxyCommand.ts +0 -102
  1908. package/src/cli/commands/SqlProxyCommandUtils.ts +0 -120
  1909. package/src/cli/commands/SqlServerProxyCommand.ts +0 -136
  1910. package/src/cli/commands/StartCommand.ts +0 -1078
  1911. package/src/cli/commands/TemplatesCommand.ts +0 -72
  1912. package/src/cli/commands/TraceCommand.ts +0 -11
  1913. package/src/cli/commands/TraceCommands.ts +0 -752
  1914. package/src/cli/commands/UpgradeCommand.ts +0 -128
  1915. package/src/cli/commands/WorkerCommands.ts +0 -701
  1916. package/src/cli/commands/WranglerDevVarsCommand.ts +0 -75
  1917. package/src/cli/commands/WranglerProxyCommandUtils.ts +0 -172
  1918. package/src/cli/commands/createKindWorkCommand.ts +0 -56
  1919. package/src/cli/commands/index.ts +0 -35
  1920. package/src/cli/commands/runner/index.ts +0 -166
  1921. package/src/cli/commands/schedule/ScheduleCliSupport.ts +0 -264
  1922. package/src/cli/config/ConfigManager.ts +0 -220
  1923. package/src/cli/config/ConfigSchema.ts +0 -263
  1924. package/src/cli/config/ConfigValidator.ts +0 -245
  1925. package/src/cli/config/index.ts +0 -21
  1926. package/src/cli/d1/D1SchemaState.ts +0 -343
  1927. package/src/cli/d1/D1SqlMigrations.ts +0 -330
  1928. package/src/cli/d1/LocalD1Resolver.ts +0 -216
  1929. package/src/cli/d1/WranglerConfig.ts +0 -379
  1930. package/src/cli/d1/WranglerD1.ts +0 -88
  1931. package/src/cli/debug/Dashboard.ts +0 -227
  1932. package/src/cli/env/EnvFileBackfill.ts +0 -80
  1933. package/src/cli/index.ts +0 -25
  1934. package/src/cli/logger/Logger.ts +0 -193
  1935. package/src/cli/scaffolding/ControllerGenerator.ts +0 -562
  1936. package/src/cli/scaffolding/FactoryGenerator.ts +0 -430
  1937. package/src/cli/scaffolding/FeatureScaffolder.ts +0 -811
  1938. package/src/cli/scaffolding/FileGenerator.ts +0 -262
  1939. package/src/cli/scaffolding/GovernanceScaffolder.ts +0 -397
  1940. package/src/cli/scaffolding/MigrationGenerator.ts +0 -419
  1941. package/src/cli/scaffolding/ModelGenerator.ts +0 -337
  1942. package/src/cli/scaffolding/ProjectScaffolder.ts +0 -867
  1943. package/src/cli/scaffolding/RequestFactoryGenerator.ts +0 -563
  1944. package/src/cli/scaffolding/ResponseFactoryGenerator.ts +0 -394
  1945. package/src/cli/scaffolding/RouteGenerator.ts +0 -452
  1946. package/src/cli/scaffolding/ScaffoldingVersionUtils.ts +0 -41
  1947. package/src/cli/scaffolding/SeederGenerator.ts +0 -432
  1948. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.ts +0 -317
  1949. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.ts +0 -485
  1950. package/src/cli/scaffolding/ServiceScaffolder.ts +0 -663
  1951. package/src/cli/scaffolding/TemplateEngine.ts +0 -141
  1952. package/src/cli/scaffolding/TemplateGenerator.ts +0 -255
  1953. package/src/cli/scaffolding/WorkflowGenerator.ts +0 -221
  1954. package/src/cli/scaffolding/env.ts +0 -598
  1955. package/src/cli/scaffolding/index.ts +0 -89
  1956. package/src/cli/scaffolding/templates/env.scaffold.dotenv.tpl +0 -600
  1957. package/src/cli/services/VersionChecker.ts +0 -433
  1958. package/src/cli/services/WorkerStartupDiagnostics.ts +0 -495
  1959. package/src/cli/utils/DatabaseCliUtils.ts +0 -82
  1960. package/src/cli/utils/DistPackager.ts +0 -182
  1961. package/src/cli/utils/EnvFileLoader.ts +0 -393
  1962. package/src/cli/utils/spawn.ts +0 -488
  1963. package/src/cli/workers/QueueWorkRunner.ts +0 -448
  1964. package/src/cli-index.ts +0 -20
  1965. package/src/cli.ts +0 -10
  1966. package/src/cloudflare-index.ts +0 -6
  1967. package/src/collections/Collection.ts +0 -241
  1968. package/src/collections/index.ts +0 -2
  1969. package/src/common/AwsSigV4.ts +0 -116
  1970. package/src/common/ContextLoader.ts +0 -313
  1971. package/src/common/EnvFallbackUtils.ts +0 -72
  1972. package/src/common/ExternalServiceUtils.ts +0 -302
  1973. package/src/common/HealthRoutes.ts +0 -194
  1974. package/src/common/RemoteSignedJson.ts +0 -207
  1975. package/src/common/index.ts +0 -400
  1976. package/src/common/utility.ts +0 -134
  1977. package/src/config/FileLogWriter.ts +0 -371
  1978. package/src/config/SecretsManager.ts +0 -451
  1979. package/src/config/StartupConfigValidator.ts +0 -307
  1980. package/src/config/app.ts +0 -273
  1981. package/src/config/broadcast.ts +0 -364
  1982. package/src/config/cache.ts +0 -228
  1983. package/src/config/cloudflare.ts +0 -105
  1984. package/src/config/constants.ts +0 -167
  1985. package/src/config/database.ts +0 -417
  1986. package/src/config/env.ts +0 -724
  1987. package/src/config/features.ts +0 -127
  1988. package/src/config/index.ts +0 -68
  1989. package/src/config/logger.ts +0 -927
  1990. package/src/config/logging/HttpLogger.ts +0 -121
  1991. package/src/config/logging/KvLogger.ts +0 -198
  1992. package/src/config/logging/SlackLogger.ts +0 -156
  1993. package/src/config/mail.ts +0 -199
  1994. package/src/config/microservices.ts +0 -104
  1995. package/src/config/middleware.ts +0 -587
  1996. package/src/config/notification.ts +0 -205
  1997. package/src/config/queue.ts +0 -362
  1998. package/src/config/redis.ts +0 -130
  1999. package/src/config/security.ts +0 -170
  2000. package/src/config/startup.ts +0 -29
  2001. package/src/config/storage.ts +0 -206
  2002. package/src/config/type.ts +0 -728
  2003. package/src/config/workers.ts +0 -668
  2004. package/src/config-index.ts +0 -66
  2005. package/src/constants-index.ts +0 -7
  2006. package/src/container/ServiceContainer.ts +0 -108
  2007. package/src/database/Paginator.ts +0 -141
  2008. package/src/database/factories/.gitkeep +0 -0
  2009. package/src/database/migrations/.gitkeep +0 -0
  2010. package/src/database/migrations/index.ts +0 -2
  2011. package/src/database/seeders/.gitkeep +0 -0
  2012. package/src/database-index.ts +0 -29
  2013. package/src/errors-index.ts +0 -7
  2014. package/src/events/EventDispatcher.ts +0 -146
  2015. package/src/events/index.ts +0 -2
  2016. package/src/exceptions/ZintrustError.ts +0 -290
  2017. package/src/functions/cloudflare.ts +0 -332
  2018. package/src/functions/deno.ts +0 -25
  2019. package/src/functions/lambda.ts +0 -30
  2020. package/src/health/RuntimeHealthProbes.ts +0 -75
  2021. package/src/health/StartupHealthChecks.ts +0 -156
  2022. package/src/helper/ShutdownTrace.ts +0 -191
  2023. package/src/helper/index.ts +0 -501
  2024. package/src/http/Controller.ts +0 -64
  2025. package/src/http/ErrorResponse.ts +0 -76
  2026. package/src/http/FileUpload.ts +0 -196
  2027. package/src/http/HttpStatus.ts +0 -95
  2028. package/src/http/Kernel.ts +0 -472
  2029. package/src/http/Request.ts +0 -387
  2030. package/src/http/RequestContext.ts +0 -219
  2031. package/src/http/Response.ts +0 -93
  2032. package/src/http/ValidationHelper.ts +0 -131
  2033. package/src/http/error-pages/ErrorPageRenderer.ts +0 -285
  2034. package/src/http/middleware/BodyParsingMiddleware.ts +0 -447
  2035. package/src/http/middleware/FileUploadMiddleware.ts +0 -226
  2036. package/src/http/parsers/BodyParsers.ts +0 -259
  2037. package/src/http/parsers/MultipartParser.ts +0 -213
  2038. package/src/http/parsers/MultipartParserRegistry.ts +0 -54
  2039. package/src/http/validated.ts +0 -55
  2040. package/src/http-index.ts +0 -35
  2041. package/src/index.ts +0 -590
  2042. package/src/lang/lang.ts +0 -25
  2043. package/src/lang-index.ts +0 -6
  2044. package/src/logger-index.ts +0 -6
  2045. package/src/mail-index.ts +0 -26
  2046. package/src/microservices/MicroserviceBootstrap.ts +0 -465
  2047. package/src/microservices/MicroserviceGenerator.ts +0 -532
  2048. package/src/microservices/MicroserviceManager.ts +0 -459
  2049. package/src/microservices/PostgresAdapter.ts +0 -496
  2050. package/src/microservices/RequestTracingMiddleware.ts +0 -207
  2051. package/src/microservices/ServiceAuthMiddleware.ts +0 -373
  2052. package/src/microservices/ServiceBundler.ts +0 -434
  2053. package/src/microservices/ServiceHealthMonitor.ts +0 -512
  2054. package/src/microservices/ServiceManifest.ts +0 -170
  2055. package/src/microservices-index.ts +0 -7
  2056. package/src/middleware/AuthMiddleware.ts +0 -48
  2057. package/src/middleware/BulletproofAuthMiddleware.ts +0 -837
  2058. package/src/middleware/CsrfMiddleware.ts +0 -224
  2059. package/src/middleware/ErrorHandlerMiddleware.ts +0 -111
  2060. package/src/middleware/JwtAuthMiddleware.ts +0 -183
  2061. package/src/middleware/LoggingMiddleware.ts +0 -60
  2062. package/src/middleware/MiddlewareFailureBody.ts +0 -22
  2063. package/src/middleware/MiddlewareFailureResponder.ts +0 -52
  2064. package/src/middleware/MiddlewareStack.ts +0 -69
  2065. package/src/middleware/RateLimiter.ts +0 -352
  2066. package/src/middleware/SanitizeBodyMiddleware.ts +0 -41
  2067. package/src/middleware/SecurityMiddleware.ts +0 -328
  2068. package/src/middleware/SessionMiddleware.ts +0 -26
  2069. package/src/middleware/ValidationMiddleware.ts +0 -348
  2070. package/src/middleware/index.ts +0 -13
  2071. package/src/middleware-index.ts +0 -10
  2072. package/src/migrations/MigrationDiscovery.ts +0 -59
  2073. package/src/migrations/MigrationLoader.ts +0 -59
  2074. package/src/migrations/MigrationLock.ts +0 -42
  2075. package/src/migrations/Migrator.ts +0 -16
  2076. package/src/migrations/MigratorFactory.ts +0 -473
  2077. package/src/migrations/enum/index.ts +0 -115
  2078. package/src/migrations/schema/Blueprint.ts +0 -241
  2079. package/src/migrations/schema/Schema.ts +0 -418
  2080. package/src/migrations/schema/SchemaCompiler.ts +0 -409
  2081. package/src/migrations/schema/index.ts +0 -17
  2082. package/src/migrations/schema/types.ts +0 -115
  2083. package/src/migrations/types.ts +0 -52
  2084. package/src/node-singletons/async_hooks.ts +0 -12
  2085. package/src/node-singletons/child-process.ts +0 -7
  2086. package/src/node-singletons/crypto.ts +0 -22
  2087. package/src/node-singletons/events.ts +0 -7
  2088. package/src/node-singletons/fs.ts +0 -38
  2089. package/src/node-singletons/http.ts +0 -13
  2090. package/src/node-singletons/index.ts +0 -38
  2091. package/src/node-singletons/module.ts +0 -12
  2092. package/src/node-singletons/net.ts +0 -10
  2093. package/src/node-singletons/os.ts +0 -20
  2094. package/src/node-singletons/path.ts +0 -12
  2095. package/src/node-singletons/perf-hooks.ts +0 -11
  2096. package/src/node-singletons/process.ts +0 -58
  2097. package/src/node-singletons/readline.ts +0 -12
  2098. package/src/node-singletons/stream.ts +0 -19
  2099. package/src/node-singletons/tls.ts +0 -10
  2100. package/src/node-singletons/url.ts +0 -11
  2101. package/src/node-singletons/util.ts +0 -6
  2102. package/src/node.ts +0 -37
  2103. package/src/observability/OpenTelemetry.ts +0 -362
  2104. package/src/observability/PrometheusMetrics.ts +0 -162
  2105. package/src/openapi/OpenApiGenerator.ts +0 -452
  2106. package/src/orm/ConnectionManager.ts +0 -759
  2107. package/src/orm/Database.ts +0 -709
  2108. package/src/orm/DatabaseAdapter.ts +0 -255
  2109. package/src/orm/DatabaseAdapterRegistry.ts +0 -38
  2110. package/src/orm/DatabaseConnectionRegistry.ts +0 -19
  2111. package/src/orm/DatabaseRuntimeRegistration.ts +0 -94
  2112. package/src/orm/Model.ts +0 -1629
  2113. package/src/orm/QueryBuilder.ts +0 -2419
  2114. package/src/orm/QueryBuilderTypeSurface.fixture.ts +0 -124
  2115. package/src/orm/RelationBootstrapDiagnostics.ts +0 -149
  2116. package/src/orm/Relationships.ts +0 -432
  2117. package/src/orm/Schema.ts +0 -403
  2118. package/src/orm/SchemaCompiler.ts +0 -163
  2119. package/src/orm/SchemaStatemenWriter.ts +0 -81
  2120. package/src/orm/adapters/D1Adapter.ts +0 -298
  2121. package/src/orm/adapters/D1ReadSession.ts +0 -98
  2122. package/src/orm/adapters/D1RemoteAdapter.ts +0 -348
  2123. package/src/orm/adapters/MongoDBProxyAdapter.ts +0 -161
  2124. package/src/orm/adapters/MySQLAdapter.ts +0 -132
  2125. package/src/orm/adapters/MySQLProxyAdapter.ts +0 -364
  2126. package/src/orm/adapters/PostgreSQLAdapter.ts +0 -148
  2127. package/src/orm/adapters/PostgreSQLProxyAdapter.ts +0 -279
  2128. package/src/orm/adapters/ProxyCache.ts +0 -34
  2129. package/src/orm/adapters/ProxySignedRequest.ts +0 -41
  2130. package/src/orm/adapters/ProxySigningPath.ts +0 -25
  2131. package/src/orm/adapters/SQLServerAdapter.ts +0 -102
  2132. package/src/orm/adapters/SQLiteAdapter.ts +0 -341
  2133. package/src/orm/adapters/SqlProxyAdapterUtils.ts +0 -85
  2134. package/src/orm/adapters/SqlProxyHttpAdapterShared.ts +0 -123
  2135. package/src/orm/adapters/SqlProxyRegistryMode.ts +0 -33
  2136. package/src/orm/adapters/SqlServerProxyAdapter.ts +0 -265
  2137. package/src/orm/maintenance/SqliteMaintenance.ts +0 -22
  2138. package/src/orm/migrations/MigrationStore.ts +0 -815
  2139. package/src/orm-index.ts +0 -44
  2140. package/src/performance/Benchmark.ts +0 -462
  2141. package/src/performance/CodeGenerationBenchmark.ts +0 -338
  2142. package/src/performance/Optimizer.ts +0 -864
  2143. package/src/performance/establish-baseline.ts +0 -69
  2144. package/src/profiling/MemoryProfiler.ts +0 -111
  2145. package/src/profiling/N1Detector.ts +0 -146
  2146. package/src/profiling/QueryLogger.ts +0 -233
  2147. package/src/profiling/RequestProfiler.ts +0 -123
  2148. package/src/profiling/types.ts +0 -86
  2149. package/src/proxy/CloudflareProxyShared.ts +0 -138
  2150. package/src/proxy/ErrorHandler.ts +0 -13
  2151. package/src/proxy/PoolManager.ts +0 -31
  2152. package/src/proxy/ProxyBackend.ts +0 -19
  2153. package/src/proxy/ProxyConfig.ts +0 -12
  2154. package/src/proxy/ProxyRegistry.ts +0 -20
  2155. package/src/proxy/ProxyRequestParsing.ts +0 -21
  2156. package/src/proxy/ProxyServer.ts +0 -133
  2157. package/src/proxy/ProxyServerUtils.ts +0 -135
  2158. package/src/proxy/ProxySigningConfigResolver.ts +0 -57
  2159. package/src/proxy/ProxySigningRequest.ts +0 -45
  2160. package/src/proxy/RequestValidator.ts +0 -33
  2161. package/src/proxy/SigningService.ts +0 -172
  2162. package/src/proxy/SqlPayloadValidator.ts +0 -27
  2163. package/src/proxy/SqlProxyDbOverrides.ts +0 -17
  2164. package/src/proxy/SqlProxyServerDeps.ts +0 -16
  2165. package/src/proxy/StatementPayloadValidator.ts +0 -34
  2166. package/src/proxy/StatementRegistryLoader.ts +0 -40
  2167. package/src/proxy/StatementRegistryResolver.ts +0 -53
  2168. package/src/proxy/WorkerSigning.ts +0 -126
  2169. package/src/proxy/d1/ZintrustD1Proxy.ts +0 -442
  2170. package/src/proxy/d1/register.ts +0 -6
  2171. package/src/proxy/email/ZintrustEmailProxy.ts +0 -189
  2172. package/src/proxy/email/register.ts +0 -6
  2173. package/src/proxy/isMutatingSql.ts +0 -14
  2174. package/src/proxy/kv/ZintrustKvProxy.ts +0 -354
  2175. package/src/proxy/kv/register.ts +0 -6
  2176. package/src/proxy/mongodb/MongoDBProxyServer.ts +0 -337
  2177. package/src/proxy/mongodb/register.ts +0 -5
  2178. package/src/proxy/mysql/MySqlProxyServer.ts +0 -304
  2179. package/src/proxy/mysql/register.ts +0 -6
  2180. package/src/proxy/postgres/PostgresProxyServer.ts +0 -270
  2181. package/src/proxy/postgres/register.ts +0 -6
  2182. package/src/proxy/redis/RedisProxyServer.ts +0 -280
  2183. package/src/proxy/redis/register.ts +0 -6
  2184. package/src/proxy/smtp/SmtpProxyServer.ts +0 -402
  2185. package/src/proxy/smtp/register.ts +0 -6
  2186. package/src/proxy/sqlserver/SqlServerProxyServer.ts +0 -302
  2187. package/src/proxy/sqlserver/register.ts +0 -5
  2188. package/src/proxy-index.ts +0 -11
  2189. package/src/proxy.ts +0 -6
  2190. package/src/queue-index.ts +0 -18
  2191. package/src/redis-index.ts +0 -28
  2192. package/src/routes/CoreRoutes.ts +0 -47
  2193. package/src/routes/RouteRegistry.ts +0 -106
  2194. package/src/routes/Router.ts +0 -435
  2195. package/src/routes/common.ts +0 -50
  2196. package/src/routes/doc.ts +0 -157
  2197. package/src/routes/error.ts +0 -222
  2198. package/src/routes/errorPages.ts +0 -319
  2199. package/src/routes/health.ts +0 -6
  2200. package/src/routes/metrics.ts +0 -24
  2201. package/src/routes/openapi.ts +0 -93
  2202. package/src/routes/publicRoot.ts +0 -125
  2203. package/src/runtime/BackgroundTaskScheduler.ts +0 -129
  2204. package/src/runtime/NodeStartup.ts +0 -60
  2205. package/src/runtime/OfficialPlugins.ts +0 -183
  2206. package/src/runtime/OverrideValueMerge.ts +0 -18
  2207. package/src/runtime/PluginAutoImports.ts +0 -417
  2208. package/src/runtime/PluginManager.ts +0 -477
  2209. package/src/runtime/PluginRegistry.ts +0 -239
  2210. package/src/runtime/ProjectBootstrap.ts +0 -58
  2211. package/src/runtime/ProjectRuntime.ts +0 -160
  2212. package/src/runtime/RuntimeAdapter.ts +0 -463
  2213. package/src/runtime/RuntimeServices.ts +0 -204
  2214. package/src/runtime/StartupConfigFileRegistry.ts +0 -113
  2215. package/src/runtime/StartupErrorLogging.ts +0 -49
  2216. package/src/runtime/WorkerAdapterImports.ts +0 -34
  2217. package/src/runtime/WorkerProjectAutoImports.ts +0 -85
  2218. package/src/runtime/WorkerProjectPlugins.ts +0 -7
  2219. package/src/runtime/WorkersModule.ts +0 -467
  2220. package/src/runtime/adapters/CloudflareAdapter.ts +0 -348
  2221. package/src/runtime/adapters/DenoAdapter.ts +0 -270
  2222. package/src/runtime/adapters/FargateAdapter.ts +0 -230
  2223. package/src/runtime/adapters/LambdaAdapter.ts +0 -509
  2224. package/src/runtime/adapters/NodeServerAdapter.ts +0 -289
  2225. package/src/runtime/detectRuntime.ts +0 -95
  2226. package/src/runtime/getKernel.ts +0 -34
  2227. package/src/runtime/plugins/trace-runtime.ts +0 -160
  2228. package/src/runtime/plugins/trace.ts +0 -20
  2229. package/src/runtime/resolveNodeProjectRoot.ts +0 -20
  2230. package/src/runtime/useFileLoader.ts +0 -305
  2231. package/src/runtime-index.ts +0 -251
  2232. package/src/scheduler/Schedule.ts +0 -258
  2233. package/src/scheduler/ScheduleHttpGateway.ts +0 -287
  2234. package/src/scheduler/ScheduleRunner.ts +0 -500
  2235. package/src/scheduler/SchedulerRuntime.ts +0 -144
  2236. package/src/scheduler/cron/Cron.ts +0 -257
  2237. package/src/scheduler/index.ts +0 -2
  2238. package/src/scheduler/leader/SchedulerLeader.ts +0 -243
  2239. package/src/scheduler/state/ScheduleStateStore.ts +0 -49
  2240. package/src/scheduler/types.ts +0 -29
  2241. package/src/scheduler-index.ts +0 -14
  2242. package/src/schedules/index.ts +0 -2
  2243. package/src/schedules/job-tracking-cleanup.ts +0 -147
  2244. package/src/schedules/log-cleanup.ts +0 -16
  2245. package/src/scripts/GenerateEnvArtifacts.ts +0 -203
  2246. package/src/scripts/TemplateImportsCheck.ts +0 -214
  2247. package/src/scripts/TemplateSync.ts +0 -488
  2248. package/src/scripts-index.ts +0 -10
  2249. package/src/security/AuthStoreIds.ts +0 -41
  2250. package/src/security/BulletproofDeviceStore.ts +0 -342
  2251. package/src/security/CsrfTokenManager.ts +0 -399
  2252. package/src/security/EncryptedEnvelope.ts +0 -373
  2253. package/src/security/Encryptor.ts +0 -259
  2254. package/src/security/Hash.ts +0 -88
  2255. package/src/security/JwtManager.ts +0 -421
  2256. package/src/security/JwtSessions.ts +0 -707
  2257. package/src/security/JwtVerifier.ts +0 -536
  2258. package/src/security/NonceReplay.ts +0 -69
  2259. package/src/security/PasswordResetTokenBroker.ts +0 -193
  2260. package/src/security/Sanitizer.ts +0 -603
  2261. package/src/security/SecurePayload.ts +0 -323
  2262. package/src/security/SignedRequest.ts +0 -314
  2263. package/src/security/StartupSecretValidation.ts +0 -175
  2264. package/src/security/TokenRevocation.ts +0 -823
  2265. package/src/security/UrlValidator.ts +0 -57
  2266. package/src/security/Xss.ts +0 -72
  2267. package/src/security/XssProtection.ts +0 -396
  2268. package/src/security-index.ts +0 -82
  2269. package/src/seeders/SeederDiscovery.ts +0 -22
  2270. package/src/seeders/SeederLoader.ts +0 -88
  2271. package/src/seeders/types.ts +0 -20
  2272. package/src/seeders-index.ts +0 -9
  2273. package/src/services/default/test/.env +0 -19
  2274. package/src/services/default/users/.env +0 -19
  2275. package/src/services/ecommerce/docker-compose.yml +0 -160
  2276. package/src/services/ecommerce/init-db.sql +0 -71
  2277. package/src/services/ecommerce/orders/service.config.json +0 -20
  2278. package/src/services/ecommerce/payments/service.config.json +0 -19
  2279. package/src/services/ecommerce/users/Dockerfile +0 -61
  2280. package/src/services/ecommerce/users/service.config.json +0 -20
  2281. package/src/session/SessionManager.ts +0 -298
  2282. package/src/session/index.ts +0 -7
  2283. package/src/socket-index.ts +0 -25
  2284. package/src/sockets/CloudflareSocket.ts +0 -337
  2285. package/src/sockets/SocketRuntime.ts +0 -182
  2286. package/src/sockets/SocketRuntimeRegistry.ts +0 -53
  2287. package/src/sockets/cloudflare-sockets.d.ts +0 -20
  2288. package/src/start.ts +0 -254
  2289. package/src/storage-index.ts +0 -20
  2290. package/src/tasks.ts +0 -1
  2291. package/src/templates-index.ts +0 -7
  2292. package/src/testing/TestEnvironment.ts +0 -213
  2293. package/src/testing/TestHttp.ts +0 -134
  2294. package/src/testing/index.ts +0 -11
  2295. package/src/testing-index.ts +0 -8
  2296. package/src/time/DateTime.ts +0 -548
  2297. package/src/time/index.ts +0 -7
  2298. package/src/toolkit/Secrets/EnvFile.ts +0 -80
  2299. package/src/toolkit/Secrets/Manifest.ts +0 -114
  2300. package/src/toolkit/Secrets/index.ts +0 -192
  2301. package/src/toolkit/Secrets/providers/AwsSecretsManager.ts +0 -193
  2302. package/src/toolkit/Secrets/providers/CloudflareKv.ts +0 -94
  2303. package/src/tools/broadcast/Broadcast.ts +0 -1033
  2304. package/src/tools/broadcast/BroadcastRegistry.ts +0 -38
  2305. package/src/tools/broadcast/BroadcastRuntimeRegistration.ts +0 -31
  2306. package/src/tools/broadcast/drivers/BaseDriver.ts +0 -10
  2307. package/src/tools/broadcast/drivers/InMemory.ts +0 -20
  2308. package/src/tools/broadcast/drivers/Pusher.ts +0 -112
  2309. package/src/tools/broadcast/drivers/Redis.ts +0 -49
  2310. package/src/tools/broadcast/drivers/RedisHttps.ts +0 -74
  2311. package/src/tools/broadcast/index.ts +0 -9
  2312. package/src/tools/http/Http.ts +0 -587
  2313. package/src/tools/http/HttpResponse.ts +0 -118
  2314. package/src/tools/http/index.ts +0 -11
  2315. package/src/tools/mail/Mail.ts +0 -1
  2316. package/src/tools/mail/MailDriverRegistry.ts +0 -34
  2317. package/src/tools/mail/MailMessage.ts +0 -140
  2318. package/src/tools/mail/attachments.ts +0 -47
  2319. package/src/tools/mail/drivers/BaseDriver.ts +0 -10
  2320. package/src/tools/mail/drivers/Cloudflare.ts +0 -192
  2321. package/src/tools/mail/drivers/Mailgun.ts +0 -135
  2322. package/src/tools/mail/drivers/SendGrid.ts +0 -108
  2323. package/src/tools/mail/drivers/Ses.ts +0 -183
  2324. package/src/tools/mail/drivers/Smtp.ts +0 -685
  2325. package/src/tools/mail/drivers/cloudflare-email.d.ts +0 -6
  2326. package/src/tools/mail/index.ts +0 -241
  2327. package/src/tools/mail/template-loader.ts +0 -337
  2328. package/src/tools/mail/template-utils.ts +0 -19
  2329. package/src/tools/mail/templates/auth-password-reset.html +0 -231
  2330. package/src/tools/mail/templates/auth-welcome.html +0 -236
  2331. package/src/tools/mail/templates/general.html +0 -109
  2332. package/src/tools/mail/templates/index.ts +0 -143
  2333. package/src/tools/mail/templates/job-completed.html +0 -188
  2334. package/src/tools/mail/templates/notifications-new-comment.html +0 -228
  2335. package/src/tools/mail/templates/password-reset.html +0 -221
  2336. package/src/tools/mail/templates/performance-report.html +0 -258
  2337. package/src/tools/mail/templates/welcome.html +0 -187
  2338. package/src/tools/mail/templates/worker-alert.html +0 -229
  2339. package/src/tools/mail/testing.ts +0 -59
  2340. package/src/tools/notification/Composer.ts +0 -262
  2341. package/src/tools/notification/Driver.ts +0 -11
  2342. package/src/tools/notification/Notification.ts +0 -62
  2343. package/src/tools/notification/NotificationChannelRegistry.ts +0 -46
  2344. package/src/tools/notification/NotificationRuntimeRegistration.ts +0 -36
  2345. package/src/tools/notification/Registry.ts +0 -35
  2346. package/src/tools/notification/Service.ts +0 -155
  2347. package/src/tools/notification/config.ts +0 -7
  2348. package/src/tools/notification/drivers/BaseDriver.ts +0 -10
  2349. package/src/tools/notification/drivers/Console.ts +0 -18
  2350. package/src/tools/notification/drivers/Slack.ts +0 -47
  2351. package/src/tools/notification/drivers/SlackNotification.ts +0 -17
  2352. package/src/tools/notification/drivers/Termii.ts +0 -47
  2353. package/src/tools/notification/drivers/Twilio.ts +0 -82
  2354. package/src/tools/notification/drivers/TwilioNotification.ts +0 -19
  2355. package/src/tools/notification/templates/markdown/index.ts +0 -49
  2356. package/src/tools/notification/templates/markdown/notifications/new-follow.md +0 -12
  2357. package/src/tools/notification/templates/markdown/registry.ts +0 -45
  2358. package/src/tools/notification/testing.ts +0 -50
  2359. package/src/tools/notification/testingHelpers.ts +0 -44
  2360. package/src/tools/queue/AdvancedQueue.ts +0 -550
  2361. package/src/tools/queue/DeduplicationBuilder.ts +0 -111
  2362. package/src/tools/queue/DeduplicationKey.ts +0 -10
  2363. package/src/tools/queue/IdempotencyManager.ts +0 -49
  2364. package/src/tools/queue/JobHeartbeatStore.ts +0 -87
  2365. package/src/tools/queue/JobReconciliationRunner.ts +0 -85
  2366. package/src/tools/queue/JobRecoveryDaemon.ts +0 -396
  2367. package/src/tools/queue/JobStateTracker.ts +0 -701
  2368. package/src/tools/queue/JobStateTrackerDbPersistence.ts +0 -299
  2369. package/src/tools/queue/LockProvider.ts +0 -354
  2370. package/src/tools/queue/Queue.ts +0 -346
  2371. package/src/tools/queue/QueueDataRedactor.ts +0 -58
  2372. package/src/tools/queue/QueueExtensions.ts +0 -163
  2373. package/src/tools/queue/QueueReliabilityMetrics.ts +0 -194
  2374. package/src/tools/queue/QueueReliabilityOrchestrator.ts +0 -108
  2375. package/src/tools/queue/QueueRuntimeRegistration.ts +0 -211
  2376. package/src/tools/queue/QueueTracing.ts +0 -211
  2377. package/src/tools/queue/StalledJobMonitor.ts +0 -28
  2378. package/src/tools/queue/TimeoutManager.ts +0 -99
  2379. package/src/tools/queue/drivers/Database.ts +0 -185
  2380. package/src/tools/queue/drivers/InMemory.ts +0 -64
  2381. package/src/tools/queue/drivers/Redis.ts +0 -34
  2382. package/src/tools/queue/index.ts +0 -39
  2383. package/src/tools/redis/RedisKeyManager.ts +0 -232
  2384. package/src/tools/redis/RedisTransport.ts +0 -566
  2385. package/src/tools/storage/LocalSignedUrl.ts +0 -142
  2386. package/src/tools/storage/StorageDiskRegistry.ts +0 -45
  2387. package/src/tools/storage/StorageDriverRegistry.ts +0 -36
  2388. package/src/tools/storage/StorageRuntimeRegistration.ts +0 -32
  2389. package/src/tools/storage/drivers/Gcs.ts +0 -201
  2390. package/src/tools/storage/drivers/Local.ts +0 -116
  2391. package/src/tools/storage/drivers/R2.ts +0 -262
  2392. package/src/tools/storage/drivers/S3.ts +0 -372
  2393. package/src/tools/storage/index.ts +0 -219
  2394. package/src/tools/storage/testing.ts +0 -80
  2395. package/src/tools/templates/MarkdownRenderer.ts +0 -354
  2396. package/src/tools/templates/index.ts +0 -5
  2397. package/src/tools-broadcast-index.ts +0 -9
  2398. package/src/tools-http-index.ts +0 -7
  2399. package/src/tools-index.ts +0 -48
  2400. package/src/tools-mail-index.ts +0 -27
  2401. package/src/tools-notification-index.ts +0 -20
  2402. package/src/tools-queue-index.ts +0 -25
  2403. package/src/tools-storage-index.ts +0 -14
  2404. package/src/trace/SystemTraceBridge.ts +0 -254
  2405. package/src/trace/SystemTraceWorkerBridge.ts +0 -78
  2406. package/src/trace-index.ts +0 -6
  2407. package/src/types/Queue.ts +0 -73
  2408. package/src/types/bullmq-dist.d.ts +0 -63
  2409. package/src/types/redis.d.ts +0 -11
  2410. package/src/utils-index.ts +0 -9
  2411. package/src/validation/ValidationError.ts +0 -79
  2412. package/src/validation/Validator.ts +0 -682
  2413. package/src/worker-commands.ts +0 -1
  2414. package/src/worker-runtime/drain.ts +0 -272
  2415. package/src/worker-runtime/install-enqueue-hook.ts +0 -27
  2416. package/src/worker-runtime/ping.ts +0 -112
  2417. package/src/worker-runtime/processor-registry.ts +0 -50
  2418. package/src/worker-runtime/rpc-client.ts +0 -343
  2419. package/src/worker-runtime.ts +0 -9
  2420. package/src/workers-index.ts +0 -9
  2421. package/src/zintrust.plugins.ts +0 -29
  2422. package/src/zintrust.plugins.wg.ts +0 -26
  2423. package/src/zintrust.runtime.ts +0 -11
  2424. package/src/zintrust.runtime.wg.ts +0 -11
  2425. /package/{dist/bin → bin}/z.js +0 -0
  2426. /package/{dist/bin → bin}/zin.js +0 -0
  2427. /package/{dist/bin → bin}/zintrust.js +0 -0
  2428. /package/{dist/bin → bin}/zt.js +0 -0
  2429. /package/src/tools/mail/templates/{auth-password-reset.ts → auth-password-reset.js} +0 -0
  2430. /package/src/tools/mail/templates/{auth-welcome.ts → auth-welcome.js} +0 -0
  2431. /package/src/tools/mail/templates/{general.ts → general.js} +0 -0
  2432. /package/src/tools/mail/templates/{job-completed.ts → job-completed.js} +0 -0
  2433. /package/src/tools/mail/templates/{notifications-new-comment.ts → notifications-new-comment.js} +0 -0
  2434. /package/src/tools/mail/templates/{password-reset.ts → password-reset.js} +0 -0
  2435. /package/src/tools/mail/templates/{performance-report.ts → performance-report.js} +0 -0
  2436. /package/src/tools/mail/templates/{welcome.ts → welcome.js} +0 -0
  2437. /package/src/tools/mail/templates/{worker-alert.ts → worker-alert.js} +0 -0
@@ -1,2419 +0,0 @@
1
- /**
2
- * QueryBuilder - Type-Safe Query Builder
3
- * Build queries without raw SQL
4
- */
5
-
6
- import type { PaginationQuery, Paginator } from '@database/Paginator';
7
- import { createPaginator } from '@database/Paginator';
8
- import { ErrorFactory } from '@exceptions/ZintrustError';
9
- import type { IDatabase, RawValue } from '@orm/Database';
10
- import type { IModel } from '@orm/Model';
11
- import type { IRelationship } from '@orm/Relationships';
12
-
13
- export interface WhereClause {
14
- column: string;
15
- operator: string;
16
- value: unknown;
17
- boolean?: 'AND' | 'OR';
18
- expression?: 'normalized-text';
19
- normalization?: NormalizedTextOptions;
20
- }
21
-
22
- export interface NormalizedTextOptions {
23
- trim?: boolean;
24
- lowercase?: boolean;
25
- }
26
-
27
- interface WhereGroupClause {
28
- kind: 'group';
29
- boolean: 'AND' | 'OR';
30
- conditions: WherePredicate[];
31
- }
32
-
33
- interface WhereExistsClause {
34
- kind: 'exists';
35
- not: boolean;
36
- boolean: 'AND' | 'OR';
37
- table: string;
38
- conditions: WherePredicate[];
39
- }
40
-
41
- interface WhereColumnCompareClause {
42
- kind: 'column-compare';
43
- boolean: 'AND' | 'OR';
44
- left: string;
45
- operator: string;
46
- right: string;
47
- }
48
-
49
- type WherePredicate =
50
- | WhereClause
51
- | WhereGroupClause
52
- | WhereExistsClause
53
- | WhereColumnCompareClause;
54
-
55
- export interface IJoinOnBuilder {
56
- on(left: string, operator: string, right: string): IJoinOnBuilder;
57
- }
58
-
59
- export type LatestPerOptions = {
60
- orderBy: Array<[string, 'ASC' | 'DESC']>;
61
- alias?: string;
62
- };
63
-
64
- export type JoinOnInput = string | ((on: IJoinOnBuilder) => unknown);
65
-
66
- /**
67
- * Result returned from INSERT operations
68
- * Provides access to the created record ID, affected rows count, and the full record if available
69
- */
70
- export interface InsertResult {
71
- id: string | number | bigint | null;
72
- affectedRows: number;
73
- insertedRecords?: Record<string, unknown>[];
74
- }
75
-
76
- export type SoftDeleteMode = 'exclude' | 'include' | 'only';
77
-
78
- export interface QueryBuilderOptions {
79
- softDeleteColumn?: string;
80
- softDeleteMode?: SoftDeleteMode;
81
- }
82
-
83
- export interface PaginationOptions {
84
- baseUrl?: string;
85
- query?: PaginationQuery;
86
- /**
87
- * When joins are present, paginate totals use COUNT(DISTINCT …).
88
- * Defaults to `<table>.id`. Pass an explicit safe identifier path when the primary key differs.
89
- */
90
- countDistinct?: string;
91
- }
92
-
93
- export type EagerLoadConstraint = (builder: IQueryBuilder) => IQueryBuilder;
94
- export type EagerLoadConstraints = Record<string, EagerLoadConstraint>;
95
-
96
- export interface IQueryBuilder {
97
- select(...columns: string[]): IQueryBuilder;
98
- selectAs(column: string, alias: string): IQueryBuilder;
99
- max(column: string, alias?: string): IQueryBuilder;
100
- where(column: string, operator: string | number | boolean | null, value?: unknown): IQueryBuilder;
101
- andWhere(column: string, operator: string, value?: unknown): IQueryBuilder;
102
- orWhere(column: string, operator: string, value?: unknown): IQueryBuilder;
103
- whereGroup(callback: (builder: IQueryBuilder) => unknown): IQueryBuilder;
104
- orWhereGroup(callback: (builder: IQueryBuilder) => unknown): IQueryBuilder;
105
- whereNormalized(column: string, value: unknown, options?: NormalizedTextOptions): IQueryBuilder;
106
- orWhereNormalized(column: string, value: unknown, options?: NormalizedTextOptions): IQueryBuilder;
107
- whereNull(column: string): IQueryBuilder;
108
- whereNotNull(column: string): IQueryBuilder;
109
- whereIn(column: string, values: unknown[]): IQueryBuilder;
110
- whereNotIn(column: string, values: unknown[]): IQueryBuilder;
111
- whereMatch(column: string, query: string): IQueryBuilder;
112
- whereNotMatch(column: string, query: string): IQueryBuilder;
113
- whereColumn(left: string, operator: string, right: string): IQueryBuilder;
114
- whereExists(callback: (builder: IQueryBuilder) => unknown): IQueryBuilder;
115
- whereNotExists(callback: (builder: IQueryBuilder) => unknown): IQueryBuilder;
116
- from(table: string): IQueryBuilder;
117
- withTrashed(): IQueryBuilder;
118
- onlyTrashed(): IQueryBuilder;
119
- withoutTrashed(): IQueryBuilder;
120
- join(table: string, on: JoinOnInput): IQueryBuilder;
121
- leftJoin(table: string, on: JoinOnInput): IQueryBuilder;
122
- groupBy(...columns: string[]): IQueryBuilder;
123
- latestPer(partitionBy: string | string[], options: LatestPerOptions): IQueryBuilder;
124
- orderBy(column: string, direction?: 'ASC' | 'DESC'): IQueryBuilder;
125
- inRandomOrder(): IQueryBuilder;
126
- limit(count: number): IQueryBuilder;
127
- offset(count: number): IQueryBuilder;
128
- getWhereClauses(): WhereClause[];
129
- getSelectColumns(): string[];
130
- getTable(): string;
131
- getLimit(): number | undefined;
132
- getOffset(): number | undefined;
133
- getOrderBy(): { column: string; direction: 'ASC' | 'DESC' } | undefined;
134
- getJoins(): Array<{ table: string; on: string; type: 'INNER' | 'LEFT' }>;
135
- isReadOperation(): boolean;
136
- toSQL(): string;
137
- getParameters(): unknown[];
138
- first<T>(): Promise<T | null>;
139
- firstOrFail<T>(message?: string): Promise<T>;
140
- get<T>(): Promise<T[]>;
141
- raw<T>(): Promise<T[]>;
142
- paginate<T>(page: number, perPage: number, options?: PaginationOptions): Promise<Paginator<T>>;
143
-
144
- with(relation: string | EagerLoadConstraints): IQueryBuilder;
145
- withCount(relation: string): IQueryBuilder;
146
- load(models: IModel[], relation: string, constraint?: EagerLoadConstraint): Promise<void>;
147
- loadCount(models: IModel[], relation: string): Promise<void>;
148
-
149
- insert(values: Record<string, unknown> | Array<Record<string, unknown>>): Promise<InsertResult>;
150
- update(values: Record<string, unknown>): Promise<void>;
151
- delete(): Promise<void>;
152
- }
153
-
154
- interface QueryState {
155
- tableName: string;
156
- whereConditions: WherePredicate[];
157
- selectColumns: string[];
158
- limitValue?: number;
159
- offsetValue?: number;
160
- orderByClauses: Array<{ column: string; direction: 'ASC' | 'DESC' }>;
161
- randomOrder: boolean;
162
- joins: Array<{ table: string; on: string; type: 'INNER' | 'LEFT' }>;
163
- groupByColumns: string[];
164
- latestPer?: {
165
- partitionBy: string[];
166
- orderBy: Array<{ column: string; direction: 'ASC' | 'DESC' }>;
167
- alias: string;
168
- };
169
- softDelete?: { column: string; mode: SoftDeleteMode };
170
- eagerLoads: string[];
171
- eagerLoadConstraints: EagerLoadConstraints;
172
- eagerLoadCounts: string[];
173
- dialect?: string;
174
- }
175
-
176
- /**
177
- * Escape SQL identifier
178
- */
179
- type IdentifierQuote = {
180
- open: string;
181
- close: string;
182
- escape: (raw: string) => string;
183
- };
184
-
185
- const getIdentifierQuote = (dialect?: string): IdentifierQuote => {
186
- const d = (dialect ?? '').toLowerCase();
187
-
188
- if (d === 'mysql') {
189
- return {
190
- open: '`',
191
- close: '`',
192
- escape: (raw) => raw.replaceAll('`', '``'),
193
- };
194
- }
195
-
196
- if (d === 'sqlserver') {
197
- return {
198
- open: '[',
199
- close: ']',
200
- escape: (raw) => raw.replaceAll(']', ']]'),
201
- };
202
- }
203
-
204
- // sqlite/postgresql/d1/d1-remote: standard SQL double-quote identifiers.
205
- return {
206
- open: '"',
207
- close: '"',
208
- escape: (raw) => raw.replaceAll('"', '""'),
209
- };
210
- };
211
-
212
- const escapeIdentifier = (id: string, dialect?: string): string => {
213
- const q = getIdentifierQuote(dialect);
214
- return id
215
- .split('.')
216
- .map((part) => `${q.open}${q.escape(part)}${q.close}`)
217
- .join('.');
218
- };
219
-
220
- const SAFE_IDENTIFIER_PATH = /^[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*$/;
221
- const SAFE_IDENTIFIER = /^[A-Za-z_]\w*$/;
222
- const SAFE_FUNCTION_CALL = /^[A-Za-z_]\w*\(\)$/;
223
-
224
- const assertSafeIdentifierPath = (id: string, label: string): void => {
225
- const trimmed = id.trim();
226
- if (trimmed.length === 0) {
227
- throw ErrorFactory.createDatabaseError(`Empty SQL identifier for ${label}`);
228
- }
229
- if (!SAFE_IDENTIFIER_PATH.test(trimmed)) {
230
- throw ErrorFactory.createDatabaseError(`Unsafe SQL identifier for ${label}`);
231
- }
232
- };
233
-
234
- const assertSafeIdentifier = (id: string, label: string): void => {
235
- const trimmed = id.trim();
236
- if (trimmed.length === 0) {
237
- throw ErrorFactory.createDatabaseError(`Empty SQL identifier for ${label}`);
238
- }
239
- if (!SAFE_IDENTIFIER.test(trimmed)) {
240
- throw ErrorFactory.createDatabaseError(`Unsafe SQL identifier for ${label}`);
241
- }
242
- };
243
-
244
- const isRawValue = (value: unknown): value is RawValue =>
245
- typeof value === 'object' &&
246
- value !== null &&
247
- '__raw' in value &&
248
- typeof (value as RawValue).__raw === 'string';
249
-
250
- const assertSafeRawExpression = (raw: string): string => {
251
- const trimmed = raw.trim();
252
- if (trimmed.length === 0) {
253
- throw ErrorFactory.createDatabaseError('Empty raw SQL expression');
254
- }
255
- if (SAFE_IDENTIFIER_PATH.test(trimmed) || SAFE_FUNCTION_CALL.test(trimmed)) {
256
- return trimmed;
257
- }
258
- throw ErrorFactory.createDatabaseError('Unsafe raw SQL expression');
259
- };
260
-
261
- const normalizeOrderDirection = (direction?: string): 'ASC' | 'DESC' => {
262
- if (direction === undefined || direction === null) return 'ASC';
263
- const trimmed = String(direction).trim();
264
- if (trimmed.length === 0) return 'ASC';
265
- const normalized = trimmed.toUpperCase();
266
- if (normalized === 'ASC' || normalized === 'DESC') return normalized;
267
- throw ErrorFactory.createDatabaseError('Unsafe ORDER BY direction');
268
- };
269
-
270
- const normalizeClauseBoolean = (value?: 'AND' | 'OR'): 'AND' | 'OR' =>
271
- value === 'OR' ? 'OR' : 'AND';
272
-
273
- const normalizeTextOptions = (
274
- options?: NormalizedTextOptions
275
- ): Required<NormalizedTextOptions> => ({
276
- trim: options?.trim !== false,
277
- lowercase: options?.lowercase !== false,
278
- });
279
-
280
- const normalizeTextComparisonValue = (value: unknown, options?: NormalizedTextOptions): unknown => {
281
- if (value === null || value === undefined) return value;
282
-
283
- const normalizedOptions = normalizeTextOptions(options);
284
- let normalized = String(value);
285
-
286
- if (normalizedOptions.trim) {
287
- normalized = normalized.trim();
288
- }
289
-
290
- if (normalizedOptions.lowercase) {
291
- normalized = normalized.toLowerCase();
292
- }
293
-
294
- return normalized;
295
- };
296
-
297
- const buildNormalizedColumnSql = (
298
- column: string,
299
- dialect?: string,
300
- options?: NormalizedTextOptions
301
- ): string => {
302
- const normalizedOptions = normalizeTextOptions(options);
303
- let sql = escapeIdentifier(column, dialect);
304
-
305
- if (normalizedOptions.trim) {
306
- sql = `TRIM(${sql})`;
307
- }
308
-
309
- if (normalizedOptions.lowercase) {
310
- sql = `LOWER(${sql})`;
311
- }
312
-
313
- return sql;
314
- };
315
-
316
- const isWhereGroupClause = (value: WherePredicate): value is WhereGroupClause =>
317
- 'kind' in value && value.kind === 'group';
318
-
319
- const isWhereExistsClause = (value: WherePredicate): value is WhereExistsClause =>
320
- 'kind' in value && value.kind === 'exists';
321
-
322
- const isWhereColumnCompareClause = (value: WherePredicate): value is WhereColumnCompareClause =>
323
- 'kind' in value && value.kind === 'column-compare';
324
-
325
- const normalizeOperator = (operator: string): string => operator.trim().toUpperCase();
326
-
327
- const ALLOWED_COLUMN_COMPARE_OPERATORS = new Set(['=', '!=', '<>', '<', '<=', '>', '>=']);
328
-
329
- const assertSafeColumnCompareOperator = (operator: string): string => {
330
- const normalized = operator.trim();
331
- if (!ALLOWED_COLUMN_COMPARE_OPERATORS.has(normalized)) {
332
- throw ErrorFactory.createDatabaseError('Unsafe SQL column comparison operator');
333
- }
334
- return normalized;
335
- };
336
-
337
- const ALLOWED_OPERATORS = new Set([
338
- '=',
339
- '==',
340
- '!=',
341
- '<>',
342
- '<',
343
- '<=',
344
- '>',
345
- '>=',
346
- 'LIKE',
347
- 'NOT LIKE',
348
- 'ILIKE',
349
- 'NOT ILIKE',
350
- 'IN',
351
- 'NOT IN',
352
- 'BETWEEN',
353
- 'NOT BETWEEN',
354
- 'IS',
355
- 'IS NOT',
356
- 'NOT',
357
- 'MATCH',
358
- 'NOT MATCH',
359
- ]);
360
-
361
- const MATCH_OPERATORS = new Set(['MATCH', 'NOT MATCH']);
362
-
363
- const isSqliteFamilyDialect = (dialect?: string): boolean => {
364
- const d = (dialect ?? '').toLowerCase();
365
- return d === 'sqlite' || d === 'd1' || d === 'd1-remote';
366
- };
367
-
368
- const assertSafeOperator = (operator: string): string => {
369
- const normalized = normalizeOperator(operator);
370
- if (!ALLOWED_OPERATORS.has(normalized)) {
371
- throw ErrorFactory.createDatabaseError('Unsafe SQL operator');
372
- }
373
- return normalized;
374
- };
375
-
376
- const assertMatchOperator = (operator: string, value: unknown, dialect?: string): void => {
377
- if (!MATCH_OPERATORS.has(operator)) {
378
- return;
379
- }
380
-
381
- const dialectName = typeof dialect === 'string' ? dialect.trim() : '';
382
- if (dialectName.length > 0 && !isSqliteFamilyDialect(dialectName)) {
383
- throw ErrorFactory.createDatabaseError(
384
- `MATCH is only supported on sqlite, d1, and d1-remote (got ${dialectName})`
385
- );
386
- }
387
-
388
- if (typeof value !== 'string') {
389
- throw ErrorFactory.createDatabaseError('MATCH operator requires a string value');
390
- }
391
- };
392
-
393
- const assertSafeLimitOffset = (value: number, label: string): void => {
394
- if (!Number.isFinite(value) || !Number.isInteger(value) || value < 0) {
395
- throw ErrorFactory.createDatabaseError(`Unsafe ${label} value`);
396
- }
397
- };
398
-
399
- const isNumericLiteral = (value: string): boolean => {
400
- // Strict, injection-resistant numeric literal allow-list.
401
- // Allows: 0, 1, 1.5, 0001
402
- // Disallows: 1e3, 1;DROP, 1 as ok
403
- return /^(?:0|[1-9]\d*)(?:\.\d+)?$/.test(value);
404
- };
405
-
406
- type SupportedAggregateFn = 'MAX' | 'MIN' | 'COUNT' | 'SUM' | 'AVG';
407
-
408
- const ALLOWED_AGGREGATES = new Set<SupportedAggregateFn>(['MAX', 'MIN', 'COUNT', 'SUM', 'AVG']);
409
-
410
- const tryParseAggregateSelectExpr = (
411
- raw: string
412
- ): { kind: 'aggregate'; fn: SupportedAggregateFn; arg: string; alias?: string } | null => {
413
- // Aggregate functions: MAX(col) [AS alias]
414
- // Capture content greedily to avoid ReDoS from overlapping whitespace patterns (S5852)
415
- const agg = /^(MAX|MIN|COUNT|SUM|AVG)\(([^)]+)\)(?: AS (\S+))?$/i.exec(raw);
416
- if (agg === null) return null;
417
-
418
- const fn = agg[1]?.toUpperCase() as SupportedAggregateFn;
419
- const arg = (agg[2] ?? '').trim();
420
- const alias = (agg[3] ?? '').trim();
421
-
422
- if (!ALLOWED_AGGREGATES.has(fn)) return null;
423
- if (arg !== '*') {
424
- assertSafeIdentifierPath(arg, 'aggregate argument');
425
- }
426
- if (alias.length > 0) {
427
- assertSafeIdentifier(alias, 'aggregate alias');
428
- }
429
-
430
- return { kind: 'aggregate', fn, arg, alias: alias.length > 0 ? alias : undefined };
431
- };
432
-
433
- const tryParseColumnAliasSelectExpr = (
434
- raw: string
435
- ): { kind: 'column'; column: string; alias: string } | null => {
436
- // Column alias: col [AS alias]
437
- // Avoid catastrophic backtracking by using a linear-time separator scan.
438
- const upperRaw = raw.toUpperCase();
439
- const asIndex = upperRaw.indexOf(' AS ');
440
- if (asIndex === -1) return null;
441
-
442
- const asSeparator = { index: asIndex, 0: raw.slice(asIndex, asIndex + 4) };
443
- const col = raw.slice(0, asSeparator.index).trim();
444
- const alias = raw.slice(asSeparator.index + asSeparator[0].length).trim();
445
-
446
- // Alias must be a single token (no whitespace).
447
- if (col.length === 0 || alias.length === 0 || /\s/.test(alias)) return null;
448
-
449
- assertSafeIdentifierPath(col, 'select column');
450
- assertSafeIdentifier(alias, 'select alias');
451
- return { kind: 'column', column: col, alias };
452
- };
453
-
454
- const tryParseSelectExpr = (
455
- expr: string
456
- ):
457
- | { kind: 'all' }
458
- | { kind: 'literal'; value: string }
459
- | { kind: 'column'; column: string; alias?: string }
460
- | { kind: 'aggregate'; fn: SupportedAggregateFn; arg: string; alias?: string } => {
461
- const raw = expr.trim();
462
- if (raw.length === 0) {
463
- throw ErrorFactory.createDatabaseError('Empty SQL identifier for select column');
464
- }
465
- if (raw === '*') return { kind: 'all' };
466
- if (isNumericLiteral(raw)) return { kind: 'literal', value: raw };
467
-
468
- const aggregate = tryParseAggregateSelectExpr(raw);
469
- if (aggregate !== null) return aggregate;
470
-
471
- const aliased = tryParseColumnAliasSelectExpr(raw);
472
- if (aliased !== null) return aliased;
473
-
474
- // Plain identifier path
475
- assertSafeIdentifierPath(raw, 'select column');
476
- return { kind: 'column', column: raw };
477
- };
478
-
479
- /**
480
- * Build SELECT clause
481
- */
482
- const formatSelectExpr = (
483
- parsed:
484
- | { kind: 'all' }
485
- | { kind: 'literal'; value: string }
486
- | { kind: 'column'; column: string; alias?: string }
487
- | { kind: 'aggregate'; fn: SupportedAggregateFn; arg: string; alias?: string },
488
- dialect?: string
489
- ): string => {
490
- if (parsed.kind === 'all') return '*';
491
- if (parsed.kind === 'literal') return parsed.value;
492
-
493
- if (parsed.kind === 'aggregate') {
494
- const argSql = parsed.arg === '*' ? '*' : escapeIdentifier(parsed.arg, dialect);
495
- const base = `${parsed.fn}(${argSql})`;
496
- const alias = typeof parsed.alias === 'string' && parsed.alias.length > 0 ? parsed.alias : null;
497
- return alias === null ? base : `${base} AS ${escapeIdentifier(alias, dialect)}`;
498
- }
499
-
500
- const base = escapeIdentifier(parsed.column, dialect);
501
- const alias = typeof parsed.alias === 'string' && parsed.alias.length > 0 ? parsed.alias : null;
502
- return alias === null ? base : `${base} AS ${escapeIdentifier(alias, dialect)}`;
503
- };
504
-
505
- const buildSelectClause = (columns: string[], dialect?: string): string => {
506
- const out: string[] = [];
507
- for (const c of columns) {
508
- const parsed = tryParseSelectExpr(String(c));
509
- out.push(formatSelectExpr(parsed, dialect));
510
- }
511
-
512
- return out.join(', ');
513
- };
514
-
515
- const compileInWhereClause = (
516
- columnSql: string,
517
- operator: string,
518
- value: unknown
519
- ): { sql: string; parameters: unknown[] } | null => {
520
- if (operator !== 'IN' && operator !== 'NOT IN') return null;
521
-
522
- if (!Array.isArray(value) || value.length === 0) {
523
- throw ErrorFactory.createDatabaseError('IN operator requires a non-empty array');
524
- }
525
-
526
- return {
527
- sql: `${columnSql} ${operator} (${value.map(() => '?').join(', ')})`,
528
- parameters: value,
529
- };
530
- };
531
-
532
- const compileBetweenWhereClause = (
533
- columnSql: string,
534
- operator: string,
535
- value: unknown
536
- ): { sql: string; parameters: unknown[] } | null => {
537
- if (operator !== 'BETWEEN' && operator !== 'NOT BETWEEN') return null;
538
-
539
- if (!Array.isArray(value) || value.length !== 2) {
540
- throw ErrorFactory.createDatabaseError('BETWEEN operator requires a 2-item array');
541
- }
542
-
543
- return {
544
- sql: `${columnSql} ${operator} ? AND ?`,
545
- parameters: value,
546
- };
547
- };
548
-
549
- const compileNullWhereClause = (
550
- columnSql: string,
551
- operator: string,
552
- value: unknown
553
- ): { sql: string; parameters: unknown[] } | null => {
554
- if (value !== null && value !== undefined) return null;
555
-
556
- if (operator === '=' || operator === '==') {
557
- return { sql: `${columnSql} IS NULL`, parameters: [] };
558
- }
559
-
560
- if (operator === '!=' || operator === '<>' || operator === 'NOT') {
561
- return { sql: `${columnSql} IS NOT NULL`, parameters: [] };
562
- }
563
-
564
- if (operator === 'IS' || operator === 'IS NOT') {
565
- return { sql: `${columnSql} ${operator} NULL`, parameters: [] };
566
- }
567
-
568
- return null;
569
- };
570
-
571
- const compileComparisonWhereClause = (
572
- columnSql: string,
573
- operator: string,
574
- value: unknown,
575
- expression?: WhereClause['expression'],
576
- normalization?: NormalizedTextOptions
577
- ): { sql: string; parameters: unknown[] } => {
578
- const finalValue =
579
- expression === 'normalized-text' ? normalizeTextComparisonValue(value, normalization) : value;
580
-
581
- return { sql: `${columnSql} ${operator} ?`, parameters: [finalValue] };
582
- };
583
-
584
- const compileSingleWhereClause = (
585
- clause: WhereClause,
586
- dialect?: string
587
- ): {
588
- sql: string;
589
- parameters: unknown[];
590
- } => {
591
- assertSafeIdentifierPath(clause.column, 'where column');
592
- const operator = assertSafeOperator(clause.operator);
593
- assertMatchOperator(operator, clause.value, dialect);
594
- const columnSql =
595
- clause.expression === 'normalized-text'
596
- ? buildNormalizedColumnSql(clause.column, dialect, clause.normalization)
597
- : escapeIdentifier(clause.column, dialect);
598
-
599
- const inClause = compileInWhereClause(columnSql, operator, clause.value);
600
- if (inClause !== null) return inClause;
601
-
602
- const betweenClause = compileBetweenWhereClause(columnSql, operator, clause.value);
603
- if (betweenClause !== null) return betweenClause;
604
-
605
- const nullClause = compileNullWhereClause(columnSql, operator, clause.value);
606
- if (nullClause !== null) return nullClause;
607
-
608
- return compileComparisonWhereClause(
609
- columnSql,
610
- operator,
611
- clause.value,
612
- clause.expression,
613
- clause.normalization
614
- );
615
- };
616
-
617
- const compileColumnCompareClause = (
618
- clause: WhereColumnCompareClause,
619
- dialect?: string
620
- ): { sql: string; parameters: unknown[] } => {
621
- assertSafeIdentifierPath(clause.left, 'where column left');
622
- assertSafeIdentifierPath(clause.right, 'where column right');
623
- const operator = assertSafeColumnCompareOperator(clause.operator);
624
- return {
625
- sql: `${escapeIdentifier(clause.left, dialect)} ${operator} ${escapeIdentifier(
626
- clause.right,
627
- dialect
628
- )}`,
629
- parameters: [],
630
- };
631
- };
632
-
633
- const compileExistsClause = (
634
- clause: WhereExistsClause,
635
- dialect?: string
636
- ): { sql: string; parameters: unknown[] } => {
637
- assertSafeIdentifierPath(clause.table, 'exists table');
638
- const inner = compileWhereFragments(clause.conditions, dialect);
639
- const whereSql = inner.sql.length > 0 ? ` WHERE ${inner.sql}` : '';
640
- const keyword = clause.not ? 'NOT EXISTS' : 'EXISTS';
641
- return {
642
- sql: `${keyword} (SELECT 1 FROM ${escapeIdentifier(clause.table, dialect)}${whereSql})`,
643
- parameters: inner.parameters,
644
- };
645
- };
646
-
647
- const compileWherePredicate = (
648
- condition: WherePredicate,
649
- dialect?: string
650
- ): { sql: string; parameters: unknown[]; grouped: boolean } => {
651
- if (isWhereGroupClause(condition)) {
652
- const compiled = compileWhereFragments(condition.conditions, dialect);
653
- return { ...compiled, grouped: true };
654
- }
655
- if (isWhereExistsClause(condition)) {
656
- return { ...compileExistsClause(condition, dialect), grouped: false };
657
- }
658
- if (isWhereColumnCompareClause(condition)) {
659
- return { ...compileColumnCompareClause(condition, dialect), grouped: false };
660
- }
661
- return { ...compileSingleWhereClause(condition, dialect), grouped: false };
662
- };
663
-
664
- const compileWhereFragments = (
665
- conditions: WherePredicate[],
666
- dialect?: string
667
- ): {
668
- sql: string;
669
- parameters: unknown[];
670
- } => {
671
- if (conditions.length === 0) return { sql: '', parameters: [] };
672
-
673
- const parameters: unknown[] = [];
674
- const fragments: string[] = [];
675
-
676
- for (const condition of conditions) {
677
- const compiled = compileWherePredicate(condition, dialect);
678
-
679
- if (compiled.sql.length === 0) continue;
680
-
681
- parameters.push(...compiled.parameters);
682
-
683
- const fragment = compiled.grouped ? `(${compiled.sql})` : compiled.sql;
684
- const boolean = normalizeClauseBoolean(condition.boolean);
685
- fragments.push(fragments.length === 0 ? fragment : `${boolean} ${fragment}`);
686
- }
687
-
688
- return { sql: fragments.join(' '), parameters };
689
- };
690
-
691
- const compileWhere = (
692
- conditions: WherePredicate[],
693
- dialect?: string
694
- ): {
695
- sql: string;
696
- parameters: unknown[];
697
- } => {
698
- const compiled = compileWhereFragments(conditions, dialect);
699
- return compiled.sql.length === 0
700
- ? { sql: '', parameters: [] }
701
- : { sql: ` WHERE ${compiled.sql}`, parameters: compiled.parameters };
702
- };
703
-
704
- const buildSoftDeleteWhereClause = (column: string, mode: SoftDeleteMode): WhereClause | null => {
705
- const col = column.trim();
706
- if (col.length === 0) return null;
707
- assertSafeIdentifierPath(col, 'soft delete column');
708
-
709
- if (mode === 'include') return null;
710
- if (mode === 'only') return { column: col, operator: 'IS NOT', value: null };
711
- return { column: col, operator: 'IS', value: null };
712
- };
713
-
714
- const getEffectiveWhereConditions = (state: QueryState): WherePredicate[] => {
715
- if (state.softDelete === undefined) return state.whereConditions;
716
-
717
- const clause = buildSoftDeleteWhereClause(state.softDelete.column, state.softDelete.mode);
718
- if (clause === null) return state.whereConditions;
719
-
720
- return [...state.whereConditions, clause];
721
- };
722
-
723
- /**
724
- * Build ORDER BY clause
725
- */
726
- const buildOrderByClause = (
727
- orderByClauses: Array<{ column: string; direction: 'ASC' | 'DESC' }>,
728
- randomOrder: boolean,
729
- dialect?: string
730
- ): string => {
731
- if (randomOrder) {
732
- // Database-specific random ordering
733
- switch (dialect) {
734
- case 'mysql':
735
- case 'mariadb':
736
- return ' ORDER BY RAND()';
737
- case 'postgres':
738
- return ' ORDER BY RANDOM()';
739
- case 'sqlite':
740
- return ' ORDER BY RANDOM()';
741
- case 'mssql':
742
- return ' ORDER BY NEWID()';
743
- default:
744
- // Fallback for other databases
745
- return ' ORDER BY RANDOM()';
746
- }
747
- }
748
-
749
- if (orderByClauses.length === 0) return '';
750
-
751
- const parts = orderByClauses.map((orderBy) => {
752
- const col = orderBy.column.trim();
753
- let columnSql = col;
754
-
755
- if (!isNumericLiteral(col)) {
756
- assertSafeIdentifierPath(col, 'order by column');
757
- columnSql = escapeIdentifier(col, dialect);
758
- }
759
-
760
- const dir = normalizeOrderDirection(orderBy.direction);
761
- return `${columnSql} ${dir}`;
762
- });
763
-
764
- return ` ORDER BY ${parts.join(', ')}`;
765
- };
766
-
767
- /**
768
- * Build LIMIT and OFFSET clause
769
- */
770
- const buildLimitOffsetClause = (limit?: number, offset?: number): string => {
771
- let sql = '';
772
- if (limit !== undefined && limit !== null) {
773
- assertSafeLimitOffset(limit, 'LIMIT');
774
- sql += ` LIMIT ${limit}`;
775
- }
776
- if (offset !== undefined && offset !== null) {
777
- assertSafeLimitOffset(offset, 'OFFSET');
778
- sql += ` OFFSET ${offset}`;
779
- }
780
- return sql;
781
- };
782
-
783
- // Matches `left OP right` where both sides are identifier paths (e.g.
784
- // `users.id = profiles.user_id`). Operator alternation lists the two-char
785
- // operators before their single-char prefixes so `<=`/`>=`/`<>` win the match.
786
- const JOIN_CONDITION =
787
- /^([A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*)\s*(=|!=|<>|<=|>=|<|>)\s*([A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*)$/;
788
-
789
- type JoinOnTerm = { left: string; op: string; right: string };
790
-
791
- const parseJoinOnTerms = (on: string): JoinOnTerm[] => {
792
- const parts = on
793
- .split(/\s+AND\s+/i)
794
- .map((part) => part.trim())
795
- .filter((part) => part.length > 0);
796
-
797
- if (parts.length === 0) {
798
- throw ErrorFactory.createDatabaseError('Unsafe SQL join condition');
799
- }
800
-
801
- return parts.map((part) => {
802
- const match = JOIN_CONDITION.exec(part);
803
- if (!match) {
804
- throw ErrorFactory.createDatabaseError('Unsafe SQL join condition');
805
- }
806
- const [, left, op, right] = match;
807
- return { left: left ?? '', op: op ?? '=', right: right ?? '' };
808
- });
809
- };
810
-
811
- const resolveJoinOnInput = (on: JoinOnInput): string => {
812
- if (typeof on === 'string') {
813
- // Validate early so bad ON strings fail at builder time, not only at compile.
814
- const terms = parseJoinOnTerms(on);
815
- return terms.map((term) => `${term.left} ${term.op} ${term.right}`).join(' AND ');
816
- }
817
-
818
- const terms: JoinOnTerm[] = [];
819
- const joinOnBuilder: IJoinOnBuilder = Object.freeze({
820
- on(left: string, operator: string, right: string): IJoinOnBuilder {
821
- assertSafeIdentifierPath(left, 'join on left');
822
- assertSafeIdentifierPath(right, 'join on right');
823
- const op = assertSafeColumnCompareOperator(operator);
824
- terms.push({ left: left.trim(), op, right: right.trim() });
825
- return joinOnBuilder;
826
- },
827
- });
828
-
829
- on(joinOnBuilder);
830
-
831
- if (terms.length === 0) {
832
- throw ErrorFactory.createDatabaseError('Join ON builder requires at least one on() term');
833
- }
834
-
835
- return terms.map((term) => `${term.left} ${term.op} ${term.right}`).join(' AND ');
836
- };
837
-
838
- const buildJoinOnSql = (on: string, dialect?: string): string => {
839
- const terms = parseJoinOnTerms(on);
840
- return terms
841
- .map(
842
- (term) =>
843
- `${escapeIdentifier(term.left, dialect)} ${term.op} ${escapeIdentifier(term.right, dialect)}`
844
- )
845
- .join(' AND ');
846
- };
847
-
848
- const buildJoinClause = (joins: QueryState['joins'], dialect?: string): string =>
849
- joins
850
- .map(({ table, on, type }) => {
851
- assertSafeIdentifierPath(table, 'join table');
852
- return ` ${type} JOIN ${escapeIdentifier(table, dialect)} ON ${buildJoinOnSql(on, dialect)}`;
853
- })
854
- .join('');
855
-
856
- const buildGroupByClause = (columns: string[], dialect?: string): string => {
857
- if (columns.length === 0) return '';
858
-
859
- const parts = columns.map((column) => {
860
- const col = column.trim();
861
- assertSafeIdentifierPath(col, 'group by column');
862
- return escapeIdentifier(col, dialect);
863
- });
864
-
865
- return ` GROUP BY ${parts.join(', ')}`;
866
- };
867
-
868
- const buildWindowOrderBySql = (
869
- orderBy: Array<{ column: string; direction: 'ASC' | 'DESC' }>,
870
- dialect?: string
871
- ): string => {
872
- if (orderBy.length === 0) {
873
- throw ErrorFactory.createDatabaseError('latestPer requires at least one orderBy column');
874
- }
875
-
876
- return orderBy
877
- .map((clause) => {
878
- assertSafeIdentifierPath(clause.column, 'window order by column');
879
- return `${escapeIdentifier(clause.column, dialect)} ${clause.direction}`;
880
- })
881
- .join(', ');
882
- };
883
-
884
- const buildWindowPartitionSql = (partitionBy: string[], dialect?: string): string => {
885
- if (partitionBy.length === 0) {
886
- throw ErrorFactory.createDatabaseError('latestPer requires at least one partition column');
887
- }
888
-
889
- return partitionBy
890
- .map((column) => {
891
- assertSafeIdentifierPath(column, 'window partition column');
892
- return escapeIdentifier(column, dialect);
893
- })
894
- .join(', ');
895
- };
896
-
897
- const buildBaseSelectBody = (
898
- state: QueryState,
899
- columnsSql: string,
900
- options: { includeOrderLimit: boolean; includeGroupBy: boolean }
901
- ): { sql: string; parameters: unknown[] } => {
902
- if (state.tableName.length > 0) {
903
- assertSafeIdentifierPath(state.tableName, 'table name');
904
- }
905
-
906
- const fromClause =
907
- state.tableName.length > 0 ? ` FROM ${escapeIdentifier(state.tableName, state.dialect)}` : '';
908
- const joinClause = buildJoinClause(state.joins, state.dialect);
909
- const where = compileWhere(getEffectiveWhereConditions(state), state.dialect);
910
- const groupByClause = options.includeGroupBy
911
- ? buildGroupByClause(state.groupByColumns, state.dialect)
912
- : '';
913
- const orderLimit = options.includeOrderLimit
914
- ? `${buildOrderByClause(state.orderByClauses, state.randomOrder, state.dialect)}${buildLimitOffsetClause(
915
- state.limitValue,
916
- state.offsetValue
917
- )}`
918
- : '';
919
-
920
- const sql = `SELECT ${columnsSql}${fromClause}${joinClause}${where.sql}${groupByClause}${orderLimit}`;
921
- return { sql, parameters: where.parameters };
922
- };
923
-
924
- const buildLatestPerQuery = (state: QueryState): { sql: string; parameters: unknown[] } => {
925
- const latest = state.latestPer;
926
- if (latest === undefined) {
927
- throw ErrorFactory.createDatabaseError('latestPer state is missing');
928
- }
929
-
930
- const baseColumns = buildSelectClause(state.selectColumns, state.dialect);
931
- const partitionSql = buildWindowPartitionSql(latest.partitionBy, state.dialect);
932
- const orderSql = buildWindowOrderBySql(latest.orderBy, state.dialect);
933
- const aliasSql = escapeIdentifier(latest.alias, state.dialect);
934
- const windowSql = `ROW_NUMBER() OVER (PARTITION BY ${partitionSql} ORDER BY ${orderSql}) AS ${aliasSql}`;
935
- const innerColumns =
936
- baseColumns === '*' || baseColumns.trim().length === 0
937
- ? `*, ${windowSql}`
938
- : `${baseColumns}, ${windowSql}`;
939
-
940
- // Window wrap owns outer ORDER/LIMIT; inner keeps filters/joins only.
941
- const inner = buildBaseSelectBody(state, innerColumns, {
942
- includeOrderLimit: false,
943
- includeGroupBy: false,
944
- });
945
-
946
- const outerOrderLimit = `${buildOrderByClause(
947
- state.orderByClauses,
948
- state.randomOrder,
949
- state.dialect
950
- )}${buildLimitOffsetClause(state.limitValue, state.offsetValue)}`;
951
-
952
- const sql = `SELECT * FROM (${inner.sql}) AS ${escapeIdentifier(
953
- '_zt_window',
954
- state.dialect
955
- )} WHERE ${aliasSql} = 1${outerOrderLimit}`;
956
-
957
- return { sql, parameters: inner.parameters };
958
- };
959
-
960
- const buildSelectQuery = (state: QueryState): { sql: string; parameters: unknown[] } => {
961
- if (state.latestPer !== undefined) {
962
- return buildLatestPerQuery(state);
963
- }
964
-
965
- const columns = buildSelectClause(state.selectColumns, state.dialect);
966
- return buildBaseSelectBody(state, columns, {
967
- includeOrderLimit: true,
968
- includeGroupBy: true,
969
- });
970
- };
971
-
972
- const buildCountQuery = (
973
- state: QueryState,
974
- options?: Pick<PaginationOptions, 'countDistinct'>
975
- ): { sql: string; parameters: unknown[] } => {
976
- if (state.tableName.length > 0) {
977
- assertSafeIdentifierPath(state.tableName, 'table name');
978
- }
979
-
980
- // GROUP BY / window queries: count rows of the unconstrained result set via subquery.
981
- if (state.groupByColumns.length > 0 || state.latestPer !== undefined) {
982
- const prevLimit = state.limitValue;
983
- const prevOffset = state.offsetValue;
984
- const prevOrder = state.orderByClauses;
985
- const prevRandom = state.randomOrder;
986
-
987
- state.limitValue = undefined;
988
- state.offsetValue = undefined;
989
- state.orderByClauses = [];
990
- state.randomOrder = false;
991
-
992
- const inner = buildSelectQuery(state);
993
-
994
- state.limitValue = prevLimit;
995
- state.offsetValue = prevOffset;
996
- state.orderByClauses = prevOrder;
997
- state.randomOrder = prevRandom;
998
-
999
- const sql = `SELECT COUNT(*) AS total FROM (${inner.sql}) AS ${escapeIdentifier(
1000
- '_zt_count',
1001
- state.dialect
1002
- )}`;
1003
- return { sql, parameters: inner.parameters };
1004
- }
1005
-
1006
- const fromClause =
1007
- state.tableName.length > 0 ? ` FROM ${escapeIdentifier(state.tableName, state.dialect)}` : '';
1008
- const joinClause = buildJoinClause(state.joins, state.dialect);
1009
- const where = compileWhere(getEffectiveWhereConditions(state), state.dialect);
1010
-
1011
- let countExpr = 'COUNT(*)';
1012
- if (state.joins.length > 0) {
1013
- const distinctCol =
1014
- typeof options?.countDistinct === 'string' && options.countDistinct.trim().length > 0
1015
- ? options.countDistinct.trim()
1016
- : `${state.tableName}.id`;
1017
- assertSafeIdentifierPath(distinctCol, 'count distinct column');
1018
- countExpr = `COUNT(DISTINCT ${escapeIdentifier(distinctCol, state.dialect)})`;
1019
- }
1020
-
1021
- const sql = `SELECT ${countExpr} AS total${fromClause}${joinClause}${where.sql}`;
1022
- return { sql, parameters: where.parameters };
1023
- };
1024
-
1025
- const applyWhereCondition = (
1026
- state: QueryState,
1027
- column: string,
1028
- operator: string | number | boolean | null,
1029
- value?: unknown,
1030
- boolean: 'AND' | 'OR' = 'AND',
1031
- extra: Partial<Pick<WhereClause, 'expression' | 'normalization'>> = {}
1032
- ): void => {
1033
- const col = String(column).trim();
1034
- assertSafeIdentifierPath(col, 'where column');
1035
-
1036
- let op: string;
1037
- let val: unknown;
1038
-
1039
- // Shorthand: where('id', 123)
1040
- if (value === undefined) {
1041
- op = '=';
1042
- val = operator;
1043
- } else {
1044
- if (typeof operator !== 'string') {
1045
- throw ErrorFactory.createDatabaseError('Unsafe SQL operator');
1046
- }
1047
- op = assertSafeOperator(operator);
1048
- val = value;
1049
- assertMatchOperator(op, val, state.dialect);
1050
- }
1051
-
1052
- state.whereConditions.push({
1053
- column: col,
1054
- operator: op,
1055
- value: val,
1056
- boolean,
1057
- ...extra,
1058
- });
1059
- };
1060
-
1061
- const createPredicateState = (dialect?: string): QueryState => ({
1062
- tableName: '',
1063
- whereConditions: [],
1064
- selectColumns: ['*'],
1065
- orderByClauses: [],
1066
- randomOrder: false,
1067
- joins: [],
1068
- groupByColumns: [],
1069
- eagerLoads: [],
1070
- eagerLoadConstraints: {},
1071
- eagerLoadCounts: [],
1072
- dialect,
1073
- });
1074
-
1075
- const applyWhereColumnCompare = (
1076
- state: QueryState,
1077
- left: string,
1078
- operator: string,
1079
- right: string,
1080
- boolean: 'AND' | 'OR' = 'AND'
1081
- ): void => {
1082
- assertSafeIdentifierPath(left, 'where column left');
1083
- assertSafeIdentifierPath(right, 'where column right');
1084
- const op = assertSafeColumnCompareOperator(operator);
1085
-
1086
- state.whereConditions.push({
1087
- kind: 'column-compare',
1088
- boolean,
1089
- left: left.trim(),
1090
- operator: op,
1091
- right: right.trim(),
1092
- });
1093
- };
1094
-
1095
- const applyWhereExists = (
1096
- state: QueryState,
1097
- callback: (builder: IQueryBuilder) => unknown,
1098
- not: boolean,
1099
- boolean: 'AND' | 'OR' = 'AND'
1100
- ): void => {
1101
- const subState = createPredicateState(state.dialect);
1102
- const subBuilder = createBuilder(subState);
1103
- callback(subBuilder);
1104
-
1105
- const table = subState.tableName.trim();
1106
- if (table.length === 0) {
1107
- throw ErrorFactory.createDatabaseError('EXISTS subquery requires from(table)');
1108
- }
1109
- assertSafeIdentifierPath(table, 'exists table');
1110
-
1111
- state.whereConditions.push({
1112
- kind: 'exists',
1113
- not,
1114
- boolean,
1115
- table,
1116
- conditions: subState.whereConditions,
1117
- });
1118
- };
1119
-
1120
- const applyJoin = (
1121
- state: QueryState,
1122
- table: string,
1123
- on: JoinOnInput,
1124
- type: 'INNER' | 'LEFT'
1125
- ): void => {
1126
- assertSafeIdentifierPath(table, 'join table');
1127
- const onSql = resolveJoinOnInput(on);
1128
- state.joins.push({ table: table.trim(), on: onSql, type });
1129
- };
1130
-
1131
- const applyGroupBy = (state: QueryState, columns: string[]): void => {
1132
- for (const column of columns) {
1133
- const col = String(column).trim();
1134
- assertSafeIdentifierPath(col, 'group by column');
1135
- state.groupByColumns.push(col);
1136
- }
1137
- };
1138
-
1139
- const applyLatestPer = (
1140
- state: QueryState,
1141
- partitionBy: string | string[],
1142
- options: LatestPerOptions
1143
- ): void => {
1144
- const partitions = (Array.isArray(partitionBy) ? partitionBy : [partitionBy])
1145
- .map((column) => String(column).trim())
1146
- .filter((column) => column.length > 0);
1147
-
1148
- if (partitions.length === 0) {
1149
- throw ErrorFactory.createDatabaseError('latestPer requires at least one partition column');
1150
- }
1151
- for (const column of partitions) {
1152
- assertSafeIdentifierPath(column, 'window partition column');
1153
- }
1154
-
1155
- if (!Array.isArray(options.orderBy) || options.orderBy.length === 0) {
1156
- throw ErrorFactory.createDatabaseError('latestPer requires at least one orderBy column');
1157
- }
1158
-
1159
- const orderBy = options.orderBy.map(([column, direction]) => {
1160
- const col = String(column).trim();
1161
- assertSafeIdentifierPath(col, 'window order by column');
1162
- return { column: col, direction: normalizeOrderDirection(direction) };
1163
- });
1164
-
1165
- const aliasRaw =
1166
- typeof options.alias === 'string' && options.alias.trim().length > 0
1167
- ? options.alias.trim()
1168
- : 'rn';
1169
- assertSafeIdentifier(aliasRaw, 'window alias');
1170
-
1171
- state.latestPer = {
1172
- partitionBy: partitions,
1173
- orderBy,
1174
- alias: aliasRaw,
1175
- };
1176
- };
1177
-
1178
- const applyWhereGroup = (
1179
- state: QueryState,
1180
- callback: (builder: IQueryBuilder) => unknown,
1181
- boolean: 'AND' | 'OR'
1182
- ): void => {
1183
- const groupState = createPredicateState(state.dialect);
1184
- const groupBuilder = createBuilder(groupState);
1185
- callback(groupBuilder);
1186
-
1187
- if (groupState.whereConditions.length === 0) {
1188
- return;
1189
- }
1190
-
1191
- state.whereConditions.push({
1192
- kind: 'group',
1193
- boolean,
1194
- conditions: groupState.whereConditions,
1195
- });
1196
- };
1197
-
1198
- const flattenWherePredicates = (conditions: WherePredicate[]): WhereClause[] => {
1199
- const flattened: WhereClause[] = [];
1200
-
1201
- for (const condition of conditions) {
1202
- if (isWhereGroupClause(condition)) {
1203
- flattened.push(...flattenWherePredicates(condition.conditions));
1204
- continue;
1205
- }
1206
- // Exists / column-compare predicates are not simple column clauses.
1207
- if (isWhereExistsClause(condition) || isWhereColumnCompareClause(condition)) {
1208
- continue;
1209
- }
1210
- flattened.push(condition);
1211
- }
1212
-
1213
- return flattened;
1214
- };
1215
-
1216
- const applyOrderByClause = (state: QueryState, column: string, direction?: string): void => {
1217
- const col = String(column).trim();
1218
- if (!isNumericLiteral(col)) {
1219
- assertSafeIdentifierPath(col, 'order by column');
1220
- }
1221
- const dir = normalizeOrderDirection(direction);
1222
- state.orderByClauses.push({ column: col, direction: dir });
1223
- };
1224
-
1225
- const applyLimit = (state: QueryState, count: number): void => {
1226
- assertSafeLimitOffset(count, 'LIMIT');
1227
- state.limitValue = count;
1228
- };
1229
-
1230
- const applyOffset = (state: QueryState, count: number): void => {
1231
- assertSafeLimitOffset(count, 'OFFSET');
1232
- state.offsetValue = count;
1233
- };
1234
-
1235
- /**
1236
- * Execute query and return first result
1237
- */
1238
- async function executeFirst<T>(builder: IQueryBuilder, db?: IDatabase): Promise<T | null> {
1239
- if (!db) throw ErrorFactory.createDatabaseError('Database instance not provided to QueryBuilder');
1240
- builder.limit(1);
1241
- const results = (await db.query(
1242
- builder.toSQL(),
1243
- builder.getParameters(),
1244
- builder.isReadOperation()
1245
- )) as T[];
1246
- return results[0] ?? null;
1247
- }
1248
-
1249
- async function executeFirstOrFail<T>(
1250
- builder: IQueryBuilder,
1251
- db: IDatabase | undefined,
1252
- message?: string
1253
- ): Promise<T> {
1254
- const result = await executeFirst<T>(builder, db);
1255
- if (result === null) throw ErrorFactory.createNotFoundError(message ?? 'Resource not found');
1256
- return result;
1257
- }
1258
-
1259
- const compileInsert = (
1260
- tableName: string,
1261
- values: Record<string, unknown> | Array<Record<string, unknown>>,
1262
- dialect?: string
1263
- ): { sql: string; parameters: unknown[] } => {
1264
- const items = Array.isArray(values) ? values : [values];
1265
- if (items.length === 0) {
1266
- throw ErrorFactory.createDatabaseError('INSERT requires at least one column');
1267
- }
1268
-
1269
- // Use keys from the first item
1270
- const keys = Object.keys(items[0] ?? {});
1271
- if (keys.length === 0) {
1272
- throw ErrorFactory.createDatabaseError('INSERT requires at least one column');
1273
- }
1274
-
1275
- assertSafeIdentifierPath(tableName, 'table name');
1276
- for (const key of keys) assertSafeIdentifier(key, 'insert column');
1277
-
1278
- const colsSql = keys.map((k) => escapeIdentifier(k, dialect)).join(', ');
1279
-
1280
- // Single row or multi-row placeholders
1281
- const rowPlaceholders = `(${keys.map(() => '?').join(', ')})`;
1282
- const placeholders = items.map(() => rowPlaceholders).join(', ');
1283
-
1284
- const parameters: unknown[] = [];
1285
- for (const item of items) {
1286
- for (const key of keys) {
1287
- parameters.push(item[key]);
1288
- }
1289
- }
1290
-
1291
- const baseSql = `INSERT INTO ${escapeIdentifier(
1292
- tableName,
1293
- dialect
1294
- )} (${colsSql}) VALUES ${placeholders}`;
1295
- const wantsReturning = dialect === 'postgresql' && items.length === 1;
1296
- const sql = wantsReturning ? `${baseSql} RETURNING id` : baseSql;
1297
- return { sql, parameters };
1298
- };
1299
-
1300
- const compileUpdate = (
1301
- tableName: string,
1302
- values: Record<string, unknown>,
1303
- conditions: WherePredicate[],
1304
- dialect?: string
1305
- ): { sql: string; parameters: unknown[] } => {
1306
- const keys = Object.keys(values);
1307
- if (keys.length === 0) {
1308
- throw ErrorFactory.createDatabaseError('UPDATE requires at least one column');
1309
- }
1310
- if (conditions.length === 0) {
1311
- throw ErrorFactory.createDatabaseError('UPDATE requires at least one WHERE clause');
1312
- }
1313
-
1314
- assertSafeIdentifierPath(tableName, 'table name');
1315
- for (const key of keys) assertSafeIdentifier(key, 'update column');
1316
-
1317
- const setParts: string[] = [];
1318
- const setParams: unknown[] = [];
1319
- for (const key of keys) {
1320
- const value = values[key];
1321
- if (isRawValue(value)) {
1322
- const rawSql = assertSafeRawExpression(value.__raw);
1323
- setParts.push(`${escapeIdentifier(key, dialect)} = ${rawSql}`);
1324
- } else {
1325
- setParts.push(`${escapeIdentifier(key, dialect)} = ?`);
1326
- setParams.push(value);
1327
- }
1328
- }
1329
- const setSql = setParts.join(', ');
1330
- const where = compileWhere(conditions, dialect);
1331
- const sql = `UPDATE ${escapeIdentifier(tableName, dialect)} SET ${setSql}${where.sql}`;
1332
- return { sql, parameters: [...setParams, ...where.parameters] };
1333
- };
1334
-
1335
- const compileDelete = (
1336
- tableName: string,
1337
- conditions: WherePredicate[],
1338
- dialect?: string
1339
- ): { sql: string; parameters: unknown[] } => {
1340
- if (conditions.length === 0) {
1341
- throw ErrorFactory.createDatabaseError('DELETE requires at least one WHERE clause');
1342
- }
1343
- assertSafeIdentifierPath(tableName, 'table name');
1344
- const where = compileWhere(conditions, dialect);
1345
- const sql = `DELETE FROM ${escapeIdentifier(tableName, dialect)}${where.sql}`;
1346
- return { sql, parameters: where.parameters };
1347
- };
1348
-
1349
- /**
1350
- * Execute query and return all results
1351
- */
1352
- async function executeGet<T>(builder: IQueryBuilder, db?: IDatabase): Promise<T[]> {
1353
- if (!db) throw ErrorFactory.createDatabaseError('Database instance not provided to QueryBuilder');
1354
- return (await db.query(
1355
- builder.toSQL(),
1356
- builder.getParameters(),
1357
- builder.isReadOperation()
1358
- )) as T[];
1359
- }
1360
-
1361
- const normalizePaginationValue = (value: number, label: string): number => {
1362
- const n = Math.trunc(value);
1363
- if (!Number.isFinite(n) || n <= 0) {
1364
- throw ErrorFactory.createValidationError(`${label} must be a positive integer`);
1365
- }
1366
- return n;
1367
- };
1368
-
1369
- async function executePaginate<T>(
1370
- builder: IQueryBuilder,
1371
- state: QueryState,
1372
- db: IDatabase | undefined,
1373
- page: number,
1374
- perPage: number,
1375
- options?: PaginationOptions
1376
- ): Promise<Paginator<T>> {
1377
- if (!db) throw ErrorFactory.createDatabaseError('Database instance not provided to QueryBuilder');
1378
-
1379
- const safePage = normalizePaginationValue(page, 'page');
1380
- const safePerPage = normalizePaginationValue(perPage, 'perPage');
1381
-
1382
- const countQuery = buildCountQuery(state, {
1383
- countDistinct: options?.countDistinct,
1384
- });
1385
- const countRows = (await db.query(countQuery.sql, countQuery.parameters, true)) as Array<
1386
- Record<string, unknown>
1387
- >;
1388
-
1389
- const rawTotal = countRows.at(0)?.['total'];
1390
- const total = typeof rawTotal === 'bigint' ? Number(rawTotal) : Number(rawTotal ?? 0);
1391
- const sanitizedTotal = Number.isFinite(total) && total > 0 ? total : 0;
1392
-
1393
- const offset = (safePage - 1) * safePerPage;
1394
- const prevLimit = state.limitValue;
1395
- const prevOffset = state.offsetValue;
1396
- state.limitValue = safePerPage;
1397
- state.offsetValue = offset;
1398
-
1399
- const items = await executeGet<T>(builder, db);
1400
-
1401
- state.limitValue = prevLimit;
1402
- state.offsetValue = prevOffset;
1403
-
1404
- return createPaginator({
1405
- items,
1406
- total: sanitizedTotal,
1407
- perPage: safePerPage,
1408
- currentPage: safePage,
1409
- baseUrl: options?.baseUrl,
1410
- query: options?.query,
1411
- });
1412
- }
1413
-
1414
- /**
1415
- * Create the builder object
1416
- */
1417
- function attachSelectMethods(builder: IQueryBuilder, state: QueryState): void {
1418
- const clearDefaultStar = (): void => {
1419
- if (state.selectColumns.length === 1 && state.selectColumns[0] === '*')
1420
- state.selectColumns = [];
1421
- };
1422
-
1423
- builder.select = (...columns) => {
1424
- state.selectColumns = columns.length > 0 ? columns : ['*'];
1425
- return builder;
1426
- };
1427
- builder.selectAs = (column, alias) => {
1428
- const col = String(column).trim();
1429
- const a = String(alias).trim();
1430
- assertSafeIdentifierPath(col, 'select column');
1431
- assertSafeIdentifier(a, 'select alias');
1432
- clearDefaultStar();
1433
- state.selectColumns.push(`${col} AS ${a}`);
1434
- return builder;
1435
- };
1436
- builder.max = (column, alias = 'max') => {
1437
- const col = String(column).trim();
1438
- const a = String(alias).trim();
1439
- assertSafeIdentifierPath(col, 'aggregate argument');
1440
- assertSafeIdentifier(a, 'aggregate alias');
1441
- clearDefaultStar();
1442
- state.selectColumns.push(`MAX(${col}) AS ${a}`);
1443
- return builder;
1444
- };
1445
- }
1446
-
1447
- function attachWhereMethods(builder: IQueryBuilder, state: QueryState): void {
1448
- builder.where = (column, operator, value) => {
1449
- applyWhereCondition(state, column, operator, value, 'AND');
1450
- return builder;
1451
- };
1452
- builder.andWhere = (column, operator, value) => builder.where(column, operator, value);
1453
- builder.orWhere = (column, operator, value) => {
1454
- applyWhereCondition(state, column, operator, value, 'OR');
1455
- return builder;
1456
- };
1457
- builder.whereGroup = (callback) => {
1458
- applyWhereGroup(state, callback, 'AND');
1459
- return builder;
1460
- };
1461
- builder.orWhereGroup = (callback) => {
1462
- applyWhereGroup(state, callback, 'OR');
1463
- return builder;
1464
- };
1465
- builder.whereNormalized = (column, value, options) => {
1466
- applyWhereCondition(state, column, '=', value, 'AND', {
1467
- expression: 'normalized-text',
1468
- normalization: options,
1469
- });
1470
- return builder;
1471
- };
1472
- builder.orWhereNormalized = (column, value, options) => {
1473
- applyWhereCondition(state, column, '=', value, 'OR', {
1474
- expression: 'normalized-text',
1475
- normalization: options,
1476
- });
1477
- return builder;
1478
- };
1479
- builder.whereNull = (column) => builder.where(column, 'IS', null);
1480
- builder.whereNotNull = (column) => builder.where(column, 'IS NOT', null);
1481
- builder.whereIn = (column, values) => {
1482
- builder.where(column, 'IN', values);
1483
- return builder;
1484
- };
1485
- builder.whereNotIn = (column, values) => {
1486
- builder.where(column, 'NOT IN', values);
1487
- return builder;
1488
- };
1489
- builder.whereMatch = (column, query) => {
1490
- builder.where(column, 'MATCH', query);
1491
- return builder;
1492
- };
1493
- builder.whereNotMatch = (column, query) => {
1494
- builder.where(column, 'NOT MATCH', query);
1495
- return builder;
1496
- };
1497
- builder.whereColumn = (left, operator, right) => {
1498
- applyWhereColumnCompare(state, left, operator, right, 'AND');
1499
- return builder;
1500
- };
1501
- builder.whereExists = (callback) => {
1502
- applyWhereExists(state, callback, false, 'AND');
1503
- return builder;
1504
- };
1505
- builder.whereNotExists = (callback) => {
1506
- applyWhereExists(state, callback, true, 'AND');
1507
- return builder;
1508
- };
1509
- builder.from = (table) => {
1510
- const name = String(table).trim();
1511
- assertSafeIdentifierPath(name, 'table name');
1512
- state.tableName = name;
1513
- return builder;
1514
- };
1515
- }
1516
-
1517
- function attachSoftDeleteMethods(builder: IQueryBuilder, state: QueryState): void {
1518
- builder.withTrashed = () => {
1519
- if (state.softDelete === undefined) {
1520
- state.softDelete = { column: 'deleted_at', mode: 'include' };
1521
- } else {
1522
- state.softDelete.mode = 'include';
1523
- }
1524
- return builder;
1525
- };
1526
- builder.onlyTrashed = () => {
1527
- if (state.softDelete === undefined) {
1528
- state.softDelete = { column: 'deleted_at', mode: 'only' };
1529
- } else {
1530
- state.softDelete.mode = 'only';
1531
- }
1532
- return builder;
1533
- };
1534
- builder.withoutTrashed = () => {
1535
- if (state.softDelete === undefined) {
1536
- state.softDelete = { column: 'deleted_at', mode: 'exclude' };
1537
- } else {
1538
- state.softDelete.mode = 'exclude';
1539
- }
1540
- return builder;
1541
- };
1542
- }
1543
-
1544
- function attachJoinOrderPagingMethods(builder: IQueryBuilder, state: QueryState): void {
1545
- builder.join = (tableJoin, on) => {
1546
- applyJoin(state, tableJoin, on, 'INNER');
1547
- return builder;
1548
- };
1549
- builder.leftJoin = (tableJoin, on) => {
1550
- applyJoin(state, tableJoin, on, 'LEFT');
1551
- return builder;
1552
- };
1553
- builder.groupBy = (...columns) => {
1554
- applyGroupBy(state, columns);
1555
- return builder;
1556
- };
1557
- builder.latestPer = (partitionBy, options) => {
1558
- applyLatestPer(state, partitionBy, options);
1559
- return builder;
1560
- };
1561
- builder.orderBy = (column, direction = 'ASC') => {
1562
- applyOrderByClause(state, column, direction);
1563
- return builder;
1564
- };
1565
- builder.inRandomOrder = () => {
1566
- state.randomOrder = true;
1567
- return builder;
1568
- };
1569
- builder.limit = (count) => {
1570
- applyLimit(state, count);
1571
- return builder;
1572
- };
1573
- builder.offset = (count) => {
1574
- applyOffset(state, count);
1575
- return builder;
1576
- };
1577
- }
1578
-
1579
- function attachIntrospectionMethods(builder: IQueryBuilder, state: QueryState): void {
1580
- builder.getWhereClauses = () => flattenWherePredicates(state.whereConditions);
1581
- builder.getSelectColumns = () => state.selectColumns;
1582
- builder.getTable = () => state.tableName;
1583
- builder.getLimit = () => state.limitValue;
1584
- builder.getOffset = () => state.offsetValue;
1585
- builder.getOrderBy = () => state.orderByClauses.at(-1);
1586
- builder.getJoins = () => state.joins;
1587
- builder.isReadOperation = () => true;
1588
- builder.toSQL = () => buildSelectQuery(state).sql;
1589
- builder.getParameters = () => buildSelectQuery(state).parameters;
1590
- // Internal method for eager loading distribution
1591
- (builder as unknown as { getEagerLoads: () => string[] }).getEagerLoads = () => state.eagerLoads;
1592
- (
1593
- builder as unknown as { getEagerLoadConstraints: () => EagerLoadConstraints }
1594
- ).getEagerLoadConstraints = () => state.eagerLoadConstraints;
1595
- (builder as unknown as { getEagerLoadCounts: () => string[] }).getEagerLoadCounts = () =>
1596
- state.eagerLoadCounts;
1597
- }
1598
-
1599
- function attachReadExecutionMethods(
1600
- builder: IQueryBuilder,
1601
- state: QueryState,
1602
- db?: IDatabase
1603
- ): void {
1604
- builder.first = async <T>() => executeFirst<T>(builder, db);
1605
- builder.firstOrFail = async <T>(message?: string) => executeFirstOrFail<T>(builder, db, message);
1606
- builder.get = async <T>() => executeGet<T>(builder, db);
1607
- builder.paginate = async <T>(
1608
- page: number,
1609
- perPage: number,
1610
- options: PaginationOptions | undefined
1611
- ) => executePaginate<T>(builder, state, db, page, perPage, options);
1612
- // raw just returns results without any hydration logic in callers
1613
- builder.raw = async <T>() => executeGet<T>(builder, db);
1614
- }
1615
-
1616
- const isNonEmptyString = (value: unknown): value is string =>
1617
- typeof value === 'string' && value.length > 0;
1618
-
1619
- const isKeyValue = (value: unknown): value is string | number =>
1620
- typeof value === 'string' || typeof value === 'number';
1621
-
1622
- const getModelIds = (models: IModel[], key: string): Array<string | number> =>
1623
- models.map((model) => model.getAttribute(key)).filter((element) => isKeyValue(element));
1624
-
1625
- const normalizeCountValue = (value: number | bigint | null | undefined): number => {
1626
- if (typeof value === 'bigint') return Number(value);
1627
- if (typeof value === 'number') return value;
1628
- return Number(value ?? 0);
1629
- };
1630
-
1631
- const buildCountSql = (
1632
- tableName: string,
1633
- foreignKey: string,
1634
- ids: Array<string | number>,
1635
- dialect: ReturnType<IDatabase['getType']> | undefined
1636
- ): string =>
1637
- `SELECT ${escapeIdentifier(foreignKey, dialect)} as key, COUNT(*) as count FROM ${escapeIdentifier(
1638
- tableName,
1639
- dialect
1640
- )} WHERE ${escapeIdentifier(foreignKey, dialect)} IN (${ids
1641
- .map(() => '?')
1642
- .join(',')}) GROUP BY ${escapeIdentifier(foreignKey, dialect)}`;
1643
-
1644
- const queryCountMap = async (
1645
- db: IDatabase,
1646
- sql: string,
1647
- params: unknown[]
1648
- ): Promise<Map<string | number, number>> => {
1649
- const results = (await db.query(sql, params, true)) as Array<{
1650
- key: string | number;
1651
- count: number | bigint | null | undefined;
1652
- }>;
1653
-
1654
- return new Map<string | number, number>(
1655
- results.map((row) => [row.key, normalizeCountValue(row.count)])
1656
- );
1657
- };
1658
-
1659
- const setRelationCounts = (
1660
- models: IModel[],
1661
- relation: string,
1662
- localKey: string,
1663
- countMap: Map<string | number, number>
1664
- ): void => {
1665
- for (const model of models) {
1666
- const modelId = model.getAttribute(localKey);
1667
- const count = isKeyValue(modelId) ? (countMap.get(modelId) ?? 0) : 0;
1668
- model.setAttribute(`${relation}_count`, count);
1669
- }
1670
- };
1671
-
1672
- const applyConstraint = (query: IQueryBuilder, constraint?: EagerLoadConstraint): IQueryBuilder => {
1673
- if (typeof constraint === 'function') {
1674
- return constraint(query) ?? query;
1675
- }
1676
- return query;
1677
- };
1678
-
1679
- /**
1680
- * Load relationship counts for a collection of models
1681
- */
1682
- async function loadCounts(models: IModel[], relation: string, db?: IDatabase): Promise<void> {
1683
- if (models.length === 0 || !db) return;
1684
-
1685
- const rel = getRelationFromModels(models, relation);
1686
- if (rel === null || rel === undefined) return;
1687
-
1688
- const relType = rel.type;
1689
-
1690
- // Only hasMany and belongsToMany support counts
1691
- if (relType !== 'hasMany' && relType !== 'belongsToMany') {
1692
- return;
1693
- }
1694
-
1695
- const foreignKey = rel.foreignKey;
1696
- const localKey = rel.localKey;
1697
-
1698
- const ids = getModelIds(models, localKey);
1699
-
1700
- if (ids.length === 0) return;
1701
-
1702
- const dialect = typeof db.getType === 'function' ? db.getType() : undefined;
1703
-
1704
- if (relType === 'hasMany') {
1705
- const relatedModel = rel.related as unknown as { query(): IQueryBuilder };
1706
- if (typeof relatedModel?.query !== 'function') return;
1707
-
1708
- const tempQuery = relatedModel.query();
1709
- const relatedTable = tempQuery.getTable();
1710
-
1711
- const countMap = await queryCountMap(
1712
- db,
1713
- buildCountSql(relatedTable, foreignKey, ids, dialect),
1714
- ids
1715
- );
1716
- setRelationCounts(models, relation, localKey, countMap);
1717
- return;
1718
- }
1719
-
1720
- // belongsToMany
1721
- const throughTable = rel.throughTable;
1722
- const relatedKey = rel.relatedKey;
1723
- if (!isNonEmptyString(throughTable) || !isNonEmptyString(relatedKey)) return;
1724
-
1725
- const countMap = await queryCountMap(
1726
- db,
1727
- buildCountSql(throughTable, foreignKey, ids, dialect),
1728
- ids
1729
- );
1730
- setRelationCounts(models, relation, localKey, countMap);
1731
- }
1732
-
1733
- const getRelationFromModels = (models: IModel[], relation: string): IRelationship | null => {
1734
- const firstModel = models[0] as unknown as Record<string, () => IRelationship>;
1735
- const relationFactory = firstModel?.[relation];
1736
- if (typeof relationFactory !== 'function') return null;
1737
- const rel = relationFactory();
1738
- return rel ?? null;
1739
- };
1740
-
1741
- const assignMorphToGroup = (
1742
- modelsByType: Map<string, IModel[]>,
1743
- type: string,
1744
- model: IModel
1745
- ): void => {
1746
- const existing = modelsByType.get(type);
1747
- if (existing) {
1748
- existing.push(model);
1749
- } else {
1750
- modelsByType.set(type, [model]);
1751
- }
1752
- };
1753
-
1754
- const getModelTable = (model: IModel): string | null => {
1755
- const tableGetter = (model as unknown as { getTable?: () => string }).getTable;
1756
- if (typeof tableGetter !== 'function') return null;
1757
- const table = tableGetter();
1758
- return isNonEmptyString(table) ? table : null;
1759
- };
1760
-
1761
- const buildSingleMap = (results: IModel[], key: string): Map<string | number, IModel> => {
1762
- const map = new Map<string | number, IModel>();
1763
- for (const result of results) {
1764
- const resultId = result.getAttribute(key);
1765
- if (isKeyValue(resultId)) {
1766
- map.set(resultId, result);
1767
- }
1768
- }
1769
- return map;
1770
- };
1771
-
1772
- const buildBucketMap = (results: IModel[], key: string): Map<string | number, IModel[]> => {
1773
- const buckets = new Map<string | number, IModel[]>();
1774
- for (const result of results) {
1775
- const resultId = result.getAttribute(key);
1776
- if (isKeyValue(resultId)) {
1777
- const existing = buckets.get(resultId) ?? [];
1778
- existing.push(result);
1779
- buckets.set(resultId, existing);
1780
- }
1781
- }
1782
- return buckets;
1783
- };
1784
-
1785
- const setRelationsFromBuckets = (
1786
- models: IModel[],
1787
- relation: string,
1788
- localKey: string,
1789
- buckets: Map<string | number, IModel[]>,
1790
- isMany: boolean
1791
- ): void => {
1792
- for (const model of models) {
1793
- const modelId = model.getAttribute(localKey);
1794
- if (!isKeyValue(modelId)) {
1795
- model.setRelation(relation, isMany ? [] : null);
1796
- continue;
1797
- }
1798
-
1799
- const bucket = buckets.get(modelId) ?? [];
1800
- if (isMany) {
1801
- model.setRelation(relation, bucket);
1802
- } else {
1803
- model.setRelation(relation, bucket[0] ?? null);
1804
- }
1805
- }
1806
- };
1807
-
1808
- const setBelongsToRelations = (
1809
- models: IModel[],
1810
- relation: string,
1811
- foreignKey: string,
1812
- relatedMap: Map<string | number, IModel>
1813
- ): void => {
1814
- for (const model of models) {
1815
- const relatedId = model.getAttribute(foreignKey);
1816
- if (!isKeyValue(relatedId)) {
1817
- model.setRelation(relation, null);
1818
- continue;
1819
- }
1820
-
1821
- model.setRelation(relation, relatedMap.get(relatedId) ?? null);
1822
- }
1823
- };
1824
-
1825
- const buildParentToThroughIds = (
1826
- throughResults: IModel[],
1827
- throughForeignKey: string,
1828
- secondLocalKey: string
1829
- ): Map<string | number, Array<string | number>> => {
1830
- const parentToThroughIds = new Map<string | number, Array<string | number>>();
1831
- for (const throughItem of throughResults) {
1832
- const parentId = throughItem.getAttribute(throughForeignKey);
1833
- const throughId = throughItem.getAttribute(secondLocalKey);
1834
- if (isKeyValue(parentId) && isKeyValue(throughId)) {
1835
- const existing = parentToThroughIds.get(parentId) ?? [];
1836
- existing.push(throughId);
1837
- parentToThroughIds.set(parentId, existing);
1838
- }
1839
- }
1840
- return parentToThroughIds;
1841
- };
1842
-
1843
- const collectThroughRelated = (
1844
- throughIds: Array<string | number>,
1845
- relatedBuckets: Map<string | number, IModel[]>
1846
- ): IModel[] => {
1847
- const aggregated: IModel[] = [];
1848
- for (const throughId of throughIds) {
1849
- const bucket = relatedBuckets.get(throughId);
1850
- if (bucket !== undefined) {
1851
- aggregated.push(...bucket);
1852
- }
1853
- }
1854
- return aggregated;
1855
- };
1856
-
1857
- const setThroughRelations = (
1858
- models: IModel[],
1859
- relation: string,
1860
- localKey: string,
1861
- parentToThroughIds: Map<string | number, Array<string | number>>,
1862
- relatedBuckets: Map<string | number, IModel[]>,
1863
- isMany: boolean
1864
- ): void => {
1865
- for (const model of models) {
1866
- const modelId = model.getAttribute(localKey);
1867
- if (!isKeyValue(modelId)) {
1868
- model.setRelation(relation, isMany ? [] : null);
1869
- continue;
1870
- }
1871
-
1872
- const throughIds = parentToThroughIds.get(modelId) ?? [];
1873
- if (throughIds.length === 0) {
1874
- model.setRelation(relation, isMany ? [] : null);
1875
- continue;
1876
- }
1877
-
1878
- const aggregated = collectThroughRelated(throughIds, relatedBuckets);
1879
- if (isMany) {
1880
- model.setRelation(relation, aggregated);
1881
- } else {
1882
- model.setRelation(relation, aggregated[0] ?? null);
1883
- }
1884
- }
1885
- };
1886
-
1887
- const buildMorphToGroups = (models: IModel[], morphType: string): Map<string, IModel[]> => {
1888
- const modelsByType = new Map<string, IModel[]>();
1889
- for (const model of models) {
1890
- const type = model.getAttribute(morphType);
1891
- if (isNonEmptyString(type)) {
1892
- assignMorphToGroup(modelsByType, type, model);
1893
- }
1894
- }
1895
- return modelsByType;
1896
- };
1897
-
1898
- const setMorphToRelations = (
1899
- models: IModel[],
1900
- relation: string,
1901
- morphId: string,
1902
- relatedMap: Map<string | number, IModel>
1903
- ): void => {
1904
- for (const model of models) {
1905
- const modelId = model.getAttribute(morphId);
1906
- if (isKeyValue(modelId)) {
1907
- model.setRelation(relation, relatedMap.get(modelId) ?? null);
1908
- } else {
1909
- model.setRelation(relation, null);
1910
- }
1911
- }
1912
- };
1913
-
1914
- const loadMorphToGroup = async (
1915
- relation: string,
1916
- morphId: string,
1917
- modelsOfType: IModel[],
1918
- relatedModel: { query: () => IQueryBuilder },
1919
- constraint?: EagerLoadConstraint
1920
- ): Promise<void> => {
1921
- const ids = getModelIds(modelsOfType, morphId);
1922
- if (ids.length === 0) return;
1923
-
1924
- const relatedQuery = applyConstraint(relatedModel.query(), constraint);
1925
-
1926
- const relatedResults = await relatedQuery.whereIn('id', ids).get<IModel>();
1927
- const relatedMap = buildSingleMap(relatedResults, 'id');
1928
- setMorphToRelations(modelsOfType, relation, morphId, relatedMap);
1929
- };
1930
-
1931
- const loadMorphToRelation = async (
1932
- models: IModel[],
1933
- relation: string,
1934
- rel: IRelationship,
1935
- constraint?: EagerLoadConstraint
1936
- ): Promise<boolean> => {
1937
- if (rel.type !== 'morphTo') return false;
1938
-
1939
- const morphType = rel.morphType;
1940
- const morphId = rel.morphId;
1941
- const morphMap = rel.morphMap;
1942
-
1943
- if (
1944
- !isNonEmptyString(morphType) ||
1945
- !isNonEmptyString(morphId) ||
1946
- morphMap === null ||
1947
- morphMap === undefined
1948
- ) {
1949
- return true;
1950
- }
1951
-
1952
- const modelsByType = buildMorphToGroups(models, morphType);
1953
-
1954
- const tasks = [...modelsByType.entries()].map(async ([type, modelsOfType]) => {
1955
- const relatedModel = morphMap[type] as unknown as { query(): IQueryBuilder } | undefined;
1956
- if (relatedModel === undefined || typeof relatedModel.query !== 'function') {
1957
- return Promise.resolve(); //NOSONAR
1958
- }
1959
-
1960
- return loadMorphToGroup(relation, morphId, modelsOfType, relatedModel, constraint);
1961
- });
1962
-
1963
- await Promise.all(tasks);
1964
-
1965
- return true;
1966
- };
1967
-
1968
- const prepareMorphOneMany = (
1969
- models: IModel[],
1970
- rel: IRelationship,
1971
- localKey: string | undefined,
1972
- morphId: string | undefined,
1973
- morphType: string | undefined
1974
- ): {
1975
- proceed: boolean;
1976
- ids?: Array<string | number>;
1977
- relatedModel?: { query?: () => IQueryBuilder };
1978
- tableName?: string;
1979
- } => {
1980
- if (!isNonEmptyString(morphType) || !isNonEmptyString(morphId) || !isNonEmptyString(localKey)) {
1981
- return { proceed: false };
1982
- }
1983
-
1984
- const ids = getModelIds(models, localKey);
1985
- if (ids.length === 0) return { proceed: false };
1986
-
1987
- const relatedModel = rel.related as unknown as { query?: () => IQueryBuilder };
1988
- if (typeof relatedModel.query !== 'function') return { proceed: false };
1989
-
1990
- const tableName = getModelTable(models[0]);
1991
- if (tableName === null) return { proceed: false };
1992
-
1993
- return { proceed: true, ids, relatedModel, tableName };
1994
- };
1995
-
1996
- const loadMorphOneManyRelation = async (
1997
- models: IModel[],
1998
- relation: string,
1999
- rel: IRelationship,
2000
- constraint?: EagerLoadConstraint
2001
- ): Promise<boolean> => {
2002
- if (rel.type !== 'morphOne' && rel.type !== 'morphMany') return false;
2003
-
2004
- const morphType = rel.morphType;
2005
- const morphId = rel.morphId;
2006
- const localKey = rel.localKey;
2007
-
2008
- const prep = prepareMorphOneMany(models, rel, localKey, morphId, morphType);
2009
- if (
2010
- !prep.proceed ||
2011
- prep.ids === undefined ||
2012
- prep.relatedModel === undefined ||
2013
- prep.tableName === undefined ||
2014
- !isNonEmptyString(morphType) ||
2015
- !isNonEmptyString(morphId) ||
2016
- !isNonEmptyString(localKey)
2017
- ) {
2018
- return true;
2019
- }
2020
-
2021
- const ids = prep.ids;
2022
- const relatedModel = prep.relatedModel as { query(): IQueryBuilder };
2023
- const tableName = prep.tableName;
2024
-
2025
- const relatedQuery = applyConstraint(relatedModel.query(), constraint)
2026
- .where(morphType, '=', tableName)
2027
- .whereIn(morphId, ids);
2028
-
2029
- const relatedResults = await relatedQuery.get<IModel>();
2030
- const relatedBuckets = buildBucketMap(relatedResults, morphId);
2031
- const isMany = rel.type === 'morphMany';
2032
- setRelationsFromBuckets(models, relation, localKey, relatedBuckets, isMany);
2033
-
2034
- return true;
2035
- };
2036
-
2037
- const loadThroughRelation = async (
2038
- models: IModel[],
2039
- relation: string,
2040
- rel: IRelationship,
2041
- constraint?: EagerLoadConstraint
2042
- ): Promise<boolean> => {
2043
- if (rel.type !== 'hasOneThrough' && rel.type !== 'hasManyThrough') return false;
2044
-
2045
- const through = rel.through;
2046
- const throughForeignKey = rel.throughForeignKey;
2047
- const secondLocalKey = rel.secondLocalKey;
2048
- const foreignKey = rel.foreignKey;
2049
- const localKey = rel.localKey;
2050
-
2051
- if (
2052
- through === undefined ||
2053
- through === null ||
2054
- !isNonEmptyString(throughForeignKey) ||
2055
- !isNonEmptyString(secondLocalKey) ||
2056
- !isNonEmptyString(foreignKey) ||
2057
- !isNonEmptyString(localKey)
2058
- ) {
2059
- return true;
2060
- }
2061
-
2062
- const ids = getModelIds(models, localKey);
2063
- if (ids.length === 0) return true;
2064
-
2065
- const throughModel = through as unknown as {
2066
- query(): IQueryBuilder;
2067
- getTable?: () => string;
2068
- };
2069
- const relatedModel = rel.related as unknown as {
2070
- query(): IQueryBuilder;
2071
- getTable?: () => string;
2072
- };
2073
-
2074
- if (
2075
- typeof throughModel.getTable !== 'function' ||
2076
- typeof relatedModel.query !== 'function' ||
2077
- typeof relatedModel.getTable !== 'function'
2078
- ) {
2079
- return true;
2080
- }
2081
-
2082
- const throughTable = throughModel.getTable();
2083
- const relatedTable = relatedModel.getTable();
2084
- if (!isNonEmptyString(throughTable) || !isNonEmptyString(relatedTable)) return true;
2085
-
2086
- let relatedQuery = relatedModel.query();
2087
- relatedQuery = applyConstraint(relatedQuery, constraint);
2088
-
2089
- relatedQuery = relatedQuery
2090
- .join(throughTable, `${relatedTable}.${foreignKey} = ${throughTable}.${secondLocalKey}`)
2091
- .whereIn(`${throughTable}.${throughForeignKey}`, ids);
2092
-
2093
- const relatedResults = await relatedQuery.get<IModel>();
2094
-
2095
- const throughQuery = throughModel.query().whereIn(throughForeignKey, ids);
2096
- const throughResults = await throughQuery.get<IModel>();
2097
-
2098
- const parentToThroughIds = buildParentToThroughIds(
2099
- throughResults,
2100
- throughForeignKey,
2101
- secondLocalKey
2102
- );
2103
-
2104
- const relatedBuckets = buildBucketMap(relatedResults, foreignKey);
2105
-
2106
- const isMany = rel.type === 'hasManyThrough';
2107
- setThroughRelations(models, relation, localKey, parentToThroughIds, relatedBuckets, isMany);
2108
-
2109
- return true;
2110
- };
2111
-
2112
- const loadBelongsToRelation = async (
2113
- models: IModel[],
2114
- relation: string,
2115
- rel: IRelationship,
2116
- constraint?: EagerLoadConstraint
2117
- ): Promise<boolean> => {
2118
- if (rel.type !== 'belongsTo') return false;
2119
-
2120
- const foreignKey = rel.foreignKey;
2121
- const ownerKey = rel.localKey;
2122
- if (!isNonEmptyString(foreignKey) || !isNonEmptyString(ownerKey)) return true;
2123
-
2124
- const relatedModel = rel.related as unknown as { query(): IQueryBuilder };
2125
- if (typeof relatedModel.query !== 'function') return true;
2126
-
2127
- const ids = getModelIds(models, foreignKey);
2128
- if (ids.length === 0) {
2129
- setBelongsToRelations(models, relation, foreignKey, new Map());
2130
- return true;
2131
- }
2132
-
2133
- const relatedQuery = applyConstraint(relatedModel.query(), constraint);
2134
- const relatedResults = await relatedQuery.whereIn(ownerKey, ids).get<IModel>();
2135
- const relatedMap = buildSingleMap(relatedResults, ownerKey);
2136
- setBelongsToRelations(models, relation, foreignKey, relatedMap);
2137
-
2138
- return true;
2139
- };
2140
-
2141
- const BELONGS_TO_MANY_PARENT_KEY_ALIAS = '__zin_belongs_to_many_parent_key';
2142
-
2143
- const resolveRelatedTableName = (relatedModel: {
2144
- query?: () => IQueryBuilder;
2145
- getTable?: () => string;
2146
- }): string | null => {
2147
- if (typeof relatedModel.getTable === 'function') {
2148
- const tableName = relatedModel.getTable();
2149
- return isNonEmptyString(tableName) ? tableName : null;
2150
- }
2151
-
2152
- if (typeof relatedModel.query !== 'function') return null;
2153
- const query = relatedModel.query();
2154
- const tableName = query.getTable();
2155
- return isNonEmptyString(tableName) ? tableName : null;
2156
- };
2157
-
2158
- const loadBelongsToManyRelation = async (
2159
- models: IModel[],
2160
- relation: string,
2161
- rel: IRelationship,
2162
- constraint?: EagerLoadConstraint
2163
- ): Promise<boolean> => {
2164
- if (rel.type !== 'belongsToMany') return false;
2165
-
2166
- const throughTable = rel.throughTable;
2167
- const foreignKey = rel.foreignKey;
2168
- const relatedKey = rel.relatedKey;
2169
- const localKey = rel.localKey;
2170
- if (
2171
- !isNonEmptyString(throughTable) ||
2172
- !isNonEmptyString(foreignKey) ||
2173
- !isNonEmptyString(relatedKey) ||
2174
- !isNonEmptyString(localKey)
2175
- ) {
2176
- return true;
2177
- }
2178
-
2179
- const relatedModel = rel.related as unknown as {
2180
- query(): IQueryBuilder;
2181
- getTable?: () => string;
2182
- };
2183
- if (typeof relatedModel.query !== 'function') return true;
2184
-
2185
- const ids = getModelIds(models, localKey);
2186
- if (ids.length === 0) {
2187
- setRelationsFromBuckets(models, relation, localKey, new Map(), true);
2188
- return true;
2189
- }
2190
-
2191
- const relatedTable = resolveRelatedTableName(relatedModel);
2192
- if (!isNonEmptyString(relatedTable)) return true;
2193
-
2194
- const relatedQuery = applyConstraint(relatedModel.query(), constraint)
2195
- .join(throughTable, `${relatedTable}.id = ${throughTable}.${relatedKey}`)
2196
- .selectAs(`${throughTable}.${foreignKey}`, BELONGS_TO_MANY_PARENT_KEY_ALIAS)
2197
- .whereIn(`${throughTable}.${foreignKey}`, ids);
2198
-
2199
- const relatedResults = await relatedQuery.get<IModel>();
2200
- const relatedBuckets = buildBucketMap(relatedResults, BELONGS_TO_MANY_PARENT_KEY_ALIAS);
2201
- setRelationsFromBuckets(models, relation, localKey, relatedBuckets, true);
2202
-
2203
- return true;
2204
- };
2205
-
2206
- const loadStandardRelation = async (
2207
- models: IModel[],
2208
- relation: string,
2209
- rel: IRelationship,
2210
- constraint?: EagerLoadConstraint
2211
- ): Promise<boolean> => {
2212
- const related = (rel as unknown as { related?: unknown }).related;
2213
- if (related === null || related === undefined) return false;
2214
-
2215
- const foreignKey = rel.foreignKey;
2216
- const localKey = rel.localKey;
2217
- if (!isNonEmptyString(foreignKey) || !isNonEmptyString(localKey)) return false;
2218
-
2219
- const ids = getModelIds(models, localKey);
2220
- if (ids.length === 0) return true;
2221
-
2222
- const relatedModel = rel.related as unknown as { query(): IQueryBuilder };
2223
- if (typeof relatedModel.query !== 'function') return false;
2224
-
2225
- const relatedQuery = applyConstraint(relatedModel.query(), constraint);
2226
- const relatedResults = await relatedQuery.whereIn(foreignKey, ids).get<IModel>();
2227
- const relatedBuckets = buildBucketMap(relatedResults, foreignKey);
2228
- const isMany = rel.type === 'hasMany' || rel.type === 'belongsToMany';
2229
- setRelationsFromBuckets(models, relation, localKey, relatedBuckets, isMany);
2230
-
2231
- return true;
2232
- };
2233
-
2234
- const loadRelation = async (
2235
- models: IModel[],
2236
- relation: string,
2237
- constraint?: EagerLoadConstraint
2238
- ): Promise<void> => {
2239
- if (models.length === 0) return;
2240
- const rel = getRelationFromModels(models, relation);
2241
- if (!rel) return;
2242
-
2243
- const type = rel.type;
2244
- if (type === 'morphTo') {
2245
- await loadMorphToRelation(models, relation, rel, constraint);
2246
- return;
2247
- }
2248
- if (type === 'morphOne' || type === 'morphMany') {
2249
- await loadMorphOneManyRelation(models, relation, rel, constraint);
2250
- return;
2251
- }
2252
- if (type === 'hasOneThrough' || type === 'hasManyThrough') {
2253
- await loadThroughRelation(models, relation, rel, constraint);
2254
- return;
2255
- }
2256
- if (type === 'belongsTo') {
2257
- await loadBelongsToRelation(models, relation, rel, constraint);
2258
- return;
2259
- }
2260
- if (type === 'belongsToMany') {
2261
- await loadBelongsToManyRelation(models, relation, rel, constraint);
2262
- return;
2263
- }
2264
- await loadStandardRelation(models, relation, rel, constraint);
2265
- };
2266
-
2267
- function attachRelationshipMethods(
2268
- builder: IQueryBuilder,
2269
- state: QueryState,
2270
- db?: IDatabase
2271
- ): void {
2272
- builder.with = (relation: string | EagerLoadConstraints) => {
2273
- if (typeof relation === 'string') {
2274
- state.eagerLoads.push(relation);
2275
- return builder;
2276
- }
2277
-
2278
- for (const [name, constraint] of Object.entries(relation)) {
2279
- if (state.eagerLoads.includes(name) === false) {
2280
- state.eagerLoads.push(name);
2281
- }
2282
- state.eagerLoadConstraints[name] = constraint;
2283
- }
2284
-
2285
- return builder;
2286
- };
2287
-
2288
- builder.withCount = (relation: string) => {
2289
- state.eagerLoadCounts.push(relation);
2290
- return builder;
2291
- };
2292
-
2293
- builder.load = async (models: IModel[], relation: string, constraint?: EagerLoadConstraint) => {
2294
- await loadRelation(models, relation, constraint);
2295
- };
2296
-
2297
- builder.loadCount = async (models: IModel[], relation: string) => {
2298
- await loadCounts(models, relation, db);
2299
- };
2300
- }
2301
-
2302
- function attachWriteMethods(builder: IQueryBuilder, state: QueryState, db?: IDatabase): void {
2303
- const ensureDb = (): IDatabase => {
2304
- if (!db)
2305
- throw ErrorFactory.createDatabaseError('Database instance not provided to QueryBuilder');
2306
- return db;
2307
- };
2308
-
2309
- builder.insert = async (values) => {
2310
- const currentDb = ensureDb();
2311
- const tableName = state.tableName.trim();
2312
- if (tableName.length === 0)
2313
- throw ErrorFactory.createDatabaseError('INSERT requires a table name');
2314
- const compiled = compileInsert(tableName, values, state.dialect);
2315
- const items = Array.isArray(values) ? values : [values];
2316
-
2317
- const result = await currentDb.execute(compiled.sql, compiled.parameters, false);
2318
-
2319
- // Return InsertResult with metadata
2320
- // Note: lastInsertId typically only available for single-row inserts in most databases
2321
- // For multi-row inserts, use the insertedRecords array
2322
- return {
2323
- id:
2324
- (result.lastInsertId as string | number | bigint) ??
2325
- (items.length === 1 ? ((items[0]?.['id'] as string | number | null) ?? null) : null),
2326
- affectedRows: result.rowCount,
2327
- insertedRecords: items,
2328
- };
2329
- };
2330
- builder.update = async (values) => {
2331
- const currentDb = ensureDb();
2332
- const tableName = state.tableName.trim();
2333
- if (tableName.length === 0)
2334
- throw ErrorFactory.createDatabaseError('UPDATE requires a table name');
2335
- const compiled = compileUpdate(tableName, values, state.whereConditions, state.dialect);
2336
- await currentDb.query(compiled.sql, compiled.parameters, false);
2337
- };
2338
- builder.delete = async () => {
2339
- const currentDb = ensureDb();
2340
- const tableName = state.tableName.trim();
2341
- if (tableName.length === 0)
2342
- throw ErrorFactory.createDatabaseError('DELETE requires a table name');
2343
- const compiled = compileDelete(tableName, state.whereConditions, state.dialect);
2344
- await currentDb.query(compiled.sql, compiled.parameters, false);
2345
- };
2346
- }
2347
-
2348
- function createBuilder(state: QueryState, db?: IDatabase): IQueryBuilder {
2349
- const builder = {} as IQueryBuilder;
2350
-
2351
- attachSelectMethods(builder, state);
2352
- attachWhereMethods(builder, state);
2353
- attachSoftDeleteMethods(builder, state);
2354
- attachJoinOrderPagingMethods(builder, state);
2355
- attachIntrospectionMethods(builder, state);
2356
- attachReadExecutionMethods(builder, state, db);
2357
- attachRelationshipMethods(builder, state, db);
2358
- attachWriteMethods(builder, state, db);
2359
-
2360
- return builder;
2361
- }
2362
-
2363
- /**
2364
- * QueryBuilder - Type-Safe Query Builder
2365
- * Sealed namespace object following Pattern 2
2366
- *
2367
- * @see FRAMEWORK_REFACTOR_FUNCTION_PATTERN.md for Pattern 2 details
2368
- */
2369
- export const QueryBuilder = Object.freeze({
2370
- /**
2371
- * Create a new query builder instance
2372
- */
2373
- create(
2374
- tableOrDb: string | IDatabase,
2375
- db?: IDatabase,
2376
- options: QueryBuilderOptions = {}
2377
- ): IQueryBuilder {
2378
- const hasTable = typeof tableOrDb === 'string';
2379
- const tableName = hasTable ? String(tableOrDb).trim() : '';
2380
- const database = hasTable ? db : tableOrDb;
2381
-
2382
- if (tableName.length > 0) {
2383
- assertSafeIdentifierPath(tableName, 'table name');
2384
- }
2385
- const state: QueryState = {
2386
- tableName,
2387
- whereConditions: [],
2388
- selectColumns: ['*'],
2389
- orderByClauses: [],
2390
- randomOrder: false,
2391
- joins: [],
2392
- groupByColumns: [],
2393
- eagerLoads: [],
2394
- eagerLoadConstraints: {},
2395
- eagerLoadCounts: [],
2396
- dialect: typeof database?.getType === 'function' ? database.getType() : undefined,
2397
- };
2398
-
2399
- if (options.softDeleteColumn !== undefined && options.softDeleteColumn.trim().length > 0) {
2400
- state.softDelete = {
2401
- column: options.softDeleteColumn.trim(),
2402
- mode: options.softDeleteMode ?? 'exclude',
2403
- };
2404
- }
2405
-
2406
- return createBuilder(state, database);
2407
- },
2408
-
2409
- /**
2410
- * Ping the database connection.
2411
- *
2412
- * This is intentionally a tiny, dependency-free check that can be reused by
2413
- * health/readiness endpoints without embedding SQL in route handlers.
2414
- */
2415
- async ping(db: IDatabase): Promise<void> {
2416
- // Use the QueryBuilder itself to avoid embedding raw SQL at call sites.
2417
- await QueryBuilder.create('', db).select('1').get();
2418
- },
2419
- });