browser-debugger-cli 0.6.7 → 0.6.9
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/dist/__tests__/telemetry/filterDsl.unit.test.d.ts +12 -0
- package/dist/__tests__/telemetry/filterDsl.unit.test.d.ts.map +1 -0
- package/dist/__tests__/telemetry/filterDsl.unit.test.js +374 -0
- package/dist/__tests__/telemetry/filterDsl.unit.test.js.map +1 -0
- package/dist/__tests__/telemetry/filterPresets.unit.test.d.ts +10 -0
- package/dist/__tests__/telemetry/filterPresets.unit.test.d.ts.map +1 -0
- package/dist/__tests__/telemetry/filterPresets.unit.test.js +89 -0
- package/dist/__tests__/telemetry/filterPresets.unit.test.js.map +1 -0
- package/dist/commands/__tests__/console.contract.test.d.ts +9 -0
- package/dist/commands/__tests__/console.contract.test.d.ts.map +1 -0
- package/dist/commands/__tests__/console.contract.test.js +118 -0
- package/dist/commands/__tests__/console.contract.test.js.map +1 -0
- package/dist/commands/cleanup.js +1 -1
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/console.d.ts +26 -0
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +195 -57
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/details.js +1 -1
- package/dist/commands/details.js.map +1 -1
- package/dist/commands/dom/DomElementResolver.js +2 -2
- package/dist/commands/dom/DomElementResolver.js.map +1 -1
- package/dist/commands/dom/a11y.d.ts.map +1 -1
- package/dist/commands/dom/a11y.js +30 -18
- package/dist/commands/dom/a11y.js.map +1 -1
- package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
- package/dist/commands/dom/formFillHelpers.js +64 -2
- package/dist/commands/dom/formFillHelpers.js.map +1 -1
- package/dist/commands/dom/formInteraction.js +4 -4
- package/dist/commands/dom/formInteraction.js.map +1 -1
- package/dist/commands/dom/helpers.d.ts +1 -1
- package/dist/commands/dom/helpers.d.ts.map +1 -1
- package/dist/commands/dom/helpers.js +3 -3
- package/dist/commands/dom/helpers.js.map +1 -1
- package/dist/commands/dom/index.d.ts.map +1 -1
- package/dist/commands/dom/index.js +4 -1
- package/dist/commands/dom/index.js.map +1 -1
- package/dist/commands/network/har.d.ts +14 -0
- package/dist/commands/network/har.d.ts.map +1 -0
- package/dist/commands/network/har.js +97 -0
- package/dist/commands/network/har.js.map +1 -0
- package/dist/commands/network/index.d.ts +18 -0
- package/dist/commands/network/index.d.ts.map +1 -0
- package/dist/commands/network/index.js +27 -0
- package/dist/commands/network/index.js.map +1 -0
- package/dist/commands/network/list.d.ts +14 -0
- package/dist/commands/network/list.d.ts.map +1 -0
- package/dist/commands/network/list.js +273 -0
- package/dist/commands/network/list.js.map +1 -0
- package/dist/commands/network/shared.d.ts +56 -0
- package/dist/commands/network/shared.d.ts.map +1 -0
- package/dist/commands/network/shared.js +174 -0
- package/dist/commands/network/shared.js.map +1 -0
- package/dist/commands/network.js +4 -4
- package/dist/commands/network.js.map +1 -1
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +7 -2
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.d.ts +19 -0
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
- package/dist/commands/shared/CommandRunner.js +30 -0
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/commonOptions.d.ts +8 -24
- package/dist/commands/shared/commonOptions.d.ts.map +1 -1
- package/dist/commands/shared/commonOptions.js +9 -25
- package/dist/commands/shared/commonOptions.js.map +1 -1
- package/dist/commands/shared/optionTypes.d.ts +42 -4
- package/dist/commands/shared/optionTypes.d.ts.map +1 -1
- package/dist/commands/shared/startHelpers.d.ts +2 -10
- package/dist/commands/shared/startHelpers.d.ts.map +1 -1
- package/dist/commands/shared/startHelpers.js +9 -4
- package/dist/commands/shared/startHelpers.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +3 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/stop.js +1 -1
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.js +1 -1
- package/dist/commands/tail.js.map +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/constants.d.ts +15 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/__tests__/commandRegistry.contract.test.js +6 -2
- package/dist/daemon/__tests__/commandRegistry.contract.test.js.map +1 -1
- package/dist/daemon/handlers/CommandHandlers.d.ts +5 -0
- package/dist/daemon/handlers/CommandHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/CommandHandlers.js +6 -1
- package/dist/daemon/handlers/CommandHandlers.js.map +1 -1
- package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/QueryHandlers.js +3 -1
- package/dist/daemon/handlers/QueryHandlers.js.map +1 -1
- package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
- package/dist/daemon/worker/commandRegistry.js +150 -53
- package/dist/daemon/worker/commandRegistry.js.map +1 -1
- package/dist/ipc/client.d.ts +10 -1
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +12 -2
- package/dist/ipc/client.js.map +1 -1
- package/dist/ipc/session/queries.d.ts +2 -0
- package/dist/ipc/session/queries.d.ts.map +1 -1
- package/dist/session/QueryCacheManager.d.ts +1 -1
- package/dist/session/QueryCacheManager.d.ts.map +1 -1
- package/dist/telemetry/__tests__/remoteObject.unit.test.d.ts +2 -0
- package/dist/telemetry/__tests__/remoteObject.unit.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/remoteObject.unit.test.js +261 -0
- package/dist/telemetry/__tests__/remoteObject.unit.test.js.map +1 -0
- package/dist/telemetry/console.d.ts +8 -8
- package/dist/telemetry/console.d.ts.map +1 -1
- package/dist/telemetry/console.js +142 -53
- package/dist/telemetry/console.js.map +1 -1
- package/dist/telemetry/filterDsl.d.ts +45 -0
- package/dist/telemetry/filterDsl.d.ts.map +1 -0
- package/dist/telemetry/filterDsl.js +299 -0
- package/dist/telemetry/filterDsl.js.map +1 -0
- package/dist/telemetry/filterPresets.d.ts +35 -0
- package/dist/telemetry/filterPresets.d.ts.map +1 -0
- package/dist/telemetry/filterPresets.js +76 -0
- package/dist/telemetry/filterPresets.js.map +1 -0
- package/dist/telemetry/network.d.ts.map +1 -1
- package/dist/telemetry/network.js +16 -8
- package/dist/telemetry/network.js.map +1 -1
- package/dist/telemetry/objectExpander.d.ts +35 -0
- package/dist/telemetry/objectExpander.d.ts.map +1 -0
- package/dist/telemetry/objectExpander.js +165 -0
- package/dist/telemetry/objectExpander.js.map +1 -0
- package/dist/telemetry/remoteObject.d.ts +41 -0
- package/dist/telemetry/remoteObject.d.ts.map +1 -0
- package/dist/telemetry/remoteObject.js +193 -0
- package/dist/telemetry/remoteObject.js.map +1 -0
- package/dist/telemetry/remoteObjectUtils.d.ts +40 -0
- package/dist/telemetry/remoteObjectUtils.d.ts.map +1 -0
- package/dist/telemetry/remoteObjectUtils.js +75 -0
- package/dist/telemetry/remoteObjectUtils.js.map +1 -0
- package/dist/telemetry/roleInference.d.ts +1 -1
- package/dist/telemetry/roleInference.d.ts.map +1 -1
- package/dist/types.d.ts +113 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/formatters/a11y.d.ts +1 -1
- package/dist/ui/formatters/a11y.d.ts.map +1 -1
- package/dist/ui/formatters/console.d.ts +143 -0
- package/dist/ui/formatters/console.d.ts.map +1 -0
- package/dist/ui/formatters/console.js +431 -0
- package/dist/ui/formatters/console.js.map +1 -0
- package/dist/ui/formatters/dom.d.ts +4 -4
- package/dist/ui/formatters/dom.d.ts.map +1 -1
- package/dist/ui/formatters/dom.js +5 -5
- package/dist/ui/formatters/dom.js.map +1 -1
- package/dist/ui/formatters/networkList.d.ts +19 -0
- package/dist/ui/formatters/networkList.d.ts.map +1 -0
- package/dist/ui/formatters/networkList.js +86 -0
- package/dist/ui/formatters/networkList.js.map +1 -0
- package/dist/ui/formatters/preview.d.ts +18 -0
- package/dist/ui/formatters/preview.d.ts.map +1 -1
- package/dist/ui/formatters/preview.js +13 -5
- package/dist/ui/formatters/preview.js.map +1 -1
- package/dist/ui/logging/logger.d.ts +1 -1
- package/dist/ui/logging/logger.d.ts.map +1 -1
- package/dist/ui/logging/logger.js.map +1 -1
- package/dist/ui/messages/consoleMessages.d.ts +12 -27
- package/dist/ui/messages/consoleMessages.d.ts.map +1 -1
- package/dist/ui/messages/consoleMessages.js +16 -31
- package/dist/ui/messages/consoleMessages.js.map +1 -1
- package/dist/ui/messages/networkMessages.d.ts +24 -0
- package/dist/ui/messages/networkMessages.d.ts.map +1 -0
- package/dist/ui/messages/networkMessages.js +30 -0
- package/dist/ui/messages/networkMessages.js.map +1 -0
- package/dist/utils/decisionTrees.d.ts.map +1 -1
- package/dist/utils/decisionTrees.js +17 -2
- package/dist/utils/decisionTrees.js.map +1 -1
- package/dist/utils/strings.d.ts +14 -0
- package/dist/utils/strings.d.ts.map +1 -0
- package/dist/utils/strings.js +23 -0
- package/dist/utils/strings.js.map +1 -0
- package/dist/utils/taskMappings.d.ts.map +1 -1
- package/dist/utils/taskMappings.js +18 -3
- package/dist/utils/taskMappings.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract tests for console command navigation filtering.
|
|
3
|
+
*
|
|
4
|
+
* Tests the public behavior of filterByCurrentNavigation:
|
|
5
|
+
* - Given messages from multiple page loads, returns only current navigation
|
|
6
|
+
* - Handles edge cases (empty, single navigation, missing IDs)
|
|
7
|
+
*/
|
|
8
|
+
import assert from 'node:assert';
|
|
9
|
+
import { describe, test } from 'node:test';
|
|
10
|
+
import { filterByCurrentNavigation } from '../../commands/console.js';
|
|
11
|
+
/**
|
|
12
|
+
* Create a test console message with minimal required fields.
|
|
13
|
+
*/
|
|
14
|
+
function createMessage(text, navigationId, type = 'log') {
|
|
15
|
+
const msg = {
|
|
16
|
+
text,
|
|
17
|
+
type,
|
|
18
|
+
timestamp: Date.now(),
|
|
19
|
+
};
|
|
20
|
+
if (navigationId !== undefined) {
|
|
21
|
+
msg.navigationId = navigationId;
|
|
22
|
+
}
|
|
23
|
+
return msg;
|
|
24
|
+
}
|
|
25
|
+
describe('filterByCurrentNavigation contract', () => {
|
|
26
|
+
describe('filters to current (most recent) navigation', () => {
|
|
27
|
+
test('returns only messages from highest navigationId', () => {
|
|
28
|
+
const messages = [
|
|
29
|
+
createMessage('old error', 1),
|
|
30
|
+
createMessage('old warning', 1),
|
|
31
|
+
createMessage('current error', 2),
|
|
32
|
+
createMessage('current log', 2),
|
|
33
|
+
];
|
|
34
|
+
const result = filterByCurrentNavigation(messages);
|
|
35
|
+
assert.strictEqual(result.length, 2);
|
|
36
|
+
assert.ok(result.every((m) => m.navigationId === 2));
|
|
37
|
+
assert.ok(result.some((m) => m.text === 'current error'));
|
|
38
|
+
assert.ok(result.some((m) => m.text === 'current log'));
|
|
39
|
+
});
|
|
40
|
+
test('handles three navigations correctly', () => {
|
|
41
|
+
const messages = [
|
|
42
|
+
createMessage('nav1', 1),
|
|
43
|
+
createMessage('nav2', 2),
|
|
44
|
+
createMessage('nav3-a', 3),
|
|
45
|
+
createMessage('nav3-b', 3),
|
|
46
|
+
];
|
|
47
|
+
const result = filterByCurrentNavigation(messages);
|
|
48
|
+
assert.strictEqual(result.length, 2);
|
|
49
|
+
assert.ok(result.every((m) => m.navigationId === 3));
|
|
50
|
+
});
|
|
51
|
+
test('preserves message order within navigation', () => {
|
|
52
|
+
const messages = [
|
|
53
|
+
createMessage('first', 2),
|
|
54
|
+
createMessage('second', 2),
|
|
55
|
+
createMessage('third', 2),
|
|
56
|
+
];
|
|
57
|
+
const result = filterByCurrentNavigation(messages);
|
|
58
|
+
assert.strictEqual(result.length, 3);
|
|
59
|
+
assert.strictEqual(result.at(0)?.text, 'first');
|
|
60
|
+
assert.strictEqual(result.at(1)?.text, 'second');
|
|
61
|
+
assert.strictEqual(result.at(2)?.text, 'third');
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
describe('edge cases', () => {
|
|
65
|
+
test('returns empty array for empty input', () => {
|
|
66
|
+
const result = filterByCurrentNavigation([]);
|
|
67
|
+
assert.strictEqual(result.length, 0);
|
|
68
|
+
});
|
|
69
|
+
test('returns all messages when single navigation', () => {
|
|
70
|
+
const messages = [
|
|
71
|
+
createMessage('a', 1),
|
|
72
|
+
createMessage('b', 1),
|
|
73
|
+
createMessage('c', 1),
|
|
74
|
+
];
|
|
75
|
+
const result = filterByCurrentNavigation(messages);
|
|
76
|
+
assert.strictEqual(result.length, 3);
|
|
77
|
+
});
|
|
78
|
+
test('handles messages without navigationId', () => {
|
|
79
|
+
const messages = [
|
|
80
|
+
createMessage('no-nav', undefined),
|
|
81
|
+
createMessage('with-nav', 1),
|
|
82
|
+
];
|
|
83
|
+
const result = filterByCurrentNavigation(messages);
|
|
84
|
+
// Messages without navigationId should be excluded (navigationId !== maxId)
|
|
85
|
+
assert.strictEqual(result.length, 1);
|
|
86
|
+
assert.strictEqual(result.at(0)?.text, 'with-nav');
|
|
87
|
+
});
|
|
88
|
+
test('handles all messages without navigationId', () => {
|
|
89
|
+
const messages = [
|
|
90
|
+
createMessage('no-nav-1', undefined),
|
|
91
|
+
createMessage('no-nav-2', undefined),
|
|
92
|
+
];
|
|
93
|
+
const result = filterByCurrentNavigation(messages);
|
|
94
|
+
// All have navigationId=undefined, max of [0,0] = 0, filter where navId === 0
|
|
95
|
+
// Since undefined !== 0, returns empty
|
|
96
|
+
assert.strictEqual(result.length, 0);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
describe('message types preserved', () => {
|
|
100
|
+
test('preserves all console message types', () => {
|
|
101
|
+
const messages = [
|
|
102
|
+
createMessage('error msg', 1, 'error'),
|
|
103
|
+
createMessage('warning msg', 1, 'warning'),
|
|
104
|
+
createMessage('log msg', 1, 'log'),
|
|
105
|
+
createMessage('info msg', 1, 'info'),
|
|
106
|
+
createMessage('debug msg', 1, 'debug'),
|
|
107
|
+
];
|
|
108
|
+
const result = filterByCurrentNavigation(messages);
|
|
109
|
+
assert.strictEqual(result.length, 5);
|
|
110
|
+
assert.ok(result.some((m) => m.type === 'error'));
|
|
111
|
+
assert.ok(result.some((m) => m.type === 'warning'));
|
|
112
|
+
assert.ok(result.some((m) => m.type === 'log'));
|
|
113
|
+
assert.ok(result.some((m) => m.type === 'info'));
|
|
114
|
+
assert.ok(result.some((m) => m.type === 'debug'));
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=console.contract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.contract.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/console.contract.test.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/cleanup.js
CHANGED
|
@@ -27,7 +27,7 @@ export function registerCleanupCommand(program) {
|
|
|
27
27
|
.option('-f, --force', 'Force cleanup even if session appears active', false)
|
|
28
28
|
.option('--remove-output', 'Also remove session.json output file', false)
|
|
29
29
|
.option('--aggressive', 'Kill orphaned daemon processes and all stale Chrome instances', false)
|
|
30
|
-
.addOption(jsonOption)
|
|
30
|
+
.addOption(jsonOption())
|
|
31
31
|
.action(async (options) => {
|
|
32
32
|
await runCommand(async (opts) => {
|
|
33
33
|
const pid = readPid();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAmB;IACxC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,OAAO,SAAS,CACd,OAAO,CAAC,OAAO,IAAI,0BAA0B,EAAE,EAC/C,OAAO,CAAC,MAAM,IAAI,2BAA2B,EAAE,EAC/C,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAClE,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,aAAa,EAAE,8CAA8C,EAAE,KAAK,CAAC;SAC5E,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,EAAE,KAAK,CAAC;SACxE,MAAM,CAAC,cAAc,EAAE,+DAA+D,EAAE,KAAK,CAAC;SAC9F,SAAS,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/commands/cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,33 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
|
+
import type { ConsoleMessage } from '../types.js';
|
|
3
|
+
import { type ConsoleLevel } from '../ui/formatters/console.js';
|
|
4
|
+
/**
|
|
5
|
+
* Filter messages to only include those from the current (most recent) navigation.
|
|
6
|
+
*
|
|
7
|
+
* Finds the highest navigationId (most recent page load) and returns only
|
|
8
|
+
* messages from that navigation. Messages without navigationId are excluded.
|
|
9
|
+
*
|
|
10
|
+
* @param messages - All console messages
|
|
11
|
+
* @returns Messages from the current page load only
|
|
12
|
+
*/
|
|
13
|
+
export declare function filterByCurrentNavigation(messages: ConsoleMessage[]): ConsoleMessage[];
|
|
14
|
+
/**
|
|
15
|
+
* Filter messages by level.
|
|
16
|
+
*
|
|
17
|
+
* @param messages - Console messages to filter
|
|
18
|
+
* @param level - Level to filter by (error, warning, info, debug)
|
|
19
|
+
* @returns Filtered messages matching the specified level
|
|
20
|
+
*/
|
|
21
|
+
export declare function filterByLevel(messages: ConsoleMessage[], level: ConsoleLevel): ConsoleMessage[];
|
|
2
22
|
/**
|
|
3
23
|
* Register console command.
|
|
4
24
|
*
|
|
25
|
+
* Provides smart console message inspection with:
|
|
26
|
+
* - Default: Problem-focused summary (errors + warnings deduplicated)
|
|
27
|
+
* - --list: Chronological view of all messages
|
|
28
|
+
* - --follow: Live streaming mode
|
|
29
|
+
* - --json: Machine-readable output with summary stats
|
|
30
|
+
*
|
|
5
31
|
* @param program - Commander.js Command instance to register commands on
|
|
6
32
|
*/
|
|
7
33
|
export declare function registerConsoleCommand(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/commands/console.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/commands/console.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAqIpC;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAYtF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE,CAE/F;AAkED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsC7D"}
|
package/dist/commands/console.js
CHANGED
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
import { Option } from 'commander';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { jsonOption } from '../commands/shared/commonOptions.js';
|
|
3
|
+
import { handleDaemonConnectionError } from '../commands/shared/daemonErrorHandler.js';
|
|
4
|
+
import { getErrorMessage } from '../connection/errors.js';
|
|
4
5
|
import { getPeek } from '../ipc/client.js';
|
|
5
6
|
import { validateIPCResponse } from '../ipc/index.js';
|
|
6
7
|
import { CommandError } from '../ui/errors/index.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
8
|
+
import { formatConsole, formatConsoleFollow, LEVEL_MAP, } from '../ui/formatters/console.js';
|
|
9
|
+
import { followingConsoleMessage, stoppedFollowingConsoleMessage, noConsoleDataMessage, } from '../ui/messages/consoleMessages.js';
|
|
9
10
|
import { invalidLastRangeError } from '../ui/messages/validation.js';
|
|
11
|
+
import { getExitCodeForConnectionError } from '../utils/errorMapping.js';
|
|
10
12
|
import { EXIT_CODES } from '../utils/exitCodes.js';
|
|
11
13
|
/**
|
|
12
14
|
* Validation limits for --last option.
|
|
13
15
|
*/
|
|
14
16
|
const MIN_LAST_ITEMS = 0;
|
|
15
17
|
const MAX_LAST_ITEMS = 10000;
|
|
18
|
+
const DEFAULT_LAST_ITEMS = 100;
|
|
19
|
+
const FOLLOW_MODE_MESSAGE_LIMIT = 20;
|
|
16
20
|
/**
|
|
17
|
-
* Console-specific --last option
|
|
21
|
+
* Console-specific --last option.
|
|
18
22
|
*/
|
|
19
|
-
const consoleLastOption = new Option('--last <n>',
|
|
20
|
-
.default(
|
|
23
|
+
const consoleLastOption = new Option('--last <n>', `Show last N console messages (0 = all, default: ${DEFAULT_LAST_ITEMS})`)
|
|
24
|
+
.default(DEFAULT_LAST_ITEMS)
|
|
21
25
|
.argParser((val) => {
|
|
22
26
|
const n = parseInt(val, 10);
|
|
23
27
|
if (isNaN(n) || n < MIN_LAST_ITEMS || n > MAX_LAST_ITEMS) {
|
|
@@ -26,77 +30,211 @@ const consoleLastOption = new Option('--last <n>', 'Show last N console messages
|
|
|
26
30
|
return n;
|
|
27
31
|
});
|
|
28
32
|
/**
|
|
29
|
-
*
|
|
33
|
+
* --list option for showing all messages chronologically.
|
|
34
|
+
* Note: Named differently from --all to avoid conflict with program-level -a/--all (start command).
|
|
35
|
+
*/
|
|
36
|
+
const listOption = new Option('-l, --list', 'List all messages chronologically').default(false);
|
|
37
|
+
/**
|
|
38
|
+
* --follow option for live streaming.
|
|
39
|
+
*/
|
|
40
|
+
const followOption = new Option('-f, --follow', 'Stream console messages in real-time').default(false);
|
|
41
|
+
/**
|
|
42
|
+
* --history option to show messages from all page loads.
|
|
43
|
+
* By default, only current navigation messages are shown.
|
|
44
|
+
*/
|
|
45
|
+
const historyOption = new Option('-H, --history', 'Show messages from all page loads (default: current only)').default(false);
|
|
46
|
+
/**
|
|
47
|
+
* Valid console levels for filtering.
|
|
48
|
+
*/
|
|
49
|
+
const VALID_LEVELS = ['error', 'warning', 'info', 'debug'];
|
|
50
|
+
/**
|
|
51
|
+
* --level option for filtering by message level.
|
|
52
|
+
*/
|
|
53
|
+
const levelOption = new Option('--level <level>', 'Filter by message level (error, warning, info, debug)').choices(VALID_LEVELS);
|
|
54
|
+
/**
|
|
55
|
+
* Fetch console messages from the daemon.
|
|
30
56
|
*
|
|
31
|
-
* @param
|
|
32
|
-
* @
|
|
33
|
-
* @returns Formatted message string
|
|
57
|
+
* @param options - Command options for error handling context
|
|
58
|
+
* @returns Console messages array or null if error handled
|
|
34
59
|
*/
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
async function fetchConsoleMessages(options) {
|
|
61
|
+
try {
|
|
62
|
+
// Pass lastN=0 to get all messages (worker applies filtering)
|
|
63
|
+
// We request all and filter client-side for flexibility
|
|
64
|
+
const response = await getPeek({ lastN: 0 });
|
|
65
|
+
try {
|
|
66
|
+
validateIPCResponse(response);
|
|
67
|
+
}
|
|
68
|
+
catch (validationError) {
|
|
69
|
+
const errorMsg = getErrorMessage(validationError);
|
|
70
|
+
const exitCode = getExitCodeForConnectionError(errorMsg);
|
|
71
|
+
const result = handleDaemonConnectionError(errorMsg, {
|
|
72
|
+
json: options.json,
|
|
73
|
+
follow: options.follow,
|
|
74
|
+
retryIntervalMs: 1000,
|
|
75
|
+
exitCode,
|
|
76
|
+
});
|
|
77
|
+
if (result.shouldExit) {
|
|
78
|
+
process.exit(result.exitCode);
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const output = response.data?.preview;
|
|
83
|
+
if (!output?.data.console) {
|
|
84
|
+
if (options.json) {
|
|
85
|
+
console.log(JSON.stringify({
|
|
86
|
+
success: false,
|
|
87
|
+
error: noConsoleDataMessage(),
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
console.error(noConsoleDataMessage());
|
|
92
|
+
}
|
|
93
|
+
process.exit(EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
94
|
+
}
|
|
95
|
+
return output.data.console;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
const result = handleDaemonConnectionError('Daemon not running', {
|
|
99
|
+
json: options.json,
|
|
100
|
+
follow: options.follow,
|
|
101
|
+
retryIntervalMs: 1000,
|
|
48
102
|
});
|
|
103
|
+
if (result.shouldExit) {
|
|
104
|
+
process.exit(result.exitCode);
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Filter messages to only include those from the current (most recent) navigation.
|
|
111
|
+
*
|
|
112
|
+
* Finds the highest navigationId (most recent page load) and returns only
|
|
113
|
+
* messages from that navigation. Messages without navigationId are excluded.
|
|
114
|
+
*
|
|
115
|
+
* @param messages - All console messages
|
|
116
|
+
* @returns Messages from the current page load only
|
|
117
|
+
*/
|
|
118
|
+
export function filterByCurrentNavigation(messages) {
|
|
119
|
+
if (messages.length === 0) {
|
|
120
|
+
return messages;
|
|
121
|
+
}
|
|
122
|
+
// Find the maximum navigationId (current page load)
|
|
123
|
+
const maxNavigationId = Math.max(...messages.map((m) => m.navigationId ?? 0).filter((id) => id !== undefined));
|
|
124
|
+
// Filter to only messages from current navigation
|
|
125
|
+
return messages.filter((m) => m.navigationId === maxNavigationId);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Filter messages by level.
|
|
129
|
+
*
|
|
130
|
+
* @param messages - Console messages to filter
|
|
131
|
+
* @param level - Level to filter by (error, warning, info, debug)
|
|
132
|
+
* @returns Filtered messages matching the specified level
|
|
133
|
+
*/
|
|
134
|
+
export function filterByLevel(messages, level) {
|
|
135
|
+
return messages.filter((m) => LEVEL_MAP[m.type] === level);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Apply navigation and level filters to console messages.
|
|
139
|
+
*
|
|
140
|
+
* @param messages - Raw console messages
|
|
141
|
+
* @param options - Filter options (history and level)
|
|
142
|
+
* @returns Filtered messages
|
|
143
|
+
*/
|
|
144
|
+
function applyMessageFilters(messages, options) {
|
|
145
|
+
let filtered = options.history ? messages : filterByCurrentNavigation(messages);
|
|
146
|
+
if (options.level) {
|
|
147
|
+
filtered = filterByLevel(filtered, options.level);
|
|
49
148
|
}
|
|
50
|
-
return
|
|
149
|
+
return filtered;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Build format options from command options.
|
|
153
|
+
*
|
|
154
|
+
* @param options - Command options
|
|
155
|
+
* @returns Format options for console formatters
|
|
156
|
+
*/
|
|
157
|
+
function buildFormatOptions(options) {
|
|
158
|
+
return {
|
|
159
|
+
json: options.json,
|
|
160
|
+
list: options.list,
|
|
161
|
+
follow: options.follow,
|
|
162
|
+
last: options.last,
|
|
163
|
+
history: options.history,
|
|
164
|
+
level: options.level,
|
|
165
|
+
};
|
|
51
166
|
}
|
|
52
167
|
/**
|
|
53
|
-
*
|
|
168
|
+
* Display console output based on options.
|
|
54
169
|
*
|
|
55
|
-
* @param
|
|
170
|
+
* @param messages - Console messages to display
|
|
171
|
+
* @param options - Command options
|
|
56
172
|
*/
|
|
57
|
-
function
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
60
|
-
|
|
173
|
+
function displayConsole(messages, options) {
|
|
174
|
+
const filteredMessages = applyMessageFilters(messages, options);
|
|
175
|
+
if (options.follow) {
|
|
176
|
+
console.clear();
|
|
61
177
|
}
|
|
62
|
-
|
|
178
|
+
console.log(formatConsole(filteredMessages, buildFormatOptions(options)));
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Display console in follow mode with streaming updates.
|
|
182
|
+
*
|
|
183
|
+
* @param messages - Console messages to display
|
|
184
|
+
* @param options - Command options (for --history and --level flags)
|
|
185
|
+
*/
|
|
186
|
+
function displayConsoleStreaming(messages, options) {
|
|
187
|
+
const filteredMessages = applyMessageFilters(messages, options);
|
|
188
|
+
const lastMessages = filteredMessages.slice(-FOLLOW_MODE_MESSAGE_LIMIT);
|
|
189
|
+
console.clear();
|
|
190
|
+
console.log(formatConsoleFollow(lastMessages));
|
|
63
191
|
}
|
|
64
192
|
/**
|
|
65
193
|
* Register console command.
|
|
66
194
|
*
|
|
195
|
+
* Provides smart console message inspection with:
|
|
196
|
+
* - Default: Problem-focused summary (errors + warnings deduplicated)
|
|
197
|
+
* - --list: Chronological view of all messages
|
|
198
|
+
* - --follow: Live streaming mode
|
|
199
|
+
* - --json: Machine-readable output with summary stats
|
|
200
|
+
*
|
|
67
201
|
* @param program - Commander.js Command instance to register commands on
|
|
68
202
|
*/
|
|
69
203
|
export function registerConsoleCommand(program) {
|
|
70
204
|
program
|
|
71
205
|
.command('console')
|
|
72
|
-
.description('
|
|
206
|
+
.description('Console message inspection and analysis')
|
|
207
|
+
.addOption(listOption)
|
|
208
|
+
.addOption(followOption)
|
|
209
|
+
.addOption(historyOption)
|
|
210
|
+
.addOption(levelOption)
|
|
73
211
|
.addOption(consoleLastOption)
|
|
74
|
-
.addOption(
|
|
75
|
-
.addOption(jsonOption)
|
|
212
|
+
.addOption(jsonOption())
|
|
76
213
|
.action(async (options) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
error: 'No console data available. Ensure console telemetry is active.',
|
|
85
|
-
exitCode: EXIT_CODES.RESOURCE_NOT_FOUND,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
let logs = [...output.data.console];
|
|
89
|
-
if (opts.filter) {
|
|
90
|
-
logs = logs.filter((log) => log.type === opts.filter);
|
|
91
|
-
}
|
|
92
|
-
if (opts.last > 0) {
|
|
93
|
-
logs = logs.slice(-opts.last);
|
|
94
|
-
}
|
|
95
|
-
return {
|
|
96
|
-
success: true,
|
|
97
|
-
data: { logs, ...(opts.filter && { filter: opts.filter }) },
|
|
214
|
+
if (options.follow) {
|
|
215
|
+
console.error(followingConsoleMessage());
|
|
216
|
+
const showConsole = async () => {
|
|
217
|
+
const messages = await fetchConsoleMessages(options);
|
|
218
|
+
if (messages) {
|
|
219
|
+
displayConsoleStreaming(messages, options);
|
|
220
|
+
}
|
|
98
221
|
};
|
|
99
|
-
|
|
222
|
+
await showConsole();
|
|
223
|
+
const followInterval = setInterval(() => {
|
|
224
|
+
void showConsole();
|
|
225
|
+
}, 1000);
|
|
226
|
+
process.on('SIGINT', () => {
|
|
227
|
+
clearInterval(followInterval);
|
|
228
|
+
console.error(stoppedFollowingConsoleMessage());
|
|
229
|
+
process.exit(EXIT_CODES.SUCCESS);
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
const messages = await fetchConsoleMessages(options);
|
|
234
|
+
if (messages) {
|
|
235
|
+
displayConsole(messages, options);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
100
238
|
});
|
|
101
239
|
}
|
|
102
240
|
//# sourceMappingURL=console.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/commands/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAInC,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/commands/console.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/details.js
CHANGED
|
@@ -30,7 +30,7 @@ export function registerDetailsCommand(program) {
|
|
|
30
30
|
.description('Get detailed information for a specific request or console message')
|
|
31
31
|
.argument('<type>', 'Type of item: "network" or "console"')
|
|
32
32
|
.argument('<id>', 'Request ID (for network) or index (for console)')
|
|
33
|
-
.addOption(jsonOption)
|
|
33
|
+
.addOption(jsonOption())
|
|
34
34
|
.action(async (type, id, options) => {
|
|
35
35
|
options.type = type;
|
|
36
36
|
options.id = id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../src/commands/details.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAsB,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAsB,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oEAAoE,CAAC;SACjF,QAAQ,CAAC,QAAQ,EAAE,sCAAsC,CAAC;SAC1D,QAAQ,CAAC,MAAM,EAAE,iDAAiD,CAAC;SACnE,SAAS,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../src/commands/details.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAsB,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAsB,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oEAAoE,CAAC;SACjF,QAAQ,CAAC,QAAQ,EAAE,sCAAsC,CAAC;SAC1D,QAAQ,CAAC,MAAM,EAAE,iDAAiD,CAAC;SACnE,SAAS,CAAC,UAAU,EAAE,CAAC;SACvB,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAU,EAAE,OAA8B,EAAE,EAAE;QACzE,OAAO,CAAC,IAAI,GAAG,IAA6B,CAAC;QAC7C,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAEhB,MAAM,UAAU,CACd,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC;oBAC1E,QAAQ,EAAE,UAAU,CAAC,iBAAiB;iBACvC,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAEtD,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,qBAAqB;oBAC5B,QAAQ,EAAE,UAAU,CAAC,kBAAkB;iBACxC,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB;aACF,CAAC;QACJ,CAAC,EACD,OAAO,EACP,aAAa,CACd,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -96,7 +96,7 @@ export class DomElementResolver {
|
|
|
96
96
|
if (index < 0 || index >= cachedQuery.nodes.length) {
|
|
97
97
|
return {
|
|
98
98
|
success: false,
|
|
99
|
-
error: `Index ${index} out of range (found ${cachedQuery.nodes.length}
|
|
99
|
+
error: `Index ${index} out of range (found ${cachedQuery.nodes.length} nodes from query "${cachedQuery.selector}")`,
|
|
100
100
|
exitCode: EXIT_CODES.INVALID_ARGUMENTS,
|
|
101
101
|
suggestion: `Use an index between 0 and ${cachedQuery.nodes.length - 1}`,
|
|
102
102
|
};
|
|
@@ -135,7 +135,7 @@ export class DomElementResolver {
|
|
|
135
135
|
}
|
|
136
136
|
const cachedQuery = validation.cache;
|
|
137
137
|
if (index < 0 || index >= cachedQuery.nodes.length) {
|
|
138
|
-
throw new CommandError(`Index ${index} out of range (found ${cachedQuery.nodes.length}
|
|
138
|
+
throw new CommandError(`Index ${index} out of range (found ${cachedQuery.nodes.length} nodes from query "${cachedQuery.selector}")`, {
|
|
139
139
|
suggestion: `Use an index between 0 and ${cachedQuery.nodes.length - 1}`,
|
|
140
140
|
}, EXIT_CODES.INVALID_ARGUMENTS);
|
|
141
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomElementResolver.js","sourceRoot":"","sources":["../../../src/commands/dom/DomElementResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAkClD;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAC,QAAQ,GAA8B,IAAI,CAAC;IAClD,YAAY,CAAoB;IAExC;;;;OAIG;IACH,YAAY,YAAgC;QAC1C,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,iBAAiB,CAAC,WAAW,EAAE,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW;QAChB,kBAAkB,CAAC,QAAQ,KAAK,IAAI,kBAAkB,EAAE,CAAC;QACzD,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAClB,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,OAAO,CAAC,eAAuB,EAAE,aAAsB;QAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAErD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAEtD,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,+BAA+B;oBAC1D,QAAQ,EAAE,UAAU,CAAC,iBAAiB;oBACtC,UAAU,EAAE,UAAU,CAAC,UAAU;iBAClC,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;YACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,SAAS,KAAK,wBAAwB,WAAW,CAAC,KAAK,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"DomElementResolver.js","sourceRoot":"","sources":["../../../src/commands/dom/DomElementResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/a11y.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/a11y.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0LzC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA2D1D"}
|