chore(deps): update all non-major dependencies #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^2.3.2→^2.3.11^0.44.0→^0.71.0^0.15.7→^0.19.0Release Notes
biomejs/biome (@biomejs/biome)
v2.3.11Compare Source
Patch Changes
#8583
83be210Thanks @dyc3! - Added the new nursery ruleuseVueValidTemplateRoot.This rule validates only root-level
<template>elements in Vue single-file components. If the<template>has asrcattribute, it must be empty. Otherwise, it must contain content.Invalid examples:
Valid examples:
#8586
df8fe06Thanks @dyc3! - Added a new nursery ruleuseVueConsistentVBindStyle. Enforces consistentv-bindstyle (:propshorthand vsv-bind:proplonghand). Default prefers shorthand; configurable via rule options.#8587
9a8c98dThanks @dyc3! - Added the ruleuseVueVForKey, which enforces that any element usingv-foralso specifies akey.Invalid
Valid
#8586
df8fe06Thanks @dyc3! - Added a new nursery ruleuseVueConsistentVOnStyle. Enforces consistentv-onstyle (@eventshorthand vsv-on:eventlonghand). Default prefers shorthand; configurable via rule options.#8583
83be210Thanks @dyc3! - Added the new nursery ruleuseVueValidVOnce. Enforces that usages of thev-oncedirective in Vue.js SFC are valid.#8498
d80fa41Thanks @tt-a1i! - Fixed #8494. ExtendednoUndeclaredEnvVarsto support bracket notation (process.env["VAR"],import.meta.env["VAR"]), Bun runtime (Bun.env.VAR,Bun.env["VAR"]), and Deno runtime (Deno.env.get("VAR")).#8509
574a909Thanks @ematipico! - Added support for parsing and formatting the Svelte{#await}syntax, whenhtml.experimentalFullSupportEnabledis set totrue.#8316
d64e92dThanks @washbin! - Added the new nursery rulenoMultiAssign. This rule helps to prevent multiple chained assignments.For example, the following code triggers because there are two assignment expressions in the same statement.
#8592
a5f59cdThanks @Netail! - Added the nursery ruleuseUniqueInputFieldNames. Require fields within an input object to be unique.Invalid:
#8524
17a6156Thanks @JacquesLeupin! - Fixed #8488: Relative plugin paths are now resolved from the configuration file directory, including when configurations are merged (e.g.extends: "//").#8655
3260ec9Thanks @JacquesLeupin! - Fixed #8636: Biome's CSS formatter now breaks comma-separated declaration values at top-level commas when wrapping.#8537
cc3e851Thanks @dibashthapa! - Fixed #8491: Resolved false positive errors for safe boolean expressions. There are still pending fixes. Head to #8491 (comment) for more detailsThis new change will check for safe boolean expressions in variable declarations.
For example,
Valid:
Invalid:
#8511
16a9036Thanks @ematipico! - Improved the diagnostics of the rulesuseSortedClassesandnoUnnecessaryConditions. The diagnostics now state that these rules are a work in progress and link to the relevant GitHub issue.#8521
a704be9Thanks @ToBinio! - Added the nursery ruleuseVueConsistentDefinePropsDeclaration, which enforces consistentdefinePropsdeclaration style.Invalid
Valid
#8595
7c85bf0Thanks @dyc3! - Fixed #8584: The HTML formatter will preserve whitespace after some elements and embedded expressions, which more closely aligns with Prettier's behavior.#8598
5e85d43Thanks @Netail! - Added the nursery ruleuseUniqueFieldDefinitionNames. Require all fields of a type to be unique.Invalid:
#8495
b573d14Thanks @taga3s! - Fixed #8405:noMisusedPromisesnow emits warnings/errors when a function returns union types such asT | Promise<T>which is used in conditionals.#8632
0be7d12Thanks @Bertie690! - The documentation & rule sources forlint/complexity/noBannedTypeshave been updated to fix a few oversights.In addition to some general typo fixes:
The rule now recommends
Record<keyof any, never>instead ofRecord<string, never>(the latter of which incorrectly allows symbol-keyed properties).The rule mentions an alternate method to enforce object emptiness involving
unique symbol-based guards used bytype-festand many other packages:The rule's listed sources have been updated as well to reflect the original source rule (
ban-types) having been split into 3 separate rules circa April 2024.#8580
a3a1ad2Thanks @taga3s! - Added the nursery rulenoBeforeInteractiveScriptOutsideDocumentto the Next.js domain.This rule prevents usage of
next/script'sbeforeInteractivestrategy outside ofpages/_document.js.#8493
5fc24f4Thanks @ematipico! - Added support for parsing and formatting the Svelte{#each}syntax, whenhtml.experimentalFullSupportEnabledis set totrue.#8546
0196c0eThanks @Zaczero! - Hardened union static-member type flattening in edge cases (e.g. unions containingunknownor inferred expression types). This keeps inference conservative and avoids unstable type growth innode = node.parent-style loops.#8569
1022c76Thanks @ematipico! - Fixed an issue where the Biome HTML parser would emit a parse error when certain keywords are inside the text of HTML tags.#8606
f50723bThanks @dyc3! - Fixed #8563: fixed a bounds check on bogus regex literals that caused panics when doing type inference#7410
ab9af9aThanks @sgarcialaguna! - Added the new nursery rulenoJsxPropsBind. This rule disallows .bind(), arrow functions, or function expressions in JSX props.Invalid:
#8523
5f22f1cThanks @ematipico! - Improved the diagnostics of nursery rules. Added a message to diagnostics emitted by nursery rules, so that users are aware of nature of nursery rules.#8571
03666fdThanks @dyc3! - Improved the performance ofnoRedeclareby eliminating string allocations#8591
9dd9ca7Thanks @Netail! - Added the nursery ruleuseUniqueArgumentNames. Enforce unique arguments for GraphQL fields & directives.Invalid:
#8521
a704be9Thanks @ToBinio! - Update useVueDefineMacrosOrder to only run on <script setup> blocks.#8344
7b982baThanks @ematipico! - Reduced the system calls when running the CLI. The performances might be noticeable in big projects that have multiple libraries and enable project rules.#8588
958e24bThanks @Netail! - Added the nursery ruleuseUniqueVariableNames. Enforce unique variable names for GraphQL operations.Invalid:
#8529
8794883Thanks @mdevils! - Fixed #8499:useExhaustiveDependenciesproperly handles aliased destructured object keys when usingstableResultconfiguration.#8557
4df2f4dThanks @dyc3! - Fixed an issue with the HTML formatter where it wouldn't add a space before the/>in self closing elements. This brings the HTML formatter more in line with Prettier.#8509
574a909Thanks @ematipico! - Added support for parsing and formatting the Svelte{#snippet}syntax, whenhtml.experimentalFullSupportEnabledis set totrue.#8248
1231a5cThanks @emilyinure! - Added new nursery rulenoReturnAssign, which disallows assignments inside return statements.Invalid:
#8531
6b09620Thanks @taga3s! - Fixed #8472: The CSS parser can now accept multiple comma separated parameters in:active-view-transition-type.#8615
b9da66dThanks @taga3s! - Removenext/scriptcomponent name check fromnoBeforeInteractiveScriptOutsideDocumentsince it is a default export.#8536
efbfbe2Thanks @dyc3! - Fixed #8527: Improved type inference where analyzing code with repeated object property access and assignments (e.g.node = node.parent, a pattern common when traversing trees in a while loop) could hit an internal type limit. Biome now handles these cases without exceeding the type limit.#8583
83be210Thanks @dyc3! - Added the new nursery ruleuseVueValidVCloak. Enforces that usages of thev-cloakdirective in Vue.js SFC are valid.#8583
83be210Thanks @dyc3! - Added the new nursery ruleuseVueValidVPre. Enforces that usages of thev-predirective in Vue.js SFC are valid.#8644
a3a27a7Thanks @JacquesLeupin! - Added the nursery ruleuseVueVaporto enforce<script setup vapor>in Vue SFCs. For example<script setup>is invalid.#8508
b86842cThanks @tt-a1i! - Fixed #6783: now, when a path is provided via--stdin-file-path, Biome checks whether the file exists on disk. If the path doesn't exist (virtual path), ignore checks (files.includesand VCS ignore rules) are skipped.Effect-TS/language-service (@effect/language-service)
v0.71.0Compare Source
Minor Changes
#619
f171350Thanks @mattiamanzati! - AddeffectSucceedWithVoiddiagnostic to suggest usingEffect.voidinstead ofEffect.succeed(undefined)orEffect.succeed(void 0).The diagnostic detects calls to
Effect.succeedwhere the argument is exactlyundefinedorvoid 0(including parenthesized variants) and suggests replacing them with the more idiomaticEffect.void. A quick fix is provided to automatically apply the replacement.Before:
After:
Patch Changes
#621
74ef937Thanks @mattiamanzati! - Improve diagnostic messages forglobalErrorInEffectFailureandglobalErrorInEffectCatchto be more concise and actionable.Before:
After:
v0.70.0Compare Source
Minor Changes
#618
ed689f8Thanks @mattiamanzati! - ImproveglobalErrorInEffectFailurediagnostic to detect global Error type in any Effect failure channel.The diagnostic now works by finding
new Error()expressions and checking if they end up in an Effect's failure channel, rather than only checkingEffect.failcalls. This means it will now detect global Error usage in:Effect.fail(new Error(...))Effect.genfunctions that fail with global ErrorEffect.mapErrorconverting to global ErrorEffect.flatMapchains that include global ErrorThe diagnostic now reports at the
new Error()location for better precision.Patch Changes
#616
b32da44Thanks @mattiamanzati! - ImprovemissedPipeableOpportunitydiagnostic message to show the suggested subject for.pipe(...).Before:
After:
v0.69.2Compare Source
Patch Changes
#612
2b49181Thanks @mattiamanzati! - Improve effectFnIife diagnostic message to suggest Effect.withSpan with the trace name when availableWhen
Effect.fn("traceName")is used as an IIFE, the diagnostic now suggests usingEffect.genwithEffect.withSpan("traceName")piped at the end to maintain tracing spans. ForEffect.fnUntraced, it simply suggests usingEffect.genwithout the span suggestion.#615
ae4f054Thanks @mattiamanzati! - Improve effectFnOpportunity diagnostic with more specific messages and configurable fixeseffectFnconfiguration option to control which code fix variants are offered:"untraced","span","inferred-span","no-span"(defaults to["span"])Effect.withSpanvs inferred trace from function nameBefore:
After:
v0.69.1Compare Source
Patch Changes
990ccbcThanks @mattiamanzati! - Improve effectFnOpportunity diagnostic message to mention that quickfixes are available in the editor or via the CLI quickfixes command.v0.69.0Compare Source
Minor Changes
#608
bc7da1eThanks @mattiamanzati! - AddeffectFnIifediagnostic to warn whenEffect.fnorEffect.fnUntracedis used as an IIFE (Immediately Invoked Function Expression).Effect.fnis designed to create reusable functions that can take arguments and provide tracing. When used as an IIFE,Effect.genis more appropriate.Example:
A quick fix is provided to automatically convert
Effect.fnIIFEs toEffect.gen.v0.68.0Compare Source
Minor Changes
#603
d747210Thanks @mattiamanzati! - AddedinstanceOfSchemadiagnostic that suggests usingSchema.isinstead ofinstanceoffor Effect Schema types.Example:
The diagnostic is disabled by default and can be enabled with
instanceOfSchema:suggestionorinstanceOfSchema:warning.Patch Changes
d63d5dfThanks @mattiamanzati! - ImproveleakingRequirementsdiagnostic message for clarityv0.67.0Compare Source
Minor Changes
#599
4c9f5c7Thanks @mattiamanzati! - AddquickfixesCLI command that shows diagnostics with available quick fixes and their proposed code changes.Example usage:
The command displays each diagnostic along with the available code fixes and a diff preview of the proposed changes, making it easy to see what automatic fixes are available before applying them.
Patch Changes
#601
c0a6da3Thanks @mattiamanzati! - Reduce over-suggestion of effectFnOpportunity diagnostic for regular functions.The diagnostic now only suggests
Effect.fnfor regular functions (not usingEffect.gen) when:Functions using
Effect.genare still always suggested regardless of body size.v0.66.1Compare Source
Patch Changes
#597
3833a10Thanks @mattiamanzati! - ImprovedeffectFnOpportunitydiagnostic message to mention that Effect.fn accepts piped transformations as additional arguments when pipe transformations are detected.When a function has
.pipe()calls that would be absorbed by Effect.fn, the message now includes: "Effect.fn also accepts the piped transformations as additional arguments."v0.65.0Compare Source
Minor Changes
#581
4569328Thanks @mattiamanzati! - AddeffectFnOpportunitydiagnostic that suggests converting functions returningEffect.gentoEffect.fnfor better tracing and concise syntax.The diagnostic triggers on:
Effect.gen(...)Effect.gen(...)Effect.gen(...)Effect.gen(...).pipe(...)patternsIt provides two code fixes:
Effect.fn(traced) - includes the function name as the span nameEffect.fnUntraced- without tracingThe diagnostic skips:
When the original function has a return type annotation, the converted function will use
Effect.fn.Return<A, E, R>as the return type.Example:
#575
00aeed0Thanks @mattiamanzati! - AddeffectMapVoiddiagnostic that suggests usingEffect.asVoidinstead ofEffect.map(() => void 0),Effect.map(() => undefined), orEffect.map(() => {}).Also adds two new TypeParser utilities:
lazyExpression: matches zero-argument arrow functions or function expressions that return a single expressionemptyFunction: matches arrow functions or function expressions with an empty block bodyAnd adds
isVoidExpressionutility to TypeScriptUtils for detectingvoid 0orundefinedexpressions.Example:
#582
94d4a6bThanks @mattiamanzati! - AddedlayerinfoCLI command that provides detailed information about a specific exported layer.Features:
Layer.provide,Layer.provideMerge, andLayer.mergeExample usage:
Also added a tip to both
overviewandlayerinfocommands about usingLayer.mergeAll(...)to get suggested composition order.#583
b0aa78fThanks @mattiamanzati! - AddredundantSchemaTagIdentifierdiagnostic that suggests removing redundant identifier arguments when they equal the tag value inSchema.TaggedClass,Schema.TaggedError, orSchema.TaggedRequest.Before:
After applying the fix:
Also updates the completions to not include the redundant identifier when autocompleting
Schema.TaggedClass,Schema.TaggedError, andSchema.TaggedRequest.#573
6715f91Thanks @mattiamanzati! - RenamereportSuggestionsAsWarningsInTscoption toincludeSuggestionsInTscand change default totrue.This option controls whether diagnostics with "suggestion" severity are included in TSC output when using the
effect-language-service patchfeature. When enabled, suggestions are reported as messages in TSC output, which is useful for LLM-based development tools to see all suggestions.Breaking change: The option has been renamed and the default behavior has changed:
reportSuggestionsAsWarningsInTsc: false(suggestions not included by default)includeSuggestionsInTsc: true(suggestions included by default)To restore the previous behavior, set
"includeSuggestionsInTsc": falsein your tsconfig.json plugin configuration.#586
e225b5fThanks @mattiamanzati! - Add markdown documentation support to setup commandThe setup command now automatically manages Effect Language Service documentation in AGENTS.md and CLAUDE.md files:
Example section added to markdown files:
Patch Changes
#580
a45606bThanks @mattiamanzati! - AddEffect.fnandEffect.fnUntracedsupport to the piping flows parser.The piping flows parser now recognizes pipe transformations passed as additional arguments to
Effect.fn,Effect.fn("traced"), andEffect.fnUntraced. This enables diagnostics likecatchAllToMapError,catchUnfailableEffect, andmultipleEffectProvideto work with these patterns.Example:
#587
7316859Thanks @mattiamanzati! - Mark deprecated TypeScript Signature methods and migrate to property accessorsAdded
@deprecatedannotations to TypeScript Signature interface methods (getParameters,getTypeParameters,getDeclaration,getReturnType,getTypeParameterAtPosition) with guidance to use their modern property alternatives. Updated codebase usage ofgetParameters()to use.parametersproperty instead.#584
ed12861Thanks @mattiamanzati! - Fix TypeError in setup command when updating existing diagnosticSeverity configurationThe setup command was throwing
TypeError: Cannot read properties of undefined (reading 'text')when trying to update thediagnosticSeverityoption of an existing@effect/language-serviceplugin configuration in tsconfig.json.This occurred because TypeScript's ChangeTracker formatter needed to compute indentation by traversing the AST tree, which failed when replacing a PropertyAssignment node inside a nested list context.
The fix replaces just the initializer value (ObjectLiteralExpression) instead of the entire PropertyAssignment, avoiding the problematic list indentation calculation.
#585
7ebe5dbThanks @mattiamanzati! - EnhancedlayerinfoCLI command with output type selection for layer composition.New Features:
--outputsoption to select which output types to include in the suggested composition (e.g.,--outputs 1,2,3)ROutare selectedexport const <name> = ...prefix for easy copy-pasteExample output:
This allows users to see all available outputs from a layer composition and choose which ones to include in the suggested composition order.
#577
0ed50c3Thanks @mattiamanzati! - RefactorcatchAllToMapErrordiagnostic to use the piping flows parser for detecting Effect.catchAll calls.This change also:
outTypeoptional inParsedPipingFlowSubjectto handle cases where type information is unavailable#578
cab6ce8Thanks @mattiamanzati! - refactor: use piping flows parser in catchUnfailableEffect diagnostic#579
2a82522Thanks @mattiamanzati! - refactor: use piping flows parser in multipleEffectProvide diagnostic#570
0db6e28Thanks @mattiamanzati! - Refactor CLI overview command to extract symbol collection logic into reusable utilitycollectSourceFileExportedSymbolsintosrc/cli/utils/ExportedSymbols.tsfor reuse across CLI commands--max-symbol-depthoption to overview command (default: 3) to control how deep to traverse nested symbol properties#574
9d0695eThanks @mattiamanzati! - Remove deprecated ts-patch documentation from README. The Effect LSP CLI Patch is now the only recommended approach for getting diagnostics at compile time.#576
5017d75Thanks @mattiamanzati! - Add piping flows parser for caching piping flow analysis per source file.This internal improvement introduces a
pipingFlowsfunction inTypeParserthat analyzes and caches all piping flows (bothpipe()calls and.pipe()method chains) in a source file. The parser:Effect.map(effect, fn).pipe(...))The
missedPipeableOpportunitydiagnostic has been refactored to use this new parser, improving performance when analyzing files with multiple piping patterns.v0.64.1Compare Source
Patch Changes
#568
477271dThanks @mattiamanzati! - Fix auto-import with namespace import packages generating malformed code when the identifier is at the beginning of the file.When using
namespaceImportPackagesconfiguration and auto-completing an export likeisAnyKeywordfromeffect/SchemaAST, the code was incorrectly generated as:Instead of the expected:
The fix ensures the import statement is added before the namespace prefix when both changes target position 0.
v0.64.0Compare Source
Minor Changes
#567
dcb3fe5Thanks @mattiamanzati! - Added new diagnosticcatchAllToMapErrorthat suggests usingEffect.mapErrorinstead ofEffect.catchAll+Effect.failwhen the callback only wraps the error.Before:
After:
The diagnostic includes a quick fix that automatically transforms the code.
#555
0424000Thanks @mattiamanzati! - AddglobalErrorInEffectCatchdiagnostic to detect global Error types in catch callbacksThis new diagnostic warns when catch callbacks in
Effect.tryPromise,Effect.try,Effect.tryMap, orEffect.tryMapPromisereturn the globalErrortype instead of typed errors.Using the global
Errortype in Effect failures is not recommended as they can get merged together, making it harder to distinguish between different error cases. Instead, it's better to use tagged errors (likeData.TaggedError) or custom errors with discriminator properties to enable proper type checking and error handling.Example of code that triggers the diagnostic:
Recommended approach:
This diagnostic also improves the clarity message for the
leakingRequirementsdiagnostic by adding additional guidance on how services should be collected in the layer creation body.#558
cc5feb1Thanks @mattiamanzati! - AddlayerMergeAllWithDependenciesdiagnostic to detect interdependencies inLayer.mergeAllcallsThis new diagnostic warns when
Layer.mergeAllis called with layers that have interdependencies, where one layer provides a service that another layer in the same call requires.Layer.mergeAllcreates layers in parallel, so dependencies between layers will not be satisfied. This can lead to runtime errors when trying to use the merged layer.Example of code that triggers the diagnostic:
Recommended approach:
The diagnostic correctly handles pass-through layers (layers that both provide and require the same type) and only reports on layers that actually provide dependencies needed by other layers in the same
mergeAllcall.#557
83ce411Thanks @mattiamanzati! - AddmissingLayerContextdiagnostic to detect missing service requirements in Layer definitionsThis new diagnostic provides better error readability when you're missing service requirements in your Layer type definitions. It works similarly to the existing
missingEffectContextdiagnostic but specifically checks theRIn(requirements input) parameter of Layer types.Example of code that triggers the diagnostic:
The diagnostic helps catch type mismatches early by clearly indicating which service requirements are missing when passing layers between functions or composing layers together.
#562
57d5af2Thanks @mattiamanzati! - AddoverviewCLI command that provides an overview of Effect-related exports in a project.The command analyzes TypeScript files and reports all exported yieldable errors, services (Context.Tag, Effect.Tag, Effect.Service), and layers with their types, file locations, and JSDoc descriptions. A progress spinner shows real-time file processing status.
Usage:
Example output:
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), 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.
This PR was generated by Mend Renovate. View the repository job log.