@effect/tsgo 0.51.1 → 0.53.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/lib/getExePath.js CHANGED
@@ -62,7 +62,8 @@ export default function getExePath() {
62
62
 
63
63
  const packageDir = path.dirname(packageJson);
64
64
  const upstream = readJson(path.join(packageDir, "lib", "upstream.json"));
65
- if (upstream.schemaVersion !== 5 || typeof upstream.components?.typescript !== "object") {
65
+ const latest = upstream.tags?.typescript?.latest;
66
+ if (upstream.schemaVersion !== 5 || typeof upstream.components?.typescript !== "object" || typeof latest !== "string") {
66
67
  throw new Error("Invalid " + platformPackageName + "/lib/upstream.json.");
67
68
  }
68
69
 
@@ -70,7 +71,9 @@ export default function getExePath() {
70
71
  if (typeof component?.gitHead !== "string") {
71
72
  throw new Error("Invalid TypeScript component metadata in " + platformPackageName + "/lib/upstream.json.");
72
73
  }
73
- let exe = path.join(packageDir, "artifacts", "typescript", version, "tsc");
74
+ let exe = version === latest
75
+ ? path.join(packageDir, "lib", "tsc")
76
+ : path.join(packageDir, "artifacts", "typescript", version, "tsc");
74
77
  if (process.platform === "win32") {
75
78
  exe += ".exe";
76
79
  if (exe.length >= 248) {
@@ -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/error-payload-shadows-name": "warn",
13
14
  "effecttsgo/experimental-api-usage": "warn",
14
15
  "effecttsgo/floating-effect": "warn",
15
16
  "effecttsgo/floating-effect-in-vitest": "warn",
@@ -25,6 +26,7 @@
25
26
  "effecttsgo/outdated-api": "warn",
26
27
  "effecttsgo/overridden-schema-constructor": "warn",
27
28
  "effecttsgo/promise-in-effect-success": "warn",
29
+ "effecttsgo/schema-class-missing-brand": "warn",
28
30
  "effecttsgo/schema-literal-non-finite": "warn",
29
31
  "effecttsgo/schema-opaque-instance-member": "warn",
30
32
  "effecttsgo/unsafe-effect-type-assertion": "warn",
@@ -24,6 +24,8 @@
24
24
  "effecttsgo/instance-of-schema": "warn",
25
25
  "effecttsgo/new-promise": "warn",
26
26
  "effecttsgo/node-builtin-import": "warn",
27
+ "effecttsgo/prefer-effect-array": "warn",
28
+ "effecttsgo/prefer-effect-record": "warn",
27
29
  "effecttsgo/prefer-schema-over-json": "warn",
28
30
  "effecttsgo/process-env": "warn",
29
31
  "effecttsgo/process-env-in-effect": "warn",
@@ -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/error-payload-shadows-name": "warn",
46
47
  "effecttsgo/experimental-api-usage": "warn",
47
48
  "effecttsgo/floating-effect": "warn",
48
49
  "effecttsgo/floating-effect-in-vitest": "warn",
@@ -58,6 +59,7 @@ export const correctness = {
58
59
  "effecttsgo/outdated-api": "warn",
59
60
  "effecttsgo/overridden-schema-constructor": "warn",
60
61
  "effecttsgo/promise-in-effect-success": "warn",
62
+ "effecttsgo/schema-class-missing-brand": "warn",
61
63
  "effecttsgo/schema-literal-non-finite": "warn",
62
64
  "effecttsgo/schema-opaque-instance-member": "warn",
63
65
  "effecttsgo/unsafe-effect-type-assertion": "warn",
@@ -91,6 +93,8 @@ export const effectNative = {
91
93
  "effecttsgo/instance-of-schema": "warn",
92
94
  "effecttsgo/new-promise": "warn",
93
95
  "effecttsgo/node-builtin-import": "warn",
96
+ "effecttsgo/prefer-effect-array": "warn",
97
+ "effecttsgo/prefer-effect-record": "warn",
94
98
  "effecttsgo/prefer-schema-over-json": "warn",
95
99
  "effecttsgo/process-env": "warn",
96
100
  "effecttsgo/process-env-in-effect": "warn",
@@ -142,11 +146,14 @@ export const recommended = {
142
146
  "effecttsgo/effect-in-void-success": "warn",
143
147
  "effecttsgo/effect-map-flatten": "warn",
144
148
  "effecttsgo/effect-map-void": "warn",
149
+ "effecttsgo/effect-sleep-zero-to-yield-now": "warn",
145
150
  "effecttsgo/effect-succeed-with-void": "warn",
151
+ "effecttsgo/error-payload-shadows-name": "warn",
146
152
  "effecttsgo/experimental-api-usage": "warn",
147
153
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
148
154
  "effecttsgo/flat-map-ignored-param-to-and-then": "warn",
149
155
  "effecttsgo/flat-map-to-map": "warn",
156
+ "effecttsgo/flat-map-to-tap": "warn",
150
157
  "effecttsgo/floating-effect": "error",
151
158
  "effecttsgo/floating-effect-in-vitest": "error",
152
159
  "effecttsgo/generic-effect-services": "warn",
@@ -184,6 +191,7 @@ export const recommended = {
184
191
  "effecttsgo/return-effect-in-gen": "warn",
185
192
  "effecttsgo/run-effect-inside-effect": "warn",
186
193
  "effecttsgo/run-of-exit-to-run-exit": "warn",
194
+ "effecttsgo/schema-class-missing-brand": "warn",
187
195
  "effecttsgo/schema-literal-non-finite": "error",
188
196
  "effecttsgo/schema-number": "warn",
189
197
  "effecttsgo/schema-opaque-instance-member": "error",
@@ -235,11 +243,14 @@ export const strict = {
235
243
  "effecttsgo/effect-in-void-success": "error",
236
244
  "effecttsgo/effect-map-flatten": "error",
237
245
  "effecttsgo/effect-map-void": "error",
246
+ "effecttsgo/effect-sleep-zero-to-yield-now": "error",
238
247
  "effecttsgo/effect-succeed-with-void": "error",
248
+ "effecttsgo/error-payload-shadows-name": "error",
239
249
  "effecttsgo/experimental-api-usage": "error",
240
250
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "error",
241
251
  "effecttsgo/flat-map-ignored-param-to-and-then": "error",
242
252
  "effecttsgo/flat-map-to-map": "error",
253
+ "effecttsgo/flat-map-to-tap": "error",
243
254
  "effecttsgo/floating-effect": "error",
244
255
  "effecttsgo/floating-effect-in-vitest": "error",
245
256
  "effecttsgo/generic-effect-services": "error",
@@ -277,6 +288,7 @@ export const strict = {
277
288
  "effecttsgo/return-effect-in-gen": "error",
278
289
  "effecttsgo/run-effect-inside-effect": "error",
279
290
  "effecttsgo/run-of-exit-to-run-exit": "error",
291
+ "effecttsgo/schema-class-missing-brand": "error",
280
292
  "effecttsgo/schema-literal-non-finite": "error",
281
293
  "effecttsgo/schema-number": "error",
282
294
  "effecttsgo/schema-opaque-instance-member": "error",
@@ -321,10 +333,12 @@ export const style = {
321
333
  "effecttsgo/effect-fn-opportunity": "warn",
322
334
  "effecttsgo/effect-map-flatten": "warn",
323
335
  "effecttsgo/effect-map-void": "warn",
336
+ "effecttsgo/effect-sleep-zero-to-yield-now": "warn",
324
337
  "effecttsgo/effect-succeed-with-void": "warn",
325
338
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
326
339
  "effecttsgo/flat-map-ignored-param-to-and-then": "warn",
327
340
  "effecttsgo/flat-map-to-map": "warn",
341
+ "effecttsgo/flat-map-to-tap": "warn",
328
342
  "effecttsgo/map-some-to-as-some": "warn",
329
343
  "effecttsgo/match-effect-to-map-both": "warn",
330
344
  "effecttsgo/match-effect-to-match": "warn",
@@ -335,6 +349,9 @@ export const style = {
335
349
  "effecttsgo/nested-effect-gen-yield": "warn",
336
350
  "effecttsgo/new-schema-class": "warn",
337
351
  "effecttsgo/option-match-to-from-option": "warn",
352
+ "effecttsgo/prefer-barrel-import": "warn",
353
+ "effecttsgo/prefer-namespace-import": "warn",
354
+ "effecttsgo/prefer-schema-tagged-error": "warn",
338
355
  "effecttsgo/prefer-schema-type-property": "warn",
339
356
  "effecttsgo/prefer-succeed-some-or-none": "warn",
340
357
  "effecttsgo/prefer-typed-schema-decoder": "warn",
@@ -30,11 +30,14 @@
30
30
  "effecttsgo/effect-in-void-success": "warn",
31
31
  "effecttsgo/effect-map-flatten": "warn",
32
32
  "effecttsgo/effect-map-void": "warn",
33
+ "effecttsgo/effect-sleep-zero-to-yield-now": "warn",
33
34
  "effecttsgo/effect-succeed-with-void": "warn",
35
+ "effecttsgo/error-payload-shadows-name": "warn",
34
36
  "effecttsgo/experimental-api-usage": "warn",
35
37
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
36
38
  "effecttsgo/flat-map-ignored-param-to-and-then": "warn",
37
39
  "effecttsgo/flat-map-to-map": "warn",
40
+ "effecttsgo/flat-map-to-tap": "warn",
38
41
  "effecttsgo/floating-effect": "error",
39
42
  "effecttsgo/floating-effect-in-vitest": "error",
40
43
  "effecttsgo/generic-effect-services": "warn",
@@ -72,6 +75,7 @@
72
75
  "effecttsgo/return-effect-in-gen": "warn",
73
76
  "effecttsgo/run-effect-inside-effect": "warn",
74
77
  "effecttsgo/run-of-exit-to-run-exit": "warn",
78
+ "effecttsgo/schema-class-missing-brand": "warn",
75
79
  "effecttsgo/schema-literal-non-finite": "error",
76
80
  "effecttsgo/schema-number": "warn",
77
81
  "effecttsgo/schema-opaque-instance-member": "error",
@@ -30,11 +30,14 @@
30
30
  "effecttsgo/effect-in-void-success": "error",
31
31
  "effecttsgo/effect-map-flatten": "error",
32
32
  "effecttsgo/effect-map-void": "error",
33
+ "effecttsgo/effect-sleep-zero-to-yield-now": "error",
33
34
  "effecttsgo/effect-succeed-with-void": "error",
35
+ "effecttsgo/error-payload-shadows-name": "error",
34
36
  "effecttsgo/experimental-api-usage": "error",
35
37
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "error",
36
38
  "effecttsgo/flat-map-ignored-param-to-and-then": "error",
37
39
  "effecttsgo/flat-map-to-map": "error",
40
+ "effecttsgo/flat-map-to-tap": "error",
38
41
  "effecttsgo/floating-effect": "error",
39
42
  "effecttsgo/floating-effect-in-vitest": "error",
40
43
  "effecttsgo/generic-effect-services": "error",
@@ -72,6 +75,7 @@
72
75
  "effecttsgo/return-effect-in-gen": "error",
73
76
  "effecttsgo/run-effect-inside-effect": "error",
74
77
  "effecttsgo/run-of-exit-to-run-exit": "error",
78
+ "effecttsgo/schema-class-missing-brand": "error",
75
79
  "effecttsgo/schema-literal-non-finite": "error",
76
80
  "effecttsgo/schema-number": "error",
77
81
  "effecttsgo/schema-opaque-instance-member": "error",
@@ -23,10 +23,12 @@
23
23
  "effecttsgo/effect-fn-opportunity": "warn",
24
24
  "effecttsgo/effect-map-flatten": "warn",
25
25
  "effecttsgo/effect-map-void": "warn",
26
+ "effecttsgo/effect-sleep-zero-to-yield-now": "warn",
26
27
  "effecttsgo/effect-succeed-with-void": "warn",
27
28
  "effecttsgo/flat-map-conditional-to-filter-or-fail": "warn",
28
29
  "effecttsgo/flat-map-ignored-param-to-and-then": "warn",
29
30
  "effecttsgo/flat-map-to-map": "warn",
31
+ "effecttsgo/flat-map-to-tap": "warn",
30
32
  "effecttsgo/map-some-to-as-some": "warn",
31
33
  "effecttsgo/match-effect-to-map-both": "warn",
32
34
  "effecttsgo/match-effect-to-match": "warn",
@@ -37,6 +39,9 @@
37
39
  "effecttsgo/nested-effect-gen-yield": "warn",
38
40
  "effecttsgo/new-schema-class": "warn",
39
41
  "effecttsgo/option-match-to-from-option": "warn",
42
+ "effecttsgo/prefer-barrel-import": "warn",
43
+ "effecttsgo/prefer-namespace-import": "warn",
44
+ "effecttsgo/prefer-schema-tagged-error": "warn",
40
45
  "effecttsgo/prefer-schema-type-property": "warn",
41
46
  "effecttsgo/prefer-succeed-some-or-none": "warn",
42
47
  "effecttsgo/prefer-typed-schema-decoder": "warn",
@@ -2326,9 +2326,15 @@
2326
2326
  "effecttsgo/effect-map-void": {
2327
2327
  "$ref": "#/definitions/RuleNoConfig"
2328
2328
  },
2329
+ "effecttsgo/effect-sleep-zero-to-yield-now": {
2330
+ "$ref": "#/definitions/RuleNoConfig"
2331
+ },
2329
2332
  "effecttsgo/effect-succeed-with-void": {
2330
2333
  "$ref": "#/definitions/RuleNoConfig"
2331
2334
  },
2335
+ "effecttsgo/error-payload-shadows-name": {
2336
+ "$ref": "#/definitions/RuleNoConfig"
2337
+ },
2332
2338
  "effecttsgo/experimental-api-usage": {
2333
2339
  "$ref": "#/definitions/RuleNoConfig"
2334
2340
  },
@@ -2344,6 +2350,9 @@
2344
2350
  "effecttsgo/flat-map-to-map": {
2345
2351
  "$ref": "#/definitions/RuleNoConfig"
2346
2352
  },
2353
+ "effecttsgo/flat-map-to-tap": {
2354
+ "$ref": "#/definitions/RuleNoConfig"
2355
+ },
2347
2356
  "effecttsgo/floating-effect": {
2348
2357
  "$ref": "#/definitions/RuleNoConfig"
2349
2358
  },
@@ -2473,9 +2482,24 @@
2473
2482
  "effecttsgo/overridden-schema-constructor": {
2474
2483
  "$ref": "#/definitions/RuleNoConfig"
2475
2484
  },
2485
+ "effecttsgo/prefer-barrel-import": {
2486
+ "$ref": "#/definitions/RuleNoConfig"
2487
+ },
2488
+ "effecttsgo/prefer-effect-array": {
2489
+ "$ref": "#/definitions/RuleNoConfig"
2490
+ },
2491
+ "effecttsgo/prefer-effect-record": {
2492
+ "$ref": "#/definitions/RuleNoConfig"
2493
+ },
2494
+ "effecttsgo/prefer-namespace-import": {
2495
+ "$ref": "#/definitions/RuleNoConfig"
2496
+ },
2476
2497
  "effecttsgo/prefer-schema-over-json": {
2477
2498
  "$ref": "#/definitions/RuleNoConfig"
2478
2499
  },
2500
+ "effecttsgo/prefer-schema-tagged-error": {
2501
+ "$ref": "#/definitions/RuleNoConfig"
2502
+ },
2479
2503
  "effecttsgo/prefer-schema-type-property": {
2480
2504
  "$ref": "#/definitions/RuleNoConfig"
2481
2505
  },
@@ -2521,6 +2545,9 @@
2521
2545
  "effecttsgo/run-of-exit-to-run-exit": {
2522
2546
  "$ref": "#/definitions/RuleNoConfig"
2523
2547
  },
2548
+ "effecttsgo/schema-class-missing-brand": {
2549
+ "$ref": "#/definitions/RuleNoConfig"
2550
+ },
2524
2551
  "effecttsgo/schema-literal-non-finite": {
2525
2552
  "$ref": "#/definitions/RuleNoConfig"
2526
2553
  },
@@ -9719,7 +9746,24 @@
9719
9746
  "$ref": "#/definitions/RuleNoConfig"
9720
9747
  },
9721
9748
  "unicorn/prefer-query-selector": {
9722
- "$ref": "#/definitions/RuleNoConfig"
9749
+ "anyOf": [
9750
+ {
9751
+ "$ref": "#/definitions/RuleNoConfig"
9752
+ },
9753
+ {
9754
+ "items": [
9755
+ {
9756
+ "$ref": "#/definitions/AllowWarnDeny"
9757
+ },
9758
+ {
9759
+ "$ref": "#/definitions/PreferQuerySelector"
9760
+ }
9761
+ ],
9762
+ "maxItems": 2,
9763
+ "minItems": 2,
9764
+ "type": "array"
9765
+ }
9766
+ ]
9723
9767
  },
9724
9768
  "unicorn/prefer-reflect-apply": {
9725
9769
  "$ref": "#/definitions/RuleNoConfig"
@@ -18245,6 +18289,18 @@
18245
18289
  },
18246
18290
  "type": "object"
18247
18291
  },
18292
+ "PreferQuerySelector": {
18293
+ "additionalProperties": false,
18294
+ "properties": {
18295
+ "allowWithVariables": {
18296
+ "default": false,
18297
+ "description": "When set to `true`, allows using `.getElementById()` and `.getElementsByClassName()` when called with a variable or expression.\nThis avoids the need to manually compose a CSS selector string, which can be less readable.",
18298
+ "markdownDescription": "When set to `true`, allows using `.getElementById()` and `.getElementsByClassName()` when called with a variable or expression.\nThis avoids the need to manually compose a CSS selector string, which can be less readable.",
18299
+ "type": "boolean"
18300
+ }
18301
+ },
18302
+ "type": "object"
18303
+ },
18248
18304
  "PreferReadonlyConfig": {
18249
18305
  "additionalProperties": false,
18250
18306
  "properties": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/tsgo",
3
- "version": "0.51.1",
3
+ "version": "0.53.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,21 +41,21 @@
41
41
  "schema.json"
42
42
  ],
43
43
  "optionalDependencies": {
44
- "@effect/tsgo-win32-x64": "0.51.1",
45
- "@effect/tsgo-win32-arm64": "0.51.1",
46
- "@effect/tsgo-linux-x64": "0.51.1",
47
- "@effect/tsgo-linux-arm64": "0.51.1",
48
- "@effect/tsgo-linux-arm": "0.51.1",
49
- "@effect/tsgo-darwin-x64": "0.51.1",
50
- "@effect/tsgo-darwin-arm64": "0.51.1"
44
+ "@effect/tsgo-win32-x64": "0.53.0",
45
+ "@effect/tsgo-win32-arm64": "0.53.0",
46
+ "@effect/tsgo-linux-x64": "0.53.0",
47
+ "@effect/tsgo-linux-arm64": "0.53.0",
48
+ "@effect/tsgo-linux-arm": "0.53.0",
49
+ "@effect/tsgo-darwin-x64": "0.53.0",
50
+ "@effect/tsgo-darwin-arm64": "0.53.0"
51
51
  },
52
52
  "devDependencies": {
53
- "@effect/platform-node": "^4.0.0-rc.118",
54
- "@effect/platform-node-shared": "^4.0.0-rc.118",
53
+ "@effect/platform-node": "^4.0.2",
54
+ "@effect/platform-node-shared": "^4.0.2",
55
55
  "@types/node": "^24.3.0",
56
56
  "tsdown": "^0.20.1",
57
57
  "typescript": "^5.9.2",
58
- "effect": "^4.0.0-rc.118",
58
+ "effect": "^4.0.2",
59
59
  "vitest": "^3.2.1"
60
60
  },
61
61
  "scripts": {
package/schema.json CHANGED
@@ -1542,11 +1542,6 @@
1542
1542
  "description": "Controls Effect completions.",
1543
1543
  "type": "boolean"
1544
1544
  },
1545
- "debug": {
1546
- "default": false,
1547
- "description": "Enables additional debug-only Effect language service output.",
1548
- "type": "boolean"
1549
- },
1550
1545
  "diagnosticSeverity": {
1551
1546
  "$ref": "#/definitions/effectLanguageServicePluginDiagnosticSeverityDefinition",
1552
1547
  "default": {},
@@ -2361,7 +2356,7 @@
2361
2356
  "catchIfTagToCatchTag": {
2362
2357
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2363
2358
  "default": "suggestion",
2364
- "description": "Suggests Effect.catchTag instead of Effect.catchIf with a direct _tag equality predicate"
2359
+ "description": "Suggests Effect.catchTag instead of Effect.catchIf with a _tag equality or Predicate.isTagged predicate"
2365
2360
  },
2366
2361
  "catchRefailToTapError": {
2367
2362
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
@@ -2458,11 +2453,21 @@
2458
2453
  "default": "suggestion",
2459
2454
  "description": "Suggests using Effect.asVoid instead of Effect.map(() =\u003e void 0), Effect.map(() =\u003e undefined), or Effect.map(() =\u003e {})"
2460
2455
  },
2456
+ "effectSleepZeroToYieldNow": {
2457
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2458
+ "default": "suggestion",
2459
+ "description": "Suggests Effect.yieldNow for cooperative yielding instead of sleeping for zero duration"
2460
+ },
2461
2461
  "effectSucceedWithVoid": {
2462
2462
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2463
2463
  "default": "suggestion",
2464
2464
  "description": "Suggests using Effect.void instead of Effect.succeed(undefined) or Effect.succeed(void 0)"
2465
2465
  },
2466
+ "errorPayloadShadowsName": {
2467
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2468
+ "default": "suggestion",
2469
+ "description": "Detects error payload fields named `name` that shadow the error's own name"
2470
+ },
2466
2471
  "experimentalApiUsage": {
2467
2472
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2468
2473
  "default": "warning",
@@ -2488,6 +2493,11 @@
2488
2493
  "default": "suggestion",
2489
2494
  "description": "Suggests using Effect.map instead of Effect.flatMap when the callback only wraps its result with Effect.succeed"
2490
2495
  },
2496
+ "flatMapToTap": {
2497
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2498
+ "default": "suggestion",
2499
+ "description": "Suggests Effect.tap when a flatMap or andThen callback runs an effect and returns its unchanged parameter"
2500
+ },
2491
2501
  "floatingEffect": {
2492
2502
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2493
2503
  "default": "error",
@@ -2703,11 +2713,36 @@
2703
2713
  "default": "error",
2704
2714
  "description": "Prevents overriding constructors in Schema classes which breaks decoding behavior"
2705
2715
  },
2716
+ "preferBarrelImport": {
2717
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2718
+ "default": "off",
2719
+ "description": "Reports imports of individual modules from packages configured in barrelImportPackages that should be named imports from the package barrel"
2720
+ },
2721
+ "preferEffectArray": {
2722
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2723
+ "default": "off",
2724
+ "description": "Suggests Effect Array APIs for native array member references, with semantic caveats"
2725
+ },
2726
+ "preferEffectRecord": {
2727
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2728
+ "default": "off",
2729
+ "description": "Suggests Effect Record APIs for native Object member references, with semantic caveats"
2730
+ },
2731
+ "preferNamespaceImport": {
2732
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2733
+ "default": "off",
2734
+ "description": "Reports named imports from packages configured in namespaceImportPackages that should be namespace imports"
2735
+ },
2706
2736
  "preferSchemaOverJson": {
2707
2737
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2708
2738
  "default": "off",
2709
2739
  "description": "Suggests using Effect Schema for JSON operations instead of JSON.parse/JSON.stringify"
2710
2740
  },
2741
+ "preferSchemaTaggedError": {
2742
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2743
+ "default": "off",
2744
+ "description": "Suggests using Schema.TaggedError instead of Data.TaggedError"
2745
+ },
2711
2746
  "preferSchemaTypeProperty": {
2712
2747
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2713
2748
  "default": "off",
@@ -2783,6 +2818,11 @@
2783
2818
  "default": "suggestion",
2784
2819
  "description": "Suggests using Effect.runPromiseExit instead of passing Effect.exit to Effect.runPromise"
2785
2820
  },
2821
+ "schemaClassMissingBrand": {
2822
+ "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2823
+ "default": "suggestion",
2824
+ "description": "Warns when Schema classes, errors, or Opaque classes omit the brand type argument"
2825
+ },
2786
2826
  "schemaLiteralNonFinite": {
2787
2827
  "$ref": "#/definitions/effectLanguageServicePluginSeverityDefinition",
2788
2828
  "default": "error",
@@ -2910,7 +2950,8 @@
2910
2950
  "enum": [
2911
2951
  "default",
2912
2952
  "package-identifier",
2913
- "default-hashed"
2953
+ "default-hashed",
2954
+ "identifier"
2914
2955
  ],
2915
2956
  "type": "string"
2916
2957
  },
@@ -2977,11 +3018,6 @@
2977
3018
  "description": "Controls Effect completions.",
2978
3019
  "type": "boolean"
2979
3020
  },
2980
- "debug": {
2981
- "default": false,
2982
- "description": "Enables additional debug-only Effect language service output.",
2983
- "type": "boolean"
2984
- },
2985
3021
  "diagnosticSeverity": {
2986
3022
  "$ref": "#/definitions/effectLanguageServicePluginDiagnosticSeverityDefinition",
2987
3023
  "default": {},
@@ -3173,13 +3209,32 @@
3173
3209
  "additionalProperties": false,
3174
3210
  "properties": {
3175
3211
  "allowedDuplicatedPackages": {
3176
- "description": "Scoped allow-list for duplicatePackage."
3212
+ "description": "Scoped allow-list for duplicatePackage.",
3213
+ "items": {
3214
+ "type": "string"
3215
+ },
3216
+ "type": "array"
3177
3217
  },
3178
3218
  "allowedExperimentalApis": {
3179
- "description": "Scoped allow-list for experimentalApiUsage."
3219
+ "description": "Scoped allow-list for experimentalApiUsage.",
3220
+ "items": {
3221
+ "type": "string"
3222
+ },
3223
+ "type": "array"
3180
3224
  },
3181
3225
  "allowedUnstableApis": {
3182
- "description": "Scoped allow-list for unstableApiUsage."
3226
+ "description": "Scoped allow-list for unstableApiUsage.",
3227
+ "items": {
3228
+ "type": "string"
3229
+ },
3230
+ "type": "array"
3231
+ },
3232
+ "barrelImportPackages": {
3233
+ "description": "Scoped package names that should prefer barrel named imports.",
3234
+ "items": {
3235
+ "type": "string"
3236
+ },
3237
+ "type": "array"
3183
3238
  },
3184
3239
  "diagnosticSeverity": {
3185
3240
  "$ref": "#/definitions/effectLanguageServicePluginDiagnosticSeverityDefinition",
@@ -3187,10 +3242,29 @@
3187
3242
  },
3188
3243
  "effectFn": {
3189
3244
  "description": "Scoped override for effectFn quickfix variants.",
3245
+ "items": {
3246
+ "enum": [
3247
+ "span",
3248
+ "untraced",
3249
+ "no-span",
3250
+ "inferred-span",
3251
+ "suggested-span"
3252
+ ],
3253
+ "type": "string"
3254
+ },
3255
+ "type": "array",
3190
3256
  "uniqueItems": true
3191
3257
  },
3192
3258
  "extendedKeyDetection": {
3193
- "description": "Scoped override for extended deterministic key detection."
3259
+ "description": "Scoped override for extended deterministic key detection.",
3260
+ "type": "boolean"
3261
+ },
3262
+ "importAliases": {
3263
+ "additionalProperties": {
3264
+ "type": "string"
3265
+ },
3266
+ "description": "Scoped package-level import aliases keyed by package name.",
3267
+ "type": "object"
3194
3268
  },
3195
3269
  "keyPatterns": {
3196
3270
  "description": "Scoped key pattern configuration for deterministicKeys.",
@@ -3199,9 +3273,25 @@
3199
3273
  },
3200
3274
  "type": "array"
3201
3275
  },
3276
+ "namespaceImportPackages": {
3277
+ "description": "Scoped package names that should prefer namespace imports.",
3278
+ "items": {
3279
+ "type": "string"
3280
+ },
3281
+ "type": "array"
3282
+ },
3202
3283
  "pipeableMinArgCount": {
3203
3284
  "description": "Minimum number of contiguous pipeable transformations to trigger missedPipeableOpportunity.",
3204
- "minimum": 1
3285
+ "minimum": 1,
3286
+ "type": "integer"
3287
+ },
3288
+ "topLevelNamedReexports": {
3289
+ "description": "Scoped override for whether named reexports are followed at package top-level.",
3290
+ "enum": [
3291
+ "ignore",
3292
+ "follow"
3293
+ ],
3294
+ "type": "string"
3205
3295
  }
3206
3296
  },
3207
3297
  "type": "object"