@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.
- package/dist/{Construct-CFW0zjdD.d.cts → Construct-127M7yrl.d.cts} +3 -2
- package/dist/{Construct-B7AXn0xH.d.mts.map → Construct-127M7yrl.d.cts.map} +1 -1
- package/dist/{Construct-CKUA-CTA.mjs → Construct-CGuc_Ijk.mjs} +2 -1
- package/dist/{Construct-CKUA-CTA.mjs.map → Construct-CGuc_Ijk.mjs.map} +1 -1
- package/dist/{Construct-DEOVauyA.cjs → Construct-DorKS0Ua.cjs} +2 -1
- package/dist/{Construct-DEOVauyA.cjs.map → Construct-DorKS0Ua.cjs.map} +1 -1
- package/dist/{Construct-B7AXn0xH.d.mts → Construct-DySlwh8o.d.mts} +3 -2
- package/dist/{Construct-CFW0zjdD.d.cts.map → Construct-DySlwh8o.d.mts.map} +1 -1
- package/dist/{Cron-bdGRSROY.d.cts → Cron-CFkpEys6.d.cts} +4 -4
- package/dist/{Cron-bdGRSROY.d.cts.map → Cron-CFkpEys6.d.cts.map} +1 -1
- package/dist/{Cron-i4Uetezh.d.mts → Cron-CQoDSu-n.d.mts} +4 -4
- package/dist/{Cron-i4Uetezh.d.mts.map → Cron-CQoDSu-n.d.mts.map} +1 -1
- package/dist/{CronBuilder-9H4BnD6W.d.mts → CronBuilder-1W-G_i15.d.mts} +5 -5
- package/dist/{CronBuilder-9H4BnD6W.d.mts.map → CronBuilder-1W-G_i15.d.mts.map} +1 -1
- package/dist/{CronBuilder-D3sF9tS_.mjs → CronBuilder-BJ5LoadF.mjs} +3 -3
- package/dist/{CronBuilder-D3sF9tS_.mjs.map → CronBuilder-BJ5LoadF.mjs.map} +1 -1
- package/dist/{CronBuilder-BXTG10u5.cjs → CronBuilder-B_NSP-Y5.cjs} +3 -3
- package/dist/{CronBuilder-BXTG10u5.cjs.map → CronBuilder-B_NSP-Y5.cjs.map} +1 -1
- package/dist/{CronBuilder-B_24LZpn.d.cts → CronBuilder-OaCRRFVk.d.cts} +5 -5
- package/dist/{CronBuilder-B_24LZpn.d.cts.map → CronBuilder-OaCRRFVk.d.cts.map} +1 -1
- package/dist/{Endpoint-DgrpG15P.d.cts → Endpoint-BEh-jW-f.d.cts} +4 -4
- package/dist/{Endpoint-CeFkSwh5.d.mts.map → Endpoint-BEh-jW-f.d.cts.map} +1 -1
- package/dist/{Endpoint-yhR2T2Wt.cjs → Endpoint-BuGFNFSB.cjs} +3 -3
- package/dist/{Endpoint-yhR2T2Wt.cjs.map → Endpoint-BuGFNFSB.cjs.map} +1 -1
- package/dist/{Endpoint-CeFkSwh5.d.mts → Endpoint-DTXDggNl.d.mts} +4 -4
- package/dist/{Endpoint-DgrpG15P.d.cts.map → Endpoint-DTXDggNl.d.mts.map} +1 -1
- package/dist/{Endpoint-gPXhHKhJ.mjs → Endpoint-VdaYKc2g.mjs} +3 -3
- package/dist/{Endpoint-gPXhHKhJ.mjs.map → Endpoint-VdaYKc2g.mjs.map} +1 -1
- package/dist/{EndpointFactory-Cc863XJS.d.cts → EndpointFactory-B2dCS9dy.d.cts} +4 -4
- package/dist/{EndpointFactory-Dbw9ugkX.d.mts.map → EndpointFactory-B2dCS9dy.d.cts.map} +1 -1
- package/dist/{EndpointFactory-CSrAyazj.cjs → EndpointFactory-C6pVda4y.cjs} +4 -4
- package/dist/{EndpointFactory-CSrAyazj.cjs.map → EndpointFactory-C6pVda4y.cjs.map} +1 -1
- package/dist/{EndpointFactory-c2ZugGig.mjs → EndpointFactory-CUpqgtaH.mjs} +4 -4
- package/dist/{EndpointFactory-c2ZugGig.mjs.map → EndpointFactory-CUpqgtaH.mjs.map} +1 -1
- package/dist/{EndpointFactory-Dbw9ugkX.d.mts → EndpointFactory-D2HXcUrJ.d.mts} +4 -4
- package/dist/{EndpointFactory-Cc863XJS.d.cts.map → EndpointFactory-D2HXcUrJ.d.mts.map} +1 -1
- package/dist/{Function-B0uZhZnU.d.cts → Function-BIEsY0Hm.d.cts} +2 -2
- package/dist/{Function-B0uZhZnU.d.cts.map → Function-BIEsY0Hm.d.cts.map} +1 -1
- package/dist/{Function-B_9R7Zy1.d.mts → Function-DfMzTGS4.d.mts} +2 -2
- package/dist/{Function-B_9R7Zy1.d.mts.map → Function-DfMzTGS4.d.mts.map} +1 -1
- package/dist/{HonoEndpointAdaptor-CN1jjUBJ.cjs → HonoEndpointAdaptor-BBTzbP38.cjs} +3 -3
- package/dist/{HonoEndpointAdaptor-CN1jjUBJ.cjs.map → HonoEndpointAdaptor-BBTzbP38.cjs.map} +1 -1
- package/dist/{HonoEndpointAdaptor-euH1oSdY.mjs → HonoEndpointAdaptor-BR_LyaFE.mjs} +3 -3
- package/dist/{HonoEndpointAdaptor-euH1oSdY.mjs.map → HonoEndpointAdaptor-BR_LyaFE.mjs.map} +1 -1
- package/dist/ObjectSubscriberBuilder-HmBwFn2o.d.mts +129 -0
- package/dist/ObjectSubscriberBuilder-HmBwFn2o.d.mts.map +1 -0
- package/dist/ObjectSubscriberBuilder-l-64yUiF.d.cts +129 -0
- package/dist/ObjectSubscriberBuilder-l-64yUiF.d.cts.map +1 -0
- package/dist/ProcessorBuilder-B2_stA8f.d.mts +216 -0
- package/dist/ProcessorBuilder-B2_stA8f.d.mts.map +1 -0
- package/dist/ProcessorBuilder-C62bIOwj.d.cts +216 -0
- package/dist/ProcessorBuilder-C62bIOwj.d.cts.map +1 -0
- package/dist/{Queue-B-dDXyjF.d.mts → Queue-BnK3UH8r.d.mts} +3 -3
- package/dist/{Queue-B-dDXyjF.d.mts.map → Queue-BnK3UH8r.d.mts.map} +1 -1
- package/dist/{Queue-JbIjVtTf.d.cts → Queue-C4rijiM7.d.cts} +3 -3
- package/dist/{Queue-JbIjVtTf.d.cts.map → Queue-C4rijiM7.d.cts.map} +1 -1
- package/dist/{Queue-BhuofM3k.cjs → Queue-D4Iaidrs.cjs} +3 -3
- package/dist/{Queue-BhuofM3k.cjs.map → Queue-D4Iaidrs.cjs.map} +1 -1
- package/dist/{Queue-cmhqEBOB.mjs → Queue-u8w8_HpE.mjs} +3 -3
- package/dist/{Queue-cmhqEBOB.mjs.map → Queue-u8w8_HpE.mjs.map} +1 -1
- package/dist/{QueueBuilder-DXu1qxT1.mjs → QueueBuilder-2wP5lEC8.mjs} +2 -2
- package/dist/{QueueBuilder-DXu1qxT1.mjs.map → QueueBuilder-2wP5lEC8.mjs.map} +1 -1
- package/dist/{QueueBuilder-48W-q8In.d.mts → QueueBuilder-B3vL1ED2.d.mts} +2 -2
- package/dist/{QueueBuilder-48W-q8In.d.mts.map → QueueBuilder-B3vL1ED2.d.mts.map} +1 -1
- package/dist/{QueueBuilder-MfpkJ3R9.d.cts → QueueBuilder-BcPBQSSX.d.cts} +2 -2
- package/dist/{QueueBuilder-MfpkJ3R9.d.cts.map → QueueBuilder-BcPBQSSX.d.cts.map} +1 -1
- package/dist/{QueueBuilder-DdU2klPu.cjs → QueueBuilder-BxsZ9o5z.cjs} +2 -2
- package/dist/{QueueBuilder-DdU2klPu.cjs.map → QueueBuilder-BxsZ9o5z.cjs.map} +1 -1
- package/dist/{Subscriber-CEt7kHkc.d.cts → Subscriber-BdCtfFXL.d.cts} +15 -3
- package/dist/{Subscriber-CEt7kHkc.d.cts.map → Subscriber-BdCtfFXL.d.cts.map} +1 -1
- package/dist/{Subscriber-dsxc5LKa.d.mts → Subscriber-DDo4HFNn.d.mts} +15 -3
- package/dist/{Subscriber-dsxc5LKa.d.mts.map → Subscriber-DDo4HFNn.d.mts.map} +1 -1
- package/dist/{SubscriberBuilder-DRXfxWn_.mjs → SubscriberBuilder-3msj1U2w.mjs} +99 -3
- package/dist/SubscriberBuilder-3msj1U2w.mjs.map +1 -0
- package/dist/{SubscriberBuilder-M2EAgQhC.cjs → SubscriberBuilder-CQst6Iz3.cjs} +110 -2
- package/dist/SubscriberBuilder-CQst6Iz3.cjs.map +1 -0
- package/dist/{Topic-D2R0r24C.mjs → Topic-DN2gYJ-p.mjs} +3 -3
- package/dist/{Topic-D2R0r24C.mjs.map → Topic-DN2gYJ-p.mjs.map} +1 -1
- package/dist/{Topic-DwS3QO0m.cjs → Topic-Dp9Q7Lj2.cjs} +3 -3
- package/dist/{Topic-DwS3QO0m.cjs.map → Topic-Dp9Q7Lj2.cjs.map} +1 -1
- package/dist/adaptors/aws.cjs +4 -4
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +5 -5
- package/dist/adaptors/aws.d.mts +5 -5
- package/dist/adaptors/aws.mjs +5 -5
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +1 -1
- package/dist/adaptors/hono.d.cts +1 -1
- package/dist/adaptors/hono.d.mts +1 -1
- package/dist/adaptors/hono.mjs +1 -1
- package/dist/adaptors/testing.cjs +114 -7
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +25 -4
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +25 -4
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +114 -7
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/crons/index.cjs +2 -2
- package/dist/crons/index.d.cts +2 -2
- package/dist/crons/index.d.mts +2 -2
- package/dist/crons/index.mjs +2 -2
- package/dist/endpoints/index.cjs +3 -3
- package/dist/endpoints/index.d.cts +3 -3
- package/dist/endpoints/index.d.mts +3 -3
- package/dist/endpoints/index.mjs +3 -3
- package/dist/file-server.cjs +101 -31
- package/dist/file-server.cjs.map +1 -1
- package/dist/file-server.d.cts +95 -0
- package/dist/file-server.d.cts.map +1 -1
- package/dist/file-server.d.mts +95 -0
- package/dist/file-server.d.mts.map +1 -1
- package/dist/file-server.mjs +101 -33
- package/dist/file-server.mjs.map +1 -1
- package/dist/functions/index.cjs +1 -1
- package/dist/functions/index.d.cts +2 -2
- package/dist/functions/index.d.mts +2 -2
- package/dist/functions/index.mjs +1 -1
- package/dist/{functions-CTI-hDem.mjs → functions-BvIDQKAA.mjs} +3 -3
- package/dist/{functions-CTI-hDem.mjs.map → functions-BvIDQKAA.mjs.map} +1 -1
- package/dist/{functions-D7O5SGVc.cjs → functions-DLF6-IK8.cjs} +3 -3
- package/dist/{functions-D7O5SGVc.cjs.map → functions-DLF6-IK8.cjs.map} +1 -1
- package/dist/{index-Cd2w-DRL.d.cts → index-BtzMzhMA.d.cts} +3 -3
- package/dist/{index-Cd2w-DRL.d.cts.map → index-BtzMzhMA.d.cts.map} +1 -1
- package/dist/{index-aBIcAiH5.d.mts → index-DuriFjYD.d.mts} +3 -3
- package/dist/{index-aBIcAiH5.d.mts.map → index-DuriFjYD.d.mts.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/pattern-C1CEcglD.mjs +241 -0
- package/dist/pattern-C1CEcglD.mjs.map +1 -0
- package/dist/pattern-QFaUIr77.cjs +288 -0
- package/dist/pattern-QFaUIr77.cjs.map +1 -0
- package/dist/processors/index.cjs +214 -0
- package/dist/processors/index.cjs.map +1 -0
- package/dist/processors/index.d.cts +78 -0
- package/dist/processors/index.d.cts.map +1 -0
- package/dist/processors/index.d.mts +78 -0
- package/dist/processors/index.d.mts.map +1 -0
- package/dist/processors/index.mjs +193 -0
- package/dist/processors/index.mjs.map +1 -0
- package/dist/queue/index.cjs +2 -2
- package/dist/queue/index.d.cts +2 -2
- package/dist/queue/index.d.mts +2 -2
- package/dist/queue/index.mjs +2 -2
- package/dist/rest-api.cjs +1 -1
- package/dist/rest-api.d.cts +2 -2
- package/dist/rest-api.d.mts +2 -2
- package/dist/rest-api.mjs +1 -1
- package/dist/{runSubscriber-D8nLXIv1.cjs → runSubscriber-B1Yg4dID.cjs} +5 -3
- package/dist/runSubscriber-B1Yg4dID.cjs.map +1 -0
- package/dist/{runSubscriber-BHvJ8POr.mjs → runSubscriber-JCgkeYbE.mjs} +5 -3
- package/dist/runSubscriber-JCgkeYbE.mjs.map +1 -0
- package/dist/subscribers/index.cjs +31 -13
- package/dist/subscribers/index.cjs.map +1 -1
- package/dist/subscribers/index.d.cts +27 -4
- package/dist/subscribers/index.d.cts.map +1 -1
- package/dist/subscribers/index.d.mts +27 -4
- package/dist/subscribers/index.d.mts.map +1 -1
- package/dist/subscribers/index.mjs +30 -14
- package/dist/subscribers/index.mjs.map +1 -1
- package/dist/topic/index.cjs +1 -1
- package/dist/topic/index.d.cts +1 -1
- package/dist/topic/index.d.mts +1 -1
- package/dist/topic/index.mjs +1 -1
- package/dist/worker.cjs +25 -4
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +26 -7
- package/dist/worker.d.cts.map +1 -1
- package/dist/worker.d.mts +26 -7
- package/dist/worker.d.mts.map +1 -1
- package/dist/worker.mjs +25 -4
- package/dist/worker.mjs.map +1 -1
- package/package.json +41 -31
- package/dist/SubscriberBuilder-BRa_nrmH.d.cts +0 -67
- package/dist/SubscriberBuilder-BRa_nrmH.d.cts.map +0 -1
- package/dist/SubscriberBuilder-D9bkrYzH.d.mts +0 -67
- package/dist/SubscriberBuilder-D9bkrYzH.d.mts.map +0 -1
- package/dist/SubscriberBuilder-DRXfxWn_.mjs.map +0 -1
- package/dist/SubscriberBuilder-M2EAgQhC.cjs.map +0 -1
- package/dist/runSubscriber-BHvJ8POr.mjs.map +0 -1
- 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-
|
|
3
|
-
import { t as DatabaseContext } from "./Function-
|
|
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-
|
|
105
|
+
//# sourceMappingURL=Queue-BnK3UH8r.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue-
|
|
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-
|
|
3
|
-
import { t as DatabaseContext } from "./Function-
|
|
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-
|
|
105
|
+
//# sourceMappingURL=Queue-C4rijiM7.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue-
|
|
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-
|
|
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-
|
|
109
|
+
//# sourceMappingURL=Queue-D4Iaidrs.cjs.map
|