@geekmidas/constructs 10.0.0-alpha.1 → 10.0.0-alpha.2

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 (193) hide show
  1. package/dist/{Construct-CdhThxDI.mjs → Construct-BD5neF7w.mjs} +14 -1
  2. package/dist/Construct-BD5neF7w.mjs.map +1 -0
  3. package/dist/{Construct-WhCXIOPV.d.cts → Construct-C0ijr2qp.d.cts} +14 -1
  4. package/dist/Construct-C0ijr2qp.d.cts.map +1 -0
  5. package/dist/{Construct-B-xc0SE9.d.mts → Construct-Ct8nalEi.d.mts} +14 -1
  6. package/dist/Construct-Ct8nalEi.d.mts.map +1 -0
  7. package/dist/{Construct-roId57cU.cjs → Construct-CyS3RpTL.cjs} +14 -1
  8. package/dist/Construct-CyS3RpTL.cjs.map +1 -0
  9. package/dist/Cron-ByxdOfpE.d.mts +31 -0
  10. package/dist/Cron-ByxdOfpE.d.mts.map +1 -0
  11. package/dist/Cron-Wqh464aO.d.cts +31 -0
  12. package/dist/Cron-Wqh464aO.d.cts.map +1 -0
  13. package/dist/CronBuilder-BL0AP6fs.d.mts +44 -0
  14. package/dist/CronBuilder-BL0AP6fs.d.mts.map +1 -0
  15. package/dist/CronBuilder-BmABazzH.mjs +84 -0
  16. package/dist/CronBuilder-BmABazzH.mjs.map +1 -0
  17. package/dist/CronBuilder-BqpEzMPQ.d.cts +44 -0
  18. package/dist/CronBuilder-BqpEzMPQ.d.cts.map +1 -0
  19. package/dist/CronBuilder-CkXPJiGO.cjs +96 -0
  20. package/dist/CronBuilder-CkXPJiGO.cjs.map +1 -0
  21. package/dist/{Endpoint-BKR5QH6O.d.mts → Endpoint-2Wg7T7Cq.d.mts} +2 -2
  22. package/dist/{Endpoint-BQ9O0P1w.d.cts.map → Endpoint-2Wg7T7Cq.d.mts.map} +1 -1
  23. package/dist/{Endpoint-BBkV6l0k.cjs → Endpoint-BiaaMEn_.cjs} +3 -3
  24. package/dist/{Endpoint-BBkV6l0k.cjs.map → Endpoint-BiaaMEn_.cjs.map} +1 -1
  25. package/dist/{Endpoint-BQ9O0P1w.d.cts → Endpoint-CH9Fn1AD.d.cts} +2 -2
  26. package/dist/Endpoint-CH9Fn1AD.d.cts.map +1 -0
  27. package/dist/{Endpoint-BTj58Gob.mjs → Endpoint-VIOpSo0S.mjs} +3 -3
  28. package/dist/{Endpoint-BTj58Gob.mjs.map → Endpoint-VIOpSo0S.mjs.map} +1 -1
  29. package/dist/{EndpointFactory-DYoGLaIT.cjs → EndpointFactory-ChxLZllA.cjs} +7 -5
  30. package/dist/EndpointFactory-ChxLZllA.cjs.map +1 -0
  31. package/dist/{EndpointFactory-BejSTzbB.mjs → EndpointFactory-DTTCkGEL.mjs} +7 -5
  32. package/dist/EndpointFactory-DTTCkGEL.mjs.map +1 -0
  33. package/dist/{HonoEndpointAdaptor-wMsCyMgt.cjs → HonoEndpointAdaptor-D233Jvpk.cjs} +5 -6
  34. package/dist/{HonoEndpointAdaptor-wMsCyMgt.cjs.map → HonoEndpointAdaptor-D233Jvpk.cjs.map} +1 -1
  35. package/dist/{HonoEndpointAdaptor-7aYNdqJq.mjs → HonoEndpointAdaptor-NKQQQbBY.mjs} +4 -5
  36. package/dist/{HonoEndpointAdaptor-7aYNdqJq.mjs.map → HonoEndpointAdaptor-NKQQQbBY.mjs.map} +1 -1
  37. package/dist/{Queue-D6WeziRD.d.cts → Queue-D7ZuwBhy.d.cts} +2 -2
  38. package/dist/{Queue-D6WeziRD.d.cts.map → Queue-D7ZuwBhy.d.cts.map} +1 -1
  39. package/dist/{Queue-DpUeqdC8.d.mts → Queue-gVGfi2Yk.d.mts} +2 -2
  40. package/dist/{Queue-DpUeqdC8.d.mts.map → Queue-gVGfi2Yk.d.mts.map} +1 -1
  41. package/dist/{Subscriber-4rBJgDKI.d.mts → Subscriber-2mEi0ImH.d.cts} +3 -3
  42. package/dist/{Subscriber-4rBJgDKI.d.mts.map → Subscriber-2mEi0ImH.d.cts.map} +1 -1
  43. package/dist/{Subscriber-DVQowdyj.d.cts → Subscriber-xTJ9ayPN.d.mts} +3 -3
  44. package/dist/{Subscriber-DVQowdyj.d.cts.map → Subscriber-xTJ9ayPN.d.mts.map} +1 -1
  45. package/dist/SubscriberBuilder-4OPehf2R.cjs +120 -0
  46. package/dist/SubscriberBuilder-4OPehf2R.cjs.map +1 -0
  47. package/dist/SubscriberBuilder-BjkbeT9l.mjs +108 -0
  48. package/dist/SubscriberBuilder-BjkbeT9l.mjs.map +1 -0
  49. package/dist/SubscriberBuilder-Dptmo-1A.d.mts +62 -0
  50. package/dist/SubscriberBuilder-Dptmo-1A.d.mts.map +1 -0
  51. package/dist/SubscriberBuilder-waNhzjSM.d.cts +62 -0
  52. package/dist/SubscriberBuilder-waNhzjSM.d.cts.map +1 -0
  53. package/dist/{Topic-Ohx9dvWr.d.cts → Topic-19QeHBIR.d.cts} +2 -2
  54. package/dist/{Topic-Ohx9dvWr.d.cts.map → Topic-19QeHBIR.d.cts.map} +1 -1
  55. package/dist/{Topic-cmy2jOUy.d.mts → Topic-DuFeqkBh.d.mts} +2 -2
  56. package/dist/{Topic-cmy2jOUy.d.mts.map → Topic-DuFeqkBh.d.mts.map} +1 -1
  57. package/dist/adaptors/aws.cjs +243 -10
  58. package/dist/adaptors/aws.cjs.map +1 -1
  59. package/dist/adaptors/aws.d.cts +99 -10
  60. package/dist/adaptors/aws.d.cts.map +1 -1
  61. package/dist/adaptors/aws.d.mts +99 -10
  62. package/dist/adaptors/aws.d.mts.map +1 -1
  63. package/dist/adaptors/aws.mjs +240 -7
  64. package/dist/adaptors/aws.mjs.map +1 -1
  65. package/dist/adaptors/hono.cjs +6 -7
  66. package/dist/adaptors/hono.d.cts +6 -6
  67. package/dist/adaptors/hono.d.mts +6 -6
  68. package/dist/adaptors/hono.mjs +6 -7
  69. package/dist/adaptors/testing.cjs +9 -10
  70. package/dist/adaptors/testing.cjs.map +1 -1
  71. package/dist/adaptors/testing.d.cts +6 -6
  72. package/dist/adaptors/testing.d.mts +6 -6
  73. package/dist/adaptors/testing.mjs +6 -7
  74. package/dist/adaptors/testing.mjs.map +1 -1
  75. package/dist/auth.d.cts +1 -1
  76. package/dist/auth.d.mts +1 -1
  77. package/dist/{cache-CdQ7OLpR.d.cts → cache-BrRz3fEB.d.mts} +3 -3
  78. package/dist/{cache-CdQ7OLpR.d.cts.map → cache-BrRz3fEB.d.mts.map} +1 -1
  79. package/dist/{cache-DYoJFcfd.d.mts → cache-BtZY_tHe.d.cts} +3 -3
  80. package/dist/{cache-DYoJFcfd.d.mts.map → cache-BtZY_tHe.d.cts.map} +1 -1
  81. package/dist/cache.d.cts +2 -2
  82. package/dist/cache.d.mts +2 -2
  83. package/dist/{construct-interface-BqwRNYA2.d.mts → construct-interface-D9d4Gm4p.d.cts} +2 -2
  84. package/dist/{construct-interface-BqwRNYA2.d.mts.map → construct-interface-D9d4Gm4p.d.cts.map} +1 -1
  85. package/dist/{construct-interface-D2nNkHUN.d.cts → construct-interface-g5GM5pwR.d.mts} +2 -2
  86. package/dist/{construct-interface-D2nNkHUN.d.cts.map → construct-interface-g5GM5pwR.d.mts.map} +1 -1
  87. package/dist/construct-interface.d.cts +1 -1
  88. package/dist/construct-interface.d.mts +1 -1
  89. package/dist/credential.d.cts +1 -1
  90. package/dist/credential.d.mts +1 -1
  91. package/dist/crons/index.cjs +8 -87
  92. package/dist/crons/index.cjs.map +1 -1
  93. package/dist/crons/index.d.cts +10 -46
  94. package/dist/crons/index.d.cts.map +1 -1
  95. package/dist/crons/index.d.mts +10 -46
  96. package/dist/crons/index.d.mts.map +1 -1
  97. package/dist/crons/index.mjs +6 -83
  98. package/dist/crons/index.mjs.map +1 -1
  99. package/dist/database/kysely.d.cts +2 -2
  100. package/dist/database/kysely.d.mts +2 -2
  101. package/dist/email.d.cts +1 -1
  102. package/dist/email.d.mts +1 -1
  103. package/dist/endpoints/index.cjs +6 -7
  104. package/dist/endpoints/index.d.cts +5 -5
  105. package/dist/endpoints/index.d.mts +5 -5
  106. package/dist/endpoints/index.mjs +5 -6
  107. package/dist/file-server.d.cts +1 -1
  108. package/dist/file-server.d.mts +1 -1
  109. package/dist/functions/index.cjs +2 -2
  110. package/dist/functions/index.d.cts +3 -3
  111. package/dist/functions/index.d.mts +3 -3
  112. package/dist/functions/index.mjs +2 -2
  113. package/dist/{functions-DukjG8ov.cjs → functions-Bd3TPxid.cjs} +10 -2
  114. package/dist/{functions-DukjG8ov.cjs.map → functions-Bd3TPxid.cjs.map} +1 -1
  115. package/dist/{functions-Cpff1uZH.mjs → functions-Cxbo-pEd.mjs} +10 -2
  116. package/dist/{functions-Cpff1uZH.mjs.map → functions-Cxbo-pEd.mjs.map} +1 -1
  117. package/dist/{index-Cvz551AO.d.mts → index-BxHDdy6a.d.mts} +5 -5
  118. package/dist/{index-Cvz551AO.d.mts.map → index-BxHDdy6a.d.mts.map} +1 -1
  119. package/dist/{index-BTvozlUD.d.cts → index-CubPzHd9.d.mts} +16 -9
  120. package/dist/index-CubPzHd9.d.mts.map +1 -0
  121. package/dist/{index-L7pz0R0T.d.mts → index-JSf9xNIJ.d.cts} +22 -14
  122. package/dist/index-JSf9xNIJ.d.cts.map +1 -0
  123. package/dist/{index-D5zqAJ2e.d.cts → index-V2nksZIJ.d.cts} +5 -5
  124. package/dist/{index-D5zqAJ2e.d.cts.map → index-V2nksZIJ.d.cts.map} +1 -1
  125. package/dist/index.cjs +1 -1
  126. package/dist/index.d.cts +1 -1
  127. package/dist/index.d.mts +1 -1
  128. package/dist/index.mjs +1 -1
  129. package/dist/{lazyAccessors-DM6HcXQk.mjs → lazyAccessors-BoJN3SMd.mjs} +41 -2
  130. package/dist/lazyAccessors-BoJN3SMd.mjs.map +1 -0
  131. package/dist/{lazyAccessors-DrJj8NpA.cjs → lazyAccessors-e3j2oE2m.cjs} +52 -1
  132. package/dist/lazyAccessors-e3j2oE2m.cjs.map +1 -0
  133. package/dist/object-storage.d.cts +1 -1
  134. package/dist/object-storage.d.mts +1 -1
  135. package/dist/{processAudits-Bc8rz6Ev.cjs → processAudits-CGqttuXm.cjs} +1 -1
  136. package/dist/{processAudits-Bc8rz6Ev.cjs.map → processAudits-CGqttuXm.cjs.map} +1 -1
  137. package/dist/{processAudits-D89tICM4.mjs → processAudits-Dmts9H_b.mjs} +1 -1
  138. package/dist/{processAudits-D89tICM4.mjs.map → processAudits-Dmts9H_b.mjs.map} +1 -1
  139. package/dist/queue/index.cjs +1 -1
  140. package/dist/queue/index.d.cts +5 -5
  141. package/dist/queue/index.d.mts +5 -5
  142. package/dist/queue/index.mjs +1 -1
  143. package/dist/rest-api.cjs +4 -4
  144. package/dist/rest-api.d.cts +5 -5
  145. package/dist/rest-api.d.mts +11 -11
  146. package/dist/rest-api.d.mts.map +1 -1
  147. package/dist/rest-api.mjs +4 -4
  148. package/dist/site.d.cts +1 -1
  149. package/dist/site.d.mts +1 -1
  150. package/dist/subscribers/index.cjs +7 -103
  151. package/dist/subscribers/index.cjs.map +1 -1
  152. package/dist/subscribers/index.d.cts +7 -56
  153. package/dist/subscribers/index.d.cts.map +1 -1
  154. package/dist/subscribers/index.d.mts +7 -56
  155. package/dist/subscribers/index.d.mts.map +1 -1
  156. package/dist/subscribers/index.mjs +4 -99
  157. package/dist/subscribers/index.mjs.map +1 -1
  158. package/dist/topic/index.cjs +1 -1
  159. package/dist/topic/index.d.cts +2 -2
  160. package/dist/topic/index.d.mts +2 -2
  161. package/dist/topic/index.mjs +1 -1
  162. package/dist/worker.cjs +91 -0
  163. package/dist/worker.cjs.map +1 -0
  164. package/dist/worker.d.cts +95 -0
  165. package/dist/worker.d.cts.map +1 -0
  166. package/dist/worker.d.mts +95 -0
  167. package/dist/worker.d.mts.map +1 -0
  168. package/dist/worker.mjs +90 -0
  169. package/dist/worker.mjs.map +1 -0
  170. package/package.json +44 -52
  171. package/dist/AWSScheduledFunction-9bJS4WdJ.d.cts +0 -122
  172. package/dist/AWSScheduledFunction-9bJS4WdJ.d.cts.map +0 -1
  173. package/dist/AWSScheduledFunction-BJjj8B5V.mjs +0 -243
  174. package/dist/AWSScheduledFunction-BJjj8B5V.mjs.map +0 -1
  175. package/dist/AWSScheduledFunction-BO5iEMSh.d.mts +0 -122
  176. package/dist/AWSScheduledFunction-BO5iEMSh.d.mts.map +0 -1
  177. package/dist/AWSScheduledFunction-qu4ieRZR.cjs +0 -255
  178. package/dist/AWSScheduledFunction-qu4ieRZR.cjs.map +0 -1
  179. package/dist/Construct-B-xc0SE9.d.mts.map +0 -1
  180. package/dist/Construct-CdhThxDI.mjs.map +0 -1
  181. package/dist/Construct-WhCXIOPV.d.cts.map +0 -1
  182. package/dist/Construct-roId57cU.cjs.map +0 -1
  183. package/dist/Endpoint-BKR5QH6O.d.mts.map +0 -1
  184. package/dist/EndpointFactory-BejSTzbB.mjs.map +0 -1
  185. package/dist/EndpointFactory-DYoGLaIT.cjs.map +0 -1
  186. package/dist/index-BTvozlUD.d.cts.map +0 -1
  187. package/dist/index-L7pz0R0T.d.mts.map +0 -1
  188. package/dist/lazyAccessors-DM6HcXQk.mjs.map +0 -1
  189. package/dist/lazyAccessors-DrJj8NpA.cjs.map +0 -1
  190. package/dist/publisher-CGEo8UKD.mjs +0 -41
  191. package/dist/publisher-CGEo8UKD.mjs.map +0 -1
  192. package/dist/publisher-CqGsXB2X.cjs +0 -53
  193. package/dist/publisher-CqGsXB2X.cjs.map +0 -1
@@ -1,22 +1,111 @@
1
- import "../Construct-B-xc0SE9.mjs";
2
- import "../index-L7pz0R0T.mjs";
3
- import { AWSLambdaFunction, AWSScheduledFunction } from "../AWSScheduledFunction-BO5iEMSh.mjs";
4
- import "../construct-interface-BqwRNYA2.mjs";
1
+ import "../Construct-Ct8nalEi.mjs";
2
+ import { Function as Function$1, FunctionHandler } from "../index-CubPzHd9.mjs";
3
+ import "../construct-interface-g5GM5pwR.mjs";
4
+ import { Cron } from "../Cron-ByxdOfpE.mjs";
5
5
  import { HttpMethod } from "../types-aKksMEWL.mjs";
6
6
  import { Telemetry } from "../telemetry-D7bVFLGi.mjs";
7
- import { CookieFn, Endpoint, EndpointSchemas } from "../Endpoint-BKR5QH6O.mjs";
8
- import { Queue } from "../Queue-DpUeqdC8.mjs";
9
- import { Subscriber } from "../Subscriber-4rBJgDKI.mjs";
7
+ import { CookieFn, Endpoint, EndpointSchemas } from "../Endpoint-2Wg7T7Cq.mjs";
8
+ import { Queue } from "../Queue-gVGfi2Yk.mjs";
9
+ import { Subscriber } from "../Subscriber-xTJ9ayPN.mjs";
10
10
  import { EnvironmentParser } from "@geekmidas/envkit";
11
- import { Service, ServiceRecord } from "@geekmidas/services";
11
+ import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
12
12
  import { MiddlewareObj } from "@middy/core";
13
- import { AuditStorage, AuditableAction } from "@geekmidas/audit";
13
+ import { AuditStorage, AuditableAction, Auditor } from "@geekmidas/audit";
14
14
  import { EventPublisher } from "@geekmidas/events";
15
15
  import { Logger } from "@geekmidas/logger";
16
- import { InferComposableStandardSchema } from "@geekmidas/schema";
16
+ import { ComposableStandardSchema, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
17
17
  import { StandardSchemaV1 } from "@standard-schema/spec";
18
18
  import { APIGatewayProxyEvent, APIGatewayProxyEventV2, Context, Handler, SQSBatchResponse, SQSEvent } from "aws-lambda";
19
19
 
20
+ //#region src/functions/FunctionExecutionWrapper.d.ts
21
+ declare abstract class FunctionExecutionWrapper<TInput extends ComposableStandardSchema | undefined = undefined, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> {
22
+ protected envParser: EnvironmentParser<{}>;
23
+ protected readonly fn: Function$1<TInput, TServices, TLogger, TOutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, TOutSchema, TDatabase, TAuditStorage, TAuditAction>>;
24
+ constructor(envParser: EnvironmentParser<{}>, fn: Function$1<TInput, TServices, TLogger, TOutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, TOutSchema, TDatabase, TAuditStorage, TAuditAction>>);
25
+ protected _logger?: TLogger;
26
+ get logger(): TLogger;
27
+ get serviceDiscovery(): ServiceDiscovery<ServiceRecord<TServices>>;
28
+ getServices(): Promise<ServiceRecord<TServices>>;
29
+ getDatabase(): Promise<TDatabase | undefined>;
30
+ /**
31
+ * Get the audit storage service if configured.
32
+ * Returns undefined if no auditor storage is configured.
33
+ */
34
+ getAuditStorage(): Promise<TAuditStorage | undefined>;
35
+ /**
36
+ * Create an auditor instance for the function.
37
+ * Returns undefined if no auditor storage is configured.
38
+ */
39
+ createAuditor(): Promise<Auditor<TAuditAction> | undefined>;
40
+ /**
41
+ * Execute handler with audit transaction support.
42
+ * If the audit storage has a database (via getDatabase()), wraps execution
43
+ * in a transaction so audits are atomic with handler's database operations.
44
+ *
45
+ * @param handler - The handler function to execute (receives auditor and db)
46
+ * @returns The handler result
47
+ */
48
+ executeWithAudit<T>(handler: (ctx: {
49
+ auditor?: Auditor<TAuditAction>;
50
+ db?: TDatabase;
51
+ }) => Promise<T>): Promise<T>;
52
+ getFunctionInput<TEvent>(event: TEvent): Promise<InferComposableStandardSchema<TInput>>;
53
+ publishEvents(response: InferStandardSchema<TOutSchema>): Promise<void>;
54
+ parseComposableStandardSchema<T extends ComposableStandardSchema>(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>>;
55
+ }
56
+ //# sourceMappingURL=FunctionExecutionWrapper.d.ts.map
57
+ //#endregion
58
+ //#region src/functions/AWSLambdaFunction.d.ts
59
+ type AWSLambdaHandler$2<TEvent = any, TResult = any> = Handler<TEvent, TResult>;
60
+ declare class AWSLambdaFunction<TInput extends ComposableStandardSchema | undefined = undefined, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> extends FunctionExecutionWrapper<TInput, TOutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction> {
61
+ readonly fn: Function$1<TInput, TServices, TLogger, TOutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, TOutSchema, TDatabase, TAuditStorage, TAuditAction>>;
62
+ constructor(envParser: EnvironmentParser<{}>, fn: Function$1<TInput, TServices, TLogger, TOutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, TOutSchema, TDatabase, TAuditStorage, TAuditAction>>);
63
+ private error;
64
+ private baseInput;
65
+ private input;
66
+ private loggerMiddleware;
67
+ private services;
68
+ private database;
69
+ private auditor;
70
+ private events;
71
+ private _handler;
72
+ get handler(): AWSLambdaHandler$2;
73
+ }
74
+ //# sourceMappingURL=AWSLambdaFunction.d.ts.map
75
+
76
+ //#endregion
77
+ //#region src/crons/AWSScheduledFunction.d.ts
78
+ /**
79
+ * AWS Lambda adaptor for {@link Cron} constructs.
80
+ *
81
+ * A `Cron` is a {@link import('../functions').Function} that is invoked on a
82
+ * schedule (an EventBridge rule) rather than by an API request. Because of
83
+ * that, the runtime execution pipeline is identical to a regular Lambda
84
+ * function: input parsing, service/database/auditor wiring, event publishing,
85
+ * error handling, and the `runWithRequestContext` wrapper that powers
86
+ * request-scoped logging via `serviceContext.getLogger()`.
87
+ *
88
+ * This adaptor therefore reuses {@link AWSLambdaFunction} wholesale and only
89
+ * narrows the constructor to accept a `Cron`. The schedule expression itself
90
+ * (`cron.schedule`) is **deploy-time** infrastructure consumed by the CLI to
91
+ * provision the EventBridge rule — it is not needed at runtime.
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * import { AWSScheduledFunction } from '@geekmidas/constructs/crons';
96
+ * import { cancelPastBookings } from '../../../src/crons/cancelPastBookings.js';
97
+ * import { envParser } from '../../../src/env';
98
+ *
99
+ * const adapter = new AWSScheduledFunction(envParser, cancelPastBookings);
100
+ *
101
+ * export const handler = adapter.handler;
102
+ * ```
103
+ */
104
+ declare class AWSScheduledFunction<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TOutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> extends AWSLambdaFunction<TInput, TOutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, undefined, string, TDatabase, TDatabaseServiceName> {
105
+ constructor(envParser: EnvironmentParser<{}>, cron: Cron<TInput, TServices, TLogger, TOutSchema, TEventPublisher, TEventPublisherServiceName, TDatabase, TDatabaseServiceName>);
106
+ }
107
+ //# sourceMappingURL=AWSScheduledFunction.d.ts.map
108
+ //#endregion
20
109
  //#region src/endpoints/AmazonApiGatewayEndpointAdaptor.d.ts
21
110
  /**
22
111
  * Telescope integration for request recording.
@@ -1 +1 @@
1
- {"version":3,"file":"aws.d.mts","names":[],"sources":["../../src/endpoints/AmazonApiGatewayEndpointAdaptor.ts","../../src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts","../../src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts","../../src/queue/AWSLambdaQueueAdaptor.ts","../../src/subscribers/AWSLambdaSubscriberAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"aws.d.mts","names":[],"sources":["../../src/functions/FunctionExecutionWrapper.ts","../../src/functions/AWSLambdaFunction.ts","../../src/crons/AWSScheduledFunction.ts","../../src/endpoints/AmazonApiGatewayEndpointAdaptor.ts","../../src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts","../../src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts","../../src/queue/AWSLambdaQueueAdaptor.ts","../../src/subscribers/AWSLambdaSubscriberAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,19 +1,252 @@
1
- import { __toESM } from "../Construct-CdhThxDI.mjs";
1
+ import { __toESM } from "../Construct-BD5neF7w.mjs";
2
2
  import "../construct-interface-Z4CpS8tK.mjs";
3
- import "../functions-Cpff1uZH.mjs";
3
+ import { FunctionBuilder } from "../functions-Cxbo-pEd.mjs";
4
4
  import "../clone-DblgEZZa.mjs";
5
- import { Endpoint, ResponseBuilder, require_lodash } from "../Endpoint-BTj58Gob.mjs";
5
+ import { Endpoint, ResponseBuilder, require_lodash } from "../Endpoint-VIOpSo0S.mjs";
6
6
  import { envParserFor } from "../surfaceEnv-C3Ktahea.mjs";
7
- import { publishConstructEvents } from "../publisher-CGEo8UKD.mjs";
8
- import { AWSLambdaFunction, AWSScheduledFunction } from "../AWSScheduledFunction-BJjj8B5V.mjs";
9
- import { createAuditContext, executeWithAuditTransaction } from "../processAudits-D89tICM4.mjs";
10
- import { createApiGatewayCookies } from "../lazyAccessors-DM6HcXQk.mjs";
7
+ import { createApiGatewayCookies, publishConstructEvents, publishEvents } from "../lazyAccessors-BoJN3SMd.mjs";
8
+ import { createAuditContext, executeWithAuditTransaction } from "../processAudits-Dmts9H_b.mjs";
11
9
  import { ForbiddenError, UnprocessableEntityError, wrapError } from "@geekmidas/errors";
12
10
  import { ServiceDiscovery, runWithRequestContext } from "@geekmidas/services";
13
11
  import middy from "@middy/core";
12
+ import { DefaultAuditor } from "@geekmidas/audit";
13
+ import { withAuditableTransaction } from "@geekmidas/audit/kysely";
14
14
  import { withRlsContext } from "@geekmidas/db/rls";
15
15
  import qs from "qs";
16
16
 
17
+ //#region src/functions/FunctionExecutionWrapper.ts
18
+ var FunctionExecutionWrapper = class {
19
+ constructor(envParser, fn) {
20
+ this.envParser = envParser;
21
+ this.fn = fn;
22
+ }
23
+ _logger;
24
+ get logger() {
25
+ return this._logger || this.fn.logger;
26
+ }
27
+ get serviceDiscovery() {
28
+ const serviceDiscovery = ServiceDiscovery.getInstance(this.envParser);
29
+ return serviceDiscovery;
30
+ }
31
+ getServices() {
32
+ return this.serviceDiscovery.register(this.fn.services);
33
+ }
34
+ async getDatabase() {
35
+ if (!this.fn.databaseService) return void 0;
36
+ const services = await this.serviceDiscovery.register([this.fn.databaseService]);
37
+ return services[this.fn.databaseService.serviceName];
38
+ }
39
+ /**
40
+ * Get the audit storage service if configured.
41
+ * Returns undefined if no auditor storage is configured.
42
+ */
43
+ async getAuditStorage() {
44
+ if (!this.fn.auditorStorageService) return void 0;
45
+ const services = await this.serviceDiscovery.register([this.fn.auditorStorageService]);
46
+ return services[this.fn.auditorStorageService.serviceName];
47
+ }
48
+ /**
49
+ * Create an auditor instance for the function.
50
+ * Returns undefined if no auditor storage is configured.
51
+ */
52
+ async createAuditor() {
53
+ const storage = await this.getAuditStorage();
54
+ if (!storage) return void 0;
55
+ return new DefaultAuditor({
56
+ actor: {
57
+ id: "system",
58
+ type: "system"
59
+ },
60
+ storage,
61
+ metadata: { function: this.fn.type }
62
+ });
63
+ }
64
+ /**
65
+ * Execute handler with audit transaction support.
66
+ * If the audit storage has a database (via getDatabase()), wraps execution
67
+ * in a transaction so audits are atomic with handler's database operations.
68
+ *
69
+ * @param handler - The handler function to execute (receives auditor and db)
70
+ * @returns The handler result
71
+ */
72
+ async executeWithAudit(handler) {
73
+ const auditor = await this.createAuditor();
74
+ const storage = await this.getAuditStorage();
75
+ if (!auditor || !storage) {
76
+ const db$1 = await this.getDatabase();
77
+ return handler({ db: db$1 });
78
+ }
79
+ const storageDb = storage.getDatabase?.();
80
+ const databaseServiceName = this.fn.databaseService?.serviceName;
81
+ const auditDbServiceName = this.fn.auditorStorageService?.serviceName;
82
+ if (storageDb && databaseServiceName && auditDbServiceName) return withAuditableTransaction(storageDb, auditor, async (trx) => {
83
+ const response$1 = await handler({
84
+ auditor,
85
+ db: trx
86
+ });
87
+ return response$1;
88
+ });
89
+ const db = await this.getDatabase();
90
+ const response = await handler({
91
+ auditor,
92
+ db
93
+ });
94
+ await auditor.flush();
95
+ return response;
96
+ }
97
+ async getFunctionInput(event) {
98
+ const parsedInput = await FunctionBuilder.parseComposableStandardSchema(event, this.fn.input);
99
+ return parsedInput;
100
+ }
101
+ async publishEvents(response) {
102
+ await publishEvents(this.logger, this.serviceDiscovery, this.fn.events, response, this.fn.publisherService);
103
+ }
104
+ async parseComposableStandardSchema(data, schema) {
105
+ return FunctionBuilder.parseComposableStandardSchema(data, schema);
106
+ }
107
+ };
108
+
109
+ //#endregion
110
+ //#region src/functions/AWSLambdaFunction.ts
111
+ var AWSLambdaFunction = class extends FunctionExecutionWrapper {
112
+ constructor(envParser, fn) {
113
+ super(envParser, fn);
114
+ this.fn = fn;
115
+ }
116
+ error() {
117
+ return { onError: (req) => {
118
+ const logger = req.event?.logger || this.fn.logger;
119
+ logger.error(req.error || {}, "Error processing function");
120
+ throw wrapError(req.error);
121
+ } };
122
+ }
123
+ baseInput() {
124
+ return { before: (_req) => {} };
125
+ }
126
+ input() {
127
+ return { before: async (req) => {
128
+ try {
129
+ if (this.fn.input) {
130
+ const parsedInput = await FunctionBuilder.parseComposableStandardSchema(req.event, this.fn.input);
131
+ req.event.parsedInput = parsedInput;
132
+ } else req.event.parsedInput = req.event;
133
+ } catch (error) {
134
+ this.logger.error({
135
+ error,
136
+ event: req.event
137
+ }, "Failed to parse input");
138
+ throw error;
139
+ }
140
+ } };
141
+ }
142
+ loggerMiddleware() {
143
+ return { before: (req) => {
144
+ this._logger = this.fn.logger.child({
145
+ fn: {
146
+ name: req.context.functionName,
147
+ version: req.context.functionVersion,
148
+ memory: req.context.memoryLimitInMB
149
+ },
150
+ req: { id: req.context.awsRequestId }
151
+ });
152
+ req.event.logger = this._logger;
153
+ } };
154
+ }
155
+ services() {
156
+ return { before: async (req) => {
157
+ req.event.services = await this.getServices();
158
+ } };
159
+ }
160
+ database() {
161
+ return { before: async (req) => {
162
+ req.event.db = await this.getDatabase();
163
+ } };
164
+ }
165
+ auditor() {
166
+ return {
167
+ before: async (req) => {
168
+ req.event.auditor = await this.createAuditor();
169
+ },
170
+ after: async (req) => {
171
+ if (req.event.auditor) {
172
+ const records = req.event.auditor.getRecords();
173
+ if (records.length > 0) {
174
+ this.logger.debug({ auditCount: records.length }, "Flushing function audits");
175
+ await req.event.auditor.flush();
176
+ }
177
+ }
178
+ }
179
+ };
180
+ }
181
+ events() {
182
+ return { after: async (req) => {
183
+ const response = req.response || void 0;
184
+ await this.publishEvents(response);
185
+ } };
186
+ }
187
+ async _handler(event) {
188
+ const result = await this.fn.fn({
189
+ input: event.parsedInput,
190
+ services: event.services,
191
+ logger: event.logger,
192
+ db: event.db,
193
+ auditor: event.auditor
194
+ });
195
+ const output = await this.fn.parseOutput(result);
196
+ return output;
197
+ }
198
+ get handler() {
199
+ const handler = this._handler.bind(this);
200
+ const chain = middy(handler).use(this.loggerMiddleware()).use(this.baseInput()).use(this.error()).use(this.services()).use(this.database()).use(this.auditor()).use(this.input()).use(this.events());
201
+ const wrappedHandler = async (event, context) => {
202
+ const startTime = Date.now();
203
+ const requestId = context.awsRequestId;
204
+ const logger = this.fn.logger.child({ requestId });
205
+ return runWithRequestContext({
206
+ logger,
207
+ requestId,
208
+ startTime
209
+ }, () => chain(event, context));
210
+ };
211
+ return wrappedHandler;
212
+ }
213
+ };
214
+
215
+ //#endregion
216
+ //#region src/crons/AWSScheduledFunction.ts
217
+ /**
218
+ * AWS Lambda adaptor for {@link Cron} constructs.
219
+ *
220
+ * A `Cron` is a {@link import('../functions').Function} that is invoked on a
221
+ * schedule (an EventBridge rule) rather than by an API request. Because of
222
+ * that, the runtime execution pipeline is identical to a regular Lambda
223
+ * function: input parsing, service/database/auditor wiring, event publishing,
224
+ * error handling, and the `runWithRequestContext` wrapper that powers
225
+ * request-scoped logging via `serviceContext.getLogger()`.
226
+ *
227
+ * This adaptor therefore reuses {@link AWSLambdaFunction} wholesale and only
228
+ * narrows the constructor to accept a `Cron`. The schedule expression itself
229
+ * (`cron.schedule`) is **deploy-time** infrastructure consumed by the CLI to
230
+ * provision the EventBridge rule — it is not needed at runtime.
231
+ *
232
+ * @example
233
+ * ```typescript
234
+ * import { AWSScheduledFunction } from '@geekmidas/constructs/crons';
235
+ * import { cancelPastBookings } from '../../../src/crons/cancelPastBookings.js';
236
+ * import { envParser } from '../../../src/env';
237
+ *
238
+ * const adapter = new AWSScheduledFunction(envParser, cancelPastBookings);
239
+ *
240
+ * export const handler = adapter.handler;
241
+ * ```
242
+ */
243
+ var AWSScheduledFunction = class extends AWSLambdaFunction {
244
+ constructor(envParser, cron) {
245
+ super(envParser, cron);
246
+ }
247
+ };
248
+
249
+ //#endregion
17
250
  //#region src/endpoints/AmazonApiGatewayEndpointAdaptor.ts
18
251
  var import_lodash = __toESM(require_lodash(), 1);
19
252
  var AmazonApiGatewayEndpoint = class {