@effect/tsgo 0.48.1 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -38,12 +38,12 @@ When running in dedicated diagnostics mode, the Effect diagnostics can be emitte
38
38
  <!-- supported-components:start -->
39
39
  ## Supported Package Versions
40
40
 
41
- The following target package versions are supported by `@effect/tsgo@0.48.1`:
41
+ The following target package versions are supported by `@effect/tsgo@0.50.0`:
42
42
 
43
43
  | Component | Supported versions |
44
44
  |---|---|
45
- | TypeScript | `7.0.2`, `7.1.0-dev.20260929.1` |
46
- | Oxlint | `1.82.0`, `1.83.0`, `1.84.0`, `1.85.0`, `1.86.0` |
45
+ | TypeScript | `7.0.2`, `7.1.0-dev.20261005.1` |
46
+ | Oxlint | `1.82.0`, `1.83.0`, `1.85.0`, `1.86.0`, `1.87.0` |
47
47
  | oxlint-tsgolint | `7.0.2001`, `7.0.2003` |
48
48
  <!-- supported-components:end -->
49
49
 
@@ -179,6 +179,8 @@ Some diagnostics are off by default or have a default severity of suggestion, bu
179
179
  <tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/unnecessary-pipe.md"><code>unnecessaryPipe</code></a></td><td>Removes pipe calls with no arguments</td></tr>
180
180
  <tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/unnecessary-pipe-chain.md"><code>unnecessaryPipeChain</code></a></td><td>Simplifies chained pipe calls into a single pipe call</td></tr>
181
181
  <tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/unnecessary-typeof-type.md"><code>unnecessaryTypeofType</code></a></td><td>Suggests replacing typeof Schema.Type style annotations with the matching named type when available</td></tr>
182
+ <tr><td colspan="2"><strong>Maintainers</strong> <em>Guard the public API surface and release hygiene of a package.</em></td></tr>
183
+ <tr><td><a href="https://github.com/Effect-TS/tsgo/blob/main/docs/rules/api-stability-leak.md"><code>apiStabilityLeak</code></a></td><td>Reports exported APIs whose public surface exposes a less stable type</td></tr>
182
184
  </tbody>
183
185
  </table>
184
186
  <!-- diagnostics-table:end -->
@@ -366,11 +368,14 @@ while `effect/http/HttpClient#get` permits only its exported `get` API.
366
368
  Matching is case-sensitive and respects path segments: `effect/http` does not
367
369
  permit `effect/http-api`. Per-file `overrides` replace the base list.
368
370
 
369
- Names describe the declaration carrying the stability tag, rather than the
370
- import used by the consumer. They combine the nearest package name with the
371
- package-relative declaration path, removing a leading `src/`, `dist/`,
372
- `dist/dts/`, `dist/esm/`, or `dist/cjs/`, the file extension, and a trailing
373
- `/index`. Other layouts retain their package-relative path. Both diagnostics
374
- display this name when package metadata is available. APIs without package
375
- metadata continue to warn. Each list affects only its corresponding diagnostic; allowing an unstable API
376
- does not suppress experimental API warnings, and vice versa.
371
+ `apiStabilityLeak` ignores exports marked `@internal`. The tag is the compiler's
372
+ `stripInternal` declaration-emit marker, and it is honoured wherever it is
373
+ written: on an exported declaration, on a named, star or namespace forwarding
374
+ declaration, or on a namespace member. An untagged re-export of an internal
375
+ target is ignored as well, because the forwarded target is not public API. A
376
+ declaration that is not tagged keeps the export checked, so a public overload is
377
+ still reported when only its implementation is marked `@internal`. Tagging a
378
+ type does not hide it from public signatures: a public export that exposes an
379
+ `@internal` type is still reported when that type is less stable. The skip is
380
+ export-level only: an ordinary `@internal` property, overload or dependency type
381
+ does not exempt the export that exposes it.
@@ -51619,7 +51619,7 @@ const runWith = (command, config) => {
51619
51619
  //#endregion
51620
51620
  //#region package.json
51621
51621
  var name = "@effect/tsgo";
51622
- var version = "0.48.1";
51622
+ var version = "0.50.0";
51623
51623
 
51624
51624
  //#endregion
51625
51625
  //#region src/metadata.json
@@ -51643,6 +51643,11 @@ var groups = [
51643
51643
  "id": "style",
51644
51644
  "name": "Style",
51645
51645
  "description": "Cleanup, consistency, and idiomatic Effect code."
51646
+ },
51647
+ {
51648
+ "id": "maintainers",
51649
+ "name": "Maintainers",
51650
+ "description": "Guard the public API surface and release hygiene of a package."
51646
51651
  }
51647
51652
  ];
51648
51653
  var presets$1 = [
@@ -51963,6 +51968,11 @@ var presets$1 = [
51963
51968
  "unnecessaryPipeChain": "warning",
51964
51969
  "unnecessaryTypeofType": "warning"
51965
51970
  }
51971
+ },
51972
+ {
51973
+ "name": "maintainers",
51974
+ "description": "Enable all maintainer diagnostics at warning level.",
51975
+ "diagnosticSeverity": { "apiStabilityLeak": "warning" }
51966
51976
  }
51967
51977
  ];
51968
51978
  var rules = [
@@ -54027,6 +54037,23 @@ var rules = [
54027
54037
  "text": "This `typeof ... .Type` query can be replaced with `UsersRepo.User`. effect(unnecessaryTypeofType)"
54028
54038
  }]
54029
54039
  }
54040
+ },
54041
+ {
54042
+ "name": "apiStabilityLeak",
54043
+ "group": "maintainers",
54044
+ "description": "Reports exported APIs whose public surface exposes a less stable type",
54045
+ "defaultSeverity": "off",
54046
+ "fixable": false,
54047
+ "supportedEffect": ["v4"],
54048
+ "codes": [377137],
54049
+ "preview": {
54050
+ "sourceText": "\n/** @stability experimental */\nexport interface PreviewExperimental {\n value: string\n}\n\nexport interface PreviewStable {\n leaked: PreviewExperimental\n}\n",
54051
+ "diagnostics": [{
54052
+ "start": 107,
54053
+ "end": 120,
54054
+ "text": "`effect-v4-tests/preview#PreviewStable` exposes `PreviewExperimental`, an experimental API. effect(apiStabilityLeak)"
54055
+ }]
54056
+ }
54030
54057
  }
54031
54058
  ];
54032
54059
  var metadata_default = {
@@ -54040,9 +54067,9 @@ var metadata_default = {
54040
54067
  var tags = {
54041
54068
  "typescript": {
54042
54069
  "latest": "7.0.2",
54043
- "next": "7.1.0-dev.20260929.1"
54070
+ "next": "7.1.0-dev.20261005.1"
54044
54071
  },
54045
- "oxlint": { "latest": "1.86.0" },
54072
+ "oxlint": { "latest": "1.87.0" },
54046
54073
  "oxlint-tsgolint": { "latest": "7.0.2003" }
54047
54074
  };
54048
54075
  var components = {
@@ -54051,8 +54078,8 @@ var components = {
54051
54078
  "gitHead": "2bd066d87f5bafd315be9f40889d0a60b9e58e0b",
54052
54079
  "provider": "typescript-go"
54053
54080
  },
54054
- "7.1.0-dev.20260929.1": {
54055
- "gitHead": "0681ef7fa3a2378ccf49645b6d5b7463bdca74bb",
54081
+ "7.1.0-dev.20261005.1": {
54082
+ "gitHead": "50d70a3f5f453a79a4323b263165da51f656a4e3",
54056
54083
  "provider": "typescript"
54057
54084
  }
54058
54085
  },
@@ -54069,9 +54096,9 @@ var components = {
54069
54096
  "oxlint": {
54070
54097
  "1.82.0": { "gitHead": "b4da00b621ec2f6f67ed218f5366c45ed325331b" },
54071
54098
  "1.83.0": { "gitHead": "7bf68f70c20f5329251f19be95076f6eab4fe396" },
54072
- "1.84.0": { "gitHead": "f02a64a517a69a4eaa4ef83b722a3f10cf633f10" },
54073
54099
  "1.85.0": { "gitHead": "288d8cc77984b0a3851c58c423ffe9e6edc79f2e" },
54074
- "1.86.0": { "gitHead": "2ae2939bb2fd98796393658b21556b2a2467e047" }
54100
+ "1.86.0": { "gitHead": "2ae2939bb2fd98796393658b21556b2a2467e047" },
54101
+ "1.87.0": { "gitHead": "2bd08ebe8f36fcf1954a675ffdeb4c6d0129f609" }
54075
54102
  }
54076
54103
  };
54077
54104
 
@@ -5,6 +5,7 @@ import type { OxlintConfig } from "oxlint"
5
5
  export declare const antipattern: OxlintConfig
6
6
  export declare const correctness: OxlintConfig
7
7
  export declare const effectNative: OxlintConfig
8
+ export declare const maintainers: OxlintConfig
8
9
  export declare const recommended: OxlintConfig
9
10
  export declare const strict: OxlintConfig
10
11
  export declare const style: OxlintConfig
@@ -13,6 +14,7 @@ export declare const presets: Readonly<{
13
14
  antipattern: OxlintConfig
14
15
  correctness: OxlintConfig
15
16
  effectNative: OxlintConfig
17
+ maintainers: OxlintConfig
16
18
  recommended: OxlintConfig
17
19
  strict: OxlintConfig
18
20
  style: OxlintConfig
@@ -98,6 +98,18 @@ export const effectNative = {
98
98
  }
99
99
  }
100
100
 
101
+ export const maintainers = {
102
+ "options": {
103
+ "typeAware": true
104
+ },
105
+ "plugins": [
106
+ "effecttsgo"
107
+ ],
108
+ "rules": {
109
+ "effecttsgo/api-stability-leak": "warn"
110
+ }
111
+ }
112
+
101
113
  export const recommended = {
102
114
  "options": {
103
115
  "typeAware": true
@@ -352,6 +364,7 @@ export const presets = {
352
364
  antipattern,
353
365
  correctness,
354
366
  effectNative,
367
+ maintainers,
355
368
  recommended,
356
369
  strict,
357
370
  style,
@@ -0,0 +1,11 @@
1
+ {
2
+ "options": {
3
+ "typeAware": true
4
+ },
5
+ "plugins": [
6
+ "effecttsgo"
7
+ ],
8
+ "rules": {
9
+ "effecttsgo/api-stability-leak": "warn"
10
+ }
11
+ }
@@ -2245,6 +2245,9 @@
2245
2245
  "effecttsgo/any-unknown-in-error-context": {
2246
2246
  "$ref": "#/definitions/RuleNoConfig"
2247
2247
  },
2248
+ "effecttsgo/api-stability-leak": {
2249
+ "$ref": "#/definitions/RuleNoConfig"
2250
+ },
2248
2251
  "effecttsgo/async-function": {
2249
2252
  "$ref": "#/definitions/RuleNoConfig"
2250
2253
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/tsgo",
3
- "version": "0.48.1",
3
+ "version": "0.50.0",
4
4
  "type": "module",
5
5
  "description": "Effect Language Service for TypeScript-Go — Effect-specific diagnostics and hover features.",
6
6
  "license": "MIT",
@@ -41,13 +41,13 @@
41
41
  "schema.json"
42
42
  ],
43
43
  "optionalDependencies": {
44
- "@effect/tsgo-win32-x64": "0.48.1",
45
- "@effect/tsgo-win32-arm64": "0.48.1",
46
- "@effect/tsgo-linux-x64": "0.48.1",
47
- "@effect/tsgo-linux-arm64": "0.48.1",
48
- "@effect/tsgo-linux-arm": "0.48.1",
49
- "@effect/tsgo-darwin-x64": "0.48.1",
50
- "@effect/tsgo-darwin-arm64": "0.48.1"
44
+ "@effect/tsgo-win32-x64": "0.50.0",
45
+ "@effect/tsgo-win32-arm64": "0.50.0",
46
+ "@effect/tsgo-linux-x64": "0.50.0",
47
+ "@effect/tsgo-linux-arm64": "0.50.0",
48
+ "@effect/tsgo-linux-arm": "0.50.0",
49
+ "@effect/tsgo-darwin-x64": "0.50.0",
50
+ "@effect/tsgo-darwin-arm64": "0.50.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@effect/platform-node": "^4.0.0-rc.118",
package/schema.json CHANGED
@@ -2323,6 +2323,11 @@
2323
2323
  "default": "off",
2324
2324
  "description": "Detects 'any' or 'unknown' types in Effect error or requirements channels"
2325
2325
  },
2326
+ "apiStabilityLeak": {
2327
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2328
+ "default": "off",
2329
+ "description": "Reports exported APIs whose public surface exposes a less stable type"
2330
+ },
2326
2331
  "asyncFunction": {
2327
2332
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2328
2333
  "default": "off",