Update bun minor+patch updates #29
Reference in New Issue
Block a user
Delete Branch "renovate/bun-minor-patch"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
^0.60.0→^0.65.0^0.93.6→^0.94.0^0.73.0→^0.74.0Release Notes
Effect-TS/language-service (@effect/language-service)
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:
Patch Changes
#561
c3b3bd3Thanks @mattiamanzati! - Add descriptions to CLI commands usingCommand.withDescriptionfor improved help output when using--helpflag.#565
2274aefThanks @mattiamanzati! - FixunnecessaryPipediagnostic and refactor not working with namespace imports fromeffect/Function(e.g.,Function.pipe()orFn.pipe())#560
75a480eThanks @mattiamanzati! - Improve diagnostic message forunsupportedServiceAccessorswhen used withEffect.TagWhen the
unsupportedServiceAccessorsdiagnostic is triggered on anEffect.Tagclass (which doesn't allow disabling accessors), the message now includes a helpful suggestion to useContext.Taginstead:#559
4c1f809Thanks @mattiamanzati! - Improve Layer Magic refactor ordering by considering both provided and required service countsThe Layer Magic refactor now uses a combined ordering heuristic that considers both:
This results in more optimal layer composition order, especially in complex dependency graphs where layers have varying numbers of dependencies.
#566
036c491Thanks @mattiamanzati! - Simplify diagnostic messages for global Error type usageThe diagnostic messages for
globalErrorInEffectCatchandglobalErrorInEffectFailurenow use the more generic term "tagged errors" instead of "tagged errors (Data.TaggedError)" to provide cleaner, more concise guidance.v0.63.2Compare Source
Patch Changes
#553
e64e3dfThanks @mattiamanzati! - fix: ensure correct path resolution in CLI setupprocess.cwd()explicitly inpath.resolve()for consistent behavioryield*forTsConfigNotFoundErrorv0.63.1Compare Source
Patch Changes
#551
9b3d807Thanks @mattiamanzati! - fix: resolve TypeScript from project's working directoryThe CLI now attempts to resolve TypeScript from the current working directory first before falling back to the package's bundled version. This ensures the CLI uses the same TypeScript version as the project being analyzed.
v0.63.0Compare Source
Minor Changes
#548
ef8c2deThanks @mattiamanzati! - AddglobalErrorInEffectFailurediagnosticThis diagnostic warns when
Effect.failis called with the globalErrortype. Using the globalErrortype in Effect failures is not recommended as they can get merged together, making it harder to distinguish between different error types.Instead, the diagnostic recommends using:
Data.TaggedError_tag)Example:
#545
c590b5aThanks @mattiamanzati! - Addeffect-language-service setupCLI commandThis new command provides an interactive wizard to guide users through the complete installation and configuration of the Effect Language Service. The setup command:
Example usage:
The wizard will walk you through each step and show you exactly what changes will be made before applying them.
#550
4912ee4Thanks @mattiamanzati! - Add support for@effect/sql'sModel.Classin completions and diagnosticseffectSqlModelSelfInClassescompletion: Auto-completes theSelftype parameter when extendingModel.Classfrom@effect/sqlclassSelfMismatchdiagnostic: Now detects when theSelftype parameter inModel.Class<Self>doesn't match the actual class nameExample:
Patch Changes
#547
9058a37Thanks @mattiamanzati! - refactor: simplifyunnecessaryFailYieldableErrordiagnostic implementationChanged the implementation to check if a type extends
Cause.YieldableErroron-demand rather than fetching all yieldable error types upfront.#549
039f4b2Thanks @mattiamanzati! - AddgetTypeAtLocationutility toTypeCheckerUtilsThis refactoring adds a new
getTypeAtLocationfunction toTypeCheckerUtilsthat safely retrieves types while filtering out JSX-specific nodes (JSX elements, opening/closing tags, and JSX attributes) that could cause issues when callingtypeChecker.getTypeAtLocation.The utility is now used across multiple diagnostics and features, reducing code duplication and ensuring consistent handling of edge cases:
anyUnknownInErrorContextcatchUnfailableEffectfloatingEffectglobalErrorInEffectFailureleakingRequirementsmissedPipeableOpportunitymissingEffectServiceDependencymissingReturnYieldStarmultipleEffectProvidenonObjectEffectServiceTypeoverriddenSchemaConstructorreturnEffectInGenscopeInLayerEffectstrictBooleanExpressionsstrictEffectProvideunnecessaryFailYieldableErrorv0.62.5Compare Source
Patch Changes
#543
0b13f3cThanks @mattiamanzati! - Fix unwanted autocompletions inside import declarationsPreviously, Effect., Option., and Either.__ completions were incorrectly suggested inside import statements. This has been fixed by detecting when the completion is requested inside an import declaration and preventing these completions from appearing.
Closes #541
v0.62.4Compare Source
Patch Changes
#539
4cc88d2Thanks @mattiamanzati! - Improve layerMagic refactor to prioritize layers with more provided servicesThe layerMagic refactor now uses a heuristic that prioritizes nodes with more provided services when generating layer composition code. This ensures that telemetry and tracing layers (which typically provide fewer services) are positioned as late as possible in the dependency graph, resulting in more intuitive and correct layer ordering.
Example: When composing layers for services that depend on HttpClient with telemetry, the refactor now correctly places the telemetry layer (which provides fewer services) later in the composition chain.
v0.62.3Compare Source
Patch Changes
e31c03bThanks @mattiamanzati! - Fix counter increment timing in structural type to schema refactor to ensure proper naming of conflicting schemas (e.g.,User_1instead ofUser_0for the first conflict)v0.62.2Compare Source
Patch Changes
#535
361fc1eThanks @mattiamanzati! - Fix duplicate schema names in "Refactor to Schema (Recursive Structural)" code generation.When the refactor encountered types with conflicting names, it was generating a unique suffix but not properly tracking the usage count, causing duplicate schema identifiers with different contents to be generated.
This fix ensures that when a name conflict is detected and a unique suffix is added (e.g.,
Tax,Tax_1,Tax_2), the usage counter is properly incremented to prevent duplicate identifiers in the generated code.Fixes #534
v0.62.1Compare Source
Patch Changes
#532
8f189aaThanks @mattiamanzati! - Fix handling of read-only arrays in "Refactor to Schema (Recursive Structural)" code generation.The refactor now correctly distinguishes between mutable arrays (
Array<T>) and read-only arrays (ReadonlyArray<T>orreadonly T[]):Array<T>is now converted toSchema.mutable(Schema.Array(...))to preserve mutabilityReadonlyArray<T>andreadonly T[]are converted toSchema.Array(...)(read-only by default)This fixes compatibility issues with external libraries (like Stripe, BetterAuth) that expect mutable arrays in their API parameters.
Fixes #531
v0.62.0Compare Source
Minor Changes
#528
7dc14cfThanks @mattiamanzati! - Add typeToSchema codegenThis adds a new
// @​effect-codegens typeToSchemacodegen that automatically generates Effect Schema classes from TypeScript types. Given a type alias with object members representing schemas to generate (e.g.,type ToGenerate = { UserSchema: User, TodoSchema: Todo }), the codegen will create the corresponding Schema class definitions.The generated schemas:
outdatedEffectCodegendiagnostic to provide automatic fix actionsExample usage:
Patch Changes
#530
5ecdc62Thanks @mattiamanzati! - FixRefactor to Schema (Recursive Structural)to supportexactOptionalPropertyTypesWhen
exactOptionalPropertyTypesis enabled in tsconfig, optional properties with types likestring | undefinedare not assignable to types defined asprop?: string. This fix generatesSchema.optionalWith(Schema.String, { exact: true })instead ofSchema.optional(Schema.Union(Schema.Undefined, Schema.String))to maintain type compatibility with external libraries that don't always includeundefinedin their optional property types.Example:
This ensures the generated schema maintains proper type compatibility with external libraries when using strict TypeScript configurations.
v0.61.0Compare Source
Minor Changes
#525
e2dbbadThanks @mattiamanzati! - Add Structural Type to Schema refactorAdds a new "Structural Type to Schema" refactor that converts TypeScript interfaces and type aliases to Effect Schema classes. This refactor analyzes the structure of types and generates appropriate Schema definitions, with intelligent detection and reuse of existing schemas.
Example:
The refactor supports:
Effect-TS/effect (@effect/platform)
v0.94.1Compare Source
Patch Changes
#5936
65e9e35Thanks @schickling! - Document subtle CORS middlewareallowedHeadersbehavior: when empty array (default), it reflects back the client'sAccess-Control-Request-Headers(permissive), and when non-empty array, it only allows specified headers (restrictive). Added comprehensive JSDoc with examples.#5940
ee69cd7Thanks @kitlangton! - HttpServerResponse: fixfromWebto preserve Content-Type header when response has a bodyPreviously, when converting a web
Responseto anHttpServerResponseviafromWeb, theContent-Typeheader was not passed toBody.stream(), causing it to default toapplication/octet-stream. This affected any code usingHttpApp.fromWebHandlerto wrap web handlers, as JSON responses would incorrectly have their Content-Type set toapplication/octet-streaminstead ofapplication/json.Updated dependencies [
488d6e8]:v0.94.0Compare Source
Minor Changes
ff7053fThanks @tim-smart! - support non-errors in HttpClient.retryTransientPatch Changes
77eeb86,287c32c]:Effect-TS/effect (@effect/platform-browser)
v0.74.0Compare Source
Patch Changes
77eeb86,ff7053f,287c32c]:Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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 has been generated by Renovate Bot.
Update dependency @effect/language-service to ^0.62.0to Update bun minor+patch updatesa274fb77f6to9d35e8eef39d35e8eef3to948de593f0