Skip to content

chore(deps): update template major updates (major)#34

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/major-template-major-updates
Open

chore(deps): update template major updates (major)#34
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/major-template-major-updates

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Apr 11, 2026

This PR contains the following updates:

Package Change Age Confidence
@eslint/markdown 7.5.18.0.1 age confidence
eslint-plugin-simple-import-sort 12.1.113.0.0 age confidence
eslint-plugin-unicorn 63.0.064.0.0 age confidence
ky 1.14.32.0.1 age confidence
typescript (source) 5.9.36.0.2 age confidence

Release Notes

eslint/markdown (@​eslint/markdown)

v8.0.1

Compare Source

Bug Fixes
  • align no-reversed-media-syntax masking with UTF-16 offsets (#​640) (7111e25)

v8.0.0

Compare Source

⚠ BREAKING CHANGES
  • Require Node.js ^20.19.0 || ^22.13.0 || >=24 (#​561)
  • remove /types export (#​564)
Features
Bug Fixes
lydell/eslint-plugin-simple-import-sort (eslint-plugin-simple-import-sort)

v13.0.0

Compare Source

This release puts imports from the same source, but with different import styles, in a deterministic order.

// First namespace imports:
import * as Circle from "circle;
// Then default imports:
import createCircle from "circle";
// Then named imports:
import { radius } from "circle";

That is especially useful if you need to have both a namespace import and want to import a few things separately (since that cannot be combined into a single import statement). With the above rule, the imports end up in a deterministic order.

It’s only a breaking change if you import from the same source multiple times in the same file (using different styles), and only in the form that you need to autofix your files.

Thanks to Kannan Goundan (@​cakoose)!

sindresorhus/eslint-plugin-unicorn (eslint-plugin-unicorn)

v64.0.0

Compare Source

New rules
Improvements
  • Support TypeScript type assertions in many rules (#​2909) 6b41299
  • text-encoding-identifier-case: Support template literals (#​2905) 9448c8c
  • prefer-math-min-max: Ignore Date objects (#​2903) cd53d9e
  • prevent-abbreviations: Handle exported TS interfaces and enums (#​2898) 6dc01d2
  • no-array-callback-reference: Skip TypeScript type predicate callbacks (#​2897) 02364c8
  • prefer-spread: Skip autofix when it would drop comments (#​2896) 6ff1467
  • no-useless-undefined: Flag return undefined for explicit undefined return types (#​2876) 41fc9c2
  • no-unnecessary-polyfills: Improve performance (#​2874) c88bf29
  • expiring-todo-comments: Add ignoreDates option (#​2892) 95a288b
  • prevent-abbreviations: Recognize jQuery 42f5364
  • prefer-object-from-entries: Avoid auto-fixing generic reduce (#​2878) bea9b20
Fixes
  • expiring-todo-comments: Fix partial version comparison (#​2895) 51390e9
  • consistent-destructuring: Fix false positive for nested rest destructuring (#​2894) 1cddfb5
  • consistent-destructuring: Fix false positive after reassignment (#​2893) c7f57d0
  • consistent-function-scoping: Fix TypeScript false positives for lexical this (#​2885) a383657
  • custom-error-definition: Fix class field autofix (#​2887) 1359726
  • explicit-length-check: Fix || fallback false positives (#​2889) 84246ec
  • explicit-length-check: Avoid unsafe autofix in negated comparisons (#​2883) 73b043b
  • import-style: Fix false positive for type-only import (#​2891) aea9954
  • no-unused-properties: Fix for JSX member access (#​2890) 0ff698b
  • better-regex: Fix empty-pattern autofix (#​2881) c201987
  • prefer-global-this: Fix for window-specific in checks (#​2879) 6bf7537
  • prefer-native-coercion-functions: Fix false positive for TS type predicates (#​2888) 4c4b565
  • prefer-set-has: Fix string false positives (#​2882) c230c22
  • prefer-top-level-await: Fix false positive with Promise.all (#​2884) 67faa7a

sindresorhus/ky (ky)

v2.0.1

Compare Source

  • Improve compatibility with custom fetch implementations (#​858) 2971991
  • Fix fetch option forwarding 2df9b7e

v2.0.0

Compare Source

Breaking
New
Fixes
  • Fix beforeRequest hooks being skipped when a Request is returned (#​832) aec65db
  • Ignore non-Errors returned by beforeError hooks (#​833) a541fc0

Migration guide

Hook signatures

All hooks now receive a single state object instead of separate arguments.

hooks: {
-	beforeRequest: [(request, options) => {
+	beforeRequest: [({request, options}) => {
		request.headers.set('X-Custom', 'value');
	}],
-	afterResponse: [(request, options, response) => {
+	afterResponse: [({request, options, response}) => {
		log(response.status);
	}],
-	beforeRetry: [({request, options, error, retryCount}) => {
+	beforeRetry: [({request, options, error, retryCount}) => {
		// Same as before - beforeRetry already used an object
	}],
-	beforeError: [(error) => {
+	beforeError: [({error}) => {
		return error;
	}],
}
prefixUrl renamed to prefix
-ky('users', {prefixUrl: 'https://example.com/api/'});
+ky('users', {prefix: 'https://example.com/api/'});

Leading slashes in input are now allowed with prefix. There's also a new baseUrl option for standard URL resolution, which you may prefer over prefix.

beforeError hook receives all errors

Previously only received HTTPError. Now receives all error types. Use type guards:

+import {isHTTPError} from 'ky';

hooks: {
	beforeError: [
-		(error) => {
-			const {response} = error;
+		({error}) => {
+			if (isHTTPError(error)) {
+				const {response} = error;
+			}

			return error;
		}
	]
}
.json() on empty responses

.json() now throws a parse error on empty bodies and 204 responses instead of returning an empty string. This aligns with native JSON.parse behavior and surfaces the real issue; your code expected JSON but the server sent none.

Check the status before calling .json() if you expect empty responses:

const response = await ky('https://example.com/api');

if (response.status !== 204) {
    const data = await response.json();
}
Ky-specific options stripped from hooks

Ky-specific properties (hooks, json, parseJson, stringifyJson, searchParams, timeout, throwHttpErrors, fetch) are no longer available on the options object passed to hooks. If you need access to these values, store them in a variable outside the hook or use the context option to pass data between hooks.

searchParams merging

searchParams now merges with existing query parameters in the input URL instead of replacing them.

// v1: searchParams replaces ?existing=1
// v2: searchParams merges with ?existing=1
ky('https://example.com?existing=1', {searchParams: {added: 2}});
// => https://example.com?existing=1&added=2
HTTPError response body

error.response.json() and other body methods no longer work since the body is now automatically consumed. Use error.data instead, which has the pre-parsed response body immediately available.

-const body = await error.response.json();
-console.log(body.message);
+console.log(error.data.message);

This fixes resource leaks when catching HTTPError without consuming the body (#​633) and makes error details synchronously available (#​642). We considered cloning the response to keep both paths working, but that doubles memory usage for error bodies and adds edge cases around locked/large streams for little benefit. error.response is still available for headers and status.

Upgrading from 2.0.0-0

.json() on empty responses

The behavior changed again from the prerelease. .json() now throws instead of returning undefined for empty bodies and 204 responses. The return type is back to Promise<T> (no more | undefined).


Thanks to @​sholladay for helping with this update.


microsoft/TypeScript (typescript)

v6.0.2

Compare Source


Configuration

📅 Schedule: (in timezone Asia/Shanghai)

  • Branch creation
    • "every weekend"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/major-template-major-updates branch from 49b2011 to 19dab98 Compare April 14, 2026 13:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants