Skip to content

chore(deps): bump js-yaml from 4.3.0 to 4.3.1 in /docs - #141

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/docs/js-yaml-4.3.1
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/docs/js-yaml-4.3.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 12, 2026

Copy link
Copy Markdown

Bumps js-yaml from 4.3.0 to 4.3.1.

Changelog

Sourced from js-yaml's changelog.

4.3.1 - 2026-07-31

Security

  • [backport] Remove quadratic complexity from !!omap duplicate key detection.
Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Summary by cubic

Upgrade js-yaml to 4.3.1 in docs to pull in a security fix for !!omap duplicate key detection. This lowers worst‑case parse cost and reduces potential DoS risk.

Written for commit 0e6ea19. Summary will update on new commits.

Review in cubic

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.3.0 to 4.3.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.1/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.3.0...4.3.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.3.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 12, 2026
mpiton added a commit to kueschallCarl/tauri-pilot that referenced this pull request Aug 30, 2026
Replaces `dispatchPointerPair` with a thin wrapper over the existing
`dispatchPointerEvent`. That fixes four things at once: pointer events now
precede their compatibility mouse events as the spec (and `click()`) has
them, `composed: true` lets the press escape a shadow root, a WebView
without the `PointerEvent` constructor still gets pointer-typed events
instead of nothing, and a cancelled pointer event suppresses its mouse
counterpart. The unused `accepted` return is gone with it.

The press target is now gated on containment. `elementFromPoint` hands back
whatever is on top, so a toast or backdrop over the source would take the
press while `drag` still returned ok — the false green this change exists to
remove.

Moves and the release are hit-tested per point instead of going to
`document`. Dispatching on `document` gives the event a propagation path of
`[window, document]` and nothing else, so listeners on elements between the
pressed node and the document never fire; React 17+ delegates on its root
container, not on `document`. They still bubble to the document-level
listeners dnd-kit and friends install.

The step delay no longer runs after the last move, where it separates
nothing and only pushes the drop sequence back.

`steps`, `stepDelayMs` and `settleMs` are declared in the MCP drag schema and
forwarded, which the docs already claimed. The plugin sizes the eval timeout
from them, so a gesture tuned past 10s is no longer cut short by the channel
while the bridge is still mid-drag.

Drops the `mpiton#141` references from the test file — that issue is a js-yaml
dependabot bump, not this bug.
mpiton added a commit that referenced this pull request Aug 30, 2026
…braries (#142)

* fix(bridge): make drag a real pointer gesture so it drives JS drag libraries

`drag` dispatched the HTML5 DragEvent sequence plus a single `mousedown`, with
no `mousemove` stream and no `mouseup`, then returned `ok: true` unconditionally.

That drives `draggable="true"` handlers, but not the other family of drag
implementation: dnd-kit, sortable.js, interact.js and react-dnd's mouse backend
never see DragEvents. They activate on `mousedown`, track *repeated*
`mousemove`/`pointermove` events on `document` behind a small distance
threshold, and commit on `mouseup`. A press with no movement and no release
cannot activate them, so `tauri-pilot drag` against such an app did nothing and
reported success — the worst outcome for an agent asserting on the result.

The gesture now:

* presses the deepest node under the start point (`elementFromPoint`) rather
  than the resolved element — library listeners commonly sit on an inner handle
  or card, and events only bubble upward, so pressing the container misses them;
* streams interpolated `mousemove`/`pointermove` events on `document` with
  `buttons: 1`, clearing distance thresholds (`document` because a
  `position: fixed` ancestor can otherwise break pointer capture in WKWebView);
* emits the HTML5 sequence exactly as before, so native handlers do not regress;
* releases with `mouseup`/`pointerup`, then waits for the app to settle, since a
  library drop commonly triggers async state/network work before the DOM updates.

`steps` (1–60, default 12), `stepDelayMs` (default 16) and `settleMs` (default
250) tune it. `drag` is now async; the eval wrapper already awaits results, so
the protocol is unchanged.

The result gains `from`, `to`, `steps` and `html5DropHandled` (true when a
handler called `preventDefault()` on the drop). `ok` still means only that the
gesture was delivered — nothing observable from outside can prove a library
handled a drop — and the docs now say so instead of implying success.

PointerEvent is used only when the constructor exists, so a WebView without it
degrades to mouse-only events rather than throwing.

Verified against a real Tauri v2 + React app on macOS (WKWebView) using
@dnd-kit/core 6.3.1 with MouseSensor and a 6px activation distance: before this
change `tauri-pilot drag <source> <target>` printed `ok` and changed nothing;
after it, the dragged item lands in the drop zone and the resulting row is
present in the app's SQLite database.

* fix(bridge): address review on the drag gesture

Replaces `dispatchPointerPair` with a thin wrapper over the existing
`dispatchPointerEvent`. That fixes four things at once: pointer events now
precede their compatibility mouse events as the spec (and `click()`) has
them, `composed: true` lets the press escape a shadow root, a WebView
without the `PointerEvent` constructor still gets pointer-typed events
instead of nothing, and a cancelled pointer event suppresses its mouse
counterpart. The unused `accepted` return is gone with it.

The press target is now gated on containment. `elementFromPoint` hands back
whatever is on top, so a toast or backdrop over the source would take the
press while `drag` still returned ok — the false green this change exists to
remove.

Moves and the release are hit-tested per point instead of going to
`document`. Dispatching on `document` gives the event a propagation path of
`[window, document]` and nothing else, so listeners on elements between the
pressed node and the document never fire; React 17+ delegates on its root
container, not on `document`. They still bubble to the document-level
listeners dnd-kit and friends install.

The step delay no longer runs after the last move, where it separates
nothing and only pushes the drop sequence back.

`steps`, `stepDelayMs` and `settleMs` are declared in the MCP drag schema and
forwarded, which the docs already claimed. The plugin sizes the eval timeout
from them, so a gesture tuned past 10s is no longer cut short by the channel
while the bridge is still mid-drag.

Drops the `#141` references from the test file — that issue is a js-yaml
dependabot bump, not this bug.

* fix(plugin): match the bridge steps fallback in the drag timeout

`bridge.js` sends any `steps` below 1 back to its default of 12, but the
Rust budget clamped it to 1. A `steps: 0, stepDelayMs: 1000` call therefore
got a 10s channel while the bridge still had 12s of move delays to run, which
is the same dropped-result failure the budget was added to prevent. Zero is
now mapped to 12 before the upper clamp.

The trailing-delay test recorded wall-clock time with an upper bound, which a
paused event loop can blow through on a correct gesture. It now captures what
the gesture schedules instead and asserts the exact sequence of sleeps, which
is deterministic and pins the settle as well.

* fix(plugin): coerce drag tunables like the bridge does

`bridge.js` runs steps/stepDelayMs/settleMs through `Number()`, so a numeric
string or a fractional value is a real setting there. `drag_eval_timeout` read
them with `as_u64`, which returns None for both, so `stepDelayMs: "1000"` on a
60-step gesture budgeted the 10 s floor against a 60 s drag and timed the
channel out mid-drag. Mirror the coercion instead: parse numeric strings, keep
fractions, floor only `steps`.

* fix(plugin): read radix-prefixed drag tunables like Number() does

`Number("0x3e8")` is 1000, so a hex literal is a real one-second step delay in
the bridge while `f64::from_str` rejected it and the budget dropped back to the
10 s floor. Same failure the decimal-string fix addressed, one string form
further out. Also corrects the coercion note above `field`: `Number(true)` is
1, not 0.

* fix(plugin): drop the width cap on radix drag tunables

`Number()` puts no width limit on `0x`/`0o`/`0b` literals, and `steps` clamps
to 60 afterwards, so parsing into u32 sent `steps: "0xFFFFFFFFFF"` back to the
default of 12 while the bridge ran the full 60. Accumulate into f64 instead,
and reject a bare prefix the way `Number("0x")` does.

---------

Co-authored-by: Mathieu Piton <27002047+mpiton@users.noreply.github.com>
@mpiton

mpiton commented Aug 30, 2026

Copy link
Copy Markdown
Owner

@dependabot rebase

@dependabot @github

dependabot Bot commented on behalf of github Aug 30, 2026

Copy link
Copy Markdown
Author

Looks like js-yaml is up-to-date now, so this is no longer needed.

@dependabot dependabot Bot closed this Aug 30, 2026
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/docs/js-yaml-4.3.1 branch August 30, 2026 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant