@geekmidas/constructs 9.0.2 → 10.0.0-alpha.1

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 (385) hide show
  1. package/README.md +71 -44
  2. package/dist/{AWSScheduledFunction-Bn99MceY.d.cts → AWSScheduledFunction-9bJS4WdJ.d.cts} +8 -3
  3. package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts.map → AWSScheduledFunction-9bJS4WdJ.d.cts.map} +1 -1
  4. package/dist/{AWSScheduledFunction-CufMMhGB.mjs → AWSScheduledFunction-BJjj8B5V.mjs} +3 -3
  5. package/dist/{AWSScheduledFunction-CufMMhGB.mjs.map → AWSScheduledFunction-BJjj8B5V.mjs.map} +1 -1
  6. package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts → AWSScheduledFunction-BO5iEMSh.d.mts} +9 -4
  7. package/dist/{AWSScheduledFunction-Bn99MceY.d.cts.map → AWSScheduledFunction-BO5iEMSh.d.mts.map} +1 -1
  8. package/dist/{AWSScheduledFunction-DbkDr8CA.cjs → AWSScheduledFunction-qu4ieRZR.cjs} +9 -9
  9. package/dist/{AWSScheduledFunction-DbkDr8CA.cjs.map → AWSScheduledFunction-qu4ieRZR.cjs.map} +1 -1
  10. package/dist/{Construct-_1wX7p_Y.d.cts → Construct-B-xc0SE9.d.mts} +27 -5
  11. package/dist/Construct-B-xc0SE9.d.mts.map +1 -0
  12. package/dist/{Construct-r0U2zBwW.mjs → Construct-CdhThxDI.mjs} +3 -2
  13. package/dist/Construct-CdhThxDI.mjs.map +1 -0
  14. package/dist/{Construct-DCMuYOox.d.mts → Construct-WhCXIOPV.d.cts} +29 -7
  15. package/dist/Construct-WhCXIOPV.d.cts.map +1 -0
  16. package/dist/{Construct-vXMZJgRp.cjs → Construct-roId57cU.cjs} +7 -43
  17. package/dist/Construct-roId57cU.cjs.map +1 -0
  18. package/dist/{lazyAccessors-DmTG8sQH.cjs → Endpoint-BBkV6l0k.cjs} +869 -1079
  19. package/dist/Endpoint-BBkV6l0k.cjs.map +1 -0
  20. package/dist/{Endpoint-DgfRslct.d.cts → Endpoint-BKR5QH6O.d.mts} +57 -8
  21. package/dist/Endpoint-BKR5QH6O.d.mts.map +1 -0
  22. package/dist/{Endpoint-CLPSIl6S.d.mts → Endpoint-BQ9O0P1w.d.cts} +58 -9
  23. package/dist/Endpoint-BQ9O0P1w.d.cts.map +1 -0
  24. package/dist/{lazyAccessors-DfqZR6C4.mjs → Endpoint-BTj58Gob.mjs} +840 -1003
  25. package/dist/Endpoint-BTj58Gob.mjs.map +1 -0
  26. package/dist/EndpointFactory-BejSTzbB.mjs +808 -0
  27. package/dist/EndpointFactory-BejSTzbB.mjs.map +1 -0
  28. package/dist/EndpointFactory-DYoGLaIT.cjs +850 -0
  29. package/dist/EndpointFactory-DYoGLaIT.cjs.map +1 -0
  30. package/dist/{HonoEndpointAdaptor-DJDT3PMx.mjs → HonoEndpointAdaptor-7aYNdqJq.mjs} +5 -4
  31. package/dist/HonoEndpointAdaptor-7aYNdqJq.mjs.map +1 -0
  32. package/dist/{HonoEndpointAdaptor-CkJENANP.cjs → HonoEndpointAdaptor-wMsCyMgt.cjs} +24 -23
  33. package/dist/HonoEndpointAdaptor-wMsCyMgt.cjs.map +1 -0
  34. package/dist/{Queue-DaxjwmOQ.d.cts → Queue-D6WeziRD.d.cts} +43 -4
  35. package/dist/Queue-D6WeziRD.d.cts.map +1 -0
  36. package/dist/{Queue-HBDf0fqz.d.mts → Queue-DpUeqdC8.d.mts} +43 -4
  37. package/dist/Queue-DpUeqdC8.d.mts.map +1 -0
  38. package/dist/{Subscriber-B69ngPwl.d.cts → Subscriber-4rBJgDKI.d.mts} +9 -4
  39. package/dist/{Subscriber-B69ngPwl.d.cts.map → Subscriber-4rBJgDKI.d.mts.map} +1 -1
  40. package/dist/{Subscriber-D8Xm-86W.d.mts → Subscriber-DVQowdyj.d.cts} +11 -6
  41. package/dist/Subscriber-DVQowdyj.d.cts.map +1 -0
  42. package/dist/{Topic-C5ZMfveW.d.cts → Topic-Ohx9dvWr.d.cts} +33 -2
  43. package/dist/Topic-Ohx9dvWr.d.cts.map +1 -0
  44. package/dist/{Topic-DT10AqHk.d.mts → Topic-cmy2jOUy.d.mts} +33 -2
  45. package/dist/Topic-cmy2jOUy.d.mts.map +1 -0
  46. package/dist/adaptors/aws.cjs +39 -26
  47. package/dist/adaptors/aws.cjs.map +1 -1
  48. package/dist/adaptors/aws.d.cts +24 -16
  49. package/dist/adaptors/aws.d.cts.map +1 -1
  50. package/dist/adaptors/aws.d.mts +25 -17
  51. package/dist/adaptors/aws.d.mts.map +1 -1
  52. package/dist/adaptors/aws.mjs +26 -14
  53. package/dist/adaptors/aws.mjs.map +1 -1
  54. package/dist/adaptors/hono.cjs +9 -6
  55. package/dist/adaptors/hono.d.cts +7 -6
  56. package/dist/adaptors/hono.d.cts.map +1 -1
  57. package/dist/adaptors/hono.d.mts +8 -7
  58. package/dist/adaptors/hono.d.mts.map +1 -1
  59. package/dist/adaptors/hono.mjs +9 -6
  60. package/dist/adaptors/testing.cjs +18 -14
  61. package/dist/adaptors/testing.cjs.map +1 -1
  62. package/dist/adaptors/testing.d.cts +7 -6
  63. package/dist/adaptors/testing.d.cts.map +1 -1
  64. package/dist/adaptors/testing.d.mts +11 -10
  65. package/dist/adaptors/testing.d.mts.map +1 -1
  66. package/dist/adaptors/testing.mjs +10 -7
  67. package/dist/adaptors/testing.mjs.map +1 -1
  68. package/dist/auth.cjs +165 -0
  69. package/dist/auth.cjs.map +1 -0
  70. package/dist/auth.d.cts +108 -0
  71. package/dist/auth.d.cts.map +1 -0
  72. package/dist/auth.d.mts +108 -0
  73. package/dist/auth.d.mts.map +1 -0
  74. package/dist/auth.mjs +164 -0
  75. package/dist/auth.mjs.map +1 -0
  76. package/dist/cache-0ANvRQnD.mjs +51 -0
  77. package/dist/cache-0ANvRQnD.mjs.map +1 -0
  78. package/dist/cache-3WSvAulx.cjs +57 -0
  79. package/dist/cache-3WSvAulx.cjs.map +1 -0
  80. package/dist/cache-CdQ7OLpR.d.cts +47 -0
  81. package/dist/cache-CdQ7OLpR.d.cts.map +1 -0
  82. package/dist/cache-DYoJFcfd.d.mts +47 -0
  83. package/dist/cache-DYoJFcfd.d.mts.map +1 -0
  84. package/dist/cache.cjs +3 -0
  85. package/dist/cache.d.cts +3 -0
  86. package/dist/cache.d.mts +3 -0
  87. package/dist/cache.mjs +3 -0
  88. package/dist/chunk-DWy1uDak.cjs +39 -0
  89. package/dist/clone-DblgEZZa.mjs +39 -0
  90. package/dist/clone-DblgEZZa.mjs.map +1 -0
  91. package/dist/clone-Dy0cR2SZ.cjs +45 -0
  92. package/dist/clone-Dy0cR2SZ.cjs.map +1 -0
  93. package/dist/construct-interface-BfjcOD_E.cjs +117 -0
  94. package/dist/construct-interface-BfjcOD_E.cjs.map +1 -0
  95. package/dist/construct-interface-BqwRNYA2.d.mts +131 -0
  96. package/dist/construct-interface-BqwRNYA2.d.mts.map +1 -0
  97. package/dist/construct-interface-D2nNkHUN.d.cts +131 -0
  98. package/dist/construct-interface-D2nNkHUN.d.cts.map +1 -0
  99. package/dist/construct-interface-Z4CpS8tK.mjs +81 -0
  100. package/dist/construct-interface-Z4CpS8tK.mjs.map +1 -0
  101. package/dist/construct-interface.cjs +8 -0
  102. package/dist/construct-interface.d.cts +2 -0
  103. package/dist/construct-interface.d.mts +2 -0
  104. package/dist/construct-interface.mjs +3 -0
  105. package/dist/credential.cjs +96 -0
  106. package/dist/credential.cjs.map +1 -0
  107. package/dist/credential.d.cts +61 -0
  108. package/dist/credential.d.cts.map +1 -0
  109. package/dist/credential.d.mts +61 -0
  110. package/dist/credential.d.mts.map +1 -0
  111. package/dist/credential.mjs +94 -0
  112. package/dist/credential.mjs.map +1 -0
  113. package/dist/crons/index.cjs +39 -37
  114. package/dist/crons/index.cjs.map +1 -1
  115. package/dist/crons/index.d.cts +21 -8
  116. package/dist/crons/index.d.cts.map +1 -1
  117. package/dist/crons/index.d.mts +29 -13
  118. package/dist/crons/index.d.mts.map +1 -1
  119. package/dist/crons/index.mjs +37 -36
  120. package/dist/crons/index.mjs.map +1 -1
  121. package/dist/database/kysely.cjs +181 -0
  122. package/dist/database/kysely.cjs.map +1 -0
  123. package/dist/database/kysely.d.cts +152 -0
  124. package/dist/database/kysely.d.cts.map +1 -0
  125. package/dist/database/kysely.d.mts +152 -0
  126. package/dist/database/kysely.d.mts.map +1 -0
  127. package/dist/database/kysely.mjs +180 -0
  128. package/dist/database/kysely.mjs.map +1 -0
  129. package/dist/email.cjs +59 -0
  130. package/dist/email.cjs.map +1 -0
  131. package/dist/email.d.cts +50 -0
  132. package/dist/email.d.cts.map +1 -0
  133. package/dist/email.d.mts +50 -0
  134. package/dist/email.d.mts.map +1 -0
  135. package/dist/email.mjs +58 -0
  136. package/dist/email.mjs.map +1 -0
  137. package/dist/endpoints/index.cjs +21 -747
  138. package/dist/endpoints/index.d.cts +7 -343
  139. package/dist/endpoints/index.d.mts +7 -342
  140. package/dist/endpoints/index.mjs +11 -738
  141. package/dist/file-server.cjs +154 -0
  142. package/dist/file-server.cjs.map +1 -0
  143. package/dist/file-server.d.cts +156 -0
  144. package/dist/file-server.d.cts.map +1 -0
  145. package/dist/file-server.d.mts +156 -0
  146. package/dist/file-server.d.mts.map +1 -0
  147. package/dist/file-server.mjs +152 -0
  148. package/dist/file-server.mjs.map +1 -0
  149. package/dist/functions/index.cjs +4 -2
  150. package/dist/functions/index.d.cts +3 -2
  151. package/dist/functions/index.d.mts +3 -2
  152. package/dist/functions/index.mjs +4 -2
  153. package/dist/{functions-B-qt91O7.mjs → functions-Cpff1uZH.mjs} +55 -51
  154. package/dist/functions-Cpff1uZH.mjs.map +1 -0
  155. package/dist/{functions-C8i1kCMM.cjs → functions-DukjG8ov.cjs} +62 -57
  156. package/dist/functions-DukjG8ov.cjs.map +1 -0
  157. package/dist/{index-BVs9DvIj.d.cts → index-BTvozlUD.d.cts} +36 -9
  158. package/dist/index-BTvozlUD.d.cts.map +1 -0
  159. package/dist/index-Cvz551AO.d.mts +419 -0
  160. package/dist/index-Cvz551AO.d.mts.map +1 -0
  161. package/dist/index-D5zqAJ2e.d.cts +419 -0
  162. package/dist/index-D5zqAJ2e.d.cts.map +1 -0
  163. package/dist/{index-DP6fqv0I.d.mts → index-L7pz0R0T.d.mts} +48 -19
  164. package/dist/index-L7pz0R0T.d.mts.map +1 -0
  165. package/dist/index.cjs +1 -1
  166. package/dist/index.d.cts +3 -3
  167. package/dist/index.d.mts +3 -3
  168. package/dist/index.mjs +1 -1
  169. package/dist/lazyAccessors-DM6HcXQk.mjs +175 -0
  170. package/dist/lazyAccessors-DM6HcXQk.mjs.map +1 -0
  171. package/dist/lazyAccessors-DrJj8NpA.cjs +223 -0
  172. package/dist/lazyAccessors-DrJj8NpA.cjs.map +1 -0
  173. package/dist/object-storage.cjs +48 -0
  174. package/dist/object-storage.cjs.map +1 -0
  175. package/dist/object-storage.d.cts +36 -0
  176. package/dist/object-storage.d.cts.map +1 -0
  177. package/dist/object-storage.d.mts +36 -0
  178. package/dist/object-storage.d.mts.map +1 -0
  179. package/dist/object-storage.mjs +47 -0
  180. package/dist/object-storage.mjs.map +1 -0
  181. package/dist/{processAudits-CKjjivyz.cjs → processAudits-Bc8rz6Ev.cjs} +3 -3
  182. package/dist/{processAudits-CKjjivyz.cjs.map → processAudits-Bc8rz6Ev.cjs.map} +1 -1
  183. package/dist/{processAudits-ySnizdMG.mjs → processAudits-D89tICM4.mjs} +1 -1
  184. package/dist/{processAudits-ySnizdMG.mjs.map → processAudits-D89tICM4.mjs.map} +1 -1
  185. package/dist/{publisher-BrFOF847.mjs → publisher-CGEo8UKD.mjs} +1 -1
  186. package/dist/{publisher-BrFOF847.mjs.map → publisher-CGEo8UKD.mjs.map} +1 -1
  187. package/dist/{publisher-lFQleddL.cjs → publisher-CqGsXB2X.cjs} +1 -1
  188. package/dist/{publisher-lFQleddL.cjs.map → publisher-CqGsXB2X.cjs.map} +1 -1
  189. package/dist/queue/index.cjs +92 -30
  190. package/dist/queue/index.cjs.map +1 -1
  191. package/dist/queue/index.d.cts +19 -4
  192. package/dist/queue/index.d.cts.map +1 -1
  193. package/dist/queue/index.d.mts +22 -6
  194. package/dist/queue/index.d.mts.map +1 -1
  195. package/dist/queue/index.mjs +90 -29
  196. package/dist/queue/index.mjs.map +1 -1
  197. package/dist/rest-api.cjs +187 -0
  198. package/dist/rest-api.cjs.map +1 -0
  199. package/dist/rest-api.d.cts +221 -0
  200. package/dist/rest-api.d.cts.map +1 -0
  201. package/dist/rest-api.d.mts +221 -0
  202. package/dist/rest-api.d.mts.map +1 -0
  203. package/dist/rest-api.mjs +186 -0
  204. package/dist/rest-api.mjs.map +1 -0
  205. package/dist/site.cjs +48 -0
  206. package/dist/site.cjs.map +1 -0
  207. package/dist/site.d.cts +101 -0
  208. package/dist/site.d.cts.map +1 -0
  209. package/dist/site.d.mts +101 -0
  210. package/dist/site.d.mts.map +1 -0
  211. package/dist/site.mjs +47 -0
  212. package/dist/site.mjs.map +1 -0
  213. package/dist/subscribers/index.cjs +35 -27
  214. package/dist/subscribers/index.cjs.map +1 -1
  215. package/dist/subscribers/index.d.cts +20 -5
  216. package/dist/subscribers/index.d.cts.map +1 -1
  217. package/dist/subscribers/index.d.mts +23 -7
  218. package/dist/subscribers/index.d.mts.map +1 -1
  219. package/dist/subscribers/index.mjs +34 -27
  220. package/dist/subscribers/index.mjs.map +1 -1
  221. package/dist/surfaceEnv-BFXEms2f.cjs +39 -0
  222. package/dist/surfaceEnv-BFXEms2f.cjs.map +1 -0
  223. package/dist/surfaceEnv-C3Ktahea.mjs +27 -0
  224. package/dist/surfaceEnv-C3Ktahea.mjs.map +1 -0
  225. package/dist/{telemetry-3vdxGn4q.d.mts → telemetry-C3L0iS28.d.cts} +2 -2
  226. package/dist/{telemetry-3vdxGn4q.d.mts.map → telemetry-C3L0iS28.d.cts.map} +1 -1
  227. package/dist/{telemetry-Dqx-D3F7.d.cts → telemetry-D7bVFLGi.d.mts} +2 -2
  228. package/dist/{telemetry-Dqx-D3F7.d.cts.map → telemetry-D7bVFLGi.d.mts.map} +1 -1
  229. package/dist/topic/index.cjs +56 -13
  230. package/dist/topic/index.cjs.map +1 -1
  231. package/dist/topic/index.d.cts +2 -2
  232. package/dist/topic/index.d.cts.map +1 -1
  233. package/dist/topic/index.d.mts +2 -2
  234. package/dist/topic/index.d.mts.map +1 -1
  235. package/dist/topic/index.mjs +54 -12
  236. package/dist/topic/index.mjs.map +1 -1
  237. package/dist/{types-BDNGr7pv.d.mts → types-BlAkSuGI.d.cts} +1 -1
  238. package/dist/{types-BDNGr7pv.d.mts.map → types-BlAkSuGI.d.cts.map} +1 -1
  239. package/dist/{types-BdAaYDvd.d.cts → types-aKksMEWL.d.mts} +1 -1
  240. package/dist/{types-BdAaYDvd.d.cts.map → types-aKksMEWL.d.mts.map} +1 -1
  241. package/dist/types.d.cts +1 -1
  242. package/dist/types.d.mts +1 -1
  243. package/package.json +155 -23
  244. package/CHANGELOG.md +0 -396
  245. package/dist/Construct-DCMuYOox.d.mts.map +0 -1
  246. package/dist/Construct-_1wX7p_Y.d.cts.map +0 -1
  247. package/dist/Construct-r0U2zBwW.mjs.map +0 -1
  248. package/dist/Construct-vXMZJgRp.cjs.map +0 -1
  249. package/dist/Endpoint-CLPSIl6S.d.mts.map +0 -1
  250. package/dist/Endpoint-DgfRslct.d.cts.map +0 -1
  251. package/dist/HonoEndpointAdaptor-CkJENANP.cjs.map +0 -1
  252. package/dist/HonoEndpointAdaptor-DJDT3PMx.mjs.map +0 -1
  253. package/dist/Queue-DaxjwmOQ.d.cts.map +0 -1
  254. package/dist/Queue-HBDf0fqz.d.mts.map +0 -1
  255. package/dist/Subscriber-D8Xm-86W.d.mts.map +0 -1
  256. package/dist/Topic-C5ZMfveW.d.cts.map +0 -1
  257. package/dist/Topic-DT10AqHk.d.mts.map +0 -1
  258. package/dist/endpoints/index.cjs.map +0 -1
  259. package/dist/endpoints/index.d.cts.map +0 -1
  260. package/dist/endpoints/index.d.mts.map +0 -1
  261. package/dist/endpoints/index.mjs.map +0 -1
  262. package/dist/functions-B-qt91O7.mjs.map +0 -1
  263. package/dist/functions-C8i1kCMM.cjs.map +0 -1
  264. package/dist/index-BVs9DvIj.d.cts.map +0 -1
  265. package/dist/index-DP6fqv0I.d.mts.map +0 -1
  266. package/dist/lazyAccessors-DfqZR6C4.mjs.map +0 -1
  267. package/dist/lazyAccessors-DmTG8sQH.cjs.map +0 -1
  268. package/src/Construct.ts +0 -204
  269. package/src/__benchmarks__/build-time-optimization.bench.ts +0 -274
  270. package/src/__benchmarks__/endpoint.bench.ts +0 -494
  271. package/src/__benchmarks__/fixtures.ts +0 -241
  272. package/src/__benchmarks__/hono-adaptor.bench.ts +0 -533
  273. package/src/__benchmarks__/hono-server.bench.ts +0 -249
  274. package/src/__benchmarks__/response-builder.bench.ts +0 -428
  275. package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +0 -319
  276. package/src/__benchmarks__/strategies/strategy-c-middleware.ts +0 -530
  277. package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +0 -567
  278. package/src/__tests__/Construct.environment.spec.ts +0 -704
  279. package/src/__tests__/publisher.setting.spec.ts +0 -508
  280. package/src/__tests__/publisher.spec.ts +0 -452
  281. package/src/adaptors/aws.ts +0 -6
  282. package/src/adaptors/hono.ts +0 -1
  283. package/src/adaptors/testing.ts +0 -11
  284. package/src/crons/AWSScheduledFunction.ts +0 -73
  285. package/src/crons/Cron.ts +0 -149
  286. package/src/crons/CronBuilder.ts +0 -271
  287. package/src/crons/__tests__/AWSScheduledFunction.spec.ts +0 -152
  288. package/src/crons/__tests__/Cron.spec.ts +0 -464
  289. package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +0 -227
  290. package/src/crons/index.ts +0 -12
  291. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +0 -677
  292. package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +0 -105
  293. package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +0 -97
  294. package/src/endpoints/Authorizer.ts +0 -152
  295. package/src/endpoints/Endpoint.ts +0 -1287
  296. package/src/endpoints/EndpointBuilder.ts +0 -758
  297. package/src/endpoints/EndpointFactory.ts +0 -1148
  298. package/src/endpoints/HonoEndpointAdaptor.ts +0 -677
  299. package/src/endpoints/MswEndpointAdaptor.ts +0 -226
  300. package/src/endpoints/TestEndpointAdaptor.ts +0 -422
  301. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +0 -499
  302. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +0 -560
  303. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +0 -1304
  304. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +0 -626
  305. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +0 -732
  306. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +0 -296
  307. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +0 -951
  308. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.responseType.spec.ts +0 -111
  309. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +0 -307
  310. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +0 -629
  311. package/src/endpoints/__tests__/Authorizer.spec.ts +0 -286
  312. package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +0 -207
  313. package/src/endpoints/__tests__/Endpoint.headers.spec.ts +0 -187
  314. package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +0 -175
  315. package/src/endpoints/__tests__/Endpoint.spec.ts +0 -857
  316. package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +0 -448
  317. package/src/endpoints/__tests__/EndpointBuilder.responseType.spec.ts +0 -47
  318. package/src/endpoints/__tests__/EndpointBuilder.spec.ts +0 -523
  319. package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +0 -492
  320. package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +0 -509
  321. package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +0 -190
  322. package/src/endpoints/__tests__/EndpointFactory.spec.ts +0 -479
  323. package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +0 -155
  324. package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +0 -703
  325. package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +0 -632
  326. package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +0 -577
  327. package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +0 -1067
  328. package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +0 -317
  329. package/src/endpoints/__tests__/HonoEndpointAdaptor.pgboss-publisher.spec.ts +0 -289
  330. package/src/endpoints/__tests__/HonoEndpointAdaptor.responseType.spec.ts +0 -128
  331. package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +0 -1207
  332. package/src/endpoints/__tests__/MswEndpointAdaptor.spec.ts +0 -211
  333. package/src/endpoints/__tests__/ResponseBuilder.spec.ts +0 -235
  334. package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +0 -602
  335. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +0 -1044
  336. package/src/endpoints/__tests__/__snapshots__/HonoEndpointAdaptor.spec.ts.snap +0 -54
  337. package/src/endpoints/__tests__/endpoint-types.test.ts +0 -88
  338. package/src/endpoints/__tests__/helpers.spec.ts +0 -37
  339. package/src/endpoints/__tests__/lazyAccessors.spec.ts +0 -330
  340. package/src/endpoints/__tests__/processAudits.spec.ts +0 -631
  341. package/src/endpoints/audit.ts +0 -87
  342. package/src/endpoints/helpers.ts +0 -98
  343. package/src/endpoints/index.ts +0 -42
  344. package/src/endpoints/lazyAccessors.ts +0 -241
  345. package/src/endpoints/parseHonoQuery.ts +0 -16
  346. package/src/endpoints/parseQueryParams.ts +0 -32
  347. package/src/endpoints/processAudits.ts +0 -371
  348. package/src/endpoints/rls.ts +0 -67
  349. package/src/functions/AWSLambdaFunction.ts +0 -348
  350. package/src/functions/BaseFunctionBuilder.ts +0 -201
  351. package/src/functions/Function.ts +0 -238
  352. package/src/functions/FunctionBuilder.ts +0 -391
  353. package/src/functions/FunctionExecutionWrapper.ts +0 -216
  354. package/src/functions/TestFunctionAdaptor.ts +0 -217
  355. package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +0 -513
  356. package/src/functions/__tests__/Function.audits.spec.ts +0 -393
  357. package/src/functions/__tests__/Function.spec.ts +0 -477
  358. package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +0 -207
  359. package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +0 -480
  360. package/src/functions/index.ts +0 -12
  361. package/src/index.ts +0 -23
  362. package/src/publisher.ts +0 -93
  363. package/src/queue/AWSLambdaQueueAdaptor.ts +0 -162
  364. package/src/queue/Queue.ts +0 -128
  365. package/src/queue/QueueBuilder.ts +0 -115
  366. package/src/queue/TestQueueAdaptor.ts +0 -63
  367. package/src/queue/__tests__/QueueBuilder.spec.ts +0 -137
  368. package/src/queue/index.ts +0 -12
  369. package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +0 -342
  370. package/src/subscribers/Subscriber.ts +0 -117
  371. package/src/subscribers/SubscriberBuilder.ts +0 -186
  372. package/src/subscribers/TestSubscriberAdaptor.ts +0 -133
  373. package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +0 -1018
  374. package/src/subscribers/__tests__/Subscriber.spec.ts +0 -430
  375. package/src/subscribers/__tests__/TestSubscriberAdaptor.spec.ts +0 -652
  376. package/src/subscribers/index.ts +0 -6
  377. package/src/telemetry.ts +0 -103
  378. package/src/topic/Topic.ts +0 -103
  379. package/src/topic/TopicBuilder.ts +0 -51
  380. package/src/topic/__tests__/TopicBuilder.spec.ts +0 -82
  381. package/src/topic/index.ts +0 -11
  382. package/src/types.ts +0 -13
  383. package/test.ts +0 -91
  384. package/tsconfig.json +0 -9
  385. package/tsdown.config.ts +0 -34
@@ -1,533 +0,0 @@
1
- // @ts-nocheck - Experimental benchmark file
2
- /**
3
- * Hono Adaptor Performance Benchmarks
4
- *
5
- * Run with: pnpm bench packages/constructs/src/__benchmarks__/hono-adaptor.bench.ts
6
- *
7
- * Compares:
8
- * - Current HonoEndpoint implementation
9
- * - Strategy A: Lazy Service Resolution
10
- * - Strategy C: Middleware Composition
11
- * - Strategy D: Opt-in Event Publishing
12
- * - Combined: Fully Optimized (A + C + D)
13
- */
14
- import { EnvironmentParser } from '@geekmidas/envkit';
15
- import { ServiceDiscovery } from '@geekmidas/services';
16
- import { Hono } from 'hono';
17
- import { bench, describe } from 'vitest';
18
- import { HonoEndpoint } from '../endpoints/HonoEndpointAdaptor';
19
- import { allEndpoints, mockLogger, simpleEndpoint } from './fixtures';
20
- import { OptimizedHonoEndpoint } from './strategies/strategy-a-lazy-services';
21
- import {
22
- MiddlewareHonoEndpoint,
23
- MinimalHonoEndpoint,
24
- } from './strategies/strategy-c-middleware';
25
- import {
26
- FullyOptimizedHonoEndpoint,
27
- OptInEventHonoEndpoint,
28
- } from './strategies/strategy-d-opt-in-events';
29
-
30
- // ============================================================================
31
- // Test Setup
32
- // ============================================================================
33
-
34
- const envParser = new EnvironmentParser({});
35
-
36
- function createTestApp(
37
- endpoints: typeof allEndpoints,
38
- adaptor: typeof HonoEndpoint = HonoEndpoint,
39
- ) {
40
- const app = new Hono();
41
- const serviceDiscovery = ServiceDiscovery.getInstance(envParser);
42
- adaptor.addRoutes(endpoints as any, serviceDiscovery as any, app);
43
- return app;
44
- }
45
-
46
- // Pre-create apps for benchmarks (measure request handling, not setup)
47
- const currentApp = createTestApp(allEndpoints, HonoEndpoint);
48
- const lazyServicesApp = createTestApp(allEndpoints, OptimizedHonoEndpoint);
49
- const middlewareApp = createTestApp(allEndpoints, MiddlewareHonoEndpoint);
50
- const _minimalApp = createTestApp(allEndpoints, MinimalHonoEndpoint);
51
- const optInEventsApp = createTestApp(allEndpoints, OptInEventHonoEndpoint);
52
- const fullyOptimizedApp = createTestApp(
53
- allEndpoints,
54
- FullyOptimizedHonoEndpoint,
55
- );
56
-
57
- // Simple apps for focused comparison
58
- const currentSimpleApp = createTestApp([simpleEndpoint] as any, HonoEndpoint);
59
- const lazySimpleApp = createTestApp(
60
- [simpleEndpoint] as any,
61
- OptimizedHonoEndpoint,
62
- );
63
- const middlewareSimpleApp = createTestApp(
64
- [simpleEndpoint] as any,
65
- MiddlewareHonoEndpoint,
66
- );
67
- const minimalSimpleApp = createTestApp(
68
- [simpleEndpoint] as any,
69
- MinimalHonoEndpoint,
70
- );
71
- const optInSimpleApp = createTestApp(
72
- [simpleEndpoint] as any,
73
- OptInEventHonoEndpoint,
74
- );
75
- const fullyOptimizedSimpleApp = createTestApp(
76
- [simpleEndpoint] as any,
77
- FullyOptimizedHonoEndpoint,
78
- );
79
-
80
- // ============================================================================
81
- // Request Factory Helpers
82
- // ============================================================================
83
-
84
- function createRequest(
85
- path: string,
86
- options: {
87
- method?: string;
88
- body?: unknown;
89
- headers?: Record<string, string>;
90
- } = {},
91
- ) {
92
- const { method = 'GET', body, headers = {} } = options;
93
-
94
- const init: RequestInit = {
95
- method,
96
- headers: {
97
- 'Content-Type': 'application/json',
98
- ...headers,
99
- },
100
- };
101
-
102
- if (body) {
103
- init.body = JSON.stringify(body);
104
- }
105
-
106
- return new Request(`http://localhost${path}`, init);
107
- }
108
-
109
- // ============================================================================
110
- // Baseline: Raw Hono vs Current Implementation
111
- // ============================================================================
112
-
113
- describe('Baseline: Raw Hono vs HonoEndpoint', () => {
114
- // Raw Hono baseline
115
- const rawHono = new Hono();
116
- rawHono.get('/health', (c) =>
117
- c.json({ status: 'ok', timestamp: Date.now() }),
118
- );
119
-
120
- bench('raw Hono (baseline)', async () => {
121
- const req = createRequest('/health');
122
- await rawHono.fetch(req);
123
- });
124
-
125
- bench('HonoEndpoint adaptor (current)', async () => {
126
- const req = createRequest('/health');
127
- await currentSimpleApp.fetch(req);
128
- });
129
- });
130
-
131
- // ============================================================================
132
- // Strategy Comparison: Simple Endpoint
133
- // ============================================================================
134
-
135
- describe('Strategy Comparison: Simple Endpoint (GET /health)', () => {
136
- const req = createRequest('/health');
137
-
138
- bench('Current Implementation', async () => {
139
- await currentSimpleApp.fetch(req);
140
- });
141
-
142
- bench('Strategy A: Lazy Services', async () => {
143
- await lazySimpleApp.fetch(req);
144
- });
145
-
146
- bench('Strategy C: Middleware Composition', async () => {
147
- await middlewareSimpleApp.fetch(req);
148
- });
149
-
150
- bench('Strategy C: Minimal (no middleware)', async () => {
151
- await minimalSimpleApp.fetch(req);
152
- });
153
-
154
- bench('Strategy D: Opt-in Events', async () => {
155
- await optInSimpleApp.fetch(req);
156
- });
157
-
158
- bench('Combined: Fully Optimized (A+C+D)', async () => {
159
- await fullyOptimizedSimpleApp.fetch(req);
160
- });
161
- });
162
-
163
- // ============================================================================
164
- // Strategy Comparison: Auth Endpoint
165
- // ============================================================================
166
-
167
- describe('Strategy Comparison: Auth Endpoint (GET /profile)', () => {
168
- const req = createRequest('/profile', {
169
- headers: { Authorization: 'Bearer test-token' },
170
- });
171
-
172
- bench('Current Implementation', async () => {
173
- await currentApp.fetch(req);
174
- });
175
-
176
- bench('Strategy A: Lazy Services', async () => {
177
- await lazyServicesApp.fetch(req);
178
- });
179
-
180
- bench('Strategy C: Middleware Composition', async () => {
181
- await middlewareApp.fetch(req);
182
- });
183
-
184
- bench('Strategy D: Opt-in Events', async () => {
185
- await optInEventsApp.fetch(req);
186
- });
187
-
188
- bench('Combined: Fully Optimized (A+C+D)', async () => {
189
- await fullyOptimizedApp.fetch(req);
190
- });
191
- });
192
-
193
- // ============================================================================
194
- // Strategy Comparison: Database Endpoint
195
- // ============================================================================
196
-
197
- describe('Strategy Comparison: Database Endpoint (GET /users)', () => {
198
- const req = createRequest('/users');
199
-
200
- bench('Current Implementation', async () => {
201
- await currentApp.fetch(req);
202
- });
203
-
204
- bench('Strategy A: Lazy Services', async () => {
205
- await lazyServicesApp.fetch(req);
206
- });
207
-
208
- bench('Strategy C: Middleware Composition', async () => {
209
- await middlewareApp.fetch(req);
210
- });
211
-
212
- bench('Strategy D: Opt-in Events', async () => {
213
- await optInEventsApp.fetch(req);
214
- });
215
-
216
- bench('Combined: Fully Optimized (A+C+D)', async () => {
217
- await fullyOptimizedApp.fetch(req);
218
- });
219
- });
220
-
221
- // ============================================================================
222
- // Strategy Comparison: Complex Endpoint
223
- // ============================================================================
224
-
225
- describe('Strategy Comparison: Complex Endpoint (POST /orders)', () => {
226
- const req = createRequest('/orders', {
227
- method: 'POST',
228
- body: { items: [{ sku: 'SKU001', qty: 2 }] },
229
- headers: { Authorization: 'Bearer test-token' },
230
- });
231
-
232
- bench('Current Implementation', async () => {
233
- await currentApp.fetch(req);
234
- });
235
-
236
- bench('Strategy A: Lazy Services', async () => {
237
- await lazyServicesApp.fetch(req);
238
- });
239
-
240
- bench('Strategy C: Middleware Composition', async () => {
241
- await middlewareApp.fetch(req);
242
- });
243
-
244
- bench('Strategy D: Opt-in Events', async () => {
245
- await optInEventsApp.fetch(req);
246
- });
247
-
248
- bench('Combined: Fully Optimized (A+C+D)', async () => {
249
- await fullyOptimizedApp.fetch(req);
250
- });
251
- });
252
-
253
- // ============================================================================
254
- // Strategy Comparison: POST with Validation
255
- // ============================================================================
256
-
257
- describe('Strategy Comparison: POST with Body Validation (POST /users)', () => {
258
- const req = createRequest('/users', {
259
- method: 'POST',
260
- body: { name: 'Test User', email: 'test@example.com' },
261
- });
262
-
263
- bench('Current Implementation', async () => {
264
- await currentApp.fetch(req);
265
- });
266
-
267
- bench('Strategy A: Lazy Services', async () => {
268
- await lazyServicesApp.fetch(req);
269
- });
270
-
271
- bench('Strategy C: Middleware Composition', async () => {
272
- await middlewareApp.fetch(req);
273
- });
274
-
275
- bench('Strategy D: Opt-in Events', async () => {
276
- await optInEventsApp.fetch(req);
277
- });
278
-
279
- bench('Combined: Fully Optimized (A+C+D)', async () => {
280
- await fullyOptimizedApp.fetch(req);
281
- });
282
- });
283
-
284
- // ============================================================================
285
- // Strategy Comparison: Query Parameters
286
- // ============================================================================
287
-
288
- describe('Strategy Comparison: Query Params (GET /search)', () => {
289
- const req = createRequest('/search?q=test&page=1&limit=10');
290
-
291
- bench('Current Implementation', async () => {
292
- await currentApp.fetch(req);
293
- });
294
-
295
- bench('Strategy A: Lazy Services', async () => {
296
- await lazyServicesApp.fetch(req);
297
- });
298
-
299
- bench('Strategy C: Middleware Composition', async () => {
300
- await middlewareApp.fetch(req);
301
- });
302
-
303
- bench('Strategy D: Opt-in Events', async () => {
304
- await optInEventsApp.fetch(req);
305
- });
306
-
307
- bench('Combined: Fully Optimized (A+C+D)', async () => {
308
- await fullyOptimizedApp.fetch(req);
309
- });
310
- });
311
-
312
- // ============================================================================
313
- // App Setup Performance
314
- // ============================================================================
315
-
316
- describe('App Setup Performance', () => {
317
- bench('Current: setup with 8 endpoints', () => {
318
- const app = new Hono();
319
- const sd = ServiceDiscovery.getInstance(mockLogger, envParser);
320
- HonoEndpoint.addRoutes(allEndpoints as any, sd as any, app);
321
- });
322
-
323
- bench('Strategy A: setup with 8 endpoints', () => {
324
- const app = new Hono();
325
- const sd = ServiceDiscovery.getInstance(mockLogger, envParser);
326
- OptimizedHonoEndpoint.addRoutes(allEndpoints as any, sd as any, app);
327
- });
328
-
329
- bench('Strategy C: setup with 8 endpoints', () => {
330
- const app = new Hono();
331
- const sd = ServiceDiscovery.getInstance(mockLogger, envParser);
332
- MiddlewareHonoEndpoint.addRoutes(allEndpoints as any, sd as any, app);
333
- });
334
-
335
- bench('Strategy D: setup with 8 endpoints', () => {
336
- const app = new Hono();
337
- const sd = ServiceDiscovery.getInstance(mockLogger, envParser);
338
- OptInEventHonoEndpoint.addRoutes(allEndpoints as any, sd as any, app);
339
- });
340
-
341
- bench('Combined: setup with 8 endpoints', () => {
342
- const app = new Hono();
343
- const sd = ServiceDiscovery.getInstance(mockLogger, envParser);
344
- FullyOptimizedHonoEndpoint.addRoutes(allEndpoints as any, sd as any, app);
345
- });
346
- });
347
-
348
- // ============================================================================
349
- // Memory Pressure Tests
350
- // ============================================================================
351
-
352
- describe('Memory Pressure: 100 Sequential Requests', () => {
353
- const req = createRequest('/health');
354
-
355
- bench('Current Implementation', async () => {
356
- for (let i = 0; i < 100; i++) {
357
- await currentApp.fetch(req);
358
- }
359
- });
360
-
361
- bench('Strategy A: Lazy Services', async () => {
362
- for (let i = 0; i < 100; i++) {
363
- await lazyServicesApp.fetch(req);
364
- }
365
- });
366
-
367
- bench('Strategy C: Middleware Composition', async () => {
368
- for (let i = 0; i < 100; i++) {
369
- await middlewareApp.fetch(req);
370
- }
371
- });
372
-
373
- bench('Strategy D: Opt-in Events', async () => {
374
- for (let i = 0; i < 100; i++) {
375
- await optInEventsApp.fetch(req);
376
- }
377
- });
378
-
379
- bench('Combined: Fully Optimized', async () => {
380
- for (let i = 0; i < 100; i++) {
381
- await fullyOptimizedApp.fetch(req);
382
- }
383
- });
384
- });
385
-
386
- // ============================================================================
387
- // Concurrent Requests
388
- // ============================================================================
389
-
390
- describe('Concurrent Requests: 100 Parallel', () => {
391
- const req = createRequest('/health');
392
-
393
- bench('Current Implementation', async () => {
394
- await Promise.all(
395
- Array(100)
396
- .fill(null)
397
- .map(() => currentApp.fetch(req)),
398
- );
399
- });
400
-
401
- bench('Strategy A: Lazy Services', async () => {
402
- await Promise.all(
403
- Array(100)
404
- .fill(null)
405
- .map(() => lazyServicesApp.fetch(req)),
406
- );
407
- });
408
-
409
- bench('Strategy C: Middleware Composition', async () => {
410
- await Promise.all(
411
- Array(100)
412
- .fill(null)
413
- .map(() => middlewareApp.fetch(req)),
414
- );
415
- });
416
-
417
- bench('Strategy D: Opt-in Events', async () => {
418
- await Promise.all(
419
- Array(100)
420
- .fill(null)
421
- .map(() => optInEventsApp.fetch(req)),
422
- );
423
- });
424
-
425
- bench('Combined: Fully Optimized', async () => {
426
- await Promise.all(
427
- Array(100)
428
- .fill(null)
429
- .map(() => fullyOptimizedApp.fetch(req)),
430
- );
431
- });
432
- });
433
-
434
- // ============================================================================
435
- // Validation Overhead Comparison
436
- // ============================================================================
437
-
438
- describe('Validation Overhead', () => {
439
- // Without validation
440
- const noValidationApp = new Hono();
441
- noValidationApp.post('/test', async (c) => {
442
- const body = await c.req.json();
443
- return c.json({ received: body });
444
- });
445
-
446
- // With manual Zod validation
447
- const { z } = require('zod');
448
- const schema = z.object({ name: z.string(), email: z.string().email() });
449
-
450
- const manualValidationApp = new Hono();
451
- manualValidationApp.post('/test', async (c) => {
452
- const body = await c.req.json();
453
- const parsed = schema.safeParse(body);
454
- if (!parsed.success) {
455
- return c.json({ error: parsed.error }, 400);
456
- }
457
- return c.json({ received: parsed.data });
458
- });
459
-
460
- const testBody = { name: 'Test', email: 'test@example.com' };
461
-
462
- bench('no validation (baseline)', async () => {
463
- await noValidationApp.fetch(
464
- createRequest('/test', { method: 'POST', body: testBody }),
465
- );
466
- });
467
-
468
- bench('manual Zod validation', async () => {
469
- await manualValidationApp.fetch(
470
- createRequest('/test', { method: 'POST', body: testBody }),
471
- );
472
- });
473
-
474
- bench('Current HonoEndpoint validation', async () => {
475
- await currentApp.fetch(
476
- createRequest('/users', { method: 'POST', body: testBody }),
477
- );
478
- });
479
-
480
- bench('Optimized HonoEndpoint validation', async () => {
481
- await fullyOptimizedApp.fetch(
482
- createRequest('/users', { method: 'POST', body: testBody }),
483
- );
484
- });
485
- });
486
-
487
- // ============================================================================
488
- // Middleware Overhead Analysis
489
- // ============================================================================
490
-
491
- describe('Middleware Overhead Analysis', () => {
492
- // App with no middleware
493
- const noMiddlewareApp = new Hono();
494
- noMiddlewareApp.get('/test', (c) => c.json({ ok: true }));
495
-
496
- // App with timing middleware
497
- const { timing } = require('hono/timing');
498
- const timingApp = new Hono();
499
- timingApp.use('*', timing());
500
- timingApp.get('/test', (c) => c.json({ ok: true }));
501
-
502
- // App with multiple middleware
503
- const multiMiddlewareApp = new Hono();
504
- multiMiddlewareApp.use('*', async (c, next) => {
505
- c.set('startTime' as any, Date.now());
506
- await next();
507
- });
508
- multiMiddlewareApp.use('*', async (_c, next) => {
509
- await next();
510
- // Post-processing
511
- });
512
- multiMiddlewareApp.get('/test', (c) => c.json({ ok: true }));
513
-
514
- bench('no middleware (baseline)', async () => {
515
- await noMiddlewareApp.fetch(createRequest('/test'));
516
- });
517
-
518
- bench('timing middleware only', async () => {
519
- await timingApp.fetch(createRequest('/test'));
520
- });
521
-
522
- bench('multiple custom middleware', async () => {
523
- await multiMiddlewareApp.fetch(createRequest('/test'));
524
- });
525
-
526
- bench('HonoEndpoint (all features)', async () => {
527
- await currentApp.fetch(createRequest('/health'));
528
- });
529
-
530
- bench('Fully Optimized (minimal middleware)', async () => {
531
- await fullyOptimizedApp.fetch(createRequest('/health'));
532
- });
533
- });