@effect/tsgo 0.47.2 → 0.48.1

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,7 +38,7 @@ 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.47.2`:
41
+ The following target package versions are supported by `@effect/tsgo@0.48.1`:
42
42
 
43
43
  | Component | Supported versions |
44
44
  |---|---|
@@ -237,6 +237,8 @@ Effect-tsgo is a **superset** of the official [TypeScript-Go](https://github.com
237
237
 
238
238
  Each release of `effect-tsgo` is built against the versioned components recorded in `_packages/tsgo/upstream.json`. The Nix flake consumes the TypeScript `next` tag directly. When upstream `tsgo` releases new features or fixes, `effect-tsgo` will adopt them in a subsequent release after validating compatibility with the Effect diagnostics layer.
239
239
 
240
+ The npm compiler binaries load their TypeScript standard libraries from `lib.*.d.ts` files beside the executable. These files are included beside every versioned artifact and the latest `lib/tsc` alias. If you relocate the executable returned by `effect-tsgo get-exe-path`, copy its library files into the same destination directory.
241
+
240
242
  ### When to Upgrade
241
243
 
242
244
  - Upgrade `effect-tsgo` when a new release includes upstream `tsgo` fixes you need or new Effect diagnostics you want.
@@ -312,6 +314,10 @@ Each release of `effect-tsgo` is built against the versioned components recorded
312
314
  "extendedKeyDetection": false,
313
315
  // Minimum number of contiguous pipeable transformations to trigger missedPipeableOpportunity. (default: 2)
314
316
  "pipeableMinArgCount": 2,
317
+ // Unstable APIs allowed by package/module subtree or package/module#export name. (default: [])
318
+ "allowedUnstableApis": [],
319
+ // Experimental APIs allowed by package/module subtree or package/module#export name. (default: [])
320
+ "allowedExperimentalApis": [],
315
321
  // Package names allowed to have multiple versions without triggering duplicatePackage. (default: [])
316
322
  "allowedDuplicatedPackages": [],
317
323
  // Controls which effectFnOpportunity quickfix variants are offered. (default: ["span"])
@@ -339,3 +345,32 @@ Each release of `effect-tsgo` is built against the versioned components recorded
339
345
  }
340
346
  ```
341
347
  <!-- example-config:end -->
348
+
349
+ The `allowedUnstableApis` and `allowedExperimentalApis` options selectively permit
350
+ APIs marked `@stability unstable` and `@stability experimental`, respectively:
351
+
352
+ ```json
353
+ {
354
+ "allowedUnstableApis": [
355
+ "effect/http",
356
+ "effect/rpc/RpcClient#make"
357
+ ],
358
+ "allowedExperimentalApis": ["my-package/Preview#make"]
359
+ }
360
+ ```
361
+
362
+ A module entry permits that module and its descendants; an entry ending in
363
+ `#exportName` permits only that module's exported API, including renamed imports
364
+ and aliases. For example, `effect/http/HttpClient` permits the entire module,
365
+ while `effect/http/HttpClient#get` permits only its exported `get` API.
366
+ Matching is case-sensitive and respects path segments: `effect/http` does not
367
+ permit `effect/http-api`. Per-file `overrides` replace the base list.
368
+
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.
@@ -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.47.2";
51622
+ var version = "0.48.1";
51623
51623
 
51624
51624
  //#endregion
51625
51625
  //#region src/metadata.json
@@ -52055,7 +52055,7 @@ var rules = [
52055
52055
  "diagnostics": [{
52056
52056
  "start": 67,
52057
52057
  "end": 77,
52058
- "text": "`previewApi` is an experimental API. effect(experimentalApiUsage)"
52058
+ "text": "`effect-v4-tests/preview#previewApi` is an experimental API. effect(experimentalApiUsage)"
52059
52059
  }]
52060
52060
  }
52061
52061
  },
@@ -52369,7 +52369,7 @@ var rules = [
52369
52369
  "diagnostics": [{
52370
52370
  "start": 63,
52371
52371
  "end": 73,
52372
- "text": "`previewApi` is an unstable API. Breaking changes may happen between versions. effect(unstableApiUsage)"
52372
+ "text": "`effect-v4-tests/preview#previewApi` is an unstable API. Breaking changes may happen between versions. effect(unstableApiUsage)"
52373
52373
  }]
52374
52374
  }
52375
52375
  },
@@ -10,6 +10,7 @@
10
10
  "effecttsgo/class-self-mismatch": "warn",
11
11
  "effecttsgo/duplicate-package": "warn",
12
12
  "effecttsgo/effect-fn-implicit-any": "warn",
13
+ "effecttsgo/experimental-api-usage": "warn",
13
14
  "effecttsgo/floating-effect": "warn",
14
15
  "effecttsgo/floating-effect-in-vitest": "warn",
15
16
  "effecttsgo/generic-effect-services": "warn",
@@ -26,6 +27,7 @@
26
27
  "effecttsgo/promise-in-effect-success": "warn",
27
28
  "effecttsgo/schema-literal-non-finite": "warn",
28
29
  "effecttsgo/schema-opaque-instance-member": "warn",
29
- "effecttsgo/unsafe-effect-type-assertion": "warn"
30
+ "effecttsgo/unsafe-effect-type-assertion": "warn",
31
+ "effecttsgo/unstable-api-usage": "warn"
30
32
  }
31
33
  }
@@ -43,6 +43,7 @@ export const correctness = {
43
43
  "effecttsgo/class-self-mismatch": "warn",
44
44
  "effecttsgo/duplicate-package": "warn",
45
45
  "effecttsgo/effect-fn-implicit-any": "warn",
46
+ "effecttsgo/experimental-api-usage": "warn",
46
47
  "effecttsgo/floating-effect": "warn",
47
48
  "effecttsgo/floating-effect-in-vitest": "warn",
48
49
  "effecttsgo/generic-effect-services": "warn",
@@ -59,7 +60,8 @@ export const correctness = {
59
60
  "effecttsgo/promise-in-effect-success": "warn",
60
61
  "effecttsgo/schema-literal-non-finite": "warn",
61
62
  "effecttsgo/schema-opaque-instance-member": "warn",
62
- "effecttsgo/unsafe-effect-type-assertion": "warn"
63
+ "effecttsgo/unsafe-effect-type-assertion": "warn",
64
+ "effecttsgo/unstable-api-usage": "warn"
63
65
  }
64
66
  }
65
67
 
@@ -129,6 +131,7 @@ export const recommended = {
129
131
  "effecttsgo/effect-map-flatten": "warn",
130
132
  "effecttsgo/effect-map-void": "warn",
131
133
  "effecttsgo/effect-succeed-with-void": "warn",
134
+ "effecttsgo/experimental-api-usage": "warn",
132
135
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
133
136
  "effecttsgo/flat-map-ignored-param-to-and-then": "warn",
134
137
  "effecttsgo/flat-map-to-map": "warn",
@@ -183,7 +186,8 @@ export const recommended = {
183
186
  "effecttsgo/unnecessary-fail-yieldable-error": "warn",
184
187
  "effecttsgo/unnecessary-pipe": "warn",
185
188
  "effecttsgo/unnecessary-pipe-chain": "warn",
186
- "effecttsgo/unnecessary-typeof-type": "warn"
189
+ "effecttsgo/unnecessary-typeof-type": "warn",
190
+ "effecttsgo/unstable-api-usage": "warn"
187
191
  }
188
192
  }
189
193
 
@@ -220,6 +224,7 @@ export const strict = {
220
224
  "effecttsgo/effect-map-flatten": "error",
221
225
  "effecttsgo/effect-map-void": "error",
222
226
  "effecttsgo/effect-succeed-with-void": "error",
227
+ "effecttsgo/experimental-api-usage": "error",
223
228
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "error",
224
229
  "effecttsgo/flat-map-ignored-param-to-and-then": "error",
225
230
  "effecttsgo/flat-map-to-map": "error",
@@ -274,7 +279,8 @@ export const strict = {
274
279
  "effecttsgo/unnecessary-fail-yieldable-error": "error",
275
280
  "effecttsgo/unnecessary-pipe": "error",
276
281
  "effecttsgo/unnecessary-pipe-chain": "error",
277
- "effecttsgo/unnecessary-typeof-type": "error"
282
+ "effecttsgo/unnecessary-typeof-type": "error",
283
+ "effecttsgo/unstable-api-usage": "error"
278
284
  }
279
285
  }
280
286
 
@@ -31,6 +31,7 @@
31
31
  "effecttsgo/effect-map-flatten": "warn",
32
32
  "effecttsgo/effect-map-void": "warn",
33
33
  "effecttsgo/effect-succeed-with-void": "warn",
34
+ "effecttsgo/experimental-api-usage": "warn",
34
35
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
35
36
  "effecttsgo/flat-map-ignored-param-to-and-then": "warn",
36
37
  "effecttsgo/flat-map-to-map": "warn",
@@ -85,6 +86,7 @@
85
86
  "effecttsgo/unnecessary-fail-yieldable-error": "warn",
86
87
  "effecttsgo/unnecessary-pipe": "warn",
87
88
  "effecttsgo/unnecessary-pipe-chain": "warn",
88
- "effecttsgo/unnecessary-typeof-type": "warn"
89
+ "effecttsgo/unnecessary-typeof-type": "warn",
90
+ "effecttsgo/unstable-api-usage": "warn"
89
91
  }
90
92
  }
@@ -31,6 +31,7 @@
31
31
  "effecttsgo/effect-map-flatten": "error",
32
32
  "effecttsgo/effect-map-void": "error",
33
33
  "effecttsgo/effect-succeed-with-void": "error",
34
+ "effecttsgo/experimental-api-usage": "error",
34
35
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "error",
35
36
  "effecttsgo/flat-map-ignored-param-to-and-then": "error",
36
37
  "effecttsgo/flat-map-to-map": "error",
@@ -85,6 +86,7 @@
85
86
  "effecttsgo/unnecessary-fail-yieldable-error": "error",
86
87
  "effecttsgo/unnecessary-pipe": "error",
87
88
  "effecttsgo/unnecessary-pipe-chain": "error",
88
- "effecttsgo/unnecessary-typeof-type": "error"
89
+ "effecttsgo/unnecessary-typeof-type": "error",
90
+ "effecttsgo/unstable-api-usage": "error"
89
91
  }
90
92
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/tsgo",
3
- "version": "0.47.2",
3
+ "version": "0.48.1",
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.47.2",
45
- "@effect/tsgo-win32-arm64": "0.47.2",
46
- "@effect/tsgo-linux-x64": "0.47.2",
47
- "@effect/tsgo-linux-arm64": "0.47.2",
48
- "@effect/tsgo-linux-arm": "0.47.2",
49
- "@effect/tsgo-darwin-x64": "0.47.2",
50
- "@effect/tsgo-darwin-arm64": "0.47.2"
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"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@effect/platform-node": "^4.0.0-rc.118",
package/schema.json CHANGED
@@ -1513,6 +1513,22 @@
1513
1513
  },
1514
1514
  "type": "array"
1515
1515
  },
1516
+ "allowedExperimentalApis": {
1517
+ "default": [],
1518
+ "description": "Experimental APIs allowed by package/module subtree or package/module#export name.",
1519
+ "items": {
1520
+ "type": "string"
1521
+ },
1522
+ "type": "array"
1523
+ },
1524
+ "allowedUnstableApis": {
1525
+ "default": [],
1526
+ "description": "Unstable APIs allowed by package/module subtree or package/module#export name.",
1527
+ "items": {
1528
+ "type": "string"
1529
+ },
1530
+ "type": "array"
1531
+ },
1516
1532
  "barrelImportPackages": {
1517
1533
  "default": [],
1518
1534
  "description": "Package names that should prefer barrel named imports.",
@@ -2442,6 +2458,11 @@
2442
2458
  "default": "suggestion",
2443
2459
  "description": "Suggests using Effect.void instead of Effect.succeed(undefined) or Effect.succeed(void 0)"
2444
2460
  },
2461
+ "experimentalApiUsage": {
2462
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2463
+ "default": "warning",
2464
+ "description": "Warns when using an API marked @stability experimental"
2465
+ },
2445
2466
  "extendsNativeError": {
2446
2467
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2447
2468
  "default": "off",
@@ -2866,6 +2887,11 @@
2866
2887
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2867
2888
  "default": "off",
2868
2889
  "description": "Detects unsafe type assertions that narrow Effect, Stream, or Layer error or requirements channels"
2890
+ },
2891
+ "unstableApiUsage": {
2892
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2893
+ "default": "warning",
2894
+ "description": "Warns when using an API marked @stability unstable"
2869
2895
  }
2870
2896
  },
2871
2897
  "type": "object"
@@ -2917,6 +2943,22 @@
2917
2943
  },
2918
2944
  "type": "array"
2919
2945
  },
2946
+ "allowedExperimentalApis": {
2947
+ "default": [],
2948
+ "description": "Experimental APIs allowed by package/module subtree or package/module#export name.",
2949
+ "items": {
2950
+ "type": "string"
2951
+ },
2952
+ "type": "array"
2953
+ },
2954
+ "allowedUnstableApis": {
2955
+ "default": [],
2956
+ "description": "Unstable APIs allowed by package/module subtree or package/module#export name.",
2957
+ "items": {
2958
+ "type": "string"
2959
+ },
2960
+ "type": "array"
2961
+ },
2920
2962
  "barrelImportPackages": {
2921
2963
  "default": [],
2922
2964
  "description": "Package names that should prefer barrel named imports.",
@@ -3128,6 +3170,12 @@
3128
3170
  "allowedDuplicatedPackages": {
3129
3171
  "description": "Scoped allow-list for duplicatePackage."
3130
3172
  },
3173
+ "allowedExperimentalApis": {
3174
+ "description": "Scoped allow-list for experimentalApiUsage."
3175
+ },
3176
+ "allowedUnstableApis": {
3177
+ "description": "Scoped allow-list for unstableApiUsage."
3178
+ },
3131
3179
  "diagnosticSeverity": {
3132
3180
  "$ref": "#/definitions/effectLanguageServicePluginDiagnosticSeverityDefinition",
3133
3181
  "description": "Severity overrides applied when this override matches."