@geekmidas/constructs 9.0.2 → 10.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/README.md +71 -44
  2. package/dist/{AWSScheduledFunction-Bn99MceY.d.cts → AWSScheduledFunction-BvFvBsBN.d.cts} +8 -3
  3. package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts.map → AWSScheduledFunction-BvFvBsBN.d.cts.map} +1 -1
  4. package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts → AWSScheduledFunction-CVccZO-L.d.mts} +9 -4
  5. package/dist/{AWSScheduledFunction-Bn99MceY.d.cts.map → AWSScheduledFunction-CVccZO-L.d.mts.map} +1 -1
  6. package/dist/{AWSScheduledFunction-CufMMhGB.mjs → AWSScheduledFunction-Db1lttJH.mjs} +3 -3
  7. package/dist/{AWSScheduledFunction-CufMMhGB.mjs.map → AWSScheduledFunction-Db1lttJH.mjs.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-HmWM6YYu.mjs} +4 -3
  13. package/dist/Construct-HmWM6YYu.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/{lazyAccessors-DfqZR6C4.mjs → Endpoint-BGwpNEX4.mjs} +840 -1003
  21. package/dist/Endpoint-BGwpNEX4.mjs.map +1 -0
  22. package/dist/{Endpoint-DgfRslct.d.cts → Endpoint-BnxZqIX-.d.cts} +53 -4
  23. package/dist/Endpoint-BnxZqIX-.d.cts.map +1 -0
  24. package/dist/{Endpoint-CLPSIl6S.d.mts → Endpoint-ROcXU-eH.d.mts} +55 -6
  25. package/dist/Endpoint-ROcXU-eH.d.mts.map +1 -0
  26. package/dist/EndpointFactory-DYoGLaIT.cjs +850 -0
  27. package/dist/EndpointFactory-DYoGLaIT.cjs.map +1 -0
  28. package/dist/EndpointFactory-Di0X9AWp.mjs +808 -0
  29. package/dist/EndpointFactory-Di0X9AWp.mjs.map +1 -0
  30. package/dist/{HonoEndpointAdaptor-DJDT3PMx.mjs → HonoEndpointAdaptor-DFKIIG2o.mjs} +5 -4
  31. package/dist/HonoEndpointAdaptor-DFKIIG2o.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-CvT_q7Y4.mjs} +55 -51
  154. package/dist/functions-CvT_q7Y4.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-7OcOWe75.d.cts +419 -0
  158. package/dist/index-7OcOWe75.d.cts.map +1 -0
  159. package/dist/index-Bt-F7u8L.d.mts +419 -0
  160. package/dist/index-Bt-F7u8L.d.mts.map +1 -0
  161. package/dist/{index-DP6fqv0I.d.mts → index-CPeqtKgq.d.mts} +48 -19
  162. package/dist/index-CPeqtKgq.d.mts.map +1 -0
  163. package/dist/{index-BVs9DvIj.d.cts → index-Dadljnh_.d.cts} +36 -9
  164. package/dist/index-Dadljnh_.d.cts.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,567 +0,0 @@
1
- // @ts-nocheck - Experimental benchmark strategy file
2
- /**
3
- * Strategy D: Opt-in Event Publishing
4
- *
5
- * Key optimizations:
6
- * 1. Only add event middleware to routes that publish events
7
- * 2. Remove global event middleware entirely
8
- * 3. Zero overhead for routes without events
9
- * 4. Per-route event publishing configuration
10
- */
11
- import type { Logger } from '@geekmidas/logger';
12
- import type {
13
- Service,
14
- ServiceDiscovery,
15
- ServiceRecord,
16
- } from '@geekmidas/services';
17
- import type { StandardSchemaV1 } from '@standard-schema/spec';
18
- import type { Context, Hono, Next } from 'hono';
19
- import { validator } from 'hono/validator';
20
- import {
21
- Endpoint,
22
- type EndpointSchemas,
23
- ResponseBuilder,
24
- } from '../../endpoints/Endpoint';
25
- import { parseHonoQuery } from '../../endpoints/parseHonoQuery';
26
- import type { HttpMethod, LowerHttpMethod } from '../../types';
27
-
28
- // ============================================================================
29
- // Event Publishing Middleware (Per-Route)
30
- // ============================================================================
31
-
32
- /**
33
- * Creates event publishing middleware only for endpoints with events
34
- * This runs AFTER the handler to publish events on success
35
- */
36
- function createEventPublishMiddleware<
37
- TServices extends Service[],
38
- TLogger extends Logger,
39
- >(
40
- endpoint: Endpoint<
41
- any,
42
- any,
43
- any,
44
- any,
45
- TServices,
46
- TLogger,
47
- any,
48
- any,
49
- any,
50
- any,
51
- any,
52
- any,
53
- any,
54
- any
55
- >,
56
- _serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,
57
- ): ((c: Context, next: Next) => Promise<Response | undefined>) | null {
58
- // Return null if no events configured - middleware won't be added
59
- if (!endpoint.events || endpoint.events.length === 0) {
60
- return null;
61
- }
62
-
63
- return async (c, next) => {
64
- await next();
65
-
66
- // Only publish events on success
67
- if (Endpoint.isSuccessStatus(c.res.status)) {
68
- const response = c.get('__response');
69
- const logger = c.get('__logger') as Logger;
70
-
71
- if (response !== undefined) {
72
- // Note: In a real implementation, this would call publishConstructEvents
73
- // For benchmarking, we simulate the work
74
- await simulateEventPublish(endpoint.events, response, logger);
75
- }
76
- }
77
- };
78
- }
79
-
80
- /**
81
- * Simulates event publishing for benchmarking
82
- */
83
- async function simulateEventPublish(
84
- events: any[],
85
- response: any,
86
- logger: Logger,
87
- ): Promise<void> {
88
- // Simulate the async work of event publishing
89
- // In production, this would serialize and publish to a message broker
90
- for (const event of events) {
91
- // Simulated event processing
92
- const eventPayload = typeof event === 'function' ? event(response) : event;
93
- logger.debug({ event: eventPayload }, 'Publishing event');
94
- }
95
- }
96
-
97
- // ============================================================================
98
- // Hono Context Type Augmentation
99
- // ============================================================================
100
-
101
- declare module 'hono' {
102
- interface ContextVariableMap {
103
- __response: unknown;
104
- __logger: Logger;
105
- __endpoint: Endpoint<
106
- any,
107
- any,
108
- any,
109
- any,
110
- any,
111
- any,
112
- any,
113
- any,
114
- any,
115
- any,
116
- any,
117
- any,
118
- any,
119
- any
120
- >;
121
- }
122
- }
123
-
124
- // ============================================================================
125
- // Main Adaptor with Opt-in Events
126
- // ============================================================================
127
-
128
- /**
129
- * HonoEndpoint adaptor with opt-in event publishing
130
- * No global event middleware - only routes with events get the overhead
131
- */
132
- export class OptInEventHonoEndpoint {
133
- /**
134
- * Add routes with opt-in event publishing
135
- */
136
- static addRoutes<
137
- TServices extends Service[] = [],
138
- TLogger extends Logger = Logger,
139
- >(
140
- endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],
141
- serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,
142
- app: Hono,
143
- ): void {
144
- // NO global event middleware here!
145
- // Each route adds its own if needed
146
-
147
- // Sort endpoints (static routes before dynamic)
148
- const sortedEndpoints = [...endpoints].sort((a, b) => {
149
- const aHasDynamic = a.route.includes(':');
150
- const bHasDynamic = b.route.includes(':');
151
- if (!aHasDynamic && bHasDynamic) return -1;
152
- if (aHasDynamic && !bHasDynamic) return 1;
153
- return a.route.localeCompare(b.route);
154
- });
155
-
156
- for (const endpoint of sortedEndpoints) {
157
- OptInEventHonoEndpoint.addRoute(endpoint, serviceDiscovery, app);
158
- }
159
- }
160
-
161
- /**
162
- * Add a single route with opt-in event publishing
163
- */
164
- static addRoute<
165
- TRoute extends string,
166
- TMethod extends HttpMethod,
167
- TInput extends EndpointSchemas = {},
168
- TOutSchema extends StandardSchemaV1 | undefined = undefined,
169
- TServices extends Service[] = [],
170
- TLogger extends Logger = Logger,
171
- >(
172
- endpoint: Endpoint<
173
- TRoute,
174
- TMethod,
175
- TInput,
176
- TOutSchema,
177
- TServices,
178
- TLogger,
179
- any,
180
- any,
181
- any,
182
- any,
183
- any,
184
- any,
185
- any,
186
- any
187
- >,
188
- serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,
189
- app: Hono,
190
- ): void {
191
- const { route } = endpoint;
192
- const method = endpoint.method.toLowerCase() as LowerHttpMethod<TMethod>;
193
-
194
- // Pre-resolve services at setup time
195
- const servicesPromise =
196
- endpoint.services.length > 0
197
- ? serviceDiscovery.register(endpoint.services)
198
- : Promise.resolve({} as ServiceRecord<TServices>);
199
-
200
- // Pre-resolve database service if configured
201
- const dbPromise = endpoint.databaseService
202
- ? serviceDiscovery
203
- .register([endpoint.databaseService])
204
- .then(
205
- (s) => s[endpoint.databaseService?.serviceName as keyof typeof s],
206
- )
207
- : Promise.resolve(undefined);
208
-
209
- // Build middleware chain
210
- const middlewares: ((
211
- c: Context,
212
- next: Next,
213
- ) => Promise<Response | undefined>)[] = [];
214
-
215
- // Validators (always needed)
216
- const validators = [
217
- validator('json', async (value, c) => {
218
- if (!endpoint.input?.body) return undefined;
219
- const parsed = await Endpoint.validate(endpoint.input.body, value);
220
- if (parsed.issues) return c.json(parsed.issues, 422);
221
- return parsed.value;
222
- }),
223
- validator('query', async (_, c) => {
224
- if (!endpoint.input?.query) return undefined;
225
- const parsedQuery = parseHonoQuery(c);
226
- const parsed = await Endpoint.validate(
227
- endpoint.input.query,
228
- parsedQuery,
229
- );
230
- if (parsed.issues) return c.json(parsed.issues, 422);
231
- return parsed.value;
232
- }),
233
- validator('param', async (params, c) => {
234
- if (!endpoint.input?.params) return undefined;
235
- const parsed = await Endpoint.validate(endpoint.input.params, params);
236
- if (parsed.issues) return c.json(parsed.issues, 422);
237
- return parsed.value;
238
- }),
239
- ];
240
-
241
- // Add event middleware ONLY if endpoint has events
242
- const eventMiddleware = createEventPublishMiddleware(
243
- endpoint,
244
- serviceDiscovery,
245
- );
246
- if (eventMiddleware) {
247
- middlewares.push(eventMiddleware);
248
- }
249
-
250
- // Core handler
251
- const handler = async (c: Context): Promise<Response> => {
252
- try {
253
- const [services, db] = await Promise.all([servicesPromise, dbPromise]);
254
-
255
- const headerValues = c.req.header();
256
- const header = Endpoint.createHeaders(headerValues);
257
- const cookie = Endpoint.createCookies(headerValues.cookie);
258
-
259
- // Handle authorization if needed
260
- let session: unknown;
261
- if (endpoint.authorizer !== 'none') {
262
- session = await endpoint.getSession({
263
- services: services as any,
264
- logger: endpoint.logger,
265
- header,
266
- cookie,
267
- ...(db !== undefined && { db }),
268
- } as any);
269
-
270
- const isAuthorized = await endpoint.authorize({
271
- header,
272
- cookie,
273
- services: services as any,
274
- logger: endpoint.logger,
275
- session,
276
- });
277
-
278
- if (!isAuthorized) {
279
- return c.json({ error: 'Unauthorized' }, 401);
280
- }
281
- }
282
-
283
- // Execute handler
284
- const responseBuilder = new ResponseBuilder();
285
- const response = await endpoint.handler(
286
- {
287
- services: services as any,
288
- logger: endpoint.logger,
289
- body: c.req.valid('json'),
290
- query: c.req.valid('query'),
291
- params: c.req.valid('param'),
292
- session,
293
- header,
294
- cookie,
295
- auditor: undefined,
296
- db,
297
- } as any,
298
- responseBuilder,
299
- );
300
-
301
- // Store response for event middleware (only needed if events are configured)
302
- if (endpoint.events?.length) {
303
- c.set('__response', response);
304
- c.set('__logger', endpoint.logger);
305
- }
306
-
307
- // Build response
308
- let data = response;
309
- let metadata = responseBuilder.getMetadata();
310
-
311
- if (Endpoint.hasMetadata(response)) {
312
- data = response.data;
313
- metadata = response.metadata;
314
- }
315
-
316
- const output = endpoint.outputSchema
317
- ? await endpoint.parseOutput(data)
318
- : data;
319
-
320
- const status = (metadata.status ?? endpoint.status) as any;
321
- return c.json(output, status);
322
- } catch (_error) {
323
- return c.json({ error: 'Internal Server Error' }, 500);
324
- }
325
- };
326
-
327
- // Register route
328
- app[method](route, ...validators, ...middlewares, handler);
329
- }
330
- }
331
-
332
- // ============================================================================
333
- // Combined Optimized Adaptor (A + C + D combined)
334
- // ============================================================================
335
-
336
- /**
337
- * Fully optimized HonoEndpoint adaptor combining:
338
- * - Strategy A: Lazy service resolution
339
- * - Strategy C: Middleware composition
340
- * - Strategy D: Opt-in event publishing
341
- */
342
- export class FullyOptimizedHonoEndpoint {
343
- /**
344
- * Add routes with all optimizations
345
- */
346
- static addRoutes<
347
- TServices extends Service[] = [],
348
- TLogger extends Logger = Logger,
349
- >(
350
- endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],
351
- serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,
352
- app: Hono,
353
- ): void {
354
- // Sort endpoints
355
- const sortedEndpoints = [...endpoints].sort((a, b) => {
356
- const aHasDynamic = a.route.includes(':');
357
- const bHasDynamic = b.route.includes(':');
358
- if (!aHasDynamic && bHasDynamic) return -1;
359
- if (aHasDynamic && !bHasDynamic) return 1;
360
- return a.route.localeCompare(b.route);
361
- });
362
-
363
- for (const endpoint of sortedEndpoints) {
364
- FullyOptimizedHonoEndpoint.addRoute(endpoint, serviceDiscovery, app);
365
- }
366
- }
367
-
368
- /**
369
- * Add a single route with all optimizations
370
- */
371
- static addRoute<
372
- TRoute extends string,
373
- TMethod extends HttpMethod,
374
- TInput extends EndpointSchemas = {},
375
- TOutSchema extends StandardSchemaV1 | undefined = undefined,
376
- TServices extends Service[] = [],
377
- TLogger extends Logger = Logger,
378
- >(
379
- endpoint: Endpoint<
380
- TRoute,
381
- TMethod,
382
- TInput,
383
- TOutSchema,
384
- TServices,
385
- TLogger,
386
- any,
387
- any,
388
- any,
389
- any,
390
- any,
391
- any,
392
- any,
393
- any
394
- >,
395
- serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,
396
- app: Hono,
397
- ): void {
398
- const { route } = endpoint;
399
- const method = endpoint.method.toLowerCase() as LowerHttpMethod<TMethod>;
400
-
401
- // Pre-analyze endpoint features at registration time
402
- const hasServices = endpoint.services.length > 0;
403
- const hasDatabaseService = !!endpoint.databaseService;
404
- const hasAuthorizer = endpoint.authorizer !== 'none';
405
- const hasEvents = (endpoint.events?.length ?? 0) > 0;
406
-
407
- // Pre-resolve services at setup time (not per request)
408
- const allServices = hasServices ? endpoint.services : [];
409
- if (hasDatabaseService && endpoint.databaseService) {
410
- allServices.push(endpoint.databaseService);
411
- }
412
-
413
- // Single service registration for all needed services
414
- const servicesPromise =
415
- allServices.length > 0
416
- ? serviceDiscovery.register(allServices)
417
- : Promise.resolve({} as any);
418
-
419
- // Build minimal middleware chain
420
- const middlewares: ((
421
- c: Context,
422
- next: Next,
423
- ) => Promise<Response | undefined>)[] = [];
424
-
425
- // Validators
426
- const validators = [
427
- validator('json', async (value, c) => {
428
- if (!endpoint.input?.body) return undefined;
429
- const parsed = await Endpoint.validate(endpoint.input.body, value);
430
- if (parsed.issues) return c.json(parsed.issues, 422);
431
- return parsed.value;
432
- }),
433
- validator('query', async (_, c) => {
434
- if (!endpoint.input?.query) return undefined;
435
- const parsedQuery = parseHonoQuery(c);
436
- const parsed = await Endpoint.validate(
437
- endpoint.input.query,
438
- parsedQuery,
439
- );
440
- if (parsed.issues) return c.json(parsed.issues, 422);
441
- return parsed.value;
442
- }),
443
- validator('param', async (params, c) => {
444
- if (!endpoint.input?.params) return undefined;
445
- const parsed = await Endpoint.validate(endpoint.input.params, params);
446
- if (parsed.issues) return c.json(parsed.issues, 422);
447
- return parsed.value;
448
- }),
449
- ];
450
-
451
- // Only add auth middleware if needed
452
- if (hasAuthorizer) {
453
- middlewares.push(async (c, next) => {
454
- const services = await servicesPromise;
455
- const headerValues = c.req.header();
456
- const header = Endpoint.createHeaders(headerValues);
457
- const cookie = Endpoint.createCookies(headerValues.cookie);
458
-
459
- const db = hasDatabaseService
460
- ? services[
461
- endpoint.databaseService?.serviceName as keyof typeof services
462
- ]
463
- : undefined;
464
-
465
- const session = await endpoint.getSession({
466
- services,
467
- logger: endpoint.logger,
468
- header,
469
- cookie,
470
- ...(db !== undefined && { db }),
471
- } as any);
472
-
473
- const isAuthorized = await endpoint.authorize({
474
- header,
475
- cookie,
476
- services,
477
- logger: endpoint.logger,
478
- session,
479
- });
480
-
481
- if (!isAuthorized) {
482
- return c.json({ error: 'Unauthorized' }, 401);
483
- }
484
-
485
- c.set('__session' as any, session);
486
- await next();
487
- });
488
- }
489
-
490
- // Only add event middleware if needed
491
- if (hasEvents) {
492
- middlewares.push(async (c, next) => {
493
- await next();
494
-
495
- if (Endpoint.isSuccessStatus(c.res.status)) {
496
- const response = c.get('__response');
497
- if (response !== undefined) {
498
- await simulateEventPublish(
499
- endpoint.events!,
500
- response,
501
- endpoint.logger,
502
- );
503
- }
504
- }
505
- });
506
- }
507
-
508
- // Minimal core handler
509
- const handler = async (c: Context): Promise<Response> => {
510
- try {
511
- const services = await servicesPromise;
512
-
513
- const db = hasDatabaseService
514
- ? services[
515
- endpoint.databaseService?.serviceName as keyof typeof services
516
- ]
517
- : undefined;
518
-
519
- const headerValues = c.req.header();
520
-
521
- // Execute handler
522
- const responseBuilder = new ResponseBuilder();
523
- const response = await endpoint.handler(
524
- {
525
- services,
526
- logger: endpoint.logger,
527
- body: c.req.valid('json'),
528
- query: c.req.valid('query'),
529
- params: c.req.valid('param'),
530
- session: hasAuthorizer ? c.get('__session' as any) : undefined,
531
- header: Endpoint.createHeaders(headerValues),
532
- cookie: Endpoint.createCookies(headerValues.cookie),
533
- auditor: undefined,
534
- db,
535
- } as any,
536
- responseBuilder,
537
- );
538
-
539
- // Store for event middleware if needed
540
- if (hasEvents) {
541
- c.set('__response', response);
542
- }
543
-
544
- // Build response
545
- let data = response;
546
- let metadata = responseBuilder.getMetadata();
547
-
548
- if (Endpoint.hasMetadata(response)) {
549
- data = response.data;
550
- metadata = response.metadata;
551
- }
552
-
553
- const output = endpoint.outputSchema
554
- ? await endpoint.parseOutput(data)
555
- : data;
556
-
557
- const status = (metadata.status ?? endpoint.status) as any;
558
- return c.json(output, status);
559
- } catch (_error) {
560
- return c.json({ error: 'Internal Server Error' }, 500);
561
- }
562
- };
563
-
564
- // Register route with minimal middleware
565
- app[method](route, ...validators, ...middlewares, handler);
566
- }
567
- }