Commit Graph

139 Commits

Author SHA1 Message Date
Julien Valverdé
3b5a9abefa Query work
All checks were successful
Lint / lint (push) Successful in 41s
2025-11-21 06:02:43 +01:00
Julien Valverdé
70d5ef950b Query work
All checks were successful
Lint / lint (push) Successful in 13s
2025-11-21 00:58:36 +01:00
Julien Valverdé
140b2deda8 Working query
All checks were successful
Lint / lint (push) Successful in 40s
2025-11-20 01:58:27 +01:00
Julien Valverdé
83128bb467 Query work
Some checks failed
Lint / lint (push) Failing after 11s
2025-11-18 06:20:37 +01:00
Julien Valverdé
3ff646db0f Query work
All checks were successful
Lint / lint (push) Successful in 39s
2025-11-18 04:50:11 +01:00
Julien Valverdé
c4bfcb07c1 Refactor Result
Some checks failed
Lint / lint (push) Failing after 10s
2025-11-17 21:12:08 +01:00
Julien Valverdé
cd937a86c7 Refactor forkEffect
Some checks failed
Lint / lint (push) Failing after 10s
2025-11-17 19:10:57 +01:00
Julien Valverdé
c79e6e8bad Refactor Form
Some checks failed
Lint / lint (push) Failing after 9s
2025-11-17 04:13:12 +01:00
Julien Valverdé
70dcdf8160 Refactor Result
Some checks failed
Lint / lint (push) Failing after 35s
2025-11-17 04:09:26 +01:00
Julien Valverdé
9feb94ea9e Add forkEffect
Some checks failed
Lint / lint (push) Failing after 11s
2025-11-16 06:54:34 +01:00
Julien Valverdé
a890d1c855 Query work
Some checks failed
Lint / lint (push) Failing after 11s
2025-11-16 06:19:18 +01:00
Julien Valverdé
e3bb50e2c9 Query work
Some checks failed
Lint / lint (push) Failing after 11s
2025-11-16 05:05:06 +01:00
cd17be8c6d Update dependency @effect/language-service to ^0.56.0 (#23)
All checks were successful
Lint / lint (push) Successful in 15s
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [@effect/language-service](https://github.com/Effect-TS/language-service) | [`^0.55.3` -> `^0.56.0`](https://renovatebot.com/diffs/npm/@effect%2flanguage-service/0.55.5/0.56.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@effect%2flanguage-service/0.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@effect%2flanguage-service/0.55.5/0.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>Effect-TS/language-service (@&#8203;effect/language-service)</summary>

### [`v0.56.0`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0560)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.55.5...v0.56.0)

##### Minor Changes

- [#&#8203;494](https://github.com/Effect-TS/language-service/pull/494) [`9b3edf0`](9b3edf0ddc) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add `codegen` CLI command to automatically update Effect codegens

  This release introduces a new CLI command `effect-language-service codegen` that allows you to automatically update Effect codegens in your TypeScript files from the command line. The command scans files containing `@effect-codegens` directives and applies the necessary code transformations.

  **Usage:**

  - `effect-language-service codegen --file <path>` - Update a specific file
  - `effect-language-service codegen --project <tsconfig.json>` - Update all files in a project
  - `effect-language-service codegen --verbose` - Show detailed output during processing

  **Example:**

  ```bash
  # Update a single file
  effect-language-service codegen --file src/MyService.ts

  # Update entire project
  effect-language-service codegen --project tsconfig.json --verbose
  ```

  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.

</details>

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im5leHQiLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: #23
Co-authored-by: Renovate Bot <renovate-bot@valverde.cloud>
Co-committed-by: Renovate Bot <renovate-bot@valverde.cloud>
2025-11-16 01:29:54 +01:00
Julien Valverdé
25d5defdca Add Query module
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-15 05:04:34 +01:00
Julien Valverdé
f78b9f318a Add PubSub module
All checks were successful
Lint / lint (push) Successful in 40s
2025-11-15 01:19:14 +01:00
Julien Valverdé
3b90384f8f Refactor
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-14 02:56:05 +01:00
Julien Valverdé
c1705c1587 Refactor
All checks were successful
Lint / lint (push) Successful in 42s
2025-11-14 02:41:17 +01:00
Julien Valverdé
87c9c637be Refactor Component
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-13 05:07:13 +01:00
Julien Valverdé
981e989461 Fix example
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-13 03:40:11 +01:00
Julien Valverdé
d1ff6b31e2 Form.field
All checks were successful
Lint / lint (push) Successful in 13s
2025-11-13 03:30:39 +01:00
Julien Valverdé
9f5f0edfd9 Refactor Form
All checks were successful
Lint / lint (push) Successful in 42s
2025-11-13 02:47:48 +01:00
Julien Valverdé
4d5c188599 Refactor Form
All checks were successful
Lint / lint (push) Successful in 13s
2025-11-12 07:39:47 +01:00
Julien Valverdé
ec91f8e5ee Fix
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-12 03:19:42 +01:00
Julien Valverdé
d38e220df8 Refactor Form
All checks were successful
Lint / lint (push) Successful in 11s
2025-11-12 03:17:04 +01:00
Julien Valverdé
da0847b3f9 Refactor form
All checks were successful
Lint / lint (push) Successful in 40s
2025-11-12 01:20:13 +01:00
Julien Valverdé
ec5e5bdc87 Form refactoring
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-11 04:28:40 +01:00
Julien Valverdé
fe5cfbe99c Cleanup
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-11 03:28:05 +01:00
Julien Valverdé
c789de3ad8 Refactoring
All checks were successful
Lint / lint (push) Successful in 40s
2025-11-11 02:22:37 +01:00
Julien Valverdé
a510dbc77b Form refactoring
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-10 20:22:33 +01:00
Julien Valverdé
5f85938449 Tests
All checks were successful
Lint / lint (push) Successful in 41s
2025-11-10 02:16:42 +01:00
Julien Valverdé
9fde8dc57c Form example work
All checks were successful
Lint / lint (push) Successful in 40s
2025-11-09 02:43:27 +01:00
Julien Valverdé
d682643407 Test ErrorObserver
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-08 15:42:43 +01:00
Julien Valverdé
0718ba48bd Fix ErrorObserver
All checks were successful
Lint / lint (push) Successful in 41s
2025-11-08 01:35:58 +01:00
Julien Valverdé
9680a7007d Update lockfile
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-07 01:20:26 +01:00
a8b2c1e098 Update bun minor+patch updates (#22)
Some checks failed
Lint / lint (push) Failing after 6s
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [@effect/language-service](https://github.com/Effect-TS/language-service) | [`^0.54.0` -> `^0.55.0`](https://renovatebot.com/diffs/npm/@effect%2flanguage-service/0.54.0/0.55.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@effect%2flanguage-service/0.55.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@effect%2flanguage-service/0.54.0/0.55.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@effect/platform](https://effect.website) ([source](https://github.com/Effect-TS/effect/tree/HEAD/packages/platform)) | [`^0.92.1` -> `^0.93.0`](https://renovatebot.com/diffs/npm/@effect%2fplatform/0.92.1/0.93.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@effect%2fplatform/0.93.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@effect%2fplatform/0.92.1/0.93.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@effect/platform-browser](https://effect.website) ([source](https://github.com/Effect-TS/effect/tree/HEAD/packages/platform-browser)) | [`^0.72.0` -> `^0.73.0`](https://renovatebot.com/diffs/npm/@effect%2fplatform-browser/0.72.0/0.73.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@effect%2fplatform-browser/0.73.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@effect%2fplatform-browser/0.72.0/0.73.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>Effect-TS/language-service (@&#8203;effect/language-service)</summary>

### [`v0.55.2`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0552)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.55.1...v0.55.2)

##### Patch Changes

- [#&#8203;484](https://github.com/Effect-TS/language-service/pull/484) [`7c18fa8`](7c18fa8b08) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Fix edge cases in missedPipeableOpportunity diagnostic where it incorrectly flagged valid code patterns. The diagnostic now properly:
  - Excludes `pipe` function calls from chain detection
  - Ignores chains where the function returns a callable type (avoiding false positives for higher-order functions like `Schedule.whileOutput`)

### [`v0.55.1`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0551)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.55.0...v0.55.1)

##### Patch Changes

- [#&#8203;482](https://github.com/Effect-TS/language-service/pull/482) [`9695bdf`](9695bdfec4) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Fix `missedPipeableOpportunity` diagnostic to correctly detect nested function call chains

  The 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 to `addOne(5).pipe(double, toString)`.

  Example:

  ```typescript
  // Before: incorrectly flagged or missed
  identity(Schema.decodeUnknown(MyStruct)({ x: 42, y: 42 }));

  // After: correctly handles complex nested calls
  toString(double(addOne(5))); // ✓ Now correctly detected as pipeable
  ```

### [`v0.55.0`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0550)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.54.0...v0.55.0)

##### Minor Changes

- [#&#8203;478](https://github.com/Effect-TS/language-service/pull/478) [`9a9d5f9`](9a9d5f9486) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add `runEffectInsideEffect` diagnostic to warn when using `Effect.runSync`, `Effect.runPromise`, `Effect.runFork`, or `Effect.runCallback` inside an Effect context (such as `Effect.gen`, `Effect.fn`, or `Effect.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:

  ```typescript
  //  Will trigger diagnostic
  export const program = Effect.gen(function* () {
    const data = yield* Effect.succeed(42);
    const result = Effect.runSync(Effect.sync(() => data * 2)); // Not recommended
    return result;
  });

  //  Proper approach - extract runtime
  export const program = Effect.gen(function* () {
    const data = yield* Effect.succeed(42);
    const runtime = yield* Effect.runtime();
    const result = Runtime.runSync(runtime)(Effect.sync(() => data * 2));
    return result;
  });

  //  Better approach - compose effects
  export const program = Effect.gen(function* () {
    const data = yield* Effect.succeed(42);
    const result = yield* Effect.sync(() => data * 2);
    return result;
  });
  ```

- [#&#8203;480](https://github.com/Effect-TS/language-service/pull/480) [`f1a0ece`](f1a0ece931) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add `schemaUnionOfLiterals` diagnostic to warn when using `Schema.Union` with multiple `Schema.Literal` calls that can be simplified to a single `Schema.Literal` call.

  This diagnostic helps improve code readability and maintainability by suggesting a more concise syntax for union of literals.

  Example:

  ```typescript
  //  Will trigger diagnostic
  export const Status = Schema.Union(Schema.Literal("A"), Schema.Literal("B"));

  //  Simplified approach
  export const Status = Schema.Literal("A", "B");
  ```

##### Patch Changes

- [#&#8203;481](https://github.com/Effect-TS/language-service/pull/481) [`160e018`](160e018c6f) Thanks [@&#8203;mattiamanzati](https://github.com/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.0
  - `effect`: Updated to stable version 3.19.0

  Also updated development tooling dependencies:

  - `vitest`: 3.2.4 → 4.0.6
  - `@vitest/coverage-v8`: 3.2.4 → 4.0.6
  - TypeScript ESLint packages: 8.46.1 → 8.46.3
  - Various other minor dependency updates

</details>

<details>
<summary>Effect-TS/effect (@&#8203;effect/platform)</summary>

### [`v0.93.0`](https://github.com/Effect-TS/effect/blob/HEAD/packages/platform/CHANGELOG.md#0930)

[Compare Source](https://github.com/Effect-TS/effect/compare/@effect/platform@0.92.1...@effect/platform@0.93.0)

##### Patch Changes

- [#&#8203;5606](https://github.com/Effect-TS/effect/pull/5606) [`24a1685`](24a1685c70) Thanks [@&#8203;tim-smart](https://github.com/tim-smart)! - expose Layer output in HttpLayerRouter.serve

- Updated dependencies \[[`3c15d5f`](3c15d5f99f), [`3863fa8`](3863fa89f6), [`2a03c76`](2a03c76c27), [`24a1685`](24a1685c70)]:
  - effect\@&#8203;3.19.0

</details>

<details>
<summary>Effect-TS/effect (@&#8203;effect/platform-browser)</summary>

### [`v0.73.0`](https://github.com/Effect-TS/effect/blob/HEAD/packages/platform-browser/CHANGELOG.md#0730)

[Compare Source](https://github.com/Effect-TS/effect/compare/@effect/platform-browser@0.72.0...@effect/platform-browser@0.73.0)

##### Patch Changes

- Updated dependencies \[[`3c15d5f`](3c15d5f99f), [`3863fa8`](3863fa89f6), [`2a03c76`](2a03c76c27), [`24a1685`](24a1685c70)]:
  - effect\@&#8203;3.19.0
  - [@&#8203;effect/platform](https://github.com/effect/platform)@&#8203;0.93.0

</details>

---

### 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](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjkuMyIsInVwZGF0ZWRJblZlciI6IjQxLjE3MS40IiwidGFyZ2V0QnJhbmNoIjoibmV4dCIsImxhYmVscyI6W119-->

Reviewed-on: #22
Co-authored-by: Renovate Bot <renovate-bot@valverde.cloud>
Co-committed-by: Renovate Bot <renovate-bot@valverde.cloud>
2025-11-07 01:19:28 +01:00
Julien Valverdé
6d52c4ee31 Add ErrorObserver handle
All checks were successful
Lint / lint (push) Successful in 41s
2025-11-07 01:13:50 +01:00
Julien Valverdé
c80b25b0e0 Fix ReactRuntime
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-06 15:21:56 +01:00
Julien Valverdé
7e14f27df4 Finish ErrorObserver
All checks were successful
Lint / lint (push) Successful in 40s
2025-11-06 01:17:06 +01:00
Julien Valverdé
5bc1e65a61 ErrorObserver work
Some checks failed
Lint / lint (push) Failing after 10s
2025-11-05 15:15:59 +01:00
Julien Valverdé
53bc4407b3 Add ErrorObserver
Some checks failed
Lint / lint (push) Failing after 36s
2025-11-05 01:12:56 +01:00
Julien Valverdé
66289da64c Fix
All checks were successful
Lint / lint (push) Successful in 13s
2025-11-04 12:18:55 +01:00
Julien Valverdé
679a624fab Fix
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-04 02:06:30 +01:00
Julien Valverdé
ba76f38bc4 Fix
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-04 01:57:43 +01:00
13a7c44aae Update dependency @effect/language-service to ^0.54.0 (#21)
All checks were successful
Lint / lint (push) Successful in 11s
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [@effect/language-service](https://github.com/Effect-TS/language-service) | [`^0.49.0` -> `^0.54.0`](https://renovatebot.com/diffs/npm/@effect%2flanguage-service/0.49.0/0.54.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@effect%2flanguage-service/0.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@effect%2flanguage-service/0.49.0/0.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>Effect-TS/language-service (@&#8203;effect/language-service)</summary>

### [`v0.54.0`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0540)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.53.3...v0.54.0)

##### Minor Changes

- [#&#8203;476](https://github.com/Effect-TS/language-service/pull/476) [`9d5028c`](9d5028c92c) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add `unknownInEffectCatch` diagnostic to warn when catch callbacks in `Effect.tryPromise`, `Effect.tryMap`, or `Effect.tryMapPromise` return `unknown` or `any` types. This helps ensure proper error typing by encouraging developers to wrap unknown errors into Effect's `Data.TaggedError` or narrow down the type to the specific error being raised.

  Example:

  ```typescript
  //  Will trigger diagnostic
  const program = Effect.tryPromise({
    try: () => fetch("http://something"),
    catch: (e) => e, // returns unknown
  });

  //  Proper typed error
  class MyError extends Data.TaggedError("MyError")<{ cause: unknown }> {}

  const program = Effect.tryPromise({
    try: () => fetch("http://something"),
    catch: (e) => new MyError({ cause: e }),
  });
  ```

##### Patch Changes

- [#&#8203;475](https://github.com/Effect-TS/language-service/pull/475) [`9f2425e`](9f2425e65e) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Fix TSC patching mode to properly filter diagnostics by module name. The `reportSuggestionsAsWarningsInTsc` option now only affects the TSC module and not the TypeScript module, preventing suggestions from being incorrectly reported in non-TSC contexts.

### [`v0.53.3`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0533)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.53.2...v0.53.3)

##### Patch Changes

- [#&#8203;473](https://github.com/Effect-TS/language-service/pull/473) [`b29eca5`](b29eca54ae) Thanks [@&#8203;mattiamanzati](https://github.com/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.

- [#&#8203;474](https://github.com/Effect-TS/language-service/pull/474) [`06b9ac1`](06b9ac1439) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Fix TSC patching mode to properly enable diagnosticsName option and simplify suggestion handling.

  When using the language service in TSC patching mode, the `diagnosticsName` option is now automatically enabled to ensure diagnostic rule names are included in the output. Additionally, the handling of suggestion-level diagnostics has been simplified - when `reportSuggestionsAsWarningsInTsc` is 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.

- [#&#8203;471](https://github.com/Effect-TS/language-service/pull/471) [`be70748`](be70748806) Thanks [@&#8203;mattiamanzati](https://github.com/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 of `TS<code>:`, making it easier to identify which Effect diagnostic rule triggered the error. Additionally, the CLI now disables the `diagnosticsName` option internally to prevent duplicate rule name display in the message text.

  Example output:

  ```
  Before: TS90001: Floating Effect detected...
  After:  effect(floatingEffect): Floating Effect detected...
  ```

### [`v0.53.2`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0532)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.53.1...v0.53.2)

##### Patch Changes

- [#&#8203;469](https://github.com/Effect-TS/language-service/pull/469) [`f27be56`](f27be56a61) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add `reportSuggestionsAsWarningsInTsc` configuration 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:

  ```json
  {
    "compilerOptions": {
      "plugins": [
        {
          "name": "@&#8203;effect/language-service",
          "reportSuggestionsAsWarningsInTsc": true
        }
      ]
    }
  }
  ```

### [`v0.53.1`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0531)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.53.0...v0.53.1)

##### Patch Changes

- [#&#8203;467](https://github.com/Effect-TS/language-service/pull/467) [`c2f6e50`](c2f6e5036b) Thanks [@&#8203;mattiamanzati](https://github.com/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 name `AppLive` when the layer is assigned to a variable.

### [`v0.53.0`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0530)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.52.1...v0.53.0)

##### Minor Changes

- [#&#8203;466](https://github.com/Effect-TS/language-service/pull/466) [`e76e9b9`](e76e9b9045) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add support for following symbols in Layer Graph visualization

  The layer graph feature now supports following symbol references to provide deeper visualization of layer dependencies. This is controlled by the new `layerGraphFollowDepth` configuration option (default: 0).

  Example:

  ```typescript
  // With layerGraphFollowDepth: 1
  export const myLayer = otherLayer.pipe(Layer.provide(DbConnection.Default));
  // Now visualizes the full dependency tree by following the 'otherLayer' reference
  ```

##### Patch Changes

- [#&#8203;464](https://github.com/Effect-TS/language-service/pull/464) [`4cbd549`](4cbd5499a5) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Fix layer graph for expression nodes not returning layers directly

### [`v0.52.1`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0521)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.52.0...v0.52.1)

##### Patch Changes

- [#&#8203;462](https://github.com/Effect-TS/language-service/pull/462) [`4931bbd`](4931bbd5d4) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Skip patching again by default, unless --force option is provided

### [`v0.52.0`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0520)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.51.1...v0.52.0)

##### Minor Changes

- [#&#8203;460](https://github.com/Effect-TS/language-service/pull/460) [`1ac81a0`](1ac81a0edb) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add new diagnostic `catchUnfailableEffect` to warn when using catch functions on effects that never fail

  This diagnostic detects when catch error handling functions are applied to effects that have a `never` error type (meaning they cannot fail). It supports all Effect catch variants:

  - `Effect.catchAll`
  - `Effect.catch`
  - `Effect.catchIf`
  - `Effect.catchSome`
  - `Effect.catchTag`
  - `Effect.catchTags`

  Example:

  ```typescript
  // Will trigger diagnostic
  const example = Effect.succeed(42).pipe(
    Effect.catchAll(() => Effect.void) // <- Warns here
  );

  // Will not trigger diagnostic
  const example2 = Effect.fail("error").pipe(
    Effect.catchAll(() => Effect.succeed(42))
  );
  ```

  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.

- [#&#8203;458](https://github.com/Effect-TS/language-service/pull/458) [`372a9a7`](372a9a767b) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Refactor TypeParser internals to use symbol-based navigation instead of type-based navigation

  This 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:

  - Uses TypeScript's symbol resolution APIs to accurately identify imports and references
  - Supports package name resolution to verify that identifiers actually reference the correct packages
  - Implements proper alias resolution for imported symbols
  - Adds caching for source file package information lookups
  - Provides new helper methods like `isNodeReferenceToEffectModuleApi` and `isNodeReferenceToEffectSchemaModuleApi`

  This 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.1`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0511)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.51.0...v0.51.1)

##### Patch Changes

- [#&#8203;456](https://github.com/Effect-TS/language-service/pull/456) [`ddc3da8`](ddc3da8771) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Bug fix for layer graph: properly display dependencies when they reference themselves

  The 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.0`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0510)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.50.0...v0.51.0)

##### Minor Changes

- [#&#8203;452](https://github.com/Effect-TS/language-service/pull/452) [`fb0ae8b`](fb0ae8bf7b) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add `strictEffectProvide` diagnostic to warn when using Effect.provide with Layer outside of application entry points

  This new diagnostic helps developers identify potential scope lifetime issues by detecting when `Effect.provide` is called with a Layer argument in locations that are not application entry points.

  **Example:**

  ```typescript
  // Will trigger diagnostic
  export const program = Effect.void.pipe(Effect.provide(MyService.Default));
  ```

  **Message:**

  > Effect.provide with a Layer should only be used at application entry points. If this is an entry point, you can safely disable this diagnostic. Otherwise, using Effect.provide may break scope lifetimes. Compose all layers at your entry point and provide them at once.

  **Configuration:**

  - **Default severity**: `"off"` (opt-in)
  - **Diagnostic name**: `strictEffectProvide`

  This diagnostic is disabled by default and can be enabled via tsconfig.json:

  ```json
  {
    "compilerOptions": {
      "plugins": [
        {
          "name": "@&#8203;effect/language-service",
          "diagnosticSeverity": {
            "strictEffectProvide": "warning"
          }
        }
      ]
    }
  }
  ```

##### Patch Changes

- [#&#8203;455](https://github.com/Effect-TS/language-service/pull/455) [`11743b5`](11743b5144) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Bug fix for `missedPipeableOpportunity` diagnostic

### [`v0.50.0`](https://github.com/Effect-TS/language-service/blob/HEAD/CHANGELOG.md#0500)

[Compare Source](https://github.com/Effect-TS/language-service/compare/v0.49.0...v0.50.0)

##### Minor Changes

- [#&#8203;450](https://github.com/Effect-TS/language-service/pull/450) [`3994aaf`](3994aafb7d) Thanks [@&#8203;mattiamanzati](https://github.com/mattiamanzati)! - Add new diagnostic to detect nested function calls that can be converted to pipeable style

  The new `missedPipeableOpportunity` diagnostic identifies nested function calls that would be more readable when converted to Effect's pipeable style. For example:

  ```ts
  // Detected pattern:
  toString(double(addOne(5)));

  // Can be converted to:
  addOne(5).pipe(double, toString);
  ```

  This diagnostic helps maintain consistent code style and improves readability by suggesting the more idiomatic pipeable approach when multiple functions are chained together.

</details>

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE2OS4xIiwidGFyZ2V0QnJhbmNoIjoibmV4dCIsImxhYmVscyI6W119-->

Reviewed-on: #21
Co-authored-by: Renovate Bot <renovate-bot@valverde.cloud>
Co-committed-by: Renovate Bot <renovate-bot@valverde.cloud>
2025-11-04 01:33:29 +01:00
Julien Valverdé
c7a68d8653 Add useRunSync
All checks were successful
Lint / lint (push) Successful in 13s
2025-11-04 00:46:07 +01:00
Julien Valverdé
87e7b74ed6 Fix
Some checks failed
Lint / lint (push) Failing after 38s
2025-11-03 01:21:58 +01:00
Julien Valverdé
4b82b8e627 Fix
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-03 00:00:16 +01:00
Julien Valverdé
4f69f667b0 Fix
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-02 21:00:12 +01:00
Julien Valverdé
0b8418e114 Fix
All checks were successful
Lint / lint (push) Successful in 12s
2025-11-02 13:30:02 +01:00
Julien Valverdé
65447a6fec Fix
All checks were successful
Lint / lint (push) Successful in 13s
2025-11-02 13:17:06 +01:00