@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 +88 -0
- package/dist/index.cjs +11 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +114 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +114 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +10 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +25 -0
- package/src/index.ts +127 -0
- package/tsconfig.json +9 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/tsdown.config.ts +3 -0
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"}
|
package/dist/index.d.cts
ADDED
|
@@ -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"}
|
package/dist/index.d.mts
ADDED
|
@@ -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 @@
|
|
|
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"}
|
package/tsdown.config.ts
ADDED