Skip to content

Bump diff from 5.1.0 to 5.2.2 in /tools#8

Closed
dependabot[bot] wants to merge 511 commits into
mainfrom
dependabot/npm_and_yarn/tools/diff-5.2.2
Closed

Bump diff from 5.1.0 to 5.2.2 in /tools#8
dependabot[bot] wants to merge 511 commits into
mainfrom
dependabot/npm_and_yarn/tools/diff-5.2.2

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Jan 20, 2026

Bumps diff from 5.1.0 to 5.2.2.

Changelog

Sourced from diff's changelog.

Release Notes

8.0.3

  • #631 - fix support for using an Intl.Segmenter with diffWords. This has been almost completely broken since the feature was added in v6.0.0, since it would outright crash on any text that featured two consecutive newlines between a pair of words (a very common case).
  • #635 - small tweaks to tokenization behaviour of diffWords when used without an Intl.Segmenter. Specifically, the soft hyphen (U+00AD) is no longer considered to be a word break, and the multiplication and division signs (× and ÷) are now treated as punctuation instead of as letters / word characters.
  • #641 - the format of file headers in createPatch etc. patches can now be customised somewhat. It now takes a headerOptions option that can be used to disable the file headers entirely, or omit the Index: line and/or the underline. In particular, this was motivated by a request to make jsdiff patches compatible with react-diff-view, which they now are if produced with headerOptions: FILE_HEADERS_ONLY.
  • #647 and #649 - fix denial-of-service vulnerabilities in parsePatch whereby adversarial input could cause a memory-leaking infinite loop, typically crashing the calling process. Also fixed ReDOS vulnerabilities whereby adversarially-crafted patch headers could take cubic time to parse. Now, parsePatch should reliably take linear time. (Handling of headers that include the line break characters \r, \u2028, or \u2029 in non-trailing positions is also now more reasonable as side effect of the fix.)

8.0.2

  • #616 Restored compatibility of diffSentences with old Safari versions. This was broken in 8.0.0 by the introduction of a regex with a lookbehind assertion; these weren't supported in Safari prior to version 16.4.
  • #612 Improved tree shakeability by marking the built CJS and ESM packages with sideEffects: false.

8.0.1

  • #610 Fixes types for diffJson which were broken by 8.0.0. The new bundled types in 8.0.0 only allowed diffJson to be passed string arguments, but it should've been possible to pass either strings or objects (and now is). Thanks to Josh Kelley for the fix.

8.0.0

  • #580 Multiple tweaks to diffSentences:
    • tokenization no longer takes quadratic time on pathological inputs (reported as a ReDOS vulnerability by Snyk); is now linear instead
    • the final sentence in the string is now handled the same by the tokenizer regardless of whether it has a trailing punctuation mark or not. (Previously, "foo. bar." tokenized to ["foo.", " ", "bar."] but "foo. bar" tokenized to ["foo.", " bar"] - i.e. whether the space between sentences was treated as a separate token depended upon whether the final sentence had trailing punctuation or not. This was arbitrary and surprising; it is no longer the case.)
    • in a string that starts with a sentence end, like "! hello.", the "!" is now treated as a separate sentence
    • the README now correctly documents the tokenization behaviour (it was wrong before)
  • #581 - fixed some regex operations used for tokenization in diffWords taking O(n^2) time in pathological cases
  • #595 - fixed a crash in patch creation functions when handling a single hunk consisting of a very large number (e.g. >130k) of lines. (This was caused by spreading indefinitely-large arrays to .push() using .apply or the spread operator and hitting the JS-implementation-specific limit on the maximum number of arguments to a function, as shown at https://stackoverflow.com/a/56809779/1709587; thus the exact threshold to hit the error will depend on the environment in which you were running JsDiff.)
  • #596 - removed the merge function. Previously JsDiff included an undocumented function called merge that was meant to, in some sense, merge patches. It had at least a couple of serious bugs that could lead to it returning unambiguously wrong results, and it was difficult to simply "fix" because it was unclear precisely what it was meant to do. For now, the fix is to remove it entirely.
  • #591 - JsDiff's source code has been rewritten in TypeScript. This change entails the following changes for end users:
    • the diff package on npm now includes its own TypeScript type definitions. Users who previously used the @types/diff npm package from DefinitelyTyped should remove that dependency when upgrading JsDiff to v8.

      Note that the transition from the DefinitelyTyped types to JsDiff's own type definitions includes multiple fixes and also removes many exported types previously used for options arguments to diffing and patch-generation functions. (There are now different exported options types for abortable calls - ones with a timeout or maxEditLength that may give a result of undefined - and non-abortable calls.) See the TypeScript section of the README for some usage tips.

    • The Diff object is now a class. Custom extensions of Diff, as described in the "Defining custom diffing behaviors" section of the README, can therefore now be done by writing a class CustomDiff extends Diff and overriding methods, instead of the old way based on prototype inheritance. (I think code that did things the old way should still work, though!)

    • diff/lib/index.es6.js and diff/lib/index.mjs no longer exist, and the ESM version of the library is no longer bundled into a single file.

    • The ignoreWhitespace option for diffWords is no longer included in the type declarations. The effect of passing ignoreWhitespace: true has always been to make diffWords just call diffWordsWithSpace instead, which was confusing, because that behaviour doesn't seem properly described as "ignoring" whitespace at all. The property remains available to non-TypeScript applications for the sake of backwards compatibility, but TypeScript applications will now see a type error if they try to pass ignoreWhitespace: true to diffWords and should change their code to call diffWordsWithSpace instead.

    • JsDiff no longer purports to support ES3 environments. (I'm pretty sure it never truly did, despite claiming to in its README, since even the 1.0.0 release used Array.map which was added in ES5.)

  • #601 - diffJson's stringifyReplacer option behaves more like JSON.stringify's replacer argument now. In particular:
    • Each key/value pair now gets passed through the replacer once instead of twice
    • The key passed to the replacer when the top-level object is passed in as value is now "" (previously, was undefined), and the key passed with an array element is the array index as a string, like "0" or "1" (previously was whatever the key for the entire array was). Both the new behaviours match that of JSON.stringify.
  • #602 - diffing functions now consistently return undefined when called in async mode (i.e. with a callback). Previously, there was an odd quirk where they would return true if the strings being diffed were equal and undefined otherwise.

7.0.0

Just a single (breaking) bugfix, undoing a behaviour change introduced accidentally in 6.0.0:

  • #554 diffWords treats numbers and underscores as word characters again. This behaviour was broken in v6.0.0.

... (truncated)

Commits
Maintainer changes

This version was pushed to npm by explodingcabbage, a new releaser for diff since your current version.


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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @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.

EvanBacon and others added 30 commits January 22, 2025 18:14
# Why

- I needed this for a side-project (https://pillarvalley.expo.app)
- App Clips are weird in how they handle deep links. The don't call the
open: function so we need to use the continue user activity function.
This could lead to a weird edge case where the app clip was launched
without a URL (maybe an advanced invocation) then later visited with a
URL, which would be treated as the initial URL at that point.

# How

- Implement the missing expo-linking AppDelegate function which we need
regardless as it is invoked for subsequent URL changes and
NSUserActivities.
- Add a simple check for if running in an app clip.
- Add the nullish URL check that can cause fatal RN crashes. I've
upstreamed this change to RN already.

# Test Plan

- Run in an App Clip with `_XCAppClipURL` env var set in the Xcode
configuration for the build. The URL cannot be the Apple default
`https://appclip.apple.com/id?p=com.evanbacon.pillarvalley.clip` as this
will trigger a crash due to some bug in Xcode.

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
expo-camera@16.0.14
)

# Why

I need to see if an android contact is starred or not.

# How

I modified the code under expo-contacts to support starred.

# Test Plan

I added an official test for it, but I also manually created contacts on
the android device and ensured I get starred true and false properly.
 
# Checklist

- [x] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).

I don't know what this last checklist item is... Can someone clarify?

---------

Co-authored-by: Vojtech Novak <vonovak@gmail.com>
# Why

sdk-52 ios CI fails

# How

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…ty. (expo#34474)

Automatically skip networking when running in a webcontainer

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
…AN ip (expo#34368)

# Why

Fixes expo#33833

Right now, React Native DevTools is a forked Chrome DevTools maintained
by Meta and shipped as package within `@react-native/dev-middleware`.
This means React Native DevTools is both versioned per Expo SDK/React
Native version, as well as hosted locally from the development machine
itself.

Previously, we always bind this debugging infrastructure to the LAN IP
of the development machine. Unfortunately, this doesn't always work,
especially on restricted corporate networks where every individual
machine connected to the network can't be accessed, even from the same
development machine.

# How

This changes the debugging infrastructure to always bind to localhost.
Note that this does not affect `expo start`, which will still bind to
any IP including LAN by default to allow opening the project on
LAN-connected Expo Go or dev clients.

# Test Plan

- `bun create expo ./test-debugging`
- `cd ./test-debuggin`
- `bun expo start`
- `curl http://localhost:8081/json/list | jq` should show websocket
connections coneccting to `..://localhost:8081/...`.
- Press `j` in terminal should open React Native DevTools, even on
restricted networks/offline

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
regression from expo#33348 that delegate methods from AppDelegate.mm are not
be called

When using AppDelegate.mm, the `self` in ExpoAppInstance is not the true
AppDelegate.mm, since the hierarchy is

```
AppDelegate.mm -> derive from ExpoAppDelegateWrapper -> composite ExpoAppInstance
```

where in AppDelegate.swift it's

```
AppDelegate.swift -> derive from ExpoAppDelegate -> derive from ExpoAppInstance
```

to make AppDelegate.mm case works, we pass the true AppDelegate to
ExpoAppInstance and call it when it's available.

- test `expo@52.0.27` with react-native-bootsplash and add a break point
at `customizeRootView`
- ci passed

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Vojtech Novak <vonovak@gmail.com>
add experimental libsql integration
close ENG-14210

- add my prebuilt libsql.xcframework with dynamic frameworks and prevent expo-updates crash
- copy `SQLiteModule.swift` to `SQLiteModuleLibSQL.swift` and update to use libsql c bindings
- add config-plugin to update Podfile.properties.json

---------

Co-authored-by: Alan Hughes <30924086+alanjhughes@users.noreply.github.com>
(cherry picked from commit 425d4ad)
close ENG-14210

add libsql integration in cpp level

(cherry picked from commit 4054118)
expo-task-manager@12.0.5
expo-sqlite@15.1.0
expo-notifications@0.29.13
expo-modules-core@2.2.0
expo-maps@0.7.0
expo-linking@7.0.5
expo-dev-launcher@5.0.26
expo-contacts@14.0.4
expo-constants@17.0.5
expo-background-task@0.1.0
expo-background-fetch@13.0.5
expo@52.0.28
@expo/cli@0.22.11
fix the wrong xcframework lib

use `install_name_tool` to replace the rpath

testing on brent's machine

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
expo-sqlite@15.1.1
…xpo#34220)

# Why

We're looking to adopt `@expo/fingerprint` at PlayerData, but we've been
tripped up by `.gitignore` changes showing a diff in the fingerprint.

While I can appreciate that some changes to `.gitignore` may result in
changes, the vast majority should be safe (particularly in a CNG
project).

# How

This PR adds a `SourceSkips.GitIgnore` option that users can opt-in to.

(cherry picked from commit bac84f4)
On Android, when saving a contact that has a photo attached to it, the
method will fail because we're not resolving the path to the photo
correctly (not using a content resolver).

Note: This was previously solved in expo#32097 by
[freeboub](https://github.com/freeboub) - thanks!

- Added using contentResolver to get the correct inputstream to the
photo in the Contact class
- Passed appContext from Contacts module to be able to use the
contentResolver
- Added support for testing saving an image (ie. changing picture) on
Android in BareExpo

Closes #ENG-14832

Test in BareExpo:
- Open Contacts test screen
- Click contact image and select a new image (this will save the
contact)
- Verify that the contact was successfully saved.

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
Co-authored-by: Łukasz Kosmaty <lukasz.kosmaty@swmansion.com>
…xpo#34431)

The package `expo-background-task` was just recently merged into `main`.
This PR follows up on expo#34176 to add support for the new expo modules
gradle plugin.

Updated build.gradle with new pattern.

✅ BareExpo

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
…em again during updateContactAsync (expo#34186)

updateContactAsync corrupts contact:
- update contact without website (to remove it) => the website field is
not deleted
- update contact with two website => only one website field is returns

The modified loop was not good. on each field it add 1 delete request
and 1 add request.
--> if user wants to remove a field, the delete is not added => field
remains in database
--> if user wants to add multiple a field, the delete is not added on
each loop => first loop add delete and Add, second loop add delete and
add then the second delete will remove data added by by the first add.

Solution:
flush all fields before creating the new add requests

2 new tests were added to the test suite

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Olivier Bouillet <olivier@azzapp.com>
gabrieldonadel and others added 21 commits April 3, 2025 19:03
expo-dev-menu@6.0.25
expo-dev-launcher@5.0.35
expo-dev-client@5.0.20
expo@52.0.44
…simulator (expo#36060)

# Why

The previous fix found here: expo#36044 - was a bit too strict.

# How

This commit fixes this by changing it so that we handle the specific
scenario where the check actually works (on previous versions) and we
can display the dialog.

# Test Plan

See expo#36044 for details.

# Checklist

- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
…dling for channel filtering during updates
Bumps [diff](https://github.com/kpdecker/jsdiff) from 5.1.0 to 5.2.2.
- [Changelog](https://github.com/kpdecker/jsdiff/blob/master/release-notes.md)
- [Commits](kpdecker/jsdiff@v5.1.0...v5.2.2)

---
updated-dependencies:
- dependency-name: diff
  dependency-version: 5.2.2
  dependency-type: direct:production
...

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 Jan 20, 2026
@github-actions
Copy link
Copy Markdown

Subscribed to pull request

File Patterns Mentions
tools/** @tsapeta

Generated by CodeMention

@dependabot @github
Copy link
Copy Markdown
Author

dependabot Bot commented on behalf of github Feb 11, 2026

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

@dependabot dependabot Bot closed this Feb 11, 2026
@dependabot dependabot Bot deleted the dependabot/npm_and_yarn/tools/diff-5.2.2 branch February 11, 2026 12:45
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.