@dawn-ai/sandbox 0.8.6

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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Brian Love
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,23 @@
1
+ export interface SpawnResult {
2
+ readonly stdout: string;
3
+ readonly stderr: string;
4
+ readonly exitCode: number;
5
+ }
6
+ export type Spawner = (args: readonly string[], opts?: {
7
+ readonly stdin?: string;
8
+ readonly signal?: AbortSignal;
9
+ }) => Promise<SpawnResult>;
10
+ export interface Docker {
11
+ run(args: readonly string[], opts?: {
12
+ readonly signal?: AbortSignal;
13
+ }): Promise<SpawnResult>;
14
+ exec(container: string, command: readonly string[], opts?: {
15
+ readonly stdin?: string;
16
+ readonly signal?: AbortSignal;
17
+ }): Promise<SpawnResult>;
18
+ }
19
+ /** Thin docker-CLI wrapper. `spawn` is injectable so unit tests need no daemon. */
20
+ export declare function createDocker(deps?: {
21
+ readonly spawn?: Spawner;
22
+ }): Docker;
23
+ //# sourceMappingURL=docker-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-cli.d.ts","sourceRoot":"","sources":["../../src/docker/docker-cli.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,OAAO,GAAG,CACpB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAC9D,OAAO,CAAC,WAAW,CAAC,CAAA;AAsBzB,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5F,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAChE,OAAO,CAAC,WAAW,CAAC,CAAA;CACxB;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,IAAI,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAM5E"}
@@ -0,0 +1,29 @@
1
+ import { spawn } from "node:child_process";
2
+ const defaultSpawn = (args, opts) => new Promise((resolve, reject) => {
3
+ const child = spawn("docker", [...args], {
4
+ stdio: ["pipe", "pipe", "pipe"],
5
+ ...(opts?.signal ? { signal: opts.signal } : {}),
6
+ });
7
+ let stdout = "";
8
+ let stderr = "";
9
+ child.stdout.on("data", (c) => {
10
+ stdout += String(c);
11
+ });
12
+ child.stderr.on("data", (c) => {
13
+ stderr += String(c);
14
+ });
15
+ child.on("error", reject);
16
+ child.on("close", (code) => resolve({ stdout, stderr, exitCode: code ?? 1 }));
17
+ if (opts?.stdin !== undefined)
18
+ child.stdin.end(opts.stdin);
19
+ else
20
+ child.stdin.end();
21
+ });
22
+ /** Thin docker-CLI wrapper. `spawn` is injectable so unit tests need no daemon. */
23
+ export function createDocker(deps = {}) {
24
+ const sp = deps.spawn ?? defaultSpawn;
25
+ return {
26
+ run: (args, opts) => sp(args, opts),
27
+ exec: (container, command, opts) => sp(["exec", "-i", container, ...command], opts),
28
+ };
29
+ }
@@ -0,0 +1,5 @@
1
+ import type { ExecBackend } from "@dawn-ai/workspace";
2
+ import type { Docker } from "./docker-cli.ts";
3
+ /** ExecBackend that runs commands inside a docker container via `docker exec sh -c`. */
4
+ export declare function dockerExec(docker: Docker, container: string): ExecBackend;
5
+ //# sourceMappingURL=docker-exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-exec.d.ts","sourceRoot":"","sources":["../../src/docker/docker-exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAM7C,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CA0BzE"}
@@ -0,0 +1,25 @@
1
+ function shellQuote(s) {
2
+ return `'${s.replaceAll("'", `'\\''`)}'`;
3
+ }
4
+ /** ExecBackend that runs commands inside a docker container via `docker exec sh -c`. */
5
+ export function dockerExec(docker, container) {
6
+ return {
7
+ async runCommand(args, ctx) {
8
+ const envPrefix = args.env
9
+ ? Object.entries(args.env)
10
+ .map(([k, v]) => {
11
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(k)) {
12
+ throw new Error(`Invalid environment variable name ${JSON.stringify(k)}: keys must match /^[A-Za-z_][A-Za-z0-9_]*$/`);
13
+ }
14
+ return `${k}=${shellQuote(v)} `;
15
+ })
16
+ .join("")
17
+ : "";
18
+ const cdPrefix = args.cwd ? `cd ${shellQuote(args.cwd)} && ` : "";
19
+ const r = await docker.exec(container, ["sh", "-c", `${envPrefix}${cdPrefix}${args.command}`], {
20
+ signal: ctx.signal,
21
+ });
22
+ return { stdout: r.stdout, stderr: r.stderr, exitCode: r.exitCode };
23
+ },
24
+ };
25
+ }
@@ -0,0 +1,5 @@
1
+ import type { FilesystemBackend } from "@dawn-ai/workspace";
2
+ import type { Docker } from "./docker-cli.ts";
3
+ /** FilesystemBackend whose ops run inside a docker container via `docker exec`. */
4
+ export declare function dockerFilesystem(docker: Docker, container: string): FilesystemBackend;
5
+ //# sourceMappingURL=docker-filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-filesystem.d.ts","sourceRoot":"","sources":["../../src/docker/docker-filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAM7C,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAiDrF"}
@@ -0,0 +1,57 @@
1
+ function q(s) {
2
+ return `'${s.replaceAll("'", `'\\''`)}'`;
3
+ }
4
+ /** FilesystemBackend whose ops run inside a docker container via `docker exec`. */
5
+ export function dockerFilesystem(docker, container) {
6
+ const run = (cmd, ctx, stdin) => docker.exec(container, ["sh", "-c", cmd], {
7
+ ...(stdin !== undefined ? { stdin } : {}),
8
+ signal: ctx.signal,
9
+ });
10
+ return {
11
+ async readFile(path, ctx, opts) {
12
+ const r = await run(`cat ${q(path)}`, ctx);
13
+ if (r.exitCode !== 0)
14
+ throw new Error(`readFile failed: ${r.stderr.trim()}`);
15
+ const max = opts?.maxBytes;
16
+ if (max !== undefined && Number.isFinite(max) && Buffer.byteLength(r.stdout) > max) {
17
+ throw new Error(`readFile ${path}: content exceeds maxBytes (${max}).`);
18
+ }
19
+ return r.stdout;
20
+ },
21
+ async writeFile(path, content, ctx) {
22
+ const r = await run(`mkdir -p "$(dirname ${q(path)})" && cat > ${q(path)}`, ctx, content);
23
+ if (r.exitCode !== 0)
24
+ throw new Error(`writeFile failed: ${r.stderr.trim()}`);
25
+ return { bytesWritten: Buffer.byteLength(content) };
26
+ },
27
+ async listDir(path, ctx) {
28
+ const r = await run(`ls -1 ${q(path)}`, ctx);
29
+ if (r.exitCode !== 0)
30
+ throw new Error(`listDir failed: ${r.stderr.trim()}`);
31
+ return r.stdout
32
+ .split("\n")
33
+ .map((l) => l.trim())
34
+ .filter(Boolean);
35
+ },
36
+ async realPath(path, ctx) {
37
+ const r = await run(`realpath -m ${q(path)}`, ctx);
38
+ return r.exitCode === 0 ? r.stdout.trim() : path;
39
+ },
40
+ async statFile(path, ctx) {
41
+ const r = await run(`stat -c '%s %Y' ${q(path)}`, ctx);
42
+ if (r.exitCode !== 0)
43
+ throw new Error(`statFile failed: ${r.stderr.trim()}`);
44
+ const [size, mtime] = r.stdout.trim().split(" ");
45
+ return { size: Number(size), mtimeMs: Number(mtime) * 1000 };
46
+ },
47
+ async removeFile(path, ctx) {
48
+ await run(`rm -f ${q(path)}`, ctx);
49
+ },
50
+ async touchFile(path, ctx) {
51
+ await run(`touch ${q(path)}`, ctx);
52
+ },
53
+ async mkdir(path, ctx) {
54
+ await run(`mkdir -p ${q(path)}`, ctx);
55
+ },
56
+ };
57
+ }
@@ -0,0 +1,19 @@
1
+ import type { SandboxProvider } from "@dawn-ai/workspace";
2
+ import { type Docker } from "./docker-cli.js";
3
+ export interface DockerSandboxOptions {
4
+ /** Container image for the sandbox (must include a POSIX shell). */
5
+ readonly image: string;
6
+ /** Injected for tests; defaults to the real docker CLI. */
7
+ readonly docker?: Docker;
8
+ }
9
+ /**
10
+ * Docker reference SandboxProvider. Per thread: a persistent container
11
+ * `dawn-sbx-<threadId>` (sleep infinity) with a named volume mounted at
12
+ * /workspace. acquire() is create-or-reattach (running → reuse; stopped →
13
+ * start; absent → run). release() removes the container but KEEPS the volume;
14
+ * destroy() removes both. Network: deny → --network none (exact); allow →
15
+ * bridge (denylist is best-effort and NOT enforced here — see the spec's
16
+ * honest-scope note). Host env is never inherited; only policy.env is passed.
17
+ */
18
+ export declare function dockerSandbox(opts: DockerSandboxOptions): SandboxProvider;
19
+ //# sourceMappingURL=docker-sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-sandbox.d.ts","sourceRoot":"","sources":["../../src/docker/docker-sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACvF,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAS3D,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,eAAe,CAgFzE"}
@@ -0,0 +1,87 @@
1
+ import { createDocker } from "./docker-cli.js";
2
+ import { dockerExec } from "./docker-exec.js";
3
+ import { dockerFilesystem } from "./docker-filesystem.js";
4
+ const ROOT = "/workspace";
5
+ const sanitize = (s) => s.replaceAll(/[^a-zA-Z0-9_.-]/g, "_");
6
+ const containerName = (threadId) => `dawn-sbx-${sanitize(threadId)}`;
7
+ const volumeName = (threadId) => `dawn-sbx-vol-${sanitize(threadId)}`;
8
+ /**
9
+ * Docker reference SandboxProvider. Per thread: a persistent container
10
+ * `dawn-sbx-<threadId>` (sleep infinity) with a named volume mounted at
11
+ * /workspace. acquire() is create-or-reattach (running → reuse; stopped →
12
+ * start; absent → run). release() removes the container but KEEPS the volume;
13
+ * destroy() removes both. Network: deny → --network none (exact); allow →
14
+ * bridge (denylist is best-effort and NOT enforced here — see the spec's
15
+ * honest-scope note). Host env is never inherited; only policy.env is passed.
16
+ */
17
+ export function dockerSandbox(opts) {
18
+ const docker = opts.docker ?? createDocker();
19
+ const ensureContainer = async (threadId, policy, signal) => {
20
+ const name = containerName(threadId);
21
+ const running = await docker.run(["ps", "-q", "--filter", `name=^${name}$`], { signal });
22
+ if (running.stdout.trim())
23
+ return name;
24
+ const existing = await docker.run(["ps", "-aq", "--filter", `name=^${name}$`], { signal });
25
+ if (existing.stdout.trim()) {
26
+ await docker.run(["start", name], { signal });
27
+ return name;
28
+ }
29
+ const net = policy.network.mode === "deny" ? ["--network", "none"] : ["--network", "bridge"];
30
+ const envArgs = Object.entries(policy.env ?? {}).flatMap(([k, v]) => ["-e", `${k}=${v}`]);
31
+ const res = policy.resources;
32
+ const limits = [
33
+ ...(res?.memoryMb ? ["--memory", `${res.memoryMb}m`] : []),
34
+ ...(res?.cpus ? ["--cpus", String(res.cpus)] : []),
35
+ ];
36
+ const created = await docker.run([
37
+ "run",
38
+ "-d",
39
+ "--name",
40
+ name,
41
+ "--label",
42
+ `dawn.sandbox=${sanitize(threadId)}`,
43
+ "-v",
44
+ `${volumeName(threadId)}:${ROOT}`,
45
+ "-w",
46
+ ROOT,
47
+ ...net,
48
+ ...envArgs,
49
+ ...limits,
50
+ opts.image,
51
+ "sleep",
52
+ "infinity",
53
+ ], { signal });
54
+ if (created.exitCode !== 0) {
55
+ throw new Error(`Sandbox unavailable: docker run failed for thread "${threadId}": ${created.stderr.trim() || "unknown error"}. Run \`dawn check\`.`);
56
+ }
57
+ return name;
58
+ };
59
+ return {
60
+ name: "docker",
61
+ async acquire({ threadId, policy, signal }) {
62
+ const container = await ensureContainer(threadId, policy, signal);
63
+ return {
64
+ threadId,
65
+ filesystem: dockerFilesystem(docker, container),
66
+ exec: dockerExec(docker, container),
67
+ workspaceRoot: ROOT,
68
+ };
69
+ },
70
+ async release(threadId) {
71
+ await docker.run(["rm", "-f", containerName(threadId)]).catch(() => { });
72
+ },
73
+ async destroy(threadId) {
74
+ await docker.run(["rm", "-f", containerName(threadId)]).catch(() => { });
75
+ await docker.run(["volume", "rm", volumeName(threadId)]).catch(() => { });
76
+ },
77
+ async preflight() {
78
+ const v = await docker
79
+ .run(["version", "--format", "{{.Server.Version}}"])
80
+ .catch(() => undefined);
81
+ if (!v || v.exitCode !== 0) {
82
+ return { ok: false, detail: "Docker daemon not reachable (`docker version` failed)." };
83
+ }
84
+ return { ok: true, detail: `Docker ${v.stdout.trim()}` };
85
+ },
86
+ };
87
+ }
@@ -0,0 +1,3 @@
1
+ export type { SandboxConfig, SandboxHandle, SandboxPolicy, SandboxProvider, } from "@dawn-ai/workspace";
2
+ export { type DockerSandboxOptions, dockerSandbox } from "./docker/docker-sandbox.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,oBAAoB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export { dockerSandbox } from "./docker/docker-sandbox.js";
@@ -0,0 +1,12 @@
1
+ import type { SandboxProvider } from "@dawn-ai/workspace";
2
+ /**
3
+ * The contract every SandboxProvider must satisfy. Reused by fakeSandbox (CI)
4
+ * and dockerSandbox (gated Docker lane) so the fake cannot drift from reality.
5
+ * Pass vitest's `describe` so the kit can group under any runner.
6
+ */
7
+ export declare function runProviderConformance(opts: {
8
+ readonly name: string;
9
+ readonly makeProvider: () => SandboxProvider;
10
+ readonly describe: (name: string, fn: () => void) => void;
11
+ }): void;
12
+ //# sourceMappingURL=conformance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/testing/conformance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAMzD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,eAAe,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;CAC1D,GAAG,IAAI,CA8CP"}
@@ -0,0 +1,48 @@
1
+ import { expect, test } from "vitest";
2
+ const ctx = (workspaceRoot) => ({ signal: new AbortController().signal, workspaceRoot });
3
+ const policy = { network: { mode: "allow" } };
4
+ /**
5
+ * The contract every SandboxProvider must satisfy. Reused by fakeSandbox (CI)
6
+ * and dockerSandbox (gated Docker lane) so the fake cannot drift from reality.
7
+ * Pass vitest's `describe` so the kit can group under any runner.
8
+ */
9
+ export function runProviderConformance(opts) {
10
+ opts.describe(`SandboxProvider conformance: ${opts.name}`, () => {
11
+ test("acquire is idempotent per thread and reattaches the workspace", async () => {
12
+ const p = opts.makeProvider();
13
+ const a = await p.acquire({ threadId: "t1", policy, signal: ctx("/").signal });
14
+ await a.filesystem.writeFile(`${a.workspaceRoot}/x`, "1", ctx(a.workspaceRoot));
15
+ const b = await p.acquire({ threadId: "t1", policy, signal: ctx("/").signal });
16
+ expect(await b.filesystem.readFile(`${b.workspaceRoot}/x`, ctx(b.workspaceRoot))).toBe("1");
17
+ await p.destroy("t1");
18
+ });
19
+ test("threads are isolated", async () => {
20
+ const p = opts.makeProvider();
21
+ const a = await p.acquire({ threadId: "a", policy, signal: ctx("/").signal });
22
+ await a.filesystem.writeFile(`${a.workspaceRoot}/secret`, "s", ctx(a.workspaceRoot));
23
+ const b = await p.acquire({ threadId: "b", policy, signal: ctx("/").signal });
24
+ expect(await b.filesystem.listDir(b.workspaceRoot, ctx(b.workspaceRoot))).not.toContain("secret");
25
+ await p.destroy("a");
26
+ await p.destroy("b");
27
+ });
28
+ test("release keeps the volume, destroy clears it", async () => {
29
+ const p = opts.makeProvider();
30
+ const a = await p.acquire({ threadId: "t", policy, signal: ctx("/").signal });
31
+ await a.filesystem.writeFile(`${a.workspaceRoot}/keep`, "1", ctx(a.workspaceRoot));
32
+ await p.release("t");
33
+ const r = await p.acquire({ threadId: "t", policy, signal: ctx("/").signal });
34
+ expect(await r.filesystem.readFile(`${r.workspaceRoot}/keep`, ctx(r.workspaceRoot))).toBe("1");
35
+ await p.destroy("t");
36
+ const d = await p.acquire({ threadId: "t", policy, signal: ctx("/").signal });
37
+ expect(await d.filesystem.listDir(d.workspaceRoot, ctx(d.workspaceRoot))).not.toContain("keep");
38
+ await p.destroy("t");
39
+ });
40
+ test("exec returns a numeric exit code", async () => {
41
+ const p = opts.makeProvider();
42
+ const a = await p.acquire({ threadId: "t", policy, signal: ctx("/").signal });
43
+ const r = await a.exec.runCommand({ command: "true" }, ctx(a.workspaceRoot));
44
+ expect(typeof r.exitCode).toBe("number");
45
+ await p.destroy("t");
46
+ });
47
+ });
48
+ }
@@ -0,0 +1,16 @@
1
+ import type { BackendContext, SandboxProvider } from "@dawn-ai/workspace";
2
+ type ExecFn = (args: {
3
+ readonly command: string;
4
+ readonly cwd?: string;
5
+ readonly env?: Readonly<Record<string, string>>;
6
+ }, ctx: BackendContext) => Promise<{
7
+ readonly stdout: string;
8
+ readonly stderr: string;
9
+ readonly exitCode: number;
10
+ }>;
11
+ /** In-memory SandboxProvider for unit + wiring tests. No Docker. */
12
+ export declare function fakeSandbox(opts?: {
13
+ readonly exec?: ExecFn;
14
+ }): SandboxProvider;
15
+ export {};
16
+ //# sourceMappingURL=fake-sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake-sandbox.d.ts","sourceRoot":"","sources":["../../src/testing/fake-sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAId,eAAe,EAChB,MAAM,oBAAoB,CAAA;AAE3B,KAAK,MAAM,GAAG,CACZ,IAAI,EAAE;IACJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAChD,EACD,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAI7F,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,IAAI,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CA4DlF"}
@@ -0,0 +1,61 @@
1
+ const ROOT = "/workspace";
2
+ /** In-memory SandboxProvider for unit + wiring tests. No Docker. */
3
+ export function fakeSandbox(opts = {}) {
4
+ const volumes = new Map();
5
+ const liveThreads = new Set();
6
+ const volumeFor = (threadId) => {
7
+ let v = volumes.get(threadId);
8
+ if (!v) {
9
+ v = new Map();
10
+ volumes.set(threadId, v);
11
+ }
12
+ return v;
13
+ };
14
+ const makeFilesystem = (vol) => ({
15
+ async readFile(path) {
16
+ const v = vol.get(path);
17
+ if (v === undefined)
18
+ throw new Error(`ENOENT: ${path}`);
19
+ return v;
20
+ },
21
+ async writeFile(path, content) {
22
+ vol.set(path, content);
23
+ return { bytesWritten: Buffer.byteLength(content) };
24
+ },
25
+ async listDir(path) {
26
+ const prefix = path.endsWith("/") ? path : `${path}/`;
27
+ const names = new Set();
28
+ for (const key of vol.keys()) {
29
+ if (key.startsWith(prefix)) {
30
+ const part = key.slice(prefix.length).split("/")[0];
31
+ if (part !== undefined)
32
+ names.add(part);
33
+ }
34
+ }
35
+ return [...names].sort();
36
+ },
37
+ async realPath(path) {
38
+ return path;
39
+ },
40
+ });
41
+ const defaultExec = async () => ({ stdout: "", stderr: "", exitCode: 0 });
42
+ return {
43
+ name: "fake",
44
+ async acquire({ threadId }) {
45
+ liveThreads.add(threadId);
46
+ const vol = volumeFor(threadId);
47
+ const exec = { runCommand: (args, ctx) => (opts.exec ?? defaultExec)(args, ctx) };
48
+ return { threadId, filesystem: makeFilesystem(vol), exec, workspaceRoot: ROOT };
49
+ },
50
+ async release(threadId) {
51
+ liveThreads.delete(threadId);
52
+ },
53
+ async destroy(threadId) {
54
+ liveThreads.delete(threadId);
55
+ volumes.delete(threadId);
56
+ },
57
+ async preflight() {
58
+ return { ok: true };
59
+ },
60
+ };
61
+ }
@@ -0,0 +1,3 @@
1
+ export { runProviderConformance } from "./conformance.js";
2
+ export { fakeSandbox } from "./fake-sandbox.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { runProviderConformance } from "./conformance.js";
2
+ export { fakeSandbox } from "./fake-sandbox.js";
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../workspace/dist/compose.d.ts","../../workspace/dist/types.d.ts","../../workspace/dist/local-exec.d.ts","../../workspace/dist/local-filesystem.d.ts","../../workspace/dist/sandbox-types.d.ts","../../workspace/dist/with-logging.d.ts","../../workspace/dist/index.d.ts","../src/docker/docker-cli.ts","../src/docker/docker-exec.ts","../src/docker/docker-filesystem.ts","../src/docker/docker-sandbox.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@4.1.9/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.9/node_modules/@vitest/utils/dist/display.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.9/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.9/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.9/node_modules/@vitest/utils/dist/timers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.9/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.9/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.9/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.9/node_modules/@vitest/runner/dist/tasks.d-deyaimiu.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.9/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/traces.d.d2t_r8rx.d.ts","../../../node_modules/.pnpm/vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0/node_modules/vite/dist/node/modulerunnertransport.d-dj_me5sf.d.ts","../../../node_modules/.pnpm/vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.9/node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.9/node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.9/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/config.d.a1h_y6jt.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/rpc.d.b_8spu0w.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/worker.d.zphpo4yb.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/browser.d.bcoexmfg.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.1.9/node_modules/@vitest/spy/optional-types.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.1.9/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@4.1.9/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.9/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/global.d.dvssrdq5.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/optional-runtime-types.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.9_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.9_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.9_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/runners.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.9_@types+node@26.1.0_vite@6.4.3_@types+node@26.1.0_jiti@2.7.0_lightningcss@1.32.0_tsx@4.22.4_yaml@2.9.0_/node_modules/vitest/dist/index.d.ts","../src/testing/conformance.ts","../src/testing/fake-sandbox.ts","../src/testing/index.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@7.19.2/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/posix.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/path/win32.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/quic.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/test/reporters.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/util/types.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@25.6.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[126,189,197,201,204,206,207,208,221],[100,101,126,189,197,201,204,206,207,208,221],[126,186,187,189,197,201,204,206,207,208,221],[126,188,189,197,201,204,206,207,208,221],[189,197,201,204,206,207,208,221],[126,189,197,201,204,206,207,208,221,229],[126,189,190,195,197,200,201,204,206,207,208,210,221,226,238],[126,189,190,191,197,200,201,204,206,207,208,221],[126,189,192,197,201,204,206,207,208,221,239],[126,189,193,194,197,201,204,206,207,208,212,221],[126,189,194,197,201,204,206,207,208,221,226,235],[126,189,195,197,200,201,204,206,207,208,210,221],[126,188,189,196,197,201,204,206,207,208,221],[126,189,197,198,201,204,206,207,208,221],[126,189,197,199,200,201,204,206,207,208,221],[126,188,189,197,200,201,204,206,207,208,221],[126,189,197,200,201,202,204,206,207,208,221,226,238],[126,189,197,200,201,202,204,206,207,208,221,226,229],[126,176,189,197,200,201,203,204,206,207,208,210,221,226,238],[126,189,197,200,201,203,204,206,207,208,210,221,226,235,238],[126,189,197,201,203,204,205,206,207,208,221,226,235,238],[124,125,126,127,128,129,130,131,132,133,134,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245],[126,189,197,200,201,204,206,207,208,221],[126,189,197,201,204,206,208,221],[126,189,197,201,204,206,207,208,209,221,238],[126,189,197,200,201,204,206,207,208,210,221,226],[126,189,197,201,204,206,207,208,212,221],[126,189,197,201,204,206,207,208,213,221],[126,189,197,200,201,204,206,207,208,216,221],[126,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245],[126,189,197,201,204,206,207,208,218,221],[126,189,197,201,204,206,207,208,219,221],[126,189,194,197,201,204,206,207,208,210,221,229],[126,189,197,200,201,204,206,207,208,221,222],[126,189,197,201,204,206,207,208,221,223,239,242],[126,189,197,200,201,204,206,207,208,221,226,228,229],[126,189,197,201,204,206,207,208,221,227,229],[126,189,197,201,204,206,207,208,221,229,239],[126,189,197,201,204,206,207,208,221,230],[126,186,189,197,201,204,206,207,208,221,226,232,238],[126,189,197,201,204,206,207,208,221,226,231],[126,189,197,200,201,204,206,207,208,221,233,234],[126,189,197,201,204,206,207,208,221,233,234],[126,189,194,197,201,204,206,207,208,210,221,226,235],[126,189,197,201,204,206,207,208,221,236],[126,189,197,201,204,206,207,208,210,221,237],[126,189,197,201,203,204,206,207,208,219,221,238],[126,189,197,201,204,206,207,208,221,239,240],[126,189,194,197,201,204,206,207,208,221,240],[126,189,197,201,204,206,207,208,221,226,241],[126,189,197,201,204,206,207,208,209,221,242],[126,189,197,201,204,206,207,208,221,243],[126,189,192,197,201,204,206,207,208,221],[126,189,194,197,201,204,206,207,208,221],[126,189,197,201,204,206,207,208,221,239],[126,176,189,197,201,204,206,207,208,221],[126,189,197,201,204,206,207,208,221,238],[126,189,197,201,204,206,207,208,221,244],[126,189,197,201,204,206,207,208,216,221],[126,189,197,201,204,206,207,208,221,234],[126,176,189,197,200,201,202,204,206,207,208,216,221,226,229,238,241,242,244],[126,189,197,201,204,206,207,208,221,226,245],[73,79,97,98,99,102,126,189,197,201,204,206,207,208,221],[109,126,189,197,201,204,206,207,208,221],[109,110,126,189,197,201,204,206,207,208,221],[77,79,80,126,189,197,201,204,206,207,208,221],[77,79,126,189,197,201,204,206,207,208,221],[77,126,189,197,201,204,206,207,208,221],[72,77,88,89,126,189,197,201,204,206,207,208,221],[72,77,88,126,189,197,201,204,206,207,208,221],[96,126,189,197,201,204,206,207,208,221],[72,78,126,189,197,201,204,206,207,208,221],[72,126,189,197,201,204,206,207,208,221],[74,126,189,197,201,204,206,207,208,221],[72,73,74,75,76,126,189,197,201,204,206,207,208,221],[115,116,126,189,197,201,204,206,207,208,221],[115,116,117,118,126,189,197,201,204,206,207,208,221],[115,117,126,189,197,201,204,206,207,208,221],[115,126,189,197,201,204,206,207,208,221],[126,141,144,147,148,189,197,201,204,206,207,208,221,238],[126,144,189,197,201,204,206,207,208,221,226,238],[126,144,148,189,197,201,204,206,207,208,221,238],[126,189,197,201,204,206,207,208,221,226],[126,138,189,197,201,204,206,207,208,221],[126,142,189,197,201,204,206,207,208,221],[126,140,141,144,189,197,201,204,206,207,208,221,238],[126,189,197,201,204,206,207,208,210,221,235],[126,189,197,201,204,206,207,208,221,246],[126,138,189,197,201,204,206,207,208,221,246],[126,140,144,189,197,201,204,206,207,208,210,221,238],[126,135,136,137,139,143,189,197,200,201,204,206,207,208,221,226,238],[126,144,153,161,189,197,201,204,206,207,208,221],[126,136,142,189,197,201,204,206,207,208,221],[126,144,170,171,189,197,201,204,206,207,208,221],[126,136,139,144,189,197,201,204,206,207,208,221,229,238,246],[126,144,189,197,201,204,206,207,208,221],[126,140,144,189,197,201,204,206,207,208,221,238],[126,135,189,197,201,204,206,207,208,221],[126,138,139,140,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,171,172,173,174,175,189,197,201,204,206,207,208,221],[126,144,163,166,189,197,201,204,206,207,208,221],[126,144,153,154,155,189,197,201,204,206,207,208,221],[126,142,144,154,156,189,197,201,204,206,207,208,221],[126,143,189,197,201,204,206,207,208,221],[126,136,138,144,189,197,201,204,206,207,208,221],[126,144,148,154,156,189,197,201,204,206,207,208,221],[126,148,189,197,201,204,206,207,208,221],[126,142,144,147,189,197,201,204,206,207,208,221,238],[126,136,140,144,153,189,197,201,204,206,207,208,221],[126,144,163,189,197,201,204,206,207,208,221],[126,156,189,197,201,204,206,207,208,221],[126,138,144,170,189,197,201,204,206,207,208,221,229,244,246],[83,84,85,86,126,189,197,201,204,206,207,208,221],[83,126,189,197,201,204,206,207,208,221],[84,126,189,197,201,204,206,207,208,221],[81,104,105,107,126,189,197,201,204,206,207,208,221],[81,82,94,107,126,189,197,201,204,206,207,208,221],[72,79,81,82,90,107,126,189,197,201,204,206,207,208,221],[87,126,189,197,201,204,206,207,208,221],[72,81,82,90,103,106,107,126,189,197,201,204,206,207,208,221],[81,82,87,90,107,126,189,197,201,204,206,207,208,221],[81,104,105,106,107,126,189,197,201,204,206,207,208,221],[81,87,91,92,93,107,126,189,197,201,204,206,207,208,221],[72,77,79,81,82,87,90,91,92,93,94,95,97,103,104,105,106,107,108,111,112,113,114,119,126,189,197,201,204,206,207,208,221],[72,79,81,82,90,91,104,105,106,107,112,126,189,197,201,204,206,207,208,221],[126,189,190,197,201,204,206,207,208,221],[66,67,126,189,197,201,204,206,207,208,221],[66,67,68,69,126,189,197,201,204,206,207,208,221],[66,70,126,189,197,201,204,206,207,208,221],[66,120,126,189,197,201,204,206,207,208,221],[66,126,189,197,201,204,206,207,208,221],[121,122,126,189,197,201,204,206,207,208,221],[60,61,62,63,64,65,126,189,197,201,204,206,207,208,221],[61,126,189,197,201,204,206,207,208,221]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f30fb637ac4de6f3bea087bda33f449f2f680befcb34e06e1c5fda4c1de1c22","impliedFormat":99},{"version":"12f0b2ce7fd306b9dcfd0884e79747e3f5306d233aa78c1f8658998cdb6d2b7c","impliedFormat":99},{"version":"d5c0520d0cdc26a396d143989525ea4ebbd98f062d614b0d0fffa9377b5ff3c1","impliedFormat":99},{"version":"0dacbbc2e8f129571c8b1f4d9cd0695ccf0c3cd12fd8c5d2be48ce148f0a1f44","impliedFormat":99},{"version":"ca14d86cd8a543501c79cf87296ccfc57d301b3534f63f147b5eb9647b0708e1","impliedFormat":99},{"version":"a506d6d9ac1504c02ea9975cde6506ff9b6432cbe2c4a18401c20ea74d21ea99","impliedFormat":99},{"version":"9e7c1e5e8c38e001d31bee4e5483b94ca7f9c4899219579e14aefee4dae1fd81","impliedFormat":99},{"version":"290743e3ddbc2bbcdf991b5195f504675655403dea20badb83a3e527c3560932","signature":"b90a82c20b50fb56de38431359ccfe2ef40dc0cb1c33bf90d8b16fc61bb44589","impliedFormat":99},{"version":"76f75001abfbebeba170142cd971a53ee6bc4f501dd07ac99349e34783cfae0f","signature":"36fb144fe2e0123ed2fe99123958549091634f8c9e6cbe9a44f0dd5b516512d5","impliedFormat":99},{"version":"2665667671f6acd08de753326d476ae7c959963bac3df962ed0071dac46dba8f","signature":"368cd2a42d59d11eb1a06824f720ada980027a728f49f8258036e23bd0e4332c","impliedFormat":99},{"version":"0888d630c1d886d9593be432c137c953b856476f30f95710457509374add9227","signature":"222ee555791576e893cf23868717e4c8ce6adedaec1b550219a2f49fe9ce5ac8","impliedFormat":99},{"version":"b4bc2cd33019965526c9d7274e6b27331259ecea47861c2a07c8dc5bd628ce92","signature":"8a780d45c270e379acdea4d3329dc17b6ff49de4adb0864643968c05e3557672","impliedFormat":99},{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"49ab4f1d153a252779958fc87b700743d32b5ffa42addd70ae23ad3f429daa5c","impliedFormat":99},{"version":"53cf4076f42b29b8d411259d168d51b3a0274c42c8814e5b44dfa8803a35d4fc","impliedFormat":99},{"version":"a39461ee1f27cf3e6cfd63d21045713d26d521da55ea4d8efccb705f689e6dbb","impliedFormat":99},{"version":"61bb64660ee150f3ab618340e15cca0a81664801bede7c966ca0eca3a952fe63","impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"11443a1dcfaaa404c68d53368b5b818712b95dd19f188cab1669c39bee8b84b3","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"035d0934d304483f07148427a5bd5b98ac265dae914a6b49749fe23fbd893ec7","impliedFormat":99},{"version":"e2ed5b81cbed3a511b21a18ab2539e79ac1f4bc1d1d28f8d35d8104caa3b429f","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"61fd6c17235d530c40f543dd7c40afab091d91c1ef890baeed30db6d82b04b28","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"091767bc841f937654ed597d49e023ed59850355e746ae1a6f20ab31076ee1fb","impliedFormat":99},{"version":"19c6d6135af59693698d384050b45a8a049493500add442f58e4bd7c8a255ab6","impliedFormat":99},{"version":"6a0dba12d55314638a8c51108b20fe2f68f1364a619d098918bda91c22dec154","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"2b39c6cf59088713babbfc3e20ee85f1375d40e66953156fa658346b8346f24f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4ffba3c5848b4fe62ee59b754fd5f256ad9656a0db6d37b9a2a8cb40dfc7ac21","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"59e5e964b84fdb2378e9455e4e59405030e4ed2b4c6f891ce395f17796af3cbb","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"90ba95a763101bb61b8a799731a2ed60b5016b8135c1a2d5186862d4b534d4a1","impliedFormat":99},{"version":"8772659a6faf88cd895dd45acbd73dc844e0fa649e747cc1baf43d388b2e197f","signature":"59d8b40fdf1b5d75f33b8108d7e300a29bf5640a265d79e3e7b10737b16404a8","impliedFormat":99},{"version":"a0f054bcc021d6e5008626d7b82f88000846a251ee25c62af8f96473168334b7","signature":"1773f12788fbfe824ed6ecfae56c11660ae6acb54755af96f0ae3593781037c0","impliedFormat":99},{"version":"f26926b5d9c201e41e97a1dc8be98185b6dcd43f49b57aa82d837bca19528c22","signature":"d3174d370daa2aebf3d79bb5d8d27da0434dfdf292697e7f0956176b8a711f0b","impliedFormat":99},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","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":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"f9713757bcdfa4d58b48c0fb249e752c94a3eee8bf4532b906094246ac49ef88","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"eab2f3179607acb3d44b2db2a76dd7d621c5039b145dc160a1ee733963f9d2f5","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[[67,71],[121,123]],"options":{"allowJs":false,"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"stripInternal":true,"target":9,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"referencedMap":[[99,1],[102,2],[100,1],[186,3],[187,3],[188,4],[126,5],[189,6],[190,7],[191,8],[124,1],[192,9],[193,10],[194,11],[195,12],[196,13],[197,14],[198,14],[199,15],[200,16],[201,17],[202,18],[127,1],[125,1],[203,19],[204,20],[205,21],[246,22],[206,23],[207,24],[208,23],[209,25],[210,26],[212,27],[213,28],[214,28],[215,28],[216,29],[217,30],[218,31],[219,32],[220,33],[221,34],[222,34],[223,35],[224,1],[225,1],[226,36],[227,37],[228,36],[229,38],[230,39],[231,40],[232,41],[233,42],[234,43],[235,44],[236,45],[237,46],[238,47],[239,48],[240,49],[241,50],[242,51],[243,52],[128,23],[129,1],[130,53],[131,54],[132,1],[133,55],[134,1],[177,56],[178,57],[179,58],[180,58],[181,59],[182,1],[183,6],[184,60],[185,57],[244,61],[245,62],[103,63],[110,64],[111,65],[109,1],[72,1],[81,66],[80,67],[104,66],[88,68],[90,69],[89,70],[97,71],[96,1],[79,72],[73,73],[75,74],[77,75],[76,1],[78,73],[74,1],[101,1],[211,1],[117,76],[119,77],[118,78],[116,79],[115,1],[105,1],[98,1],[58,1],[59,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[20,1],[21,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[55,1],[54,1],[56,1],[1,1],[57,1],[153,80],[165,81],[150,82],[166,83],[175,84],[141,85],[142,86],[140,87],[174,88],[169,89],[173,90],[144,91],[162,92],[143,93],[172,94],[138,95],[139,89],[145,96],[146,1],[152,97],[149,96],[136,98],[176,99],[167,100],[156,101],[155,96],[157,102],[160,103],[154,104],[158,105],[170,88],[147,106],[148,107],[161,108],[137,83],[164,109],[163,96],[151,107],[159,110],[168,1],[135,1],[171,111],[87,112],[86,113],[84,113],[83,1],[85,114],[106,115],[95,116],[91,117],[92,68],[113,118],[107,119],[93,120],[112,121],[82,1],[94,122],[120,123],[114,124],[108,1],[67,125],[68,126],[69,126],[70,127],[71,128],[121,129],[122,130],[123,131],[60,1],[66,132],[62,133],[63,133],[64,133],[61,1],[65,133]],"latestChangedDtsFile":"./index.d.ts","version":"6.0.2"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@dawn-ai/sandbox",
3
+ "version": "0.8.6",
4
+ "private": false,
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "homepage": "https://github.com/cacheplane/dawnai/tree/main/packages/sandbox#readme",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/cacheplane/dawnai.git",
11
+ "directory": "packages/sandbox"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/cacheplane/dawnai/issues"
15
+ },
16
+ "engines": {
17
+ "node": ">=22.12.0"
18
+ },
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "types": "./dist/index.d.ts",
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "default": "./dist/index.js"
27
+ },
28
+ "./testing": {
29
+ "types": "./dist/testing/index.d.ts",
30
+ "default": "./dist/testing/index.js"
31
+ }
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "dependencies": {
37
+ "@dawn-ai/workspace": "0.8.6"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "25.6.0",
41
+ "@dawn-ai/config-typescript": "0.8.5"
42
+ },
43
+ "scripts": {
44
+ "build": "tsc -b tsconfig.json",
45
+ "lint": "biome check --config-path ../config-biome/biome.json package.json src tsconfig.json vitest.config.ts",
46
+ "test": "vitest --run --config vitest.config.ts --passWithNoTests",
47
+ "typecheck": "tsc --noEmit"
48
+ }
49
+ }