@zintrust/core 0.1.40 → 0.1.42

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 (590) hide show
  1. package/bin/zintrust-main.d.ts.map +1 -1
  2. package/bin/zintrust-main.js +22 -1
  3. package/package.json +24 -4
  4. package/public/error-pages/404.html +2 -2
  5. package/src/auth/Auth.js +1 -1
  6. package/src/boot/Application.d.ts +1 -16
  7. package/src/boot/Application.d.ts.map +1 -1
  8. package/src/boot/Application.js +2 -290
  9. package/src/boot/Server.d.ts +1 -1
  10. package/src/boot/Server.d.ts.map +1 -1
  11. package/src/boot/bootstrap.js +50 -16
  12. package/src/boot/registry/registerRoute.d.ts +6 -0
  13. package/src/boot/registry/registerRoute.d.ts.map +1 -0
  14. package/src/boot/registry/registerRoute.js +96 -0
  15. package/src/boot/registry/runtime.d.ts +15 -0
  16. package/src/boot/registry/runtime.d.ts.map +1 -0
  17. package/src/boot/registry/runtime.js +364 -0
  18. package/src/boot/registry/type.d.ts +25 -0
  19. package/src/boot/registry/type.d.ts.map +1 -0
  20. package/src/boot/registry/type.js +1 -0
  21. package/src/boot/registry/worker.d.ts +6 -0
  22. package/src/boot/registry/worker.d.ts.map +1 -0
  23. package/src/boot/registry/worker.js +35 -0
  24. package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
  25. package/src/cache/drivers/KVRemoteDriver.js +14 -1
  26. package/src/cli/CLI.d.ts.map +1 -1
  27. package/src/cli/CLI.js +94 -34
  28. package/src/cli/ErrorHandler.js +1 -1
  29. package/src/cli/commands/ConfigCommand.d.ts.map +1 -1
  30. package/src/cli/commands/ConfigCommand.js +3 -5
  31. package/src/cli/commands/ContainerProxiesCommand.d.ts +5 -0
  32. package/src/cli/commands/ContainerProxiesCommand.d.ts.map +1 -0
  33. package/src/cli/commands/ContainerProxiesCommand.js +77 -0
  34. package/src/cli/commands/ContainerWorkersCommand.d.ts +5 -0
  35. package/src/cli/commands/ContainerWorkersCommand.d.ts.map +1 -0
  36. package/src/cli/commands/ContainerWorkersCommand.js +57 -0
  37. package/src/cli/commands/D1LearnCommand.d.ts +9 -0
  38. package/src/cli/commands/D1LearnCommand.d.ts.map +1 -0
  39. package/src/cli/commands/D1LearnCommand.js +143 -0
  40. package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -1
  41. package/src/cli/commands/D1MigrateCommand.js +55 -16
  42. package/src/cli/commands/DeployCommand.d.ts +16 -0
  43. package/src/cli/commands/DeployCommand.d.ts.map +1 -0
  44. package/src/cli/commands/DeployCommand.js +110 -0
  45. package/src/cli/commands/DeployContainerProxiesCommand.d.ts +5 -0
  46. package/src/cli/commands/DeployContainerProxiesCommand.d.ts.map +1 -0
  47. package/src/cli/commands/DeployContainerProxiesCommand.js +27 -0
  48. package/src/cli/commands/DeployContainerWorkersCommand.d.ts +5 -0
  49. package/src/cli/commands/DeployContainerWorkersCommand.d.ts.map +1 -0
  50. package/src/cli/commands/DeployContainerWorkersCommand.js +27 -0
  51. package/src/cli/commands/DockerComposeCommandUtils.d.ts +3 -0
  52. package/src/cli/commands/DockerComposeCommandUtils.d.ts.map +1 -0
  53. package/src/cli/commands/DockerComposeCommandUtils.js +34 -0
  54. package/src/cli/commands/DoctorArchitectureCommand.d.ts +5 -0
  55. package/src/cli/commands/DoctorArchitectureCommand.d.ts.map +1 -0
  56. package/src/cli/commands/DoctorArchitectureCommand.js +54 -0
  57. package/src/cli/commands/InitContainerCommand.d.ts +5 -0
  58. package/src/cli/commands/InitContainerCommand.d.ts.map +1 -0
  59. package/src/cli/commands/InitContainerCommand.js +231 -0
  60. package/src/cli/commands/InitEcosystemCommand.d.ts +6 -0
  61. package/src/cli/commands/InitEcosystemCommand.d.ts.map +1 -0
  62. package/src/cli/commands/InitEcosystemCommand.js +51 -0
  63. package/src/cli/commands/InitProducerCommand.d.ts +5 -0
  64. package/src/cli/commands/InitProducerCommand.d.ts.map +1 -0
  65. package/src/cli/commands/InitProducerCommand.js +47 -0
  66. package/src/cli/commands/InitProxyCommand.d.ts +5 -0
  67. package/src/cli/commands/InitProxyCommand.d.ts.map +1 -0
  68. package/src/cli/commands/InitProxyCommand.js +442 -0
  69. package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
  70. package/src/cli/commands/MigrateCommand.js +78 -36
  71. package/src/cli/commands/MigrateWorkerCommand.d.ts.map +1 -1
  72. package/src/cli/commands/MigrateWorkerCommand.js +36 -2
  73. package/src/cli/commands/MongoDBProxyCommand.d.ts +5 -0
  74. package/src/cli/commands/MongoDBProxyCommand.d.ts.map +1 -0
  75. package/src/cli/commands/MongoDBProxyCommand.js +98 -0
  76. package/src/cli/commands/MySqlProxyCommand.d.ts +6 -0
  77. package/src/cli/commands/MySqlProxyCommand.d.ts.map +1 -0
  78. package/src/cli/commands/MySqlProxyCommand.js +32 -0
  79. package/src/cli/commands/PostgresProxyCommand.d.ts +6 -0
  80. package/src/cli/commands/PostgresProxyCommand.d.ts.map +1 -0
  81. package/src/cli/commands/PostgresProxyCommand.js +32 -0
  82. package/src/cli/commands/ProxyCommand.d.ts +12 -0
  83. package/src/cli/commands/ProxyCommand.d.ts.map +1 -0
  84. package/src/cli/commands/ProxyCommand.js +80 -0
  85. package/src/cli/commands/ProxyCommandUtils.d.ts +6 -0
  86. package/src/cli/commands/ProxyCommandUtils.d.ts.map +1 -0
  87. package/src/cli/commands/ProxyCommandUtils.js +38 -0
  88. package/src/cli/commands/PutCommand.d.ts +6 -0
  89. package/src/cli/commands/PutCommand.d.ts.map +1 -0
  90. package/src/cli/commands/PutCommand.js +173 -0
  91. package/src/cli/commands/QueueRecoveryCommand.d.ts +6 -0
  92. package/src/cli/commands/QueueRecoveryCommand.d.ts.map +1 -0
  93. package/src/cli/commands/QueueRecoveryCommand.js +612 -0
  94. package/src/cli/commands/RedisProxyCommand.d.ts +6 -0
  95. package/src/cli/commands/RedisProxyCommand.d.ts.map +1 -0
  96. package/src/cli/commands/RedisProxyCommand.js +53 -0
  97. package/src/cli/commands/ScheduleListCommand.d.ts +6 -0
  98. package/src/cli/commands/ScheduleListCommand.d.ts.map +1 -0
  99. package/src/cli/commands/ScheduleListCommand.js +62 -0
  100. package/src/cli/commands/ScheduleRunCommand.d.ts +6 -0
  101. package/src/cli/commands/ScheduleRunCommand.d.ts.map +1 -0
  102. package/src/cli/commands/ScheduleRunCommand.js +32 -0
  103. package/src/cli/commands/ScheduleStartCommand.d.ts +6 -0
  104. package/src/cli/commands/ScheduleStartCommand.d.ts.map +1 -0
  105. package/src/cli/commands/ScheduleStartCommand.js +40 -0
  106. package/src/cli/commands/SecretsCommand.d.ts.map +1 -1
  107. package/src/cli/commands/SecretsCommand.js +2 -2
  108. package/src/cli/commands/SmtpProxyCommand.d.ts +6 -0
  109. package/src/cli/commands/SmtpProxyCommand.d.ts.map +1 -0
  110. package/src/cli/commands/SmtpProxyCommand.js +56 -0
  111. package/src/cli/commands/SqlProxyCommandUtils.d.ts +46 -0
  112. package/src/cli/commands/SqlProxyCommandUtils.d.ts.map +1 -0
  113. package/src/cli/commands/SqlProxyCommandUtils.js +48 -0
  114. package/src/cli/commands/SqlServerProxyCommand.d.ts +5 -0
  115. package/src/cli/commands/SqlServerProxyCommand.d.ts.map +1 -0
  116. package/src/cli/commands/SqlServerProxyCommand.js +85 -0
  117. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  118. package/src/cli/commands/StartCommand.js +132 -17
  119. package/src/cli/commands/WorkerCommands.d.ts +1 -0
  120. package/src/cli/commands/WorkerCommands.d.ts.map +1 -1
  121. package/src/cli/commands/WorkerCommands.js +140 -6
  122. package/src/cli/commands/index.d.ts +2 -0
  123. package/src/cli/commands/index.d.ts.map +1 -1
  124. package/src/cli/commands/index.js +2 -0
  125. package/src/cli/commands/runner/index.d.ts +2 -2
  126. package/src/cli/commands/runner/index.d.ts.map +1 -1
  127. package/src/cli/commands/runner/index.js +15 -4
  128. package/src/cli/commands/schedule/ScheduleCliSupport.d.ts +6 -0
  129. package/src/cli/commands/schedule/ScheduleCliSupport.d.ts.map +1 -0
  130. package/src/cli/commands/schedule/ScheduleCliSupport.js +55 -0
  131. package/src/cli/config/ConfigManager.d.ts.map +1 -1
  132. package/src/cli/config/ConfigManager.js +8 -1
  133. package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
  134. package/src/cli/d1/D1SqlMigrations.js +14 -1
  135. package/src/cli/d1/WranglerConfig.d.ts.map +1 -1
  136. package/src/cli/d1/WranglerConfig.js +34 -2
  137. package/src/cli/index.d.ts +4 -0
  138. package/src/cli/index.d.ts.map +1 -1
  139. package/src/cli/index.js +4 -0
  140. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  141. package/src/cli/scaffolding/ProjectScaffolder.js +2 -0
  142. package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -1
  143. package/src/cli/scaffolding/ServiceScaffolder.js +1 -0
  144. package/src/cli/services/VersionChecker.d.ts.map +1 -1
  145. package/src/cli/services/VersionChecker.js +5 -1
  146. package/src/cli/utils/DatabaseCliUtils.d.ts.map +1 -1
  147. package/src/cli/utils/DatabaseCliUtils.js +6 -1
  148. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
  149. package/src/cli/utils/EnvFileLoader.js +35 -15
  150. package/src/cli/workers/QueueWorkRunner.js +1 -1
  151. package/src/cli.d.ts +5 -0
  152. package/src/cli.d.ts.map +1 -0
  153. package/src/cli.js +4 -0
  154. package/src/collections/index.d.ts +2 -2
  155. package/src/collections/index.d.ts.map +1 -1
  156. package/src/collections/index.js +1 -1
  157. package/src/common/HealthRoutes.d.ts.map +1 -1
  158. package/src/common/HealthRoutes.js +50 -2
  159. package/src/common/RemoteSignedJson.d.ts +1 -0
  160. package/src/common/RemoteSignedJson.d.ts.map +1 -1
  161. package/src/common/RemoteSignedJson.js +81 -29
  162. package/src/common/index.d.ts +1 -0
  163. package/src/common/index.d.ts.map +1 -1
  164. package/src/common/index.js +12 -1
  165. package/src/common/utility.d.ts.map +1 -1
  166. package/src/common/utility.js +2 -6
  167. package/src/config/FileLogWriter.d.ts.map +1 -1
  168. package/src/config/FileLogWriter.js +21 -6
  169. package/src/config/app.d.ts +4 -0
  170. package/src/config/app.d.ts.map +1 -1
  171. package/src/config/app.js +4 -0
  172. package/src/config/cache.d.ts.map +1 -1
  173. package/src/config/cache.js +22 -2
  174. package/src/config/cloudflare.d.ts +5 -1
  175. package/src/config/cloudflare.d.ts.map +1 -1
  176. package/src/config/cloudflare.js +67 -8
  177. package/src/config/database.d.ts.map +1 -1
  178. package/src/config/database.js +48 -13
  179. package/src/config/env.d.ts +87 -2
  180. package/src/config/env.d.ts.map +1 -1
  181. package/src/config/env.js +158 -19
  182. package/src/config/index.d.ts +1 -0
  183. package/src/config/index.d.ts.map +1 -1
  184. package/src/config/mail.d.ts.map +1 -1
  185. package/src/config/mail.js +16 -10
  186. package/src/config/middleware.d.ts +5 -0
  187. package/src/config/middleware.d.ts.map +1 -1
  188. package/src/config/middleware.js +19 -1
  189. package/src/config/queue.d.ts.map +1 -1
  190. package/src/config/queue.js +70 -9
  191. package/src/config/redis.d.ts.map +1 -1
  192. package/src/config/redis.js +48 -13
  193. package/src/config/storage.d.ts.map +1 -1
  194. package/src/config/storage.js +1 -0
  195. package/src/config/type.d.ts +18 -0
  196. package/src/config/type.d.ts.map +1 -1
  197. package/src/config/workers.d.ts.map +1 -1
  198. package/src/config/workers.js +122 -16
  199. package/src/functions/cloudflare.d.ts.map +1 -1
  200. package/src/functions/cloudflare.js +55 -1
  201. package/src/health/StartupHealthChecks.js +1 -1
  202. package/src/helper/index.d.ts +225 -0
  203. package/src/helper/index.d.ts.map +1 -0
  204. package/src/helper/index.js +347 -0
  205. package/src/http/FileUpload.d.ts +3 -2
  206. package/src/http/FileUpload.d.ts.map +1 -1
  207. package/src/http/Kernel.d.ts.map +1 -1
  208. package/src/http/Kernel.js +2 -1
  209. package/src/http/error-pages/ErrorPageRenderer.d.ts +4 -0
  210. package/src/http/error-pages/ErrorPageRenderer.d.ts.map +1 -1
  211. package/src/http/error-pages/ErrorPageRenderer.js +141 -1
  212. package/src/http/middleware/BodyParsingMiddleware.d.ts.map +1 -1
  213. package/src/http/middleware/BodyParsingMiddleware.js +33 -6
  214. package/src/index.d.ts +26 -57
  215. package/src/index.d.ts.map +1 -1
  216. package/src/index.js +32 -18
  217. package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -1
  218. package/src/microservices/ServiceAuthMiddleware.js +12 -4
  219. package/src/middleware/CsrfMiddleware.d.ts.map +1 -1
  220. package/src/middleware/CsrfMiddleware.js +30 -16
  221. package/src/middleware/ErrorHandlerMiddleware.d.ts.map +1 -1
  222. package/src/middleware/ErrorHandlerMiddleware.js +2 -1
  223. package/src/migrations/MigrationDiscovery.d.ts.map +1 -1
  224. package/src/migrations/MigrationDiscovery.js +2 -1
  225. package/src/migrations/MigrationLoader.js +1 -1
  226. package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
  227. package/src/migrations/schema/SchemaCompiler.js +6 -3
  228. package/src/node-singletons/crypto.d.ts +1 -1
  229. package/src/node-singletons/crypto.d.ts.map +1 -1
  230. package/src/node-singletons/crypto.js +1 -1
  231. package/src/node-singletons/fs.d.ts +1 -1
  232. package/src/node-singletons/fs.d.ts.map +1 -1
  233. package/src/node-singletons/path.d.ts +1 -1
  234. package/src/node-singletons/path.d.ts.map +1 -1
  235. package/src/node-singletons/path.js +1 -1
  236. package/src/node-singletons/stream.d.ts +11 -0
  237. package/src/node-singletons/stream.d.ts.map +1 -0
  238. package/src/node-singletons/stream.js +8 -0
  239. package/src/observability/OpenTelemetry.d.ts +7 -0
  240. package/src/observability/OpenTelemetry.d.ts.map +1 -1
  241. package/src/observability/OpenTelemetry.js +49 -2
  242. package/src/orm/Database.d.ts +4 -0
  243. package/src/orm/Database.d.ts.map +1 -1
  244. package/src/orm/Database.js +80 -9
  245. package/src/orm/DatabaseAdapter.d.ts +1 -0
  246. package/src/orm/DatabaseAdapter.d.ts.map +1 -1
  247. package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
  248. package/src/orm/DatabaseRuntimeRegistration.js +2 -0
  249. package/src/orm/QueryBuilder.d.ts +1 -0
  250. package/src/orm/QueryBuilder.d.ts.map +1 -1
  251. package/src/orm/QueryBuilder.js +33 -3
  252. package/src/orm/SchemaCompiler.d.ts.map +1 -1
  253. package/src/orm/SchemaCompiler.js +6 -3
  254. package/src/orm/SchemaStatemenWriter.d.ts +15 -0
  255. package/src/orm/SchemaStatemenWriter.d.ts.map +1 -0
  256. package/src/orm/SchemaStatemenWriter.js +78 -0
  257. package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
  258. package/src/orm/adapters/D1Adapter.js +52 -2
  259. package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
  260. package/src/orm/adapters/D1RemoteAdapter.js +150 -89
  261. package/src/orm/adapters/MongoDBProxyAdapter.d.ts +3 -0
  262. package/src/orm/adapters/MongoDBProxyAdapter.d.ts.map +1 -0
  263. package/src/orm/adapters/MongoDBProxyAdapter.js +128 -0
  264. package/src/orm/adapters/MySQLProxyAdapter.d.ts +11 -0
  265. package/src/orm/adapters/MySQLProxyAdapter.d.ts.map +1 -0
  266. package/src/orm/adapters/MySQLProxyAdapter.js +162 -0
  267. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts +11 -0
  268. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts.map +1 -0
  269. package/src/orm/adapters/PostgreSQLProxyAdapter.js +163 -0
  270. package/src/orm/adapters/ProxyCache.d.ts +9 -0
  271. package/src/orm/adapters/ProxyCache.d.ts.map +1 -0
  272. package/src/orm/adapters/ProxyCache.js +24 -0
  273. package/src/orm/adapters/ProxySignedRequest.d.ts +11 -0
  274. package/src/orm/adapters/ProxySignedRequest.d.ts.map +1 -0
  275. package/src/orm/adapters/ProxySignedRequest.js +30 -0
  276. package/src/orm/adapters/ProxySigningPath.d.ts +3 -0
  277. package/src/orm/adapters/ProxySigningPath.d.ts.map +1 -0
  278. package/src/orm/adapters/ProxySigningPath.js +25 -0
  279. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts +19 -0
  280. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts.map +1 -0
  281. package/src/orm/adapters/SqlProxyAdapterUtils.js +36 -0
  282. package/src/orm/adapters/SqlProxyRegistryMode.d.ts +12 -0
  283. package/src/orm/adapters/SqlProxyRegistryMode.d.ts.map +1 -0
  284. package/src/orm/adapters/SqlProxyRegistryMode.js +24 -0
  285. package/src/orm/adapters/SqlServerProxyAdapter.d.ts +6 -0
  286. package/src/orm/adapters/SqlServerProxyAdapter.d.ts.map +1 -0
  287. package/src/orm/adapters/SqlServerProxyAdapter.js +154 -0
  288. package/src/orm/migrations/MigrationStore.js +1 -1
  289. package/src/performance/Optimizer.d.ts +1 -0
  290. package/src/performance/Optimizer.d.ts.map +1 -1
  291. package/src/performance/Optimizer.js +21 -8
  292. package/src/proxy/ErrorHandler.d.ts +11 -0
  293. package/src/proxy/ErrorHandler.d.ts.map +1 -0
  294. package/src/proxy/ErrorHandler.js +7 -0
  295. package/src/proxy/PoolManager.d.ts +8 -0
  296. package/src/proxy/PoolManager.d.ts.map +1 -0
  297. package/src/proxy/PoolManager.js +18 -0
  298. package/src/proxy/ProxyBackend.d.ts +18 -0
  299. package/src/proxy/ProxyBackend.d.ts.map +1 -0
  300. package/src/proxy/ProxyBackend.js +1 -0
  301. package/src/proxy/ProxyConfig.d.ts +12 -0
  302. package/src/proxy/ProxyConfig.d.ts.map +1 -0
  303. package/src/proxy/ProxyConfig.js +1 -0
  304. package/src/proxy/ProxyRegistry.d.ts +10 -0
  305. package/src/proxy/ProxyRegistry.d.ts.map +1 -0
  306. package/src/proxy/ProxyRegistry.js +11 -0
  307. package/src/proxy/ProxyRequestParsing.d.ts +9 -0
  308. package/src/proxy/ProxyRequestParsing.d.ts.map +1 -0
  309. package/src/proxy/ProxyRequestParsing.js +16 -0
  310. package/src/proxy/ProxyServer.d.ts +21 -0
  311. package/src/proxy/ProxyServer.d.ts.map +1 -0
  312. package/src/proxy/ProxyServer.js +84 -0
  313. package/src/proxy/ProxyServerUtils.d.ts +37 -0
  314. package/src/proxy/ProxyServerUtils.d.ts.map +1 -0
  315. package/src/proxy/ProxyServerUtils.js +42 -0
  316. package/src/proxy/ProxySigningConfigResolver.d.ts +22 -0
  317. package/src/proxy/ProxySigningConfigResolver.d.ts.map +1 -0
  318. package/src/proxy/ProxySigningConfigResolver.js +24 -0
  319. package/src/proxy/ProxySigningRequest.d.ts +12 -0
  320. package/src/proxy/ProxySigningRequest.d.ts.map +1 -0
  321. package/src/proxy/ProxySigningRequest.js +31 -0
  322. package/src/proxy/RequestValidator.d.ts +15 -0
  323. package/src/proxy/RequestValidator.d.ts.map +1 -0
  324. package/src/proxy/RequestValidator.js +26 -0
  325. package/src/proxy/SigningService.d.ts +39 -0
  326. package/src/proxy/SigningService.d.ts.map +1 -0
  327. package/src/proxy/SigningService.js +107 -0
  328. package/src/proxy/SqlPayloadValidator.d.ts +13 -0
  329. package/src/proxy/SqlPayloadValidator.d.ts.map +1 -0
  330. package/src/proxy/SqlPayloadValidator.js +14 -0
  331. package/src/proxy/SqlProxyDbOverrides.d.ts +17 -0
  332. package/src/proxy/SqlProxyDbOverrides.d.ts.map +1 -0
  333. package/src/proxy/SqlProxyDbOverrides.js +1 -0
  334. package/src/proxy/SqlProxyServerDeps.d.ts +12 -0
  335. package/src/proxy/SqlProxyServerDeps.d.ts.map +1 -0
  336. package/src/proxy/SqlProxyServerDeps.js +9 -0
  337. package/src/proxy/StatementPayloadValidator.d.ts +13 -0
  338. package/src/proxy/StatementPayloadValidator.d.ts.map +1 -0
  339. package/src/proxy/StatementPayloadValidator.js +18 -0
  340. package/src/proxy/StatementRegistryLoader.d.ts +2 -0
  341. package/src/proxy/StatementRegistryLoader.d.ts.map +1 -0
  342. package/src/proxy/StatementRegistryLoader.js +36 -0
  343. package/src/proxy/StatementRegistryResolver.d.ts +15 -0
  344. package/src/proxy/StatementRegistryResolver.d.ts.map +1 -0
  345. package/src/proxy/StatementRegistryResolver.js +34 -0
  346. package/src/proxy/d1/ZintrustD1Proxy.d.ts +3 -0
  347. package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -0
  348. package/src/proxy/d1/ZintrustD1Proxy.js +2 -0
  349. package/src/proxy/d1/register.d.ts +2 -0
  350. package/src/proxy/d1/register.d.ts.map +1 -0
  351. package/src/proxy/d1/register.js +5 -0
  352. package/src/proxy/isMutatingSql.d.ts +2 -0
  353. package/src/proxy/isMutatingSql.d.ts.map +1 -0
  354. package/src/proxy/isMutatingSql.js +12 -0
  355. package/src/proxy/kv/ZintrustKvProxy.d.ts +3 -0
  356. package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -0
  357. package/src/proxy/kv/ZintrustKvProxy.js +2 -0
  358. package/src/proxy/kv/register.d.ts +2 -0
  359. package/src/proxy/kv/register.d.ts.map +1 -0
  360. package/src/proxy/kv/register.js +5 -0
  361. package/src/proxy/mongodb/MongoDBProxyServer.d.ts +33 -0
  362. package/src/proxy/mongodb/MongoDBProxyServer.d.ts.map +1 -0
  363. package/src/proxy/mongodb/MongoDBProxyServer.js +202 -0
  364. package/src/proxy/mongodb/register.d.ts +2 -0
  365. package/src/proxy/mongodb/register.d.ts.map +1 -0
  366. package/src/proxy/mongodb/register.js +5 -0
  367. package/src/proxy/mysql/MySqlProxyServer.d.ts +8 -0
  368. package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -0
  369. package/src/proxy/mysql/MySqlProxyServer.js +202 -0
  370. package/src/proxy/mysql/register.d.ts +2 -0
  371. package/src/proxy/mysql/register.d.ts.map +1 -0
  372. package/src/proxy/mysql/register.js +5 -0
  373. package/src/proxy/postgres/PostgresProxyServer.d.ts +8 -0
  374. package/src/proxy/postgres/PostgresProxyServer.d.ts.map +1 -0
  375. package/src/proxy/postgres/PostgresProxyServer.js +178 -0
  376. package/src/proxy/postgres/register.d.ts +2 -0
  377. package/src/proxy/postgres/register.d.ts.map +1 -0
  378. package/src/proxy/postgres/register.js +5 -0
  379. package/src/proxy/redis/RedisProxyServer.d.ts +12 -0
  380. package/src/proxy/redis/RedisProxyServer.d.ts.map +1 -0
  381. package/src/proxy/redis/RedisProxyServer.js +192 -0
  382. package/src/proxy/redis/register.d.ts +2 -0
  383. package/src/proxy/redis/register.d.ts.map +1 -0
  384. package/src/proxy/redis/register.js +5 -0
  385. package/src/proxy/smtp/SmtpProxyServer.d.ts +19 -0
  386. package/src/proxy/smtp/SmtpProxyServer.d.ts.map +1 -0
  387. package/src/proxy/smtp/SmtpProxyServer.js +290 -0
  388. package/src/proxy/smtp/register.d.ts +2 -0
  389. package/src/proxy/smtp/register.d.ts.map +1 -0
  390. package/src/proxy/smtp/register.js +5 -0
  391. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts +8 -0
  392. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts.map +1 -0
  393. package/src/proxy/sqlserver/SqlServerProxyServer.js +203 -0
  394. package/src/proxy/sqlserver/register.d.ts +2 -0
  395. package/src/proxy/sqlserver/register.d.ts.map +1 -0
  396. package/src/proxy/sqlserver/register.js +5 -0
  397. package/src/proxy.d.ts +4 -0
  398. package/src/proxy.d.ts.map +1 -0
  399. package/src/proxy.js +3 -0
  400. package/src/routes/doc.d.ts.map +1 -1
  401. package/src/routes/doc.js +16 -2
  402. package/src/routes/error.d.ts +5 -4
  403. package/src/routes/error.d.ts.map +1 -1
  404. package/src/routes/error.js +15 -13
  405. package/src/routes/errorPages.d.ts +2 -0
  406. package/src/routes/errorPages.d.ts.map +1 -1
  407. package/src/routes/errorPages.js +144 -4
  408. package/src/runtime/PluginAutoImports.d.ts +1 -0
  409. package/src/runtime/PluginAutoImports.d.ts.map +1 -1
  410. package/src/runtime/PluginAutoImports.js +94 -9
  411. package/src/runtime/RuntimeAdapter.d.ts +8 -9
  412. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  413. package/src/runtime/RuntimeAdapter.js +120 -34
  414. package/src/runtime/RuntimeServices.d.ts +47 -0
  415. package/src/runtime/RuntimeServices.d.ts.map +1 -0
  416. package/src/runtime/RuntimeServices.js +164 -0
  417. package/src/runtime/StartupConfigFileRegistry.d.ts +4 -4
  418. package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -1
  419. package/src/runtime/StartupConfigFileRegistry.js +12 -0
  420. package/src/runtime/WorkerAdapterImports.d.ts +5 -0
  421. package/src/runtime/WorkerAdapterImports.d.ts.map +1 -0
  422. package/src/runtime/WorkerAdapterImports.js +17 -0
  423. package/src/runtime/WorkersModule.d.ts +6 -0
  424. package/src/runtime/WorkersModule.d.ts.map +1 -0
  425. package/src/runtime/WorkersModule.js +278 -0
  426. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  427. package/src/runtime/adapters/CloudflareAdapter.js +19 -2
  428. package/src/runtime/adapters/DenoAdapter.js +1 -0
  429. package/src/runtime/adapters/FargateAdapter.js +1 -1
  430. package/src/runtime/adapters/LambdaAdapter.js +1 -1
  431. package/src/runtime/adapters/NodeServerAdapter.js +1 -1
  432. package/src/runtime/detectRuntime.d.ts +10 -0
  433. package/src/runtime/detectRuntime.d.ts.map +1 -0
  434. package/src/runtime/detectRuntime.js +57 -0
  435. package/src/runtime/useFileLoader.d.ts.map +1 -1
  436. package/src/runtime/useFileLoader.js +16 -0
  437. package/src/scheduler/Schedule.d.ts +36 -0
  438. package/src/scheduler/Schedule.d.ts.map +1 -0
  439. package/src/scheduler/Schedule.js +197 -0
  440. package/src/scheduler/ScheduleHttpGateway.d.ts +8 -0
  441. package/src/scheduler/ScheduleHttpGateway.d.ts.map +1 -0
  442. package/src/scheduler/ScheduleHttpGateway.js +196 -0
  443. package/src/scheduler/ScheduleRunner.d.ts +6 -0
  444. package/src/scheduler/ScheduleRunner.d.ts.map +1 -1
  445. package/src/scheduler/ScheduleRunner.js +166 -29
  446. package/src/scheduler/SchedulerRuntime.d.ts +15 -0
  447. package/src/scheduler/SchedulerRuntime.d.ts.map +1 -0
  448. package/src/scheduler/SchedulerRuntime.js +79 -0
  449. package/src/scheduler/cron/Cron.d.ts +19 -0
  450. package/src/scheduler/cron/Cron.d.ts.map +1 -0
  451. package/src/scheduler/cron/Cron.js +200 -0
  452. package/src/scheduler/leader/SchedulerLeader.d.ts +14 -0
  453. package/src/scheduler/leader/SchedulerLeader.d.ts.map +1 -0
  454. package/src/scheduler/leader/SchedulerLeader.js +187 -0
  455. package/src/scheduler/state/ScheduleStateStore.d.ts +27 -0
  456. package/src/scheduler/state/ScheduleStateStore.d.ts.map +1 -0
  457. package/src/scheduler/state/ScheduleStateStore.js +27 -0
  458. package/src/scheduler/types.d.ts +10 -0
  459. package/src/scheduler/types.d.ts.map +1 -1
  460. package/src/schedules/index.d.ts +1 -0
  461. package/src/schedules/index.d.ts.map +1 -1
  462. package/src/schedules/index.js +1 -0
  463. package/src/schedules/job-tracking-cleanup.d.ts +4 -0
  464. package/src/schedules/job-tracking-cleanup.d.ts.map +1 -0
  465. package/src/schedules/job-tracking-cleanup.js +116 -0
  466. package/src/schedules/log-cleanup.d.ts +1 -2
  467. package/src/schedules/log-cleanup.d.ts.map +1 -1
  468. package/src/schedules/log-cleanup.js +12 -15
  469. package/src/scripts/TemplateImportsCheck.js +2 -2
  470. package/src/scripts/TemplateSync.js +3 -4
  471. package/src/security/CsrfTokenManager.d.ts.map +1 -1
  472. package/src/security/CsrfTokenManager.js +12 -0
  473. package/src/security/Hash.d.ts +1 -1
  474. package/src/security/Hash.d.ts.map +1 -1
  475. package/src/security/Hash.js +31 -36
  476. package/src/security/Sanitizer.d.ts.map +1 -1
  477. package/src/security/Sanitizer.js +1 -9
  478. package/src/security/SignedRequest.d.ts.map +1 -1
  479. package/src/security/SignedRequest.js +2 -2
  480. package/src/seeders/SeederLoader.js +1 -1
  481. package/src/session/SessionManager.d.ts +3 -0
  482. package/src/session/SessionManager.d.ts.map +1 -1
  483. package/src/session/SessionManager.js +49 -10
  484. package/src/sockets/CloudflareSocket.d.ts +24 -0
  485. package/src/sockets/CloudflareSocket.d.ts.map +1 -0
  486. package/src/sockets/CloudflareSocket.js +259 -0
  487. package/src/start.d.ts.map +1 -1
  488. package/src/start.js +1 -8
  489. package/src/templates/docker/docker-compose.ecosystem.yml.tpl +301 -0
  490. package/src/templates/docker/docker-compose.schedules.yml.tpl +84 -0
  491. package/src/templates/project/basic/app/Schedules/index.ts.tpl +0 -0
  492. package/src/templates/project/basic/config/database.ts.tpl +1 -1
  493. package/src/templates/project/basic/src/zintrust.plugins.wg.ts.tpl +8 -0
  494. package/src/toolkit/Secrets/Manifest.d.ts.map +1 -1
  495. package/src/toolkit/Secrets/Manifest.js +5 -7
  496. package/src/tools/mail/drivers/Smtp.d.ts.map +1 -1
  497. package/src/tools/mail/drivers/Smtp.js +229 -18
  498. package/src/tools/mail/index.d.ts.map +1 -1
  499. package/src/tools/mail/index.js +5 -4
  500. package/src/tools/mail/template-loader.d.ts.map +1 -1
  501. package/src/tools/mail/template-loader.js +197 -29
  502. package/src/tools/mail/templates/auth-password-reset.d.ts +3 -0
  503. package/src/tools/mail/templates/auth-password-reset.d.ts.map +1 -0
  504. package/src/tools/mail/templates/auth-password-reset.js +231 -0
  505. package/src/tools/mail/templates/auth-welcome.d.ts +3 -0
  506. package/src/tools/mail/templates/auth-welcome.d.ts.map +1 -0
  507. package/src/tools/mail/templates/auth-welcome.js +236 -0
  508. package/src/tools/mail/templates/general.d.ts +3 -0
  509. package/src/tools/mail/templates/general.d.ts.map +1 -0
  510. package/src/tools/mail/templates/general.js +109 -0
  511. package/src/tools/mail/templates/index.js +2 -2
  512. package/src/tools/mail/templates/job-completed.d.ts +3 -0
  513. package/src/tools/mail/templates/job-completed.d.ts.map +1 -0
  514. package/src/tools/mail/templates/job-completed.js +188 -0
  515. package/src/tools/mail/templates/notifications-new-comment.d.ts +3 -0
  516. package/src/tools/mail/templates/notifications-new-comment.d.ts.map +1 -0
  517. package/src/tools/mail/templates/notifications-new-comment.js +228 -0
  518. package/src/tools/mail/templates/password-reset.d.ts +3 -0
  519. package/src/tools/mail/templates/password-reset.d.ts.map +1 -0
  520. package/src/tools/mail/templates/password-reset.js +221 -0
  521. package/src/tools/mail/templates/performance-report.d.ts +3 -0
  522. package/src/tools/mail/templates/performance-report.d.ts.map +1 -0
  523. package/src/tools/mail/templates/performance-report.js +258 -0
  524. package/src/tools/mail/templates/welcome.d.ts +3 -0
  525. package/src/tools/mail/templates/welcome.d.ts.map +1 -0
  526. package/src/tools/mail/templates/welcome.js +187 -0
  527. package/src/tools/mail/templates/worker-alert.d.ts +3 -0
  528. package/src/tools/mail/templates/worker-alert.d.ts.map +1 -0
  529. package/src/tools/mail/templates/worker-alert.js +229 -0
  530. package/src/tools/notification/Notification.js +1 -1
  531. package/src/tools/notification/testingHelpers.js +6 -5
  532. package/src/tools/queue/AdvancedQueue.js +2 -6
  533. package/src/tools/queue/IdempotencyManager.d.ts +6 -0
  534. package/src/tools/queue/IdempotencyManager.d.ts.map +1 -0
  535. package/src/tools/queue/IdempotencyManager.js +36 -0
  536. package/src/tools/queue/JobHeartbeatStore.d.ts +16 -0
  537. package/src/tools/queue/JobHeartbeatStore.d.ts.map +1 -0
  538. package/src/tools/queue/JobHeartbeatStore.js +67 -0
  539. package/src/tools/queue/JobReconciliationRunner.d.ts +16 -0
  540. package/src/tools/queue/JobReconciliationRunner.d.ts.map +1 -0
  541. package/src/tools/queue/JobReconciliationRunner.js +56 -0
  542. package/src/tools/queue/JobRecoveryDaemon.d.ts +27 -0
  543. package/src/tools/queue/JobRecoveryDaemon.d.ts.map +1 -0
  544. package/src/tools/queue/JobRecoveryDaemon.js +303 -0
  545. package/src/tools/queue/JobStateTracker.d.ts +140 -0
  546. package/src/tools/queue/JobStateTracker.d.ts.map +1 -0
  547. package/src/tools/queue/JobStateTracker.js +409 -0
  548. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts +12 -0
  549. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts.map +1 -0
  550. package/src/tools/queue/JobStateTrackerDbPersistence.js +239 -0
  551. package/src/tools/queue/Queue.d.ts.map +1 -1
  552. package/src/tools/queue/Queue.js +160 -16
  553. package/src/tools/queue/QueueDataRedactor.d.ts +6 -0
  554. package/src/tools/queue/QueueDataRedactor.d.ts.map +1 -0
  555. package/src/tools/queue/QueueDataRedactor.js +45 -0
  556. package/src/tools/queue/QueueExtensions.d.ts.map +1 -1
  557. package/src/tools/queue/QueueExtensions.js +2 -1
  558. package/src/tools/queue/QueueReliabilityMetrics.d.ts +38 -0
  559. package/src/tools/queue/QueueReliabilityMetrics.d.ts.map +1 -0
  560. package/src/tools/queue/QueueReliabilityMetrics.js +131 -0
  561. package/src/tools/queue/QueueReliabilityOrchestrator.d.ts +7 -0
  562. package/src/tools/queue/QueueReliabilityOrchestrator.d.ts.map +1 -0
  563. package/src/tools/queue/QueueReliabilityOrchestrator.js +59 -0
  564. package/src/tools/queue/QueueRuntimeRegistration.d.ts +1 -9
  565. package/src/tools/queue/QueueRuntimeRegistration.d.ts.map +1 -1
  566. package/src/tools/queue/QueueRuntimeRegistration.js +75 -4
  567. package/src/tools/queue/QueueTracing.d.ts +32 -0
  568. package/src/tools/queue/QueueTracing.d.ts.map +1 -0
  569. package/src/tools/queue/QueueTracing.js +151 -0
  570. package/src/tools/queue/StalledJobMonitor.d.ts +5 -0
  571. package/src/tools/queue/StalledJobMonitor.d.ts.map +1 -0
  572. package/src/tools/queue/StalledJobMonitor.js +21 -0
  573. package/src/tools/queue/TimeoutManager.d.ts +14 -0
  574. package/src/tools/queue/TimeoutManager.d.ts.map +1 -0
  575. package/src/tools/queue/TimeoutManager.js +77 -0
  576. package/src/tools/queue/drivers/Redis.d.ts +1 -0
  577. package/src/tools/queue/drivers/Redis.d.ts.map +1 -1
  578. package/src/tools/queue/drivers/Redis.js +1 -0
  579. package/src/tools/queue/index.d.ts +10 -0
  580. package/src/tools/queue/index.d.ts.map +1 -1
  581. package/src/tools/queue/index.js +10 -0
  582. package/src/tools/storage/drivers/R2.d.ts +13 -0
  583. package/src/tools/storage/drivers/R2.d.ts.map +1 -1
  584. package/src/tools/storage/drivers/R2.js +29 -0
  585. package/src/zintrust.plugins.d.ts +9 -0
  586. package/src/zintrust.plugins.d.ts.map +1 -0
  587. package/src/zintrust.plugins.js +7 -0
  588. package/src/zintrust.plugins.wg.d.ts +9 -0
  589. package/src/zintrust.plugins.wg.d.ts.map +1 -0
  590. package/src/zintrust.plugins.wg.js +7 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Sanitizer.d.ts","sourceRoot":"","sources":["../../../src/security/Sanitizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sanitizer.d.ts","sourceRoot":"","sources":["../../../src/security/Sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAmCH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAC/D,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACzC,mBAAmB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAEhD,yFAAyF;IACzF,8BAA8B,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IAElG,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAExC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAC3C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAE1C,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5D,qBAAqB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAElD,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAC9D,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAEjE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAEtC,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACrE,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAE/C,qBAAqB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAClD,qBAAqB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAElD,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACjD,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAE9C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAEtC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC,CAAC;AAufH,eAAO,MAAM,eAAe,QAAO,aAMlC,CAAC;AAEF,eAAO,MAAM,SAAS;iBAniBP,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM;kBAChD,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;yBACnB,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;IAE/C,yFAAyF;oCACzD,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,MAAM;iBAEpF,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;eAC5B,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;WAC9B,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM;iBAC3C,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;oBAEvB,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;mBAC3B,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;cAE/B,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM;2BACpC,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;gBAErC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM;mBAC9C,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM;eAErD,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;uBAElB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,MAAM;wBAChD,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;2BAEvB,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;2BAC1B,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;0BAE3B,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;uBAC7B,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;mBAE9B,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;eAC9B,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;aAE5B,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;EAggBK,CAAC"}
@@ -19,6 +19,7 @@
19
19
  * - ~5-15% performance overhead; disable for performance-critical paths
20
20
  */
21
21
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
22
+ import { isEmpty } from '../helper/index.js';
22
23
  const MAX_NUMERIC_INPUT_LEN = 64;
23
24
  const MAX_EMAIL_LEN = 254;
24
25
  const MAX_NAME_LEN = 200;
@@ -28,15 +29,6 @@ const assertMaxLen = (method, label, value, maxLen) => {
28
29
  return;
29
30
  throw ErrorFactory.createSanitizerError(method, `${label} too long`, value);
30
31
  };
31
- const isEmpty = (value) => {
32
- // Preserve legacy semantics: treat 0 and "0" as empty.
33
- return (value === null ||
34
- value === undefined ||
35
- value === false ||
36
- value === 0 ||
37
- value === '' ||
38
- value === '0');
39
- };
40
32
  const toStr = (value) => {
41
33
  return String(value ?? '');
42
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SignedRequest.d.ts","sourceRoot":"","sources":["../../../src/security/SignedRequest.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAIF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACjF,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EACA,gBAAgB,GAChB,mBAAmB,GACnB,SAAS,GACT,kBAAkB,GAClB,mBAAmB,GACnB,aAAa,GACb,UAAU,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAyFN,eAAO,MAAM,aAAa;sBAzBK,MAAM,GAAG,UAAU,KAAG,OAAO,CAAC,MAAM,CAAC;8BAKnC;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;KACvB,KAAG,MAAM;0BAiBoB,gCAAgC,GAAG,OAAO,CAAC,oBAAoB,CAAC;mBAuCvE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;EAuCnF,CAAC"}
1
+ {"version":3,"file":"SignedRequest.d.ts","sourceRoot":"","sources":["../../../src/security/SignedRequest.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACjF,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EACA,gBAAgB,GAChB,mBAAmB,GACnB,SAAS,GACT,kBAAkB,GAClB,mBAAmB,GACnB,aAAa,GACb,UAAU,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA0FN,eAAO,MAAM,aAAa;sBAzBK,MAAM,GAAG,UAAU,KAAG,OAAO,CAAC,MAAM,CAAC;8BAKnC;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;KACvB,KAAG,MAAM;0BAiBoB,gCAAgC,GAAG,OAAO,CAAC,oBAAoB,CAAC;mBAuCvE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;EAuCnF,CAAC"}
@@ -1,4 +1,3 @@
1
- import { ErrorFactory } from '../exceptions/ZintrustError.js';
2
1
  const getHeader = (headers, name) => {
3
2
  if (typeof headers.get === 'function') {
4
3
  const value = headers.get(name);
@@ -19,7 +18,8 @@ const getCrypto = () => {
19
18
  if (typeof crypto === 'undefined' || crypto.subtle === undefined) {
20
19
  // Some runtimes (or test environments) may not expose WebCrypto.
21
20
  // Keep this as a typed ZinTrust error to satisfy lint rules.
22
- throw ErrorFactory.createSecurityError('WebCrypto is not available in this runtime');
21
+ // eslint-disable-next-line no-restricted-syntax
22
+ throw new Error('WebCrypto is not available in this runtime');
23
23
  }
24
24
  return crypto;
25
25
  };
@@ -1,6 +1,6 @@
1
1
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
2
2
  import * as path from '../node-singletons/path.js';
3
- import { pathToFileURL } from 'node:url';
3
+ import { pathToFileURL } from '../node-singletons/url.js';
4
4
  function isFunction(value) {
5
5
  return typeof value === 'function';
6
6
  }
@@ -26,11 +26,14 @@ export interface ISessionManager {
26
26
  get(sessionId: string): ISession;
27
27
  destroy(sessionId: string): void;
28
28
  cleanup(): number;
29
+ dispose(): void;
29
30
  }
30
31
  export interface SessionManagerOptions {
31
32
  cookieName?: string;
32
33
  headerName?: string;
33
34
  ttlMs?: number;
35
+ maxSessions?: number;
36
+ cleanupIntervalMs?: number;
34
37
  }
35
38
  export declare const SessionManager: Readonly<{
36
39
  create(options?: SessionManagerOptions): ISessionManager;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,IAAI,WAAW,CAAC;IACnB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5E,gBAAgB,CAAC,GAAG,EAAE;QACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACrC,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,GAAG,MAAM,GAAG,SAAS,CAAC;IACvB,eAAe,CACb,GAAG,EAAE;QACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACrC,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,EACD,GAAG,EAAE;QACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACrC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC;KAChE,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,IAAI,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyHD,eAAO,MAAM,cAAc;qBACT,qBAAqB,GAAQ,eAAe;EA2E5D,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,IAAI,WAAW,CAAC;IACnB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5E,gBAAgB,CAAC,GAAG,EAAE;QACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACrC,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,GAAG,MAAM,GAAG,SAAS,CAAC;IACvB,eAAe,CACb,GAAG,EAAE;QACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACrC,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,EACD,GAAG,EAAE;QACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACrC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC;KAChE,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,IAAI,MAAM,CAAC;IAClB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAwKD,eAAO,MAAM,cAAc;qBACT,qBAAqB,GAAQ,eAAe;EAkF5D,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -3,7 +3,39 @@ const DEFAULT_OPTIONS = {
3
3
  cookieName: 'ZIN_SESSION_ID',
4
4
  headerName: 'x-session-id',
5
5
  ttlMs: 7 * 24 * 60 * 60 * 1000,
6
+ maxSessions: 10000,
7
+ cleanupIntervalMs: 60000,
6
8
  };
9
+ function isUnrefableTimer(value) {
10
+ return (typeof value === 'object' &&
11
+ value !== null &&
12
+ 'unref' in value &&
13
+ typeof value.unref === 'function');
14
+ }
15
+ function cleanupExpiredSessions(sessions) {
16
+ const now = Date.now();
17
+ let removed = 0;
18
+ for (const [id, stored] of sessions.entries()) {
19
+ if (stored.expiresAt <= now) {
20
+ sessions.delete(id);
21
+ removed++;
22
+ }
23
+ }
24
+ return removed;
25
+ }
26
+ function enforceSessionCapacity(sessions, maxSessions, preserveId) {
27
+ if (sessions.size < maxSessions)
28
+ return;
29
+ cleanupExpiredSessions(sessions);
30
+ if (sessions.size < maxSessions)
31
+ return;
32
+ for (const id of sessions.keys()) {
33
+ if (id === preserveId)
34
+ continue;
35
+ sessions.delete(id);
36
+ break;
37
+ }
38
+ }
7
39
  function parseCookies(cookieHeader) {
8
40
  const list = {};
9
41
  if (cookieHeader.length === 0)
@@ -39,7 +71,7 @@ function buildSessionCookie(cookieName, sessionId) {
39
71
  // HttpOnly prevents JS access; SameSite=Lax is a reasonable default for app sessions.
40
72
  return `${cookieName}=${encodeURIComponent(sessionId)}; Path=/; HttpOnly; SameSite=Lax`;
41
73
  }
42
- function createSessionApi(sessions, sessionId, ttlMs) {
74
+ function createSessionApi(sessions, sessionId, ttlMs, maxSessions) {
43
75
  const withoutKey = (data, key) => {
44
76
  if (!Object.prototype.hasOwnProperty.call(data, key))
45
77
  return data;
@@ -53,6 +85,7 @@ function createSessionApi(sessions, sessionId, ttlMs) {
53
85
  if (existing !== undefined && existing.expiresAt > now) {
54
86
  return existing;
55
87
  }
88
+ enforceSessionCapacity(sessions, maxSessions, sessionId);
56
89
  const created = { data: {}, expiresAt: now + ttlMs };
57
90
  sessions.set(sessionId, created);
58
91
  return created;
@@ -89,6 +122,14 @@ export const SessionManager = Object.freeze({
89
122
  create(options = {}) {
90
123
  const config = { ...DEFAULT_OPTIONS, ...options };
91
124
  const sessions = new Map();
125
+ const cleanupInterval = config.cleanupIntervalMs > 0
126
+ ? globalThis.setInterval(() => {
127
+ cleanupExpiredSessions(sessions);
128
+ }, config.cleanupIntervalMs)
129
+ : undefined;
130
+ if (cleanupInterval && isUnrefableTimer(cleanupInterval)) {
131
+ cleanupInterval.unref();
132
+ }
92
133
  return {
93
134
  getIdFromCookieHeader(cookieHeader) {
94
135
  if (cookieHeader === undefined || cookieHeader.length === 0)
@@ -127,21 +168,19 @@ export const SessionManager = Object.freeze({
127
168
  return sessionId;
128
169
  },
129
170
  get(sessionId) {
130
- return createSessionApi(sessions, sessionId, config.ttlMs);
171
+ return createSessionApi(sessions, sessionId, config.ttlMs, config.maxSessions);
131
172
  },
132
173
  destroy(sessionId) {
133
174
  sessions.delete(sessionId);
134
175
  },
135
176
  cleanup() {
136
- const now = Date.now();
137
- let removed = 0;
138
- for (const [id, stored] of sessions.entries()) {
139
- if (stored.expiresAt <= now) {
140
- sessions.delete(id);
141
- removed++;
142
- }
177
+ return cleanupExpiredSessions(sessions);
178
+ },
179
+ dispose() {
180
+ if (cleanupInterval !== undefined) {
181
+ clearInterval(cleanupInterval);
143
182
  }
144
- return removed;
183
+ sessions.clear();
145
184
  },
146
185
  };
147
186
  },
@@ -0,0 +1,24 @@
1
+ import { EventEmitter } from '../node-singletons/index.js';
2
+ export type CloudflareSocketOptions = {
3
+ tls?: boolean;
4
+ timeoutMs?: number;
5
+ };
6
+ export type CloudflareSocketInstance = EventEmitter & {
7
+ write: (data: Buffer | Uint8Array) => boolean;
8
+ end: () => void;
9
+ destroy: () => void;
10
+ connect: (..._args: unknown[]) => CloudflareSocketInstance;
11
+ startTls: () => Promise<void>;
12
+ pause: () => void;
13
+ resume: () => void;
14
+ setTimeout: (timeoutMs: number, callback?: () => void) => void;
15
+ setNoDelay: (_noDelay?: boolean) => void;
16
+ setKeepAlive: (_enable?: boolean, _initialDelay?: number) => void;
17
+ ref: () => void;
18
+ unref: () => void;
19
+ };
20
+ export type CloudflareSocketFactory = {
21
+ create: (hostname: string, port: number, options?: CloudflareSocketOptions) => CloudflareSocketInstance;
22
+ };
23
+ export declare const CloudflareSocket: CloudflareSocketFactory;
24
+ //# sourceMappingURL=CloudflareSocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudflareSocket.d.ts","sourceRoot":"","sources":["../../../src/sockets/CloudflareSocket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAehD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG;IACpD,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,KAAK,OAAO,CAAC;IAC9C,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,wBAAwB,CAAC;IAC3D,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC/D,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,CACN,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,uBAAuB,KAC9B,wBAAwB,CAAC;CAC/B,CAAC;AAoSF,eAAO,MAAM,gBAAgB,EAAE,uBAE7B,CAAC"}
@@ -0,0 +1,259 @@
1
+ import { ErrorFactory } from '../exceptions/ZintrustError.js';
2
+ import { EventEmitter } from '../node-singletons/index.js';
3
+ // Lazy import cloudflare:sockets to prevent Node.js evaluation errors
4
+ let connect;
5
+ const getCloudflareConnect = async () => {
6
+ if (connect === undefined) {
7
+ const module = await import('cloudflare:sockets');
8
+ connect = module.connect;
9
+ }
10
+ return connect;
11
+ };
12
+ const DEFAULT_TIMEOUT_MS = 30000;
13
+ const toBuffer = (data) => {
14
+ if (typeof Buffer !== 'undefined')
15
+ return Buffer.from(data);
16
+ return data;
17
+ };
18
+ const createTimeoutSignal = (timeoutMs) => {
19
+ if (timeoutMs <= 0)
20
+ return undefined;
21
+ if (typeof AbortSignal === 'undefined' || typeof AbortSignal.timeout !== 'function')
22
+ return undefined;
23
+ return AbortSignal.timeout(timeoutMs);
24
+ };
25
+ const withTimeout = async (promise, timeoutMs, message) => {
26
+ const signal = createTimeoutSignal(timeoutMs);
27
+ if (!signal)
28
+ return promise;
29
+ const timeoutPromise = new Promise((_, reject) => {
30
+ signal.addEventListener('abort', () => reject(ErrorFactory.createConnectionError(message)), {
31
+ once: true,
32
+ });
33
+ });
34
+ return Promise.race([promise, timeoutPromise]);
35
+ };
36
+ const releaseStreamLocks = (state) => {
37
+ if (typeof process !== 'undefined' && process.env?.['VITEST'] !== undefined) {
38
+ state.reader = undefined;
39
+ state.writer = undefined;
40
+ return;
41
+ }
42
+ const reader = state.reader;
43
+ if (reader && typeof reader.releaseLock === 'function') {
44
+ try {
45
+ reader.releaseLock();
46
+ }
47
+ catch {
48
+ // ignore lock release errors
49
+ }
50
+ }
51
+ const writer = state.writer;
52
+ if (writer && typeof writer.releaseLock === 'function') {
53
+ try {
54
+ writer.releaseLock();
55
+ }
56
+ catch {
57
+ // ignore lock release errors
58
+ }
59
+ }
60
+ state.reader = undefined;
61
+ state.writer = undefined;
62
+ };
63
+ const flushBuffered = (state, emitter) => {
64
+ if (state.paused)
65
+ return;
66
+ while (state.bufferedChunks.length > 0) {
67
+ const chunk = state.bufferedChunks.shift();
68
+ if (chunk !== undefined)
69
+ emitter.emit('data', toBuffer(chunk));
70
+ }
71
+ };
72
+ const startReading = (state, emitter) => {
73
+ const token = state.socketToken;
74
+ const readNext = async () => {
75
+ if (state.socketToken !== token)
76
+ return;
77
+ if (!state.reader)
78
+ return; //NOSONAR
79
+ return state.reader
80
+ .read()
81
+ .then(async ({ done, value }) => {
82
+ if (state.socketToken !== token)
83
+ return;
84
+ if (done) {
85
+ emitter.emit('end');
86
+ return undefined;
87
+ }
88
+ if (state.paused) {
89
+ state.bufferedChunks.push(value);
90
+ }
91
+ else {
92
+ emitter.emit('data', toBuffer(value));
93
+ }
94
+ return readNext();
95
+ })
96
+ .catch((error) => {
97
+ emitter.emit('error', error);
98
+ });
99
+ };
100
+ readNext().catch((error) => emitter.emit('error', error));
101
+ };
102
+ const bindSocketLifecycle = async (emitter, state, socket, emitConnect) => {
103
+ state.socketToken += 1;
104
+ const token = state.socketToken;
105
+ state.socket = socket;
106
+ state.closed = false;
107
+ const waitForOpen = withTimeout(socket.opened, state.timeoutMs, 'Cloudflare socket connection timed out');
108
+ return waitForOpen
109
+ .then(() => {
110
+ state.reader = socket.readable.getReader();
111
+ state.writer = socket.writable.getWriter();
112
+ if (emitConnect)
113
+ emitter.emit('connect');
114
+ startReading(state, emitter);
115
+ socket.closed
116
+ .then(() => {
117
+ if (state.socketToken !== token)
118
+ return;
119
+ if (state.closed)
120
+ return;
121
+ state.closed = true;
122
+ emitter.emit('close');
123
+ try {
124
+ releaseStreamLocks(state);
125
+ }
126
+ catch {
127
+ // ignore release errors
128
+ }
129
+ emitter.removeAllListeners();
130
+ })
131
+ .catch((error) => {
132
+ if (state.socketToken !== token)
133
+ return;
134
+ if (state.closed)
135
+ return;
136
+ state.closed = true;
137
+ emitter.emit('error', error);
138
+ try {
139
+ releaseStreamLocks(state);
140
+ }
141
+ catch {
142
+ // ignore release errors
143
+ }
144
+ emitter.removeAllListeners();
145
+ });
146
+ })
147
+ .catch((error) => {
148
+ emitter.emit('error', error);
149
+ try {
150
+ releaseStreamLocks(state);
151
+ }
152
+ catch {
153
+ // ignore release errors
154
+ }
155
+ emitter.removeAllListeners();
156
+ });
157
+ };
158
+ const createEmitterHandlers = (emitter, state) => {
159
+ emitter.write = (data) => {
160
+ if (!state.writer)
161
+ return false;
162
+ try {
163
+ const payload = data instanceof Uint8Array ? data : new Uint8Array(data);
164
+ const writePromise = state.writer.write(payload);
165
+ writePromise.catch((error) => emitter.emit('error', error));
166
+ if (state.writer.desiredSize !== null && state.writer.desiredSize <= 0) {
167
+ state.writer.ready
168
+ .then(() => emitter.emit('drain'))
169
+ .catch((error) => emitter.emit('error', error));
170
+ return false;
171
+ }
172
+ return true;
173
+ }
174
+ catch (error) {
175
+ emitter.emit('error', error);
176
+ return false;
177
+ }
178
+ };
179
+ emitter.end = () => {
180
+ const socket = state.socket;
181
+ if (!socket)
182
+ return;
183
+ socket
184
+ .close()
185
+ .then(() => {
186
+ emitter.emit('close');
187
+ releaseStreamLocks(state);
188
+ emitter.removeAllListeners();
189
+ })
190
+ .catch((error) => {
191
+ emitter.emit('error', error);
192
+ releaseStreamLocks(state);
193
+ emitter.removeAllListeners();
194
+ });
195
+ };
196
+ emitter.destroy = emitter.end;
197
+ emitter.connect = (...args) => {
198
+ const last = args.at(-1);
199
+ if (typeof last === 'function') {
200
+ emitter.once('connect', last);
201
+ }
202
+ return emitter;
203
+ };
204
+ emitter.startTls = async () => {
205
+ const socket = state.socket;
206
+ if (!socket || typeof socket.startTls !== 'function') {
207
+ throw ErrorFactory.createConnectionError('Cloudflare socket does not support STARTTLS');
208
+ }
209
+ releaseStreamLocks(state);
210
+ state.bufferedChunks = [];
211
+ const tlsSocket = socket.startTls();
212
+ await bindSocketLifecycle(emitter, state, tlsSocket, false);
213
+ };
214
+ emitter.pause = () => {
215
+ state.paused = true;
216
+ };
217
+ emitter.resume = () => {
218
+ state.paused = false;
219
+ flushBuffered(state, emitter);
220
+ };
221
+ emitter.setTimeout = (timeoutMs, callback) => {
222
+ state.timeoutToken += 1;
223
+ const token = state.timeoutToken;
224
+ const signal = createTimeoutSignal(timeoutMs);
225
+ if (!signal)
226
+ return;
227
+ signal.addEventListener('abort', () => {
228
+ if (state.timeoutToken !== token)
229
+ return;
230
+ emitter.emit('timeout');
231
+ callback?.();
232
+ }, { once: true });
233
+ };
234
+ emitter.setNoDelay = () => undefined;
235
+ emitter.setKeepAlive = () => undefined;
236
+ emitter.ref = () => undefined;
237
+ emitter.unref = () => undefined;
238
+ };
239
+ function createCloudflareSocket(hostname, port, options = {}) {
240
+ const emitter = new EventEmitter();
241
+ const secureTransport = options.tls === true ? 'starttls' : 'off';
242
+ const state = {
243
+ paused: false,
244
+ bufferedChunks: [],
245
+ closed: false,
246
+ timeoutToken: 0,
247
+ socketToken: 0,
248
+ timeoutMs: options.timeoutMs ?? DEFAULT_TIMEOUT_MS,
249
+ };
250
+ createEmitterHandlers(emitter, state);
251
+ getCloudflareConnect()
252
+ .then((connectFn) => connectFn({ hostname, port }, { secureTransport, allowHalfOpen: false }))
253
+ .then(async (socket) => bindSocketLifecycle(emitter, state, socket, true))
254
+ .catch((error) => emitter.emit('error', error));
255
+ return emitter;
256
+ }
257
+ export const CloudflareSocket = Object.freeze({
258
+ create: createCloudflareSocket,
259
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,UAAU,GAAI,eAAe,MAAM,KAAG,OAYlD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,KAAK,QAAa,OAAO,CAAC,IAAI,CAO1C,CAAC;AAEF;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEpE;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,UAAU,GAAI,eAAe,MAAM,KAAG,OAYlD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,KAAK,QAAa,OAAO,CAAC,IAAI,CAO1C,CAAC;AAEF;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEpE;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
package/src/start.js CHANGED
@@ -1,12 +1,5 @@
1
1
  import { ZintrustLang } from './lang/lang.js';
2
- const isNodeRuntime = () => {
3
- // Avoid importing any `node:*` modules so this file remains Worker-safe.
4
- // In Workers/Deno, `process` is typically undefined.
5
- return (typeof process !== ZintrustLang.UNDEFINED &&
6
- typeof process === ZintrustLang.OBJECT &&
7
- process !== null &&
8
- typeof process.versions === ZintrustLang.OBJECT);
9
- };
2
+ import { isNodeRuntime } from './runtime/detectRuntime.js';
10
3
  const fileUrlToPathLike = (value) => {
11
4
  if (!value.startsWith(ZintrustLang.FILE_PROTOCOL))
12
5
  return value;