@vforsh/argus 0.3.0 → 0.3.1

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/argus.js CHANGED
@@ -2130,7 +2130,7 @@ var {
2130
2130
  // package.json
2131
2131
  var package_default = {
2132
2132
  name: "@vforsh/argus",
2133
- version: "0.3.0",
2133
+ version: "0.3.1",
2134
2134
  repository: {
2135
2135
  type: "git",
2136
2136
  url: "git+https://github.com/vforsh/argus.git",
@@ -2159,7 +2159,7 @@ var package_default = {
2159
2159
  "@vforsh/argus-client": "^0.3.0",
2160
2160
  "@vforsh/argus-core": "^0.3.0",
2161
2161
  "@vforsh/argus-plugin-api": "^0.3.0",
2162
- "@vforsh/argus-watcher": "^0.3.0",
2162
+ "@vforsh/argus-watcher": "^0.3.1",
2163
2163
  commander: "14.0.2",
2164
2164
  esbuild: "0.25.12",
2165
2165
  prettier: "3.7.4"
@@ -8202,9 +8202,6 @@ var formatError3 = (error) => error instanceof Error ? error.message : String(er
8202
8202
  // ../argus-watcher/dist/cdp/eval.js
8203
8203
  var evaluateExpression = async (session, options) => {
8204
8204
  const args = hasEvalArgs(options.args) ? options.args : undefined;
8205
- if (args) {
8206
- await installEvalArgs(session, args, options.timeoutMs);
8207
- }
8208
8205
  let scenarioBridge;
8209
8206
  try {
8210
8207
  if (options.scenario) {
@@ -8215,7 +8212,7 @@ var evaluateExpression = async (session, options) => {
8215
8212
  }
8216
8213
  const recordResult = await evaluateAndAwaitRecord(session, {
8217
8214
  ...options,
8218
- expression: scenarioBridge?.expression ?? options.expression,
8215
+ expression: wrapExpressionWithArgs(scenarioBridge?.expression ?? options.expression, args),
8219
8216
  replMode: scenarioBridge ? false : options.replMode
8220
8217
  });
8221
8218
  if (recordResult.exception)
@@ -8241,12 +8238,16 @@ var evaluateExpression = async (session, options) => {
8241
8238
  };
8242
8239
  } finally {
8243
8240
  await scenarioBridge?.dispose();
8244
- if (args) {
8245
- await restoreEvalArgs(session, options.timeoutMs);
8246
- }
8247
8241
  }
8248
8242
  };
8249
8243
  var hasEvalArgs = (args) => args != null && Object.keys(args).length > 0;
8244
+ var wrapExpressionWithArgs = (expression, args) => {
8245
+ if (!args)
8246
+ return expression;
8247
+ return `{ const args = Object.freeze(${JSON.stringify(args)});
8248
+ ${expression}
8249
+ }`;
8250
+ };
8250
8251
  var evaluateAndAwaitRecord = async (session, options) => {
8251
8252
  const payload = await evaluateRawExpression(session, options);
8252
8253
  if (payload.exceptionDetails) {
@@ -8271,42 +8272,6 @@ var formatExceptionResponse = (payload) => ({
8271
8272
  details: payload.exceptionDetails?.exception ?? null
8272
8273
  }
8273
8274
  });
8274
- var EVAL_ARGS_STATE_KEY = "__argusEvalArgsPreviousDescriptor__";
8275
- var installEvalArgs = async (session, args, timeoutMs) => {
8276
- const payload = JSON.stringify(args);
8277
- await sendInternalEval(session, `(() => {
8278
- const previous = Object.getOwnPropertyDescriptor(globalThis, 'args');
8279
- Object.defineProperty(globalThis, ${JSON.stringify(EVAL_ARGS_STATE_KEY)}, { value: previous, configurable: true });
8280
- Object.defineProperty(globalThis, 'args', { value: Object.freeze(${payload}), configurable: true });
8281
- })()`, timeoutMs);
8282
- };
8283
- var restoreEvalArgs = async (session, timeoutMs) => {
8284
- await sendInternalEval(session, `(() => {
8285
- const stateKey = ${JSON.stringify(EVAL_ARGS_STATE_KEY)};
8286
- const previous = Object.getOwnPropertyDescriptor(globalThis, stateKey)?.value;
8287
- delete globalThis[stateKey];
8288
- delete globalThis.args;
8289
- if (previous) Object.defineProperty(globalThis, 'args', previous);
8290
- })()`, timeoutMs);
8291
- };
8292
- var sendInternalEval = async (session, expression, timeoutMs) => {
8293
- const payload = await session.sendAndWait("Runtime.evaluate", {
8294
- expression,
8295
- replMode: false,
8296
- awaitPromise: true,
8297
- returnByValue: true
8298
- }, { timeoutMs });
8299
- if (payload.exceptionDetails) {
8300
- throw new Error(formatInternalEvalError(payload.exceptionDetails));
8301
- }
8302
- };
8303
- var formatInternalEvalError = (exceptionDetails) => {
8304
- const exception = exceptionDetails.exception;
8305
- if (exception != null && typeof exception === "object" && "description" in exception && typeof exception.description === "string") {
8306
- return exception.description;
8307
- }
8308
- return exceptionDetails.text ?? "Failed to prepare eval args";
8309
- };
8310
8275
  var evaluateRawExpression = async (session, options) => await session.sendAndWait("Runtime.evaluate", {
8311
8276
  expression: options.expression,
8312
8277
  replMode: options.replMode ?? true,
@@ -8580,7 +8545,7 @@ var filterNodesByText = async (session, nodeIds, text) => {
8580
8545
 
8581
8546
  // ../argus-watcher/dist/cdp/dom/selector.js
8582
8547
  var getDomRootId = async (session) => {
8583
- const targetContext = session.getTargetContext?.();
8548
+ const targetContext = session.getReadyTargetContext ? await session.getReadyTargetContext() : session.getTargetContext?.();
8584
8549
  if (targetContext?.kind === "frame") {
8585
8550
  return getFrameDomRootId(session, targetContext);
8586
8551
  }
@@ -8665,6 +8630,18 @@ var describeNodeByBackendId = async (session, backendNodeId) => {
8665
8630
  });
8666
8631
  return described.node ?? null;
8667
8632
  };
8633
+ var resolveNodeIdByBackendId = async (session, backendNodeId) => {
8634
+ const describedNode = await describeNodeByBackendId(session, backendNodeId);
8635
+ if (describedNode?.nodeId) {
8636
+ return describedNode.nodeId;
8637
+ }
8638
+ await getDomRootId(session);
8639
+ const pushed = await session.sendAndWait("DOM.pushNodesByBackendIdsToFrontend", {
8640
+ backendNodeIds: [backendNodeId]
8641
+ });
8642
+ const nodeId = pushed.nodeIds?.[0];
8643
+ return typeof nodeId === "number" && nodeId > 0 ? nodeId : null;
8644
+ };
8668
8645
  var toDomNodeDescriptor = (handle) => {
8669
8646
  if (handle.nodeId != null) {
8670
8647
  return { nodeId: handle.nodeId };
@@ -9065,7 +9042,39 @@ var locateByLabel = async (session, elementRefs, request) => {
9065
9042
  }
9066
9043
  return matchesText(element.name, request.label, request.exact ?? false);
9067
9044
  });
9068
- return buildLocateResponse(session, request.all ?? false, matches);
9045
+ return buildLocateResponse(session, request.all ?? false, await removeCompositeLabelWrappers(session, matches));
9046
+ };
9047
+ var NATIVE_LABELABLE_TAGS = new Set(["button", "input", "select", "textarea"]);
9048
+ var removeCompositeLabelWrappers = async (session, matches) => {
9049
+ if (matches.length < 2)
9050
+ return matches;
9051
+ const candidates = await Promise.all(matches.map(async (match) => {
9052
+ const [node, nodeId] = await Promise.all([
9053
+ describeNodeByBackendId(session, match.backendNodeId),
9054
+ resolveNodeIdByBackendId(session, match.backendNodeId)
9055
+ ]);
9056
+ const tag = node ? (node.localName ?? node.nodeName).toLowerCase() : "";
9057
+ return { match, nodeId, native: NATIVE_LABELABLE_TAGS.has(tag) };
9058
+ }));
9059
+ const nativeCandidates = candidates.filter((candidate) => candidate.native && candidate.nodeId != null);
9060
+ if (nativeCandidates.length === 0)
9061
+ return matches;
9062
+ const kept = [];
9063
+ for (const candidate of candidates) {
9064
+ if (candidate.native || candidate.nodeId == null) {
9065
+ kept.push(candidate.match);
9066
+ continue;
9067
+ }
9068
+ const descendants = await session.sendAndWait("DOM.querySelectorAll", {
9069
+ nodeId: candidate.nodeId,
9070
+ selector: "button,input,select,textarea"
9071
+ });
9072
+ const descendantIds = new Set(descendants.nodeIds ?? []);
9073
+ const wrapsMatchedNative = nativeCandidates.some((native) => native.nodeId != null && descendantIds.has(native.nodeId) && normalizeText(native.match.role) === normalizeText(candidate.match.role) && normalizeText(native.match.name) === normalizeText(candidate.match.name));
9074
+ if (!wrapsMatchedNative)
9075
+ kept.push(candidate.match);
9076
+ }
9077
+ return kept;
9069
9078
  };
9070
9079
  var buildLocateResponse = async (session, all, matches) => {
9071
9080
  const selected = all ? matches : matches.slice(0, 1);
@@ -9576,8 +9585,8 @@ var setFileOnResolvedNodes = async (session, nodeIds, files) => {
9576
9585
  // ../argus-watcher/dist/cdp/dom/fill.js
9577
9586
  var FILL_FUNCTION = `function(value) {
9578
9587
  var el = this;
9588
+ el.focus();
9579
9589
  if (el.isContentEditable) {
9580
- el.focus();
9581
9590
  el.textContent = value;
9582
9591
  el.dispatchEvent(new Event('input', { bubbles: true }));
9583
9592
  el.dispatchEvent(new Event('change', { bubbles: true }));
@@ -13883,7 +13892,7 @@ import fs7 from "node:fs/promises";
13883
13892
  // ../argus-watcher/dist/cdp/visualCapture.js
13884
13893
  var createVisualCapturePlan = async (session, pageSession, request) => {
13885
13894
  const subject = resolveVisualCaptureSubject(request);
13886
- const targetContext = session.getTargetContext?.();
13895
+ const targetContext = session.getReadyTargetContext ? await session.getReadyTargetContext() : session.getTargetContext?.();
13887
13896
  if (targetContext?.kind === "frame" && pageSession) {
13888
13897
  return createFrameCapturePlan({
13889
13898
  frameSession: session,
@@ -16285,7 +16294,6 @@ var createEmptyFrameState = () => ({
16285
16294
  topFrameId: null,
16286
16295
  requestedFrameId: null,
16287
16296
  requestedFrameHint: null,
16288
- requestedFrameDetached: false,
16289
16297
  activeFrameId: null,
16290
16298
  activeAttachedAt: null,
16291
16299
  frames: new Map,
@@ -16414,7 +16422,7 @@ var resolveRequestedTarget = (state2) => {
16414
16422
  if (nextFrameId) {
16415
16423
  return { kind: "frame", frameId: nextFrameId };
16416
16424
  }
16417
- return state2.requestedFrameDetached ? { kind: "page" } : { kind: "pending" };
16425
+ return { kind: "pending" };
16418
16426
  };
16419
16427
  var resolveSelectedFrameCommandState = (state2) => {
16420
16428
  if (state2.requestedFrameId == null) {
@@ -16455,7 +16463,7 @@ var buildFrameTargetContext = (state2, frameId) => ({
16455
16463
  var findSingleMatchingFrameId = (state2, predicate) => {
16456
16464
  let matchId = null;
16457
16465
  for (const frame of state2.frames.values()) {
16458
- if (!predicate(frame)) {
16466
+ if (frame.frameId === state2.topFrameId || !predicate(frame)) {
16459
16467
  continue;
16460
16468
  }
16461
16469
  if (matchId) {
@@ -16545,7 +16553,8 @@ var createDelegatingSession = (options) => {
16545
16553
  subscriptions.delete(subscription);
16546
16554
  };
16547
16555
  },
16548
- getTargetContext: options.getTargetContext
16556
+ getTargetContext: options.getTargetContext,
16557
+ getReadyTargetContext: options.getReadyTargetContext
16549
16558
  };
16550
16559
  controller.rebind();
16551
16560
  return { session, controller };
@@ -17075,31 +17084,54 @@ var seedExtensionFrameState = (session, state2) => {
17075
17084
  return state2;
17076
17085
  };
17077
17086
  var getSelectedExtensionTarget = (session, state2) => {
17078
- if (!state2?.activeFrameId) {
17087
+ const frameId = state2?.requestedFrameId ?? state2?.activeFrameId;
17088
+ if (!state2 || !frameId) {
17079
17089
  return buildPageTarget(session, { attached: true });
17080
17090
  }
17081
- const frame = state2.frames.get(state2.activeFrameId);
17091
+ const frame = state2.frames.get(frameId);
17082
17092
  if (frame) {
17083
17093
  return frameToTarget(session.tabId, frame, { attached: true, faviconUrl: session.faviconUrl, topFrameId: state2.topFrameId });
17084
17094
  }
17085
17095
  return buildSelectedIframeFallbackTarget(session, state2);
17086
17096
  };
17087
17097
  var setRequestedTargetSelection = (state2, frameId) => {
17098
+ if (state2.requestedFrameId !== frameId) {
17099
+ state2.activeAttachedAt = null;
17100
+ }
17101
+ const previousHint = state2.requestedFrameId === frameId ? state2.requestedFrameHint : null;
17088
17102
  state2.requestedFrameId = frameId;
17089
- state2.requestedFrameHint = frameId ? createRequestedFrameHint(state2.frames.get(frameId)) : null;
17090
- state2.requestedFrameDetached = false;
17103
+ state2.requestedFrameHint = frameId ? createRequestedFrameHint(state2.frames.get(frameId)) ?? previousHint : null;
17104
+ };
17105
+ var listExtensionTargets = (session, state2) => {
17106
+ if (!state2) {
17107
+ return [buildPageTarget(session, { attached: true })];
17108
+ }
17109
+ const selected = getSelectedExtensionTarget(session, state2);
17110
+ selected.targetReady = isSelectedTargetReady(state2);
17111
+ const targets = [buildPageTarget(session, { attached: false }), ...buildFrameTargets(state2, session.tabId, null, session.faviconUrl)];
17112
+ const selectedIndex = targets.findIndex((target) => target.id === selected.id);
17113
+ if (selectedIndex < 0) {
17114
+ targets.push(selected);
17115
+ } else {
17116
+ targets[selectedIndex] = selected;
17117
+ }
17118
+ return targets;
17091
17119
  };
17092
17120
  var reconcileExtensionTargetSelection = (session, state2, onTargetChanged) => {
17093
17121
  const resolution = resolveRequestedTarget(state2);
17094
17122
  if (resolution.kind === "page") {
17095
- state2.requestedFrameDetached = false;
17096
17123
  return activatePageTarget(state2, onTargetChanged);
17097
17124
  }
17098
17125
  if (resolution.kind === "pending") {
17099
- return false;
17126
+ if (state2.activeFrameId == null && state2.activeAttachedAt != null) {
17127
+ return false;
17128
+ }
17129
+ state2.activeFrameId = null;
17130
+ state2.activeAttachedAt = Date.now();
17131
+ onTargetChanged();
17132
+ return true;
17100
17133
  }
17101
17134
  syncRequestedFrameSelection(state2, resolution.frameId);
17102
- state2.requestedFrameDetached = false;
17103
17135
  if (state2.activeFrameId === resolution.frameId) {
17104
17136
  return false;
17105
17137
  }
@@ -17116,7 +17148,6 @@ var removeExtensionFrame = (state2, frameId) => {
17116
17148
  removeExtensionFrame(state2, childId);
17117
17149
  }
17118
17150
  if (state2.activeFrameId === frameId) {
17119
- state2.requestedFrameDetached = state2.requestedFrameId === frameId;
17120
17151
  state2.activeFrameId = null;
17121
17152
  state2.activeAttachedAt = null;
17122
17153
  }
@@ -17187,7 +17218,7 @@ var syncRequestedFrameSelection = (state2, frameId) => {
17187
17218
  };
17188
17219
  var buildSelectedIframeFallbackTarget = (session, state2) => {
17189
17220
  const hint = state2.requestedFrameHint;
17190
- const frameId = state2.activeFrameId;
17221
+ const frameId = state2.requestedFrameId ?? state2.activeFrameId;
17191
17222
  if (!frameId) {
17192
17223
  return buildPageTarget(session, { attached: true });
17193
17224
  }
@@ -17198,7 +17229,8 @@ var buildSelectedIframeFallbackTarget = (session, state2) => {
17198
17229
  type: "iframe",
17199
17230
  parentId: formatPageTargetId(session.tabId),
17200
17231
  faviconUrl: session.faviconUrl,
17201
- attached: true
17232
+ attached: true,
17233
+ targetReady: false
17202
17234
  };
17203
17235
  };
17204
17236
 
@@ -17264,6 +17296,10 @@ var createExtensionSource = (options) => {
17264
17296
  getCurrentSession: () => currentSession,
17265
17297
  requireCurrentSession: getCurrentExtensionSession,
17266
17298
  getTargetContext: () => getCurrentTargetContext() ?? { kind: "page" },
17299
+ getReadyTargetContext: async () => {
17300
+ const context = getCurrentTargetContext() ?? { kind: "page" };
17301
+ return context.kind === "frame" ? targetRecovery.waitForSelectedFrameCommandTarget() : context;
17302
+ },
17267
17303
  prepareCommand: async ({ method, params, targetContext }) => {
17268
17304
  if (targetContext.kind !== "frame") {
17269
17305
  return;
@@ -17309,16 +17345,7 @@ var createExtensionSource = (options) => {
17309
17345
  if (!session) {
17310
17346
  return [];
17311
17347
  }
17312
- const state2 = frameStateByTabId.get(session.tabId);
17313
- if (!state2 || state2.frames.size === 0) {
17314
- return [buildPageTarget(session, { attached: true })];
17315
- }
17316
- const activeFrameId = state2.activeFrameId;
17317
- const targets = [buildPageTarget(session, { attached: activeFrameId == null })];
17318
- for (const frame of buildFrameTargets(state2, session.tabId, activeFrameId, session.faviconUrl)) {
17319
- targets.push(frame);
17320
- }
17321
- return targets;
17348
+ return listExtensionTargets(session, frameStateByTabId.get(session.tabId));
17322
17349
  };
17323
17350
  const attachTarget = async (targetId) => {
17324
17351
  const target = parseExtensionTargetId(targetId);
@@ -17456,10 +17483,11 @@ var createExtensionSource = (options) => {
17456
17483
  return null;
17457
17484
  }
17458
17485
  const state2 = frameStateByTabId.get(session.tabId);
17459
- if (!state2?.activeFrameId) {
17486
+ const frameId = state2?.requestedFrameId ?? state2?.activeFrameId;
17487
+ if (!state2 || !frameId) {
17460
17488
  return { kind: "page" };
17461
17489
  }
17462
- return buildFrameTargetContext(state2, state2.activeFrameId);
17490
+ return buildFrameTargetContext(state2, frameId);
17463
17491
  }
17464
17492
  function getOrCreateFrameState(tabId) {
17465
17493
  const existing = frameStateByTabId.get(tabId);
@@ -21200,7 +21228,7 @@ var prepareEvalExpression = async (inline, options, output) => {
21200
21228
  return null;
21201
21229
  }
21202
21230
  return {
21203
- expression: wrapForIframeEval(wrapExpressionWithArgs(resolved.expression, args), {
21231
+ expression: wrapForIframeEval(wrapExpressionWithArgs2(resolved.expression, args), {
21204
21232
  selector: options.iframe,
21205
21233
  namespace: options.iframeNamespace ?? "argus",
21206
21234
  timeoutMs: iframeTimeoutMs.value ?? 5000
@@ -21372,7 +21400,7 @@ var parseCount = (value) => {
21372
21400
  }
21373
21401
  return { value: parsed };
21374
21402
  };
21375
- var wrapExpressionWithArgs = (source, args) => {
21403
+ var wrapExpressionWithArgs2 = (source, args) => {
21376
21404
  if (!hasEvalArgs2(args)) {
21377
21405
  return source;
21378
21406
  }
@@ -24604,6 +24632,7 @@ var sharedEvalHeadOptions = (timeoutDescription) => [
24604
24632
  { flags: "-q, --silent", description: "Suppress success output; only emit output on error" }
24605
24633
  ];
24606
24634
  var sharedEvalTailOptions = [
24635
+ { flags: "--expression <js>", description: "Expression to evaluate (alternative to the positional expression)" },
24607
24636
  { flags: "-f, --file <path>", description: "Read expression from a file" },
24608
24637
  { flags: "--bundle", description: "Bundle --file and its resolved imports into one script before eval" },
24609
24638
  { flags: "--no-bundle", description: "Read --file as-is (skip bundling and auto-bundle)" },
@@ -24656,7 +24685,12 @@ var evalCommands = [
24656
24685
  'argus eval app "document.title" --iframe "iframe" --iframe-timeout 10000'
24657
24686
  ],
24658
24687
  action: async (id, expression, options) => {
24659
- await runEval(id, expression, {
24688
+ if (expression != null && options.expression != null) {
24689
+ console.error("Provide either a positional expression or --expression, not both.");
24690
+ process.exitCode = 2;
24691
+ return;
24692
+ }
24693
+ await runEval(id, expression ?? options.expression, {
24660
24694
  json: options.json,
24661
24695
  await: options.await,
24662
24696
  timeout: options.timeout,
@@ -24734,7 +24768,12 @@ var evalCommands = [
24734
24768
  "argus wait app --file ./ready.js --args ./args.json --out ./ready.json"
24735
24769
  ],
24736
24770
  action: async (id, expression, options) => {
24737
- await runEvalUntil(id, expression, {
24771
+ if (expression != null && options.expression != null) {
24772
+ console.error("Provide either a positional expression or --expression, not both.");
24773
+ process.exitCode = 2;
24774
+ return;
24775
+ }
24776
+ await runEvalUntil(id, expression ?? options.expression, {
24738
24777
  json: options.json,
24739
24778
  await: options.await,
24740
24779
  timeout: options.timeout,
@@ -48392,6 +48431,7 @@ var fillCommand = {
48392
48431
  { flags: "--testid <id>", description: `Shorthand for --selector "[data-testid='<id>']"` },
48393
48432
  { flags: "--ref <elementRef>", description: "Stable element ref from snapshot/locate output" },
48394
48433
  { flags: "--name <attr>", description: 'Shorthand for --selector "[name=<attr>]"' },
48434
+ { flags: "--value <text>", description: "Value to fill (alternative to the positional value)" },
48395
48435
  { flags: "--value-file <path>", description: "Read value from a file" },
48396
48436
  { flags: "--value-stdin", description: 'Read value from stdin (also triggered by "-" as value arg)' },
48397
48437
  { flags: "--all", description: "Allow multiple matches (default: error if >1 match)" },
@@ -48404,6 +48444,7 @@ var fillCommand = {
48404
48444
  'argus fill app --testid "username" "Bob"',
48405
48445
  'argus fill app --ref e7 "Bob"',
48406
48446
  'argus fill app --name "title" "Hello"',
48447
+ 'argus fill app --selector "#username" --value "Bob"',
48407
48448
  'argus fill app --selector "textarea" "New content"',
48408
48449
  'argus fill app --selector "input[type=text]" --all "reset"',
48409
48450
  'argus fill app --selector "#desc" --value-file ./description.txt',
@@ -48411,6 +48452,11 @@ var fillCommand = {
48411
48452
  'argus fill app --selector "#input" - < value.txt'
48412
48453
  ],
48413
48454
  action: async (id, value, options) => {
48455
+ if (value != null && options.value != null) {
48456
+ console.error("Provide either a positional value or --value, not both.");
48457
+ process.exitCode = 2;
48458
+ return;
48459
+ }
48414
48460
  if (options.name && (options.testid || options.ref)) {
48415
48461
  console.error("Cannot use --name with --testid or --ref.");
48416
48462
  process.exitCode = 2;
@@ -48418,7 +48464,7 @@ var fillCommand = {
48418
48464
  }
48419
48465
  if (!resolveTestId(options))
48420
48466
  return;
48421
- await runDomFill(id, value, options);
48467
+ await runDomFill(id, value ?? options.value, options);
48422
48468
  }
48423
48469
  };
48424
48470
 
@@ -51311,7 +51357,7 @@ var resolveExtensionTarget = (targets, options) => {
51311
51357
  };
51312
51358
  var hasExtensionTargetSelector = (options) => Boolean(options.page === true || options.iframe || options.iframeUrl || options.iframeTitle);
51313
51359
  var formatExtensionTargetLine = (target) => {
51314
- const state2 = target.attached ? "attached" : "available";
51360
+ const state2 = target.targetReady === false ? "pending" : target.attached ? "attached" : "available";
51315
51361
  const type = target.type ?? "target";
51316
51362
  const title = target.title || "(untitled)";
51317
51363
  const parent = target.parentId ? ` [parent: ${shortenId(target.parentId)}]` : "";
@@ -51384,7 +51430,7 @@ var scoreIframeTarget = (target, page) => {
51384
51430
  var renderTargetNode = (target, prefix, isLast, childrenByParent, output, isRoot = false) => {
51385
51431
  const connector = targetTreeConnector(isRoot, isLast);
51386
51432
  const childPrefix = targetTreeChildPrefix(prefix, isRoot, isLast);
51387
- const state2 = target.attached ? " attached" : "";
51433
+ const state2 = target.targetReady === false ? " pending" : target.attached ? " attached" : "";
51388
51434
  output.writeHuman(`${prefix}${connector}${target.title || "(untitled)"} (${target.type ?? "target"}, ${shortenId(target.id)}${state2})`);
51389
51435
  output.writeHuman(`${childPrefix}${target.url}`);
51390
51436
  const children = childrenByParent.get(target.id) ?? [];
@@ -51641,6 +51687,14 @@ var inspectWatcher = async (id, diagnostics) => {
51641
51687
  }
51642
51688
  if (!bridge) {
51643
51689
  issues.push(`Watcher ${resolved.watcher.id} is not present in extension diagnostics.`);
51690
+ } else if (!bridge.connected) {
51691
+ issues.push(`Watcher ${resolved.watcher.id} native bridge is disconnected.`);
51692
+ }
51693
+ if (status.ok && !status.status.attached) {
51694
+ issues.push(`Watcher ${resolved.watcher.id} has no debugger-attached target.`);
51695
+ }
51696
+ if (status.ok && status.status.targetReady === false) {
51697
+ issues.push(`Watcher ${resolved.watcher.id} selected target is not ready for commands.`);
51644
51698
  }
51645
51699
  if (status.ok && status.status.attached && !selectedTarget) {
51646
51700
  issues.push(`Watcher ${resolved.watcher.id} is attached, but no selected target was reported by /targets.`);
@@ -1 +1 @@
1
- {"version":3,"file":"evalCommands.d.ts","sourceRoot":"","sources":["../../../src/cli/register/evalCommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAsB,MAAM,qBAAqB,CAAA;AAgCrF,eAAO,MAAM,YAAY,EAAE,SAAS,sBAAsB,EAiJzD,CAAA"}
1
+ {"version":3,"file":"evalCommands.d.ts","sourceRoot":"","sources":["../../../src/cli/register/evalCommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAsB,MAAM,qBAAqB,CAAA;AAiCrF,eAAO,MAAM,YAAY,EAAE,SAAS,sBAAsB,EA2JzD,CAAA"}
@@ -14,6 +14,7 @@ const sharedEvalHeadOptions = (timeoutDescription) => [
14
14
  ];
15
15
  /** Trailing input/iframe/args options shared verbatim between `eval` and `eval-until`. */
16
16
  const sharedEvalTailOptions = [
17
+ { flags: '--expression <js>', description: 'Expression to evaluate (alternative to the positional expression)' },
17
18
  { flags: '-f, --file <path>', description: 'Read expression from a file' },
18
19
  { flags: '--bundle', description: 'Bundle --file and its resolved imports into one script before eval' },
19
20
  { flags: '--no-bundle', description: 'Read --file as-is (skip bundling and auto-bundle)' },
@@ -66,7 +67,12 @@ export const evalCommands = [
66
67
  'argus eval app "document.title" --iframe "iframe" --iframe-timeout 10000',
67
68
  ],
68
69
  action: async (id, expression, options) => {
69
- await runEval(id, expression, {
70
+ if (expression != null && options.expression != null) {
71
+ console.error('Provide either a positional expression or --expression, not both.');
72
+ process.exitCode = 2;
73
+ return;
74
+ }
75
+ await runEval(id, expression ?? options.expression, {
70
76
  json: options.json,
71
77
  await: options.await,
72
78
  timeout: options.timeout,
@@ -144,7 +150,12 @@ export const evalCommands = [
144
150
  'argus wait app --file ./ready.js --args ./args.json --out ./ready.json',
145
151
  ],
146
152
  action: async (id, expression, options) => {
147
- await runEvalUntil(id, expression, {
153
+ if (expression != null && options.expression != null) {
154
+ console.error('Provide either a positional expression or --expression, not both.');
155
+ process.exitCode = 2;
156
+ return;
157
+ }
158
+ await runEvalUntil(id, expression ?? options.expression, {
148
159
  json: options.json,
149
160
  await: options.await,
150
161
  timeout: options.timeout,
@@ -1 +1 @@
1
- {"version":3,"file":"evalCommands.js","sourceRoot":"","sources":["../../../src/cli/register/evalCommands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,WAAqB,EAAE,EAAY,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAA;AAE/F,4FAA4F;AAC5F,MAAM,qBAAqB,GAAG,CAAC,kBAA0B,EAAiC,EAAE,CAAC;IAC5F,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC7D,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAClE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC9D,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,qCAAqC,EAAE;IACrF,EAAE,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,oDAAoD,EAAE;IACtG,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,wCAAwC,EAAE;IAC/E,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,oDAAoD,EAAE;CAC5F,CAAA;AAED,0FAA0F;AAC1F,MAAM,qBAAqB,GAAkC;IAC5D,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC1E,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,oEAAoE,EAAE;IACxG,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,mDAAmD,EAAE;IAC1F,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC/D,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,8DAA8D,EAAE;IACzG,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,yDAAyD,EAAE;IACxG,EAAE,KAAK,EAAE,2BAA2B,EAAE,WAAW,EAAE,sDAAsD,EAAE;IAC3G,EAAE,KAAK,EAAE,6BAA6B,EAAE,WAAW,EAAE,yEAAyE,EAAE;IAChI,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,+CAA+C,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE;IACpI,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,yDAAyD,EAAE;CAClG,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAsC;IAC9D;QACC,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,gDAAgD;QAC7D,SAAS,EAAE;YACV,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACrD,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,qDAAqD,EAAE;SAC7F;QACD,OAAO,EAAE;YACR,GAAG,qBAAqB,CAAC,uEAAuE,CAAC;YACjG,EAAE,KAAK,EAAE,0BAA0B,EAAE,WAAW,EAAE,2CAA2C,EAAE;YAC/F,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,+CAA+C,EAAE;YACtF,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,gEAAgE,EAAE;YAC/G,GAAG,qBAAqB;YACxB,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACzE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2EAA2E,EAAE;SAC/G;QACD,QAAQ,EAAE;YACT,gCAAgC;YAChC,6DAA6D;YAC7D,mCAAmC;YACnC,4CAA4C;YAC5C,oEAAoE;YACpE,kEAAkE;YAClE,sDAAsD;YACtD,2DAA2D;YAC3D,4DAA4D;YAC5D,2EAA2E;YAC3E,oFAAoF;YACpF,wCAAwC;YACxC,8BAA8B;YAC9B,wDAAwD;YACxD,gCAAgC;YAChC,+BAA+B;YAC/B,uDAAuD;YACvD,+EAA+E;YAC/E,0DAA0D;YAC1D,0EAA0E;SAC1E;QACD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;YACzC,MAAM,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE;gBAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;aACtB,CAAC,CAAA;QACH,CAAC;QACD,WAAW,EAAE;YACZ;gBACC,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,mEAAmE;gBAChF,OAAO,EAAE;oBACR,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,wCAAwC,EAAE;oBAChF,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,+BAA+B,EAAE;oBACnE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;oBACtE,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,sCAAsC,EAAE;iBACpF;gBACD,QAAQ,EAAE;oBACT,sCAAsC;oBACtC,6CAA6C;oBAC7C,0CAA0C;oBAC1C,4CAA4C;iBAC5C;gBACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBACzB,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;gBAC/B,CAAC;aACD;SACD;KACD;IACD;QACC,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,sDAAsD;QACnE,SAAS,EAAE;YACV,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACrD,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,8DAA8D,EAAE;SACtG;QACD,OAAO,EAAE;YACR,GAAG,qBAAqB,CAAC,2EAA2E,CAAC;YACrG,EAAE,KAAK,EAAE,0BAA0B,EAAE,WAAW,EAAE,mCAAmC,EAAE;YACvF,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,yBAAyB,EAAE;YAChE,EAAE,KAAK,EAAE,4BAA4B,EAAE,WAAW,EAAE,oCAAoC,EAAE;YAC1F,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,oCAAoC,EAAE;YACzE,GAAG,qBAAqB;YACxB,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,yCAAyC,EAAE;SACrF;QACD,QAAQ,EAAE;YACT,4DAA4D;YAC5D,qDAAqD;YACrD,wDAAwD;YACxD,yEAAyE;YACzE,8CAA8C;YAC9C,6DAA6D;YAC7D,2DAA2D;YAC3D,oEAAoE;YACpE,gFAAgF;YAChF,qEAAqE;YACrE,wEAAwE;SACxE;QACD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;YACzC,MAAM,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE;gBAClC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;aAChB,CAAC,CAAA;QACH,CAAC;KACD;CACD,CAAA"}
1
+ {"version":3,"file":"evalCommands.js","sourceRoot":"","sources":["../../../src/cli/register/evalCommands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fillCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/register/fillCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAIjE,eAAO,MAAM,WAAW,EAAE,sBAuCzB,CAAA"}
1
+ {"version":3,"file":"fillCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/register/fillCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAIjE,eAAO,MAAM,WAAW,EAAE,sBA8CzB,CAAA"}
@@ -12,6 +12,7 @@ export const fillCommand = {
12
12
  { flags: '--testid <id>', description: 'Shorthand for --selector "[data-testid=\'<id>\']"' },
13
13
  { flags: '--ref <elementRef>', description: 'Stable element ref from snapshot/locate output' },
14
14
  { flags: '--name <attr>', description: 'Shorthand for --selector "[name=<attr>]"' },
15
+ { flags: '--value <text>', description: 'Value to fill (alternative to the positional value)' },
15
16
  { flags: '--value-file <path>', description: 'Read value from a file' },
16
17
  { flags: '--value-stdin', description: 'Read value from stdin (also triggered by "-" as value arg)' },
17
18
  { flags: '--all', description: 'Allow multiple matches (default: error if >1 match)' },
@@ -24,6 +25,7 @@ export const fillCommand = {
24
25
  'argus fill app --testid "username" "Bob"',
25
26
  'argus fill app --ref e7 "Bob"',
26
27
  'argus fill app --name "title" "Hello"',
28
+ 'argus fill app --selector "#username" --value "Bob"',
27
29
  'argus fill app --selector "textarea" "New content"',
28
30
  'argus fill app --selector "input[type=text]" --all "reset"',
29
31
  'argus fill app --selector "#desc" --value-file ./description.txt',
@@ -31,6 +33,11 @@ export const fillCommand = {
31
33
  'argus fill app --selector "#input" - < value.txt',
32
34
  ],
33
35
  action: async (id, value, options) => {
36
+ if (value != null && options.value != null) {
37
+ console.error('Provide either a positional value or --value, not both.');
38
+ process.exitCode = 2;
39
+ return;
40
+ }
34
41
  if (options.name && (options.testid || options.ref)) {
35
42
  console.error('Cannot use --name with --testid or --ref.');
36
43
  process.exitCode = 2;
@@ -38,7 +45,7 @@ export const fillCommand = {
38
45
  }
39
46
  if (!resolveTestId(options))
40
47
  return;
41
- await runDomFill(id, value, options);
48
+ await runDomFill(id, value ?? options.value, options);
42
49
  },
43
50
  };
44
51
  //# sourceMappingURL=fillCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fillCommand.js","sourceRoot":"","sources":["../../../src/cli/register/fillCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAE/D,MAAM,CAAC,MAAM,WAAW,GAA2B;IAClD,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,2DAA2D;IACxE,SAAS,EAAE;QACV,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE;QACrD,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,qEAAqE,EAAE;KACxG;IACD,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAChF,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,mDAAmD,EAAE;QAC5F,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,gDAAgD,EAAE;QAC9F,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,0CAA0C,EAAE;QACnF,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,wBAAwB,EAAE;QACvE,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,4DAA4D,EAAE;QACrG,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,qDAAqD,EAAE;QACtF,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,+DAA+D,EAAE;QAC1G,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,8CAA8C,EAAE;QAC3F,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;KAC9D;IACD,QAAQ,EAAE;QACT,6CAA6C;QAC7C,0CAA0C;QAC1C,+BAA+B;QAC/B,uCAAuC;QACvC,oDAAoD;QACpD,4DAA4D;QAC5D,kEAAkE;QAClE,iEAAiE;QACjE,kDAAkD;KAClD;IACD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACpC,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACP,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAAE,OAAM;QACnC,MAAM,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;CACD,CAAA"}
1
+ {"version":3,"file":"fillCommand.js","sourceRoot":"","sources":["../../../src/cli/register/fillCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAE/D,MAAM,CAAC,MAAM,WAAW,GAA2B;IAClD,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,2DAA2D;IACxE,SAAS,EAAE;QACV,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE;QACrD,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,qEAAqE,EAAE;KACxG;IACD,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAChF,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,mDAAmD,EAAE;QAC5F,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,gDAAgD,EAAE;QAC9F,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,0CAA0C,EAAE;QACnF,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,qDAAqD,EAAE;QAC/F,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,wBAAwB,EAAE;QACvE,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,4DAA4D,EAAE;QACrG,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,qDAAqD,EAAE;QACtF,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,+DAA+D,EAAE;QAC1G,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,8CAA8C,EAAE;QAC3F,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;KAC9D;IACD,QAAQ,EAAE;QACT,6CAA6C;QAC7C,0CAA0C;QAC1C,+BAA+B;QAC/B,uCAAuC;QACvC,qDAAqD;QACrD,oDAAoD;QACpD,4DAA4D;QAC5D,kEAAkE;QAClE,iEAAiE;QACjE,kDAAkD;KAClD;IACD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACpC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;YACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACP,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACP,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAAE,OAAM;QACnC,MAAM,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;CACD,CAAA"}
@@ -3,6 +3,7 @@ export type DomFillOptions = {
3
3
  selector?: string;
4
4
  ref?: string;
5
5
  name?: string;
6
+ value?: string;
6
7
  valueFile?: string;
7
8
  valueStdin?: boolean;
8
9
  all?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"domFill.d.ts","sourceRoot":"","sources":["../../src/commands/domFill.ts"],"names":[],"mappings":"AASA,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,mGAAmG;AACnG,eAAO,MAAM,UAAU,4GAWrB,CAAA"}
1
+ {"version":3,"file":"domFill.d.ts","sourceRoot":"","sources":["../../src/commands/domFill.ts"],"names":[],"mappings":"AASA,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,mGAAmG;AACnG,eAAO,MAAM,UAAU,4GAWrB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"domFill.js","sourceRoot":"","sources":["../../src/commands/domFill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domFill.js","sourceRoot":"","sources":["../../src/commands/domFill.ts"],"names":[],"mappings":"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"}
@@ -158,6 +158,15 @@ const inspectWatcher = async (id, diagnostics) => {
158
158
  if (!bridge) {
159
159
  issues.push(`Watcher ${resolved.watcher.id} is not present in extension diagnostics.`);
160
160
  }
161
+ else if (!bridge.connected) {
162
+ issues.push(`Watcher ${resolved.watcher.id} native bridge is disconnected.`);
163
+ }
164
+ if (status.ok && !status.status.attached) {
165
+ issues.push(`Watcher ${resolved.watcher.id} has no debugger-attached target.`);
166
+ }
167
+ if (status.ok && status.status.targetReady === false) {
168
+ issues.push(`Watcher ${resolved.watcher.id} selected target is not ready for commands.`);
169
+ }
161
170
  if (status.ok && status.status.attached && !selectedTarget) {
162
171
  issues.push(`Watcher ${resolved.watcher.id} is attached, but no selected target was reported by /targets.`);
163
172
  }