Skip to content

Update All NPM Dependencies - #7

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all-npm-dependencies
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/all-npm-dependencies

Conversation

@renovate

@renovate renovate Bot commented Nov 1, 2026

Copy link
Copy Markdown

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@atlaskit/pragmatic-drag-and-drop-hitbox (source) 1.1.0 → 1.2.0 age adoption passing confidence
@crxjs/vite-plugin (source) 2.4.0 → 2.7.1 age adoption passing confidence
@eslint/js (source) 9.39.4 → 9.39.5 age adoption passing confidence
@floating-ui/dom (source) 1.7.6 → 1.8.0 age adoption passing confidence
@release-it/keep-a-changelog 7.0.1 → 7.1.0 age adoption passing confidence
@solidjs/router 0.16.1 → 0.16.3 age adoption passing confidence
@types/chrome (source) 0.1.40 → 0.3.5 age adoption passing confidence
eslint (source) 9.39.4 → 9.39.5 age adoption passing confidence
eslint-plugin-solid 0.14.5 → 0.18.1 age adoption passing confidence
feedscout (source) 1.8.1 → 1.11.0 age adoption passing confidence
feedsmith (source) 2.9.4 → 2.9.6 age adoption passing confidence
fflate (source) 0.8.2 → 0.8.3 age adoption passing confidence
globals 17.5.0 → 17.13.0 age adoption passing confidence
hotkeys-js (source) 4.0.4 → 4.0.8 age adoption passing confidence
idb 8.0.3 → 8.0.4 age adoption passing confidence
lefthook 2.1.6 → 2.2.2 age adoption passing confidence
prettier (source) 3.8.3 → 3.9.10 age adoption passing confidence
solid-js (source) 1.9.12 → 1.9.17 age adoption passing confidence
stylelint (source) 17.9.1 → 17.16.0 age adoption passing confidence
typescript-eslint (source) 8.59.1 → 8.71.2 age adoption passing confidence
valibot (source) 1.3.1 → 1.5.0 age adoption passing confidence
vite (source) 7.3.2 → 7.3.7 age adoption passing confidence
vite-plugin-solid 2.11.12 → 2.11.14 age adoption passing confidence

Release Notes

crxjs/chrome-extension-tools (@​crxjs/vite-plugin)

v2.7.1

Patch Changes
  • efa9c63: Update direct dependency ranges for convert-source-map, debug,
    and fs-extra.
  • 6efde9d: Filter Vite 8/Rolldown-only options before the dev file writer calls
    Rollup, removing Unknown input options: platform warnings.

v2.7.0

Minor Changes
  • 9f00943: Add dev HMR support for manifest-declared MAIN world content scripts.
Patch Changes
  • a9cc89a: Remove unused vite-plugin dependencies and update selected dependency
    versions.

v2.6.1

Patch Changes
  • 2b88621: Coalesce file writer readiness waits so large dev-server graph
    updates do not repeatedly recompute the same dependency traversal. This also
    fixes late HMR readiness waits that could miss the shared ready event and
    delay content script updates.

v2.6.0

Minor Changes
  • 4f5d2ec: feat: add IIFE content script bundling

    Content scripts named with .iife.ts extension are automatically bundled as
    self-contained IIFE files with all dependencies inlined. This is useful for
    MAIN world content scripts used with chrome.scripting.executeScript or
    chrome.scripting.registerContentScripts.

Patch Changes
  • 5316e9c: Allow chrome-extension:// and moz-extension:// origins in Vite
    dev-server CORS automatically. This keeps extension pages able to fetch
    dev-server files on Vite releases with the stricter localhost-only CORS
    default, including Vite 4.5.6, 5.4.12, and 6.0.9+, without requiring
    projects to configure server.cors.origin manually.
  • 1aee9ad: fix: dynamic content scripts failing in build --watch mode
  • 2f8bab5: Fix the dev-mode loading page so it waits for the requested extension
    HTML file, preserves the page URL query string, allows extension-origin
    readiness polling, and throttles automatic reloads to avoid rapid flicker.
  • 1681511: Expand vite-plugin CI to run e2e tests against supported Vite
    versions and fix compatibility issues exposed by the matrix.
  • 0593d58: fix: publish ESM declarations for the Vite plugin entrypoint

v2.5.0

Minor Changes
  • 4756baf: feat: add HMR support for CSS declared in manifest content_scripts

  • 4756baf: add: browser_specific_settings.gecko properties

  • 4756baf: Fix "TypeError: plugins is not iterable" error when using
    rolldown-vite (Vite 7).

    In rolldown-vite, the buildStart hook doesn't receive options.plugins. This
    fix uses the configResolved hook to get plugins from the resolved config, with
    buildStart kept as a fallback for older Vite versions.

  • 4756baf: Fixed
    #​852, the plugin
    now emits a correct URL in service-worker-loader.js when the Vite option
    server.https is enabled.

  • 4756baf: fix: resolve TypeScript types correctly for ESM and CJS consumers

  • 4756baf: feat: add Vite 8 beta support

Patch Changes
  • 4756baf: ci: migrate release workflow to npm trusted publishers

  • 570312a: fix: sanitize colons from output filenames on Windows

  • 4756baf: fix: copy CSS files declared in manifest content_scripts to output

  • 4756baf: Replace cheerio with node-html-parser to fix npm deprecation warning
    for whatwg-encoding.

    Also adds explicit vite peerDependency declaration (^3.0.0 through ^7.0.0) to
    enable proper version resolution when used with different vite versions.

  • 4756baf: ci: run compat tests against stable Vite 8, make the vite8 available
    as a peer dependency

  • 4756baf: fix: UnoCSS/TailwindCSS HMR issues with virtual CSS modules

  • 8a99b4f: made data_collection_permissions optional

  • 4756baf: fix: respect user's build.manifest setting in Vite 4+

    When users set build.manifest: false in their Vite config, the Vite manifest
    file (.vite/manifest.json in Vite 5+, or manifest.json in older versions)
    is now properly removed from the output bundle.

    CRXJS internally requires the Vite manifest to derive content script resources
    during build, so it forces build.manifest: true. Previously, this meant the
    Vite manifest was always included in the output even if the user explicitly
    disabled it. Now, CRXJS removes the manifest from the bundle after processing
    if the user didn't want it.

    Closes #​1077

  • d364bd8: chore: upgrade chokidar to 5.0.0

  • 4756baf: feat(client): Update the style and content of the development mode
    loading page

eslint/eslint (@​eslint/js)

v9.39.5

Compare Source

Bug Fixes

Documentation

Chores

  • 458205f chore: update @eslint/eslintrc and @eslint/js for v9.39.5 (#​21077) (Francesco Trotta)
  • 202117b chore: package.json update for @​eslint/js release (Jenkins)
  • d9eb6ed test: disable warning for vm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER (#​21074) (Francesco Trotta)
  • 7b431a7 chore: override re2 dependency for @metascraper/helpers (#​21068) (Milos Djermanovic)
  • daf7791 chore: pin fflate@​0.8.2 (#​20895) (Milos Djermanovic)
  • daee8ba ci: use pnpm in eslint-flat-config-utils type integration test (#​20829) (Milos Djermanovic)
  • 116d4be ci: unpin Node.js 25.x in CI (#​20619) (Copilot)
floating-ui/floating-ui (@​floating-ui/dom)

v1.8.0

Compare Source

Minor Changes
  • feat: add 'layoutViewport' string option to rootBoundary. Unlike the visual 'viewport' boundary, it remains stable while pinch-zooming or when a mobile software keyboard is open, and unlike a manually passed Rect of the documentElement's client size, it accounts for space reserved by scrollbar-gutter: stable.
Patch Changes
  • fix: remove redundant passive options from scroll listeners
  • fix: support explicit undefined for optional properties with exactOptionalPropertyTypes
  • fix(autoUpdate): update immediately instead of waiting for the 1s layoutShift refresh throttle when the reference moved during an observer refresh
  • fix(getClippingRect): correct clipping-ancestor filtering for fixed-position elements
  • perf(dom): reduce bundle size and skip redundant per-call work in positioning utilities
  • fix(getViewportRect): account for scrollbar-gutter: stable both-edges reserved space
  • fix(getViewportRect): don't overflow past a left-side document scrollbar
  • fix(platform): don't throw in getClientRects when a virtual element without a getClientRects method is used with the inline() middleware
  • fix(autoUpdate): refresh layout shift observer on root resize
  • Update dependencies: @floating-ui/core@1.8.0, @floating-ui/utils@0.2.12
release-it/keep-a-changelog (@​release-it/keep-a-changelog)

v7.1.0

Compare Source

solidjs/solid-router (@​solidjs/router)

v0.16.3

Compare Source

Patch Changes
  • 31501fd: Add opt-in explicit scroll restoration for back/forward navigation: <Router scrollRestoration> (#​577). The browser's native same-document heuristic loses the saved offset when the destination route forces a layout while the document is still short — any component that measures itself on mount is enough to trigger it. When enabled the router sets history.scrollRestoration = "manual", captures positions continuously keyed by the history entry depth it already tracks, persists them across reloads, and restores after the navigation settles — retrying as the document grows if the target offset isn't reachable yet, cancelled by the first user scroll. Off by default on 0.x; no behavior changes unless enabled.

v0.16.2

Patch Changes
  • 676db85: fix #​451 - dispose per-route roots when the route tree unmounts; leaked roots stayed subscribed to route matches and crashed with TypeError: ... (evaluating 'match().path') on a later navigation (e.g. when a <Show> in the root component hid the outlet during login/logout flows)

  • cae1d15: Fix a batch of long-standing bugs:

    • useSubmission().retry was always a no-op due to an operator-precedence bug (#​504)
    • disposing an older owner no longer unregisters a newer action bound to the same URL, which caused forms to fall through to native submission after revalidation (#​542)
    • useBeforeLeave listeners now observe defaultPrevented set by other listeners (#​530)
    • <A> active state now ignores trailing slashes on href (#​532)
    • useCurrentMatches returns a copy so user mutation can't corrupt router state (#​516)
    • static path segments no longer percent-encode RFC 3986 pchar characters (+, @, :, $, &, ,, ;, =), so routes like /+foo or /@user match the browser's raw pathname (#​559, #​509)
    • consecutive synchronous setSearchParams calls now compose: the merge applies to the in-flight navigation target instead of the stale committed location (#​547)
  • e9acd69: fix #​454 - default RouteDefinition's data generic to any so typed components and preload functions are assignable in annotated configs like const routes: RouteDefinition[], where no inference site for the generic exists

  • 9d80d4e: Paths with empty interior segments (doubled slashes, e.g. //dash or /foo//bar) no longer match routes and now render the not-found state instead of silently matching their collapsed form (#​567). A single trailing slash is still tolerated. Doubled leading slashes are also no longer normalized away by the browser integration and parse correctly instead of being treated as protocol-relative URLs.

  • b308c21: fix #​497 - revalidate now forces the cache miss synchronously instead of deferring it into the transition microtask, so a same-tick refetch() after an un-awaited revalidate() refetches fresh data

  • e9acd69: fix #​347 - accept VoidComponent pages as route components; component now takes a RouteSectionComponent union so components that don't declare children type-check, while components requiring props the router doesn't pass are still rejected

solidjs-community/eslint-plugin-solid (eslint-plugin-solid)

v0.18.1

Compare Source

Bug-fix patch release. Thanks @​thedanchez for the detailed reports (#​233, #​234, #​235), @​brenelz for #​230, and @​milomg for #​228.

solid/reactivity
  • dynamic() sources from @solidjs/web are now tracked scopes, like createMemo — async sources included (#​230 by @​brenelz; fixes item 1 of #​235).
  • Optional callback properties wrapped in a conditional or logical expression ({ onDrag: props.onDrag ? (e) => props.onDrag(e) : undefined }) now classify like the unconditional property form instead of reporting badUnnamedDerivedSignal (#​235 item 2).
  • .then()/.catch()/.finally() callbacks are treated as called functions, like timer callbacks and code after await (#​235 item 3).
solid/no-unused-signal
  • Function-form derived primitives (createSignal(fn), createStore(fn, seed)) are no longer reported as "never written" — they change through their source function (#​234).
  • The export exemption now applies only to the exported declaration itself, so signals inside export function Component() {} are checked again; export const [a, setA] = createSignal(0) stays exempt (#​234).
Types
  • Public exports are now assignable to ESLint's defineConfig() from eslint/config: the plugin's rules are declared with a loose structural type at the export boundary (mirroring typescript-eslint's workaround for typescript-eslint#11543), and configs validate against ESLint's own Linter.Config. Runtime unchanged; a type-level test now guards this in CI (#​233).
eslint-solid-standalone
  • The Linter instance sets cwd: "/", needed by solid-playground (#​228 by @​milomg).

v0.18.0

Compare Source

Four new correctness rules (from #​219, thanks @​brenelz), a revived community rule (#​145, thanks @​SarguelUnda), extensions to existing rules, and a batch of reactivity false-positive fixes. Verified against the official Solid 2.0 templates (zero findings).

New rules (enabled in v2/v2-strict)
  • solid/no-write-in-pure-computation (error) — setter calls in createMemo callbacks, the compute half of createEffect(compute, effect), and component bodies, all pure owned scopes that throw on writes in Solid 2.0 dev. Honors ownedWrite: true; onSettled/createTrackedEffect/handlers/effect halves exempt by function boundary. Closes #​79.
  • solid/no-store-mutation-outside-setter (error) — mutating a store's read proxy is silently ignored by core (no error, no update); lint is the only guardrail today.
  • solid/no-unused-signal (warn) — never-written or never-read createSignal/createStore/createOptimistic tuples, which unused-variable rules can't see.
  • solid/no-boolean-enumerated-attribute (error) — booleans on enumerated attributes (draggable, spellcheck, contenteditable, translate, tristate aria-*) produce a different state than the string tokens; literals autofix. Closes #​144/#​145.
Reactivity false-positive fixes
  • untrack(async () => ...) no longer reports an async tracked scope (#​188)
  • this.state = state is a reference escape, not a snapshot (#​184)
  • makePersisted(createSignal(...))-style wrappers analyze as pass-through (#​190)
New setting
  • settings.solid.moduleSources registers custom renderers/re-export wrappers as Solid primitive sources (#​183)

Full details in the changelog.

v0.17.1

Compare Source

Bug fixes only. Thanks to @​jynxio and @​brenelz for the reports and PRs.

Fixes
  • solid/reactivity regression from 0.16.1 (#​223). The staleCapture check flagged captures read inside synchronous array-method callbacks (items.filter((item) => item.includes(q))) within createMemo/createEffect bodies. A function passed as a call argument doesn't escape through a return below it — only the call's result does — so these callbacks run during the computation, where the capture is fresh. IIFEs are exempt for the same reason.
  • solid/imports type mappings for Solid 2.0 (#​220, #​221, #​222). The JSX namespace only exists in @solidjs/web in 2.0; the rule was autofixing correct imports into a module that doesn't export it. ValidComponent/ComponentProps are now accepted from both solid-js (DOM-independent) and @solidjs/web (DOM-aware) since the two packages export genuinely different types. The fixer also no longer produces a duplicate type modifier (import type { type JSX }) when moving inline type specifiers.
  • renderToStringAsync is a removed API, not a misplaced one. It no longer exists in Solid 2.0 (renderToString awaits async content). Dropped from the v2 imports map — which was autofixing imports into a dead end — and added to solid/removed-api with migration guidance. solid/removed-api now also scans @solidjs/web imports, so a mechanically source-rewritten import of a removed API is still reported.

Also verified fixed and closed: #​193 (signals passed as create* arguments stopped warning with the 0.16.1 accessor-passing work).

v0.17.0

Compare Source

Server functions are core in Solid 2.0, so the plugin now lints them. Four new rules cover the "use server" directive's silent failure modes — all enabled as errors in the v2 and v2-strict configs, and verified against the official Solid 2.0 templates (zero findings) and under Oxlint.

New Rules
  • solid/valid-use-server. The compiler only honors "use server" in specific positions and silently ignores it everywhere else — often shipping database access or secrets to the client without any error. Flags directives that aren't in the directive prologue (after other statements, inside plain blocks), template-literal "directives", and directives in positions the compiler never extracts (object methods, getters/setters, class methods). For module-level directive files, also flags non-function exports (which fail at server boot) and calls to client declaration wrappers (GET, live, withMeta from @solidjs/web; query, action, liveQuery from @solidjs/router), whose client-side behavior is silently compiled out in such files. A clientWrappers option adds project-specific wrapper names, with * wildcard and /regex/ support.
  • solid/require-async-server-function. On the client every server function call resolves a Promise, but during SSR the function is called in-process and returns synchronously — so a non-async server function observes two different return types, and TypeScript only sees one of them. Covers function-level directives and all exports of module-level directive files (including export { name } specifiers). Autofixes by inserting async.
  • solid/no-invalid-server-capture. An editor-time mirror of the compiler's closure-capture validation: server functions cannot capture variables from intermediate scopes (component state, enclosing function parameters), because the extracted function is hoisted to module level on the server and becomes a network proxy on the client. The compiler already rejects this at build time; the rule reports the same captures as you type. Module top-level bindings, imports, globals, own params/locals, named-function-expression self-references, and TS type-only references are all allowed.
  • solid/no-browser-globals-in-server-function. Flags unambiguous browser-only globals (window, document, localStorage, etc.) inside server functions, which only run on the server. The list is deliberately conservative — server runtimes provide fetch, crypto, URL, and even navigator, so those never warn — and shadowing bindings and typeof window guards are ignored. In module-level directive files, the whole module is checked.
Internal
  • customReactiveFunctions-style pattern matching (exact names, * wildcards, /regex/ strings) was extracted into a shared createNameMatcher utility, now used by both solid/reactivity and solid/valid-use-server.

Full Changelog: solidjs-community/eslint-plugin-solid@v0.16.1...v0.17.0

v0.16.1

Compare Source

A precision pass over solid/reactivity, driven by the longest-standing false-positive reports in the tracker. Every fix landed with a regression test reproducing the original issue, and the Solid 2.0 templates still lint clean.

Fixes
  • Context provider value gets a real explanation (#​209). Passing a reactive expression to a provider's value prop previously produced the generic "should be used within JSX" message — nonsense for something that is in JSX. It now reports a dedicated message explaining that providers read value once, untracked, when created (true in both Solid 1.x and 2.0), and to pass the signal, memo, or store itself. Detection also now covers the Solid 2.0 form, where the context object is used directly as the provider (<MyContext value={...}>), by resolving JSX names to createContext() calls.
  • createResource argument shapes (#​199, #​195). createResource(fetcher, options) no longer treats the fetcher as a tracked scope (so async fetchers with an options object stop reporting noAsyncTrackedScope), and in createResource(source, fetcher) the fetcher is now correctly treated as an untracked called function that may be async and read current values. The source remains a synchronous tracked scope.
  • Destructuring props inside a tracked scope (#​191). const { item } = props inside createMemo/createEffect re-runs on updates and no longer warns. Destructuring at component setup level still does.
  • window.setTimeout and friends (#​194). Timer and scheduling callbacks prefixed with window., globalThis., or self. now get the same called-function treatment as the bare globals.
  • mergeProps/merge function arguments are tracked scopes (#​179). Both wrap function sources in createMemo, so reactive reads inside them no longer warn.
  • Memos passed to functions are as safe as signals (#​182). Passing a createMemo accessor to a create*/use*/custom reactive function no longer warns, matching the existing allowance for signals.
  • Directly-returned create* calls (#​52). return createMemo(...) (or as an arrow body) no longer reports shouldAssign — the result is handed to the caller, like a custom primitive.
  • Functions passed to calls inside tracked scopes (#​197). An inline function passed to an unknown call inside an effect (doSomething(() => props.toggle)) no longer warns, matching the existing behavior for named functions: synchronous calls still run tracked, and later calls poll current values.
Features
  • Patterns in customReactiveFunctions (#​176). Entries now support * wildcards ("watch*") and regexes written as "/pattern/" strings, in addition to exact names.

v0.16.0

Compare Source

The complete Solid 2.0 lint surface: version-aware rules, new v2 / v2-strict configs, and a
full set of 2.0-specific rules, all vetted against the official Solid 2.0 templates (which lint
clean with zero errors and zero warnings under the v2 config).

Features
  • settings.solid.version. Rules can now read the targeted Solid major version from ESLint
    settings (settings: { solid: { version: 2 } }). Unset means the permissive dual-version
    behavior from 0.15. The new configs preset it; any custom config can opt in with one line.
  • New v2 config (eslint-plugin-solid/configs/v2, also solid.configs.v2): what the
    official Solid 2.0 templates ship. Sets the version setting, switches existing rules to strict
    2.0 semantics, and enables the new 2.0 rules — errors are reserved for near-certain bugs,
    heuristics stay warnings.
  • New v2-strict config (eslint-plugin-solid/configs/v2-strict): everything in v2 plus
    the plugin's strongest opinions (see below).
  • New rule solid/removed-api (error in v2): flags removed/renamed 1.x APIs with
    autofixes where mechanical (onMount→onSettled, batch→flush, mergeProps→merge,
    unwrap→snapshot, equalFn→isEqual, getListener→getObserver,
    classList={{...}}→class={{...}}, "solid-js/web"→"@solidjs/web",
    "solid-js/store"→"solid-js") and prescriptive migration messages otherwise
    (createResource, on, Suspense→Loading, Index→<For keyed={false}>, produce, etc.).
    Lists verified against the Solid 2.0 RC source.
  • New rule solid/no-single-arg-create-effect (error in v2): Solid 2.0 requires the split
    createEffect(compute, effect) form. The single-argument 1.x form produces no TS compile error
    on a bare statement call and only throws at runtime in dev mode; this rule is the build-time
    hard stop for the most commonly reproduced AI mistake.
  • New rule solid/no-accessor-as-prop (error in v2): <div title={count} /> silently
    renders a stringified function. Fires on any expression that statically resolves to a function
    in a value-typed DOM attribute, with a message that states the fix (count → count()).
    Event handlers, ref, children, namespaced attributes, components, and custom elements are
    exempt.
  • New rule solid/prefer-structured-class (warning in v2, error in v2-strict): nudges
    manually-built class strings (concatenation with conditionals, conditional template literals,
    .join(" ")) toward the structured array/object ClassValue forms that Solid 2.0 accepts
    natively. Static strings and plain interpolation are untouched.
  • New rule solid/no-module-scope-reactive-primitive (error in v2-strict only): reactive
    state at module scope is shared across SSR requests. createRoot-wrapped module state is the
    deliberate escape hatch and is not flagged.
  • New rule solid/prefer-onSettled-for-side-effects (warning in v2-strict only): flags
    side-effectful setup (timers, global listeners, observers) in component bodies, where it also
    runs during SSR; suggests onSettled. Never flags onCleanup itself.
  • New rule solid/no-restated-default-options (error in v2-strict only, autofixable):
    removes restated defaults like <For keyed={true}> and <Show keyed={false}>.
  • Version-2 behavior in existing rules (active when settings.solid.version is 2):
    • solid/no-unknown-namespaces inverts its premise: namespaces are no longer reserved in 2.0,
      so any colon-name is a legal literal attribute — but the formerly-special prefixes use:,
      attr:, bool:, on:, and oncapture: are flagged as near-certain 1.x migration bugs with
      per-prefix guidance. prop: remains the only special namespace.
    • solid/event-handlers graduates from style to correctness: only camelCase onClick is an
      event handler in 2.0; a lowercase onclick with a function value is a listener that will
      never fire (autofixed to camelCase for known DOM events). Lowercase names with static string
      values are legitimate literal attributes and are no longer flagged. onDoubleClick (which
      lowercases to a nonexistent DOM event) is autofixed to onDblClick.
    • solid/imports requires the 2.0 export locations: store exports from core "solid-js", web
      exports from "@solidjs/web". The legacy solid-js/store / solid-js/web subpaths are
      solid/removed-api's territory, avoiding double reports.
    • solid/jsx-no-undef auto-imports the 2.0 control-flow components (For, Repeat, Show,
      Switch, Match, Errored, Loading, Reveal); Index is no longer suggested.
    • solid/reactivity delegates its uncalled-signal-in-DOM-attribute case to
      solid/no-accessor-as-prop so a node never gets two reports.
    • solid/no-react-deps self-gates off (a dependency array in the second argument is already a
      type and runtime error in 2.0).
  • Template vetting. A fixture test runs the v2 config over sources copied from the official
    Solid 2.0 templates in CI, and test/lint-templates.mjs sweeps a local solidjs/templates
    checkout. All eleven solid-v2/* templates lint clean.

v0.15.0

Compare Source

The revival release: Solid 2.0 support and a modernized toolchain.

Breaking Changes

  • ESLint v9 and v10 only. The eslint peer dependency range is now ^9.0.0 || ^10.0.0. Support for ESLint v6–v8 has been dropped.
  • Flat config only. The legacy eslintrc-style plugin:solid/recommended and plugin:solid/typescript configs have been removed, matching ESLint v10's removal of the eslintrc system. Use eslint-plugin-solid/configs/recommended / eslint-plugin-solid/configs/typescript, or the configs on the root export (solid.configs.recommended / solid.configs.typescript). The configs["flat/recommended"] and configs["flat/typescript"] names from 0.14.x still work as aliases.
  • Node.js 22+ required. The engines.node field is now >=22.0.0 (Node 20 reached end-of-life in April 2026).

Features

  • Solid 2.0 API support in solid/reactivity. The rule now recognizes, alongside the 1.x APIs: createProjection, createOptimistic, createOptimisticStore, merge, omit, isPending, latest, resolve, deep, repeat, flush, action, onSettled, createTrackedEffect, createErrorBoundary, createLoadingBoundary, createRevealOrder, function-form createSignal(fn) / createStore(fn), split effects (createEffect(compute, effect)), async computations (e.g. createMemo(async () => ...)), and <For>'s keyed prop callback shapes. Imports from @solidjs/signals are recognized as Solid imports. Callsites whose meaning differs between 1.x and 2.0 are resolved permissively so that neither interpretation warns.
  • New readAfterAwait warning in solid/reactivity. In async computations (async createMemo, function-form derived primitives), reactive reads placed after the first await or yield are not tracked—in 1.x they behave like reads in an event handler, and in 2.0 they can observe unpredictable mid-transition state. The rule now reports these reads specifically and suggests reading the value before the computation suspends.
  • solid/imports understands Solid 2.0 export locations. createStore, reconcile, and store types imported from core solid-js (their 2.0 home) are no longer flagged.
  • Oxlint support. The plugin runs under Oxlint's jsPlugins without modification; see the README for setup.

Internal

  • Removed the ESLint v6–v8 test matrix; tests run against typescript-eslint, Babel, and espree parsers on ESLint 10.
  • Toolchain updated: pnpm 11, typescript-eslint 8.67, vitest 4, TypeScript 5.9; CI tests Node 22/24/26.
  • CI publishing switched from a stored npm token to npm Trusted Publishing (OIDC).
  • Fixed silently-broken docs generation (auto-generated CASES sections regenerate again).

Full Changelog: solidjs-community/eslint-plugin-solid@v0.14.5...v0.15.0

macieklamberski/feedscout (feedscout)

v1.11.0

Compare Source

Features
  • Pass the input response status to extractFn (73ec638)
  • Probe ancestor directory paths in guess method (9f22843)
  • Publish the platform subpath with every handler exported (9f36e1a)
  • Report functions that throw through onError (ba60d09)
Bug Fixes
  • Check the Discourse handler URL with parseUrl instead of URL.canParse (0502d1e)
  • Drop the canonical link marker from the YouTube channel ID lookup ([105a08d](https://redirect

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "every 2 months on the first day of the month"
  • 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants