fix(deps): update effect #235
Open
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:
0.69.2->0.72.10.40.0->0.60.00.90.10->0.93.60.96.1->0.103.00.44.2->0.48.60.38.1->0.45.00.45.1->0.49.10.45.1->0.49.70.25.1->0.27.03.17.14->3.19.9Release Notes
Effect-TS/effect (@effect/cli)
v0.72.1Compare Source
Patch Changes
#5677
f8273c9Thanks @nemmtor! - fix log level cli arg infinite loopUpdated dependencies [
7d28a90]:v0.72.0Compare Source
Patch Changes
3c15d5f,3863fa8,2a03c76,24a1685]:v0.71.0Compare Source
Patch Changes
1c6ab74,70fe803,c296e32,a098ddf]:v0.70.0Compare Source
Patch Changes
d4d86a8]:Effect-TS/language-service (@effect/language-service)
v0.60.0Compare Source
Minor Changes
#523
46ec3e1Thanks @mattiamanzati! - Add configurable mermaid provider optionAdds a new
mermaidProviderconfiguration option that allows users to choose between different Mermaid diagram providers:"mermaid.com"- Uses mermaidchart.com"mermaid.live"- Uses mermaid.live (default)"http://localhost:8080"for local mermaid-live-editor)This enhances flexibility for users who prefer different Mermaid visualization services or need to use self-hosted instances.
v0.59.0Compare Source
Minor Changes
#518
660549dThanks @mattiamanzati! - Add newschemaStructWithTagdiagnostic that suggests usingSchema.TaggedStructinstead ofSchema.Structwhen a_tagfield withSchema.Literalis present. This makes the tag optional in the constructor, improving the developer experience.Example:
The diagnostic includes a quick fix that automatically converts the
Schema.Structcall toSchema.TaggedStruct, extracting the tag value and removing the_tagproperty from the fields.Patch Changes
#521
61f28baThanks @mattiamanzati! - Fix auto-completion for directly imported Effect APIs. Completions now work when using direct imports likeimport { Service } from "effect/Effect"instead of only working with fully qualified names likeEffect.Service.This fix applies to:
Effect.ServiceandEffect.Tagfromeffect/EffectSchema.Class,Schema.TaggedError,Schema.TaggedClass, andSchema.TaggedRequestfromeffect/SchemaData.TaggedErrorandData.TaggedClassfromeffect/DataContext.Tagfromeffect/ContextExample:
Fixes #394
v0.58.4Compare Source
Patch Changes
#515
b77b7e5Thanks @mattiamanzati! - Fix toggle type annotation and toggle return type annotation refactors to handle unnamed/unresolved typesThe refactors now use
ts.NodeBuilderFlags.IgnoreErrorsflag when generating type annotations, allowing them to work correctly with types that have errors or are unnamed (e.g.,Schema.Struct({ ... }).make). This prevents the refactors from failing when the type contains unresolved references or complex type expressions.#514
ddabde2Thanks @mattiamanzati! - Fix symbol resolution for aliased module exports. The TypeParser now correctly handles cases where symbols are exported from a module with an alias, improving the accuracy of type analysis for Effect modules.v0.58.3Compare Source
Patch Changes
e3dc38eThanks @mattiamanzati! - Fix type annotation context resolution in toggle refactors. When toggling type annotations or return type annotations, the refactors now correctly use the enclosing declaration node as context instead of the local node, which improves type resolution and prevents issues with type parameter scope.v0.58.2Compare Source
Patch Changes
#510
9064174Thanks @mattiamanzati! - ExtendanyUnknownInErrorContextdiagnostic to also check Layer typesThe
anyUnknownInErrorContextdiagnostic now checks both Effect and Layer types foranyorunknownin their error and requirements channels. This helps catch more cases where type information is being lost in your Effect applications.Example:
The diagnostic also now skips explicit Layer type annotations to avoid false positives on intentional type declarations.
v0.58.1Compare Source
Patch Changes
#508
1a4446cThanks @mattiamanzati! - FixanyUnknownInErrorContextdiagnostic to exclude JSX elements from reporting false positives. The diagnostic will no longer incorrectly flag JSX tag names, self-closing elements, opening/closing elements, and attribute names.Example:
v0.58.0Compare Source
Minor Changes
#505
31cff49Thanks @clayroach! - EnhancediagnosticsCLI command with new options for CI/CD integration and tooling:--format: Output format selection (json,pretty,text,github-actions)json: Machine-readable JSON output with structured diagnostics and summarypretty: Colored output with context (default, original behavior)text: Plain text output without colorsgithub-actions: GitHub Actions workflow commands for inline PR annotations--strict: Treat warnings as errors (affects exit code)--severity: Filter diagnostics by severity level (comma-separated:error,warning,message)Exit codes: Returns exit code 1 when errors are found (or warnings in strict mode)
Example usage:
Closes Effect-TS/effect #5180.
v0.57.1Compare Source
Patch Changes
#503
857e43eThanks @mattiamanzati! - Add codefix torunEffectInsideEffectdiagnostic that automatically transformsEffect.run*calls to useRuntime.run*when inside nested Effect contexts. The codefix will extract or reuse an existing Effect runtime and replace the direct Effect run call with the appropriate Runtime method.Example:
v0.57.0Compare Source
Minor Changes
#500
acc2d43Thanks @mattiamanzati! - Add newannotatecodegen that automatically adds type annotations to exported constants based on their initializer types. This codegen can be used by adding// @​effect-codegens annotatecomments above variable declarations.Example:
The codegen automatically detects the type from the initializer and adds the appropriate type annotation, making code more explicit and type-safe.
#497
b188b74Thanks @mattiamanzati! - Add new diagnosticunnecessaryFailYieldableErrorthat warns when usingyield* Effect.fail()with yieldable error types. The diagnostic suggests yielding the error directly instead of wrapping it withEffect.fail(), as yieldable errors (likeData.TaggedErrorandSchema.TaggedError) can be yielded directly in Effect generators.Example:
v0.56.0Compare Source
Minor Changes
#494
9b3edf0Thanks @mattiamanzati! - AddcodegenCLI command to automatically update Effect codegensThis release introduces a new CLI command
effect-language-service codegenthat allows you to automatically update Effect codegens in your TypeScript files from the command line. The command scans files containing@effect-codegensdirectives and applies the necessary code transformations.Usage:
effect-language-service codegen --file <path>- Update a specific fileeffect-language-service codegen --project <tsconfig.json>- Update all files in a projecteffect-language-service codegen --verbose- Show detailed output during processingExample:
This is particularly useful for CI/CD pipelines or batch processing scenarios where you want to ensure all codegens are up-to-date without manual editor intervention.
v0.55.5Compare Source
Patch Changes
f2d2748Thanks @mattiamanzati! - Fixed duplicate edges in layer outline graph that could occur when multiple type assignments matched between layer nodesv0.55.4Compare Source
Patch Changes
7d2e6dcThanks @mattiamanzati! - OptimizegetTypeAtLocationusage to reduce unnecessary calls on non-expression nodes. This improves performance by ensuring type checking is only performed on expression nodes and adds additional null safety checks for symbol resolution.v0.55.3Compare Source
Patch Changes
#488
53eedeaThanks @mattiamanzati! - Fixed@effect-diagnostics-next-linecomment directive to properly work with diagnostics on property assignments within object literals. Previously, the directive would not suppress diagnostics for properties in the middle of an object literal.#486
3830d48Thanks @mattiamanzati! - Fixed quick info feature to properly display Effect type parameters when hovering over code. This resolves issues where the quick info would fail to show Success, Failure, and Requirements types in certain contexts.#489
42ce900Thanks @mattiamanzati! - Allow to override Schema constructor as long parameters are just redirectedv0.55.2Compare Source
Patch Changes
7c18fa8Thanks @mattiamanzati! - Fix edge cases in missedPipeableOpportunity diagnostic where it incorrectly flagged valid code patterns. The diagnostic now properly:pipefunction calls from chain detectionSchedule.whileOutput)v0.55.1Compare Source
Patch Changes
#482
9695bdfThanks @mattiamanzati! - FixmissedPipeableOpportunitydiagnostic to correctly detect nested function call chainsThe diagnostic now properly identifies when nested function calls can be converted to pipeable style. Previously, the chain detection logic incorrectly tracked parent-child relationships, causing false positives. This fix ensures that only valid pipeable chains are reported, such as
toString(double(addOne(5)))which can be refactored toaddOne(5).pipe(double, toString).Example:
v0.55.0Compare Source
Minor Changes
#478
9a9d5f9Thanks @mattiamanzati! - AddrunEffectInsideEffectdiagnostic to warn when usingEffect.runSync,Effect.runPromise,Effect.runFork, orEffect.runCallbackinside an Effect context (such asEffect.gen,Effect.fn, orEffect.fnUntraced).Running effects inside effects is generally not recommended as it breaks the composability of the Effect system. Instead, developers should extract the Runtime and use
Runtime.runSync,Runtime.runPromise, etc., or restructure their code to avoid running effects inside effects.Example:
#480
f1a0eceThanks @mattiamanzati! - AddschemaUnionOfLiteralsdiagnostic to warn when usingSchema.Unionwith multipleSchema.Literalcalls that can be simplified to a singleSchema.Literalcall.This diagnostic helps improve code readability and maintainability by suggesting a more concise syntax for union of literals.
Example:
Patch Changes
#481
160e018Thanks @mattiamanzati! - Update Effect ecosystem dependencies to latest versions:@effect/cli: 0.71.0 → 0.72.0@effect/platform: 0.92.1 → 0.93.0@effect/platform-node: 0.98.3 → 0.99.0@effect/printer-ansi: 0.46.0 → 0.47.0@effect/rpc: 0.71.0 → 0.72.0effect: Updated to stable version 3.19.0Also updated development tooling dependencies:
vitest: 3.2.4 → 4.0.6@vitest/coverage-v8: 3.2.4 → 4.0.6v0.54.0Compare Source
Minor Changes
#476
9d5028cThanks @mattiamanzati! - AddunknownInEffectCatchdiagnostic to warn when catch callbacks inEffect.tryPromise,Effect.tryMap, orEffect.tryMapPromisereturnunknownoranytypes. This helps ensure proper error typing by encouraging developers to wrap unknown errors into Effect'sData.TaggedErroror narrow down the type to the specific error being raised.Example:
Patch Changes
9f2425eThanks @mattiamanzati! - Fix TSC patching mode to properly filter diagnostics by module name. ThereportSuggestionsAsWarningsInTscoption now only affects the TSC module and not the TypeScript module, preventing suggestions from being incorrectly reported in non-TSC contexts.v0.53.3Compare Source
Patch Changes
#473
b29eca5Thanks @mattiamanzati! - Fix memory leak in CLI diagnostics by properly disposing language services when they change between batches.The CLI diagnostics command now tracks the language service instance and disposes of it when a new instance is created, preventing memory accumulation during batch processing of large codebases.
#474
06b9ac1Thanks @mattiamanzati! - Fix TSC patching mode to properly enable diagnosticsName option and simplify suggestion handling.When using the language service in TSC patching mode, the
diagnosticsNameoption is now automatically enabled to ensure diagnostic rule names are included in the output. Additionally, the handling of suggestion-level diagnostics has been simplified - whenreportSuggestionsAsWarningsInTscis enabled, suggestions are now converted to Message category instead of Warning category with a prefix.This change ensures consistent diagnostic formatting across both IDE and CLI usage modes.
#471
be70748Thanks @mattiamanzati! - Improve CLI diagnostics output formatting by displaying rule names in a more readable format.The CLI now displays diagnostic rule names using the format
effect(ruleName):instead ofTS<code>:, making it easier to identify which Effect diagnostic rule triggered the error. Additionally, the CLI now disables thediagnosticsNameoption internally to prevent duplicate rule name display in the message text.Example output:
v0.53.2Compare Source
Patch Changes
#469
f27be56Thanks @mattiamanzati! - AddreportSuggestionsAsWarningsInTscconfiguration option to allow suggestions and messages to be reported as warnings in TypeScript compiler.When enabled, diagnostics with "suggestion" or "message" severity will be upgraded to "warning" severity with a "[suggestion]" prefix in the message text. This is useful for CI/CD pipelines where you want to enforce suggestion-level diagnostics as warnings in the TypeScript compiler output.
Example configuration:
{ "compilerOptions": { "plugins": [ { "name": "@​effect/language-service", "reportSuggestionsAsWarningsInTsc": true } ] } }v0.53.1Compare Source
Patch Changes
#467
c2f6e50Thanks @mattiamanzati! - Fix layer graph display improvements: properly render newlines in mermaid diagrams using<br/>tags, and improve readability by displaying variable declaration names instead of full expressions when available.Example: Instead of showing the entire
pipe(Database.Default, Layer.provideMerge(UserRepository.Default))expression in the graph node, it now displays the cleaner variable nameAppLivewhen the layer is assigned to a variable.v0.53.0Compare Source
Minor Changes
#466
e76e9b9Thanks @mattiamanzati! - Add support for following symbols in Layer Graph visualizationThe layer graph feature now supports following symbol references to provide deeper visualization of layer dependencies. This is controlled by the new
layerGraphFollowDepthconfiguration option (default: 0).Example:
Patch Changes
4cbd549Thanks @mattiamanzati! - Fix layer graph for expression nodes not returning layers directlyv0.52.1Compare Source
Patch Changes
4931bbdThanks @mattiamanzati! - Skip patching again by default, unless --force option is providedv0.52.0Compare Source
Minor Changes
#460
1ac81a0Thanks @mattiamanzati! - Add new diagnosticcatchUnfailableEffectto warn when using catch functions on effects that never failThis diagnostic detects when catch error handling functions are applied to effects that have a
nevererror type (meaning they cannot fail). It supports all Effect catch variants:Effect.catchAllEffect.catchEffect.catchIfEffect.catchSomeEffect.catchTagEffect.catchTagsExample:
The diagnostic works in both pipeable style (
Effect.succeed(x).pipe(Effect.catchAll(...))) and data-first style (pipe(Effect.succeed(x), Effect.catchAll(...))), analyzing the error type at each position in the pipe chain.#458
372a9a7Thanks @mattiamanzati! - Refactor TypeParser internals to use symbol-based navigation instead of type-based navigationThis change improves the reliability and performance of the TypeParser by switching from type-based navigation to symbol-based navigation when identifying Effect, Schema, and other Effect ecosystem APIs. The new implementation:
isNodeReferenceToEffectModuleApiandisNodeReferenceToEffectSchemaModuleApiThis is an internal refactoring that doesn't change the public API or functionality, but provides a more robust foundation for the language service features.
v0.51.1Compare Source
Patch Changes
#456
ddc3da8Thanks @mattiamanzati! - Bug fix for layer graph: properly display dependencies when they reference themselvesThe layer graph now correctly identifies and displays dependencies even when using type assignment compatibility (e.g., when a layer provides a base type and another layer requires a subtype).
v0.51.0Compare Source
Minor Changes
#452
fb0ae8bThanks @mattiamanzati! - AddstrictEffectProvidediagnostic to warn when using Effect.provide with Layer outside of application entry pointsThis new diagnostic helps developers identify potential scope lifetime issues by detecting when
Effect.provideis called with a Layer argument in locations that are not application entry points.Example:
Message:
Configuration:
"off"(opt-in)strictEffectProvideThis diagnostic is disabled by default and can be enabled via tsconfig.json:
{ "compilerOptions": { "plugins": [ { "name": "@​effect/language-service", "diagnosticSeverity": { "strictEffectProvide": "warning" } } ] } }Patch Changes
11743b5Thanks @mattiamanzati! - Bug fix formissedPipeableOpportunitydiagnosticv0.50.0Compare Source
Minor Changes
#450
3994aafThanks @mattiamanzati! - Add new diagnostic to detect nested function calls that can be converted to pipeable styleThe new
missedPipeableOpportunitydiagnostic identifies nested function calls that would be more readable when converted to Effect's pipeable style. For example:This diagnostic helps maintain consistent code style and improves readability by suggesting the more idiomatic pipeable approach when multiple functions are chained together.
v0.49.0Compare Source
Minor Changes
fe0e390Thanks @mattiamanzati! - Use the Graph module for outline line graph and layer magicPatch Changes
ff11b7dThanks @mattiamanzati! - Update effect package version to97ff1dc. This version improves handling of special characters in layer graph mermaid diagrams by properly escaping HTML entities (parentheses, braces, quotes) to ensure correct rendering.v0.48.0Compare Source
Minor Changes
#441
ed1db9eThanks @mattiamanzati! - Adddefault-hashedpattern for deterministic keysA new
default-hashedpattern option is now available for service and error key patterns. This pattern works like thedefaultpattern but hashes the resulting string, which is useful when you want deterministic keys but are concerned about potentially exposing service names in builds.Example configuration:
{ "keyPatterns": [ { "target": "service", "pattern": "default-hashed" }, { "target": "error", "pattern": "default-hashed" } ] }Patch Changes
#442
44f4304Thanks @mattiamanzati! - Tone down try/catch message to ignore try/finally blocks#439
b73c231Thanks @mattiamanzati! - Fix regression in type unification for union types and prevent infinite recursion in layerMagic refactortoggleTypeAnnotationrefactor to properly unify boolean types instead of expanding them totrue | falselayerMagicrefactor'sadjustedNodefunction when processing variable and property declarationsv0.47.3Compare Source
Patch Changes
e583192Thanks @mattiamanzati! - In toggle return type refactors, skip type parameters if they are the same as the function default in some cases.v0.47.2Compare Source
Patch Changes
f359cdbThanks @mattiamanzati! - Improve memory by properly evicting older cached membersv0.47.1Compare Source
Patch Changes
#431
acbbc55Thanks @mattiamanzati! - Fix nested project references relative paths in CLI diagnostics commandThe CLI diagnostics command now correctly resolves paths for nested project references by:
v0.47.0Compare Source
Minor Changes
#429
351d7fbThanks @mattiamanzati! - Add newdiagnosticsCLI command to check Effect-specific diagnostics for files or projectsThe new
effect-language-service diagnosticscommand provides a way to get Effect-specific diagnostics through the CLI without patching your TypeScript installation. It supports:--fileoption to get diagnostics for a specific file--projectoption with a tsconfig file to check an entire projectThe command outputs diagnostics in the same format as the TypeScript compiler, showing errors, warnings, and messages with their locations and descriptions.
v0.46.0Compare Source
Minor Changes
#424
4bbfdb0Thanks @mattiamanzati! - Add support to mark a service as "leakable" via JSDoc tag. Services marked with@effect-leakable-servicewill be excluded from the leaking requirements diagnostic, allowing requirements that are expected to be provided per method invocation (e.g. HttpServerRequest).Example:
#428
ebaa8e8Thanks @mattiamanzati! - Add diagnostic to warn when@effect-diagnostics-next-linecomments have no effect. This helps identify unused suppression comments that don't actually suppress any diagnostics, improving code cleanliness.The new
missingDiagnosticNextLineoption controls the severity of this diagnostic (default: "warning"). Set to "off" to disable.Example:
Patch Changes
#426
22717bdThanks @mattiamanzati! - Improve Layer Magic refactor with enhanced dependency sorting and cycle detectionThe Layer Magic refactor now includes:
v0.45.1Compare Source
Patch Changes
#423
70d8734Thanks @mattiamanzati! - Add code fix to rewrite Schema class constructor overrides as static 'new' methodsWhen detecting constructor overrides in Schema classes, the diagnostic now provides a new code fix option that automatically rewrites the constructor as a static 'new' method. This preserves the custom initialization logic while maintaining Schema's decoding behavior.
Example:
#421
8c455edThanks @mattiamanzati! - Update dependencies to their latest versions including Effect 3.18.4, TypeScript 5.9.3, and various ESLint and build tooling packagesv0.45.0Compare Source
Minor Changes
#419
7cd7216Thanks @mattiamanzati! - Add support for custom APIs in deterministicKeys diagnostic using the@effect-identifierJSDoc tag.You can now enforce deterministic keys in custom APIs that follow an
extends MyApi("identifier")pattern by:extendedKeyDetection: trueto plugin options to enable detection/** @​effect-identifier */JSDoc tagExample:
exportConfiguration
📅 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: Enabled.
♻ Rebasing: Whenever PR is behind base branch, 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.