deepadb 1.1.0 → 1.1.2
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 +202 -21
- package/NOTICE +16 -0
- package/README.md +95 -41
- package/build/bridge/adb-bridge.d.ts +14 -0
- package/build/bridge/adb-bridge.d.ts.map +1 -1
- package/build/bridge/adb-bridge.js +34 -5
- package/build/bridge/adb-bridge.js.map +1 -1
- package/build/bridge/device-manager.d.ts.map +1 -1
- package/build/bridge/device-manager.js +18 -9
- package/build/bridge/device-manager.js.map +1 -1
- package/build/bridge/local-bridge.d.ts +10 -2
- package/build/bridge/local-bridge.d.ts.map +1 -1
- package/build/bridge/local-bridge.js +51 -16
- package/build/bridge/local-bridge.js.map +1 -1
- package/build/config/config.d.ts +7 -0
- package/build/config/config.d.ts.map +1 -1
- package/build/config/config.js +26 -10
- package/build/config/config.js.map +1 -1
- package/build/graphql-api.d.ts.map +1 -1
- package/build/graphql-api.js +73 -3
- package/build/graphql-api.js.map +1 -1
- package/build/http-transport.d.ts.map +1 -1
- package/build/http-transport.js +44 -7
- package/build/http-transport.js.map +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +41 -16
- package/build/index.js.map +1 -1
- package/build/middleware/auth.d.ts.map +1 -1
- package/build/middleware/auth.js +43 -6
- package/build/middleware/auth.js.map +1 -1
- package/build/middleware/chipset.d.ts.map +1 -1
- package/build/middleware/chipset.js +16 -1
- package/build/middleware/chipset.js.map +1 -1
- package/build/middleware/cleanup.d.ts +39 -7
- package/build/middleware/cleanup.d.ts.map +1 -1
- package/build/middleware/cleanup.js +148 -16
- package/build/middleware/cleanup.js.map +1 -1
- package/build/middleware/fetch-utils.d.ts +50 -7
- package/build/middleware/fetch-utils.d.ts.map +1 -1
- package/build/middleware/fetch-utils.js +127 -14
- package/build/middleware/fetch-utils.js.map +1 -1
- package/build/middleware/fs-utils.d.ts +126 -0
- package/build/middleware/fs-utils.d.ts.map +1 -0
- package/build/middleware/fs-utils.js +229 -0
- package/build/middleware/fs-utils.js.map +1 -0
- package/build/middleware/logger.d.ts +16 -0
- package/build/middleware/logger.d.ts.map +1 -1
- package/build/middleware/logger.js +18 -0
- package/build/middleware/logger.js.map +1 -1
- package/build/middleware/output-processor.d.ts.map +1 -1
- package/build/middleware/output-processor.js +43 -8
- package/build/middleware/output-processor.js.map +1 -1
- package/build/middleware/parse-utils.d.ts +19 -0
- package/build/middleware/parse-utils.d.ts.map +1 -0
- package/build/middleware/parse-utils.js +30 -0
- package/build/middleware/parse-utils.js.map +1 -0
- package/build/middleware/png-utils.d.ts.map +1 -1
- package/build/middleware/png-utils.js +33 -11
- package/build/middleware/png-utils.js.map +1 -1
- package/build/middleware/result-handle.d.ts +76 -0
- package/build/middleware/result-handle.d.ts.map +1 -0
- package/build/middleware/result-handle.js +378 -0
- package/build/middleware/result-handle.js.map +1 -0
- package/build/middleware/sanitize.d.ts +26 -0
- package/build/middleware/sanitize.d.ts.map +1 -1
- package/build/middleware/sanitize.js +43 -2
- package/build/middleware/sanitize.js.map +1 -1
- package/build/middleware/security.d.ts.map +1 -1
- package/build/middleware/security.js +30 -5
- package/build/middleware/security.js.map +1 -1
- package/build/middleware/ui-dump.d.ts.map +1 -1
- package/build/middleware/ui-dump.js +30 -10
- package/build/middleware/ui-dump.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +36 -5
- package/build/server.js.map +1 -1
- package/build/tool-context.d.ts.map +1 -1
- package/build/tool-context.js +2 -0
- package/build/tool-context.js.map +1 -1
- package/build/tools/accessibility.d.ts.map +1 -1
- package/build/tools/accessibility.js +39 -40
- package/build/tools/accessibility.js.map +1 -1
- package/build/tools/at-commands.d.ts.map +1 -1
- package/build/tools/at-commands.js +61 -56
- package/build/tools/at-commands.js.map +1 -1
- package/build/tools/baseband.d.ts.map +1 -1
- package/build/tools/baseband.js +18 -7
- package/build/tools/baseband.js.map +1 -1
- package/build/tools/build.d.ts.map +1 -1
- package/build/tools/build.js +30 -8
- package/build/tools/build.js.map +1 -1
- package/build/tools/ci.d.ts.map +1 -1
- package/build/tools/ci.js +16 -5
- package/build/tools/ci.js.map +1 -1
- package/build/tools/control.d.ts.map +1 -1
- package/build/tools/control.js +19 -11
- package/build/tools/control.js.map +1 -1
- package/build/tools/device-farm.d.ts.map +1 -1
- package/build/tools/device-farm.js +27 -3
- package/build/tools/device-farm.js.map +1 -1
- package/build/tools/device-profiles.d.ts.map +1 -1
- package/build/tools/device-profiles.js +70 -8
- package/build/tools/device-profiles.js.map +1 -1
- package/build/tools/device.d.ts.map +1 -1
- package/build/tools/device.js +4 -2
- package/build/tools/device.js.map +1 -1
- package/build/tools/diagnostics.d.ts.map +1 -1
- package/build/tools/diagnostics.js +20 -10
- package/build/tools/diagnostics.js.map +1 -1
- package/build/tools/emulator.d.ts.map +1 -1
- package/build/tools/emulator.js +12 -13
- package/build/tools/emulator.js.map +1 -1
- package/build/tools/files.d.ts +27 -1
- package/build/tools/files.d.ts.map +1 -1
- package/build/tools/files.js +1109 -11
- package/build/tools/files.js.map +1 -1
- package/build/tools/firmware-analysis.d.ts.map +1 -1
- package/build/tools/firmware-analysis.js +35 -12
- package/build/tools/firmware-analysis.js.map +1 -1
- package/build/tools/forwarding.d.ts.map +1 -1
- package/build/tools/forwarding.js +284 -4
- package/build/tools/forwarding.js.map +1 -1
- package/build/tools/health.d.ts.map +1 -1
- package/build/tools/health.js +14 -3
- package/build/tools/health.js.map +1 -1
- package/build/tools/input-gestures.d.ts.map +1 -1
- package/build/tools/input-gestures.js +65 -13
- package/build/tools/input-gestures.js.map +1 -1
- package/build/tools/logcat-watch.d.ts.map +1 -1
- package/build/tools/logcat-watch.js +21 -14
- package/build/tools/logcat-watch.js.map +1 -1
- package/build/tools/logs.d.ts.map +1 -1
- package/build/tools/logs.js +8 -4
- package/build/tools/logs.js.map +1 -1
- package/build/tools/mirroring.d.ts.map +1 -1
- package/build/tools/mirroring.js +21 -19
- package/build/tools/mirroring.js.map +1 -1
- package/build/tools/multi-device.d.ts.map +1 -1
- package/build/tools/multi-device.js +10 -0
- package/build/tools/multi-device.js.map +1 -1
- package/build/tools/network-capture.d.ts.map +1 -1
- package/build/tools/network-capture.js +32 -8
- package/build/tools/network-capture.js.map +1 -1
- package/build/tools/network-discovery.d.ts.map +1 -1
- package/build/tools/network-discovery.js +11 -2
- package/build/tools/network-discovery.js.map +1 -1
- package/build/tools/ota-monitor.d.ts.map +1 -1
- package/build/tools/ota-monitor.js +26 -12
- package/build/tools/ota-monitor.js.map +1 -1
- package/build/tools/packages.d.ts.map +1 -1
- package/build/tools/packages.js +18 -11
- package/build/tools/packages.js.map +1 -1
- package/build/tools/plugins.d.ts +18 -0
- package/build/tools/plugins.d.ts.map +1 -1
- package/build/tools/plugins.js +47 -2
- package/build/tools/plugins.js.map +1 -1
- package/build/tools/prompts.d.ts.map +1 -1
- package/build/tools/prompts.js +2 -0
- package/build/tools/prompts.js.map +1 -1
- package/build/tools/qemu.d.ts +18 -0
- package/build/tools/qemu.d.ts.map +1 -1
- package/build/tools/qemu.js +42 -18
- package/build/tools/qemu.js.map +1 -1
- package/build/tools/registry.d.ts.map +1 -1
- package/build/tools/registry.js +76 -26
- package/build/tools/registry.js.map +1 -1
- package/build/tools/regression.d.ts +37 -0
- package/build/tools/regression.d.ts.map +1 -1
- package/build/tools/regression.js +63 -22
- package/build/tools/regression.js.map +1 -1
- package/build/tools/resources.d.ts.map +1 -1
- package/build/tools/resources.js +62 -15
- package/build/tools/resources.js.map +1 -1
- package/build/tools/result-handles.d.ts +37 -0
- package/build/tools/result-handles.d.ts.map +1 -0
- package/build/tools/result-handles.js +286 -0
- package/build/tools/result-handles.js.map +1 -0
- package/build/tools/ril-intercept.d.ts.map +1 -1
- package/build/tools/ril-intercept.js +15 -18
- package/build/tools/ril-intercept.js.map +1 -1
- package/build/tools/screen-record.d.ts.map +1 -1
- package/build/tools/screen-record.js +34 -5
- package/build/tools/screen-record.js.map +1 -1
- package/build/tools/screenshot-diff.d.ts.map +1 -1
- package/build/tools/screenshot-diff.js +29 -21
- package/build/tools/screenshot-diff.js.map +1 -1
- package/build/tools/selinux-audit.d.ts.map +1 -1
- package/build/tools/selinux-audit.js +7 -5
- package/build/tools/selinux-audit.js.map +1 -1
- package/build/tools/sensors.d.ts +18 -0
- package/build/tools/sensors.d.ts.map +1 -0
- package/build/tools/sensors.js +555 -0
- package/build/tools/sensors.js.map +1 -0
- package/build/tools/shell.d.ts.map +1 -1
- package/build/tools/shell.js +9 -0
- package/build/tools/shell.js.map +1 -1
- package/build/tools/snapshot.d.ts.map +1 -1
- package/build/tools/snapshot.js +38 -19
- package/build/tools/snapshot.js.map +1 -1
- package/build/tools/split-apk.d.ts.map +1 -1
- package/build/tools/split-apk.js +48 -24
- package/build/tools/split-apk.js.map +1 -1
- package/build/tools/test-gen.d.ts.map +1 -1
- package/build/tools/test-gen.js +29 -10
- package/build/tools/test-gen.js.map +1 -1
- package/build/tools/testing.d.ts.map +1 -1
- package/build/tools/testing.js +27 -9
- package/build/tools/testing.js.map +1 -1
- package/build/tools/thermal-power.d.ts +8 -1
- package/build/tools/thermal-power.d.ts.map +1 -1
- package/build/tools/thermal-power.js +35 -10
- package/build/tools/thermal-power.js.map +1 -1
- package/build/tools/ui.d.ts.map +1 -1
- package/build/tools/ui.js +20 -13
- package/build/tools/ui.js.map +1 -1
- package/build/tools/wireless-firmware.d.ts.map +1 -1
- package/build/tools/wireless-firmware.js +21 -7
- package/build/tools/wireless-firmware.js.map +1 -1
- package/build/tools/wireless.d.ts.map +1 -1
- package/build/tools/wireless.js +39 -3
- package/build/tools/wireless.js.map +1 -1
- package/build/tools/workflow-market.d.ts.map +1 -1
- package/build/tools/workflow-market.js +67 -13
- package/build/tools/workflow-market.js.map +1 -1
- package/build/tools/workflow.d.ts.map +1 -1
- package/build/tools/workflow.js +77 -8
- package/build/tools/workflow.js.map +1 -1
- package/build/ws-transport.d.ts.map +1 -1
- package/build/ws-transport.js +21 -3
- package/build/ws-transport.js.map +1 -1
- package/package.json +20 -8
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// Copyright 2026 Jason <fullread@github>
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
1
3
|
/**
|
|
2
4
|
* ADB Bridge — Core subprocess wrapper for all ADB interactions.
|
|
3
5
|
*
|
|
@@ -7,16 +9,29 @@
|
|
|
7
9
|
*/
|
|
8
10
|
import { execFile, spawn } from "child_process";
|
|
9
11
|
import { config } from "../config/config.js";
|
|
10
|
-
import {
|
|
11
|
-
/**
|
|
12
|
+
import { shellQuote } from "../middleware/sanitize.js";
|
|
13
|
+
/**
|
|
14
|
+
* Patterns in stderr/message that indicate a transient, retryable failure.
|
|
15
|
+
*
|
|
16
|
+
* D2: each pattern is specific enough to avoid false positives from a tool's
|
|
17
|
+
* USER output. "closed" alone would have triggered retries on any tool whose
|
|
18
|
+
* output contained the word "closed" (e.g., `dumpsys activity | grep closed`);
|
|
19
|
+
* the anchored variants below only fire on adb's own transport-level errors.
|
|
20
|
+
*/
|
|
12
21
|
const TRANSIENT_PATTERNS = [
|
|
13
22
|
"device not found",
|
|
14
23
|
"device offline",
|
|
15
24
|
"no devices/emulators found",
|
|
16
25
|
"protocol fault",
|
|
17
|
-
"closed",
|
|
18
|
-
"Connection reset"
|
|
26
|
+
"error: closed", // adb transport-closed (was bare "closed")
|
|
27
|
+
"connection reset by peer", // network-level reset (was bare "Connection reset")
|
|
19
28
|
"ECONNRESET",
|
|
29
|
+
// N1 fix: removed "device unauthorized" — ADB authorization is a one-time
|
|
30
|
+
// user action (accept prompt on device screen), not a transient transport
|
|
31
|
+
// hiccup. Retrying it wastes the retry budget; let the operator see the
|
|
32
|
+
// unauthorized error immediately so they know to look at the device.
|
|
33
|
+
"daemon not running",
|
|
34
|
+
"cannot connect to daemon",
|
|
20
35
|
];
|
|
21
36
|
function isTransientError(error) {
|
|
22
37
|
const msg = error instanceof Error ? error.message : String(error);
|
|
@@ -113,7 +128,7 @@ export class AdbBridge {
|
|
|
113
128
|
}
|
|
114
129
|
/** Execute a root shell command (via su). */
|
|
115
130
|
async rootShell(command, options = {}) {
|
|
116
|
-
return this.exec(["shell", `su -c
|
|
131
|
+
return this.exec(["shell", `su -c ${shellQuote(command)}`], options);
|
|
117
132
|
}
|
|
118
133
|
/** Verify ADB is accessible and return version info. */
|
|
119
134
|
async version() {
|
|
@@ -137,6 +152,20 @@ export class AdbBridge {
|
|
|
137
152
|
*
|
|
138
153
|
* In ADB mode: spawns `adb -s <serial> <args...>`
|
|
139
154
|
* LocalBridge overrides this to spawn commands directly.
|
|
155
|
+
*
|
|
156
|
+
* N6 CALLER CONTRACT: there is NO built-in size budget on accumulated
|
|
157
|
+
* stdout/stderr from the returned ChildProcess. A caller that forgets
|
|
158
|
+
* to drain stdout (no `.on("data", ...)` handler) will accumulate
|
|
159
|
+
* indefinitely in the OS pipe buffer until the child blocks on write.
|
|
160
|
+
* Current callers (logcat-watch.ts, ril-intercept.ts) implement their
|
|
161
|
+
* own ring-buffering with bounded size. Any new caller MUST either:
|
|
162
|
+
* (1) drain stdout via a handler that bounds in-memory accumulation,
|
|
163
|
+
* OR
|
|
164
|
+
* (2) discard stdout via `stdio: ["ignore", "ignore", "ignore"]`
|
|
165
|
+
* (override the default below) if output isn't needed,
|
|
166
|
+
* OR
|
|
167
|
+
* (3) pipe stdout to a file via Node's `pipe()` with rotation.
|
|
168
|
+
* Forgetting to drain is the most common spawn-based memory leak.
|
|
140
169
|
*/
|
|
141
170
|
spawnStreaming(args, device) {
|
|
142
171
|
const serial = device || config.defaultDevice;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb-bridge.js","sourceRoot":"","sources":["../../src/bridge/adb-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAmB,KAAK,EAAgB,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"adb-bridge.js","sourceRoot":"","sources":["../../src/bridge/adb-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-manager.d.ts","sourceRoot":"","sources":["../../src/bridge/device-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"device-manager.d.ts","sourceRoot":"","sources":["../../src/bridge/device-manager.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,gBAAgB,GAAG,MAAM,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAA4B;gBAE7B,MAAM,EAAE,SAAS;IAI7B;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAkB1C;;;OAGG;IACH,eAAe,IAAI,IAAI;IAIvB;;;OAGG;IACG,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CzD;;OAEG;IACG,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAQtE,OAAO,CAAC,eAAe;CA0BxB"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// Copyright 2026 Jason <fullread@github>
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
1
3
|
/**
|
|
2
4
|
* Device Manager — Discovery, caching, state tracking, and device selection.
|
|
3
5
|
*
|
|
@@ -6,6 +8,7 @@
|
|
|
6
8
|
* connection-related errors.
|
|
7
9
|
*/
|
|
8
10
|
import { config } from "../config/config.js";
|
|
11
|
+
import { OutputProcessor } from "../middleware/output-processor.js";
|
|
9
12
|
export class DeviceManager {
|
|
10
13
|
bridge;
|
|
11
14
|
cache = null;
|
|
@@ -79,23 +82,29 @@ export class DeviceManager {
|
|
|
79
82
|
async getDeviceProps(serial) {
|
|
80
83
|
const device = await this.resolveDevice(serial);
|
|
81
84
|
const result = await this.bridge.shell("getprop", { device: device.serial });
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (match) {
|
|
86
|
-
props[match[1]] = match[2] ?? "";
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return props;
|
|
85
|
+
// P2 fix: delegate parsing to the canonical OutputProcessor.parseGetprop
|
|
86
|
+
// so the getprop format ([key]: [value]) has a single source of truth.
|
|
87
|
+
return OutputProcessor.parseGetprop(result.stdout);
|
|
90
88
|
}
|
|
91
89
|
parseDeviceLine(line) {
|
|
92
90
|
const parts = line.split(/\s+/);
|
|
91
|
+
// P1 fix: defend against malformed adb output. Previously a single-token
|
|
92
|
+
// line ("foo") would produce { serial: "foo", state: undefined } which
|
|
93
|
+
// then propagated as an undefined-state device into the device list. Now
|
|
94
|
+
// we require both serial and state, and treat missing state as "unknown".
|
|
95
|
+
if (parts.length < 2) {
|
|
96
|
+
return { serial: parts[0] ?? "", state: "unknown" };
|
|
97
|
+
}
|
|
93
98
|
const serial = parts[0];
|
|
94
99
|
const state = parts[1];
|
|
95
100
|
const info = { serial, state };
|
|
96
101
|
// Parse key:value pairs like model:Pixel_6a product:bluejay
|
|
97
102
|
for (let i = 2; i < parts.length; i++) {
|
|
98
|
-
const
|
|
103
|
+
const colonIdx = parts[i].indexOf(":");
|
|
104
|
+
if (colonIdx === -1)
|
|
105
|
+
continue;
|
|
106
|
+
const key = parts[i].substring(0, colonIdx);
|
|
107
|
+
const value = parts[i].substring(colonIdx + 1);
|
|
99
108
|
if (key === "model")
|
|
100
109
|
info.model = value;
|
|
101
110
|
else if (key === "product")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-manager.js","sourceRoot":"","sources":["../../src/bridge/device-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"device-manager.js","sourceRoot":"","sources":["../../src/bridge/device-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,8 +51,6 @@ export declare class LocalBridge extends AdbBridge {
|
|
|
51
51
|
*/
|
|
52
52
|
private static readonly ELEVATED_COMMANDS;
|
|
53
53
|
constructor(logger: Logger);
|
|
54
|
-
/** Quote a string for safe use as a shell argument (wraps in single quotes with escaping). */
|
|
55
|
-
private shellQuote;
|
|
56
54
|
/**
|
|
57
55
|
* Check if root (su) is available. Result is cached after first probe.
|
|
58
56
|
* Uses a fast, side-effect-free check: `su -c id`.
|
|
@@ -88,6 +86,16 @@ export declare class LocalBridge extends AdbBridge {
|
|
|
88
86
|
* Android filesystem paths that require elevated access in on-device mode.
|
|
89
87
|
* Commands referencing these paths need su to bypass scoped storage restrictions.
|
|
90
88
|
* In ADB mode (uid=2000), these paths are accessible by default.
|
|
89
|
+
*
|
|
90
|
+
* E1 note: this is a SUBSTRING match against the raw command text, not an
|
|
91
|
+
* analysis of which paths the command actually accesses. `echo '/sdcard'`
|
|
92
|
+
* therefore triggers `su` wrapping even though no file is touched. That is
|
|
93
|
+
* a deliberate conservative bias — wrapping in `su` when not strictly
|
|
94
|
+
* needed is harmless (the command still works), while skipping the wrap
|
|
95
|
+
* for a command that DOES touch a restricted path would fail at runtime.
|
|
96
|
+
* The over-trigger pattern is the safe direction; do not "optimize" it to
|
|
97
|
+
* be more precise without first auditing every call site that depends on
|
|
98
|
+
* the existing behavior.
|
|
91
99
|
*/
|
|
92
100
|
private static readonly RESTRICTED_PATH_PATTERNS;
|
|
93
101
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/local-bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/local-bridge.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAA+C,YAAY,EAAE,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAY,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,qBAAa,WAAY,SAAQ,SAAS;IACxC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAuB;IAE9C;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAwB;IAE7C;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY,CAAqB;IAEhD,6EAA6E;IAC7E,OAAO,CAAC,aAAa,CAAwC;IAE7D,oFAAoF;IACpF,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhD,8EAA8E;IAC9E,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlD,8DAA8D;IAC9D,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAIzD;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAiBrC;gBAEQ,MAAM,EAAE,MAAM;IAM1B;;;OAGG;YACW,kBAAkB;IAkBhC;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAIf;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,UAAU;IAiElB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAuC;IAEvF;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;OAIG;IACY,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAqJrF,6DAA6D;IAC7D,OAAO,CAAC,SAAS;IAqDjB;;;;OAIG;YACW,mBAAmB;IAkDjC,mDAAmD;IACnD,OAAO,CAAC,UAAU;IAWlB,4CAA4C;IAC7B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAIvC,iCAAiC;IAClB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IASzC;;;;OAIG;IACM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY;CA0BxE"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// Copyright 2026 Jason <fullread@github>
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
1
3
|
/**
|
|
2
4
|
* Local Bridge — On-device execution without ADB.
|
|
3
5
|
*
|
|
@@ -15,7 +17,7 @@ import { execFile, spawn, spawnSync } from "child_process";
|
|
|
15
17
|
import { existsSync } from "fs";
|
|
16
18
|
import { AdbBridge, AdbError } from "./adb-bridge.js";
|
|
17
19
|
import { config } from "../config/config.js";
|
|
18
|
-
import { shellEscape } from "../middleware/sanitize.js";
|
|
20
|
+
import { shellEscape, shellQuote } from "../middleware/sanitize.js";
|
|
19
21
|
export class LocalBridge extends AdbBridge {
|
|
20
22
|
localLogger;
|
|
21
23
|
deviceInfoCache = null;
|
|
@@ -79,10 +81,6 @@ export class LocalBridge extends AdbBridge {
|
|
|
79
81
|
super(logger);
|
|
80
82
|
this.localLogger = logger;
|
|
81
83
|
}
|
|
82
|
-
/** Quote a string for safe use as a shell argument (wraps in single quotes with escaping). */
|
|
83
|
-
shellQuote(str) {
|
|
84
|
-
return `'${shellEscape(str)}'`;
|
|
85
|
-
}
|
|
86
84
|
/**
|
|
87
85
|
* Check if root (su) is available. Result is cached after first probe.
|
|
88
86
|
* Uses a fast, side-effect-free check: `su -c id`.
|
|
@@ -112,7 +110,7 @@ export class LocalBridge extends AdbBridge {
|
|
|
112
110
|
* This is the same escaping path used by AdbBridge.rootShell().
|
|
113
111
|
*/
|
|
114
112
|
elevate(command) {
|
|
115
|
-
return `su -c
|
|
113
|
+
return `su -c ${shellQuote(command)}`;
|
|
116
114
|
}
|
|
117
115
|
/**
|
|
118
116
|
* Find the `adb` binary for guest device communication.
|
|
@@ -207,6 +205,16 @@ export class LocalBridge extends AdbBridge {
|
|
|
207
205
|
* Android filesystem paths that require elevated access in on-device mode.
|
|
208
206
|
* Commands referencing these paths need su to bypass scoped storage restrictions.
|
|
209
207
|
* In ADB mode (uid=2000), these paths are accessible by default.
|
|
208
|
+
*
|
|
209
|
+
* E1 note: this is a SUBSTRING match against the raw command text, not an
|
|
210
|
+
* analysis of which paths the command actually accesses. `echo '/sdcard'`
|
|
211
|
+
* therefore triggers `su` wrapping even though no file is touched. That is
|
|
212
|
+
* a deliberate conservative bias — wrapping in `su` when not strictly
|
|
213
|
+
* needed is harmless (the command still works), while skipping the wrap
|
|
214
|
+
* for a command that DOES touch a restricted path would fail at runtime.
|
|
215
|
+
* The over-trigger pattern is the safe direction; do not "optimize" it to
|
|
216
|
+
* be more precise without first auditing every call site that depends on
|
|
217
|
+
* the existing behavior.
|
|
210
218
|
*/
|
|
211
219
|
static RESTRICTED_PATH_PATTERNS = /\/sdcard\b|\/storage\b|\/system\//;
|
|
212
220
|
/**
|
|
@@ -220,7 +228,15 @@ export class LocalBridge extends AdbBridge {
|
|
|
220
228
|
* uses shellEscape() to prevent injection within the single-quote context.
|
|
221
229
|
*/
|
|
222
230
|
commandNeedsElevation(command) {
|
|
223
|
-
//
|
|
231
|
+
// O4 note: this method does first-token extraction via simple whitespace
|
|
232
|
+
// split. CONTRACT: the `command` string passed in must already be a
|
|
233
|
+
// properly-formed shell command — i.e., embedded quoted strings with
|
|
234
|
+
// internal whitespace are not respected. `"my package" install` would
|
|
235
|
+
// tokenize as `"my`. All current callers build `command` from validated
|
|
236
|
+
// input (shellQuote-wrapped paths, alphanumeric package names from Zod),
|
|
237
|
+
// so this is safe in practice. Future callers must preserve this
|
|
238
|
+
// contract or use a proper shell-parser if they need to pass quoted
|
|
239
|
+
// first-token commands.
|
|
224
240
|
const firstToken = command.trimStart().split(/\s+/)[0] ?? "";
|
|
225
241
|
// Handle absolute paths: "/system/bin/am" → "am"
|
|
226
242
|
const cmdName = firstToken.includes("/") ? firstToken.split("/").pop() ?? "" : firstToken;
|
|
@@ -265,7 +281,7 @@ export class LocalBridge extends AdbBridge {
|
|
|
265
281
|
case "push":
|
|
266
282
|
// Local → device path. Elevate to write to restricted paths like /sdcard/.
|
|
267
283
|
{
|
|
268
|
-
const pushCmd = `cp -f ${
|
|
284
|
+
const pushCmd = `cp -f ${shellQuote(args[1])} ${shellQuote(args[2])}`;
|
|
269
285
|
return this.execLocal(hasRoot ? this.elevate(pushCmd) : pushCmd, options);
|
|
270
286
|
}
|
|
271
287
|
case "pull":
|
|
@@ -274,15 +290,22 @@ export class LocalBridge extends AdbBridge {
|
|
|
274
290
|
// The > redirect is evaluated by the outer sh (uid=Termux), so the
|
|
275
291
|
// created file inherits the Termux user's ownership.
|
|
276
292
|
if (hasRoot) {
|
|
277
|
-
const pullCmd = `su -c 'cat ${shellEscape(args[1])}' > ${
|
|
293
|
+
const pullCmd = `su -c 'cat ${shellEscape(args[1])}' > ${shellQuote(args[2])}`;
|
|
278
294
|
return this.execLocal(pullCmd, options);
|
|
279
295
|
}
|
|
280
|
-
return this.execLocal(`cp -f ${
|
|
296
|
+
return this.execLocal(`cp -f ${shellQuote(args[1])} ${shellQuote(args[2])}`, options);
|
|
281
297
|
case "install":
|
|
282
298
|
// args = ["install", ...flags, path] → pm install
|
|
283
299
|
// Flags are hardcoded (-r, -d), only the last arg (APK path) needs quoting
|
|
300
|
+
// O5 note: SANITIZATION-AT-CALLER CONTRACT. The flag tokens between
|
|
301
|
+
// index 1 and length-1 are NOT shellQuote-wrapped because they come
|
|
302
|
+
// from a closed set of literals (-r, -d, -t, etc.) hardcoded in
|
|
303
|
+
// tool modules. If a future caller passes operator-supplied flag
|
|
304
|
+
// values here, they MUST shellQuote them or the unquoted join() will
|
|
305
|
+
// break out of the shell context. Audit any new install-tool caller
|
|
306
|
+
// for adherence.
|
|
284
307
|
{
|
|
285
|
-
const installCmd = `pm install ${args.slice(1, -1).join(" ")} ${
|
|
308
|
+
const installCmd = `pm install ${args.slice(1, -1).join(" ")} ${shellQuote(args[args.length - 1])}`;
|
|
286
309
|
return this.execLocal(hasRoot ? this.elevate(installCmd) : installCmd, options);
|
|
287
310
|
}
|
|
288
311
|
case "install-multiple":
|
|
@@ -292,18 +315,30 @@ export class LocalBridge extends AdbBridge {
|
|
|
292
315
|
const imArgs = args.slice(1);
|
|
293
316
|
const flags = imArgs.filter(a => a.startsWith("-"));
|
|
294
317
|
const paths = imArgs.filter(a => !a.startsWith("-"));
|
|
295
|
-
const imCmd = `pm install-multiple ${flags.join(" ")} ${paths.map(p =>
|
|
318
|
+
const imCmd = `pm install-multiple ${flags.join(" ")} ${paths.map(p => shellQuote(p)).join(" ")}`;
|
|
296
319
|
return this.execLocal(hasRoot ? this.elevate(imCmd) : imCmd, options);
|
|
297
320
|
}
|
|
298
321
|
case "uninstall":
|
|
299
322
|
// args = ["uninstall", ...flags, package] → pm uninstall
|
|
300
|
-
//
|
|
323
|
+
// O6 fix: shellQuote non-flag args so a package name surviving
|
|
324
|
+
// upstream validation but containing whitespace (validateShellArg
|
|
325
|
+
// doesn't reject whitespace per D1) doesn't word-split here. Flags
|
|
326
|
+
// (starting with "-") are passed through unquoted since they are
|
|
327
|
+
// server-controlled enum values, never user-supplied.
|
|
301
328
|
{
|
|
302
|
-
const
|
|
329
|
+
const unArgs = args.slice(1).map(a => a.startsWith("-") ? a : shellQuote(a)).join(" ");
|
|
330
|
+
const uninstallCmd = `pm uninstall ${unArgs}`;
|
|
303
331
|
return this.execLocal(hasRoot ? this.elevate(uninstallCmd) : uninstallCmd, options);
|
|
304
332
|
}
|
|
305
333
|
case "logcat":
|
|
306
334
|
// args = ["logcat", ...flags] → direct logcat
|
|
335
|
+
// O7 note: SANITIZATION-AT-CALLER CONTRACT (matches O5). Logcat
|
|
336
|
+
// flags are hardcoded literals from tool modules (-v, -b, -d, --pid,
|
|
337
|
+
// --regex) plus operator-supplied values for some of them (tag,
|
|
338
|
+
// pid). Tools that pass tag/pid values are responsible for
|
|
339
|
+
// shellQuote-wrapping at construction time — the join(" ") here
|
|
340
|
+
// does not re-wrap. Current callers all wrap; new callers MUST
|
|
341
|
+
// preserve this contract.
|
|
307
342
|
return this.execLocal(`logcat ${args.slice(1).join(" ")}`, options);
|
|
308
343
|
case "reboot":
|
|
309
344
|
{
|
|
@@ -334,8 +369,8 @@ export class LocalBridge extends AdbBridge {
|
|
|
334
369
|
const okMatch = bzResult.stdout.match(/OK:(.+)/);
|
|
335
370
|
if (okMatch && destPath) {
|
|
336
371
|
const generatedPath = okMatch[1].trim();
|
|
337
|
-
const cpCmd = `cp -f ${
|
|
338
|
-
const rmCmd = `rm -f ${
|
|
372
|
+
const cpCmd = `cp -f ${shellQuote(generatedPath)} ${shellQuote(destPath)}`;
|
|
373
|
+
const rmCmd = `rm -f ${shellQuote(generatedPath)}`;
|
|
339
374
|
await this.execLocal(hasRoot ? this.elevate(cpCmd) : cpCmd, { ignoreExitCode: true });
|
|
340
375
|
await this.execLocal(hasRoot ? this.elevate(rmCmd) : rmCmd, { ignoreExitCode: true });
|
|
341
376
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-bridge.js","sourceRoot":"","sources":["../../src/bridge/local-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-bridge.js","sourceRoot":"","sources":["../../src/bridge/local-bridge.ts"],"names":[],"mappings":"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"}
|
package/build/config/config.d.ts
CHANGED
|
@@ -24,6 +24,13 @@ export interface DeepADBConfig {
|
|
|
24
24
|
retryCount: number;
|
|
25
25
|
/** Base delay between retries in milliseconds (doubles each retry) */
|
|
26
26
|
retryBaseDelay: number;
|
|
27
|
+
/**
|
|
28
|
+
* Log level for the Logger middleware. Q1 fix: previously absent from
|
|
29
|
+
* the interface (DA_LOG_LEVEL was read directly in index.ts at Logger
|
|
30
|
+
* instantiation), causing type-blind reads elsewhere. Reading through
|
|
31
|
+
* this field gives compile-time visibility.
|
|
32
|
+
*/
|
|
33
|
+
logLevel: "debug" | "info" | "warn" | "error";
|
|
27
34
|
}
|
|
28
35
|
/**
|
|
29
36
|
* Detect if we're running directly on an Android device (e.g., Termux).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAmBH,eAAO,MAAM,OAAO,QAAW,CAAC;AAEhC,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAEhB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IAEvB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IAEtB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IAEvB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IAEtB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAEhB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IAEvB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IAEnB,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC/C;AAaD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAKpC;AAiBD,eAAO,MAAM,MAAM,EAAE,aAoBpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CA8BzC"}
|
package/build/config/config.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// Copyright 2026 Jason <fullread@github>
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
1
3
|
/**
|
|
2
4
|
* DeepADB Configuration
|
|
3
5
|
*
|
|
@@ -56,16 +58,9 @@ function getTempDir() {
|
|
|
56
58
|
? `${process.env.TEMP ?? "C:\\Temp"}\\deepadb`
|
|
57
59
|
: "/tmp/deepadb";
|
|
58
60
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const parsed = parseInt(value, 10);
|
|
63
|
-
if (isNaN(parsed) || parsed < 0) {
|
|
64
|
-
console.error(`[DeepADB] Invalid config value "${value}", using default: ${fallback}`);
|
|
65
|
-
return fallback;
|
|
66
|
-
}
|
|
67
|
-
return parsed;
|
|
68
|
-
}
|
|
61
|
+
// Q2 fix: parseIntSafe extracted to src/middleware/parse-utils.ts as the
|
|
62
|
+
// single source of truth (previously duplicated here and in result-handle.ts).
|
|
63
|
+
import { parseIntSafe } from "../middleware/parse-utils.js";
|
|
69
64
|
export const config = {
|
|
70
65
|
adbPath: process.env.ADB_PATH ?? getDefaultAdbPath(),
|
|
71
66
|
commandTimeout: parseIntSafe(process.env.DA_TIMEOUT, 30000),
|
|
@@ -76,6 +71,17 @@ export const config = {
|
|
|
76
71
|
deviceCacheTtl: parseIntSafe(process.env.DA_CACHE_TTL, 5000),
|
|
77
72
|
retryCount: parseIntSafe(process.env.DA_RETRY_COUNT, 1),
|
|
78
73
|
retryBaseDelay: parseIntSafe(process.env.DA_RETRY_DELAY, 500),
|
|
74
|
+
logLevel: (() => {
|
|
75
|
+
// Q1 fix: parse DA_LOG_LEVEL with case-insensitive whitelist validation.
|
|
76
|
+
// Falls back to "info" with a stderr warning on invalid input. This
|
|
77
|
+
// belongs in config.ts (single source of truth for env-var parsing)
|
|
78
|
+
// rather than at the Logger instantiation site in index.ts.
|
|
79
|
+
const raw = (process.env.DA_LOG_LEVEL ?? "info").toLowerCase();
|
|
80
|
+
if (raw === "debug" || raw === "info" || raw === "warn" || raw === "error")
|
|
81
|
+
return raw;
|
|
82
|
+
console.error(`[DeepADB] Invalid DA_LOG_LEVEL="${process.env.DA_LOG_LEVEL}", using "info". Valid: debug, info, warn, error.`);
|
|
83
|
+
return "info";
|
|
84
|
+
})(),
|
|
79
85
|
};
|
|
80
86
|
/**
|
|
81
87
|
* Validate configuration at startup. Returns warnings for non-fatal issues.
|
|
@@ -92,6 +98,16 @@ export function validateConfig() {
|
|
|
92
98
|
if (config.commandTimeout < 1000) {
|
|
93
99
|
warnings.push(`Command timeout (${config.commandTimeout}ms) is very low. Commands may fail prematurely.`);
|
|
94
100
|
}
|
|
101
|
+
// Q3 fix: clamp to a sane ceiling. With no cap, an operator typo
|
|
102
|
+
// (DA_MAX_OUTPUT=2000000000) would cause execFile's maxBuffer to be
|
|
103
|
+
// 2 × maxOutputSize = 4 GB, blowing up host memory before any tool
|
|
104
|
+
// even runs. 1 GB is well above any legitimate use (logcat dumps,
|
|
105
|
+
// bugreport zips fit comfortably) and cheap defense against typos.
|
|
106
|
+
const MAX_OUTPUT_CEILING = 1024 * 1024 * 1024;
|
|
107
|
+
if (config.maxOutputSize > MAX_OUTPUT_CEILING) {
|
|
108
|
+
warnings.push(`Max output size (${config.maxOutputSize}) exceeds 1 GB ceiling, clamping to ${MAX_OUTPUT_CEILING}. Adjust DA_MAX_OUTPUT if this is intentional.`);
|
|
109
|
+
config.maxOutputSize = MAX_OUTPUT_CEILING;
|
|
110
|
+
}
|
|
95
111
|
if (config.maxOutputSize < 5000) {
|
|
96
112
|
warnings.push(`Max output size (${config.maxOutputSize}) is very low. Output will be heavily truncated.`);
|
|
97
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;;GAIG;AACH,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,IAAI,QAAQ,GAAG,SAAS,CAAC;AACzB,IAAI,CAAC;IACH,sFAAsF;IACtF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3F,QAAQ,GAAG,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;AACtC,CAAC;AAAC,MAAM,CAAC,CAAC,mEAAmE,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-api.d.ts","sourceRoot":"","sources":["../src/graphql-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphql-api.d.ts","sourceRoot":"","sources":["../src/graphql-api.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAqChD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2JD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA6Jf"}
|