@alchemy.run/kubernetes 0.0.0 → 2.0.0-beta.85
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/LICENSE +201 -0
- package/README.md +41 -4
- package/lib/BuiltinAdapters.d.ts +43 -0
- package/lib/BuiltinAdapters.d.ts.map +1 -0
- package/lib/BuiltinAdapters.js +129 -0
- package/lib/BuiltinAdapters.js.map +1 -0
- package/lib/Client.d.ts +97 -0
- package/lib/Client.d.ts.map +1 -0
- package/lib/Client.js +312 -0
- package/lib/Client.js.map +1 -0
- package/lib/ClusterAdapter.d.ts +324 -0
- package/lib/ClusterAdapter.d.ts.map +1 -0
- package/lib/ClusterAdapter.js +65 -0
- package/lib/ClusterAdapter.js.map +1 -0
- package/lib/Connection.d.ts +210 -0
- package/lib/Connection.d.ts.map +1 -0
- package/lib/Connection.js +58 -0
- package/lib/Connection.js.map +1 -0
- package/lib/Deployment.d.ts +401 -0
- package/lib/Deployment.d.ts.map +1 -0
- package/lib/Deployment.js +550 -0
- package/lib/Deployment.js.map +1 -0
- package/lib/HelmChart.d.ts +147 -0
- package/lib/HelmChart.d.ts.map +1 -0
- package/lib/HelmChart.js +248 -0
- package/lib/HelmChart.js.map +1 -0
- package/lib/Job.d.ts +333 -0
- package/lib/Job.d.ts.map +1 -0
- package/lib/Job.js +443 -0
- package/lib/Job.js.map +1 -0
- package/lib/LocalCluster.d.ts +243 -0
- package/lib/LocalCluster.d.ts.map +1 -0
- package/lib/LocalCluster.js +359 -0
- package/lib/LocalCluster.js.map +1 -0
- package/lib/Manifest.d.ts +157 -0
- package/lib/Manifest.d.ts.map +1 -0
- package/lib/Manifest.js +205 -0
- package/lib/Manifest.js.map +1 -0
- package/lib/Objects.d.ts +60 -0
- package/lib/Objects.d.ts.map +1 -0
- package/lib/Objects.js +132 -0
- package/lib/Objects.js.map +1 -0
- package/lib/Providers.d.ts +24 -0
- package/lib/Providers.d.ts.map +1 -0
- package/lib/Providers.js +36 -0
- package/lib/Providers.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/declared.d.ts +19 -0
- package/lib/internal/declared.d.ts.map +1 -0
- package/lib/internal/declared.js +435 -0
- package/lib/internal/declared.js.map +1 -0
- package/lib/internal/helm.d.ts +65 -0
- package/lib/internal/helm.d.ts.map +1 -0
- package/lib/internal/helm.js +173 -0
- package/lib/internal/helm.js.map +1 -0
- package/lib/internal/kind.d.ts +17 -0
- package/lib/internal/kind.d.ts.map +1 -0
- package/lib/internal/kind.js +31 -0
- package/lib/internal/kind.js.map +1 -0
- package/lib/internal/kubeconfig.d.ts +79 -0
- package/lib/internal/kubeconfig.d.ts.map +1 -0
- package/lib/internal/kubeconfig.js +222 -0
- package/lib/internal/kubeconfig.js.map +1 -0
- package/lib/internal/registry.d.ts +44 -0
- package/lib/internal/registry.d.ts.map +1 -0
- package/lib/internal/registry.js +72 -0
- package/lib/internal/registry.js.map +1 -0
- package/lib/internal/workload.d.ts +127 -0
- package/lib/internal/workload.d.ts.map +1 -0
- package/lib/internal/workload.js +411 -0
- package/lib/internal/workload.js.map +1 -0
- package/package.json +55 -3
- package/src/BuiltinAdapters.ts +202 -0
- package/src/Client.ts +496 -0
- package/src/ClusterAdapter.ts +373 -0
- package/src/Connection.ts +234 -0
- package/src/Deployment.ts +872 -0
- package/src/HelmChart.ts +388 -0
- package/src/Job.ts +709 -0
- package/src/LocalCluster.ts +631 -0
- package/src/Manifest.ts +301 -0
- package/src/Objects.ts +213 -0
- package/src/Providers.ts +52 -0
- package/src/globals.d.ts +2 -0
- package/src/index.ts +9 -0
- package/src/internal/declared.ts +471 -0
- package/src/internal/helm.ts +245 -0
- package/src/internal/kind.ts +43 -0
- package/src/internal/kubeconfig.ts +364 -0
- package/src/internal/registry.ts +108 -0
- package/src/internal/workload.ts +504 -0
package/lib/Job.d.ts
ADDED
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import type { DockerfileBuildOptions } from "@alchemy.run/docker/ImageSource";
|
|
2
|
+
import type * as Bundle from "alchemy/Bundle/Bundle";
|
|
3
|
+
import { Platform, type PlatformProps, type PlatformServices } from "alchemy/Platform";
|
|
4
|
+
import * as Provider from "alchemy/Provider";
|
|
5
|
+
import { Resource } from "alchemy/Resource";
|
|
6
|
+
import type { HostRuntimeContext } from "alchemy/Runtime/Process";
|
|
7
|
+
import { RuntimeContext } from "alchemy/RuntimeContext";
|
|
8
|
+
import { Stack } from "alchemy/Stack";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import type { Scope } from "effect/Scope";
|
|
11
|
+
import { type IdentityState, type RegistryState, type WorkloadBindingContract, type WorkloadIdentityOptions, type WorkloadImageSource, type WorkloadServices } from "./ClusterAdapter.ts";
|
|
12
|
+
import { type ClusterLike, type Connection } from "./Connection.ts";
|
|
13
|
+
import type { KubernetesObjectRef } from "./Objects.ts";
|
|
14
|
+
import type { Providers } from "./Providers.ts";
|
|
15
|
+
export declare const isJob: (value: any) => value is Job;
|
|
16
|
+
export interface JobPropsBase extends PlatformProps {
|
|
17
|
+
/**
|
|
18
|
+
* Target cluster the job runs on: a cluster resource
|
|
19
|
+
* (`Kubernetes.LocalCluster`, `AWS.EKS.Cluster`), a
|
|
20
|
+
* `Kubernetes.KubeConfig(...)`, or a raw `Kubernetes.Connection`. The
|
|
21
|
+
* connection supplies authentication and the registry `main` / `context`
|
|
22
|
+
* images are pushed to.
|
|
23
|
+
*/
|
|
24
|
+
cluster: ClusterLike;
|
|
25
|
+
/**
|
|
26
|
+
* Base name for the generated Job / ServiceAccount. If omitted, a
|
|
27
|
+
* deterministic name is derived from the stack, stage, and logical id.
|
|
28
|
+
*/
|
|
29
|
+
name?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Kubernetes namespace to run in. The namespace must already exist.
|
|
32
|
+
* @default "default"
|
|
33
|
+
*/
|
|
34
|
+
namespace?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Number of retries before the Job is marked failed (Kubernetes
|
|
37
|
+
* `backoffLimit`).
|
|
38
|
+
*/
|
|
39
|
+
backoffLimit?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Cron schedule (standard 5-field cron, e.g. `"0 3 * * *"`). When set, a
|
|
42
|
+
* Kubernetes `CronJob` is synthesized instead of a plain `Job`.
|
|
43
|
+
*/
|
|
44
|
+
schedule?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Restart policy for the job's pods.
|
|
47
|
+
* @default "Never"
|
|
48
|
+
*/
|
|
49
|
+
restartPolicy?: "Never" | "OnFailure";
|
|
50
|
+
/**
|
|
51
|
+
* Seconds after completion before the finished Job is garbage-collected
|
|
52
|
+
* (Kubernetes `ttlSecondsAfterFinished`).
|
|
53
|
+
*/
|
|
54
|
+
ttlSecondsAfterFinished?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Container entrypoint override (Kubernetes `command`). Mostly useful with
|
|
57
|
+
* `image` / `context` sources.
|
|
58
|
+
*/
|
|
59
|
+
command?: string[];
|
|
60
|
+
/**
|
|
61
|
+
* Container arguments (Kubernetes `args`).
|
|
62
|
+
*/
|
|
63
|
+
args?: string[];
|
|
64
|
+
/**
|
|
65
|
+
* Container CPU/memory requests + limits (Kubernetes resource quantities).
|
|
66
|
+
*/
|
|
67
|
+
resources?: {
|
|
68
|
+
requests?: {
|
|
69
|
+
cpu?: string;
|
|
70
|
+
memory?: string;
|
|
71
|
+
};
|
|
72
|
+
limits?: {
|
|
73
|
+
cpu?: string;
|
|
74
|
+
memory?: string;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Additional environment variables for the container.
|
|
79
|
+
*/
|
|
80
|
+
env?: Record<string, any>;
|
|
81
|
+
/**
|
|
82
|
+
* Container image build architecture.
|
|
83
|
+
* @default the connection's `architecture`, else "amd64"
|
|
84
|
+
*/
|
|
85
|
+
architecture?: "amd64" | "arm64";
|
|
86
|
+
/**
|
|
87
|
+
* Deep-partial Kubernetes Pod template merged into the synthesized
|
|
88
|
+
* template (objects merge recursively; arrays and primitives replace) —
|
|
89
|
+
* a literal object in the shape of `PodTemplateSpec`, e.g.
|
|
90
|
+
* `{ spec: { tolerations: [...], nodeSelector: {...} } }`.
|
|
91
|
+
*/
|
|
92
|
+
podTemplate?: Record<string, unknown>;
|
|
93
|
+
/**
|
|
94
|
+
* Cloud-specific workload-identity options, consumed by the cluster
|
|
95
|
+
* platform's identity adapter (on EKS: `{ managedPolicyArns: [...] }`
|
|
96
|
+
* attaches extra managed policies to the generated pod-identity role; on
|
|
97
|
+
* GKE: `{ gcpServiceAccount }` runs the pods as an existing Google
|
|
98
|
+
* service account instead of the ServiceAccount's own principal).
|
|
99
|
+
*/
|
|
100
|
+
identity?: WorkloadIdentityOptions;
|
|
101
|
+
/**
|
|
102
|
+
* Job / pod labels, merged over the generated `app.kubernetes.io/name`
|
|
103
|
+
* label.
|
|
104
|
+
*/
|
|
105
|
+
labels?: Record<string, string>;
|
|
106
|
+
/**
|
|
107
|
+
* User-defined tags applied to workload-owned cloud resources (identity
|
|
108
|
+
* roles, image repositories).
|
|
109
|
+
*/
|
|
110
|
+
tags?: Record<string, string>;
|
|
111
|
+
}
|
|
112
|
+
/** Bundle an inline Effect program (`main`) into a generated image. */
|
|
113
|
+
export interface BundledJobProps extends JobPropsBase {
|
|
114
|
+
/**
|
|
115
|
+
* Module entrypoint for the bundled program. This should typically be
|
|
116
|
+
* `import.meta.url` from an inline Effect program.
|
|
117
|
+
*/
|
|
118
|
+
main: string;
|
|
119
|
+
/**
|
|
120
|
+
* Environment image used as the generated Dockerfile's `FROM`; must be
|
|
121
|
+
* able to run the bun runtime.
|
|
122
|
+
* @default "oven/bun:1"
|
|
123
|
+
*/
|
|
124
|
+
image?: string;
|
|
125
|
+
/** Named export to load from `main`. @default "default" */
|
|
126
|
+
handler?: string;
|
|
127
|
+
/** Bundler configuration for the entrypoint. */
|
|
128
|
+
build?: Bundle.BundleConfig;
|
|
129
|
+
/** Environment Dockerfile (path or inline content). */
|
|
130
|
+
dockerfile?: WorkloadImageSource["dockerfile"];
|
|
131
|
+
/** Build context for a path {@link dockerfile} environment. */
|
|
132
|
+
context?: string;
|
|
133
|
+
}
|
|
134
|
+
/** Build the user's own Dockerfile (`context` + optional `dockerfile` path). */
|
|
135
|
+
export interface DockerfileJobProps extends JobPropsBase, DockerfileBuildOptions {
|
|
136
|
+
/** Docker build context directory. */
|
|
137
|
+
context?: string;
|
|
138
|
+
/**
|
|
139
|
+
* Path to the Dockerfile (relative to the cwd), or inline content.
|
|
140
|
+
* @default `${context}/Dockerfile`
|
|
141
|
+
*/
|
|
142
|
+
dockerfile?: WorkloadImageSource["dockerfile"];
|
|
143
|
+
}
|
|
144
|
+
/** Run a pre-built registry image. */
|
|
145
|
+
export interface ImageJobProps extends JobPropsBase {
|
|
146
|
+
/**
|
|
147
|
+
* A pre-built image reference, e.g. `ghcr.io/acme/migrator:v3`, pulled
|
|
148
|
+
* by the nodes as written. EKS clusters mirror it into ECR first.
|
|
149
|
+
*/
|
|
150
|
+
image: string;
|
|
151
|
+
}
|
|
152
|
+
export type JobProps = BundledJobProps | DockerfileJobProps | ImageJobProps;
|
|
153
|
+
export interface Job extends Resource<"Kubernetes.Job", JobProps, {
|
|
154
|
+
/** The connection of the cluster the job runs on. */
|
|
155
|
+
connection: Connection;
|
|
156
|
+
/** The Kubernetes namespace the job's objects live in. */
|
|
157
|
+
namespace: string;
|
|
158
|
+
/** The Kubernetes kind synthesized for the workload (`Job`, or `CronJob` when `schedule` is set). */
|
|
159
|
+
kind: "Job" | "CronJob";
|
|
160
|
+
/** The name of the Kubernetes Job/CronJob object. */
|
|
161
|
+
jobName: string;
|
|
162
|
+
/** The cron schedule, when the workload is a CronJob. */
|
|
163
|
+
schedule: string | undefined;
|
|
164
|
+
/** The name of the service account the pods run as. */
|
|
165
|
+
serviceAccountName: string;
|
|
166
|
+
/** The URI of the container image the job runs. */
|
|
167
|
+
imageUri: string;
|
|
168
|
+
/**
|
|
169
|
+
* Workload-identity state provisioned by the cluster platform's
|
|
170
|
+
* adapter (on EKS: the pod-identity role + association; on GKE: the
|
|
171
|
+
* Workload Identity principal and the IAM grants applied to it).
|
|
172
|
+
*/
|
|
173
|
+
identity: IdentityState | undefined;
|
|
174
|
+
/**
|
|
175
|
+
* Image-registry state provisioned by the cluster platform's adapter
|
|
176
|
+
* (on EKS: the ECR repository).
|
|
177
|
+
*/
|
|
178
|
+
registry: RegistryState | undefined;
|
|
179
|
+
/** References to the Kubernetes objects created for the job. */
|
|
180
|
+
kubernetesObjects: KubernetesObjectRef[];
|
|
181
|
+
/** The content hash of the container image source. */
|
|
182
|
+
code: {
|
|
183
|
+
hash: string;
|
|
184
|
+
};
|
|
185
|
+
}, WorkloadBindingContract, Providers> {
|
|
186
|
+
}
|
|
187
|
+
export type JobServices = WorkloadServices;
|
|
188
|
+
/**
|
|
189
|
+
* The impl shape: `{ run, ...rpc }`. `run` executes to completion inside
|
|
190
|
+
* the pod; the process exits when it returns.
|
|
191
|
+
*/
|
|
192
|
+
export type JobMain<InitServices = never> = void | {
|
|
193
|
+
run?: Effect.Effect<void, never, InitServices | PlatformServices | RuntimeContext | Scope>;
|
|
194
|
+
};
|
|
195
|
+
export type JobShape = JobMain<JobServices>;
|
|
196
|
+
export interface JobRuntimeContext extends HostRuntimeContext {
|
|
197
|
+
readonly Type: "Kubernetes.Job";
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Run-to-completion work on any Kubernetes cluster, as a container image
|
|
201
|
+
* or an Effect program.
|
|
202
|
+
*
|
|
203
|
+
* `Job` provisions a Kubernetes `Job` (or `CronJob` when `schedule` is
|
|
204
|
+
* set) via server-side apply and a ServiceAccount, plus — through the
|
|
205
|
+
* target cluster's platform adapter — workload identity and a container
|
|
206
|
+
* image from exactly one of three sources flat on props: `main` (bundle an
|
|
207
|
+
* inline Effect program whose impl returns `{ run }`), `context` (build
|
|
208
|
+
* your own Dockerfile), or `image` (a pre-built registry reference).
|
|
209
|
+
* `main` and `context` images are built on the deploying machine and
|
|
210
|
+
* pushed to the connection's registry (`Kubernetes.LocalCluster` includes
|
|
211
|
+
* one; EKS uses ECR; GKE uses Artifact Registry). On `AWS.EKS.Cluster`
|
|
212
|
+
* targets, bindings attach IAM policy statements to a generated
|
|
213
|
+
* pod-identity role; on `GCP.Container.Cluster` targets, GCP bindings grant
|
|
214
|
+
* their IAM roles to the Kubernetes ServiceAccount's Workload Identity
|
|
215
|
+
* Federation principal — exactly like `Kubernetes.Deployment`.
|
|
216
|
+
* ### Creating a Job
|
|
217
|
+
* **Example:** Remote image (external — no Effect runtime in the container)
|
|
218
|
+
* ```typescript
|
|
219
|
+
* const migrate = yield* Kubernetes.Job("DbMigrate", {
|
|
220
|
+
* cluster,
|
|
221
|
+
* image: "ghcr.io/acme/migrator:v3",
|
|
222
|
+
* backoffLimit: 2,
|
|
223
|
+
* });
|
|
224
|
+
* ```
|
|
225
|
+
*
|
|
226
|
+
* **Example:** Your own Dockerfile with build args and secrets
|
|
227
|
+
* ```typescript
|
|
228
|
+
* // Dockerfile:
|
|
229
|
+
* // ARG NODE_ENV
|
|
230
|
+
* // RUN --mount=type=secret,id=NPM_TOKEN,env=NPM_TOKEN npm ci
|
|
231
|
+
* const migrate = yield* Kubernetes.Job("DbMigrate", {
|
|
232
|
+
* cluster,
|
|
233
|
+
* context: "./migrator",
|
|
234
|
+
* build: {
|
|
235
|
+
* args: { NODE_ENV: "production" },
|
|
236
|
+
* // Mounted only into the RUN step that asks for it; never in the image.
|
|
237
|
+
* secrets: { NPM_TOKEN: Config.Redacted("NPM_TOKEN") },
|
|
238
|
+
* },
|
|
239
|
+
* backoffLimit: 2,
|
|
240
|
+
* });
|
|
241
|
+
* ```
|
|
242
|
+
*
|
|
243
|
+
* **Example:** Inline Effect program
|
|
244
|
+
* ```typescript
|
|
245
|
+
* const cluster = yield* Kubernetes.LocalCluster("Cluster", {
|
|
246
|
+
* name: "alchemy",
|
|
247
|
+
* });
|
|
248
|
+
*
|
|
249
|
+
* const hello = yield* Kubernetes.Job(
|
|
250
|
+
* "Hello",
|
|
251
|
+
* { cluster, main: import.meta.url, backoffLimit: 2 },
|
|
252
|
+
* Effect.gen(function* () {
|
|
253
|
+
* return {
|
|
254
|
+
* run: Effect.log("hello from a Job"),
|
|
255
|
+
* };
|
|
256
|
+
* }),
|
|
257
|
+
* );
|
|
258
|
+
* ```
|
|
259
|
+
*
|
|
260
|
+
* **Example:** Inline Effect program with a DynamoDB binding (EKS)
|
|
261
|
+
* ```typescript
|
|
262
|
+
* const seed = yield* Kubernetes.Job(
|
|
263
|
+
* "SeedData",
|
|
264
|
+
* { cluster, main: import.meta.url },
|
|
265
|
+
* Effect.gen(function* () {
|
|
266
|
+
* const putItem = yield* AWS.DynamoDB.PutItem(table);
|
|
267
|
+
* return {
|
|
268
|
+
* run: Effect.gen(function* () {
|
|
269
|
+
* yield* putItem({ Item: { id: { S: "seed" } } });
|
|
270
|
+
* }),
|
|
271
|
+
* };
|
|
272
|
+
* }).pipe(Effect.provide(AWS.DynamoDB.PutItemHttp)),
|
|
273
|
+
* );
|
|
274
|
+
* ```
|
|
275
|
+
*
|
|
276
|
+
* **Example:** Tagged Effect program
|
|
277
|
+
* ```typescript
|
|
278
|
+
* export class Backfill extends Kubernetes.Job<Backfill, {
|
|
279
|
+
* progress: () => Effect.Effect<number>;
|
|
280
|
+
* }>()("Backfill") {}
|
|
281
|
+
*
|
|
282
|
+
* export default Backfill.make(
|
|
283
|
+
* { cluster, main: import.meta.url, backoffLimit: 1 },
|
|
284
|
+
* Effect.gen(function* () {
|
|
285
|
+
* return {
|
|
286
|
+
* run: Effect.gen(function* () { }),
|
|
287
|
+
* progress: () => Effect.succeed(0),
|
|
288
|
+
* };
|
|
289
|
+
* }),
|
|
290
|
+
* );
|
|
291
|
+
* ```
|
|
292
|
+
*
|
|
293
|
+
* ### Bundling & Tree-shaking
|
|
294
|
+
* `main` is bundled with rolldown at deploy time. Unused code is
|
|
295
|
+
* tree-shaken. `effect`, alchemy, and `@distilled.cloud` are marked
|
|
296
|
+
* pure so unused parts prune more aggressively. Your app is not
|
|
297
|
+
* marked pure.
|
|
298
|
+
*
|
|
299
|
+
* **Example:** Mark additional packages as pure
|
|
300
|
+
* Only list packages with no top-level side effects.
|
|
301
|
+
* ```typescript
|
|
302
|
+
* {
|
|
303
|
+
* main: import.meta.url,
|
|
304
|
+
* build: {
|
|
305
|
+
* pure: { packages: ["my-lib", "@my-scope/*"] },
|
|
306
|
+
* },
|
|
307
|
+
* }
|
|
308
|
+
* ```
|
|
309
|
+
*
|
|
310
|
+
* **Example:** Turn it off
|
|
311
|
+
* ```typescript
|
|
312
|
+
* {
|
|
313
|
+
* main: import.meta.url,
|
|
314
|
+
* build: { pure: false },
|
|
315
|
+
* }
|
|
316
|
+
* ```
|
|
317
|
+
*
|
|
318
|
+
* ### Scheduling
|
|
319
|
+
* **Example:** Nightly CronJob
|
|
320
|
+
* ```typescript
|
|
321
|
+
* const nightly = yield* Kubernetes.Job("NightlyBackfill", {
|
|
322
|
+
* cluster,
|
|
323
|
+
* main: import.meta.url,
|
|
324
|
+
* schedule: "0 3 * * *",
|
|
325
|
+
* });
|
|
326
|
+
* ```
|
|
327
|
+
*
|
|
328
|
+
* @resource
|
|
329
|
+
* @product Workloads
|
|
330
|
+
*/
|
|
331
|
+
export declare const Job: Platform<Job, JobServices, JobShape, JobRuntimeContext>;
|
|
332
|
+
export declare const JobProvider: () => import("effect/Layer").Layer<Provider.Provider<Job>, never, import("alchemy/AlchemyContext").AlchemyContext | import("@alchemy.run/docker/Docker").Docker | import("effect/FileSystem").FileSystem | import("effect/Path").Path | Stack | import("alchemy/Stage").Stage>;
|
|
333
|
+
//# sourceMappingURL=Job.d.ts.map
|
package/lib/Job.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
|