appium-adb 12.4.5 → 12.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/lib/logcat.d.ts +4 -4
- package/build/lib/logcat.d.ts.map +1 -1
- package/build/lib/logcat.js +25 -31
- package/build/lib/logcat.js.map +1 -1
- package/lib/logcat.js +25 -33
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [12.4.7](https://github.com/appium/appium-adb/compare/v12.4.6...v12.4.7) (2024-07-02)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* Fix recent entry retrieval ([#753](https://github.com/appium/appium-adb/issues/753)) ([67d4b06](https://github.com/appium/appium-adb/commit/67d4b06a1d1b65074c52759e197f2b369f9ede15))
|
|
6
|
+
|
|
7
|
+
## [12.4.6](https://github.com/appium/appium-adb/compare/v12.4.5...v12.4.6) (2024-06-30)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Prefer indexes over timestamps as logcat keys ([#752](https://github.com/appium/appium-adb/issues/752)) ([f499875](https://github.com/appium/appium-adb/commit/f49987590e9a4935e8fac07bdc1d237c4aec5cd1))
|
|
12
|
+
|
|
1
13
|
## [12.4.5](https://github.com/appium/appium-adb/compare/v12.4.4...v12.4.5) (2024-06-30)
|
|
2
14
|
|
|
3
15
|
### Miscellaneous Chores
|
package/build/lib/logcat.d.ts
CHANGED
|
@@ -36,10 +36,10 @@ declare class Logcat extends EventEmitter<[never]> {
|
|
|
36
36
|
debug: any;
|
|
37
37
|
debugTrace: any;
|
|
38
38
|
maxBufferSize: any;
|
|
39
|
-
/** @type {LRUCache<
|
|
40
|
-
logs: LRUCache<
|
|
41
|
-
/** @type {
|
|
42
|
-
|
|
39
|
+
/** @type {LRUCache<number, [string, number]>} */
|
|
40
|
+
logs: LRUCache<number, [string, number]>;
|
|
41
|
+
/** @type {number?} */
|
|
42
|
+
logIndexSinceLastRequest: number | null;
|
|
43
43
|
startCapture(opts?: {}): Promise<any>;
|
|
44
44
|
proc: SubProcess | null | undefined;
|
|
45
45
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logcat.d.ts","sourceRoot":"","sources":["../../lib/logcat.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;eAkDc,MAAM;WACN,KAAK;aACL,MAAM;;AAyDpB;IACE,uBAaC;IAXC,SAAmB;IACnB,eAAqD;IACrD,WAAuB;IACvB,gBAAiC;IACjC,mBAA0D;IAC1D,iDAAiD;IACjD,MADW,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAG3C;IACF,sBAAsB;IACtB,
|
|
1
|
+
{"version":3,"file":"logcat.d.ts","sourceRoot":"","sources":["../../lib/logcat.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;eAkDc,MAAM;WACN,KAAK;aACL,MAAM;;AAyDpB;IACE,uBAaC;IAXC,SAAmB;IACnB,eAAqD;IACrD,WAAuB;IACvB,gBAAiC;IACjC,mBAA0D;IAC1D,iDAAiD;IACjD,MADW,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAG3C;IACF,sBAAsB;IACtB,0BADW,MAAM,OAAC,CACkB;IAGtC,sCAoDC;IAzBG,oCAA8C;IA2BlD;;;;;OAKG;IACH,uBAJW,MAAM,gCAEJ,IAAI,CAgBhB;IAED;;;OAGG;IACH,eAFa,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;OAEG;IACH,WAFa,QAAQ,EAAE,CAkBtB;IAED;;OAEG;IACH,cAFa,QAAQ,EAAE,CAStB;IAED;;OAEG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CAUzB;CACF;6BAnQ4B,aAAa;yBAEjB,WAAW;2BADH,cAAc"}
|
package/build/lib/logcat.js
CHANGED
|
@@ -111,12 +111,12 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
111
111
|
this.debug = opts.debug;
|
|
112
112
|
this.debugTrace = opts.debugTrace;
|
|
113
113
|
this.maxBufferSize = opts.maxBufferSize || MAX_BUFFER_SIZE;
|
|
114
|
-
/** @type {LRUCache<
|
|
114
|
+
/** @type {LRUCache<number, [string, number]>} */
|
|
115
115
|
this.logs = new lru_cache_1.LRUCache({
|
|
116
116
|
max: this.maxBufferSize,
|
|
117
117
|
});
|
|
118
|
-
/** @type {
|
|
119
|
-
this.
|
|
118
|
+
/** @type {number?} */
|
|
119
|
+
this.logIndexSinceLastRequest = null;
|
|
120
120
|
}
|
|
121
121
|
async startCapture(opts = {}) {
|
|
122
122
|
let started = false;
|
|
@@ -149,21 +149,17 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
149
149
|
resolve();
|
|
150
150
|
}
|
|
151
151
|
});
|
|
152
|
-
this.proc.on('
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
return reject(new Error(`Logcat process failed to start. stderr: ${line}`));
|
|
157
|
-
}
|
|
158
|
-
this.outputHandler(line, 'STDERR: ');
|
|
152
|
+
this.proc.on('line-stderr', (line) => {
|
|
153
|
+
if (!started && EXECVP_ERR_PATTERN.test(line)) {
|
|
154
|
+
log.error('Logcat process failed to start');
|
|
155
|
+
return reject(new Error(`Logcat process failed to start. stderr: ${line}`));
|
|
159
156
|
}
|
|
157
|
+
this.outputHandler(line, 'STDERR: ');
|
|
160
158
|
resolve();
|
|
161
159
|
});
|
|
162
|
-
this.proc.on('
|
|
160
|
+
this.proc.on('line-stdout', (line) => {
|
|
161
|
+
this.outputHandler(line);
|
|
163
162
|
resolve();
|
|
164
|
-
for (const line of lines) {
|
|
165
|
-
this.outputHandler(line);
|
|
166
|
-
}
|
|
167
163
|
});
|
|
168
164
|
await this.proc.start(0);
|
|
169
165
|
// resolve after a timeout, even if no output was recorded
|
|
@@ -177,9 +173,13 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
177
173
|
* @returns {void}
|
|
178
174
|
*/
|
|
179
175
|
outputHandler(logLine, prefix = '') {
|
|
180
|
-
const hrTime = process.hrtime.bigint();
|
|
181
176
|
const timestamp = Date.now();
|
|
182
|
-
|
|
177
|
+
let recentIndex = -1;
|
|
178
|
+
for (const key of this.logs.keys()) {
|
|
179
|
+
recentIndex = key;
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
this.logs.set(++recentIndex, [logLine, timestamp]);
|
|
183
183
|
if (this.listenerCount('output')) {
|
|
184
184
|
this.emit('output', toLogEntry(logLine, timestamp));
|
|
185
185
|
}
|
|
@@ -206,22 +206,19 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
206
206
|
* @returns {LogEntry[]}
|
|
207
207
|
*/
|
|
208
208
|
getLogs() {
|
|
209
|
-
if (!this.logs.size) {
|
|
210
|
-
return [];
|
|
211
|
-
}
|
|
212
209
|
/** @type {LogEntry[]} */
|
|
213
210
|
const result = [];
|
|
214
|
-
/** @type {
|
|
215
|
-
let
|
|
216
|
-
for (const [
|
|
217
|
-
if (this.
|
|
218
|
-
|| !this.
|
|
219
|
-
|
|
211
|
+
/** @type {number?} */
|
|
212
|
+
let recentLogIndex = null;
|
|
213
|
+
for (const [index, [message, timestamp]] of /** @type {Generator} */ (this.logs.rentries())) {
|
|
214
|
+
if (this.logIndexSinceLastRequest && index > this.logIndexSinceLastRequest
|
|
215
|
+
|| !this.logIndexSinceLastRequest) {
|
|
216
|
+
recentLogIndex = index;
|
|
220
217
|
result.push(toLogEntry(message, timestamp));
|
|
221
218
|
}
|
|
222
219
|
}
|
|
223
|
-
if (
|
|
224
|
-
this.
|
|
220
|
+
if (lodash_1.default.isInteger(recentLogIndex)) {
|
|
221
|
+
this.logIndexSinceLastRequest = recentLogIndex;
|
|
225
222
|
}
|
|
226
223
|
return result;
|
|
227
224
|
}
|
|
@@ -229,12 +226,9 @@ class Logcat extends node_events_1.EventEmitter {
|
|
|
229
226
|
* @returns {LogEntry[]}
|
|
230
227
|
*/
|
|
231
228
|
getAllLogs() {
|
|
232
|
-
if (!this.logs.size) {
|
|
233
|
-
return [];
|
|
234
|
-
}
|
|
235
229
|
/** @type {LogEntry[]} */
|
|
236
230
|
const result = [];
|
|
237
|
-
for (const [message, timestamp] of this.logs.
|
|
231
|
+
for (const [message, timestamp] of /** @type {Generator} */ (this.logs.rvalues())) {
|
|
238
232
|
result.push(toLogEntry(message, timestamp));
|
|
239
233
|
}
|
|
240
234
|
return result;
|
package/build/lib/logcat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logcat.js","sourceRoot":"","sources":["../../lib/logcat.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logcat.js","sourceRoot":"","sources":["../../lib/logcat.js"],"names":[],"mappings":"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"}
|
package/lib/logcat.js
CHANGED
|
@@ -115,12 +115,12 @@ class Logcat extends EventEmitter {
|
|
|
115
115
|
this.debug = opts.debug;
|
|
116
116
|
this.debugTrace = opts.debugTrace;
|
|
117
117
|
this.maxBufferSize = opts.maxBufferSize || MAX_BUFFER_SIZE;
|
|
118
|
-
/** @type {LRUCache<
|
|
118
|
+
/** @type {LRUCache<number, [string, number]>} */
|
|
119
119
|
this.logs = new LRUCache({
|
|
120
120
|
max: this.maxBufferSize,
|
|
121
121
|
});
|
|
122
|
-
/** @type {
|
|
123
|
-
this.
|
|
122
|
+
/** @type {number?} */
|
|
123
|
+
this.logIndexSinceLastRequest = null;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
async startCapture (opts = {}) {
|
|
@@ -159,21 +159,17 @@ class Logcat extends EventEmitter {
|
|
|
159
159
|
resolve();
|
|
160
160
|
}
|
|
161
161
|
});
|
|
162
|
-
this.proc.on('
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
return reject(new Error(`Logcat process failed to start. stderr: ${line}`));
|
|
167
|
-
}
|
|
168
|
-
this.outputHandler(line, 'STDERR: ');
|
|
162
|
+
this.proc.on('line-stderr', (line) => {
|
|
163
|
+
if (!started && EXECVP_ERR_PATTERN.test(line)) {
|
|
164
|
+
log.error('Logcat process failed to start');
|
|
165
|
+
return reject(new Error(`Logcat process failed to start. stderr: ${line}`));
|
|
169
166
|
}
|
|
167
|
+
this.outputHandler(line, 'STDERR: ');
|
|
170
168
|
resolve();
|
|
171
169
|
});
|
|
172
|
-
this.proc.on('
|
|
170
|
+
this.proc.on('line-stdout', (line) => {
|
|
171
|
+
this.outputHandler(line);
|
|
173
172
|
resolve();
|
|
174
|
-
for (const line of lines) {
|
|
175
|
-
this.outputHandler(line);
|
|
176
|
-
}
|
|
177
173
|
});
|
|
178
174
|
await this.proc.start(0);
|
|
179
175
|
// resolve after a timeout, even if no output was recorded
|
|
@@ -188,9 +184,13 @@ class Logcat extends EventEmitter {
|
|
|
188
184
|
* @returns {void}
|
|
189
185
|
*/
|
|
190
186
|
outputHandler (logLine, prefix = '') {
|
|
191
|
-
const hrTime = process.hrtime.bigint();
|
|
192
187
|
const timestamp = Date.now();
|
|
193
|
-
|
|
188
|
+
let recentIndex = -1;
|
|
189
|
+
for (const key of this.logs.keys()) {
|
|
190
|
+
recentIndex = key;
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
this.logs.set(++recentIndex, [logLine, timestamp]);
|
|
194
194
|
if (this.listenerCount('output')) {
|
|
195
195
|
this.emit('output', toLogEntry(logLine, timestamp));
|
|
196
196
|
}
|
|
@@ -219,23 +219,19 @@ class Logcat extends EventEmitter {
|
|
|
219
219
|
* @returns {LogEntry[]}
|
|
220
220
|
*/
|
|
221
221
|
getLogs () {
|
|
222
|
-
if (!this.logs.size) {
|
|
223
|
-
return [];
|
|
224
|
-
}
|
|
225
|
-
|
|
226
222
|
/** @type {LogEntry[]} */
|
|
227
223
|
const result = [];
|
|
228
|
-
/** @type {
|
|
229
|
-
let
|
|
230
|
-
for (const [
|
|
231
|
-
if (this.
|
|
232
|
-
|| !this.
|
|
233
|
-
|
|
224
|
+
/** @type {number?} */
|
|
225
|
+
let recentLogIndex = null;
|
|
226
|
+
for (const [index, [message, timestamp]] of /** @type {Generator} */ (this.logs.rentries())) {
|
|
227
|
+
if (this.logIndexSinceLastRequest && index > this.logIndexSinceLastRequest
|
|
228
|
+
|| !this.logIndexSinceLastRequest) {
|
|
229
|
+
recentLogIndex = index;
|
|
234
230
|
result.push(toLogEntry(message, timestamp));
|
|
235
231
|
}
|
|
236
232
|
}
|
|
237
|
-
if (
|
|
238
|
-
this.
|
|
233
|
+
if (_.isInteger(recentLogIndex)) {
|
|
234
|
+
this.logIndexSinceLastRequest = recentLogIndex;
|
|
239
235
|
}
|
|
240
236
|
return result;
|
|
241
237
|
}
|
|
@@ -244,13 +240,9 @@ class Logcat extends EventEmitter {
|
|
|
244
240
|
* @returns {LogEntry[]}
|
|
245
241
|
*/
|
|
246
242
|
getAllLogs () {
|
|
247
|
-
if (!this.logs.size) {
|
|
248
|
-
return [];
|
|
249
|
-
}
|
|
250
|
-
|
|
251
243
|
/** @type {LogEntry[]} */
|
|
252
244
|
const result = [];
|
|
253
|
-
for (const [message, timestamp] of this.logs.
|
|
245
|
+
for (const [message, timestamp] of /** @type {Generator} */ (this.logs.rvalues())) {
|
|
254
246
|
result.push(toLogEntry(message, timestamp));
|
|
255
247
|
}
|
|
256
248
|
return result;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-adb",
|
|
3
|
-
"version": "12.4.
|
|
3
|
+
"version": "12.4.7",
|
|
4
4
|
"description": "Android Debug Bridge interface",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"lru-cache": "^10.0.0",
|
|
58
58
|
"semver": "^7.0.0",
|
|
59
59
|
"source-map-support": "^0.x",
|
|
60
|
-
"teen_process": "^2.
|
|
60
|
+
"teen_process": "^2.2.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@appium/eslint-config-appium-ts": "^0.x",
|