@geekmidas/manifest 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,88 @@
1
+ # @geekmidas/manifest
2
+
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ✨ [#8](https://github.com/geekmidas/toolbox/pull/8) [`b42e96b`](https://github.com/geekmidas/toolbox/commit/b42e96b9dd28d8926a1253a97aa553bd0e08bf56) Thanks [@geekmidas](https://github.com/geekmidas)! - feat(cloud): add `fromManifest` integrators backed by a shared `@geekmidas/manifest` package
8
+
9
+ Introduces `@geekmidas/manifest` — a dependency-free package holding the
10
+ deployment manifest types (`RouteInfo`/`FunctionInfo`/`CronInfo`/`SubscriberInfo`
11
+ and their `*Manifest` containers) that `gkm build` emits. `@geekmidas/cli`
12
+ re-exports these from the shared package (no behaviour change), so producer and
13
+ consumers share one contract.
14
+
15
+ `@geekmidas/cloud/sst` constructs gain static `fromManifest` factories that map
16
+ a manifest straight into infrastructure:
17
+ - `Api.fromManifest(stack, id, routesManifest, props)` — one route per
18
+ `RouteInfo` (env vars, authorizer, timeout/memory mapped); supply
19
+ `authorizers`/`links`/native args via `props`.
20
+ - `Function.fromManifest(stack, functionsManifest, props)` — one `Function` per
21
+ entry.
22
+ - `Cron.fromManifest(stack, cronsManifest, { links, ... })` — one `Cron` per
23
+ entry; each handler becomes a validated `Function` the cron triggers.
24
+
25
+ `Api` routes also gain per-route `timeout`/`memory` passthrough.
26
+
27
+ - ✨ [#8](https://github.com/geekmidas/toolbox/pull/8) [`03b08fe`](https://github.com/geekmidas/toolbox/commit/03b08feba2e735539c43f95b77792c18a627b07d) Thanks [@geekmidas](https://github.com/geekmidas)! - refactor(manifest): model the unified `gkm build` manifest and add `QueueInfo`
28
+
29
+ `gkm build` emits a single TypeScript module per provider
30
+ (`export const manifest = { routes, functions, crons, subscribers } as const`),
31
+ not separate JSON files. `@geekmidas/manifest` now models that:
32
+ - a unified `Manifest` type plus `ManifestField<T>` (a field is a flat
33
+ `readonly T[]` or a partitioned `Record<string, readonly T[]>`) and a
34
+ `flattenManifestField` helper;
35
+ - the item types (`RouteInfo`/`FunctionInfo`/`CronInfo`/`SubscriberInfo`) gain a
36
+ new `QueueInfo`, `SubscriberInfo.transport`, and readonly array fields so the
37
+ `as const` manifest assigns cleanly;
38
+ - 🔥 the per-unit `*Manifest` wrapper types are removed.
39
+
40
+ `@geekmidas/cloud/sst`'s `Api`/`Function`/`Cron` `fromManifest` now take the
41
+ manifest **field** (`Api.fromManifest(stack, id, manifest.routes, …)`) and
42
+ flatten the flat-or-partitioned shape. `@geekmidas/cli` re-exports the updated
43
+ types.
44
+
45
+ Also fixes `@geekmidas/events` to externalise `pg-boss` (it was the one
46
+ transport dep being bundled).
47
+
48
+ - ✨ [#8](https://github.com/geekmidas/toolbox/pull/8) [`0dad77e`](https://github.com/geekmidas/toolbox/commit/0dad77e574000e4018033b956ed4bb95935911a5) Thanks [@geekmidas](https://github.com/geekmidas)! - feat(topic): add the `t` topic construct + derived publisher (closes the topic/queue asymmetry)
49
+
50
+ Topics now have the same app-driven story queues already had — declare the topic
51
+ in the app, get a typed publisher for free, and let `gkm build` capture it. This
52
+ removes the need to hand-write a publisher `Service` (e.g. `EventsService`) to
53
+ fan events out.
54
+
55
+ **`@geekmidas/constructs/topic`** — the `t` builder:
56
+
57
+ ```ts
58
+ import { t } from "@geekmidas/constructs/topic";
59
+
60
+ export const userTopic = t.topic("users").events({
61
+ "user.created": z.object({ userId: z.string(), email: z.string() }),
62
+ "user.updated": z.object({
63
+ userId: z.string(),
64
+ changes: z.array(z.string()),
65
+ }),
66
+ });
67
+ ```
68
+
69
+ - A `Topic` is a _resource_ construct (`ConstructType.Topic`) — fan-out, owned by
70
+ no single handler. It declares the event contract and derives a publisher.
71
+ - **`userTopic.publisher`** — a derived `Service` typed to the union of the topic's
72
+ events, reading `<NAME>_PUBLISHER_CONNECTION_STRING` (transport by protocol:
73
+ `sns://` deployed, `pgboss://` local). Replaces hand-written publisher services.
74
+ Inject via `.publisher(userTopic.publisher)` (declarative `.event(...)`) or
75
+ `.services([userTopic.publisher])`.
76
+ - **`s.topic(userTopic)`** — binds a subscriber to a topic: supplies the
77
+ subscribable event types/payloads _and_ records the binding for the manifest.
78
+ A consumer doesn't publish, so this requires **no** publisher connection string
79
+ (least privilege) — unlike typing via `.publisher(...)`.
80
+
81
+ **`@geekmidas/manifest`** — new `TopicInfo` + `manifest.topics`; `SubscriberInfo`
82
+ gains `topic` (the bound topic name).
83
+
84
+ **`@geekmidas/cli`** — `TopicGenerator` discovers `t` topics into `manifest.topics`
85
+ (a topic has no handler to generate); new `topics` config glob; wired through
86
+ `gkm build`/`gkm dev` and both manifest writers.
87
+
88
+ Hand-written publisher services still work; `t` is the encouraged path.
package/dist/index.cjs ADDED
@@ -0,0 +1,11 @@
1
+
2
+ //#region src/index.ts
3
+ /** Flatten a manifest field (array or partitioned) into a plain array. */
4
+ function flattenManifestField(field) {
5
+ if (!field) return [];
6
+ return Array.isArray(field) ? [...field] : Object.values(field).flat();
7
+ }
8
+
9
+ //#endregion
10
+ exports.flattenManifestField = flattenManifestField;
11
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["field: ManifestField<T> | undefined"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * Deployment manifest types — the build output of `gkm build` that enumerates a\n * project's deployable units (routes, functions, crons, subscribers, queues)\n * with the metadata an infrastructure layer needs to provision them.\n *\n * `gkm build` writes a single TypeScript module per provider\n * (`<out>/manifest/aws.ts`) of the form:\n *\n * ```ts\n * export const manifest = { routes: [...], functions: [...], ... } as const;\n * export type Route = (typeof manifest.routes)[number];\n * // ...derived types\n * ```\n *\n * This is the dependency-free data contract shared between the producer\n * (`@geekmidas/cli`) and consumers (e.g. `@geekmidas/cloud/sst`'s `fromManifest`\n * integrators).\n */\n\n/**\n * A manifest field is either a flat list or, when the build is partitioned\n * (e.g. by authorizer), an object keyed by partition name. Readonly-tolerant so\n * the `as const` generated manifest assigns cleanly.\n */\nexport type ManifestField<T> =\n\t| readonly T[]\n\t| Readonly<Record<string, readonly T[]>>;\n\n/** Flatten a manifest field (array or partitioned) into a plain array. */\nexport function flattenManifestField<T>(\n\tfield: ManifestField<T> | undefined,\n): T[] {\n\tif (!field) return [];\n\treturn Array.isArray(field)\n\t\t? [...field]\n\t\t: Object.values(field as Record<string, readonly T[]>).flat();\n}\n\n/** A single HTTP route. */\nexport interface RouteInfo {\n\t/** Route path, e.g. `/users/{id}`. */\n\tpath: string;\n\t/** HTTP method, e.g. `GET`. */\n\tmethod: string;\n\t/** Bundled handler entrypoint. */\n\thandler: string;\n\ttimeout?: number;\n\tmemorySize?: number;\n\t/** Required environment variables (a trailing `?` marks an optional var). */\n\tenvironment?: readonly string[];\n\t/** Authorizer name: `none`, `iam`, or a declared authorizer. */\n\tauthorizer: string;\n}\n\n/** A standalone Lambda function. */\nexport interface FunctionInfo {\n\tname: string;\n\thandler: string;\n\ttimeout?: number;\n\tmemorySize?: number;\n\tenvironment?: readonly string[];\n}\n\n/** A scheduled (cron) function. */\nexport interface CronInfo {\n\tname: string;\n\thandler: string;\n\t/** Schedule expression, e.g. `rate(1 day)` or `cron(0 12 * * ? *)`. */\n\tschedule: string;\n\ttimeout?: number;\n\tmemorySize?: number;\n\tenvironment?: readonly string[];\n}\n\n/** An event subscriber function (topic/queue resolved by `transport`). */\nexport interface SubscriberInfo {\n\tname: string;\n\thandler: string;\n\tsubscribedEvents: readonly string[];\n\t/** Delivery transport — `topic` (SNS fan-out) or `queue` (SQS). */\n\ttransport?: 'topic' | 'queue';\n\t/** The {@link TopicInfo.name} this subscriber binds to (via `s.topic(topic)`). */\n\ttopic?: string;\n\ttimeout?: number;\n\tmemorySize?: number;\n\tenvironment?: readonly string[];\n}\n\n/**\n * A pub/sub topic — fan-out. A *resource* (no handler): it declares the event\n * contract; producers publish via the derived publisher and {@link SubscriberInfo}s\n * bind to it. Infra provisions an SNS topic.\n */\nexport interface TopicInfo {\n\tname: string;\n\t/** The event type names this topic carries. */\n\tevents: readonly string[];\n\t/** Whether the topic is FIFO. */\n\tfifo?: boolean;\n}\n\n/** A queue worker — a queue and its single consumer. */\nexport interface QueueInfo {\n\tname: string;\n\thandler: string;\n\t/** SQS event-source batch size. */\n\tbatchSize?: number;\n\t/** Whether the queue is FIFO. */\n\tfifo?: boolean;\n\ttimeout?: number;\n\tmemorySize?: number;\n\tenvironment?: readonly string[];\n}\n\n/**\n * The full deployment manifest — the shape of `export const manifest` in a\n * generated `manifest/<provider>.ts`. Each field is a {@link ManifestField}\n * (flat or partitioned).\n */\nexport interface Manifest {\n\troutes: ManifestField<RouteInfo>;\n\tfunctions?: ManifestField<FunctionInfo>;\n\tcrons?: ManifestField<CronInfo>;\n\tsubscribers?: ManifestField<SubscriberInfo>;\n\tqueues?: ManifestField<QueueInfo>;\n\ttopics?: ManifestField<TopicInfo>;\n}\n"],"mappings":";;;AA6BA,SAAgB,qBACfA,OACM;AACN,MAAK,MAAO,QAAO,CAAE;AACrB,QAAO,MAAM,QAAQ,MAAM,GACxB,CAAC,GAAG,KAAM,IACV,OAAO,OAAO,MAAsC,CAAC,MAAM;AAC9D"}
@@ -0,0 +1,114 @@
1
+ //#region src/index.d.ts
2
+ /**
3
+ * Deployment manifest types — the build output of `gkm build` that enumerates a
4
+ * project's deployable units (routes, functions, crons, subscribers, queues)
5
+ * with the metadata an infrastructure layer needs to provision them.
6
+ *
7
+ * `gkm build` writes a single TypeScript module per provider
8
+ * (`<out>/manifest/aws.ts`) of the form:
9
+ *
10
+ * ```ts
11
+ * export const manifest = { routes: [...], functions: [...], ... } as const;
12
+ * export type Route = (typeof manifest.routes)[number];
13
+ * // ...derived types
14
+ * ```
15
+ *
16
+ * This is the dependency-free data contract shared between the producer
17
+ * (`@geekmidas/cli`) and consumers (e.g. `@geekmidas/cloud/sst`'s `fromManifest`
18
+ * integrators).
19
+ */
20
+ /**
21
+ * A manifest field is either a flat list or, when the build is partitioned
22
+ * (e.g. by authorizer), an object keyed by partition name. Readonly-tolerant so
23
+ * the `as const` generated manifest assigns cleanly.
24
+ */
25
+ type ManifestField<T> = readonly T[] | Readonly<Record<string, readonly T[]>>;
26
+ /** Flatten a manifest field (array or partitioned) into a plain array. */
27
+ declare function flattenManifestField<T>(field: ManifestField<T> | undefined): T[];
28
+ /** A single HTTP route. */
29
+ interface RouteInfo {
30
+ /** Route path, e.g. `/users/{id}`. */
31
+ path: string;
32
+ /** HTTP method, e.g. `GET`. */
33
+ method: string;
34
+ /** Bundled handler entrypoint. */
35
+ handler: string;
36
+ timeout?: number;
37
+ memorySize?: number;
38
+ /** Required environment variables (a trailing `?` marks an optional var). */
39
+ environment?: readonly string[];
40
+ /** Authorizer name: `none`, `iam`, or a declared authorizer. */
41
+ authorizer: string;
42
+ }
43
+ /** A standalone Lambda function. */
44
+ interface FunctionInfo {
45
+ name: string;
46
+ handler: string;
47
+ timeout?: number;
48
+ memorySize?: number;
49
+ environment?: readonly string[];
50
+ }
51
+ /** A scheduled (cron) function. */
52
+ interface CronInfo {
53
+ name: string;
54
+ handler: string;
55
+ /** Schedule expression, e.g. `rate(1 day)` or `cron(0 12 * * ? *)`. */
56
+ schedule: string;
57
+ timeout?: number;
58
+ memorySize?: number;
59
+ environment?: readonly string[];
60
+ }
61
+ /** An event subscriber function (topic/queue resolved by `transport`). */
62
+ interface SubscriberInfo {
63
+ name: string;
64
+ handler: string;
65
+ subscribedEvents: readonly string[];
66
+ /** Delivery transport — `topic` (SNS fan-out) or `queue` (SQS). */
67
+ transport?: 'topic' | 'queue';
68
+ /** The {@link TopicInfo.name} this subscriber binds to (via `s.topic(topic)`). */
69
+ topic?: string;
70
+ timeout?: number;
71
+ memorySize?: number;
72
+ environment?: readonly string[];
73
+ }
74
+ /**
75
+ * A pub/sub topic — fan-out. A *resource* (no handler): it declares the event
76
+ * contract; producers publish via the derived publisher and {@link SubscriberInfo}s
77
+ * bind to it. Infra provisions an SNS topic.
78
+ */
79
+ interface TopicInfo {
80
+ name: string;
81
+ /** The event type names this topic carries. */
82
+ events: readonly string[];
83
+ /** Whether the topic is FIFO. */
84
+ fifo?: boolean;
85
+ }
86
+ /** A queue worker — a queue and its single consumer. */
87
+ interface QueueInfo {
88
+ name: string;
89
+ handler: string;
90
+ /** SQS event-source batch size. */
91
+ batchSize?: number;
92
+ /** Whether the queue is FIFO. */
93
+ fifo?: boolean;
94
+ timeout?: number;
95
+ memorySize?: number;
96
+ environment?: readonly string[];
97
+ }
98
+ /**
99
+ * The full deployment manifest — the shape of `export const manifest` in a
100
+ * generated `manifest/<provider>.ts`. Each field is a {@link ManifestField}
101
+ * (flat or partitioned).
102
+ */
103
+ interface Manifest {
104
+ routes: ManifestField<RouteInfo>;
105
+ functions?: ManifestField<FunctionInfo>;
106
+ crons?: ManifestField<CronInfo>;
107
+ subscribers?: ManifestField<SubscriberInfo>;
108
+ queues?: ManifestField<QueueInfo>;
109
+ topics?: ManifestField<TopicInfo>;
110
+ }
111
+ //# sourceMappingURL=index.d.ts.map
112
+ //#endregion
113
+ export { CronInfo, FunctionInfo, Manifest, ManifestField, QueueInfo, RouteInfo, SubscriberInfo, TopicInfo, flattenManifestField };
114
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;AAwBA;;;;;;AAEW;AAGX;;;;;AAEI;AAQJ;AAgBA;AASA;AAWA;AAkBA;AASA;AAiBA;;;AACS,KAhGG,aAgGH,CAAA,CAAA,CAAA,GAAA,SA/FG,CA+FH,EAAA,GA9FN,QA8FM,CA9FG,MA8FH,CAAA,MAAA,EAAA,SA9F2B,CA8F3B,EAAA,CAAA,CAAA;;AACI,iBA5FG,oBA4FH,CAAA,CAAA,CAAA,CAAA,KAAA,EA3FL,aA2FK,CA3FS,CA2FT,CAAA,GAAA,SAAA,CAAA,EA1FV,CA0FU,EAAA;;AACJ,UAnFQ,SAAA,CAmFR;EAAa;EACqB,IAA5B,EAAA,MAAA;EAAa;EACK,MAAvB,EAAA,MAAA;EAAa;EACU,OAAvB,EAAA,MAAA;EAAa,OAAA,CAAA,EAAA,MAAA;;;;;;;;UAtEN,YAAA;;;;;;;;UASA,QAAA;;;;;;;;;;UAWA,cAAA;;;;;;;;;;;;;;;;;UAkBA,SAAA;;;;;;;;UASA,SAAA;;;;;;;;;;;;;;;;UAiBA,QAAA;UACR,cAAc;cACV,cAAc;UAClB,cAAc;gBACR,cAAc;WACnB,cAAc;WACd,cAAc"}
@@ -0,0 +1,114 @@
1
+ //#region src/index.d.ts
2
+ /**
3
+ * Deployment manifest types — the build output of `gkm build` that enumerates a
4
+ * project's deployable units (routes, functions, crons, subscribers, queues)
5
+ * with the metadata an infrastructure layer needs to provision them.
6
+ *
7
+ * `gkm build` writes a single TypeScript module per provider
8
+ * (`<out>/manifest/aws.ts`) of the form:
9
+ *
10
+ * ```ts
11
+ * export const manifest = { routes: [...], functions: [...], ... } as const;
12
+ * export type Route = (typeof manifest.routes)[number];
13
+ * // ...derived types
14
+ * ```
15
+ *
16
+ * This is the dependency-free data contract shared between the producer
17
+ * (`@geekmidas/cli`) and consumers (e.g. `@geekmidas/cloud/sst`'s `fromManifest`
18
+ * integrators).
19
+ */
20
+ /**
21
+ * A manifest field is either a flat list or, when the build is partitioned
22
+ * (e.g. by authorizer), an object keyed by partition name. Readonly-tolerant so
23
+ * the `as const` generated manifest assigns cleanly.
24
+ */
25
+ type ManifestField<T> = readonly T[] | Readonly<Record<string, readonly T[]>>;
26
+ /** Flatten a manifest field (array or partitioned) into a plain array. */
27
+ declare function flattenManifestField<T>(field: ManifestField<T> | undefined): T[];
28
+ /** A single HTTP route. */
29
+ interface RouteInfo {
30
+ /** Route path, e.g. `/users/{id}`. */
31
+ path: string;
32
+ /** HTTP method, e.g. `GET`. */
33
+ method: string;
34
+ /** Bundled handler entrypoint. */
35
+ handler: string;
36
+ timeout?: number;
37
+ memorySize?: number;
38
+ /** Required environment variables (a trailing `?` marks an optional var). */
39
+ environment?: readonly string[];
40
+ /** Authorizer name: `none`, `iam`, or a declared authorizer. */
41
+ authorizer: string;
42
+ }
43
+ /** A standalone Lambda function. */
44
+ interface FunctionInfo {
45
+ name: string;
46
+ handler: string;
47
+ timeout?: number;
48
+ memorySize?: number;
49
+ environment?: readonly string[];
50
+ }
51
+ /** A scheduled (cron) function. */
52
+ interface CronInfo {
53
+ name: string;
54
+ handler: string;
55
+ /** Schedule expression, e.g. `rate(1 day)` or `cron(0 12 * * ? *)`. */
56
+ schedule: string;
57
+ timeout?: number;
58
+ memorySize?: number;
59
+ environment?: readonly string[];
60
+ }
61
+ /** An event subscriber function (topic/queue resolved by `transport`). */
62
+ interface SubscriberInfo {
63
+ name: string;
64
+ handler: string;
65
+ subscribedEvents: readonly string[];
66
+ /** Delivery transport — `topic` (SNS fan-out) or `queue` (SQS). */
67
+ transport?: 'topic' | 'queue';
68
+ /** The {@link TopicInfo.name} this subscriber binds to (via `s.topic(topic)`). */
69
+ topic?: string;
70
+ timeout?: number;
71
+ memorySize?: number;
72
+ environment?: readonly string[];
73
+ }
74
+ /**
75
+ * A pub/sub topic — fan-out. A *resource* (no handler): it declares the event
76
+ * contract; producers publish via the derived publisher and {@link SubscriberInfo}s
77
+ * bind to it. Infra provisions an SNS topic.
78
+ */
79
+ interface TopicInfo {
80
+ name: string;
81
+ /** The event type names this topic carries. */
82
+ events: readonly string[];
83
+ /** Whether the topic is FIFO. */
84
+ fifo?: boolean;
85
+ }
86
+ /** A queue worker — a queue and its single consumer. */
87
+ interface QueueInfo {
88
+ name: string;
89
+ handler: string;
90
+ /** SQS event-source batch size. */
91
+ batchSize?: number;
92
+ /** Whether the queue is FIFO. */
93
+ fifo?: boolean;
94
+ timeout?: number;
95
+ memorySize?: number;
96
+ environment?: readonly string[];
97
+ }
98
+ /**
99
+ * The full deployment manifest — the shape of `export const manifest` in a
100
+ * generated `manifest/<provider>.ts`. Each field is a {@link ManifestField}
101
+ * (flat or partitioned).
102
+ */
103
+ interface Manifest {
104
+ routes: ManifestField<RouteInfo>;
105
+ functions?: ManifestField<FunctionInfo>;
106
+ crons?: ManifestField<CronInfo>;
107
+ subscribers?: ManifestField<SubscriberInfo>;
108
+ queues?: ManifestField<QueueInfo>;
109
+ topics?: ManifestField<TopicInfo>;
110
+ }
111
+ //# sourceMappingURL=index.d.ts.map
112
+ //#endregion
113
+ export { CronInfo, FunctionInfo, Manifest, ManifestField, QueueInfo, RouteInfo, SubscriberInfo, TopicInfo, flattenManifestField };
114
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;AAwBA;;;;;;AAEW;AAGX;;;;;AAEI;AAQJ;AAgBA;AASA;AAWA;AAkBA;AASA;AAiBA;;;AACS,KAhGG,aAgGH,CAAA,CAAA,CAAA,GAAA,SA/FG,CA+FH,EAAA,GA9FN,QA8FM,CA9FG,MA8FH,CAAA,MAAA,EAAA,SA9F2B,CA8F3B,EAAA,CAAA,CAAA;;AACI,iBA5FG,oBA4FH,CAAA,CAAA,CAAA,CAAA,KAAA,EA3FL,aA2FK,CA3FS,CA2FT,CAAA,GAAA,SAAA,CAAA,EA1FV,CA0FU,EAAA;;AACJ,UAnFQ,SAAA,CAmFR;EAAa;EACqB,IAA5B,EAAA,MAAA;EAAa;EACK,MAAvB,EAAA,MAAA;EAAa;EACU,OAAvB,EAAA,MAAA;EAAa,OAAA,CAAA,EAAA,MAAA;;;;;;;;UAtEN,YAAA;;;;;;;;UASA,QAAA;;;;;;;;;;UAWA,cAAA;;;;;;;;;;;;;;;;;UAkBA,SAAA;;;;;;;;UASA,SAAA;;;;;;;;;;;;;;;;UAiBA,QAAA;UACR,cAAc;cACV,cAAc;UAClB,cAAc;gBACR,cAAc;WACnB,cAAc;WACd,cAAc"}
package/dist/index.mjs ADDED
@@ -0,0 +1,10 @@
1
+ //#region src/index.ts
2
+ /** Flatten a manifest field (array or partitioned) into a plain array. */
3
+ function flattenManifestField(field) {
4
+ if (!field) return [];
5
+ return Array.isArray(field) ? [...field] : Object.values(field).flat();
6
+ }
7
+
8
+ //#endregion
9
+ export { flattenManifestField };
10
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["field: ManifestField<T> | undefined"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * Deployment manifest types — the build output of `gkm build` that enumerates a\n * project's deployable units (routes, functions, crons, subscribers, queues)\n * with the metadata an infrastructure layer needs to provision them.\n *\n * `gkm build` writes a single TypeScript module per provider\n * (`<out>/manifest/aws.ts`) of the form:\n *\n * ```ts\n * export const manifest = { routes: [...], functions: [...], ... } as const;\n * export type Route = (typeof manifest.routes)[number];\n * // ...derived types\n * ```\n *\n * This is the dependency-free data contract shared between the producer\n * (`@geekmidas/cli`) and consumers (e.g. `@geekmidas/cloud/sst`'s `fromManifest`\n * integrators).\n */\n\n/**\n * A manifest field is either a flat list or, when the build is partitioned\n * (e.g. by authorizer), an object keyed by partition name. Readonly-tolerant so\n * the `as const` generated manifest assigns cleanly.\n */\nexport type ManifestField<T> =\n\t| readonly T[]\n\t| Readonly<Record<string, readonly T[]>>;\n\n/** Flatten a manifest field (array or partitioned) into a plain array. */\nexport function flattenManifestField<T>(\n\tfield: ManifestField<T> | undefined,\n): T[] {\n\tif (!field) return [];\n\treturn Array.isArray(field)\n\t\t? [...field]\n\t\t: Object.values(field as Record<string, readonly T[]>).flat();\n}\n\n/** A single HTTP route. */\nexport interface RouteInfo {\n\t/** Route path, e.g. `/users/{id}`. */\n\tpath: string;\n\t/** HTTP method, e.g. `GET`. */\n\tmethod: string;\n\t/** Bundled handler entrypoint. */\n\thandler: string;\n\ttimeout?: number;\n\tmemorySize?: number;\n\t/** Required environment variables (a trailing `?` marks an optional var). */\n\tenvironment?: readonly string[];\n\t/** Authorizer name: `none`, `iam`, or a declared authorizer. */\n\tauthorizer: string;\n}\n\n/** A standalone Lambda function. */\nexport interface FunctionInfo {\n\tname: string;\n\thandler: string;\n\ttimeout?: number;\n\tmemorySize?: number;\n\tenvironment?: readonly string[];\n}\n\n/** A scheduled (cron) function. */\nexport interface CronInfo {\n\tname: string;\n\thandler: string;\n\t/** Schedule expression, e.g. `rate(1 day)` or `cron(0 12 * * ? *)`. */\n\tschedule: string;\n\ttimeout?: number;\n\tmemorySize?: number;\n\tenvironment?: readonly string[];\n}\n\n/** An event subscriber function (topic/queue resolved by `transport`). */\nexport interface SubscriberInfo {\n\tname: string;\n\thandler: string;\n\tsubscribedEvents: readonly string[];\n\t/** Delivery transport — `topic` (SNS fan-out) or `queue` (SQS). */\n\ttransport?: 'topic' | 'queue';\n\t/** The {@link TopicInfo.name} this subscriber binds to (via `s.topic(topic)`). */\n\ttopic?: string;\n\ttimeout?: number;\n\tmemorySize?: number;\n\tenvironment?: readonly string[];\n}\n\n/**\n * A pub/sub topic — fan-out. A *resource* (no handler): it declares the event\n * contract; producers publish via the derived publisher and {@link SubscriberInfo}s\n * bind to it. Infra provisions an SNS topic.\n */\nexport interface TopicInfo {\n\tname: string;\n\t/** The event type names this topic carries. */\n\tevents: readonly string[];\n\t/** Whether the topic is FIFO. */\n\tfifo?: boolean;\n}\n\n/** A queue worker — a queue and its single consumer. */\nexport interface QueueInfo {\n\tname: string;\n\thandler: string;\n\t/** SQS event-source batch size. */\n\tbatchSize?: number;\n\t/** Whether the queue is FIFO. */\n\tfifo?: boolean;\n\ttimeout?: number;\n\tmemorySize?: number;\n\tenvironment?: readonly string[];\n}\n\n/**\n * The full deployment manifest — the shape of `export const manifest` in a\n * generated `manifest/<provider>.ts`. Each field is a {@link ManifestField}\n * (flat or partitioned).\n */\nexport interface Manifest {\n\troutes: ManifestField<RouteInfo>;\n\tfunctions?: ManifestField<FunctionInfo>;\n\tcrons?: ManifestField<CronInfo>;\n\tsubscribers?: ManifestField<SubscriberInfo>;\n\tqueues?: ManifestField<QueueInfo>;\n\ttopics?: ManifestField<TopicInfo>;\n}\n"],"mappings":";;AA6BA,SAAgB,qBACfA,OACM;AACN,MAAK,MAAO,QAAO,CAAE;AACrB,QAAO,MAAM,QAAQ,MAAM,GACxB,CAAC,GAAG,KAAM,IACV,OAAO,OAAO,MAAsC,CAAC,MAAM;AAC9D"}
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@geekmidas/manifest",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "import": {
8
+ "types": "./dist/index.d.mts",
9
+ "default": "./dist/index.mjs"
10
+ },
11
+ "require": {
12
+ "types": "./dist/index.d.cts",
13
+ "default": "./dist/index.cjs"
14
+ }
15
+ }
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/geekmidas/toolbox"
20
+ },
21
+ "publishConfig": {
22
+ "registry": "https://registry.npmjs.org/",
23
+ "access": "public"
24
+ }
25
+ }
package/src/index.ts ADDED
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Deployment manifest types — the build output of `gkm build` that enumerates a
3
+ * project's deployable units (routes, functions, crons, subscribers, queues)
4
+ * with the metadata an infrastructure layer needs to provision them.
5
+ *
6
+ * `gkm build` writes a single TypeScript module per provider
7
+ * (`<out>/manifest/aws.ts`) of the form:
8
+ *
9
+ * ```ts
10
+ * export const manifest = { routes: [...], functions: [...], ... } as const;
11
+ * export type Route = (typeof manifest.routes)[number];
12
+ * // ...derived types
13
+ * ```
14
+ *
15
+ * This is the dependency-free data contract shared between the producer
16
+ * (`@geekmidas/cli`) and consumers (e.g. `@geekmidas/cloud/sst`'s `fromManifest`
17
+ * integrators).
18
+ */
19
+
20
+ /**
21
+ * A manifest field is either a flat list or, when the build is partitioned
22
+ * (e.g. by authorizer), an object keyed by partition name. Readonly-tolerant so
23
+ * the `as const` generated manifest assigns cleanly.
24
+ */
25
+ export type ManifestField<T> =
26
+ | readonly T[]
27
+ | Readonly<Record<string, readonly T[]>>;
28
+
29
+ /** Flatten a manifest field (array or partitioned) into a plain array. */
30
+ export function flattenManifestField<T>(
31
+ field: ManifestField<T> | undefined,
32
+ ): T[] {
33
+ if (!field) return [];
34
+ return Array.isArray(field)
35
+ ? [...field]
36
+ : Object.values(field as Record<string, readonly T[]>).flat();
37
+ }
38
+
39
+ /** A single HTTP route. */
40
+ export interface RouteInfo {
41
+ /** Route path, e.g. `/users/{id}`. */
42
+ path: string;
43
+ /** HTTP method, e.g. `GET`. */
44
+ method: string;
45
+ /** Bundled handler entrypoint. */
46
+ handler: string;
47
+ timeout?: number;
48
+ memorySize?: number;
49
+ /** Required environment variables (a trailing `?` marks an optional var). */
50
+ environment?: readonly string[];
51
+ /** Authorizer name: `none`, `iam`, or a declared authorizer. */
52
+ authorizer: string;
53
+ }
54
+
55
+ /** A standalone Lambda function. */
56
+ export interface FunctionInfo {
57
+ name: string;
58
+ handler: string;
59
+ timeout?: number;
60
+ memorySize?: number;
61
+ environment?: readonly string[];
62
+ }
63
+
64
+ /** A scheduled (cron) function. */
65
+ export interface CronInfo {
66
+ name: string;
67
+ handler: string;
68
+ /** Schedule expression, e.g. `rate(1 day)` or `cron(0 12 * * ? *)`. */
69
+ schedule: string;
70
+ timeout?: number;
71
+ memorySize?: number;
72
+ environment?: readonly string[];
73
+ }
74
+
75
+ /** An event subscriber function (topic/queue resolved by `transport`). */
76
+ export interface SubscriberInfo {
77
+ name: string;
78
+ handler: string;
79
+ subscribedEvents: readonly string[];
80
+ /** Delivery transport — `topic` (SNS fan-out) or `queue` (SQS). */
81
+ transport?: 'topic' | 'queue';
82
+ /** The {@link TopicInfo.name} this subscriber binds to (via `s.topic(topic)`). */
83
+ topic?: string;
84
+ timeout?: number;
85
+ memorySize?: number;
86
+ environment?: readonly string[];
87
+ }
88
+
89
+ /**
90
+ * A pub/sub topic — fan-out. A *resource* (no handler): it declares the event
91
+ * contract; producers publish via the derived publisher and {@link SubscriberInfo}s
92
+ * bind to it. Infra provisions an SNS topic.
93
+ */
94
+ export interface TopicInfo {
95
+ name: string;
96
+ /** The event type names this topic carries. */
97
+ events: readonly string[];
98
+ /** Whether the topic is FIFO. */
99
+ fifo?: boolean;
100
+ }
101
+
102
+ /** A queue worker — a queue and its single consumer. */
103
+ export interface QueueInfo {
104
+ name: string;
105
+ handler: string;
106
+ /** SQS event-source batch size. */
107
+ batchSize?: number;
108
+ /** Whether the queue is FIFO. */
109
+ fifo?: boolean;
110
+ timeout?: number;
111
+ memorySize?: number;
112
+ environment?: readonly string[];
113
+ }
114
+
115
+ /**
116
+ * The full deployment manifest — the shape of `export const manifest` in a
117
+ * generated `manifest/<provider>.ts`. Each field is a {@link ManifestField}
118
+ * (flat or partitioned).
119
+ */
120
+ export interface Manifest {
121
+ routes: ManifestField<RouteInfo>;
122
+ functions?: ManifestField<FunctionInfo>;
123
+ crons?: ManifestField<CronInfo>;
124
+ subscribers?: ManifestField<SubscriberInfo>;
125
+ queues?: ManifestField<QueueInfo>;
126
+ topics?: ManifestField<TopicInfo>;
127
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "./src",
6
+ "composite": true
7
+ },
8
+ "include": ["src/**/*"]
9
+ }
@@ -0,0 +1 @@
1
+ {"fileNames":["../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/index.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/crypto.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@24.9.1/node_modules/@types/node/index.d.ts"],"fileIdsList":[[67,119,120,122,139,140],[67,121,122,139,140],[122,139,140],[67,122,127,139,140,157],[67,122,123,128,133,139,140,142,154,165],[67,122,123,124,133,139,140,142],[67,122,139,140],[67,122,125,139,140,166],[67,122,126,127,134,139,140,143],[67,122,127,139,140,154,162],[67,122,128,130,133,139,140,142],[67,121,122,129,139,140],[67,122,130,131,139,140],[67,122,132,133,139,140],[67,121,122,133,139,140],[67,122,133,134,135,139,140,154,165],[67,122,133,134,135,139,140,149,154,157],[67,114,122,130,133,136,139,140,142,154,165],[67,122,133,134,136,137,139,140,142,154,162,165],[67,122,136,138,139,140,154,162,165],[65,66,67,68,69,70,71,72,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171],[67,122,133,139,140],[67,122,139,140,141,165],[67,122,130,133,139,140,142,154],[67,122,139,140,143],[67,122,139,140,144],[67,121,122,139,140,145],[67,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171],[67,122,139,140,147],[67,122,139,140,148],[67,122,133,139,140,149,150],[67,122,139,140,149,151,166,168],[67,122,134,139,140],[67,122,133,139,140,154,155,157],[67,122,139,140,156,157],[67,122,139,140,154,155],[67,122,139,140,157],[67,122,139,140,158],[67,119,122,139,140,154,159],[67,122,133,139,140,160,161],[67,122,139,140,160,161],[67,122,127,139,140,142,154,162],[67,122,139,140,163],[67,122,139,140,142,164],[67,122,136,139,140,148,165],[67,122,127,139,140,166],[67,122,139,140,154,167],[67,122,139,140,141,168],[67,122,139,140,169],[67,122,127,139,140],[67,114,122,139,140],[67,122,139,140,170],[67,114,122,133,135,139,140,145,154,157,165,167,168,170],[67,122,139,140,154,171],[67,80,83,86,87,122,139,140,165],[67,83,122,139,140,154,165],[67,83,87,122,139,140,165],[67,122,139,140,154],[67,77,122,139,140],[67,81,122,139,140],[67,79,80,83,122,139,140,165],[67,122,139,140,142,162],[67,122,139,140,172],[67,77,122,139,140,172],[67,79,83,122,139,140,142,165],[67,74,75,76,78,82,122,133,139,140,154,165],[67,83,91,99,122,139,140],[67,75,81,122,139,140],[67,83,108,109,122,139,140],[67,75,78,83,122,139,140,157,165,172],[67,83,122,139,140],[67,79,83,122,139,140,165],[67,74,122,139,140],[67,77,78,79,81,82,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,109,110,111,112,113,122,139,140],[67,83,101,104,122,130,139,140],[67,83,91,92,93,122,139,140],[67,81,83,92,94,122,139,140],[67,82,122,139,140],[67,75,77,83,122,139,140],[67,83,87,92,94,122,139,140],[67,87,122,139,140],[67,81,83,86,122,139,140,165],[67,75,79,83,91,122,139,140],[67,83,101,122,139,140],[67,94,122,139,140],[67,77,83,108,122,139,140,157,170,172]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"8359eca8b2800e99dcf84cd66238a52a480c1f39aea3761c3df434976f0e800b",{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b21e13ed07d0df176ae31d6b7f01f7b17d66dbeb489c0d31d00de2ca14883da","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f929f0b6b3421a2d34344b0f421f45aeb2c84ad365ebf29d04312023b3accc58","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8cf132379078d0974a59df26069689a2d33c7dc826b5be56231841cb2f32e58","impliedFormat":1},{"version":"fbf413fc617837453c878a9174a1f1b383616857a3f8366bc41cf30df4aea7d5","impliedFormat":1},{"version":"148c73ec11318850f571172ceae3e55ce479d850fe18ec8eae0abd99d9f6c319","impliedFormat":1},{"version":"230bdc111d7578276e4a3bb9d075d85c78c6b68f428c3a9935e2eaa10f4ae1f5","impliedFormat":1},{"version":"e8aabbee5e7b9101b03bb4222607d57f38859b8115a8050a4eb91b4ee43a3a73","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"c0bb1b65757c72bbf8ddf7eaa532223bacf58041ff16c883e76f45506596e925","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"145dcf25fd4967c610c53d93d7bc4dce8fbb1b6dd7935362472d4ae49363c7ba","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"9043daec15206650fa119bad6b8d70136021ea7d52673a71f79a87a42ee38d44","affectsGlobalScope":true,"impliedFormat":1},{"version":"150d28d98d2f6aa7053ee0eb7de5a1c2ab23a6dbcc92eed0a630b2f572a1a5ec","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"28e3631087ecef78fef8efdb21d4d2509f776ef6f0d660ff605b5ee6a22ebb8c","impliedFormat":1},{"version":"b33b74b97952d9bf4fbd2951dcfbb5136656ddb310ce1c84518aaa77dbca9992","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b306cd4282bbb54d4a6bb23cfb7a271160983dfc38c67b5a132504cfcc34896","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"450172a56b944c2d83f45cc11c9a388ea967cd301a21202aa0a23c34c7506a18","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"72f8936aebf0c4a1adab767b97d34ba7d3a308afcf76de4417b9c16fb92ed548","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"04aa8fb012abeecf5666b013c59ba01dca5aa0c28173cb5385bc88d4adeb8d64","affectsGlobalScope":true,"impliedFormat":1},{"version":"3585d6891e9ea18e07d0755a6d90d71331558ba5dc5561933553209f886db106","affectsGlobalScope":true,"impliedFormat":1},{"version":"86be71cbb0593468644932a6eb96d527cfa600cecfc0b698af5f52e51804451d","impliedFormat":1},{"version":"84dd6b0fd2505135692935599d6606f50a421389e8d4535194bcded307ee5cf2","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"db19ea066fdc5f97df3f769e582ae3000380ab7942e266654bdb1a4650d19eaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a034894bf28c220a331c7a0229d33564803abe2ac1b9a5feee91b6b9b6e88ea","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1}],"root":[64],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":99,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[119,1],[120,1],[121,2],[67,3],[122,4],[123,5],[124,6],[65,7],[125,8],[126,9],[127,10],[128,11],[129,12],[130,13],[131,13],[132,14],[133,15],[134,16],[135,17],[68,7],[66,7],[136,18],[137,19],[138,20],[172,21],[139,22],[140,7],[141,23],[142,24],[143,25],[144,26],[145,27],[146,28],[147,29],[148,30],[149,31],[150,31],[151,32],[152,7],[153,33],[154,34],[156,35],[155,36],[157,37],[158,38],[159,39],[160,40],[161,41],[162,42],[163,43],[164,44],[165,45],[166,46],[167,47],[168,48],[169,49],[69,7],[70,50],[71,7],[72,7],[115,51],[116,52],[117,7],[118,37],[170,53],[171,54],[73,7],[62,7],[63,7],[12,7],[11,7],[2,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7],[19,7],[20,7],[3,7],[21,7],[22,7],[4,7],[23,7],[27,7],[24,7],[25,7],[26,7],[28,7],[29,7],[30,7],[5,7],[31,7],[32,7],[33,7],[34,7],[6,7],[38,7],[35,7],[36,7],[37,7],[39,7],[7,7],[40,7],[45,7],[46,7],[41,7],[42,7],[43,7],[44,7],[8,7],[50,7],[47,7],[48,7],[49,7],[51,7],[9,7],[52,7],[53,7],[54,7],[56,7],[55,7],[57,7],[58,7],[10,7],[59,7],[1,7],[60,7],[61,7],[91,55],[103,56],[89,57],[104,58],[113,59],[80,60],[81,61],[79,62],[112,63],[107,64],[111,65],[83,66],[100,67],[82,68],[110,69],[77,70],[78,64],[84,71],[85,7],[90,72],[88,71],[75,73],[114,74],[105,75],[94,76],[93,71],[95,77],[98,78],[92,79],[96,80],[108,63],[86,81],[87,82],[99,83],[76,58],[102,84],[101,71],[97,85],[106,7],[74,7],[109,86],[64,7]],"affectedFilesPendingEmit":[[64,51]],"emitSignatures":[64],"version":"5.8.2"}
@@ -0,0 +1,3 @@
1
+ import { defineConfig } from 'tsdown';
2
+
3
+ export default defineConfig({});