@geekmidas/constructs 0.0.5 → 0.0.6

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 (135) hide show
  1. package/dist/{AWSLambdaFunction-nic3vzt3.mjs → AWSLambdaFunction-DWIZYsCy.mjs} +2 -2
  2. package/dist/{AWSLambdaFunction-nic3vzt3.mjs.map → AWSLambdaFunction-DWIZYsCy.mjs.map} +1 -1
  3. package/dist/{AWSLambdaFunction-DW9qrBNR.cjs → AWSLambdaFunction-qA5LqPsv.cjs} +2 -2
  4. package/dist/{AWSLambdaFunction-DW9qrBNR.cjs.map → AWSLambdaFunction-qA5LqPsv.cjs.map} +1 -1
  5. package/dist/{AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs → AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs} +1 -1
  6. package/dist/{AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs.map → AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs.map} +1 -1
  7. package/dist/{AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs → AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs} +1 -1
  8. package/dist/{AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs.map → AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs.map} +1 -1
  9. package/dist/{AmazonApiGatewayEndpointAdaptor-BEzWkW5m.cjs → AmazonApiGatewayEndpointAdaptor-B8mozTcG.cjs} +3 -3
  10. package/dist/{AmazonApiGatewayEndpointAdaptor-BEzWkW5m.cjs.map → AmazonApiGatewayEndpointAdaptor-B8mozTcG.cjs.map} +1 -1
  11. package/dist/{AmazonApiGatewayEndpointAdaptor-CASfHEj9.mjs → AmazonApiGatewayEndpointAdaptor-Bmz6Cy1e.mjs} +3 -3
  12. package/dist/{AmazonApiGatewayEndpointAdaptor-CASfHEj9.mjs.map → AmazonApiGatewayEndpointAdaptor-Bmz6Cy1e.mjs.map} +1 -1
  13. package/dist/{AmazonApiGatewayV1EndpointAdaptor-RPnkGENb.mjs → AmazonApiGatewayV1EndpointAdaptor-24g3dLn5.mjs} +3 -3
  14. package/dist/{AmazonApiGatewayV1EndpointAdaptor-RPnkGENb.mjs.map → AmazonApiGatewayV1EndpointAdaptor-24g3dLn5.mjs.map} +1 -1
  15. package/dist/{AmazonApiGatewayV1EndpointAdaptor-l1df4rFt.cjs → AmazonApiGatewayV1EndpointAdaptor-D4eZ-fx5.cjs} +3 -3
  16. package/dist/{AmazonApiGatewayV1EndpointAdaptor-l1df4rFt.cjs.map → AmazonApiGatewayV1EndpointAdaptor-D4eZ-fx5.cjs.map} +1 -1
  17. package/dist/{AmazonApiGatewayV2EndpointAdaptor-C5Ctz7C_.mjs → AmazonApiGatewayV2EndpointAdaptor-Cc40RThv.mjs} +3 -3
  18. package/dist/{AmazonApiGatewayV2EndpointAdaptor-C5Ctz7C_.mjs.map → AmazonApiGatewayV2EndpointAdaptor-Cc40RThv.mjs.map} +1 -1
  19. package/dist/{AmazonApiGatewayV2EndpointAdaptor-DH9yJsC8.cjs → AmazonApiGatewayV2EndpointAdaptor-J6tACl-N.cjs} +3 -3
  20. package/dist/{AmazonApiGatewayV2EndpointAdaptor-DH9yJsC8.cjs.map → AmazonApiGatewayV2EndpointAdaptor-J6tACl-N.cjs.map} +1 -1
  21. package/dist/{Cron-JYYGj5ik.cjs → Cron-D6MyCqby.cjs} +1 -1
  22. package/dist/{Cron-JYYGj5ik.cjs.map → Cron-D6MyCqby.cjs.map} +1 -1
  23. package/dist/{Cron-BgJo6EW6.mjs → Cron-z0RiwSnT.mjs} +1 -1
  24. package/dist/{Cron-BgJo6EW6.mjs.map → Cron-z0RiwSnT.mjs.map} +1 -1
  25. package/dist/{CronBuilder-DVuhB_kA.mjs → CronBuilder-BLTgwOWp.mjs} +2 -2
  26. package/dist/{CronBuilder-DVuhB_kA.mjs.map → CronBuilder-BLTgwOWp.mjs.map} +1 -1
  27. package/dist/{CronBuilder-BDDS21OP.cjs → CronBuilder-BOsYnZIm.cjs} +2 -2
  28. package/dist/{CronBuilder-BDDS21OP.cjs.map → CronBuilder-BOsYnZIm.cjs.map} +1 -1
  29. package/dist/{Endpoint-BVZJb4OR.cjs → Endpoint-COGAflGh.cjs} +1 -1
  30. package/dist/{Endpoint-BVZJb4OR.cjs.map → Endpoint-COGAflGh.cjs.map} +1 -1
  31. package/dist/{Endpoint-DVEmKo6G.mjs → Endpoint-DLLZvqoh.mjs} +1 -1
  32. package/dist/{Endpoint-DVEmKo6G.mjs.map → Endpoint-DLLZvqoh.mjs.map} +1 -1
  33. package/dist/{EndpointBuilder-DDnqW7rT.cjs → EndpointBuilder-DUE8ETVR.cjs} +2 -2
  34. package/dist/{EndpointBuilder-DDnqW7rT.cjs.map → EndpointBuilder-DUE8ETVR.cjs.map} +1 -1
  35. package/dist/{EndpointBuilder-Bhy91l_c.mjs → EndpointBuilder-DpmUw--c.mjs} +2 -2
  36. package/dist/{EndpointBuilder-Bhy91l_c.mjs.map → EndpointBuilder-DpmUw--c.mjs.map} +1 -1
  37. package/dist/{EndpointFactory-CNz3Wa08.mjs → EndpointFactory-CuJUCyvZ.mjs} +2 -2
  38. package/dist/{EndpointFactory-CNz3Wa08.mjs.map → EndpointFactory-CuJUCyvZ.mjs.map} +1 -1
  39. package/dist/{EndpointFactory-Cw_6-53M.cjs → EndpointFactory-YAR24M2i.cjs} +2 -2
  40. package/dist/{EndpointFactory-Cw_6-53M.cjs.map → EndpointFactory-YAR24M2i.cjs.map} +1 -1
  41. package/dist/{FunctionExecutionWrapper-UzfHDM2R.cjs → FunctionExecutionWrapper-CElXEjPe.cjs} +1 -1
  42. package/dist/{FunctionExecutionWrapper-UzfHDM2R.cjs.map → FunctionExecutionWrapper-CElXEjPe.cjs.map} +1 -1
  43. package/dist/{FunctionExecutionWrapper-CPzSbfaI.mjs → FunctionExecutionWrapper-XGrSAAPD.mjs} +1 -1
  44. package/dist/{FunctionExecutionWrapper-CPzSbfaI.mjs.map → FunctionExecutionWrapper-XGrSAAPD.mjs.map} +1 -1
  45. package/dist/{HonoEndpointAdaptor-Y4AD3E9g.mjs → HonoEndpointAdaptor-BlT1rWHV.mjs} +4 -4
  46. package/dist/{HonoEndpointAdaptor-Y4AD3E9g.mjs.map → HonoEndpointAdaptor-BlT1rWHV.mjs.map} +1 -1
  47. package/dist/{HonoEndpointAdaptor-BY2Ovj31.d.mts → HonoEndpointAdaptor-C9Xe2pRp.d.mts} +3 -3
  48. package/dist/{HonoEndpointAdaptor-OtKS5Dsd.d.cts → HonoEndpointAdaptor-CGSqpnCD.d.cts} +3 -3
  49. package/dist/{HonoEndpointAdaptor-BsGMcxYb.cjs → HonoEndpointAdaptor-Ds433Q8w.cjs} +4 -4
  50. package/dist/{HonoEndpointAdaptor-BsGMcxYb.cjs.map → HonoEndpointAdaptor-Ds433Q8w.cjs.map} +1 -1
  51. package/dist/{Subscriber-DkCDcTUL.mjs → Subscriber-BTwKnz3c.mjs} +1 -1
  52. package/dist/{Subscriber-DkCDcTUL.mjs.map → Subscriber-BTwKnz3c.mjs.map} +1 -1
  53. package/dist/{Subscriber-CSt7EOlT.cjs → Subscriber-G7EUI3yc.cjs} +1 -1
  54. package/dist/{Subscriber-CSt7EOlT.cjs.map → Subscriber-G7EUI3yc.cjs.map} +1 -1
  55. package/dist/{SubscriberBuilder-Bn9Hyi28.mjs → SubscriberBuilder-C1me_972.mjs} +2 -2
  56. package/dist/{SubscriberBuilder-Bn9Hyi28.mjs.map → SubscriberBuilder-C1me_972.mjs.map} +1 -1
  57. package/dist/{SubscriberBuilder-RsiOmnwq.cjs → SubscriberBuilder-C6iZvuDe.cjs} +2 -2
  58. package/dist/{SubscriberBuilder-RsiOmnwq.cjs.map → SubscriberBuilder-C6iZvuDe.cjs.map} +1 -1
  59. package/dist/{TestEndpointAdaptor-DD3aygPp.mjs → TestEndpointAdaptor-BG6fzAOx.mjs} +2 -2
  60. package/dist/{TestEndpointAdaptor-DD3aygPp.mjs.map → TestEndpointAdaptor-BG6fzAOx.mjs.map} +1 -1
  61. package/dist/{TestEndpointAdaptor-CbNeUT3Y.cjs → TestEndpointAdaptor-BaQaTy_1.cjs} +2 -2
  62. package/dist/{TestEndpointAdaptor-CbNeUT3Y.cjs.map → TestEndpointAdaptor-BaQaTy_1.cjs.map} +1 -1
  63. package/dist/adaptors/aws.cjs +8 -8
  64. package/dist/adaptors/aws.mjs +8 -8
  65. package/dist/adaptors/hono.cjs +4 -4
  66. package/dist/adaptors/hono.d.cts +1 -1
  67. package/dist/adaptors/hono.d.mts +1 -1
  68. package/dist/adaptors/hono.mjs +4 -4
  69. package/dist/adaptors/testing.cjs +2 -2
  70. package/dist/adaptors/testing.mjs +2 -2
  71. package/dist/crons/Cron.cjs +1 -1
  72. package/dist/crons/Cron.mjs +1 -1
  73. package/dist/crons/CronBuilder.cjs +2 -2
  74. package/dist/crons/CronBuilder.mjs +2 -2
  75. package/dist/crons/index.cjs +2 -2
  76. package/dist/crons/index.d.cts +4 -4
  77. package/dist/crons/index.mjs +2 -2
  78. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +2 -2
  79. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +2 -2
  80. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +4 -4
  81. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +4 -4
  82. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +4 -4
  83. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +4 -4
  84. package/dist/endpoints/Endpoint.cjs +1 -1
  85. package/dist/endpoints/Endpoint.mjs +1 -1
  86. package/dist/endpoints/EndpointBuilder.cjs +2 -2
  87. package/dist/endpoints/EndpointBuilder.mjs +2 -2
  88. package/dist/endpoints/EndpointFactory.cjs +3 -3
  89. package/dist/endpoints/EndpointFactory.mjs +3 -3
  90. package/dist/endpoints/HonoEndpointAdaptor.cjs +4 -4
  91. package/dist/endpoints/HonoEndpointAdaptor.d.cts +1 -1
  92. package/dist/endpoints/HonoEndpointAdaptor.d.mts +1 -1
  93. package/dist/endpoints/HonoEndpointAdaptor.mjs +4 -4
  94. package/dist/endpoints/TestEndpointAdaptor.cjs +2 -2
  95. package/dist/endpoints/TestEndpointAdaptor.mjs +2 -2
  96. package/dist/endpoints/helpers.cjs +2 -2
  97. package/dist/endpoints/helpers.mjs +2 -2
  98. package/dist/endpoints/index.cjs +5 -3
  99. package/dist/endpoints/index.cjs.map +1 -1
  100. package/dist/endpoints/index.d.cts +5 -5
  101. package/dist/endpoints/index.d.mts +5 -5
  102. package/dist/endpoints/index.mjs +4 -4
  103. package/dist/endpoints/index.mjs.map +1 -1
  104. package/dist/endpoints/parseHonoQuery.cjs +1 -1
  105. package/dist/endpoints/parseHonoQuery.mjs +1 -1
  106. package/dist/endpoints/parseQueryParams.cjs +1 -1
  107. package/dist/endpoints/parseQueryParams.mjs +1 -1
  108. package/dist/functions/AWSLambdaFunction.cjs +2 -2
  109. package/dist/functions/AWSLambdaFunction.mjs +2 -2
  110. package/dist/functions/FunctionExecutionWrapper.cjs +1 -1
  111. package/dist/functions/FunctionExecutionWrapper.mjs +1 -1
  112. package/dist/{helpers-C9WBx7ms.mjs → helpers-CM0U-4Vk.mjs} +2 -2
  113. package/dist/{helpers-C9WBx7ms.mjs.map → helpers-CM0U-4Vk.mjs.map} +1 -1
  114. package/dist/{helpers-BSzj2AiQ.cjs → helpers-go4jiRvV.cjs} +2 -2
  115. package/dist/{helpers-BSzj2AiQ.cjs.map → helpers-go4jiRvV.cjs.map} +1 -1
  116. package/dist/{parseHonoQuery-BiPp8bEJ.cjs → parseHonoQuery-DopC24vB.cjs} +1 -1
  117. package/dist/{parseHonoQuery-BiPp8bEJ.cjs.map → parseHonoQuery-DopC24vB.cjs.map} +1 -1
  118. package/dist/{parseHonoQuery-yWRoKFFl.mjs → parseHonoQuery-znDKBhdE.mjs} +1 -1
  119. package/dist/{parseHonoQuery-yWRoKFFl.mjs.map → parseHonoQuery-znDKBhdE.mjs.map} +1 -1
  120. package/dist/{parseQueryParams-DSk9xl09.mjs → parseQueryParams-BJaRh3OB.mjs} +1 -1
  121. package/dist/{parseQueryParams-DSk9xl09.mjs.map → parseQueryParams-BJaRh3OB.mjs.map} +1 -1
  122. package/dist/{parseQueryParams-C2EjouGt.cjs → parseQueryParams-BzPop4I1.cjs} +1 -1
  123. package/dist/{parseQueryParams-C2EjouGt.cjs.map → parseQueryParams-BzPop4I1.cjs.map} +1 -1
  124. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
  125. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
  126. package/dist/subscribers/Subscriber.cjs +1 -1
  127. package/dist/subscribers/Subscriber.mjs +1 -1
  128. package/dist/subscribers/SubscriberBuilder.cjs +2 -2
  129. package/dist/subscribers/SubscriberBuilder.mjs +2 -2
  130. package/dist/subscribers/index.cjs +2 -2
  131. package/dist/subscribers/index.d.cts +2 -2
  132. package/dist/subscribers/index.d.mts +2 -2
  133. package/dist/subscribers/index.mjs +2 -2
  134. package/package.json +5 -6
  135. package/src/endpoints/index.ts +9 -1
@@ -5,5 +5,5 @@ import "../BaseFunctionBuilder-Dda7AiID.mjs";
5
5
  import "../FunctionBuilder-DBwR7jg7.mjs";
6
6
  import "../index-BXTN4mwI.mjs";
7
7
  import "../Endpoint-C7jPJzAH.mjs";
8
- import { HonoEndpoint, HonoEndpointOptions } from "../HonoEndpointAdaptor-BY2Ovj31.mjs";
8
+ import { HonoEndpoint, HonoEndpointOptions } from "../HonoEndpointAdaptor-C9Xe2pRp.mjs";
9
9
  export { HonoEndpoint, HonoEndpointOptions };
@@ -4,9 +4,9 @@ import "../Function-C5mW-38v.mjs";
4
4
  import "../BaseFunctionBuilder-BPE9JBbT.mjs";
5
5
  import "../FunctionBuilder-CosgPmMl.mjs";
6
6
  import "../functions-mM-jcphA.mjs";
7
- import "../Endpoint-DVEmKo6G.mjs";
8
- import "../helpers-C9WBx7ms.mjs";
9
- import "../parseHonoQuery-yWRoKFFl.mjs";
10
- import { HonoEndpoint } from "../HonoEndpointAdaptor-Y4AD3E9g.mjs";
7
+ import "../Endpoint-DLLZvqoh.mjs";
8
+ import "../helpers-CM0U-4Vk.mjs";
9
+ import "../parseHonoQuery-znDKBhdE.mjs";
10
+ import { HonoEndpoint } from "../HonoEndpointAdaptor-BlT1rWHV.mjs";
11
11
 
12
12
  export { HonoEndpoint };
@@ -4,7 +4,7 @@ require('../Function-CbO2NZx-.cjs');
4
4
  require('../BaseFunctionBuilder-DtO4Nwxm.cjs');
5
5
  require('../FunctionBuilder-DuOeWCAl.cjs');
6
6
  require('../functions-DVDb5wEA.cjs');
7
- require('../Endpoint-BVZJb4OR.cjs');
8
- const require_TestEndpointAdaptor = require('../TestEndpointAdaptor-CbNeUT3Y.cjs');
7
+ require('../Endpoint-COGAflGh.cjs');
8
+ const require_TestEndpointAdaptor = require('../TestEndpointAdaptor-BaQaTy_1.cjs');
9
9
 
10
10
  exports.TestEndpointAdaptor = require_TestEndpointAdaptor.TestEndpointAdaptor;
@@ -4,7 +4,7 @@ import "../Function-C5mW-38v.mjs";
4
4
  import "../BaseFunctionBuilder-BPE9JBbT.mjs";
5
5
  import "../FunctionBuilder-CosgPmMl.mjs";
6
6
  import "../functions-mM-jcphA.mjs";
7
- import "../Endpoint-DVEmKo6G.mjs";
8
- import { TestEndpointAdaptor } from "../TestEndpointAdaptor-DD3aygPp.mjs";
7
+ import "../Endpoint-DLLZvqoh.mjs";
8
+ import { TestEndpointAdaptor } from "../TestEndpointAdaptor-BG6fzAOx.mjs";
9
9
 
10
10
  export { TestEndpointAdaptor };
@@ -3,8 +3,8 @@ require('../Function-CbO2NZx-.cjs');
3
3
  require('../BaseFunctionBuilder-DtO4Nwxm.cjs');
4
4
  require('../FunctionBuilder-DuOeWCAl.cjs');
5
5
  require('../functions-DVDb5wEA.cjs');
6
- require('../Endpoint-BVZJb4OR.cjs');
7
- const require_helpers = require('../helpers-BSzj2AiQ.cjs');
6
+ require('../Endpoint-COGAflGh.cjs');
7
+ const require_helpers = require('../helpers-go4jiRvV.cjs');
8
8
 
9
9
  exports.getEndpointsFromRoutes = require_helpers.getEndpointsFromRoutes;
10
10
  exports.getProjectRoot = require_helpers.getProjectRoot;
@@ -3,7 +3,7 @@ import "../Function-C5mW-38v.mjs";
3
3
  import "../BaseFunctionBuilder-BPE9JBbT.mjs";
4
4
  import "../FunctionBuilder-CosgPmMl.mjs";
5
5
  import "../functions-mM-jcphA.mjs";
6
- import "../Endpoint-DVEmKo6G.mjs";
7
- import { getEndpointsFromRoutes, getProjectRoot } from "../helpers-C9WBx7ms.mjs";
6
+ import "../Endpoint-DLLZvqoh.mjs";
7
+ import { getEndpointsFromRoutes, getProjectRoot } from "../helpers-CM0U-4Vk.mjs";
8
8
 
9
9
  export { getEndpointsFromRoutes, getProjectRoot };
@@ -3,14 +3,16 @@ require('../Function-CbO2NZx-.cjs');
3
3
  require('../BaseFunctionBuilder-DtO4Nwxm.cjs');
4
4
  require('../FunctionBuilder-DuOeWCAl.cjs');
5
5
  require('../functions-DVDb5wEA.cjs');
6
- const require_Endpoint = require('../Endpoint-BVZJb4OR.cjs');
7
- require('../EndpointBuilder-DDnqW7rT.cjs');
8
- const require_EndpointFactory = require('../EndpointFactory-Cw_6-53M.cjs');
6
+ const require_Endpoint = require('../Endpoint-COGAflGh.cjs');
7
+ const require_EndpointBuilder = require('../EndpointBuilder-DUE8ETVR.cjs');
8
+ const require_EndpointFactory = require('../EndpointFactory-YAR24M2i.cjs');
9
9
 
10
10
  //#region src/endpoints/index.ts
11
11
  const e = new require_EndpointFactory.EndpointFactory();
12
12
 
13
13
  //#endregion
14
14
  exports.Endpoint = require_Endpoint.Endpoint;
15
+ exports.EndpointBuilder = require_EndpointBuilder.EndpointBuilder;
16
+ exports.EndpointFactory = require_EndpointFactory.EndpointFactory;
15
17
  exports.e = e;
16
18
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["EndpointFactory"],"sources":["../../src/endpoints/index.ts"],"sourcesContent":["import { EndpointFactory } from './EndpointFactory';\n\nexport { Endpoint, type EndpointOutput, type EndpointSchemas } from './Endpoint';\n\nexport const e = new EndpointFactory();\n"],"mappings":";;;;;;;;;;AAIA,MAAa,IAAI,IAAIA"}
1
+ {"version":3,"file":"index.cjs","names":["EndpointFactory"],"sources":["../../src/endpoints/index.ts"],"sourcesContent":["import { EndpointFactory } from './EndpointFactory';\n\nexport { EndpointFactory } from './EndpointFactory';\nexport {\n Endpoint,\n type EndpointOutput,\n type EndpointSchemas,\n type EndpointHandler,\n type EndpointContext,\n} from './Endpoint';\nexport { EndpointBuilder } from './EndpointBuilder';\n\nexport const e = new EndpointFactory();\n"],"mappings":";;;;;;;;;;AAYA,MAAa,IAAI,IAAIA"}
@@ -4,13 +4,13 @@ import "../Function-BP58p9Mp.cjs";
4
4
  import "../BaseFunctionBuilder-5QCHkchp.cjs";
5
5
  import "../FunctionBuilder-BS1KgxA_.cjs";
6
6
  import "../index-BxApEwAF.cjs";
7
- import { Endpoint, EndpointOutput, EndpointSchemas } from "../Endpoint-XUMNAXYy.cjs";
8
- import "../EndpointBuilder-t6fVEKBH.cjs";
7
+ import { Endpoint, EndpointContext, EndpointHandler, EndpointOutput, EndpointSchemas } from "../Endpoint-XUMNAXYy.cjs";
8
+ import { EndpointBuilder } from "../EndpointBuilder-t6fVEKBH.cjs";
9
9
  import { EndpointFactory } from "../EndpointFactory-DInjHvFR.cjs";
10
- import * as _geekmidas_logger8 from "@geekmidas/logger";
10
+ import * as _geekmidas_logger0 from "@geekmidas/logger";
11
11
 
12
12
  //#region src/endpoints/index.d.ts
13
- declare const e: EndpointFactory<[], "", _geekmidas_logger8.Logger, unknown, undefined, string>;
13
+ declare const e: EndpointFactory<[], "", _geekmidas_logger0.Logger, unknown, undefined, string>;
14
14
  //#endregion
15
- export { Endpoint, EndpointOutput, EndpointSchemas, e };
15
+ export { Endpoint, EndpointBuilder, EndpointContext, EndpointFactory, EndpointHandler, EndpointOutput, EndpointSchemas, e };
16
16
  //# sourceMappingURL=index.d.cts.map
@@ -4,13 +4,13 @@ import "../Function-C98H68DW.mjs";
4
4
  import "../BaseFunctionBuilder-Dda7AiID.mjs";
5
5
  import "../FunctionBuilder-DBwR7jg7.mjs";
6
6
  import "../index-BXTN4mwI.mjs";
7
- import { Endpoint, EndpointOutput, EndpointSchemas } from "../Endpoint-C7jPJzAH.mjs";
8
- import "../EndpointBuilder-CFtWQhcv.mjs";
7
+ import { Endpoint, EndpointContext, EndpointHandler, EndpointOutput, EndpointSchemas } from "../Endpoint-C7jPJzAH.mjs";
8
+ import { EndpointBuilder } from "../EndpointBuilder-CFtWQhcv.mjs";
9
9
  import { EndpointFactory } from "../EndpointFactory-DBRGrXAy.mjs";
10
- import * as _geekmidas_logger8 from "@geekmidas/logger";
10
+ import * as _geekmidas_logger5 from "@geekmidas/logger";
11
11
 
12
12
  //#region src/endpoints/index.d.ts
13
- declare const e: EndpointFactory<[], "", _geekmidas_logger8.Logger, unknown, undefined, string>;
13
+ declare const e: EndpointFactory<[], "", _geekmidas_logger5.Logger, unknown, undefined, string>;
14
14
  //#endregion
15
- export { Endpoint, EndpointOutput, EndpointSchemas, e };
15
+ export { Endpoint, EndpointBuilder, EndpointContext, EndpointFactory, EndpointHandler, EndpointOutput, EndpointSchemas, e };
16
16
  //# sourceMappingURL=index.d.mts.map
@@ -3,13 +3,13 @@ import "../Function-C5mW-38v.mjs";
3
3
  import "../BaseFunctionBuilder-BPE9JBbT.mjs";
4
4
  import "../FunctionBuilder-CosgPmMl.mjs";
5
5
  import "../functions-mM-jcphA.mjs";
6
- import { Endpoint } from "../Endpoint-DVEmKo6G.mjs";
7
- import "../EndpointBuilder-Bhy91l_c.mjs";
8
- import { EndpointFactory } from "../EndpointFactory-CNz3Wa08.mjs";
6
+ import { Endpoint } from "../Endpoint-DLLZvqoh.mjs";
7
+ import { EndpointBuilder } from "../EndpointBuilder-DpmUw--c.mjs";
8
+ import { EndpointFactory } from "../EndpointFactory-CuJUCyvZ.mjs";
9
9
 
10
10
  //#region src/endpoints/index.ts
11
11
  const e = new EndpointFactory();
12
12
 
13
13
  //#endregion
14
- export { Endpoint, e };
14
+ export { Endpoint, EndpointBuilder, EndpointFactory, e };
15
15
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/endpoints/index.ts"],"sourcesContent":["import { EndpointFactory } from './EndpointFactory';\n\nexport { Endpoint, type EndpointOutput, type EndpointSchemas } from './Endpoint';\n\nexport const e = new EndpointFactory();\n"],"mappings":";;;;;;;;;;AAIA,MAAa,IAAI,IAAI"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/endpoints/index.ts"],"sourcesContent":["import { EndpointFactory } from './EndpointFactory';\n\nexport { EndpointFactory } from './EndpointFactory';\nexport {\n Endpoint,\n type EndpointOutput,\n type EndpointSchemas,\n type EndpointHandler,\n type EndpointContext,\n} from './Endpoint';\nexport { EndpointBuilder } from './EndpointBuilder';\n\nexport const e = new EndpointFactory();\n"],"mappings":";;;;;;;;;;AAYA,MAAa,IAAI,IAAI"}
@@ -1,3 +1,3 @@
1
- const require_parseHonoQuery = require('../parseHonoQuery-BiPp8bEJ.cjs');
1
+ const require_parseHonoQuery = require('../parseHonoQuery-DopC24vB.cjs');
2
2
 
3
3
  exports.parseHonoQuery = require_parseHonoQuery.parseHonoQuery;
@@ -1,3 +1,3 @@
1
- import { parseHonoQuery } from "../parseHonoQuery-yWRoKFFl.mjs";
1
+ import { parseHonoQuery } from "../parseHonoQuery-znDKBhdE.mjs";
2
2
 
3
3
  export { parseHonoQuery };
@@ -1,3 +1,3 @@
1
- const require_parseQueryParams = require('../parseQueryParams-C2EjouGt.cjs');
1
+ const require_parseQueryParams = require('../parseQueryParams-BzPop4I1.cjs');
2
2
 
3
3
  exports.parseQueryParams = require_parseQueryParams.parseQueryParams;
@@ -1,3 +1,3 @@
1
- import { parseQueryParams } from "../parseQueryParams-DSk9xl09.mjs";
1
+ import { parseQueryParams } from "../parseQueryParams-BJaRh3OB.mjs";
2
2
 
3
3
  export { parseQueryParams };
@@ -3,7 +3,7 @@ require('../publisher-lFQleddL.cjs');
3
3
  require('../Function-CbO2NZx-.cjs');
4
4
  require('../BaseFunctionBuilder-DtO4Nwxm.cjs');
5
5
  require('../FunctionBuilder-DuOeWCAl.cjs');
6
- require('../FunctionExecutionWrapper-UzfHDM2R.cjs');
7
- const require_AWSLambdaFunction = require('../AWSLambdaFunction-DW9qrBNR.cjs');
6
+ require('../FunctionExecutionWrapper-CElXEjPe.cjs');
7
+ const require_AWSLambdaFunction = require('../AWSLambdaFunction-qA5LqPsv.cjs');
8
8
 
9
9
  exports.AWSLambdaFunction = require_AWSLambdaFunction.AWSLambdaFunction;
@@ -3,7 +3,7 @@ import "../publisher-Bw4770Hi.mjs";
3
3
  import "../Function-C5mW-38v.mjs";
4
4
  import "../BaseFunctionBuilder-BPE9JBbT.mjs";
5
5
  import "../FunctionBuilder-CosgPmMl.mjs";
6
- import "../FunctionExecutionWrapper-CPzSbfaI.mjs";
7
- import { AWSLambdaFunction } from "../AWSLambdaFunction-nic3vzt3.mjs";
6
+ import "../FunctionExecutionWrapper-XGrSAAPD.mjs";
7
+ import { AWSLambdaFunction } from "../AWSLambdaFunction-DWIZYsCy.mjs";
8
8
 
9
9
  export { AWSLambdaFunction };
@@ -3,6 +3,6 @@ require('../publisher-lFQleddL.cjs');
3
3
  require('../Function-CbO2NZx-.cjs');
4
4
  require('../BaseFunctionBuilder-DtO4Nwxm.cjs');
5
5
  require('../FunctionBuilder-DuOeWCAl.cjs');
6
- const require_FunctionExecutionWrapper = require('../FunctionExecutionWrapper-UzfHDM2R.cjs');
6
+ const require_FunctionExecutionWrapper = require('../FunctionExecutionWrapper-CElXEjPe.cjs');
7
7
 
8
8
  exports.FunctionExecutionWrapper = require_FunctionExecutionWrapper.FunctionExecutionWrapper;
@@ -3,6 +3,6 @@ import "../publisher-Bw4770Hi.mjs";
3
3
  import "../Function-C5mW-38v.mjs";
4
4
  import "../BaseFunctionBuilder-BPE9JBbT.mjs";
5
5
  import "../FunctionBuilder-CosgPmMl.mjs";
6
- import { FunctionExecutionWrapper } from "../FunctionExecutionWrapper-CPzSbfaI.mjs";
6
+ import { FunctionExecutionWrapper } from "../FunctionExecutionWrapper-XGrSAAPD.mjs";
7
7
 
8
8
  export { FunctionExecutionWrapper };
@@ -1,4 +1,4 @@
1
- import { Endpoint } from "./Endpoint-DVEmKo6G.mjs";
1
+ import { Endpoint } from "./Endpoint-DLLZvqoh.mjs";
2
2
  import path from "node:path";
3
3
  import fg from "fast-glob";
4
4
 
@@ -80,4 +80,4 @@ async function getEndpointsFromRoutes(routes, cwd) {
80
80
 
81
81
  //#endregion
82
82
  export { getEndpointsFromRoutes, getProjectRoot };
83
- //# sourceMappingURL=helpers-C9WBx7ms.mjs.map
83
+ //# sourceMappingURL=helpers-CM0U-4Vk.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers-C9WBx7ms.mjs","names":["cwd: string","routes: string[]","endpoints: Endpoint<string, HttpMethod, any, any, TServices>[]"],"sources":["../src/endpoints/helpers.ts"],"sourcesContent":["import path from 'node:path';\nimport fg from 'fast-glob';\nimport { Endpoint } from './Endpoint';\n\nimport type { Service } from '@geekmidas/services';\nimport type { HttpMethod } from '../types';\n\n// Re-export utility functions\n\n/**\n * Recursively finds the project root directory by looking for lock files.\n * Traverses up the directory tree until it finds a package manager lock file.\n *\n * @param cwd - The current working directory to start searching from\n * @returns Promise resolving to the absolute path of the project root\n *\n * @example\n * ```typescript\n * const projectRoot = await getProjectRoot(process.cwd());\n * console.log(`Project root: ${projectRoot}`);\n * // Output: Project root: /Users/user/my-project\n * ```\n */\nexport async function getProjectRoot(cwd: string): Promise<string> {\n if (cwd === '/') {\n return cwd;\n }\n\n const stream = fg.stream(\n ['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json', 'deno.lock'],\n { dot: true, cwd },\n );\n\n let isRoot = false;\n\n for await (const _ of stream) {\n isRoot = true;\n break;\n }\n\n if (isRoot) {\n return cwd;\n }\n\n return getProjectRoot(path.resolve(cwd, '..'));\n}\n\n/**\n * Discovers and imports all Endpoint instances from the specified route patterns.\n * Uses fast-glob to find files matching the patterns and extracts exported Endpoints.\n *\n * @template TServices - Array of service types used by the endpoints\n * @param routes - Array of glob patterns to match route files (e.g., ['src/routes/*.ts'])\n * @param cwd - The current working directory to resolve paths from\n * @returns Promise resolving to an array of Endpoint instances found in the matched files\n *\n * @example\n * ```typescript\n * // Find all endpoints in the routes directory\n * const endpoints = await getEndpointsFromRoutes(\n * ['src/routes/**\\/*.ts'],\n * process.cwd()\n * );\n *\n * // Register endpoints with your server\n * for (const endpoint of endpoints) {\n * server.register(endpoint);\n * }\n * ```\n *\n * @remarks\n * - Only exports that are valid Endpoint instances are included\n * - Files are imported dynamically, so they must be valid ES modules\n * - The function filters out non-Endpoint exports automatically\n */\nexport async function getEndpointsFromRoutes<TServices extends Service[]>(\n routes: string[],\n cwd: string,\n): Promise<Endpoint<string, HttpMethod, any, any, TServices>[]> {\n const stream = fg.stream(routes, { cwd });\n\n const endpoints: Endpoint<string, HttpMethod, any, any, TServices>[] = [];\n\n for await (const f of stream) {\n // Resolve the absolute path for the route file\n const routePath = path.resolve(cwd, f.toString());\n // Dynamically import the route module\n const route = await import(routePath);\n\n // Filter exported values to find only Endpoint instances\n const handlers = Object.values(route).filter((value) => {\n return Endpoint.isEndpoint(value);\n }) as unknown as Endpoint<string, HttpMethod, any, any, TServices>[];\n\n endpoints.push(...handlers);\n }\n\n return endpoints;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBA,eAAsB,eAAeA,KAA8B;AACjE,KAAI,QAAQ,IACV,QAAO;CAGT,MAAM,SAAS,GAAG,OAChB;EAAC;EAAa;EAAkB;EAAqB;CAAY,GACjE;EAAE,KAAK;EAAM;CAAK,EACnB;CAED,IAAI,SAAS;AAEb,YAAW,MAAM,KAAK,QAAQ;AAC5B,WAAS;AACT;CACD;AAED,KAAI,OACF,QAAO;AAGT,QAAO,eAAe,KAAK,QAAQ,KAAK,KAAK,CAAC;AAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BD,eAAsB,uBACpBC,QACAD,KAC8D;CAC9D,MAAM,SAAS,GAAG,OAAO,QAAQ,EAAE,IAAK,EAAC;CAEzC,MAAME,YAAiE,CAAE;AAEzE,YAAW,MAAM,KAAK,QAAQ;EAE5B,MAAM,YAAY,KAAK,QAAQ,KAAK,EAAE,UAAU,CAAC;EAEjD,MAAM,QAAQ,MAAM,OAAO;EAG3B,MAAM,WAAW,OAAO,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU;AACtD,UAAO,SAAS,WAAW,MAAM;EAClC,EAAC;AAEF,YAAU,KAAK,GAAG,SAAS;CAC5B;AAED,QAAO;AACR"}
1
+ {"version":3,"file":"helpers-CM0U-4Vk.mjs","names":["cwd: string","routes: string[]","endpoints: Endpoint<string, HttpMethod, any, any, TServices>[]"],"sources":["../src/endpoints/helpers.ts"],"sourcesContent":["import path from 'node:path';\nimport fg from 'fast-glob';\nimport { Endpoint } from './Endpoint';\n\nimport type { Service } from '@geekmidas/services';\nimport type { HttpMethod } from '../types';\n\n// Re-export utility functions\n\n/**\n * Recursively finds the project root directory by looking for lock files.\n * Traverses up the directory tree until it finds a package manager lock file.\n *\n * @param cwd - The current working directory to start searching from\n * @returns Promise resolving to the absolute path of the project root\n *\n * @example\n * ```typescript\n * const projectRoot = await getProjectRoot(process.cwd());\n * console.log(`Project root: ${projectRoot}`);\n * // Output: Project root: /Users/user/my-project\n * ```\n */\nexport async function getProjectRoot(cwd: string): Promise<string> {\n if (cwd === '/') {\n return cwd;\n }\n\n const stream = fg.stream(\n ['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json', 'deno.lock'],\n { dot: true, cwd },\n );\n\n let isRoot = false;\n\n for await (const _ of stream) {\n isRoot = true;\n break;\n }\n\n if (isRoot) {\n return cwd;\n }\n\n return getProjectRoot(path.resolve(cwd, '..'));\n}\n\n/**\n * Discovers and imports all Endpoint instances from the specified route patterns.\n * Uses fast-glob to find files matching the patterns and extracts exported Endpoints.\n *\n * @template TServices - Array of service types used by the endpoints\n * @param routes - Array of glob patterns to match route files (e.g., ['src/routes/*.ts'])\n * @param cwd - The current working directory to resolve paths from\n * @returns Promise resolving to an array of Endpoint instances found in the matched files\n *\n * @example\n * ```typescript\n * // Find all endpoints in the routes directory\n * const endpoints = await getEndpointsFromRoutes(\n * ['src/routes/**\\/*.ts'],\n * process.cwd()\n * );\n *\n * // Register endpoints with your server\n * for (const endpoint of endpoints) {\n * server.register(endpoint);\n * }\n * ```\n *\n * @remarks\n * - Only exports that are valid Endpoint instances are included\n * - Files are imported dynamically, so they must be valid ES modules\n * - The function filters out non-Endpoint exports automatically\n */\nexport async function getEndpointsFromRoutes<TServices extends Service[]>(\n routes: string[],\n cwd: string,\n): Promise<Endpoint<string, HttpMethod, any, any, TServices>[]> {\n const stream = fg.stream(routes, { cwd });\n\n const endpoints: Endpoint<string, HttpMethod, any, any, TServices>[] = [];\n\n for await (const f of stream) {\n // Resolve the absolute path for the route file\n const routePath = path.resolve(cwd, f.toString());\n // Dynamically import the route module\n const route = await import(routePath);\n\n // Filter exported values to find only Endpoint instances\n const handlers = Object.values(route).filter((value) => {\n return Endpoint.isEndpoint(value);\n }) as unknown as Endpoint<string, HttpMethod, any, any, TServices>[];\n\n endpoints.push(...handlers);\n }\n\n return endpoints;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBA,eAAsB,eAAeA,KAA8B;AACjE,KAAI,QAAQ,IACV,QAAO;CAGT,MAAM,SAAS,GAAG,OAChB;EAAC;EAAa;EAAkB;EAAqB;CAAY,GACjE;EAAE,KAAK;EAAM;CAAK,EACnB;CAED,IAAI,SAAS;AAEb,YAAW,MAAM,KAAK,QAAQ;AAC5B,WAAS;AACT;CACD;AAED,KAAI,OACF,QAAO;AAGT,QAAO,eAAe,KAAK,QAAQ,KAAK,KAAK,CAAC;AAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BD,eAAsB,uBACpBC,QACAD,KAC8D;CAC9D,MAAM,SAAS,GAAG,OAAO,QAAQ,EAAE,IAAK,EAAC;CAEzC,MAAME,YAAiE,CAAE;AAEzE,YAAW,MAAM,KAAK,QAAQ;EAE5B,MAAM,YAAY,KAAK,QAAQ,KAAK,EAAE,UAAU,CAAC;EAEjD,MAAM,QAAQ,MAAM,OAAO;EAG3B,MAAM,WAAW,OAAO,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU;AACtD,UAAO,SAAS,WAAW,MAAM;EAClC,EAAC;AAEF,YAAU,KAAK,GAAG,SAAS;CAC5B;AAED,QAAO;AACR"}
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_Endpoint = require('./Endpoint-BVZJb4OR.cjs');
2
+ const require_Endpoint = require('./Endpoint-COGAflGh.cjs');
3
3
  const node_path = require_chunk.__toESM(require("node:path"));
4
4
  const fast_glob = require_chunk.__toESM(require("fast-glob"));
5
5
 
@@ -92,4 +92,4 @@ Object.defineProperty(exports, 'getProjectRoot', {
92
92
  return getProjectRoot;
93
93
  }
94
94
  });
95
- //# sourceMappingURL=helpers-BSzj2AiQ.cjs.map
95
+ //# sourceMappingURL=helpers-go4jiRvV.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers-BSzj2AiQ.cjs","names":["cwd: string","routes: string[]","endpoints: Endpoint<string, HttpMethod, any, any, TServices>[]"],"sources":["../src/endpoints/helpers.ts"],"sourcesContent":["import path from 'node:path';\nimport fg from 'fast-glob';\nimport { Endpoint } from './Endpoint';\n\nimport type { Service } from '@geekmidas/services';\nimport type { HttpMethod } from '../types';\n\n// Re-export utility functions\n\n/**\n * Recursively finds the project root directory by looking for lock files.\n * Traverses up the directory tree until it finds a package manager lock file.\n *\n * @param cwd - The current working directory to start searching from\n * @returns Promise resolving to the absolute path of the project root\n *\n * @example\n * ```typescript\n * const projectRoot = await getProjectRoot(process.cwd());\n * console.log(`Project root: ${projectRoot}`);\n * // Output: Project root: /Users/user/my-project\n * ```\n */\nexport async function getProjectRoot(cwd: string): Promise<string> {\n if (cwd === '/') {\n return cwd;\n }\n\n const stream = fg.stream(\n ['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json', 'deno.lock'],\n { dot: true, cwd },\n );\n\n let isRoot = false;\n\n for await (const _ of stream) {\n isRoot = true;\n break;\n }\n\n if (isRoot) {\n return cwd;\n }\n\n return getProjectRoot(path.resolve(cwd, '..'));\n}\n\n/**\n * Discovers and imports all Endpoint instances from the specified route patterns.\n * Uses fast-glob to find files matching the patterns and extracts exported Endpoints.\n *\n * @template TServices - Array of service types used by the endpoints\n * @param routes - Array of glob patterns to match route files (e.g., ['src/routes/*.ts'])\n * @param cwd - The current working directory to resolve paths from\n * @returns Promise resolving to an array of Endpoint instances found in the matched files\n *\n * @example\n * ```typescript\n * // Find all endpoints in the routes directory\n * const endpoints = await getEndpointsFromRoutes(\n * ['src/routes/**\\/*.ts'],\n * process.cwd()\n * );\n *\n * // Register endpoints with your server\n * for (const endpoint of endpoints) {\n * server.register(endpoint);\n * }\n * ```\n *\n * @remarks\n * - Only exports that are valid Endpoint instances are included\n * - Files are imported dynamically, so they must be valid ES modules\n * - The function filters out non-Endpoint exports automatically\n */\nexport async function getEndpointsFromRoutes<TServices extends Service[]>(\n routes: string[],\n cwd: string,\n): Promise<Endpoint<string, HttpMethod, any, any, TServices>[]> {\n const stream = fg.stream(routes, { cwd });\n\n const endpoints: Endpoint<string, HttpMethod, any, any, TServices>[] = [];\n\n for await (const f of stream) {\n // Resolve the absolute path for the route file\n const routePath = path.resolve(cwd, f.toString());\n // Dynamically import the route module\n const route = await import(routePath);\n\n // Filter exported values to find only Endpoint instances\n const handlers = Object.values(route).filter((value) => {\n return Endpoint.isEndpoint(value);\n }) as unknown as Endpoint<string, HttpMethod, any, any, TServices>[];\n\n endpoints.push(...handlers);\n }\n\n return endpoints;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuBA,eAAsB,eAAeA,KAA8B;AACjE,KAAI,QAAQ,IACV,QAAO;CAGT,MAAM,SAAS,kBAAG,OAChB;EAAC;EAAa;EAAkB;EAAqB;CAAY,GACjE;EAAE,KAAK;EAAM;CAAK,EACnB;CAED,IAAI,SAAS;AAEb,YAAW,MAAM,KAAK,QAAQ;AAC5B,WAAS;AACT;CACD;AAED,KAAI,OACF,QAAO;AAGT,QAAO,eAAe,kBAAK,QAAQ,KAAK,KAAK,CAAC;AAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BD,eAAsB,uBACpBC,QACAD,KAC8D;CAC9D,MAAM,SAAS,kBAAG,OAAO,QAAQ,EAAE,IAAK,EAAC;CAEzC,MAAME,YAAiE,CAAE;AAEzE,YAAW,MAAM,KAAK,QAAQ;EAE5B,MAAM,YAAY,kBAAK,QAAQ,KAAK,EAAE,UAAU,CAAC;EAEjD,MAAM,QAAQ,MAAM,OAAO;EAG3B,MAAM,WAAW,OAAO,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU;AACtD,UAAO,0BAAS,WAAW,MAAM;EAClC,EAAC;AAEF,YAAU,KAAK,GAAG,SAAS;CAC5B;AAED,QAAO;AACR"}
1
+ {"version":3,"file":"helpers-go4jiRvV.cjs","names":["cwd: string","routes: string[]","endpoints: Endpoint<string, HttpMethod, any, any, TServices>[]"],"sources":["../src/endpoints/helpers.ts"],"sourcesContent":["import path from 'node:path';\nimport fg from 'fast-glob';\nimport { Endpoint } from './Endpoint';\n\nimport type { Service } from '@geekmidas/services';\nimport type { HttpMethod } from '../types';\n\n// Re-export utility functions\n\n/**\n * Recursively finds the project root directory by looking for lock files.\n * Traverses up the directory tree until it finds a package manager lock file.\n *\n * @param cwd - The current working directory to start searching from\n * @returns Promise resolving to the absolute path of the project root\n *\n * @example\n * ```typescript\n * const projectRoot = await getProjectRoot(process.cwd());\n * console.log(`Project root: ${projectRoot}`);\n * // Output: Project root: /Users/user/my-project\n * ```\n */\nexport async function getProjectRoot(cwd: string): Promise<string> {\n if (cwd === '/') {\n return cwd;\n }\n\n const stream = fg.stream(\n ['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json', 'deno.lock'],\n { dot: true, cwd },\n );\n\n let isRoot = false;\n\n for await (const _ of stream) {\n isRoot = true;\n break;\n }\n\n if (isRoot) {\n return cwd;\n }\n\n return getProjectRoot(path.resolve(cwd, '..'));\n}\n\n/**\n * Discovers and imports all Endpoint instances from the specified route patterns.\n * Uses fast-glob to find files matching the patterns and extracts exported Endpoints.\n *\n * @template TServices - Array of service types used by the endpoints\n * @param routes - Array of glob patterns to match route files (e.g., ['src/routes/*.ts'])\n * @param cwd - The current working directory to resolve paths from\n * @returns Promise resolving to an array of Endpoint instances found in the matched files\n *\n * @example\n * ```typescript\n * // Find all endpoints in the routes directory\n * const endpoints = await getEndpointsFromRoutes(\n * ['src/routes/**\\/*.ts'],\n * process.cwd()\n * );\n *\n * // Register endpoints with your server\n * for (const endpoint of endpoints) {\n * server.register(endpoint);\n * }\n * ```\n *\n * @remarks\n * - Only exports that are valid Endpoint instances are included\n * - Files are imported dynamically, so they must be valid ES modules\n * - The function filters out non-Endpoint exports automatically\n */\nexport async function getEndpointsFromRoutes<TServices extends Service[]>(\n routes: string[],\n cwd: string,\n): Promise<Endpoint<string, HttpMethod, any, any, TServices>[]> {\n const stream = fg.stream(routes, { cwd });\n\n const endpoints: Endpoint<string, HttpMethod, any, any, TServices>[] = [];\n\n for await (const f of stream) {\n // Resolve the absolute path for the route file\n const routePath = path.resolve(cwd, f.toString());\n // Dynamically import the route module\n const route = await import(routePath);\n\n // Filter exported values to find only Endpoint instances\n const handlers = Object.values(route).filter((value) => {\n return Endpoint.isEndpoint(value);\n }) as unknown as Endpoint<string, HttpMethod, any, any, TServices>[];\n\n endpoints.push(...handlers);\n }\n\n return endpoints;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuBA,eAAsB,eAAeA,KAA8B;AACjE,KAAI,QAAQ,IACV,QAAO;CAGT,MAAM,SAAS,kBAAG,OAChB;EAAC;EAAa;EAAkB;EAAqB;CAAY,GACjE;EAAE,KAAK;EAAM;CAAK,EACnB;CAED,IAAI,SAAS;AAEb,YAAW,MAAM,KAAK,QAAQ;AAC5B,WAAS;AACT;CACD;AAED,KAAI,OACF,QAAO;AAGT,QAAO,eAAe,kBAAK,QAAQ,KAAK,KAAK,CAAC;AAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BD,eAAsB,uBACpBC,QACAD,KAC8D;CAC9D,MAAM,SAAS,kBAAG,OAAO,QAAQ,EAAE,IAAK,EAAC;CAEzC,MAAME,YAAiE,CAAE;AAEzE,YAAW,MAAM,KAAK,QAAQ;EAE5B,MAAM,YAAY,kBAAK,QAAQ,KAAK,EAAE,UAAU,CAAC;EAEjD,MAAM,QAAQ,MAAM,OAAO;EAG3B,MAAM,WAAW,OAAO,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU;AACtD,UAAO,0BAAS,WAAW,MAAM;EAClC,EAAC;AAEF,YAAU,KAAK,GAAG,SAAS;CAC5B;AAED,QAAO;AACR"}
@@ -34,4 +34,4 @@ Object.defineProperty(exports, 'parseHonoQuery', {
34
34
  return parseHonoQuery;
35
35
  }
36
36
  });
37
- //# sourceMappingURL=parseHonoQuery-BiPp8bEJ.cjs.map
37
+ //# sourceMappingURL=parseHonoQuery-DopC24vB.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseHonoQuery-BiPp8bEJ.cjs","names":["c: Context","result: Record<string, any>"],"sources":["../src/endpoints/parseHonoQuery.ts"],"sourcesContent":["import type { Context } from 'hono';\n\n/**\n * Parse Hono query parameters to handle arrays and nested objects\n * Hono provides c.req.queries() for arrays, but we need to handle dot notation for objects\n */\nexport function parseHonoQuery(c: Context): Record<string, any> {\n const allParams = c.req.query();\n const result: Record<string, any> = {};\n\n // First, handle all query parameters\n for (const [key, value] of Object.entries(allParams)) {\n if (key.includes('.')) {\n // Handle dot notation for objects\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value, checking for arrays in nested keys\n const lastPart = parts[parts.length - 1];\n const multipleValues = c.req.queries(key);\n if (multipleValues && multipleValues.length > 1) {\n current[lastPart] = multipleValues;\n } else {\n current[lastPart] = value;\n }\n } else {\n // For regular keys, check if there are multiple values\n const multipleValues = c.req.queries(key);\n if (multipleValues && multipleValues.length > 1) {\n result[key] = multipleValues;\n } else {\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAMA,SAAgB,eAAeA,GAAiC;CAC9D,MAAM,YAAY,EAAE,IAAI,OAAO;CAC/B,MAAMC,SAA8B,CAAE;AAGtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,UAAU,CAClD,KAAI,IAAI,SAAS,IAAI,EAAE;EAErB,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,IAAI,UAAU;AAGd,OAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;GACzC,MAAM,OAAO,MAAM;AACnB,QACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,aAAU,QAAQ;EACnB;EAGD,MAAM,WAAW,MAAM,MAAM,SAAS;EACtC,MAAM,iBAAiB,EAAE,IAAI,QAAQ,IAAI;AACzC,MAAI,kBAAkB,eAAe,SAAS,EAC5C,SAAQ,YAAY;MAEpB,SAAQ,YAAY;CAEvB,OAAM;EAEL,MAAM,iBAAiB,EAAE,IAAI,QAAQ,IAAI;AACzC,MAAI,kBAAkB,eAAe,SAAS,EAC5C,QAAO,OAAO;MAEd,QAAO,OAAO;CAEjB;AAGH,QAAO;AACR"}
1
+ {"version":3,"file":"parseHonoQuery-DopC24vB.cjs","names":["c: Context","result: Record<string, any>"],"sources":["../src/endpoints/parseHonoQuery.ts"],"sourcesContent":["import type { Context } from 'hono';\n\n/**\n * Parse Hono query parameters to handle arrays and nested objects\n * Hono provides c.req.queries() for arrays, but we need to handle dot notation for objects\n */\nexport function parseHonoQuery(c: Context): Record<string, any> {\n const allParams = c.req.query();\n const result: Record<string, any> = {};\n\n // First, handle all query parameters\n for (const [key, value] of Object.entries(allParams)) {\n if (key.includes('.')) {\n // Handle dot notation for objects\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value, checking for arrays in nested keys\n const lastPart = parts[parts.length - 1];\n const multipleValues = c.req.queries(key);\n if (multipleValues && multipleValues.length > 1) {\n current[lastPart] = multipleValues;\n } else {\n current[lastPart] = value;\n }\n } else {\n // For regular keys, check if there are multiple values\n const multipleValues = c.req.queries(key);\n if (multipleValues && multipleValues.length > 1) {\n result[key] = multipleValues;\n } else {\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;AAMA,SAAgB,eAAeA,GAAiC;CAC9D,MAAM,YAAY,EAAE,IAAI,OAAO;CAC/B,MAAMC,SAA8B,CAAE;AAGtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,UAAU,CAClD,KAAI,IAAI,SAAS,IAAI,EAAE;EAErB,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,IAAI,UAAU;AAGd,OAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;GACzC,MAAM,OAAO,MAAM;AACnB,QACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,aAAU,QAAQ;EACnB;EAGD,MAAM,WAAW,MAAM,MAAM,SAAS;EACtC,MAAM,iBAAiB,EAAE,IAAI,QAAQ,IAAI;AACzC,MAAI,kBAAkB,eAAe,SAAS,EAC5C,SAAQ,YAAY;MAEpB,SAAQ,YAAY;CAEvB,OAAM;EAEL,MAAM,iBAAiB,EAAE,IAAI,QAAQ,IAAI;AACzC,MAAI,kBAAkB,eAAe,SAAS,EAC5C,QAAO,OAAO;MAEd,QAAO,OAAO;CAEjB;AAGH,QAAO;AACR"}
@@ -28,4 +28,4 @@ function parseHonoQuery(c) {
28
28
 
29
29
  //#endregion
30
30
  export { parseHonoQuery };
31
- //# sourceMappingURL=parseHonoQuery-yWRoKFFl.mjs.map
31
+ //# sourceMappingURL=parseHonoQuery-znDKBhdE.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseHonoQuery-yWRoKFFl.mjs","names":["c: Context","result: Record<string, any>"],"sources":["../src/endpoints/parseHonoQuery.ts"],"sourcesContent":["import type { Context } from 'hono';\n\n/**\n * Parse Hono query parameters to handle arrays and nested objects\n * Hono provides c.req.queries() for arrays, but we need to handle dot notation for objects\n */\nexport function parseHonoQuery(c: Context): Record<string, any> {\n const allParams = c.req.query();\n const result: Record<string, any> = {};\n\n // First, handle all query parameters\n for (const [key, value] of Object.entries(allParams)) {\n if (key.includes('.')) {\n // Handle dot notation for objects\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value, checking for arrays in nested keys\n const lastPart = parts[parts.length - 1];\n const multipleValues = c.req.queries(key);\n if (multipleValues && multipleValues.length > 1) {\n current[lastPart] = multipleValues;\n } else {\n current[lastPart] = value;\n }\n } else {\n // For regular keys, check if there are multiple values\n const multipleValues = c.req.queries(key);\n if (multipleValues && multipleValues.length > 1) {\n result[key] = multipleValues;\n } else {\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;AAMA,SAAgB,eAAeA,GAAiC;CAC9D,MAAM,YAAY,EAAE,IAAI,OAAO;CAC/B,MAAMC,SAA8B,CAAE;AAGtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,UAAU,CAClD,KAAI,IAAI,SAAS,IAAI,EAAE;EAErB,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,IAAI,UAAU;AAGd,OAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;GACzC,MAAM,OAAO,MAAM;AACnB,QACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,aAAU,QAAQ;EACnB;EAGD,MAAM,WAAW,MAAM,MAAM,SAAS;EACtC,MAAM,iBAAiB,EAAE,IAAI,QAAQ,IAAI;AACzC,MAAI,kBAAkB,eAAe,SAAS,EAC5C,SAAQ,YAAY;MAEpB,SAAQ,YAAY;CAEvB,OAAM;EAEL,MAAM,iBAAiB,EAAE,IAAI,QAAQ,IAAI;AACzC,MAAI,kBAAkB,eAAe,SAAS,EAC5C,QAAO,OAAO;MAEd,QAAO,OAAO;CAEjB;AAGH,QAAO;AACR"}
1
+ {"version":3,"file":"parseHonoQuery-znDKBhdE.mjs","names":["c: Context","result: Record<string, any>"],"sources":["../src/endpoints/parseHonoQuery.ts"],"sourcesContent":["import type { Context } from 'hono';\n\n/**\n * Parse Hono query parameters to handle arrays and nested objects\n * Hono provides c.req.queries() for arrays, but we need to handle dot notation for objects\n */\nexport function parseHonoQuery(c: Context): Record<string, any> {\n const allParams = c.req.query();\n const result: Record<string, any> = {};\n\n // First, handle all query parameters\n for (const [key, value] of Object.entries(allParams)) {\n if (key.includes('.')) {\n // Handle dot notation for objects\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value, checking for arrays in nested keys\n const lastPart = parts[parts.length - 1];\n const multipleValues = c.req.queries(key);\n if (multipleValues && multipleValues.length > 1) {\n current[lastPart] = multipleValues;\n } else {\n current[lastPart] = value;\n }\n } else {\n // For regular keys, check if there are multiple values\n const multipleValues = c.req.queries(key);\n if (multipleValues && multipleValues.length > 1) {\n result[key] = multipleValues;\n } else {\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;AAMA,SAAgB,eAAeA,GAAiC;CAC9D,MAAM,YAAY,EAAE,IAAI,OAAO;CAC/B,MAAMC,SAA8B,CAAE;AAGtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,UAAU,CAClD,KAAI,IAAI,SAAS,IAAI,EAAE;EAErB,MAAM,QAAQ,IAAI,MAAM,IAAI;EAC5B,IAAI,UAAU;AAGd,OAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;GACzC,MAAM,OAAO,MAAM;AACnB,QACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,aAAU,QAAQ;EACnB;EAGD,MAAM,WAAW,MAAM,MAAM,SAAS;EACtC,MAAM,iBAAiB,EAAE,IAAI,QAAQ,IAAI;AACzC,MAAI,kBAAkB,eAAe,SAAS,EAC5C,SAAQ,YAAY;MAEpB,SAAQ,YAAY;CAEvB,OAAM;EAEL,MAAM,iBAAiB,EAAE,IAAI,QAAQ,IAAI;AACzC,MAAI,kBAAkB,eAAe,SAAS,EAC5C,QAAO,OAAO;MAEd,QAAO,OAAO;CAEjB;AAGH,QAAO;AACR"}
@@ -29,4 +29,4 @@ function parseQueryParams(queryParams) {
29
29
 
30
30
  //#endregion
31
31
  export { parseQueryParams };
32
- //# sourceMappingURL=parseQueryParams-DSk9xl09.mjs.map
32
+ //# sourceMappingURL=parseQueryParams-BJaRh3OB.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseQueryParams-DSk9xl09.mjs","names":["queryParams: Record<string, string | string[] | undefined> | null","result: Record<string, any>"],"sources":["../src/endpoints/parseQueryParams.ts"],"sourcesContent":["/**\n * Parse query parameters from a flat object into a nested structure\n * Handles arrays (multiple values with same key) and objects (dot notation)\n *\n * @example\n * parseQueryParams({ 'tags': ['a', 'b'], 'filter.name': 'john' })\n * // Returns: { tags: ['a', 'b'], filter: { name: 'john' } }\n */\nexport function parseQueryParams(\n queryParams: Record<string, string | string[] | undefined> | null,\n): Record<string, any> {\n if (!queryParams) {\n return {};\n }\n\n const result: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (value === undefined) {\n continue;\n }\n\n // Check if the key contains dot notation\n if (key.includes('.')) {\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value\n const lastPart = parts[parts.length - 1];\n current[lastPart] = value;\n } else {\n // Simple key, just assign the value\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;AAQA,SAAgB,iBACdA,aACqB;AACrB,MAAK,YACH,QAAO,CAAE;CAGX,MAAMC,SAA8B,CAAE;AAEtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,YAAY,EAAE;AACtD,MAAI,iBACF;AAIF,MAAI,IAAI,SAAS,IAAI,EAAE;GACrB,MAAM,QAAQ,IAAI,MAAM,IAAI;GAC5B,IAAI,UAAU;AAGd,QAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;IACzC,MAAM,OAAO,MAAM;AACnB,SACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,cAAU,QAAQ;GACnB;GAGD,MAAM,WAAW,MAAM,MAAM,SAAS;AACtC,WAAQ,YAAY;EACrB,MAEC,QAAO,OAAO;CAEjB;AAED,QAAO;AACR"}
1
+ {"version":3,"file":"parseQueryParams-BJaRh3OB.mjs","names":["queryParams: Record<string, string | string[] | undefined> | null","result: Record<string, any>"],"sources":["../src/endpoints/parseQueryParams.ts"],"sourcesContent":["/**\n * Parse query parameters from a flat object into a nested structure\n * Handles arrays (multiple values with same key) and objects (dot notation)\n *\n * @example\n * parseQueryParams({ 'tags': ['a', 'b'], 'filter.name': 'john' })\n * // Returns: { tags: ['a', 'b'], filter: { name: 'john' } }\n */\nexport function parseQueryParams(\n queryParams: Record<string, string | string[] | undefined> | null,\n): Record<string, any> {\n if (!queryParams) {\n return {};\n }\n\n const result: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (value === undefined) {\n continue;\n }\n\n // Check if the key contains dot notation\n if (key.includes('.')) {\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value\n const lastPart = parts[parts.length - 1];\n current[lastPart] = value;\n } else {\n // Simple key, just assign the value\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;AAQA,SAAgB,iBACdA,aACqB;AACrB,MAAK,YACH,QAAO,CAAE;CAGX,MAAMC,SAA8B,CAAE;AAEtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,YAAY,EAAE;AACtD,MAAI,iBACF;AAIF,MAAI,IAAI,SAAS,IAAI,EAAE;GACrB,MAAM,QAAQ,IAAI,MAAM,IAAI;GAC5B,IAAI,UAAU;AAGd,QAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;IACzC,MAAM,OAAO,MAAM;AACnB,SACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,cAAU,QAAQ;GACnB;GAGD,MAAM,WAAW,MAAM,MAAM,SAAS;AACtC,WAAQ,YAAY;EACrB,MAEC,QAAO,OAAO;CAEjB;AAED,QAAO;AACR"}
@@ -35,4 +35,4 @@ Object.defineProperty(exports, 'parseQueryParams', {
35
35
  return parseQueryParams;
36
36
  }
37
37
  });
38
- //# sourceMappingURL=parseQueryParams-C2EjouGt.cjs.map
38
+ //# sourceMappingURL=parseQueryParams-BzPop4I1.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseQueryParams-C2EjouGt.cjs","names":["queryParams: Record<string, string | string[] | undefined> | null","result: Record<string, any>"],"sources":["../src/endpoints/parseQueryParams.ts"],"sourcesContent":["/**\n * Parse query parameters from a flat object into a nested structure\n * Handles arrays (multiple values with same key) and objects (dot notation)\n *\n * @example\n * parseQueryParams({ 'tags': ['a', 'b'], 'filter.name': 'john' })\n * // Returns: { tags: ['a', 'b'], filter: { name: 'john' } }\n */\nexport function parseQueryParams(\n queryParams: Record<string, string | string[] | undefined> | null,\n): Record<string, any> {\n if (!queryParams) {\n return {};\n }\n\n const result: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (value === undefined) {\n continue;\n }\n\n // Check if the key contains dot notation\n if (key.includes('.')) {\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value\n const lastPart = parts[parts.length - 1];\n current[lastPart] = value;\n } else {\n // Simple key, just assign the value\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,iBACdA,aACqB;AACrB,MAAK,YACH,QAAO,CAAE;CAGX,MAAMC,SAA8B,CAAE;AAEtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,YAAY,EAAE;AACtD,MAAI,iBACF;AAIF,MAAI,IAAI,SAAS,IAAI,EAAE;GACrB,MAAM,QAAQ,IAAI,MAAM,IAAI;GAC5B,IAAI,UAAU;AAGd,QAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;IACzC,MAAM,OAAO,MAAM;AACnB,SACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,cAAU,QAAQ;GACnB;GAGD,MAAM,WAAW,MAAM,MAAM,SAAS;AACtC,WAAQ,YAAY;EACrB,MAEC,QAAO,OAAO;CAEjB;AAED,QAAO;AACR"}
1
+ {"version":3,"file":"parseQueryParams-BzPop4I1.cjs","names":["queryParams: Record<string, string | string[] | undefined> | null","result: Record<string, any>"],"sources":["../src/endpoints/parseQueryParams.ts"],"sourcesContent":["/**\n * Parse query parameters from a flat object into a nested structure\n * Handles arrays (multiple values with same key) and objects (dot notation)\n *\n * @example\n * parseQueryParams({ 'tags': ['a', 'b'], 'filter.name': 'john' })\n * // Returns: { tags: ['a', 'b'], filter: { name: 'john' } }\n */\nexport function parseQueryParams(\n queryParams: Record<string, string | string[] | undefined> | null,\n): Record<string, any> {\n if (!queryParams) {\n return {};\n }\n\n const result: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (value === undefined) {\n continue;\n }\n\n // Check if the key contains dot notation\n if (key.includes('.')) {\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value\n const lastPart = parts[parts.length - 1];\n current[lastPart] = value;\n } else {\n // Simple key, just assign the value\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,iBACdA,aACqB;AACrB,MAAK,YACH,QAAO,CAAE;CAGX,MAAMC,SAA8B,CAAE;AAEtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,YAAY,EAAE;AACtD,MAAI,iBACF;AAIF,MAAI,IAAI,SAAS,IAAI,EAAE;GACrB,MAAM,QAAQ,IAAI,MAAM,IAAI;GAC5B,IAAI,UAAU;AAGd,QAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;IACzC,MAAM,OAAO,MAAM;AACnB,SACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,cAAU,QAAQ;GACnB;GAGD,MAAM,WAAW,MAAM,MAAM,SAAS;AACtC,WAAQ,YAAY;EACrB,MAEC,QAAO,OAAO;CAEjB;AAED,QAAO;AACR"}
@@ -1,3 +1,3 @@
1
- const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs');
1
+ const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs');
2
2
 
3
3
  exports.AWSLambdaSubscriber = require_AWSLambdaSubscriberAdaptor.AWSLambdaSubscriber;
@@ -1,3 +1,3 @@
1
- import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs";
1
+ import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs";
2
2
 
3
3
  export { AWSLambdaSubscriber };
@@ -1,4 +1,4 @@
1
1
  require('../Construct-BSEs6uwW.cjs');
2
- const require_Subscriber = require('../Subscriber-CSt7EOlT.cjs');
2
+ const require_Subscriber = require('../Subscriber-G7EUI3yc.cjs');
3
3
 
4
4
  exports.Subscriber = require_Subscriber.Subscriber;
@@ -1,4 +1,4 @@
1
1
  import "../Construct-BbKCIPQm.mjs";
2
- import { Subscriber } from "../Subscriber-DkCDcTUL.mjs";
2
+ import { Subscriber } from "../Subscriber-BTwKnz3c.mjs";
3
3
 
4
4
  export { Subscriber };
@@ -1,5 +1,5 @@
1
1
  require('../Construct-BSEs6uwW.cjs');
2
- require('../Subscriber-CSt7EOlT.cjs');
3
- const require_SubscriberBuilder = require('../SubscriberBuilder-RsiOmnwq.cjs');
2
+ require('../Subscriber-G7EUI3yc.cjs');
3
+ const require_SubscriberBuilder = require('../SubscriberBuilder-C6iZvuDe.cjs');
4
4
 
5
5
  exports.SubscriberBuilder = require_SubscriberBuilder.SubscriberBuilder;
@@ -1,5 +1,5 @@
1
1
  import "../Construct-BbKCIPQm.mjs";
2
- import "../Subscriber-DkCDcTUL.mjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-Bn9Hyi28.mjs";
2
+ import "../Subscriber-BTwKnz3c.mjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-C1me_972.mjs";
4
4
 
5
5
  export { SubscriberBuilder };
@@ -1,6 +1,6 @@
1
1
  require('../Construct-BSEs6uwW.cjs');
2
- const require_Subscriber = require('../Subscriber-CSt7EOlT.cjs');
3
- const require_SubscriberBuilder = require('../SubscriberBuilder-RsiOmnwq.cjs');
2
+ const require_Subscriber = require('../Subscriber-G7EUI3yc.cjs');
3
+ const require_SubscriberBuilder = require('../SubscriberBuilder-C6iZvuDe.cjs');
4
4
 
5
5
  //#region src/subscribers/index.ts
6
6
  const s = new require_SubscriberBuilder.SubscriberBuilder();
@@ -1,10 +1,10 @@
1
1
  import "../Construct-Bm-PSO2V.cjs";
2
2
  import { Subscriber } from "../Subscriber-BoFm12i_.cjs";
3
3
  import { SubscriberBuilder } from "../SubscriberBuilder-DgljKtYu.cjs";
4
- import * as _geekmidas_logger7 from "@geekmidas/logger";
4
+ import * as _geekmidas_logger5 from "@geekmidas/logger";
5
5
 
6
6
  //#region src/subscribers/index.d.ts
7
- declare const s: SubscriberBuilder<[], _geekmidas_logger7.Logger, undefined, undefined, string, []>;
7
+ declare const s: SubscriberBuilder<[], _geekmidas_logger5.Logger, undefined, undefined, string, []>;
8
8
  //#endregion
9
9
  export { Subscriber, SubscriberBuilder, s };
10
10
  //# sourceMappingURL=index.d.cts.map
@@ -1,10 +1,10 @@
1
1
  import "../Construct-DdyYENBD.mjs";
2
2
  import { Subscriber } from "../Subscriber-BxH6n8zQ.mjs";
3
3
  import { SubscriberBuilder } from "../SubscriberBuilder-BpSDPzBz.mjs";
4
- import * as _geekmidas_logger5 from "@geekmidas/logger";
4
+ import * as _geekmidas_logger6 from "@geekmidas/logger";
5
5
 
6
6
  //#region src/subscribers/index.d.ts
7
- declare const s: SubscriberBuilder<[], _geekmidas_logger5.Logger, undefined, undefined, string, []>;
7
+ declare const s: SubscriberBuilder<[], _geekmidas_logger6.Logger, undefined, undefined, string, []>;
8
8
  //#endregion
9
9
  export { Subscriber, SubscriberBuilder, s };
10
10
  //# sourceMappingURL=index.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import "../Construct-BbKCIPQm.mjs";
2
- import { Subscriber } from "../Subscriber-DkCDcTUL.mjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-Bn9Hyi28.mjs";
2
+ import { Subscriber } from "../Subscriber-BTwKnz3c.mjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-C1me_972.mjs";
4
4
 
5
5
  //#region src/subscribers/index.ts
6
6
  const s = new SubscriberBuilder();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekmidas/constructs",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -66,13 +66,13 @@
66
66
  "lodash.compact": "~3.0.1",
67
67
  "openapi-types": "~12.1.3",
68
68
  "fast-glob": "~3.3.3",
69
- "@geekmidas/schema": "0.0.1",
70
- "@geekmidas/services": "0.0.1",
69
+ "@geekmidas/schema": "0.0.2",
71
70
  "@geekmidas/logger": "0.0.1",
72
- "@geekmidas/events": "0.0.1",
73
71
  "@geekmidas/cache": "0.0.7",
74
72
  "@geekmidas/rate-limit": "0.1.0",
75
- "@geekmidas/errors": "0.0.1"
73
+ "@geekmidas/services": "0.0.1",
74
+ "@geekmidas/errors": "0.0.1",
75
+ "@geekmidas/events": "0.0.2"
76
76
  },
77
77
  "devDependencies": {
78
78
  "@types/lodash.pick": "~4.4.9",
@@ -84,7 +84,6 @@
84
84
  "@geekmidas/testkit": "0.0.16"
85
85
  },
86
86
  "peerDependencies": {
87
- "@standard-schema/spec": ">=1.0.0",
88
87
  "@middy/core": ">=6.3.1",
89
88
  "@types/aws-lambda": ">=8.10.92",
90
89
  "hono": ">=4.8.2",
@@ -1,5 +1,13 @@
1
1
  import { EndpointFactory } from './EndpointFactory';
2
2
 
3
- export { Endpoint, type EndpointOutput, type EndpointSchemas } from './Endpoint';
3
+ export { EndpointFactory } from './EndpointFactory';
4
+ export {
5
+ Endpoint,
6
+ type EndpointOutput,
7
+ type EndpointSchemas,
8
+ type EndpointHandler,
9
+ type EndpointContext,
10
+ } from './Endpoint';
11
+ export { EndpointBuilder } from './EndpointBuilder';
4
12
 
5
13
  export const e = new EndpointFactory();