@vforsh/argus-core 0.2.0 → 0.4.0
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/.tsbuildinfo +1 -1
- package/dist/auth/state.d.ts +13 -0
- package/dist/auth/state.d.ts.map +1 -1
- package/dist/auth/state.js +31 -0
- package/dist/auth/state.js.map +1 -1
- package/dist/errorMessage.d.ts +9 -0
- package/dist/errorMessage.d.ts.map +1 -0
- package/dist/errorMessage.js +17 -0
- package/dist/errorMessage.js.map +1 -0
- package/dist/http/fetch.d.ts +34 -0
- package/dist/http/fetch.d.ts.map +1 -1
- package/dist/http/fetch.js +46 -4
- package/dist/http/fetch.js.map +1 -1
- package/dist/http/watcher.d.ts +34 -0
- package/dist/http/watcher.d.ts.map +1 -0
- package/dist/http/watcher.js +33 -0
- package/dist/http/watcher.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/protocol/http/auth.d.ts +25 -21
- package/dist/protocol/http/auth.d.ts.map +1 -1
- package/dist/protocol/http/auth.js +125 -0
- package/dist/protocol/http/auth.js.map +1 -1
- package/dist/protocol/http/code.d.ts +17 -12
- package/dist/protocol/http/code.d.ts.map +1 -1
- package/dist/protocol/http/code.js +53 -1
- package/dist/protocol/http/code.js.map +1 -1
- package/dist/protocol/http/dialog.d.ts +9 -6
- package/dist/protocol/http/dialog.d.ts.map +1 -1
- package/dist/protocol/http/dialog.js +21 -1
- package/dist/protocol/http/dialog.js.map +1 -1
- package/dist/protocol/http/dom.d.ts +61 -33
- package/dist/protocol/http/dom.d.ts.map +1 -1
- package/dist/protocol/http/dom.js +252 -1
- package/dist/protocol/http/dom.js.map +1 -1
- package/dist/protocol/http/domInteraction.d.ts +9 -9
- package/dist/protocol/http/domInteraction.d.ts.map +1 -1
- package/dist/protocol/http/domInteraction.js +3 -0
- package/dist/protocol/http/domInteraction.js.map +1 -1
- package/dist/protocol/http/emulation.d.ts +14 -21
- package/dist/protocol/http/emulation.d.ts.map +1 -1
- package/dist/protocol/http/emulation.js +99 -1
- package/dist/protocol/http/emulation.js.map +1 -1
- package/dist/protocol/http/errors.d.ts +51 -4
- package/dist/protocol/http/errors.d.ts.map +1 -1
- package/dist/protocol/http/errors.js +47 -1
- package/dist/protocol/http/errors.js.map +1 -1
- package/dist/protocol/http/eval.d.ts +22 -58
- package/dist/protocol/http/eval.d.ts.map +1 -1
- package/dist/protocol/http/eval.js +24 -1
- package/dist/protocol/http/eval.js.map +1 -1
- package/dist/protocol/http/extension.d.ts +52 -36
- package/dist/protocol/http/extension.d.ts.map +1 -1
- package/dist/protocol/http/extension.js +34 -1
- package/dist/protocol/http/extension.js.map +1 -1
- package/dist/protocol/http/locate.d.ts +9 -3
- package/dist/protocol/http/locate.d.ts.map +1 -1
- package/dist/protocol/http/locate.js +28 -1
- package/dist/protocol/http/locate.js.map +1 -1
- package/dist/protocol/http/logs.d.ts +9 -12
- package/dist/protocol/http/logs.d.ts.map +1 -1
- package/dist/protocol/http/net.d.ts +19 -27
- package/dist/protocol/http/net.d.ts.map +1 -1
- package/dist/protocol/http/netMock.d.ts +17 -27
- package/dist/protocol/http/netMock.d.ts.map +1 -1
- package/dist/protocol/http/netMock.js +126 -0
- package/dist/protocol/http/netMock.js.map +1 -1
- package/dist/protocol/http/query.d.ts +97 -0
- package/dist/protocol/http/query.d.ts.map +1 -0
- package/dist/protocol/http/query.js +79 -0
- package/dist/protocol/http/query.js.map +1 -0
- package/dist/protocol/http/record.d.ts +11 -6
- package/dist/protocol/http/record.d.ts.map +1 -1
- package/dist/protocol/http/record.js +56 -0
- package/dist/protocol/http/record.js.map +1 -1
- package/dist/protocol/http/screenshot.d.ts +18 -3
- package/dist/protocol/http/screenshot.d.ts.map +1 -1
- package/dist/protocol/http/screenshot.js +45 -1
- package/dist/protocol/http/screenshot.js.map +1 -1
- package/dist/protocol/http/snapshot.d.ts +5 -3
- package/dist/protocol/http/snapshot.d.ts.map +1 -1
- package/dist/protocol/http/snapshot.js +16 -1
- package/dist/protocol/http/snapshot.js.map +1 -1
- package/dist/protocol/http/status.d.ts +17 -9
- package/dist/protocol/http/status.d.ts.map +1 -1
- package/dist/protocol/http/status.js +12 -1
- package/dist/protocol/http/status.js.map +1 -1
- package/dist/protocol/http/storage.d.ts +7 -31
- package/dist/protocol/http/storage.d.ts.map +1 -1
- package/dist/protocol/http/storage.js +31 -1
- package/dist/protocol/http/storage.js.map +1 -1
- package/dist/protocol/http/throttle.d.ts +14 -21
- package/dist/protocol/http/throttle.d.ts.map +1 -1
- package/dist/protocol/http/throttle.js +27 -1
- package/dist/protocol/http/throttle.js.map +1 -1
- package/dist/protocol/http/trace.d.ts +9 -6
- package/dist/protocol/http/trace.d.ts.map +1 -1
- package/dist/protocol/http/trace.js +29 -1
- package/dist/protocol/http/trace.js.map +1 -1
- package/dist/protocol/http/visibility.d.ts +7 -3
- package/dist/protocol/http/visibility.d.ts.map +1 -1
- package/dist/protocol/http/visibility.js +19 -1
- package/dist/protocol/http/visibility.js.map +1 -1
- package/dist/protocol/http.d.ts +18 -16
- package/dist/protocol/http.d.ts.map +1 -1
- package/dist/protocol/http.js +17 -1
- package/dist/protocol/http.js.map +1 -1
- package/dist/protocol/native-messaging.d.ts +276 -0
- package/dist/protocol/native-messaging.d.ts.map +1 -0
- package/dist/protocol/native-messaging.js +19 -0
- package/dist/protocol/native-messaging.js.map +1 -0
- package/dist/protocol/scenario.d.ts +63 -0
- package/dist/protocol/scenario.d.ts.map +1 -0
- package/dist/protocol/scenario.js +2 -0
- package/dist/protocol/scenario.js.map +1 -0
- package/dist/protocol/schemaFields.d.ts +76 -0
- package/dist/protocol/schemaFields.d.ts.map +1 -0
- package/dist/protocol/schemaFields.js +152 -0
- package/dist/protocol/schemaFields.js.map +1 -0
- package/dist/protocol/version.d.ts +14 -0
- package/dist/protocol/version.d.ts.map +1 -1
- package/dist/protocol/version.js +21 -0
- package/dist/protocol/version.js.map +1 -1
- package/dist/registry/lock.d.ts.map +1 -1
- package/dist/registry/lock.js +2 -3
- package/dist/registry/lock.js.map +1 -1
- package/dist/registry/registry.d.ts +14 -0
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +20 -0
- package/dist/registry/registry.js.map +1 -1
- package/dist/textPattern.d.ts.map +1 -1
- package/dist/textPattern.js +2 -1
- package/dist/textPattern.js.map +1 -1
- package/dist/time.d.ts +20 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +39 -0
- package/dist/time.js.map +1 -0
- package/package.json +9 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domInteraction.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/domInteraction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domInteraction.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/domInteraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { domTargetPayload } from './dom.js';
|
|
1
2
|
import { defineProtocolSchema, invalidProtocolPayload, isProtocolObject, validProtocolPayload } from '../schema.js';
|
|
2
3
|
/** Runtime list of mouse buttons accepted by pointer-style interaction commands. */
|
|
3
4
|
export const MOUSE_BUTTONS = ['left', 'middle', 'right'];
|
|
@@ -143,4 +144,6 @@ const optionalPoint = (value, key) => {
|
|
|
143
144
|
}
|
|
144
145
|
return { ok: true, point: { x: field.x, y: field.y } };
|
|
145
146
|
};
|
|
147
|
+
/** Schema for POST /dom/hover request payloads. */
|
|
148
|
+
export const domHoverRequestSchema = defineProtocolSchema((value) => domTargetPayload(value));
|
|
146
149
|
//# sourceMappingURL=domInteraction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domInteraction.js","sourceRoot":"","sources":["../../../src/protocol/http/domInteraction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"domInteraction.js","sourceRoot":"","sources":["../../../src/protocol/http/domInteraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ErrorDetail, Ok } from './errors.js';
|
|
1
2
|
/** Viewport emulation parameters for device metrics override. */
|
|
2
3
|
export type EmulationViewport = {
|
|
3
4
|
/** Viewport width in CSS pixels. Must be a positive integer. */
|
|
@@ -41,8 +42,7 @@ export type EmulationRequest = {
|
|
|
41
42
|
action: 'clear';
|
|
42
43
|
};
|
|
43
44
|
/** POST /emulation response for the `set` action. */
|
|
44
|
-
export type EmulationSetResponse = {
|
|
45
|
-
ok: true;
|
|
45
|
+
export type EmulationSetResponse = Ok<{
|
|
46
46
|
/** Whether the watcher is currently attached to a CDP target. */
|
|
47
47
|
attached: boolean;
|
|
48
48
|
/** Whether the emulation state was applied to the current CDP session. False if queued (detached) or apply failed. */
|
|
@@ -50,14 +50,10 @@ export type EmulationSetResponse = {
|
|
|
50
50
|
/** The desired emulation state after the operation. */
|
|
51
51
|
state: EmulationState | null;
|
|
52
52
|
/** Optional error details when `applied` is false due to a CDP failure. */
|
|
53
|
-
error?:
|
|
54
|
-
|
|
55
|
-
code?: string;
|
|
56
|
-
} | null;
|
|
57
|
-
};
|
|
53
|
+
error?: ErrorDetail | null;
|
|
54
|
+
}>;
|
|
58
55
|
/** POST /emulation response for the `clear` action. */
|
|
59
|
-
export type EmulationClearResponse = {
|
|
60
|
-
ok: true;
|
|
56
|
+
export type EmulationClearResponse = Ok<{
|
|
61
57
|
/** Whether the watcher is currently attached to a CDP target. */
|
|
62
58
|
attached: boolean;
|
|
63
59
|
/** Whether the clear was applied (metrics + touch + UA restored). */
|
|
@@ -65,14 +61,10 @@ export type EmulationClearResponse = {
|
|
|
65
61
|
/** Always null after clear. */
|
|
66
62
|
state: null;
|
|
67
63
|
/** Optional error details when `applied` is false due to a CDP failure. */
|
|
68
|
-
error?:
|
|
69
|
-
|
|
70
|
-
code?: string;
|
|
71
|
-
} | null;
|
|
72
|
-
};
|
|
64
|
+
error?: ErrorDetail | null;
|
|
65
|
+
}>;
|
|
73
66
|
/** GET /emulation response. */
|
|
74
|
-
export type EmulationStatusResponse = {
|
|
75
|
-
ok: true;
|
|
67
|
+
export type EmulationStatusResponse = Ok<{
|
|
76
68
|
/** Whether the watcher is currently attached to a CDP target. */
|
|
77
69
|
attached: boolean;
|
|
78
70
|
/** Whether the desired state is currently applied to the attached target. */
|
|
@@ -84,9 +76,10 @@ export type EmulationStatusResponse = {
|
|
|
84
76
|
userAgent: string | null;
|
|
85
77
|
};
|
|
86
78
|
/** Last error from a failed apply attempt, if any. */
|
|
87
|
-
lastError?:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
79
|
+
lastError?: ErrorDetail | null;
|
|
80
|
+
}>;
|
|
81
|
+
/** Actions accepted by POST /emulation. */
|
|
82
|
+
export declare const EMULATION_ACTIONS: readonly ["set", "clear"];
|
|
83
|
+
/** Schema for POST /emulation request payloads. */
|
|
84
|
+
export declare const emulationRequestSchema: import("../schema.js").ProtocolSchema<EmulationRequest>;
|
|
92
85
|
//# sourceMappingURL=emulation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emulation.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/emulation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"emulation.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/emulation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAElD,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAAG;IAC/B,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAA;IACb,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,CAAA;IACzB,0CAA0C;IAC1C,MAAM,EAAE,OAAO,CAAA;CACf,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACnC,6DAA6D;IAC7D,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IACnC;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CAC3C,CAAA;AAED,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7F,qDAAqD;AACrD,MAAM,MAAM,oBAAoB,GAAG,EAAE,CAAC;IACrC,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAA;IACjB,sHAAsH;IACtH,OAAO,EAAE,OAAO,CAAA;IAChB,uDAAuD;IACvD,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;CAC1B,CAAC,CAAA;AAEF,uDAAuD;AACvD,MAAM,MAAM,sBAAsB,GAAG,EAAE,CAAC;IACvC,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAA;IACjB,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAA;IAChB,+BAA+B;IAC/B,KAAK,EAAE,IAAI,CAAA;IACX,2EAA2E;IAC3E,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;CAC1B,CAAC,CAAA;AAEF,+BAA+B;AAC/B,MAAM,MAAM,uBAAuB,GAAG,EAAE,CAAC;IACxC,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAA;IACjB,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAA;IAChB,yEAAyE;IACzE,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5B,6GAA6G;IAC7G,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IACtC,sDAAsD;IACtD,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;CAC9B,CAAC,CAAA;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,2BAA4B,CAAA;AAE1D,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,yDA2BjC,CAAA"}
|
|
@@ -1,2 +1,100 @@
|
|
|
1
|
-
|
|
1
|
+
import { defineProtocolSchema, invalidProtocolPayload, validProtocolPayload } from '../schema.js';
|
|
2
|
+
import { compact, optionalBoolean, optionalEnum, optionalNumber, optionalRecord, readFields, requireObject } from '../schemaFields.js';
|
|
3
|
+
/** Actions accepted by POST /emulation. */
|
|
4
|
+
export const EMULATION_ACTIONS = ['set', 'clear'];
|
|
5
|
+
/** Schema for POST /emulation request payloads. */
|
|
6
|
+
export const emulationRequestSchema = defineProtocolSchema((value) => {
|
|
7
|
+
const invalid = requireObject(value);
|
|
8
|
+
if (invalid)
|
|
9
|
+
return invalid;
|
|
10
|
+
const fields = readFields(value, {
|
|
11
|
+
action: (source, key) => optionalEnum(source, key, EMULATION_ACTIONS),
|
|
12
|
+
state: optionalRecord,
|
|
13
|
+
});
|
|
14
|
+
if (!fields.ok)
|
|
15
|
+
return fields;
|
|
16
|
+
const { action, state } = fields.value;
|
|
17
|
+
if (action == null) {
|
|
18
|
+
return invalidProtocolPayload(`action must be one of: ${EMULATION_ACTIONS.join(', ')}`);
|
|
19
|
+
}
|
|
20
|
+
if (action === 'clear') {
|
|
21
|
+
return validProtocolPayload({ action });
|
|
22
|
+
}
|
|
23
|
+
if (state == null) {
|
|
24
|
+
return invalidProtocolPayload('state is required for set action');
|
|
25
|
+
}
|
|
26
|
+
const parsed = parseEmulationState(state);
|
|
27
|
+
if (typeof parsed === 'string') {
|
|
28
|
+
return invalidProtocolPayload(parsed);
|
|
29
|
+
}
|
|
30
|
+
return validProtocolPayload({ action, state: parsed });
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Validate the nested emulation state.
|
|
34
|
+
*
|
|
35
|
+
* Each aspect is independently optional and `null` means "reset this one", so absence and
|
|
36
|
+
* an explicit null are not interchangeable — hence the explicit `!= null` checks rather
|
|
37
|
+
* than the flat readers used elsewhere.
|
|
38
|
+
*
|
|
39
|
+
* @returns The parsed state, or an error message.
|
|
40
|
+
*/
|
|
41
|
+
const parseEmulationState = (state) => {
|
|
42
|
+
const result = {};
|
|
43
|
+
if (state.viewport !== undefined) {
|
|
44
|
+
if (state.viewport === null) {
|
|
45
|
+
result.viewport = null;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const viewport = readFields(state, { viewport: optionalRecord });
|
|
49
|
+
if (!viewport.ok || viewport.value.viewport == null) {
|
|
50
|
+
return 'viewport must be an object or null';
|
|
51
|
+
}
|
|
52
|
+
const vp = viewport.value.viewport;
|
|
53
|
+
const parsed = readFields(vp, {
|
|
54
|
+
width: (source, key) => optionalNumber(source, key, { min: 1 }),
|
|
55
|
+
height: (source, key) => optionalNumber(source, key, { min: 1 }),
|
|
56
|
+
deviceScaleFactor: (source, key) => optionalNumber(source, key, { min: Number.EPSILON }),
|
|
57
|
+
mobile: optionalBoolean,
|
|
58
|
+
});
|
|
59
|
+
if (!parsed.ok) {
|
|
60
|
+
return 'viewport fields must be positive numbers with a boolean mobile flag';
|
|
61
|
+
}
|
|
62
|
+
const { width, height, deviceScaleFactor, mobile } = parsed.value;
|
|
63
|
+
if (width == null || !Number.isInteger(width))
|
|
64
|
+
return 'viewport.width must be a positive integer';
|
|
65
|
+
if (height == null || !Number.isInteger(height))
|
|
66
|
+
return 'viewport.height must be a positive integer';
|
|
67
|
+
if (deviceScaleFactor == null)
|
|
68
|
+
return 'viewport.deviceScaleFactor must be a finite number > 0';
|
|
69
|
+
if (mobile == null)
|
|
70
|
+
return 'viewport.mobile must be a boolean';
|
|
71
|
+
result.viewport = { width, height, deviceScaleFactor, mobile };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (state.touch !== undefined) {
|
|
75
|
+
if (state.touch === null) {
|
|
76
|
+
result.touch = null;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const touch = state.touch;
|
|
80
|
+
if (typeof touch?.enabled !== 'boolean') {
|
|
81
|
+
return 'touch.enabled must be a boolean';
|
|
82
|
+
}
|
|
83
|
+
result.touch = { enabled: touch.enabled };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (state.userAgent !== undefined) {
|
|
87
|
+
if (state.userAgent === null) {
|
|
88
|
+
result.userAgent = null;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
const ua = state.userAgent;
|
|
92
|
+
if (ua?.value !== null && (typeof ua?.value !== 'string' || ua.value === '')) {
|
|
93
|
+
return 'userAgent.value must be a non-empty string or null';
|
|
94
|
+
}
|
|
95
|
+
result.userAgent = { value: ua.value };
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return compact(result);
|
|
99
|
+
};
|
|
2
100
|
//# sourceMappingURL=emulation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emulation.js","sourceRoot":"","sources":["../../../src/protocol/http/emulation.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"emulation.js","sourceRoot":"","sources":["../../../src/protocol/http/emulation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Machine-readable error codes the watcher emits.
|
|
3
|
+
*
|
|
4
|
+
* The `ok: false` envelope is a stated repo invariant, but `code` was a bare `string`, so a
|
|
5
|
+
* watcher-side rename (say `body_not_available`) would silently stop matching the CLI check that
|
|
6
|
+
* reads it. Codes travel two ways — written straight into a route's envelope, and carried on a
|
|
7
|
+
* thrown `CodedError` that a route maps onto one — and both ends resolve to this union.
|
|
8
|
+
*
|
|
9
|
+
* Add a member here before emitting a new code; `isArgusErrorCode` keeps foreign codes (Node's
|
|
10
|
+
* `ENOENT`, for instance) from leaking onto the wire when an arbitrary error is mapped.
|
|
11
|
+
*
|
|
12
|
+
* The CLI's own local failures (native-host setup, platform support) use the same envelope and so
|
|
13
|
+
* draw from the same union.
|
|
14
|
+
*/
|
|
15
|
+
export declare const ARGUS_ERROR_CODES: readonly ["argus_executable_not_found", "body_not_available", "cdp_not_attached", "dialog_not_prompt", "extension_action_failed", "extension_frame_not_ready", "invalid_json", "invalid_match", "invalid_match_case", "invalid_net_filter", "invalid_net_request", "invalid_ref", "invalid_request", "log_epoch_evicted", "log_epoch_future", "log_epoch_invalid", "log_epoch_mismatch", "multiple_matches", "native_host_install_failed", "net_disabled", "net_request_not_found", "no_active_dialog", "not_available", "not_found", "not_interactable", "nth_out_of_range", "payload_too_large", "unexpected_matches", "unsupported_platform"];
|
|
16
|
+
/** A machine-readable failure code carried by {@link ErrorDetail}. */
|
|
17
|
+
export type ArgusErrorCode = (typeof ARGUS_ERROR_CODES)[number];
|
|
18
|
+
/** True when `value` is a code this protocol defines. */
|
|
19
|
+
export declare const isArgusErrorCode: (value: unknown) => value is ArgusErrorCode;
|
|
20
|
+
/** Error detail carried by {@link ErrorResponse} and by inline `lastError` fields. */
|
|
21
|
+
export type ErrorDetail = {
|
|
22
|
+
message: string;
|
|
23
|
+
code?: ArgusErrorCode;
|
|
24
|
+
};
|
|
1
25
|
/** Standard error payload for API failures. */
|
|
2
26
|
export type ErrorResponse = {
|
|
3
27
|
ok: false;
|
|
4
|
-
error:
|
|
5
|
-
message: string;
|
|
6
|
-
code?: string;
|
|
7
|
-
};
|
|
28
|
+
error: ErrorDetail;
|
|
8
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* A successful response payload, carrying the `ok: true` discriminant every Argus response shares.
|
|
32
|
+
*
|
|
33
|
+
* The envelope is a contract (see AGENTS.md), so it gets a type rather than being re-typed per
|
|
34
|
+
* response — a payload that omits the discriminant or widens it to `boolean` no longer compiles.
|
|
35
|
+
*/
|
|
36
|
+
export type Ok<T> = {
|
|
37
|
+
ok: true;
|
|
38
|
+
} & T;
|
|
39
|
+
/**
|
|
40
|
+
* Either a successful response or the standard failure envelope — what any watcher endpoint can
|
|
41
|
+
* actually return. Consumers used to rebuild `T | ErrorResponse` by hand at every call site.
|
|
42
|
+
*/
|
|
43
|
+
export type ApiResult<TResponse extends {
|
|
44
|
+
ok: true;
|
|
45
|
+
}> = TResponse | ErrorResponse;
|
|
46
|
+
/**
|
|
47
|
+
* A response payload with its `ok: true` discriminant removed.
|
|
48
|
+
*
|
|
49
|
+
* Consumers that already know a call succeeded (an SDK method that throws on failure,
|
|
50
|
+
* for instance) return this instead of hand-retyping every field of the wire response —
|
|
51
|
+
* so a new field on the protocol type reaches them for free.
|
|
52
|
+
*/
|
|
53
|
+
export type ResponseData<T extends {
|
|
54
|
+
ok: true;
|
|
55
|
+
}> = Omit<T, 'ok'>;
|
|
9
56
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/errors.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,knBA8BpB,CAAA;AAEV,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,cAC2B,CAAA;AAEtF,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,WAAW,CAAA;CAClB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG,CAAC,CAAA;AAEpC;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,IAAI,SAAS,GAAG,aAAa,CAAA;AAEjF;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA"}
|
|
@@ -1,2 +1,48 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Machine-readable error codes the watcher emits.
|
|
3
|
+
*
|
|
4
|
+
* The `ok: false` envelope is a stated repo invariant, but `code` was a bare `string`, so a
|
|
5
|
+
* watcher-side rename (say `body_not_available`) would silently stop matching the CLI check that
|
|
6
|
+
* reads it. Codes travel two ways — written straight into a route's envelope, and carried on a
|
|
7
|
+
* thrown `CodedError` that a route maps onto one — and both ends resolve to this union.
|
|
8
|
+
*
|
|
9
|
+
* Add a member here before emitting a new code; `isArgusErrorCode` keeps foreign codes (Node's
|
|
10
|
+
* `ENOENT`, for instance) from leaking onto the wire when an arbitrary error is mapped.
|
|
11
|
+
*
|
|
12
|
+
* The CLI's own local failures (native-host setup, platform support) use the same envelope and so
|
|
13
|
+
* draw from the same union.
|
|
14
|
+
*/
|
|
15
|
+
export const ARGUS_ERROR_CODES = [
|
|
16
|
+
'argus_executable_not_found',
|
|
17
|
+
'body_not_available',
|
|
18
|
+
'cdp_not_attached',
|
|
19
|
+
'dialog_not_prompt',
|
|
20
|
+
'extension_action_failed',
|
|
21
|
+
'extension_frame_not_ready',
|
|
22
|
+
'invalid_json',
|
|
23
|
+
'invalid_match',
|
|
24
|
+
'invalid_match_case',
|
|
25
|
+
'invalid_net_filter',
|
|
26
|
+
'invalid_net_request',
|
|
27
|
+
'invalid_ref',
|
|
28
|
+
'invalid_request',
|
|
29
|
+
'log_epoch_evicted',
|
|
30
|
+
'log_epoch_future',
|
|
31
|
+
'log_epoch_invalid',
|
|
32
|
+
'log_epoch_mismatch',
|
|
33
|
+
'multiple_matches',
|
|
34
|
+
'native_host_install_failed',
|
|
35
|
+
'net_disabled',
|
|
36
|
+
'net_request_not_found',
|
|
37
|
+
'no_active_dialog',
|
|
38
|
+
'not_available',
|
|
39
|
+
'not_found',
|
|
40
|
+
'not_interactable',
|
|
41
|
+
'nth_out_of_range',
|
|
42
|
+
'payload_too_large',
|
|
43
|
+
'unexpected_matches',
|
|
44
|
+
'unsupported_platform',
|
|
45
|
+
];
|
|
46
|
+
/** True when `value` is a code this protocol defines. */
|
|
47
|
+
export const isArgusErrorCode = (value) => typeof value === 'string' && ARGUS_ERROR_CODES.includes(value);
|
|
2
48
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/protocol/http/errors.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/protocol/http/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,4BAA4B;IAC5B,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,yBAAyB;IACzB,2BAA2B;IAC3B,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,4BAA4B;IAC5B,cAAc;IACd,uBAAuB;IACvB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,sBAAsB;CACb,CAAA;AAKV,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA2B,EAAE,CAC3E,OAAO,KAAK,KAAK,QAAQ,IAAK,iBAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { ScreenshotClipRegion, ScreenshotResponse } from './screenshot.js';
|
|
1
|
+
import type { Ok } from './errors.js';
|
|
3
2
|
/** Request payload for POST /eval. */
|
|
4
3
|
export type EvalRequest = {
|
|
5
4
|
expression: string;
|
|
@@ -16,70 +15,35 @@ export type EvalRequest = {
|
|
|
16
15
|
replMode?: boolean;
|
|
17
16
|
timeoutMs?: number;
|
|
18
17
|
returnByValue?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Serialize the result with `JSON.stringify` inside the page and return that
|
|
20
|
+
* string as `result`, wrapped as `{"v":<value>}` so a genuine `undefined`
|
|
21
|
+
* round-trips. Callers parse it and read `.v`.
|
|
22
|
+
*
|
|
23
|
+
* Transports disagree about raw `returnByValue` results: the extension relay
|
|
24
|
+
* (Chrome's `chrome.debugger` serialization) returns object keys sorted
|
|
25
|
+
* alphabetically at every nesting level, while a direct CDP watcher preserves
|
|
26
|
+
* insertion order. Values are identical either way, but structural comparisons
|
|
27
|
+
* of the same page state produce different bytes per transport. Serializing in
|
|
28
|
+
* the page normalizes both to insertion order, and makes `Date` round-trip as
|
|
29
|
+
* an ISO string (via `toJSON`) instead of `{}`.
|
|
30
|
+
*
|
|
31
|
+
* Evaluation semantics are untouched: REPL mode, statement lists, top-level
|
|
32
|
+
* `await`, and promise unwrapping all behave exactly as without this flag.
|
|
33
|
+
*/
|
|
34
|
+
jsonValue?: boolean;
|
|
19
35
|
/** Install the temporary host bridge used by bundled scenario modules. */
|
|
20
36
|
scenario?: boolean;
|
|
21
37
|
};
|
|
22
38
|
/** Response payload for POST /eval. */
|
|
23
|
-
export type EvalResponse = {
|
|
24
|
-
ok: true;
|
|
39
|
+
export type EvalResponse = Ok<{
|
|
25
40
|
result: unknown;
|
|
26
41
|
type: string | null;
|
|
27
42
|
exception: {
|
|
28
43
|
text: string;
|
|
29
44
|
details?: unknown;
|
|
30
45
|
} | null;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
export
|
|
34
|
-
/** Crop to the first matching element. */
|
|
35
|
-
selector?: string;
|
|
36
|
-
/** Crop to a viewport-relative rectangle. Mutually exclusive with `selector`. */
|
|
37
|
-
clip?: ScreenshotClipRegion;
|
|
38
|
-
};
|
|
39
|
-
/** Filters for reading watcher logs from a scenario cursor. */
|
|
40
|
-
export type ArgusScenarioLogOptions = {
|
|
41
|
-
/** Only include these severity levels. */
|
|
42
|
-
levels?: LogLevel[];
|
|
43
|
-
/** Match event text against any supplied regular expression. */
|
|
44
|
-
match?: string | string[];
|
|
45
|
-
/** Regex case handling. Defaults to case-sensitive. */
|
|
46
|
-
matchCase?: 'sensitive' | 'insensitive';
|
|
47
|
-
/** Case-insensitive substring filter over the event source. */
|
|
48
|
-
source?: string;
|
|
49
|
-
/** Maximum number of matching events. Defaults to 500; maximum 5000. */
|
|
50
|
-
limit?: number;
|
|
51
|
-
};
|
|
52
|
-
/** Result of reading scenario logs after a cursor. */
|
|
53
|
-
export type ArgusScenarioLogsResult = {
|
|
54
|
-
events: LogEvent[];
|
|
55
|
-
/** Cursor to use for the next read. */
|
|
56
|
-
nextCursor: LogEpoch;
|
|
57
|
-
};
|
|
58
|
-
/** Stateful log window created at a scenario-defined baseline. */
|
|
59
|
-
export type ArgusScenarioLogSession = {
|
|
60
|
-
/** Current session cursor. It advances after each successful read. */
|
|
61
|
-
readonly cursor: LogEpoch;
|
|
62
|
-
/** Read matching logs since the session cursor and advance it. */
|
|
63
|
-
read: (options?: ArgusScenarioLogOptions) => Promise<ArgusScenarioLogsResult>;
|
|
64
|
-
};
|
|
65
|
-
/** Log cursor helpers available to bundled scenario entrypoints. */
|
|
66
|
-
export type ArgusScenarioLogs = {
|
|
67
|
-
/** Return the watcher's current log cursor without downloading events. */
|
|
68
|
-
cursor: () => Promise<LogEpoch>;
|
|
69
|
-
/** Read matching logs produced strictly after `cursor`. */
|
|
70
|
-
read: (cursor: LogEpoch, options?: ArgusScenarioLogOptions) => Promise<ArgusScenarioLogsResult>;
|
|
71
|
-
/** Capture the current cursor and return a stateful log window. */
|
|
72
|
-
session: () => Promise<ArgusScenarioLogSession>;
|
|
73
|
-
};
|
|
74
|
-
/** Host capabilities passed to `export default` in a bundled eval file. */
|
|
75
|
-
export type ArgusScenarioContext = {
|
|
76
|
-
/** Frozen string arguments supplied by `--arg` / `--args`. */
|
|
77
|
-
readonly args: Readonly<Record<string, string>>;
|
|
78
|
-
/** Capture a screenshot using a watcher-generated safe artifact path. */
|
|
79
|
-
screenshot: (options?: ArgusScenarioScreenshotOptions) => Promise<ScreenshotResponse>;
|
|
80
|
-
/** Capture or replace `checkpoints/<name>.png` under the watcher artifact directory. */
|
|
81
|
-
checkpoint: (name: string, options?: ArgusScenarioScreenshotOptions) => Promise<ScreenshotResponse>;
|
|
82
|
-
/** Cursor and session helpers for logs produced during the scenario. */
|
|
83
|
-
readonly logs: ArgusScenarioLogs;
|
|
84
|
-
};
|
|
46
|
+
}>;
|
|
47
|
+
/** Schema for POST /eval request payloads. */
|
|
48
|
+
export declare const evalRequestSchema: import("../schema.js").ProtocolSchema<EvalRequest>;
|
|
85
49
|
//# sourceMappingURL=eval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/eval.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../../src/protocol/http/eval.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAErC,sCAAsC;AACtC,MAAM,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,uCAAuC;AACvC,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;CACrD,CAAC,CAAA;AAEF,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,oDAoB5B,CAAA"}
|
|
@@ -1,2 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
import { defineProtocolSchema, validProtocolPayload } from '../schema.js';
|
|
2
|
+
import { compact, optionalBoolean, optionalNumber, optionalRecord, readFields, requireObject, requiredString } from '../schemaFields.js';
|
|
3
|
+
/** Schema for POST /eval request payloads. */
|
|
4
|
+
export const evalRequestSchema = defineProtocolSchema((value) => {
|
|
5
|
+
const invalid = requireObject(value);
|
|
6
|
+
if (invalid)
|
|
7
|
+
return invalid;
|
|
8
|
+
const source = value;
|
|
9
|
+
const fields = readFields(source, {
|
|
10
|
+
expression: requiredString,
|
|
11
|
+
awaitPromise: optionalBoolean,
|
|
12
|
+
replMode: optionalBoolean,
|
|
13
|
+
returnByValue: optionalBoolean,
|
|
14
|
+
jsonValue: optionalBoolean,
|
|
15
|
+
scenario: optionalBoolean,
|
|
16
|
+
timeoutMs: (input, key) => optionalNumber(input, key, { min: 0 }),
|
|
17
|
+
// `args` is string-only by contract; the eval runtime re-checks each entry before
|
|
18
|
+
// installing it, so the schema only rejects an outright wrong container shape.
|
|
19
|
+
args: optionalRecord,
|
|
20
|
+
});
|
|
21
|
+
if (!fields.ok)
|
|
22
|
+
return fields;
|
|
23
|
+
return validProtocolPayload(compact({ ...fields.value, args: fields.value.args }));
|
|
24
|
+
});
|
|
2
25
|
//# sourceMappingURL=eval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../src/protocol/http/eval.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../src/protocol/http/eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA+CxI,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAc,CAAC,KAAK,EAAE,EAAE;IAC5E,MAAM,OAAO,GAAG,aAAa,CAAc,KAAK,CAAC,CAAA;IACjD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3B,MAAM,MAAM,GAAG,KAAgC,CAAA;IAE/C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE;QACjC,UAAU,EAAE,cAAc;QAC1B,YAAY,EAAE,eAAe;QAC7B,QAAQ,EAAE,eAAe;QACzB,aAAa,EAAE,eAAe;QAC9B,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACjE,kFAAkF;QAClF,+EAA+E;QAC/E,IAAI,EAAE,cAAc;KACpB,CAAC,CAAA;IACF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAA;IAE7B,OAAO,oBAAoB,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAA0C,EAAE,CAAC,CAAC,CAAA;AACzH,CAAC,CAAC,CAAA"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ExtensionControlBridgeStatus, ExtensionTabBridgeStatus, ExtensionRecentEvent } from '../native-messaging.js';
|
|
2
|
+
import type { Ok } from './errors.js';
|
|
1
3
|
export type ExtensionBrowserTab = {
|
|
2
4
|
tabId: number;
|
|
3
5
|
url: string;
|
|
@@ -6,49 +8,59 @@ export type ExtensionBrowserTab = {
|
|
|
6
8
|
attached: boolean;
|
|
7
9
|
watcherId?: string;
|
|
8
10
|
};
|
|
9
|
-
export type ExtensionTabsResponse = {
|
|
10
|
-
ok: true;
|
|
11
|
+
export type ExtensionTabsResponse = Ok<{
|
|
11
12
|
tabs: ExtensionBrowserTab[];
|
|
12
|
-
}
|
|
13
|
+
}>;
|
|
13
14
|
/** Result of an extension-control attach/detach request after the extension has applied it. */
|
|
14
|
-
export type ExtensionTabActionResponse = {
|
|
15
|
-
ok: true;
|
|
15
|
+
export type ExtensionTabActionResponse = Ok<{
|
|
16
16
|
tab: ExtensionBrowserTab;
|
|
17
17
|
watcherId?: string;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* One target the extension watcher can attach to: a tab, or an iframe inside one.
|
|
21
|
+
*
|
|
22
|
+
* `attached` and `targetReady` are absent for sources that cannot report them, so treat
|
|
23
|
+
* a missing value as unknown rather than as `false`.
|
|
24
|
+
*/
|
|
25
|
+
export type ExtensionTargetSummary = {
|
|
26
|
+
/** Target id. Extension tab ids are stringified numbers. */
|
|
27
|
+
id: string;
|
|
28
|
+
title: string;
|
|
29
|
+
url: string;
|
|
30
|
+
/** Target type, such as `page` or `iframe`. */
|
|
31
|
+
type?: string;
|
|
32
|
+
/** Parent target id for nested targets. */
|
|
33
|
+
parentId?: string | null;
|
|
34
|
+
/** Favicon URL. Extension mode only. */
|
|
35
|
+
faviconUrl?: string;
|
|
36
|
+
/** Whether the target currently has a debugger attached. */
|
|
37
|
+
attached?: boolean;
|
|
38
|
+
/** False for a selected iframe still waiting for rediscovery or an execution context. */
|
|
39
|
+
targetReady?: boolean;
|
|
18
40
|
};
|
|
19
|
-
/**
|
|
20
|
-
export type
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export type
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
watcherPort: number | null;
|
|
35
|
-
pid: number | null;
|
|
36
|
-
targetId: string | null;
|
|
37
|
-
targetTitle: string | null;
|
|
38
|
-
targetUrl: string | null;
|
|
39
|
-
targetReady: boolean | null;
|
|
40
|
-
lastMessageAt: number | null;
|
|
41
|
+
/** Response payload for GET /targets. */
|
|
42
|
+
export type ExtensionTargetsResponse = Ok<{
|
|
43
|
+
targets: ExtensionTargetSummary[];
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Request payload for POST /attach.
|
|
47
|
+
*
|
|
48
|
+
* Exactly one of `targetId` or `tabId` identifies the target; `tabId` is the legacy
|
|
49
|
+
* numeric form and is stringified server-side.
|
|
50
|
+
*/
|
|
51
|
+
export type ExtensionAttachRequest = {
|
|
52
|
+
targetId?: string;
|
|
53
|
+
tabId?: number;
|
|
54
|
+
/** Watcher id to bind the attached target to. */
|
|
55
|
+
watcherId?: string;
|
|
41
56
|
};
|
|
42
|
-
/**
|
|
43
|
-
export type
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
source: 'popup' | 'bridge' | 'debugger';
|
|
47
|
-
message: string;
|
|
57
|
+
/** Request payload for POST /detach. Identifies the target like {@link ExtensionAttachRequest}. */
|
|
58
|
+
export type ExtensionDetachRequest = {
|
|
59
|
+
targetId?: string;
|
|
60
|
+
tabId?: number;
|
|
48
61
|
};
|
|
49
62
|
/** Live diagnostics from the extension-control watcher and connected browser extension. */
|
|
50
|
-
export type ExtensionDiagnosticsResponse = {
|
|
51
|
-
ok: true;
|
|
63
|
+
export type ExtensionDiagnosticsResponse = Ok<{
|
|
52
64
|
extension: {
|
|
53
65
|
id: string | null;
|
|
54
66
|
version: string | null;
|
|
@@ -56,5 +68,9 @@ export type ExtensionDiagnosticsResponse = {
|
|
|
56
68
|
control: ExtensionControlBridgeStatus;
|
|
57
69
|
tabWatchers: ExtensionTabBridgeStatus[];
|
|
58
70
|
recentEvents: ExtensionRecentEvent[];
|
|
59
|
-
}
|
|
71
|
+
}>;
|
|
72
|
+
/** Schema for POST /attach request payloads. */
|
|
73
|
+
export declare const extensionAttachRequestSchema: import("../schema.js").ProtocolSchema<ExtensionAttachRequest>;
|
|
74
|
+
/** Schema for POST /detach request payloads. */
|
|
75
|
+
export declare const extensionDetachRequestSchema: import("../schema.js").ProtocolSchema<ExtensionDetachRequest>;
|
|
60
76
|
//# sourceMappingURL=extension.d.ts.map
|