@geekmidas/constructs 10.0.0-alpha.123 → 10.0.0-alpha.125

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 (183) hide show
  1. package/dist/{Construct-CFW0zjdD.d.cts → Construct-127M7yrl.d.cts} +3 -2
  2. package/dist/{Construct-B7AXn0xH.d.mts.map → Construct-127M7yrl.d.cts.map} +1 -1
  3. package/dist/{Construct-CKUA-CTA.mjs → Construct-CGuc_Ijk.mjs} +2 -1
  4. package/dist/{Construct-CKUA-CTA.mjs.map → Construct-CGuc_Ijk.mjs.map} +1 -1
  5. package/dist/{Construct-DEOVauyA.cjs → Construct-DorKS0Ua.cjs} +2 -1
  6. package/dist/{Construct-DEOVauyA.cjs.map → Construct-DorKS0Ua.cjs.map} +1 -1
  7. package/dist/{Construct-B7AXn0xH.d.mts → Construct-DySlwh8o.d.mts} +3 -2
  8. package/dist/{Construct-CFW0zjdD.d.cts.map → Construct-DySlwh8o.d.mts.map} +1 -1
  9. package/dist/{Cron-bdGRSROY.d.cts → Cron-CFkpEys6.d.cts} +4 -4
  10. package/dist/{Cron-bdGRSROY.d.cts.map → Cron-CFkpEys6.d.cts.map} +1 -1
  11. package/dist/{Cron-i4Uetezh.d.mts → Cron-CQoDSu-n.d.mts} +4 -4
  12. package/dist/{Cron-i4Uetezh.d.mts.map → Cron-CQoDSu-n.d.mts.map} +1 -1
  13. package/dist/{CronBuilder-9H4BnD6W.d.mts → CronBuilder-1W-G_i15.d.mts} +5 -5
  14. package/dist/{CronBuilder-9H4BnD6W.d.mts.map → CronBuilder-1W-G_i15.d.mts.map} +1 -1
  15. package/dist/{CronBuilder-D3sF9tS_.mjs → CronBuilder-BJ5LoadF.mjs} +3 -3
  16. package/dist/{CronBuilder-D3sF9tS_.mjs.map → CronBuilder-BJ5LoadF.mjs.map} +1 -1
  17. package/dist/{CronBuilder-BXTG10u5.cjs → CronBuilder-B_NSP-Y5.cjs} +3 -3
  18. package/dist/{CronBuilder-BXTG10u5.cjs.map → CronBuilder-B_NSP-Y5.cjs.map} +1 -1
  19. package/dist/{CronBuilder-B_24LZpn.d.cts → CronBuilder-OaCRRFVk.d.cts} +5 -5
  20. package/dist/{CronBuilder-B_24LZpn.d.cts.map → CronBuilder-OaCRRFVk.d.cts.map} +1 -1
  21. package/dist/{Endpoint-DgrpG15P.d.cts → Endpoint-BEh-jW-f.d.cts} +4 -4
  22. package/dist/{Endpoint-CeFkSwh5.d.mts.map → Endpoint-BEh-jW-f.d.cts.map} +1 -1
  23. package/dist/{Endpoint-yhR2T2Wt.cjs → Endpoint-BuGFNFSB.cjs} +3 -3
  24. package/dist/{Endpoint-yhR2T2Wt.cjs.map → Endpoint-BuGFNFSB.cjs.map} +1 -1
  25. package/dist/{Endpoint-CeFkSwh5.d.mts → Endpoint-DTXDggNl.d.mts} +4 -4
  26. package/dist/{Endpoint-DgrpG15P.d.cts.map → Endpoint-DTXDggNl.d.mts.map} +1 -1
  27. package/dist/{Endpoint-gPXhHKhJ.mjs → Endpoint-VdaYKc2g.mjs} +3 -3
  28. package/dist/{Endpoint-gPXhHKhJ.mjs.map → Endpoint-VdaYKc2g.mjs.map} +1 -1
  29. package/dist/{EndpointFactory-Cc863XJS.d.cts → EndpointFactory-B2dCS9dy.d.cts} +4 -4
  30. package/dist/{EndpointFactory-Dbw9ugkX.d.mts.map → EndpointFactory-B2dCS9dy.d.cts.map} +1 -1
  31. package/dist/{EndpointFactory-CSrAyazj.cjs → EndpointFactory-C6pVda4y.cjs} +4 -4
  32. package/dist/{EndpointFactory-CSrAyazj.cjs.map → EndpointFactory-C6pVda4y.cjs.map} +1 -1
  33. package/dist/{EndpointFactory-c2ZugGig.mjs → EndpointFactory-CUpqgtaH.mjs} +4 -4
  34. package/dist/{EndpointFactory-c2ZugGig.mjs.map → EndpointFactory-CUpqgtaH.mjs.map} +1 -1
  35. package/dist/{EndpointFactory-Dbw9ugkX.d.mts → EndpointFactory-D2HXcUrJ.d.mts} +4 -4
  36. package/dist/{EndpointFactory-Cc863XJS.d.cts.map → EndpointFactory-D2HXcUrJ.d.mts.map} +1 -1
  37. package/dist/{Function-B0uZhZnU.d.cts → Function-BIEsY0Hm.d.cts} +2 -2
  38. package/dist/{Function-B0uZhZnU.d.cts.map → Function-BIEsY0Hm.d.cts.map} +1 -1
  39. package/dist/{Function-B_9R7Zy1.d.mts → Function-DfMzTGS4.d.mts} +2 -2
  40. package/dist/{Function-B_9R7Zy1.d.mts.map → Function-DfMzTGS4.d.mts.map} +1 -1
  41. package/dist/{HonoEndpointAdaptor-CN1jjUBJ.cjs → HonoEndpointAdaptor-BBTzbP38.cjs} +3 -3
  42. package/dist/{HonoEndpointAdaptor-CN1jjUBJ.cjs.map → HonoEndpointAdaptor-BBTzbP38.cjs.map} +1 -1
  43. package/dist/{HonoEndpointAdaptor-euH1oSdY.mjs → HonoEndpointAdaptor-BR_LyaFE.mjs} +3 -3
  44. package/dist/{HonoEndpointAdaptor-euH1oSdY.mjs.map → HonoEndpointAdaptor-BR_LyaFE.mjs.map} +1 -1
  45. package/dist/ObjectSubscriberBuilder-HmBwFn2o.d.mts +129 -0
  46. package/dist/ObjectSubscriberBuilder-HmBwFn2o.d.mts.map +1 -0
  47. package/dist/ObjectSubscriberBuilder-l-64yUiF.d.cts +129 -0
  48. package/dist/ObjectSubscriberBuilder-l-64yUiF.d.cts.map +1 -0
  49. package/dist/ProcessorBuilder-B2_stA8f.d.mts +216 -0
  50. package/dist/ProcessorBuilder-B2_stA8f.d.mts.map +1 -0
  51. package/dist/ProcessorBuilder-C62bIOwj.d.cts +216 -0
  52. package/dist/ProcessorBuilder-C62bIOwj.d.cts.map +1 -0
  53. package/dist/{Queue-B-dDXyjF.d.mts → Queue-BnK3UH8r.d.mts} +3 -3
  54. package/dist/{Queue-B-dDXyjF.d.mts.map → Queue-BnK3UH8r.d.mts.map} +1 -1
  55. package/dist/{Queue-JbIjVtTf.d.cts → Queue-C4rijiM7.d.cts} +3 -3
  56. package/dist/{Queue-JbIjVtTf.d.cts.map → Queue-C4rijiM7.d.cts.map} +1 -1
  57. package/dist/{Queue-BhuofM3k.cjs → Queue-D4Iaidrs.cjs} +3 -3
  58. package/dist/{Queue-BhuofM3k.cjs.map → Queue-D4Iaidrs.cjs.map} +1 -1
  59. package/dist/{Queue-cmhqEBOB.mjs → Queue-u8w8_HpE.mjs} +3 -3
  60. package/dist/{Queue-cmhqEBOB.mjs.map → Queue-u8w8_HpE.mjs.map} +1 -1
  61. package/dist/{QueueBuilder-DXu1qxT1.mjs → QueueBuilder-2wP5lEC8.mjs} +2 -2
  62. package/dist/{QueueBuilder-DXu1qxT1.mjs.map → QueueBuilder-2wP5lEC8.mjs.map} +1 -1
  63. package/dist/{QueueBuilder-48W-q8In.d.mts → QueueBuilder-B3vL1ED2.d.mts} +2 -2
  64. package/dist/{QueueBuilder-48W-q8In.d.mts.map → QueueBuilder-B3vL1ED2.d.mts.map} +1 -1
  65. package/dist/{QueueBuilder-MfpkJ3R9.d.cts → QueueBuilder-BcPBQSSX.d.cts} +2 -2
  66. package/dist/{QueueBuilder-MfpkJ3R9.d.cts.map → QueueBuilder-BcPBQSSX.d.cts.map} +1 -1
  67. package/dist/{QueueBuilder-DdU2klPu.cjs → QueueBuilder-BxsZ9o5z.cjs} +2 -2
  68. package/dist/{QueueBuilder-DdU2klPu.cjs.map → QueueBuilder-BxsZ9o5z.cjs.map} +1 -1
  69. package/dist/{Subscriber-CEt7kHkc.d.cts → Subscriber-BdCtfFXL.d.cts} +15 -3
  70. package/dist/{Subscriber-CEt7kHkc.d.cts.map → Subscriber-BdCtfFXL.d.cts.map} +1 -1
  71. package/dist/{Subscriber-dsxc5LKa.d.mts → Subscriber-DDo4HFNn.d.mts} +15 -3
  72. package/dist/{Subscriber-dsxc5LKa.d.mts.map → Subscriber-DDo4HFNn.d.mts.map} +1 -1
  73. package/dist/{SubscriberBuilder-DRXfxWn_.mjs → SubscriberBuilder-3msj1U2w.mjs} +99 -3
  74. package/dist/SubscriberBuilder-3msj1U2w.mjs.map +1 -0
  75. package/dist/{SubscriberBuilder-M2EAgQhC.cjs → SubscriberBuilder-CQst6Iz3.cjs} +110 -2
  76. package/dist/SubscriberBuilder-CQst6Iz3.cjs.map +1 -0
  77. package/dist/{Topic-D2R0r24C.mjs → Topic-DN2gYJ-p.mjs} +3 -3
  78. package/dist/{Topic-D2R0r24C.mjs.map → Topic-DN2gYJ-p.mjs.map} +1 -1
  79. package/dist/{Topic-DwS3QO0m.cjs → Topic-Dp9Q7Lj2.cjs} +3 -3
  80. package/dist/{Topic-DwS3QO0m.cjs.map → Topic-Dp9Q7Lj2.cjs.map} +1 -1
  81. package/dist/adaptors/aws.cjs +4 -4
  82. package/dist/adaptors/aws.cjs.map +1 -1
  83. package/dist/adaptors/aws.d.cts +5 -5
  84. package/dist/adaptors/aws.d.mts +5 -5
  85. package/dist/adaptors/aws.mjs +5 -5
  86. package/dist/adaptors/aws.mjs.map +1 -1
  87. package/dist/adaptors/hono.cjs +1 -1
  88. package/dist/adaptors/hono.d.cts +1 -1
  89. package/dist/adaptors/hono.d.mts +1 -1
  90. package/dist/adaptors/hono.mjs +1 -1
  91. package/dist/adaptors/testing.cjs +114 -7
  92. package/dist/adaptors/testing.cjs.map +1 -1
  93. package/dist/adaptors/testing.d.cts +25 -4
  94. package/dist/adaptors/testing.d.cts.map +1 -1
  95. package/dist/adaptors/testing.d.mts +25 -4
  96. package/dist/adaptors/testing.d.mts.map +1 -1
  97. package/dist/adaptors/testing.mjs +114 -7
  98. package/dist/adaptors/testing.mjs.map +1 -1
  99. package/dist/crons/index.cjs +2 -2
  100. package/dist/crons/index.d.cts +2 -2
  101. package/dist/crons/index.d.mts +2 -2
  102. package/dist/crons/index.mjs +2 -2
  103. package/dist/endpoints/index.cjs +3 -3
  104. package/dist/endpoints/index.d.cts +3 -3
  105. package/dist/endpoints/index.d.mts +3 -3
  106. package/dist/endpoints/index.mjs +3 -3
  107. package/dist/file-server.cjs +101 -31
  108. package/dist/file-server.cjs.map +1 -1
  109. package/dist/file-server.d.cts +95 -0
  110. package/dist/file-server.d.cts.map +1 -1
  111. package/dist/file-server.d.mts +95 -0
  112. package/dist/file-server.d.mts.map +1 -1
  113. package/dist/file-server.mjs +101 -33
  114. package/dist/file-server.mjs.map +1 -1
  115. package/dist/functions/index.cjs +1 -1
  116. package/dist/functions/index.d.cts +2 -2
  117. package/dist/functions/index.d.mts +2 -2
  118. package/dist/functions/index.mjs +1 -1
  119. package/dist/{functions-CTI-hDem.mjs → functions-BvIDQKAA.mjs} +3 -3
  120. package/dist/{functions-CTI-hDem.mjs.map → functions-BvIDQKAA.mjs.map} +1 -1
  121. package/dist/{functions-D7O5SGVc.cjs → functions-DLF6-IK8.cjs} +3 -3
  122. package/dist/{functions-D7O5SGVc.cjs.map → functions-DLF6-IK8.cjs.map} +1 -1
  123. package/dist/{index-Cd2w-DRL.d.cts → index-BtzMzhMA.d.cts} +3 -3
  124. package/dist/{index-Cd2w-DRL.d.cts.map → index-BtzMzhMA.d.cts.map} +1 -1
  125. package/dist/{index-aBIcAiH5.d.mts → index-DuriFjYD.d.mts} +3 -3
  126. package/dist/{index-aBIcAiH5.d.mts.map → index-DuriFjYD.d.mts.map} +1 -1
  127. package/dist/index.cjs +1 -1
  128. package/dist/index.d.cts +1 -1
  129. package/dist/index.d.mts +1 -1
  130. package/dist/index.mjs +1 -1
  131. package/dist/pattern-C1CEcglD.mjs +241 -0
  132. package/dist/pattern-C1CEcglD.mjs.map +1 -0
  133. package/dist/pattern-QFaUIr77.cjs +288 -0
  134. package/dist/pattern-QFaUIr77.cjs.map +1 -0
  135. package/dist/processors/index.cjs +214 -0
  136. package/dist/processors/index.cjs.map +1 -0
  137. package/dist/processors/index.d.cts +78 -0
  138. package/dist/processors/index.d.cts.map +1 -0
  139. package/dist/processors/index.d.mts +78 -0
  140. package/dist/processors/index.d.mts.map +1 -0
  141. package/dist/processors/index.mjs +193 -0
  142. package/dist/processors/index.mjs.map +1 -0
  143. package/dist/queue/index.cjs +2 -2
  144. package/dist/queue/index.d.cts +2 -2
  145. package/dist/queue/index.d.mts +2 -2
  146. package/dist/queue/index.mjs +2 -2
  147. package/dist/rest-api.cjs +1 -1
  148. package/dist/rest-api.d.cts +2 -2
  149. package/dist/rest-api.d.mts +2 -2
  150. package/dist/rest-api.mjs +1 -1
  151. package/dist/{runSubscriber-D8nLXIv1.cjs → runSubscriber-B1Yg4dID.cjs} +5 -3
  152. package/dist/runSubscriber-B1Yg4dID.cjs.map +1 -0
  153. package/dist/{runSubscriber-BHvJ8POr.mjs → runSubscriber-JCgkeYbE.mjs} +5 -3
  154. package/dist/runSubscriber-JCgkeYbE.mjs.map +1 -0
  155. package/dist/subscribers/index.cjs +31 -13
  156. package/dist/subscribers/index.cjs.map +1 -1
  157. package/dist/subscribers/index.d.cts +27 -4
  158. package/dist/subscribers/index.d.cts.map +1 -1
  159. package/dist/subscribers/index.d.mts +27 -4
  160. package/dist/subscribers/index.d.mts.map +1 -1
  161. package/dist/subscribers/index.mjs +30 -14
  162. package/dist/subscribers/index.mjs.map +1 -1
  163. package/dist/topic/index.cjs +1 -1
  164. package/dist/topic/index.d.cts +1 -1
  165. package/dist/topic/index.d.mts +1 -1
  166. package/dist/topic/index.mjs +1 -1
  167. package/dist/worker.cjs +25 -4
  168. package/dist/worker.cjs.map +1 -1
  169. package/dist/worker.d.cts +26 -7
  170. package/dist/worker.d.cts.map +1 -1
  171. package/dist/worker.d.mts +26 -7
  172. package/dist/worker.d.mts.map +1 -1
  173. package/dist/worker.mjs +25 -4
  174. package/dist/worker.mjs.map +1 -1
  175. package/package.json +41 -31
  176. package/dist/SubscriberBuilder-BRa_nrmH.d.cts +0 -67
  177. package/dist/SubscriberBuilder-BRa_nrmH.d.cts.map +0 -1
  178. package/dist/SubscriberBuilder-D9bkrYzH.d.mts +0 -67
  179. package/dist/SubscriberBuilder-D9bkrYzH.d.mts.map +0 -1
  180. package/dist/SubscriberBuilder-DRXfxWn_.mjs.map +0 -1
  181. package/dist/SubscriberBuilder-M2EAgQhC.cjs.map +0 -1
  182. package/dist/runSubscriber-BHvJ8POr.mjs.map +0 -1
  183. package/dist/runSubscriber-D8nLXIv1.cjs.map +0 -1
@@ -0,0 +1,129 @@
1
+ import { n as StandardSchemaV1 } from "./index-DdRjYhiJ.cjs";
2
+ import { c as Topic, l as TopicEvents, u as TopicMessage } from "./Construct-127M7yrl.cjs";
3
+ import { t as DatabaseContext } from "./Function-BIEsY0Hm.cjs";
4
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-B1AfqRl4.cjs";
5
+ import { n as SubscriberHandler, t as Subscriber } from "./Subscriber-BdCtfFXL.cjs";
6
+ import { Logger } from "@geekmidas/logger";
7
+ import { InferStandardSchema } from "@geekmidas/schema";
8
+ import { Service, ServiceRecord } from "@geekmidas/services";
9
+ import { EventPublisher, ExtractPublisherMessage } from "@geekmidas/events";
10
+ import { ObjectEvent, ObjectEventType, ObjectFilter, ObjectMessage } from "@geekmidas/storage/events";
11
+ //#region src/subscribers/SubscriberBuilder.d.ts
12
+ declare class SubscriberBuilder<TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TSubscribedEvents extends any[] = [], TDatabase = undefined, TDatabaseServiceName extends string = string> {
13
+ private _subscribedEvents;
14
+ private _timeout?;
15
+ private outputSchema?;
16
+ private _services;
17
+ /** The construct ids `.dependsOn()` named — what the manifest records. */
18
+ _constructs: string[];
19
+ private _logger;
20
+ /**
21
+ * The deploy unit that runs this, by construct id. Seeded by the factory a
22
+ * `Worker` hands out, so a subscriber is not owned by its directory.
23
+ */
24
+ _owner?: string;
25
+ private _topicName?;
26
+ /** What the handler's `db` comes from — the worker's, unless overridden. */
27
+ private _databaseService?;
28
+ /** The edge `.database()` added, so the next one can replace it. */
29
+ private _databaseEdge?;
30
+ constructor();
31
+ /**
32
+ * Bind this subscriber to a {@link Topic}: the subscribable event types (and
33
+ * their payloads) come from the topic's contract, and the binding is recorded
34
+ * for the manifest, so infra wires the SNS subscription.
35
+ *
36
+ * A consumer does not publish, so binding a topic does *not* hand it the
37
+ * topic's publisher connection string (least privilege). One that publishes
38
+ * follow-up events depends on the topic it publishes to: `.dependsOn([orders])`.
39
+ */
40
+ topic<TName extends string, TEvents extends TopicEvents>(topic: Topic<TName, TEvents>): SubscriberBuilder<TServices, TLogger, OutSchema, EventPublisher<TopicMessage<TEvents>>, TSubscribedEvents, TDatabase, TDatabaseServiceName>;
41
+ timeout(timeout: number): this;
42
+ output<T extends StandardSchemaV1>(schema: T): SubscriberBuilder<TServices, TLogger, T, TEventPublisher, TSubscribedEvents, TDatabase, TDatabaseServiceName>;
43
+ /**
44
+ * Depend on constructs — a database, a bucket, a mail sender, a queue, a
45
+ * topic.
46
+ *
47
+ * It records the edge and dissolves each construct's client into the
48
+ * handler's service record under the construct's own id, so
49
+ * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
50
+ *
51
+ * Constructs only. A `Service` does not match the shape, which is what keeps
52
+ * env sniffing confined to `.services()` and the explicit lift.
53
+ */
54
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): SubscriberBuilder<[...TServices, ...ServicesOf<T>], TLogger, OutSchema, TEventPublisher, TSubscribedEvents, TDatabase, TDatabaseServiceName>;
55
+ services<T extends Service[]>(services: T): SubscriberBuilder<[...TServices, ...T], TLogger, OutSchema, TEventPublisher, TSubscribedEvents, TDatabase, TDatabaseServiceName>;
56
+ logger<T extends Logger>(logger: T): SubscriberBuilder<TServices, T, OutSchema, TEventPublisher, TSubscribedEvents, TDatabase, TDatabaseServiceName>;
57
+ /**
58
+ * The database the handler receives as `db`.
59
+ *
60
+ * A subscriber built from a worker already has the worker's, when the
61
+ * worker named one with `.database(db)`; this replaces it — the edge as well
62
+ * as the client — for a consumer that works against a different database.
63
+ */
64
+ database<T, TDbName extends string>(source: Consumable<TDbName, T> | Service<TDbName, T>): SubscriberBuilder<TServices, TLogger, OutSchema, TEventPublisher, TSubscribedEvents, T, TDbName>;
65
+ subscribe<TEvent extends TEventPublisher extends EventPublisher<any> ? ExtractPublisherMessage<TEventPublisher>['type'] | ExtractPublisherMessage<TEventPublisher>['type'][] : never>(event: TEvent): SubscriberBuilder<TServices, TLogger, OutSchema, TEventPublisher, TEvent extends any[] ? [...TSubscribedEvents, ...TEvent] : [...TSubscribedEvents, TEvent], TDatabase, TDatabaseServiceName>;
66
+ handle(fn: SubscriberHandler<TEventPublisher, TSubscribedEvents, TServices, TLogger, OutSchema, TDatabase>): Subscriber<TServices, TLogger, OutSchema, TEventPublisher, TSubscribedEvents, TDatabase, TDatabaseServiceName>;
67
+ }
68
+ //#endregion
69
+ //#region src/subscribers/ObjectSubscriberBuilder.d.ts
70
+ /**
71
+ * A subscriber bound to a bucket: a topic subscriber whose topic is the
72
+ * storage itself, so it runs through the same adaptors — Lambda, SNS push,
73
+ * a polled broker, a feature test.
74
+ */
75
+ type ObjectSubscriber<TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEvents extends ObjectEventType[] = ObjectEventType[], TDatabase = undefined, TDatabaseServiceName extends string = string> = Subscriber<TServices, TLogger, OutSchema, EventPublisher<ObjectMessage>, TEvents, TDatabase, TDatabaseServiceName>;
76
+ /** What a bucket's subscriber is handed: the objects, and how each changed. */
77
+ type ObjectSubscriberContext<TEvents extends ObjectEventType[], TServices extends Service[] = [], TLogger extends Logger = Logger, TDatabase = undefined> = {
78
+ /** Each object that changed, in the order the storage reported them. */
79
+ objects: ObjectEvent[];
80
+ /** The same objects with what happened to each — for a handler of both. */
81
+ events: ObjectMessage<TEvents[number]>[];
82
+ services: ServiceRecord<TServices>;
83
+ logger: TLogger;
84
+ } & DatabaseContext<TDatabase>;
85
+ type ObjectSubscriberHandler<TEvents extends ObjectEventType[], TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined> = (ctx: ObjectSubscriberContext<TEvents, TServices, TLogger, TDatabase>) => OutSchema extends StandardSchemaV1 ? InferStandardSchema<OutSchema> | Promise<InferStandardSchema<OutSchema>> : any | Promise<any>;
86
+ /** `.on()` was given no event to react to. */
87
+ declare class ObjectSubscriberHasNoEvents extends Error {
88
+ readonly bucket: string;
89
+ constructor(bucket: string);
90
+ }
91
+ /**
92
+ * A subscriber to a bucket's objects, from `worker.objects(bucket)`.
93
+ *
94
+ * Built on the topic subscriber's builder, which it wraps rather than
95
+ * extends: the services, database, owner and edges are configured exactly as
96
+ * a topic subscriber's, and only the trigger differs — the storage, filtered
97
+ * by event and key.
98
+ */
99
+ declare class ObjectSubscriberBuilder<TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEvents extends ObjectEventType[] = [], TDatabase = undefined, TDatabaseServiceName extends string = string> {
100
+ /** The topic subscriber's builder, already owned by its worker. */
101
+ private readonly inner;
102
+ /** The bucket's id — what the build binds the subscriber to. */
103
+ private readonly bucket;
104
+ private readonly events;
105
+ private readonly filter;
106
+ constructor(
107
+ /** The topic subscriber's builder, already owned by its worker. */
108
+ inner: SubscriberBuilder<any, any, any, any, any, any, any>,
109
+ /** The bucket's id — what the build binds the subscriber to. */
110
+ bucket: string, events?: readonly ObjectEventType[], filter?: ObjectFilter);
111
+ /**
112
+ * What it reacts to: the events, and — optionally — only keys under a
113
+ * prefix and ending in a suffix. Repeatable; the last filter wins.
114
+ */
115
+ on<const T extends ObjectEventType[]>(events: T, filter?: ObjectFilter): ObjectSubscriberBuilder<TServices, TLogger, OutSchema, [...TEvents, ...T], TDatabase, TDatabaseServiceName>;
116
+ /** See {@link SubscriberBuilder.dependsOn}. */
117
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): ObjectSubscriberBuilder<[...TServices, ...ServicesOf<T>], TLogger, OutSchema, TEvents, TDatabase, TDatabaseServiceName>;
118
+ services<T extends Service[]>(services: T): ObjectSubscriberBuilder<[...TServices, ...T], TLogger, OutSchema, TEvents, TDatabase, TDatabaseServiceName>;
119
+ /** See {@link SubscriberBuilder.database}. */
120
+ database<T, TDbName extends string>(source: Consumable<TDbName, T> | Service<TDbName, T>): ObjectSubscriberBuilder<TServices, TLogger, OutSchema, TEvents, T, TDbName>;
121
+ timeout(timeout: number): this;
122
+ output<T extends StandardSchemaV1>(schema: T): ObjectSubscriberBuilder<TServices, TLogger, T, TEvents, TDatabase, TDatabaseServiceName>;
123
+ logger<T extends Logger>(logger: T): ObjectSubscriberBuilder<TServices, T, OutSchema, TEvents, TDatabase, TDatabaseServiceName>;
124
+ handle(fn: ObjectSubscriberHandler<TEvents, TServices, TLogger, OutSchema, TDatabase>): ObjectSubscriber<TServices, TLogger, OutSchema, TEvents, TDatabase, TDatabaseServiceName>;
125
+ private with;
126
+ }
127
+ //#endregion
128
+ export { ObjectSubscriberHasNoEvents as a, ObjectSubscriberHandler as i, ObjectSubscriberBuilder as n, SubscriberBuilder as o, ObjectSubscriberContext as r, ObjectSubscriber as t };
129
+ //# sourceMappingURL=ObjectSubscriberBuilder-l-64yUiF.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectSubscriberBuilder-l-64yUiF.d.cts","names":[],"sources":["../src/subscribers/SubscriberBuilder.ts","../src/subscribers/ObjectSubscriberBuilder.ts"],"mappings":";;;;;;;;;;;cAoBa,kBACZ,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,wBAAwB,6CACxB,sCACA,uBACA;UAEQ;UACA;UACA;UACA;;EAED;UACC;;;;;EAKD;UACC;;UAEA;;UAEA;EAER;;;;;;;;;;EAaA,MAAM,sBAAsB,gBAAgB,aAC3C,OAAO,MAAM,OAAO,WAClB,kBACF,WACA,SACA,WACA,eAAe,aAAa,WAC5B,mBACA,WACA;EAeD,QAAQ;EAIR,OAAO,UAAU,kBAChB,QAAQ,IACN,kBACF,WACA,SACA,GACA,iBACA,mBACA,WACA;;;;;;;;;;;;EAkBD,gBAAgB,mBAAmB,cAClC,YAAY,IACV,sBACE,cAAc,WAAW,KAC7B,SACA,WACA,iBACA,mBACA,WACA;EAyBD,SAAS,UAAU,WAClB,UAAU,IACR,sBACE,cAAc,IAClB,SACA,WACA,iBACA,mBACA,WACA;EAOD,OAAO,UAAU,QAChB,QAAQ,IACN,kBACF,WACA,GACA,WACA,iBACA,mBACA,WACA;;;;;;;;EAYD,SAAS,GAAG,wBACX,QAAQ,WAAW,SAAS,KAAK,QAAQ,SAAS,KAChD,kBACF,WACA,SACA,WACA,iBACA,mBACA,GACA;EAwBD,UACC,eAAe,wBAAwB,sBAElC,wBAAwB,2BACxB,wBAAwB,oCAG7B,OAAO,SACL,kBACF,WACA,SACA,WACA,iBACA,2BACO,sBAAsB,cACtB,mBAAmB,SAC1B,WACA;EAQD,OACC,IAAI,kBACH,iBACA,mBACA,WACA,SACA,WACA,aAEC,WACF,WACA,SACA,WACA,iBACA,mBACA,WACA;;;;;;;;;KC/OU,iBACX,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,gBAAgB,oBAAoB,mBACpC,uBACA,gDACG,WACH,WACA,SACA,WACA,eAAe,gBACf,SACA,WACA;;KAIW,wBACX,gBAAgB,mBAChB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB;;EAGA,SAAS;;EAET,QAAQ,cAAc;EACtB,UAAU,cAAc;EACxB,QAAQ;IACL,gBAAgB;KAER,wBACX,gBAAgB,mBAChB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,0BAEA,KAAK,wBAAwB,SAAS,WAAW,SAAS,eACtD,kBAAkB,mBACpB,oBAAoB,aAAa,QAAQ,oBAAoB,oBACvD;;cAGI,oCAAoC;WAC3B;EAArB,YAAqB;;;;;;;;;;cAiBT,wBACZ,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,gBAAgB,wBAChB,uBACA;;mBAIkB;;mBAUA;mBACA;mBACA;EAdlB,YAEkB;;EAAA,OAAO,sDAUP;;EAAA,gBACA,kBAAiB,mBACjB,SAAQ;;;;;EAO1B,SAAS,UAAU,mBAClB,QAAQ,GACR,SAAQ,eACN,wBACF,WACA,SACA,eACI,YAAY,IAChB,WACA;;EAcD,gBAAgB,mBAAmB,cAClC,YAAY,IACV,4BACE,cAAc,WAAW,KAC7B,SACA,WACA,SACA,WACA;EAKD,SAAS,UAAU,WAClB,UAAU,IACR,4BACE,cAAc,IAClB,SACA,WACA,SACA,WACA;;EAMD,SAAS,GAAG,wBACX,QAAQ,WAAW,SAAS,KAAK,QAAQ,SAAS,KAChD,wBACF,WACA,SACA,WACA,SACA,GACA;EAKD,QAAQ;EAIR,OAAO,UAAU,kBAChB,QAAQ,IACN,wBACF,WACA,SACA,GACA,SACA,WACA;EAKD,OAAO,UAAU,QAChB,QAAQ,IACN,wBACF,WACA,GACA,WACA,SACA,WACA;EAKD,OACC,IAAI,wBACH,SACA,WACA,SACA,WACA,aAEC,iBACF,WACA,SACA,WACA,SACA,WACA;UAgDO"}
@@ -0,0 +1,216 @@
1
+ import { n as StandardSchemaV1 } from "./index-DdRjYhiJ.mjs";
2
+ import { t as Construct } from "./Construct-DySlwh8o.mjs";
3
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-ZvYQbivO.mjs";
4
+ import { DERIVED_PREFIX as DERIVED_PREFIX$1 } from "@geekmidas/manifest";
5
+ import { StorageClient } from "@geekmidas/storage";
6
+ import { Service, ServiceRecord } from "@geekmidas/services";
7
+ import { Logger } from "@geekmidas/logger";
8
+ import { InferStandardSchema } from "@geekmidas/schema";
9
+ //#region src/processors/pattern.d.ts
10
+ /**
11
+ * A processor's path pattern: literal segments, `:name` parameters, and a
12
+ * final `*` that is the object's key.
13
+ *
14
+ * ```
15
+ * /i/:width/* → /i/256/avatars/7.png { width: '256' }, 'avatars/7.png'
16
+ * /pdf/:page/:dpi/* → /pdf/1/150/doc.pdf { page: '1', dpi: '150' }, 'doc.pdf'
17
+ * ```
18
+ *
19
+ * It starts with a literal segment because the edge routes on that prefix: a
20
+ * pattern beginning with a parameter would claim every path on the file
21
+ * server, objects included.
22
+ */
23
+ /** The parameter names a pattern declares, as a union. */
24
+ type PatternParamNames<P extends string> = P extends `${string}/:${infer Name}/${infer Rest}` ? Name | PatternParamNames<`/${Rest}`> : never;
25
+ /** The raw parameters a pattern matches, before its schema parses them. */
26
+ type PatternParams<P extends string> = { [K in PatternParamNames<P>]: string; };
27
+ /** A pattern a processor cannot be served on. */
28
+ declare class ProcessorPatternInvalid extends Error {
29
+ readonly pattern: string;
30
+ readonly reason: string;
31
+ constructor(pattern: string, reason: string);
32
+ }
33
+ /** A pattern, parsed once. */
34
+ interface ParsedPattern {
35
+ readonly pattern: string;
36
+ /** Each segment before the key: a literal, or a parameter's name. */
37
+ readonly segments: readonly ({
38
+ kind: 'literal';
39
+ value: string;
40
+ } | {
41
+ kind: 'param';
42
+ name: string;
43
+ })[];
44
+ /** The parameter names, in the order they appear. */
45
+ readonly params: readonly string[];
46
+ /** The literal path the edge routes on — `/i/`. */
47
+ readonly prefix: string;
48
+ }
49
+ /** @throws {ProcessorPatternInvalid} */
50
+ declare function parsePattern(pattern: string): ParsedPattern;
51
+ /** A path the pattern matched: its raw parameters and the key. */
52
+ interface PatternMatch {
53
+ params: Record<string, string>;
54
+ key: string;
55
+ }
56
+ /**
57
+ * Match a request path, decoding each parameter and each key segment. A path
58
+ * with an empty key, or one that decodes to a `..` segment, matches nothing.
59
+ */
60
+ declare function matchPattern(parsed: ParsedPattern, path: string): PatternMatch | undefined;
61
+ /** The path that addresses `key` through the pattern with these parameters. */
62
+ declare function fillPattern(parsed: ParsedPattern, params: Readonly<Record<string, string | number>>, key: string): string;
63
+ /** A processed URL was asked for without one of the pattern's parameters. */
64
+ declare class ProcessorParamMissing extends Error {
65
+ readonly pattern: string;
66
+ readonly param: string;
67
+ constructor(pattern: string, param: string);
68
+ }
69
+ //#endregion
70
+ //#region src/processors/Processor.d.ts
71
+ /** How long a response may be kept, by a browser and by the edge. */
72
+ type ProcessorCache =
73
+ /** Never changes for these parameters and this key: kept for a year. */
74
+ 'immutable' |
75
+ /** Kept this many seconds. */
76
+ {
77
+ maxAge: number;
78
+ } |
79
+ /** Not kept. */
80
+ 'none';
81
+ /** What a processor handler returns. */
82
+ interface ProcessorResult {
83
+ body: Uint8Array | string;
84
+ contentType: string;
85
+ /**
86
+ * `immutable` results are also kept in the bucket, so the next request
87
+ * for them never runs the handler. Defaults to an hour, kept nowhere.
88
+ */
89
+ cache?: ProcessorCache;
90
+ }
91
+ /** The object a request addresses, read from the bucket on first use. */
92
+ interface SourceObject {
93
+ readonly key: string;
94
+ bytes(): Promise<Uint8Array>;
95
+ stream(): Promise<ReadableStream<Uint8Array>>;
96
+ /** The type it was stored with. */
97
+ contentType(): Promise<string | undefined>;
98
+ }
99
+ interface ProcessorContext<TParams, TServices extends Service[], TLogger extends Logger> {
100
+ params: TParams;
101
+ key: string;
102
+ object: SourceObject;
103
+ logger: TLogger;
104
+ services: ServiceRecord<TServices>;
105
+ }
106
+ type ProcessorHandler<TParams, TServices extends Service[], TLogger extends Logger> = (context: ProcessorContext<TParams, TServices, TLogger>) => Promise<ProcessorResult> | ProcessorResult;
107
+ /** What a processor's parameters parse to: its schema's output, or the raw strings. */
108
+ type ProcessorParams<TPattern extends string, TSchema extends StandardSchemaV1 | undefined> = TSchema extends StandardSchemaV1 ? InferStandardSchema<TSchema> : PatternParams<TPattern>;
109
+ /**
110
+ * A processor — a handler behind one path pattern of a file server, which
111
+ * makes a derivative of an open object on read: a thumbnail, a page of a PDF.
112
+ *
113
+ * Built from the file server (`assets.process('/i/:width/*')`), so it carries
114
+ * the bucket it reads and the open paths it may serve. Its parameters' schema
115
+ * is the allowlist: a request outside it is refused before anything runs, so
116
+ * nobody can mint new work — or new cache entries — by varying a number.
117
+ */
118
+ declare class Processor<TPattern extends string = string, TSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger> extends Construct<TLogger, undefined, TServices> {
119
+ readonly parsed: ParsedPattern;
120
+ readonly handler: ProcessorHandler<ProcessorParams<TPattern, TSchema>, TServices, TLogger>;
121
+ readonly options: {
122
+ /** The file server's surface id — the unit that runs it. */
123
+ surfaceId: string;
124
+ /** The bucket it reads from and keeps derivatives in. */
125
+ bucketId: string;
126
+ /** How it reaches that bucket. */
127
+ origin: Service<string, StorageClient>;
128
+ /** Whether a key is one of the file server's open paths. */
129
+ serves: (key: string) => boolean;
130
+ paramsSchema?: TSchema;
131
+ /** Packages with native code, installed for the target. */
132
+ native: readonly string[];
133
+ logger: TLogger;
134
+ services: TServices;
135
+ constructs: string[];
136
+ timeout?: number;
137
+ memorySize?: number;
138
+ };
139
+ __IS_PROCESSOR__: boolean;
140
+ static isProcessor(obj: unknown): obj is Processor<string, any, any, any>;
141
+ constructor(parsed: ParsedPattern, handler: ProcessorHandler<ProcessorParams<TPattern, TSchema>, TServices, TLogger>, options: {
142
+ /** The file server's surface id — the unit that runs it. */
143
+ surfaceId: string;
144
+ /** The bucket it reads from and keeps derivatives in. */
145
+ bucketId: string;
146
+ /** How it reaches that bucket. */
147
+ origin: Service<string, StorageClient>;
148
+ /** Whether a key is one of the file server's open paths. */
149
+ serves: (key: string) => boolean;
150
+ paramsSchema?: TSchema;
151
+ /** Packages with native code, installed for the target. */
152
+ native: readonly string[];
153
+ logger: TLogger;
154
+ services: TServices;
155
+ constructs: string[];
156
+ timeout?: number;
157
+ memorySize?: number;
158
+ });
159
+ /** The pattern it answers, as written. */
160
+ get pattern(): TPattern;
161
+ /** The literal path the edge routes to it — `/i/`. */
162
+ get prefix(): string;
163
+ get native(): readonly string[];
164
+ get surfaceId(): string;
165
+ get bucketId(): string;
166
+ }
167
+ //#endregion
168
+ //#region src/processors/ProcessorBuilder.d.ts
169
+ /** A native package named in a way no installer could resolve. */
170
+ declare class ProcessorNativeInvalid extends Error {
171
+ readonly packageName: string;
172
+ constructor(packageName: string);
173
+ }
174
+ interface ProcessorBuilderState<TLogger extends Logger> {
175
+ parsed: ParsedPattern;
176
+ surfaceId: string;
177
+ bucketId: string;
178
+ origin: Service<string, StorageClient>;
179
+ serves: (key: string) => boolean;
180
+ logger: TLogger;
181
+ paramsSchema?: StandardSchemaV1;
182
+ native: string[];
183
+ services: Service[];
184
+ constructs: string[];
185
+ timeout?: number;
186
+ memorySize?: number;
187
+ }
188
+ /**
189
+ * What `fileServer.process(pattern)` returns: a processor, built up one
190
+ * immutable step at a time and finished by `.handle()`.
191
+ */
192
+ declare class ProcessorBuilder<TPattern extends string, TSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger> {
193
+ private readonly state;
194
+ constructor(state: ProcessorBuilderState<TLogger>);
195
+ /**
196
+ * The parameters' schema — the allowlist. Every request is parsed by it
197
+ * before anything runs, and one it refuses is answered 400.
198
+ */
199
+ params<T extends StandardSchemaV1>(schema: T): ProcessorBuilder<TPattern, T, TServices, TLogger>;
200
+ /** Constructs its handler reaches, as `services.<id>`. */
201
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): ProcessorBuilder<TPattern, TSchema, [...TServices, ...ServicesOf<T>], TLogger>;
202
+ /**
203
+ * Packages with native code — `sharp` — installed for the target the
204
+ * processor runs on rather than bundled: linux in its image, arm64 on
205
+ * Lambda.
206
+ */
207
+ native(packages: readonly string[]): this;
208
+ /** Milliseconds a request may take, where the target bounds it. */
209
+ timeout(ms: number): this;
210
+ /** Megabytes of memory, where the target sets it. */
211
+ memorySize(mb: number): this;
212
+ handle(fn: ProcessorHandler<ProcessorParams<TPattern, TSchema>, TServices, TLogger>): Processor<TPattern, TSchema, TServices, TLogger>;
213
+ }
214
+ //#endregion
215
+ export { parsePattern as _, ProcessorCache as a, ProcessorParams as c, ParsedPattern as d, PatternParams as f, matchPattern as g, fillPattern as h, Processor as i, ProcessorResult as l, ProcessorPatternInvalid as m, ProcessorNativeInvalid as n, ProcessorContext as o, ProcessorParamMissing as p, DERIVED_PREFIX$1 as r, ProcessorHandler as s, ProcessorBuilder as t, SourceObject as u };
216
+ //# sourceMappingURL=ProcessorBuilder-B2_stA8f.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessorBuilder-B2_stA8f.d.mts","names":[],"sources":["../src/processors/pattern.ts","../src/processors/Processor.ts","../src/processors/ProcessorBuilder.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;KAeY,kBAAkB,oBAC7B,8BAA8B,cAAc,SACzC,OAAO,sBAAsB;;KAIrB,cAAc,uBACxB,KAAK,kBAAkB;;cAIZ,gCAAgC;WAElC;WACA;EAFV,YACU,iBACA;;;UAYM;WACP;;WAEA;IACJ;IAAiB;;IACjB;IAAe;;;WAGX;;WAEA;;;iBAIM,aAAa,kBAAkB;;UAkE9B;EAChB,QAAQ;EACR;;;;;;iBAOe,aACf,QAAQ,eACR,eACE;;iBA0Ba,YACf,QAAQ,eACR,QAAQ,SAAS,kCACjB;;cAmBY,8BAA8B;WAEhC;WACA;EAFV,YACU,iBACA;;;;;KCtKC;;;;;EAIP;;;;;UAKY;EAChB,MAAM;EACN;;;;;EAKA,QAAQ;;;UAIQ;WACP;EACT,SAAS,QAAQ;EACjB,UAAU,QAAQ,eAAe;;EAEjC,eAAe;;UAGC,iBAChB,SACA,kBAAkB,WAClB,gBAAgB;EAEhB,QAAQ;EACR;EACA,QAAQ;EACR,QAAQ;EACR,UAAU,cAAc;;KAGb,iBACX,SACA,kBAAkB,WAClB,gBAAgB,WAEhB,SAAS,iBAAiB,SAAS,WAAW,aAC1C,QAAQ,mBAAmB;;KAGpB,gBACX,yBACA,gBAAgB,gCACb,gBAAgB,mBACjB,oBAAoB,WACpB,cAAc;;;;;;;;;;cAWJ,UACZ,kCACA,gBAAgB,0CAChB,kBAAkB,gBAClB,gBAAgB,SAAS,gBAChB,UAAU,oBAAoB;WAY7B,QAAQ;WACR,SAAS,iBACjB,gBAAgB,UAAU,UAC1B,WACA;WAEQ;;IAER;;IAEA;;IAEA,QAAQ,gBAAgB;;IAExB,SAAS;IACT,eAAe;;IAEf;IACA,QAAQ;IACR,UAAU;IACV;IACA;IACA;;EAjCF;SAEO,YAAY,eAAe,OAAO;EAQzC,YACU,QAAQ,eACR,SAAS,iBACjB,gBAAgB,UAAU,UAC1B,WACA,UAEQ;;IAER;;IAEA;;IAEA,QAAQ,gBAAgB;;IAExB,SAAS;IACT,eAAe;;IAEf;IACA,QAAQ;IACR,UAAU;IACV;IACA;IACA;;;MAsBE,WAAW;;MAKX;MAIA;MAIA;MAIA;;;;;cC/IQ,+BAA+B;WACtB;EAArB,YAAqB;;UAUZ,sBAAsB,gBAAgB;EAC/C,QAAQ;EACR;EACA;EACA,QAAQ,gBAAgB;EACxB,SAAS;EACT,QAAQ;EACR,eAAe;EACf;EACA,UAAU;EACV;EACA;EACA;;;;;;cAOY,iBACZ,yBACA,gBAAgB,0CAChB,kBAAkB,gBAClB,gBAAgB,SAAS;mBAEI;EAA7B,YAA6B,OAAO,sBAAsB;;;;;EAM1D,OAAO,UAAU,kBAChB,QAAQ,IACN,iBAAiB,UAAU,GAAG,WAAW;;EAK5C,gBAAgB,mBAAmB,cAClC,YAAY,IACV,iBACF,UACA,aACI,cAAc,WAAW,KAC7B;;;;;;EAqBD,OAAO;;EAaP,QAAQ;;EAKR,WAAW;EAIX,OACC,IAAI,iBACH,gBAAgB,UAAU,UAC1B,WACA,WAEC,UAAU,UAAU,SAAS,WAAW"}
@@ -0,0 +1,216 @@
1
+ import { n as StandardSchemaV1 } from "./index-DdRjYhiJ.cjs";
2
+ import { t as Construct } from "./Construct-127M7yrl.cjs";
3
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-B1AfqRl4.cjs";
4
+ import { Logger } from "@geekmidas/logger";
5
+ import { InferStandardSchema } from "@geekmidas/schema";
6
+ import { Service, ServiceRecord } from "@geekmidas/services";
7
+ import { DERIVED_PREFIX } from "@geekmidas/manifest";
8
+ import { StorageClient } from "@geekmidas/storage";
9
+ //#region src/processors/pattern.d.ts
10
+ /**
11
+ * A processor's path pattern: literal segments, `:name` parameters, and a
12
+ * final `*` that is the object's key.
13
+ *
14
+ * ```
15
+ * /i/:width/* → /i/256/avatars/7.png { width: '256' }, 'avatars/7.png'
16
+ * /pdf/:page/:dpi/* → /pdf/1/150/doc.pdf { page: '1', dpi: '150' }, 'doc.pdf'
17
+ * ```
18
+ *
19
+ * It starts with a literal segment because the edge routes on that prefix: a
20
+ * pattern beginning with a parameter would claim every path on the file
21
+ * server, objects included.
22
+ */
23
+ /** The parameter names a pattern declares, as a union. */
24
+ type PatternParamNames<P extends string> = P extends `${string}/:${infer Name}/${infer Rest}` ? Name | PatternParamNames<`/${Rest}`> : never;
25
+ /** The raw parameters a pattern matches, before its schema parses them. */
26
+ type PatternParams<P extends string> = { [K in PatternParamNames<P>]: string; };
27
+ /** A pattern a processor cannot be served on. */
28
+ declare class ProcessorPatternInvalid extends Error {
29
+ readonly pattern: string;
30
+ readonly reason: string;
31
+ constructor(pattern: string, reason: string);
32
+ }
33
+ /** A pattern, parsed once. */
34
+ interface ParsedPattern {
35
+ readonly pattern: string;
36
+ /** Each segment before the key: a literal, or a parameter's name. */
37
+ readonly segments: readonly ({
38
+ kind: 'literal';
39
+ value: string;
40
+ } | {
41
+ kind: 'param';
42
+ name: string;
43
+ })[];
44
+ /** The parameter names, in the order they appear. */
45
+ readonly params: readonly string[];
46
+ /** The literal path the edge routes on — `/i/`. */
47
+ readonly prefix: string;
48
+ }
49
+ /** @throws {ProcessorPatternInvalid} */
50
+ declare function parsePattern(pattern: string): ParsedPattern;
51
+ /** A path the pattern matched: its raw parameters and the key. */
52
+ interface PatternMatch {
53
+ params: Record<string, string>;
54
+ key: string;
55
+ }
56
+ /**
57
+ * Match a request path, decoding each parameter and each key segment. A path
58
+ * with an empty key, or one that decodes to a `..` segment, matches nothing.
59
+ */
60
+ declare function matchPattern(parsed: ParsedPattern, path: string): PatternMatch | undefined;
61
+ /** The path that addresses `key` through the pattern with these parameters. */
62
+ declare function fillPattern(parsed: ParsedPattern, params: Readonly<Record<string, string | number>>, key: string): string;
63
+ /** A processed URL was asked for without one of the pattern's parameters. */
64
+ declare class ProcessorParamMissing extends Error {
65
+ readonly pattern: string;
66
+ readonly param: string;
67
+ constructor(pattern: string, param: string);
68
+ }
69
+ //#endregion
70
+ //#region src/processors/Processor.d.ts
71
+ /** How long a response may be kept, by a browser and by the edge. */
72
+ type ProcessorCache =
73
+ /** Never changes for these parameters and this key: kept for a year. */
74
+ 'immutable' |
75
+ /** Kept this many seconds. */
76
+ {
77
+ maxAge: number;
78
+ } |
79
+ /** Not kept. */
80
+ 'none';
81
+ /** What a processor handler returns. */
82
+ interface ProcessorResult {
83
+ body: Uint8Array | string;
84
+ contentType: string;
85
+ /**
86
+ * `immutable` results are also kept in the bucket, so the next request
87
+ * for them never runs the handler. Defaults to an hour, kept nowhere.
88
+ */
89
+ cache?: ProcessorCache;
90
+ }
91
+ /** The object a request addresses, read from the bucket on first use. */
92
+ interface SourceObject {
93
+ readonly key: string;
94
+ bytes(): Promise<Uint8Array>;
95
+ stream(): Promise<ReadableStream<Uint8Array>>;
96
+ /** The type it was stored with. */
97
+ contentType(): Promise<string | undefined>;
98
+ }
99
+ interface ProcessorContext<TParams, TServices extends Service[], TLogger extends Logger> {
100
+ params: TParams;
101
+ key: string;
102
+ object: SourceObject;
103
+ logger: TLogger;
104
+ services: ServiceRecord<TServices>;
105
+ }
106
+ type ProcessorHandler<TParams, TServices extends Service[], TLogger extends Logger> = (context: ProcessorContext<TParams, TServices, TLogger>) => Promise<ProcessorResult> | ProcessorResult;
107
+ /** What a processor's parameters parse to: its schema's output, or the raw strings. */
108
+ type ProcessorParams<TPattern extends string, TSchema extends StandardSchemaV1 | undefined> = TSchema extends StandardSchemaV1 ? InferStandardSchema<TSchema> : PatternParams<TPattern>;
109
+ /**
110
+ * A processor — a handler behind one path pattern of a file server, which
111
+ * makes a derivative of an open object on read: a thumbnail, a page of a PDF.
112
+ *
113
+ * Built from the file server (`assets.process('/i/:width/*')`), so it carries
114
+ * the bucket it reads and the open paths it may serve. Its parameters' schema
115
+ * is the allowlist: a request outside it is refused before anything runs, so
116
+ * nobody can mint new work — or new cache entries — by varying a number.
117
+ */
118
+ declare class Processor<TPattern extends string = string, TSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger> extends Construct<TLogger, undefined, TServices> {
119
+ readonly parsed: ParsedPattern;
120
+ readonly handler: ProcessorHandler<ProcessorParams<TPattern, TSchema>, TServices, TLogger>;
121
+ readonly options: {
122
+ /** The file server's surface id — the unit that runs it. */
123
+ surfaceId: string;
124
+ /** The bucket it reads from and keeps derivatives in. */
125
+ bucketId: string;
126
+ /** How it reaches that bucket. */
127
+ origin: Service<string, StorageClient>;
128
+ /** Whether a key is one of the file server's open paths. */
129
+ serves: (key: string) => boolean;
130
+ paramsSchema?: TSchema;
131
+ /** Packages with native code, installed for the target. */
132
+ native: readonly string[];
133
+ logger: TLogger;
134
+ services: TServices;
135
+ constructs: string[];
136
+ timeout?: number;
137
+ memorySize?: number;
138
+ };
139
+ __IS_PROCESSOR__: boolean;
140
+ static isProcessor(obj: unknown): obj is Processor<string, any, any, any>;
141
+ constructor(parsed: ParsedPattern, handler: ProcessorHandler<ProcessorParams<TPattern, TSchema>, TServices, TLogger>, options: {
142
+ /** The file server's surface id — the unit that runs it. */
143
+ surfaceId: string;
144
+ /** The bucket it reads from and keeps derivatives in. */
145
+ bucketId: string;
146
+ /** How it reaches that bucket. */
147
+ origin: Service<string, StorageClient>;
148
+ /** Whether a key is one of the file server's open paths. */
149
+ serves: (key: string) => boolean;
150
+ paramsSchema?: TSchema;
151
+ /** Packages with native code, installed for the target. */
152
+ native: readonly string[];
153
+ logger: TLogger;
154
+ services: TServices;
155
+ constructs: string[];
156
+ timeout?: number;
157
+ memorySize?: number;
158
+ });
159
+ /** The pattern it answers, as written. */
160
+ get pattern(): TPattern;
161
+ /** The literal path the edge routes to it — `/i/`. */
162
+ get prefix(): string;
163
+ get native(): readonly string[];
164
+ get surfaceId(): string;
165
+ get bucketId(): string;
166
+ }
167
+ //#endregion
168
+ //#region src/processors/ProcessorBuilder.d.ts
169
+ /** A native package named in a way no installer could resolve. */
170
+ declare class ProcessorNativeInvalid extends Error {
171
+ readonly packageName: string;
172
+ constructor(packageName: string);
173
+ }
174
+ interface ProcessorBuilderState<TLogger extends Logger> {
175
+ parsed: ParsedPattern;
176
+ surfaceId: string;
177
+ bucketId: string;
178
+ origin: Service<string, StorageClient>;
179
+ serves: (key: string) => boolean;
180
+ logger: TLogger;
181
+ paramsSchema?: StandardSchemaV1;
182
+ native: string[];
183
+ services: Service[];
184
+ constructs: string[];
185
+ timeout?: number;
186
+ memorySize?: number;
187
+ }
188
+ /**
189
+ * What `fileServer.process(pattern)` returns: a processor, built up one
190
+ * immutable step at a time and finished by `.handle()`.
191
+ */
192
+ declare class ProcessorBuilder<TPattern extends string, TSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger> {
193
+ private readonly state;
194
+ constructor(state: ProcessorBuilderState<TLogger>);
195
+ /**
196
+ * The parameters' schema — the allowlist. Every request is parsed by it
197
+ * before anything runs, and one it refuses is answered 400.
198
+ */
199
+ params<T extends StandardSchemaV1>(schema: T): ProcessorBuilder<TPattern, T, TServices, TLogger>;
200
+ /** Constructs its handler reaches, as `services.<id>`. */
201
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): ProcessorBuilder<TPattern, TSchema, [...TServices, ...ServicesOf<T>], TLogger>;
202
+ /**
203
+ * Packages with native code — `sharp` — installed for the target the
204
+ * processor runs on rather than bundled: linux in its image, arm64 on
205
+ * Lambda.
206
+ */
207
+ native(packages: readonly string[]): this;
208
+ /** Milliseconds a request may take, where the target bounds it. */
209
+ timeout(ms: number): this;
210
+ /** Megabytes of memory, where the target sets it. */
211
+ memorySize(mb: number): this;
212
+ handle(fn: ProcessorHandler<ProcessorParams<TPattern, TSchema>, TServices, TLogger>): Processor<TPattern, TSchema, TServices, TLogger>;
213
+ }
214
+ //#endregion
215
+ export { parsePattern as _, ProcessorCache as a, ProcessorParams as c, ParsedPattern as d, PatternParams as f, matchPattern as g, fillPattern as h, Processor as i, ProcessorResult as l, ProcessorPatternInvalid as m, ProcessorNativeInvalid as n, ProcessorContext as o, ProcessorParamMissing as p, DERIVED_PREFIX as r, ProcessorHandler as s, ProcessorBuilder as t, SourceObject as u };
216
+ //# sourceMappingURL=ProcessorBuilder-C62bIOwj.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessorBuilder-C62bIOwj.d.cts","names":[],"sources":["../src/processors/pattern.ts","../src/processors/Processor.ts","../src/processors/ProcessorBuilder.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;KAeY,kBAAkB,oBAC7B,8BAA8B,cAAc,SACzC,OAAO,sBAAsB;;KAIrB,cAAc,uBACxB,KAAK,kBAAkB;;cAIZ,gCAAgC;WAElC;WACA;EAFV,YACU,iBACA;;;UAYM;WACP;;WAEA;IACJ;IAAiB;;IACjB;IAAe;;;WAGX;;WAEA;;;iBAIM,aAAa,kBAAkB;;UAkE9B;EAChB,QAAQ;EACR;;;;;;iBAOe,aACf,QAAQ,eACR,eACE;;iBA0Ba,YACf,QAAQ,eACR,QAAQ,SAAS,kCACjB;;cAmBY,8BAA8B;WAEhC;WACA;EAFV,YACU,iBACA;;;;;KCtKC;;;;;EAIP;;;;;UAKY;EAChB,MAAM;EACN;;;;;EAKA,QAAQ;;;UAIQ;WACP;EACT,SAAS,QAAQ;EACjB,UAAU,QAAQ,eAAe;;EAEjC,eAAe;;UAGC,iBAChB,SACA,kBAAkB,WAClB,gBAAgB;EAEhB,QAAQ;EACR;EACA,QAAQ;EACR,QAAQ;EACR,UAAU,cAAc;;KAGb,iBACX,SACA,kBAAkB,WAClB,gBAAgB,WAEhB,SAAS,iBAAiB,SAAS,WAAW,aAC1C,QAAQ,mBAAmB;;KAGpB,gBACX,yBACA,gBAAgB,gCACb,gBAAgB,mBACjB,oBAAoB,WACpB,cAAc;;;;;;;;;;cAWJ,UACZ,kCACA,gBAAgB,0CAChB,kBAAkB,gBAClB,gBAAgB,SAAS,gBAChB,UAAU,oBAAoB;WAY7B,QAAQ;WACR,SAAS,iBACjB,gBAAgB,UAAU,UAC1B,WACA;WAEQ;;IAER;;IAEA;;IAEA,QAAQ,gBAAgB;;IAExB,SAAS;IACT,eAAe;;IAEf;IACA,QAAQ;IACR,UAAU;IACV;IACA;IACA;;EAjCF;SAEO,YAAY,eAAe,OAAO;EAQzC,YACU,QAAQ,eACR,SAAS,iBACjB,gBAAgB,UAAU,UAC1B,WACA,UAEQ;;IAER;;IAEA;;IAEA,QAAQ,gBAAgB;;IAExB,SAAS;IACT,eAAe;;IAEf;IACA,QAAQ;IACR,UAAU;IACV;IACA;IACA;;;MAsBE,WAAW;;MAKX;MAIA;MAIA;MAIA;;;;;cC/IQ,+BAA+B;WACtB;EAArB,YAAqB;;UAUZ,sBAAsB,gBAAgB;EAC/C,QAAQ;EACR;EACA;EACA,QAAQ,gBAAgB;EACxB,SAAS;EACT,QAAQ;EACR,eAAe;EACf;EACA,UAAU;EACV;EACA;EACA;;;;;;cAOY,iBACZ,yBACA,gBAAgB,0CAChB,kBAAkB,gBAClB,gBAAgB,SAAS;mBAEI;EAA7B,YAA6B,OAAO,sBAAsB;;;;;EAM1D,OAAO,UAAU,kBAChB,QAAQ,IACN,iBAAiB,UAAU,GAAG,WAAW;;EAK5C,gBAAgB,mBAAmB,cAClC,YAAY,IACV,iBACF,UACA,aACI,cAAc,WAAW,KAC7B;;;;;;EAqBD,OAAO;;EAaP,QAAQ;;EAKR,WAAW;EAIX,OACC,IAAI,iBACH,gBAAgB,UAAU,UAC1B,WACA,WAEC,UAAU,UAAU,SAAS,WAAW"}
@@ -1,6 +1,6 @@
1
1
  import { n as StandardSchemaV1 } from "./index-DdRjYhiJ.mjs";
2
- import { t as Construct } from "./Construct-B7AXn0xH.mjs";
3
- import { t as DatabaseContext } from "./Function-B_9R7Zy1.mjs";
2
+ import { t as Construct } from "./Construct-DySlwh8o.mjs";
3
+ import { t as DatabaseContext } from "./Function-DfMzTGS4.mjs";
4
4
  import { Declaration } from "@geekmidas/manifest";
5
5
  import { EventPublisher, PublishableMessage } from "@geekmidas/events";
6
6
  import { Service, ServiceRecord } from "@geekmidas/services";
@@ -102,4 +102,4 @@ type QueueContext<TMessage extends StandardSchemaV1, TServices extends Service[]
102
102
  type QueueHandler<TMessage extends StandardSchemaV1, TServices extends Service[] = [], TLogger extends Logger = Logger, TDatabase = undefined> = (ctx: QueueContext<TMessage, TServices, TLogger, TDatabase>) => unknown | Promise<unknown>;
103
103
  //#endregion
104
104
  export { QueueMessage as i, QueueContext as n, QueueHandler as r, Queue as t };
105
- //# sourceMappingURL=Queue-B-dDXyjF.d.mts.map
105
+ //# sourceMappingURL=Queue-BnK3UH8r.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Queue-B-dDXyjF.d.mts","names":[],"sources":["../src/queue/Queue.ts"],"mappings":";;;;;;;;;;;;;;;KA0BY,aACX,sBACA,iBAAiB,oBACd,mBAAmB,OAAO,oBAAoB;;;;;;;;;;;;;;cAerC,MACZ,+BACA,iBAAiB,mBAAmB,kBACpC,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,uBACA,sDACS,UACT,oBAEA,8BAGA,sBACA;WA8CiB,MAAM;WACN,SAAS,aACxB,UACA,WACA,SACA;WAEe,eAAe;WACN;WACA,UAAU;WACV,QAAQ;;WAEjB;;WAEA;EA1DjB;SAEO,QACN,eACE,OAAO,cAAc,kBAAkB,WAAW;;;;;;;;;WAgB5C;;;;;;;;;;;WAYA,SAAS,QACjB,aAAa,QACb,eAAe,aAAa,OAAO;;;;;mBAOnB;EAEjB,YACiB,MAAM,OACN,SAAS,aACxB,UACA,WACA,SACA,YAEe,eAAe,UACN,kBACA,WAAU,WACV,SAAQ,SAEjB;;EAAA,gCAEA;;EAAA,4BAKhB;;;;;EAAA,uBAKA;;;;;EAAA,kBAAkB,QAAQ,sBAAsB;;;;;;;;;EAyCjD,WAAW;;;;;;KA8BA,aACX,iBAAiB,kBACjB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB;EAEA,UAAU,oBAAoB;EAC9B,UAAU,cAAc;EACxB,QAAQ;IACL,gBAAgB;KAER,aACX,iBAAiB,kBACjB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,0BAEA,KAAK,aAAa,UAAU,WAAW,SAAS,yBAClC"}
1
+ {"version":3,"file":"Queue-BnK3UH8r.d.mts","names":[],"sources":["../src/queue/Queue.ts"],"mappings":";;;;;;;;;;;;;;;KA0BY,aACX,sBACA,iBAAiB,oBACd,mBAAmB,OAAO,oBAAoB;;;;;;;;;;;;;;cAerC,MACZ,+BACA,iBAAiB,mBAAmB,kBACpC,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,uBACA,sDACS,UACT,oBAEA,8BAGA,sBACA;WA8CiB,MAAM;WACN,SAAS,aACxB,UACA,WACA,SACA;WAEe,eAAe;WACN;WACA,UAAU;WACV,QAAQ;;WAEjB;;WAEA;EA1DjB;SAEO,QACN,eACE,OAAO,cAAc,kBAAkB,WAAW;;;;;;;;;WAgB5C;;;;;;;;;;;WAYA,SAAS,QACjB,aAAa,QACb,eAAe,aAAa,OAAO;;;;;mBAOnB;EAEjB,YACiB,MAAM,OACN,SAAS,aACxB,UACA,WACA,SACA,YAEe,eAAe,UACN,kBACA,WAAU,WACV,SAAQ,SAEjB;;EAAA,gCAEA;;EAAA,4BAKhB;;;;;EAAA,uBAKA;;;;;EAAA,kBAAkB,QAAQ,sBAAsB;;;;;;;;;EAyCjD,WAAW;;;;;;KA8BA,aACX,iBAAiB,kBACjB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB;EAEA,UAAU,oBAAoB;EAC9B,UAAU,cAAc;EACxB,QAAQ;IACL,gBAAgB;KAER,aACX,iBAAiB,kBACjB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,0BAEA,KAAK,aAAa,UAAU,WAAW,SAAS,yBAClC"}
@@ -1,6 +1,6 @@
1
1
  import { n as StandardSchemaV1 } from "./index-DdRjYhiJ.cjs";
2
- import { t as Construct } from "./Construct-CFW0zjdD.cjs";
3
- import { t as DatabaseContext } from "./Function-B0uZhZnU.cjs";
2
+ import { t as Construct } from "./Construct-127M7yrl.cjs";
3
+ import { t as DatabaseContext } from "./Function-BIEsY0Hm.cjs";
4
4
  import { Logger } from "@geekmidas/logger";
5
5
  import { InferStandardSchema } from "@geekmidas/schema";
6
6
  import { Service, ServiceRecord } from "@geekmidas/services";
@@ -102,4 +102,4 @@ type QueueContext<TMessage extends StandardSchemaV1, TServices extends Service[]
102
102
  type QueueHandler<TMessage extends StandardSchemaV1, TServices extends Service[] = [], TLogger extends Logger = Logger, TDatabase = undefined> = (ctx: QueueContext<TMessage, TServices, TLogger, TDatabase>) => unknown | Promise<unknown>;
103
103
  //#endregion
104
104
  export { QueueMessage as i, QueueContext as n, QueueHandler as r, Queue as t };
105
- //# sourceMappingURL=Queue-JbIjVtTf.d.cts.map
105
+ //# sourceMappingURL=Queue-C4rijiM7.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Queue-JbIjVtTf.d.cts","names":[],"sources":["../src/queue/Queue.ts"],"mappings":";;;;;;;;;;;;;;;KA0BY,aACX,sBACA,iBAAiB,oBACd,mBAAmB,OAAO,oBAAoB;;;;;;;;;;;;;;cAerC,MACZ,+BACA,iBAAiB,mBAAmB,kBACpC,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,uBACA,sDACS,UACT,oBAEA,8BAGA,sBACA;WA8CiB,MAAM;WACN,SAAS,aACxB,UACA,WACA,SACA;WAEe,eAAe;WACN;WACA,UAAU;WACV,QAAQ;;WAEjB;;WAEA;EA1DjB;SAEO,QACN,eACE,OAAO,cAAc,kBAAkB,WAAW;;;;;;;;;WAgB5C;;;;;;;;;;;WAYA,SAAS,QACjB,aAAa,QACb,eAAe,aAAa,OAAO;;;;;mBAOnB;EAEjB,YACiB,MAAM,OACN,SAAS,aACxB,UACA,WACA,SACA,YAEe,eAAe,UACN,kBACA,WAAU,WACV,SAAQ,SAEjB;;EAAA,gCAEA;;EAAA,4BAKhB;;;;;EAAA,uBAKA;;;;;EAAA,kBAAkB,QAAQ,sBAAsB;;;;;;;;;EAyCjD,WAAW;;;;;;KA8BA,aACX,iBAAiB,kBACjB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB;EAEA,UAAU,oBAAoB;EAC9B,UAAU,cAAc;EACxB,QAAQ;IACL,gBAAgB;KAER,aACX,iBAAiB,kBACjB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,0BAEA,KAAK,aAAa,UAAU,WAAW,SAAS,yBAClC"}
1
+ {"version":3,"file":"Queue-C4rijiM7.d.cts","names":[],"sources":["../src/queue/Queue.ts"],"mappings":";;;;;;;;;;;;;;;KA0BY,aACX,sBACA,iBAAiB,oBACd,mBAAmB,OAAO,oBAAoB;;;;;;;;;;;;;;cAerC,MACZ,+BACA,iBAAiB,mBAAmB,kBACpC,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,uBACA,sDACS,UACT,oBAEA,8BAGA,sBACA;WA8CiB,MAAM;WACN,SAAS,aACxB,UACA,WACA,SACA;WAEe,eAAe;WACN;WACA,UAAU;WACV,QAAQ;;WAEjB;;WAEA;EA1DjB;SAEO,QACN,eACE,OAAO,cAAc,kBAAkB,WAAW;;;;;;;;;WAgB5C;;;;;;;;;;;WAYA,SAAS,QACjB,aAAa,QACb,eAAe,aAAa,OAAO;;;;;mBAOnB;EAEjB,YACiB,MAAM,OACN,SAAS,aACxB,UACA,WACA,SACA,YAEe,eAAe,UACN,kBACA,WAAU,WACV,SAAQ,SAEjB;;EAAA,gCAEA;;EAAA,4BAKhB;;;;;EAAA,uBAKA;;;;;EAAA,kBAAkB,QAAQ,sBAAsB;;;;;;;;;EAyCjD,WAAW;;;;;;KA8BA,aACX,iBAAiB,kBACjB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB;EAEA,UAAU,oBAAoB;EAC9B,UAAU,cAAc;EACxB,QAAQ;IACL,gBAAgB;KAER,aACX,iBAAiB,kBACjB,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,0BAEA,KAAK,aAAa,UAAU,WAAW,SAAS,yBAClC"}
@@ -1,7 +1,7 @@
1
- const require_Construct = require("./Construct-DEOVauyA.cjs");
1
+ const require_Construct = require("./Construct-DorKS0Ua.cjs");
2
2
  let _geekmidas_manifest = require("@geekmidas/manifest");
3
- let _geekmidas_events = require("@geekmidas/events");
4
3
  let _geekmidas_logger_console = require("@geekmidas/logger/console");
4
+ let _geekmidas_events = require("@geekmidas/events");
5
5
  //#region src/queue/Queue.ts
6
6
  /**
7
7
  * A queue worker — a point-to-point SQS-style queue and its single consumer.
@@ -106,4 +106,4 @@ Object.defineProperty(exports, "Queue", {
106
106
  }
107
107
  });
108
108
 
109
- //# sourceMappingURL=Queue-BhuofM3k.cjs.map
109
+ //# sourceMappingURL=Queue-D4Iaidrs.cjs.map