@sapiom/sandbox 0.7.0 → 0.8.1

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.
@@ -2,9 +2,42 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SapiomSandbox = void 0;
4
4
  const fetch_1 = require("@sapiom/fetch");
5
+ const multipart_js_1 = require("./multipart.js");
5
6
  const DEFAULT_BASE_URL = "https://blaxel.services.sapiom.ai";
6
7
  const DEFAULT_POLL_INTERVAL = 1000;
7
8
  const DEFAULT_EXEC_TIMEOUT = 60000;
9
+ /**
10
+ * Process statuses that mean the process has finished. The Blaxel sandbox-api
11
+ * reports a non-zero exit as `"failed"` (enum: running/completed/failed/killed/
12
+ * stopped), so polling must treat all of these — not just `"completed"` — as
13
+ * done. Any unrecognized status keeps polling and ultimately hits the exec
14
+ * timeout, which is a loud, debuggable failure rather than a silent wrong result.
15
+ */
16
+ const TERMINAL_PROCESS_STATUSES = new Set([
17
+ "completed",
18
+ "failed",
19
+ "killed",
20
+ "stopped",
21
+ ]);
22
+ function isProcessTerminal(status) {
23
+ return status !== undefined && TERMINAL_PROCESS_STATUSES.has(status);
24
+ }
25
+ /**
26
+ * Resolve a process exit code. A non-`"completed"` terminal status
27
+ * (failed/killed/stopped) that omits `exitCode` must not report success, so it
28
+ * defaults to a non-zero code.
29
+ */
30
+ function terminalExitCode(s) {
31
+ return s.exitCode ?? (s.status === "completed" ? 0 : 1);
32
+ }
33
+ function toExecResult(pid, s) {
34
+ return {
35
+ pid,
36
+ exitCode: terminalExitCode(s),
37
+ stdout: s.stdout ?? "",
38
+ stderr: s.stderr ?? "",
39
+ };
40
+ }
8
41
  function assertRelativePath(path) {
9
42
  const segments = path.split("/");
10
43
  for (const seg of segments) {
@@ -36,6 +69,9 @@ function fileUrl(baseUrl, sandboxName, absolutePath) {
36
69
  : absolutePath;
37
70
  return `${baseUrl}/v1/sandboxes/${encodeURIComponent(sandboxName)}/filesystem/${encodePathSegments(cleanPath)}`;
38
71
  }
72
+ function multipartUrl(baseUrl, sandboxName, suffix) {
73
+ return `${baseUrl}/v1/sandboxes/${encodeURIComponent(sandboxName)}/filesystem/multipart${suffix}`;
74
+ }
39
75
  function parseOutputLine(line) {
40
76
  if (line.startsWith("stdout:")) {
41
77
  return { stream: "stdout", data: line.slice(7) };
@@ -131,6 +167,144 @@ class SapiomSandbox {
131
167
  const data = (await response.json());
132
168
  return data.content;
133
169
  }
170
+ /**
171
+ * Upload a file to the sandbox using multipart upload.
172
+ *
173
+ * Handles the full initiate → part upload → complete lifecycle, with
174
+ * parallel part uploads and automatic abort on any failure (including
175
+ * `signal` aborts).
176
+ *
177
+ * Prefer this over {@link writeFile} for binary content or any file over
178
+ * a few MB. `writeFile` stays available for small text files.
179
+ *
180
+ * @param path - File path relative to workspaceRoot.
181
+ * @param content - Blob, Uint8Array, or string. Strings are UTF-8 encoded.
182
+ * @param opts - Upload options.
183
+ */
184
+ async uploadFile(path, content, opts) {
185
+ assertRelativePath(path);
186
+ const blob = (0, multipart_js_1.toBlob)(content);
187
+ const partSize = opts?.partSize ?? multipart_js_1.DEFAULT_PART_SIZE;
188
+ const concurrency = opts?.concurrency ?? multipart_js_1.DEFAULT_CONCURRENCY;
189
+ const totalBytes = blob.size;
190
+ const plans = (0, multipart_js_1.planParts)(totalBytes, partSize);
191
+ const { uploadId } = await this.initiateMultipartUpload(path, {
192
+ permissions: opts?.permissions,
193
+ signal: opts?.signal,
194
+ });
195
+ try {
196
+ let partsUploaded = 0;
197
+ let bytesUploaded = 0;
198
+ const maxRetries = opts?.maxRetries ?? multipart_js_1.DEFAULT_MAX_RETRIES;
199
+ const retryBaseDelayMs = opts?.retryBaseDelayMs ?? multipart_js_1.DEFAULT_RETRY_BASE_DELAY_MS;
200
+ const uploaded = await (0, multipart_js_1.runWithConcurrency)(plans, concurrency, async (plan) => {
201
+ const slice = blob.slice(plan.start, plan.end);
202
+ const ack = await (0, multipart_js_1.withRetry)(() => this.uploadPart(uploadId, plan.partNumber, slice, {
203
+ signal: opts?.signal,
204
+ }), { maxRetries, retryBaseDelayMs, signal: opts?.signal });
205
+ partsUploaded += 1;
206
+ bytesUploaded += ack.size;
207
+ opts?.onPartUploaded?.(ack, {
208
+ partsUploaded,
209
+ totalParts: plans.length,
210
+ bytesUploaded,
211
+ totalBytes,
212
+ });
213
+ return ack;
214
+ });
215
+ const parts = uploaded
216
+ .map(({ partNumber, etag }) => ({ partNumber, etag }))
217
+ .sort((a, b) => a.partNumber - b.partNumber);
218
+ await this.completeMultipartUpload(uploadId, parts, {
219
+ signal: opts?.signal,
220
+ });
221
+ }
222
+ catch (err) {
223
+ // Best-effort cleanup; don't mask the original error.
224
+ this.abortMultipartUpload(uploadId).catch(() => { });
225
+ throw err;
226
+ }
227
+ }
228
+ /**
229
+ * Initiate a multipart upload for a file path.
230
+ *
231
+ * Low-level: prefer {@link uploadFile} for the full lifecycle. Use this
232
+ * when you need custom retry/progress/resumable behavior.
233
+ */
234
+ async initiateMultipartUpload(path, opts) {
235
+ assertRelativePath(path);
236
+ const cleanPath = path.startsWith("/") ? path.slice(1) : path;
237
+ const url = multipartUrl(this._baseUrl, this.name, `/initiate/${encodePathSegments(cleanPath)}`);
238
+ const body = {};
239
+ if (opts?.permissions !== undefined)
240
+ body.permissions = opts.permissions;
241
+ const response = await (0, multipart_js_1.ensureOk)(await this._fetch(url, {
242
+ method: "POST",
243
+ headers: { "Content-Type": "application/json" },
244
+ body: JSON.stringify(body),
245
+ signal: opts?.signal,
246
+ }), `Failed to initiate multipart upload for '${path}'`);
247
+ return (await response.json());
248
+ }
249
+ /**
250
+ * Upload a single part of a multipart upload.
251
+ *
252
+ * Low-level: prefer {@link uploadFile} for the full lifecycle.
253
+ *
254
+ * @param uploadId - Upload session ID from {@link initiateMultipartUpload}.
255
+ * @param partNumber - 1-indexed part number (1 to 10000).
256
+ * @param part - The part bytes.
257
+ */
258
+ async uploadPart(uploadId, partNumber, part, opts) {
259
+ const url = multipartUrl(this._baseUrl, this.name, `/${encodeURIComponent(uploadId)}/part`) + `?partNumber=${encodeURIComponent(String(partNumber))}`;
260
+ const form = new FormData();
261
+ form.append("file", part instanceof Blob ? part : new Blob([part]));
262
+ // Intentionally no Content-Type header — fetch sets the multipart
263
+ // boundary automatically.
264
+ const response = await (0, multipart_js_1.ensureOk)(await this._fetch(url, {
265
+ method: "PUT",
266
+ body: form,
267
+ signal: opts?.signal,
268
+ }), `Failed to upload part ${partNumber} for upload '${uploadId}'`);
269
+ return (await response.json());
270
+ }
271
+ /**
272
+ * Complete a multipart upload by committing the uploaded parts.
273
+ *
274
+ * Low-level: prefer {@link uploadFile} for the full lifecycle.
275
+ */
276
+ async completeMultipartUpload(uploadId, parts, opts) {
277
+ const url = multipartUrl(this._baseUrl, this.name, `/${encodeURIComponent(uploadId)}/complete`);
278
+ const response = await (0, multipart_js_1.ensureOk)(await this._fetch(url, {
279
+ method: "POST",
280
+ headers: { "Content-Type": "application/json" },
281
+ body: JSON.stringify({ parts }),
282
+ signal: opts?.signal,
283
+ }), `Failed to complete multipart upload '${uploadId}'`);
284
+ return (await response.json());
285
+ }
286
+ /**
287
+ * Abort a multipart upload and clean up any uploaded parts on the server.
288
+ */
289
+ async abortMultipartUpload(uploadId, opts) {
290
+ const url = multipartUrl(this._baseUrl, this.name, `/${encodeURIComponent(uploadId)}`);
291
+ await (0, multipart_js_1.ensureOk)(await this._fetch(url, {
292
+ method: "DELETE",
293
+ signal: opts?.signal,
294
+ }), `Failed to abort multipart upload '${uploadId}'`);
295
+ }
296
+ /**
297
+ * List the parts already uploaded for a multipart upload.
298
+ *
299
+ * Useful for resumable uploads: after reconnecting, call this to see
300
+ * which part numbers you still need to upload.
301
+ */
302
+ async listMultipartParts(uploadId, opts) {
303
+ const url = multipartUrl(this._baseUrl, this.name, `/${encodeURIComponent(uploadId)}/parts`);
304
+ const response = await (0, multipart_js_1.ensureOk)(await this._fetch(url, { signal: opts?.signal }), `Failed to list parts for multipart upload '${uploadId}'`);
305
+ const data = (await response.json());
306
+ return data.parts;
307
+ }
134
308
  /**
135
309
  * Execute a command in the sandbox.
136
310
  *
@@ -143,14 +317,9 @@ class SapiomSandbox {
143
317
  */
144
318
  async exec(command, opts) {
145
319
  const proc = await this._createProcess(command, opts);
146
- // If the process already completed synchronously, return immediately
147
- if (proc.status === "completed") {
148
- return {
149
- pid: proc.pid,
150
- exitCode: proc.exitCode ?? 0,
151
- stdout: proc.stdout ?? "",
152
- stderr: proc.stderr ?? "",
153
- };
320
+ // If the process already finished synchronously, return immediately
321
+ if (isProcessTerminal(proc.status)) {
322
+ return toExecResult(proc.pid, proc);
154
323
  }
155
324
  const waitForCompletion = opts?.waitForCompletion ?? true;
156
325
  if (!waitForCompletion) {
@@ -175,11 +344,11 @@ class SapiomSandbox {
175
344
  */
176
345
  async execStream(command, opts) {
177
346
  const proc = await this._createProcess(command, opts);
178
- // If the process already completed synchronously, return without
347
+ // If the process already finished synchronously, return without
179
348
  // opening the log stream — yield the stdout/stderr from the create
180
349
  // response directly.
181
- if (proc.status === "completed") {
182
- const code = proc.exitCode ?? 0;
350
+ if (isProcessTerminal(proc.status)) {
351
+ const code = terminalExitCode(proc);
183
352
  const stdout = proc.stdout ?? "";
184
353
  const stderr = proc.stderr ?? "";
185
354
  const output = (async function* () {
@@ -244,9 +413,9 @@ class SapiomSandbox {
244
413
  throw new Error(`Failed to get final status for process ${proc.pid}: ${statusResponse.status} ${text}`);
245
414
  }
246
415
  let status = (await statusResponse.json());
247
- // If the process hasn't completed yet (e.g. stream disconnected
416
+ // If the process hasn't finished yet (e.g. stream disconnected
248
417
  // before the process finished), poll until it does.
249
- while (status.status !== "completed") {
418
+ while (!isProcessTerminal(status.status)) {
250
419
  await new Promise((resolve) => setTimeout(resolve, 1000));
251
420
  const retry = await fetchFn(`${baseUrl}/v1/sandboxes/${encodeURIComponent(sandboxName)}/process/${proc.pid}`, { signal });
252
421
  if (!retry.ok) {
@@ -255,7 +424,7 @@ class SapiomSandbox {
255
424
  }
256
425
  status = (await retry.json());
257
426
  }
258
- finalExitCode = status.exitCode ?? 0;
427
+ finalExitCode = terminalExitCode(status);
259
428
  }
260
429
  return {
261
430
  pid: proc.pid,
@@ -340,13 +509,8 @@ class SapiomSandbox {
340
509
  throw new Error(`Failed to poll process ${pid}: ${response.status} ${text}`);
341
510
  }
342
511
  const status = (await response.json());
343
- if (status.status === "completed") {
344
- return {
345
- pid,
346
- exitCode: status.exitCode ?? 0,
347
- stdout: status.stdout ?? "",
348
- stderr: status.stderr ?? "",
349
- };
512
+ if (isProcessTerminal(status.status)) {
513
+ return toExecResult(pid, status);
350
514
  }
351
515
  await new Promise((resolve) => setTimeout(resolve, pollInterval));
352
516
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox.ts"],"names":[],"mappings":"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"}
@@ -168,4 +168,51 @@ export interface ProcessStatusResponse {
168
168
  stderr?: string;
169
169
  [key: string]: unknown;
170
170
  }
171
+ /** Raw response from POST /v1/sandboxes/:name/filesystem/multipart/initiate/:path. */
172
+ export interface MultipartInitiateResponse {
173
+ uploadId: string;
174
+ path: string;
175
+ }
176
+ /** Ack returned after a part upload or needed to complete an upload. */
177
+ export interface MultipartUploadedPart {
178
+ partNumber: number;
179
+ etag: string;
180
+ size: number;
181
+ }
182
+ /** Full part record returned by GET .../multipart/:uploadId/parts. */
183
+ export interface MultipartPartInfo extends MultipartUploadedPart {
184
+ uploadedAt: string;
185
+ }
186
+ /** Progress reported to {@link UploadFileOptions.onPartUploaded}. */
187
+ export interface UploadProgress {
188
+ partsUploaded: number;
189
+ totalParts: number;
190
+ bytesUploaded: number;
191
+ totalBytes: number;
192
+ }
193
+ /** Options for {@link SapiomSandbox.uploadFile}. */
194
+ export interface UploadFileOptions {
195
+ /** Part size in bytes. @default 5 * 1024 * 1024 (5 MiB) */
196
+ partSize?: number;
197
+ /** Number of parallel part uploads. @default 4 */
198
+ concurrency?: number;
199
+ /** File permissions string passed to initiate. @default "0644" */
200
+ permissions?: string;
201
+ /**
202
+ * Max retries per failed part upload. Retries on 408/425/429/5xx and
203
+ * network errors; honors `Retry-After`. Pass `0` to disable.
204
+ * @default 3
205
+ */
206
+ maxRetries?: number;
207
+ /**
208
+ * Initial retry backoff in ms. Doubles each attempt with up to `base` ms
209
+ * jitter, so 3 retries take ≤ ~400ms total at the default.
210
+ * @default 50
211
+ */
212
+ retryBaseDelayMs?: number;
213
+ /** AbortSignal to cancel the upload. Triggers an auto-abort of the multipart upload on the server. */
214
+ signal?: AbortSignal;
215
+ /** Invoked after each part finishes uploading (in completion order, not partNumber order). */
216
+ onPartUploaded?: (part: MultipartUploadedPart, progress: UploadProgress) => void;
217
+ }
171
218
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export { SapiomSandbox } from "./sandbox.js";
2
- export type { SandboxCreateOptions, SandboxCreateResponse, SandboxTier, PortSpec, ExecOptions, ExecStreamOptions, ExecResult, StreamingExecResult, OutputLine, ProcessCreateResponse, ProcessStatusResponse, } from "./types.js";
2
+ export { SandboxHttpError } from "./multipart.js";
3
+ export type { SandboxCreateOptions, SandboxCreateResponse, SandboxTier, PortSpec, ExecOptions, ExecStreamOptions, ExecResult, StreamingExecResult, OutputLine, ProcessCreateResponse, ProcessStatusResponse, MultipartInitiateResponse, MultipartUploadedPart, MultipartPartInfo, UploadFileOptions, UploadProgress, } from "./types.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { SapiomSandbox } from "./sandbox.js";
2
+ export { SandboxHttpError } from "./multipart.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,75 @@
1
+ /** Max parts allowed per multipart upload (Blaxel constraint). */
2
+ export declare const MAX_PARTS = 10000;
3
+ /** Default number of retries for a single failed part upload. */
4
+ export declare const DEFAULT_MAX_RETRIES = 3;
5
+ /** Default initial retry backoff in milliseconds. */
6
+ export declare const DEFAULT_RETRY_BASE_DELAY_MS = 50;
7
+ /**
8
+ * Error thrown by multipart HTTP methods when the server returns a non-2xx.
9
+ * Exposes `status` + `retryAfterMs` (parsed from `Retry-After`) so callers
10
+ * and the retry loop can make informed decisions.
11
+ */
12
+ export declare class SandboxHttpError extends Error {
13
+ readonly status: number;
14
+ readonly retryAfterMs?: number;
15
+ constructor(message: string, status: number, retryAfterMs?: number);
16
+ }
17
+ /**
18
+ * Parse a `Retry-After` header value. Supports both forms:
19
+ * - delta-seconds integer (e.g. `"30"`)
20
+ * - HTTP-date (e.g. `"Wed, 21 Oct 2015 07:28:00 GMT"`)
21
+ */
22
+ export declare function parseRetryAfter(header: string | null): number | undefined;
23
+ /**
24
+ * Wrap a `fetch` response: if non-2xx, throw a `SandboxHttpError` carrying
25
+ * the status + Retry-After, otherwise return the response for the caller to
26
+ * parse.
27
+ */
28
+ export declare function ensureOk(response: Response, errorPrefix: string): Promise<Response>;
29
+ export interface RetryOptions {
30
+ /** Max number of retry attempts after the initial try. @default 3 */
31
+ maxRetries?: number;
32
+ /** Initial backoff in ms. Doubles each retry with up to `base` ms jitter. @default 50 */
33
+ retryBaseDelayMs?: number;
34
+ /** AbortSignal to cancel the retry loop. */
35
+ signal?: AbortSignal;
36
+ }
37
+ /**
38
+ * Retry `fn` up to `maxRetries` times on retryable errors with jittered
39
+ * exponential backoff. Honors `Retry-After` when the server provides one.
40
+ * Respects `signal` for prompt cancellation during the backoff wait.
41
+ */
42
+ export declare function withRetry<T>(fn: (attempt: number) => Promise<T>, opts?: RetryOptions): Promise<T>;
43
+ /**
44
+ * Default part size: 5 MiB. Bottom of Blaxel's recommended 5–10 MB range
45
+ * and well clear of the Sapiom ingress 8 MiB body-size ceiling (with
46
+ * room left for multipart form-data overhead).
47
+ */
48
+ export declare const DEFAULT_PART_SIZE: number;
49
+ /** Default number of parallel part uploads. */
50
+ export declare const DEFAULT_CONCURRENCY = 4;
51
+ /** Default file permissions (Blaxel default). */
52
+ export declare const DEFAULT_PERMISSIONS = "0644";
53
+ /**
54
+ * Normalize any supported content type into a `Blob`.
55
+ * `Blob.slice()` gives us random-access + lazy reads, so large inputs don't
56
+ * have to sit materialized in memory.
57
+ */
58
+ export declare function toBlob(content: Blob | Uint8Array | string): Blob;
59
+ export interface PartPlan {
60
+ partNumber: number;
61
+ start: number;
62
+ end: number;
63
+ }
64
+ /**
65
+ * Split a byte range into part plans.
66
+ * Always emits at least one part (even for zero-byte inputs) so the caller
67
+ * still goes through the initiate/upload/complete handshake.
68
+ */
69
+ export declare function planParts(totalBytes: number, partSize: number): PartPlan[];
70
+ /**
71
+ * Run `worker` over `items` with at most `concurrency` promises in flight.
72
+ * Rejects on the first worker failure (and stops scheduling further items).
73
+ */
74
+ export declare function runWithConcurrency<T, R>(items: readonly T[], concurrency: number, worker: (item: T, index: number) => Promise<R>): Promise<R[]>;
75
+ //# sourceMappingURL=multipart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../src/multipart.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,SAAS,QAAS,CAAC;AAEhC,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,qDAAqD;AACrD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAK9C;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAMnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAOzE;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CASnB;AAED,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAcD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACnC,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,CAAC,CAAC,CAmBZ;AAoBD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAkB,CAAC;AAEjD,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAMhE;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAsB1E;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAC3C,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,EAAE,CAAC,CAqCd"}