@shivaedev/quality 0.18.0 → 0.19.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/CHANGELOG.md +43 -0
- package/README.md +143 -536
- package/biome/declarations.json +0 -45
- package/biome/plugins/constant-names.grit +1 -1
- package/biome/plugins/effect-fn-functions.grit +1 -1
- package/biome/preset.json +16 -9
- package/dist/biome/nativeEffectCall.d.ts +4 -0
- package/dist/biome/nativeEffectCall.d.ts.map +1 -0
- package/dist/biome/nativeEffectCall.js +34 -0
- package/dist/biome/nativeEffectCall.js.map +1 -0
- package/dist/biome/recognizeDiagnostics.d.ts +3 -0
- package/dist/biome/recognizeDiagnostics.d.ts.map +1 -0
- package/dist/biome/recognizeDiagnostics.js +58 -0
- package/dist/biome/recognizeDiagnostics.js.map +1 -0
- package/dist/biome/report.d.ts +10 -0
- package/dist/biome/report.d.ts.map +1 -1
- package/dist/biome/report.js +23 -5
- package/dist/biome/report.js.map +1 -1
- package/dist/biome/syntax.d.ts +12 -0
- package/dist/biome/syntax.d.ts.map +1 -0
- package/dist/biome/syntax.js +29 -0
- package/dist/biome/syntax.js.map +1 -0
- package/dist/cli/args.d.ts +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +2 -2
- package/dist/cli/baseline.d.ts +1 -1
- package/dist/cli/baseline.d.ts.map +1 -1
- package/dist/cli/baseline.js.map +1 -1
- package/dist/cli/fix.d.ts +6 -6
- package/dist/cli/fix.d.ts.map +1 -1
- package/dist/cli/fix.js +1 -1
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli/run-main.d.ts +1 -1
- package/dist/cli/run-main.d.ts.map +1 -1
- package/dist/cli/run-main.js.map +1 -1
- package/dist/config/decode.d.ts +3 -7
- package/dist/config/decode.d.ts.map +1 -1
- package/dist/config/decode.js +5 -3
- package/dist/config/decode.js.map +1 -1
- package/dist/config/load.d.ts +0 -2
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +11 -7
- package/dist/config/load.js.map +1 -1
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +8 -12
- package/dist/config/resolve.js.map +1 -1
- package/dist/config.d.ts +10 -16
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/decoded.d.ts +4 -4
- package/dist/decoded.d.ts.map +1 -1
- package/dist/decoded.js.map +1 -1
- package/dist/engine/session.js.map +1 -1
- package/dist/engine/violation.d.ts +1 -1
- package/dist/engine/violation.d.ts.map +1 -1
- package/dist/engine/violation.js.map +1 -1
- package/dist/hooks/preCommit.d.ts +2 -2
- package/dist/hooks/preCommit.d.ts.map +1 -1
- package/dist/hooks/preCommit.js +24 -34
- package/dist/hooks/preCommit.js.map +1 -1
- package/dist/imports/browserGlobals.d.ts +3 -0
- package/dist/imports/browserGlobals.d.ts.map +1 -0
- package/dist/imports/browserGlobals.js +125 -0
- package/dist/imports/browserGlobals.js.map +1 -0
- package/dist/imports/browserNames.d.ts +2 -0
- package/dist/imports/browserNames.d.ts.map +1 -0
- package/dist/imports/browserNames.js +78 -0
- package/dist/imports/browserNames.js.map +1 -0
- package/dist/imports/fences/check.d.ts +4 -0
- package/dist/imports/fences/check.d.ts.map +1 -0
- package/dist/imports/fences/check.js +10 -0
- package/dist/imports/fences/check.js.map +1 -0
- package/dist/imports/fences/declarations.d.ts +5 -0
- package/dist/imports/fences/declarations.d.ts.map +1 -0
- package/dist/imports/fences/declarations.js +29 -0
- package/dist/imports/fences/declarations.js.map +1 -0
- package/dist/imports/fences/discover.d.ts +5 -0
- package/dist/imports/fences/discover.d.ts.map +1 -0
- package/dist/imports/fences/discover.js +41 -0
- package/dist/imports/fences/discover.js.map +1 -0
- package/dist/imports/graph.js +2 -2
- package/dist/imports/graph.js.map +1 -1
- package/dist/imports/projects.js.map +1 -1
- package/dist/imports/runtime.d.ts +5 -0
- package/dist/imports/runtime.d.ts.map +1 -0
- package/dist/imports/runtime.js +32 -0
- package/dist/imports/runtime.js.map +1 -0
- package/dist/imports/workspace.d.ts +1 -1
- package/dist/imports/workspace.d.ts.map +1 -1
- package/dist/imports/workspace.js +5 -1
- package/dist/imports/workspace.js.map +1 -1
- package/dist/inventory/collect.d.ts.map +1 -1
- package/dist/inventory/collect.js +8 -1
- package/dist/inventory/collect.js.map +1 -1
- package/dist/inventory/trackedPaths.d.ts +3 -0
- package/dist/inventory/trackedPaths.d.ts.map +1 -0
- package/dist/inventory/trackedPaths.js +26 -0
- package/dist/inventory/trackedPaths.js.map +1 -0
- package/dist/inventory/walk.d.ts +4 -4
- package/dist/inventory/walk.d.ts.map +1 -1
- package/dist/inventory/walk.js +32 -12
- package/dist/inventory/walk.js.map +1 -1
- package/dist/rules/built-in.d.ts +2 -3
- package/dist/rules/built-in.d.ts.map +1 -1
- package/dist/rules/built-in.js +6 -0
- package/dist/rules/built-in.js.map +1 -1
- package/dist/rules/comments/max-per-file.js +1 -1
- package/dist/rules/comments/max-per-file.js.map +1 -1
- package/dist/rules/files/folderNames.js +1 -1
- package/dist/rules/files/folderNames.js.map +1 -1
- package/dist/rules/files/otherNames.d.ts.map +1 -1
- package/dist/rules/files/otherNames.js +1 -10
- package/dist/rules/files/otherNames.js.map +1 -1
- package/dist/rules/imports/bundleInputs.d.ts +7 -0
- package/dist/rules/imports/bundleInputs.d.ts.map +1 -0
- package/dist/rules/imports/bundleInputs.js +77 -0
- package/dist/rules/imports/bundleInputs.js.map +1 -0
- package/dist/rules/imports/fences.d.ts +1 -2
- package/dist/rules/imports/fences.d.ts.map +1 -1
- package/dist/rules/imports/fences.js +4 -14
- package/dist/rules/imports/fences.js.map +1 -1
- package/dist/rules/imports/manifest.d.ts +2 -0
- package/dist/rules/imports/manifest.d.ts.map +1 -0
- package/dist/rules/imports/manifest.js +98 -0
- package/dist/rules/imports/manifest.js.map +1 -0
- package/dist/rules/imports/noTestCode.d.ts +2 -0
- package/dist/rules/imports/noTestCode.d.ts.map +1 -0
- package/dist/rules/imports/noTestCode.js +17 -0
- package/dist/rules/imports/noTestCode.js.map +1 -0
- package/dist/rules/imports/runtime.d.ts +2 -0
- package/dist/rules/imports/runtime.d.ts.map +1 -0
- package/dist/rules/imports/runtime.js +41 -0
- package/dist/rules/imports/runtime.js.map +1 -0
- package/dist/rules/max-lines.d.ts +0 -1
- package/dist/rules/max-lines.d.ts.map +1 -1
- package/dist/rules/max-lines.js +3 -10
- package/dist/rules/max-lines.js.map +1 -1
- package/dist/rules/suppressions/biome-overrides.d.ts.map +1 -1
- package/dist/rules/suppressions/biome-overrides.js +21 -4
- package/dist/rules/suppressions/biome-overrides.js.map +1 -1
- package/dist/rules/suppressions/biomeRecommended.js +2 -2
- package/dist/rules/suppressions/biomeRecommended.js.map +1 -1
- package/dist/rules/suppressions/no-inline.js +1 -1
- package/dist/rules/suppressions/no-inline.js.map +1 -1
- package/dist/standard-schema.d.ts +1 -1
- package/dist/standard-schema.d.ts.map +1 -1
- package/dist/standard-schema.js +10 -2
- package/dist/standard-schema.js.map +1 -1
- package/dist/vitest.d.ts +1 -3
- package/dist/vitest.d.ts.map +1 -1
- package/dist/vitest.js +11 -6
- package/dist/vitest.js.map +1 -1
- package/docs/debt-and-hooks.md +90 -0
- package/docs/modules.md +253 -0
- package/docs/naming.md +126 -0
- package/docs/north-star.md +61 -0
- package/docs/roadmap.md +37 -0
- package/docs/rules.md +308 -0
- package/docs/tooling.md +120 -0
- package/package.json +7 -5
- package/src/biome/nativeEffectCall.ts +45 -0
- package/src/biome/recognizeDiagnostics.ts +67 -0
- package/src/biome/report.ts +24 -6
- package/src/biome/syntax.ts +36 -0
- package/src/cli/args.ts +2 -2
- package/src/cli/baseline.ts +3 -3
- package/src/cli/fix.ts +13 -13
- package/src/cli/run-main.ts +1 -1
- package/src/config/decode.ts +7 -3
- package/src/config/load.ts +15 -9
- package/src/config/resolve.ts +10 -15
- package/src/config.ts +8 -15
- package/src/decoded.ts +3 -3
- package/src/engine/session.ts +3 -3
- package/src/engine/violation.ts +2 -2
- package/src/hooks/preCommit.ts +30 -39
- package/src/imports/browserGlobals.ts +142 -0
- package/src/imports/browserNames.ts +80 -0
- package/src/imports/fences/check.ts +12 -0
- package/src/imports/fences/declarations.ts +38 -0
- package/src/imports/fences/discover.ts +37 -0
- package/src/imports/graph.ts +2 -2
- package/src/imports/projects.ts +2 -2
- package/src/imports/runtime.ts +37 -0
- package/src/imports/workspace.ts +7 -2
- package/src/inventory/collect.ts +8 -1
- package/src/inventory/trackedPaths.ts +28 -0
- package/src/inventory/walk.ts +65 -36
- package/src/rules/built-in.ts +6 -0
- package/src/rules/comments/max-per-file.ts +1 -1
- package/src/rules/files/folderNames.ts +1 -1
- package/src/rules/files/otherNames.ts +1 -10
- package/src/rules/imports/bundleInputs.ts +94 -0
- package/src/rules/imports/fences.ts +4 -16
- package/src/rules/imports/manifest.ts +116 -0
- package/src/rules/imports/noTestCode.ts +18 -0
- package/src/rules/imports/runtime.ts +43 -0
- package/src/rules/max-lines.ts +4 -10
- package/src/rules/suppressions/biome-overrides.ts +31 -4
- package/src/rules/suppressions/biomeRecommended.ts +2 -2
- package/src/rules/suppressions/no-inline.ts +1 -1
- package/src/standard-schema.ts +11 -3
- package/src/vitest.ts +11 -6
package/biome/declarations.json
CHANGED
|
@@ -19,56 +19,11 @@
|
|
|
19
19
|
"reason": "A test defines the helper and harness components it renders, and no test module is hot-reloaded, so the rule's fast-refresh boundary does not apply.",
|
|
20
20
|
"rule": "lint/style/useComponentExportOnlyModules"
|
|
21
21
|
},
|
|
22
|
-
{
|
|
23
|
-
"includes": ["**"],
|
|
24
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
25
|
-
"rule": "lint/correctness/noProcessGlobal"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"includes": ["**"],
|
|
29
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
30
|
-
"rule": "lint/correctness/useJsonImportAttributes"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"includes": ["**"],
|
|
34
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
35
|
-
"rule": "lint/nursery/noMisusedPromises"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"includes": ["**"],
|
|
39
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
40
|
-
"rule": "lint/nursery/useExhaustiveSwitchCases"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"includes": ["**"],
|
|
44
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
45
|
-
"rule": "lint/nursery/useSortedClasses"
|
|
46
|
-
},
|
|
47
22
|
{
|
|
48
23
|
"includes": ["**"],
|
|
49
24
|
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
50
25
|
"rule": "lint/performance/noDelete"
|
|
51
26
|
},
|
|
52
|
-
{
|
|
53
|
-
"includes": ["**"],
|
|
54
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
55
|
-
"rule": "lint/style/useConsistentArrayType"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"includes": ["**"],
|
|
59
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
60
|
-
"rule": "lint/style/useConsistentCurlyBraces"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"includes": ["**"],
|
|
64
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
65
|
-
"rule": "lint/suspicious/noEqualsToNull"
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"includes": ["**"],
|
|
69
|
-
"reason": "quality fix applies every Biome lint fix, and this rule's fix changed behavior or did not finish on real code, so the rule is off until it is reviewed.",
|
|
70
|
-
"rule": "lint/suspicious/noSkippedTests"
|
|
71
|
-
},
|
|
72
27
|
{
|
|
73
28
|
"includes": ["**"],
|
|
74
29
|
"reason": "An unused private member asks whether it is still needed or should be used; deleting it automatically skips that decision.",
|
|
@@ -11,7 +11,7 @@ language js(typescript, jsx)
|
|
|
11
11
|
JsArrowFunctionExpression(),
|
|
12
12
|
JsClassDeclaration(),
|
|
13
13
|
JsClassExpression()
|
|
14
|
-
}
|
|
14
|
+
},
|
|
15
15
|
! $name <: r"[A-Z][A-Z0-9_]*",
|
|
16
16
|
register_diagnostic(span=$name, message="A module-level constant holding a string or number literal is CONSTANT_CASE, such as MAX_ITEMS or DEFAULT_PORT.")
|
|
17
17
|
}
|
|
@@ -10,6 +10,6 @@ or {
|
|
|
10
10
|
JsFunctionBody(statements=[JsReturnStatement(argument=`Effect.gen($...)`)]),
|
|
11
11
|
`Effect.gen($...)`
|
|
12
12
|
},
|
|
13
|
-
! $function <: within JsFunctionBody()
|
|
13
|
+
! $function <: within JsFunctionBody(),
|
|
14
14
|
register_diagnostic(span=$name, message="A top-level function whose whole body is Effect.gen is an Effect.fn, which names its span and keeps the call site in traces: const loadItem = Effect.fn('ItemStore.loadItem')(function* (id: string) { ... }). Effect.fnUntraced fits a function that needs no span.")
|
|
15
15
|
}
|
package/biome/preset.json
CHANGED
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
"noNonoctalDecimalEscape": "error",
|
|
219
219
|
"noPrecisionLoss": "error",
|
|
220
220
|
"noPrivateImports": "error",
|
|
221
|
-
"noProcessGlobal": "
|
|
221
|
+
"noProcessGlobal": { "fix": "none", "level": "error" },
|
|
222
222
|
"noReactPropAssignments": "error",
|
|
223
223
|
"noRenderReturnValue": "error",
|
|
224
224
|
"noSelfAssign": "error",
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
"useHookAtTopLevel": "error",
|
|
258
258
|
"useInlineScriptId": "error",
|
|
259
259
|
"useIsNan": "error",
|
|
260
|
-
"useJsonImportAttributes": "
|
|
260
|
+
"useJsonImportAttributes": { "fix": "none", "level": "error" },
|
|
261
261
|
"useJsxKeyInIterable": {
|
|
262
262
|
"level": "error",
|
|
263
263
|
"options": {
|
|
@@ -294,7 +294,8 @@
|
|
|
294
294
|
"noJsxLeakedDollar": "error",
|
|
295
295
|
"noJsxNamespace": "error",
|
|
296
296
|
"noLoopFunc": "error",
|
|
297
|
-
"
|
|
297
|
+
"noMisplacedListElements": "error",
|
|
298
|
+
"noMisusedPromises": { "fix": "none", "level": "error" },
|
|
298
299
|
"noNegationInEqualityCheck": "error",
|
|
299
300
|
"noNonScalableViewport": "error",
|
|
300
301
|
"noObsoleteTags": "error",
|
|
@@ -308,7 +309,9 @@
|
|
|
308
309
|
"noPlaywrightWaitForNavigation": "error",
|
|
309
310
|
"noPlaywrightWaitForSelector": "error",
|
|
310
311
|
"noPlaywrightWaitForTimeout": "error",
|
|
312
|
+
"noReactObjectTypeAsDefaultProp": "error",
|
|
311
313
|
"noReactStringRefs": "error",
|
|
314
|
+
"noSelfImport": "error",
|
|
312
315
|
"noThisOutsideOfClass": "error",
|
|
313
316
|
"noTopLevelLiterals": "error",
|
|
314
317
|
"noUndeclaredClasses": "off",
|
|
@@ -345,7 +348,8 @@
|
|
|
345
348
|
"useControlLabel": "error",
|
|
346
349
|
"useDisposables": "error",
|
|
347
350
|
"useExhaustiveSwitchCases": {
|
|
348
|
-
"
|
|
351
|
+
"fix": "none",
|
|
352
|
+
"level": "error",
|
|
349
353
|
"options": {
|
|
350
354
|
"requireExplicitCase": true
|
|
351
355
|
}
|
|
@@ -354,13 +358,15 @@
|
|
|
354
358
|
"useIncludes": "error",
|
|
355
359
|
"useNamedCaptureGroup": "error",
|
|
356
360
|
"useNamedLayer": "error",
|
|
361
|
+
"usePromiseRejectErrors": "error",
|
|
357
362
|
"useReactAsyncServerFunction": "error",
|
|
358
363
|
"useReactNamingConvention": "error",
|
|
359
364
|
"useReduceTypeParameter": "error",
|
|
360
365
|
"useRegexpExec": "error",
|
|
361
366
|
"useRegexpTest": { "fix": "none", "level": "error" },
|
|
362
367
|
"useSortedClasses": {
|
|
363
|
-
"
|
|
368
|
+
"fix": "safe",
|
|
369
|
+
"level": "error",
|
|
364
370
|
"options": {
|
|
365
371
|
"functions": ["cn", "clsx", "cva"]
|
|
366
372
|
}
|
|
@@ -417,14 +423,15 @@
|
|
|
417
423
|
"useCollapsedIf": "error",
|
|
418
424
|
"useComponentExportOnlyModules": "error",
|
|
419
425
|
"useConsistentArrayType": {
|
|
420
|
-
"
|
|
426
|
+
"fix": "none",
|
|
427
|
+
"level": "error",
|
|
421
428
|
"options": {
|
|
422
429
|
"syntax": "shorthand"
|
|
423
430
|
}
|
|
424
431
|
},
|
|
425
432
|
"useConsistentArrowReturn": "error",
|
|
426
433
|
"useConsistentBuiltinInstantiation": "error",
|
|
427
|
-
"useConsistentCurlyBraces": "
|
|
434
|
+
"useConsistentCurlyBraces": { "fix": "none", "level": "error" },
|
|
428
435
|
"useConsistentEnumValueType": "error",
|
|
429
436
|
"useConsistentMemberAccessibility": {
|
|
430
437
|
"level": "error",
|
|
@@ -534,7 +541,7 @@
|
|
|
534
541
|
"noEmptyBlockStatements": "error",
|
|
535
542
|
"noEmptyInterface": "error",
|
|
536
543
|
"noEmptySource": "error",
|
|
537
|
-
"noEqualsToNull": "
|
|
544
|
+
"noEqualsToNull": { "fix": "none", "level": "error" },
|
|
538
545
|
"noEvolvingTypes": "error",
|
|
539
546
|
"noExplicitAny": "error",
|
|
540
547
|
"noExportsInTest": "error",
|
|
@@ -571,7 +578,7 @@
|
|
|
571
578
|
"noShadow": "error",
|
|
572
579
|
"noShadowRestrictedNames": "error",
|
|
573
580
|
"noShorthandPropertyOverrides": "error",
|
|
574
|
-
"noSkippedTests": "
|
|
581
|
+
"noSkippedTests": { "fix": "none", "level": "error" },
|
|
575
582
|
"noSparseArray": "error",
|
|
576
583
|
"noSuspiciousSemicolonInJsx": "error",
|
|
577
584
|
"noTemplateCurlyInString": "error",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeEffectCall.d.ts","sourceRoot":"","sources":["../../src/biome/nativeEffectCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAyB1C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,CAkB5G"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
function importedFrom(node, module) {
|
|
3
|
+
for (let current = node; current !== undefined; current = current.parent) {
|
|
4
|
+
if (ts.isImportDeclaration(current)) {
|
|
5
|
+
return !current.importClause?.isTypeOnly && ts.isStringLiteral(current.moduleSpecifier) && current.moduleSpecifier.text === module;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
function effectNamespace(node, checker) {
|
|
11
|
+
if (!ts.isIdentifier(node)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return (checker.getSymbolAtLocation(node)?.declarations ?? []).some((declaration) => (ts.isImportSpecifier(declaration)
|
|
15
|
+
&& !declaration.isTypeOnly
|
|
16
|
+
&& (declaration.propertyName ?? declaration.name).text === "Effect"
|
|
17
|
+
&& importedFrom(declaration, "effect"))
|
|
18
|
+
|| (ts.isNamespaceImport(declaration) && importedFrom(declaration, "effect/Effect")));
|
|
19
|
+
}
|
|
20
|
+
export function nativeEffectCall(node, name, { checker }) {
|
|
21
|
+
if (!ts.isCallExpression(node)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const callee = node.expression;
|
|
25
|
+
if (ts.isPropertyAccessExpression(callee)) {
|
|
26
|
+
return callee.name.text === name && effectNamespace(callee.expression, checker);
|
|
27
|
+
}
|
|
28
|
+
return (ts.isIdentifier(callee)
|
|
29
|
+
&& (checker.getSymbolAtLocation(callee)?.declarations ?? []).some((declaration) => ts.isImportSpecifier(declaration)
|
|
30
|
+
&& !declaration.isTypeOnly
|
|
31
|
+
&& (declaration.propertyName ?? declaration.name).text === name
|
|
32
|
+
&& importedFrom(declaration, "effect/Effect")));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=nativeEffectCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeEffectCall.js","sourceRoot":"","sources":["../../src/biome/nativeEffectCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,SAAS,YAAY,CAAC,IAAa,EAAE,MAAc;IAClD,KAAK,IAAI,OAAO,GAAwB,IAAI,EAAE,OAAO,KAAK,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/F,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,IAAI,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,KAAK,MAAM,CAAC;QACpI,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAmB,EAAE,OAAuB;IACpE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAClE,CAAC,WAAW,EAAE,EAAE,CACf,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC;WAC9B,CAAC,WAAW,CAAC,UAAU;WACvB,CAAC,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;WAChE,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;WACrC,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CACrF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAa,EAAE,IAAY,EAAE,EAAE,OAAO,EAAU;IAChF,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,IAAI,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,CACN,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;WACpB,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAChE,CAAC,WAAW,EAAE,EAAE,CACf,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC;eAC9B,CAAC,WAAW,CAAC,UAAU;eACvB,CAAC,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;eAC5D,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,CAC9C,CACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recognizeDiagnostics.d.ts","sourceRoot":"","sources":["../../src/biome/recognizeDiagnostics.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmD9C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,UAAU,EAAE,CAY5G"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { nativeEffectCall } from "./nativeEffectCall.js";
|
|
4
|
+
import { nodeAt, offsetOf, syntaxOf } from "./syntax.js";
|
|
5
|
+
const RECOGNIZED = new Set(["lint/nursery/noComponentHookFactories", "lint/style/noDoneCallback"]);
|
|
6
|
+
function generatorParameter(node) {
|
|
7
|
+
const parameter = node.parent;
|
|
8
|
+
const callback = parameter.parent;
|
|
9
|
+
return (ts.isParameter(parameter)
|
|
10
|
+
&& parameter.name === node
|
|
11
|
+
&& ts.isFunctionExpression(callback)
|
|
12
|
+
&& callback.asteriskToken !== undefined
|
|
13
|
+
&& ts.isCallExpression(callback.parent)
|
|
14
|
+
&& callback.parent.arguments.includes(callback));
|
|
15
|
+
}
|
|
16
|
+
function tagHandler(node, syntax) {
|
|
17
|
+
const property = node.parent;
|
|
18
|
+
if (!ts.isPropertyAssignment(property) || property.name !== node || !ts.isObjectLiteralExpression(property.parent)) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
const handlers = property.parent;
|
|
22
|
+
const call = handlers.parent;
|
|
23
|
+
return (nativeEffectCall(call, "catchTags", syntax)
|
|
24
|
+
&& call.arguments.includes(handlers)
|
|
25
|
+
&& ts.isArrowFunction(property.initializer)
|
|
26
|
+
&& nativeEffectCall(property.initializer.body, "fail", syntax));
|
|
27
|
+
}
|
|
28
|
+
function misclassified(diagnostic, syntax) {
|
|
29
|
+
const { start, end } = diagnostic.location;
|
|
30
|
+
const from = start === undefined ? undefined : offsetOf(syntax.source, start);
|
|
31
|
+
const to = end === undefined ? undefined : offsetOf(syntax.source, end);
|
|
32
|
+
const node = from === undefined || to === undefined ? undefined : nodeAt(syntax.source, from, to);
|
|
33
|
+
if (node === undefined) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
switch (diagnostic.category) {
|
|
37
|
+
case "lint/style/noDoneCallback":
|
|
38
|
+
return generatorParameter(node);
|
|
39
|
+
case "lint/nursery/noComponentHookFactories":
|
|
40
|
+
return tagHandler(node, syntax);
|
|
41
|
+
default:
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export function recognizeDiagnostics(root, diagnostics) {
|
|
46
|
+
const sources = new Map();
|
|
47
|
+
return diagnostics.filter((diagnostic) => {
|
|
48
|
+
const path = diagnostic.location.path;
|
|
49
|
+
if (!RECOGNIZED.has(diagnostic.category ?? "") || path === undefined) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
const file = resolve(root, path);
|
|
53
|
+
const syntax = sources.get(file) ?? syntaxOf(file);
|
|
54
|
+
sources.set(file, syntax);
|
|
55
|
+
return !misclassified(diagnostic, syntax);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=recognizeDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recognizeDiagnostics.js","sourceRoot":"","sources":["../../src/biome/recognizeDiagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/biome/report.d.ts
CHANGED
|
@@ -2,8 +2,13 @@ import { Schema } from "effect";
|
|
|
2
2
|
declare const Diagnostic: Schema.Struct<{
|
|
3
3
|
readonly category: Schema.optionalKey<Schema.String>;
|
|
4
4
|
readonly location: Schema.Struct<{
|
|
5
|
+
readonly end: Schema.optionalKey<Schema.Struct<{
|
|
6
|
+
readonly column: Schema.optionalKey<Schema.Int>;
|
|
7
|
+
readonly line: Schema.Int;
|
|
8
|
+
}>>;
|
|
5
9
|
readonly path: Schema.optionalKey<Schema.String>;
|
|
6
10
|
readonly start: Schema.optionalKey<Schema.Struct<{
|
|
11
|
+
readonly column: Schema.optionalKey<Schema.Int>;
|
|
7
12
|
readonly line: Schema.Int;
|
|
8
13
|
}>>;
|
|
9
14
|
}>;
|
|
@@ -15,8 +20,13 @@ declare const Report: Schema.Struct<{
|
|
|
15
20
|
readonly diagnostics: Schema.$Array<Schema.Struct<{
|
|
16
21
|
readonly category: Schema.optionalKey<Schema.String>;
|
|
17
22
|
readonly location: Schema.Struct<{
|
|
23
|
+
readonly end: Schema.optionalKey<Schema.Struct<{
|
|
24
|
+
readonly column: Schema.optionalKey<Schema.Int>;
|
|
25
|
+
readonly line: Schema.Int;
|
|
26
|
+
}>>;
|
|
18
27
|
readonly path: Schema.optionalKey<Schema.String>;
|
|
19
28
|
readonly start: Schema.optionalKey<Schema.Struct<{
|
|
29
|
+
readonly column: Schema.optionalKey<Schema.Int>;
|
|
20
30
|
readonly line: Schema.Int;
|
|
21
31
|
}>>;
|
|
22
32
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/biome/report.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/biome/report.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhC,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;EAKd,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAEhD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;EAGV,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAkBxC,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAYxF"}
|
package/dist/biome/report.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { relative, sep } from "node:path";
|
|
1
2
|
import { Schema } from "effect";
|
|
3
|
+
import { ignoredTrackedPaths } from "#inventory/trackedPaths.ts";
|
|
4
|
+
import { recognizeDiagnostics } from "./recognizeDiagnostics.js";
|
|
2
5
|
import { runBiome } from "./run.js";
|
|
3
|
-
const Position = Schema.Struct({ line: Schema.Int });
|
|
6
|
+
const Position = Schema.Struct({ column: Schema.optionalKey(Schema.Int), line: Schema.Int });
|
|
4
7
|
const Diagnostic = Schema.Struct({
|
|
5
8
|
category: Schema.optionalKey(Schema.String),
|
|
6
|
-
location: Schema.Struct({ path: Schema.optionalKey(Schema.String), start: Schema.optionalKey(Position) }),
|
|
9
|
+
location: Schema.Struct({ end: Schema.optionalKey(Position), path: Schema.optionalKey(Schema.String), start: Schema.optionalKey(Position) }),
|
|
7
10
|
message: Schema.String,
|
|
8
11
|
severity: Schema.String,
|
|
9
12
|
});
|
|
@@ -12,9 +15,11 @@ const Report = Schema.Struct({
|
|
|
12
15
|
summary: Schema.Struct({ changed: Schema.Int }),
|
|
13
16
|
});
|
|
14
17
|
const decodeReport = Schema.decodeUnknownOption(Schema.fromJsonString(Report));
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
function failure(args, run) {
|
|
19
|
+
return new Error(`biome ${args.join(" ")} exited ${run.code} without a report:\n${[run.stdout, run.stderr].join("\n").trim()}`);
|
|
20
|
+
}
|
|
21
|
+
async function reportFor(root, args, paths) {
|
|
22
|
+
const command = [...args, "--reporter=json", "--max-diagnostics=none", ...paths];
|
|
18
23
|
const run = await runBiome(root, command);
|
|
19
24
|
const report = decodeReport(run.stdout.trim());
|
|
20
25
|
if (report._tag === "None") {
|
|
@@ -22,4 +27,17 @@ export async function biomeReport(root, args) {
|
|
|
22
27
|
}
|
|
23
28
|
return report.value;
|
|
24
29
|
}
|
|
30
|
+
export async function biomeReport(root, args) {
|
|
31
|
+
const [report, tracked] = await Promise.all([reportFor(root, args, ["."]), ignoredTrackedPaths(root)]);
|
|
32
|
+
const paths = tracked
|
|
33
|
+
.map((path) => relative(root, path))
|
|
34
|
+
.filter((path) => !path.split(sep).some((part) => part === ".git" || part === "node_modules"));
|
|
35
|
+
const extra = paths.length === 0 ? undefined : await reportFor(root, [...args, "--vcs-enabled=false"], paths);
|
|
36
|
+
const diagnostics = [...report.diagnostics, ...(extra?.diagnostics ?? [])];
|
|
37
|
+
const unique = [...new Map(diagnostics.map((diagnostic) => [JSON.stringify(diagnostic), diagnostic])).values()];
|
|
38
|
+
return {
|
|
39
|
+
diagnostics: recognizeDiagnostics(root, unique),
|
|
40
|
+
summary: { changed: report.summary.changed + (extra?.summary.changed ?? 0) },
|
|
41
|
+
};
|
|
42
|
+
}
|
|
25
43
|
//# sourceMappingURL=report.js.map
|
package/dist/biome/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/biome/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAiB,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/biome/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
export interface Syntax {
|
|
3
|
+
readonly checker: ts.TypeChecker;
|
|
4
|
+
readonly source: ts.SourceFile;
|
|
5
|
+
}
|
|
6
|
+
export declare function syntaxOf(path: string): Syntax;
|
|
7
|
+
export declare function offsetOf(source: ts.SourceFile, position: {
|
|
8
|
+
readonly line: number;
|
|
9
|
+
readonly column?: number;
|
|
10
|
+
}): number | undefined;
|
|
11
|
+
export declare function nodeAt(source: ts.SourceFile, start: number, end: number): ts.Node | undefined;
|
|
12
|
+
//# sourceMappingURL=syntax.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/biome/syntax.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC;CAC/B;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAQjI;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,IAAI,GAAG,SAAS,CAQ7F"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
export function syntaxOf(path) {
|
|
4
|
+
const source = ts.createSourceFile(path, readFileSync(path, "utf8"), ts.ScriptTarget.Latest, true);
|
|
5
|
+
const options = { allowJs: true, noLib: true, noResolve: true };
|
|
6
|
+
const host = ts.createCompilerHost(options);
|
|
7
|
+
host.getSourceFile = (file) => (file === path ? source : undefined);
|
|
8
|
+
const program = ts.createProgram([path], options, host);
|
|
9
|
+
return { checker: program.getTypeChecker(), source };
|
|
10
|
+
}
|
|
11
|
+
export function offsetOf(source, position) {
|
|
12
|
+
const start = source.getLineStarts()[position.line - 1];
|
|
13
|
+
if (start === undefined || position.column === undefined || position.column < 1) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const line = source.text.slice(start, source.getLineStarts()[position.line] ?? source.text.length);
|
|
17
|
+
const characters = [...line];
|
|
18
|
+
return position.column <= characters.length + 1 ? start + characters.slice(0, position.column - 1).join("").length : undefined;
|
|
19
|
+
}
|
|
20
|
+
export function nodeAt(source, start, end) {
|
|
21
|
+
function visit(node) {
|
|
22
|
+
if (node.getStart(source) > start || node.end < end) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
return ts.forEachChild(node, visit) ?? (node.getStart(source) === start && node.end === end ? node : undefined);
|
|
26
|
+
}
|
|
27
|
+
return visit(source);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=syntax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax.js","sourceRoot":"","sources":["../../src/biome/syntax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,YAAY,CAAC;AAO5B,MAAM,UAAU,QAAQ,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnG,MAAM,OAAO,GAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpF,MAAM,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAqB,EAAE,QAA6D;IAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjF,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnG,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChI,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAqB,EAAE,KAAa,EAAE,GAAW;IACvE,SAAS,KAAK,CAAC,IAAa;QAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
|
package/dist/cli/args.d.ts
CHANGED
|
@@ -41,6 +41,6 @@ export type Parsed = {
|
|
|
41
41
|
readonly _tag: "Usage";
|
|
42
42
|
readonly problem: string;
|
|
43
43
|
};
|
|
44
|
-
export declare const USAGE = "Usage:\n quality lint [--config <file>] [--warnings summary|all]\n quality fix [--config <file>]\n quality baseline write [--config <file>] [--rule <id>]...\n quality baseline prune [--config <file>] [--against <ref>]\n quality baseline tighten [--config <file>] [--staged]\n quality baseline migrate [--config <file>] [--from <file>]\n quality hooks install [--config <file>] [--force]\n quality hooks uninstall\n quality hooks pre-commit [--config <file>]\n\nlint Run every rule. Exits 1 on an error-level violation, a file over its baseline, a stale registry entry\n or a baseline entry for a rule that is off or unknown.\nfix Sort every package.json, apply Biome's lint fixes, unsafe ones included, its assist actions and formatting, then format again.\nbaseline write Record current error-level violations. Creates the baseline, or records the named rules again, replacing their entries.\nbaseline prune Drop fixed debt, lower entries to what is left and carry entries to files git saw move. Never adds or raises an entry.\nbaseline tighten Prune only the entries of files changed since HEAD, or with --staged, in the index.\nbaseline migrate Move a baseline from the earlier JSON format (--from, quality/baseline.json by default) to the configured file.\nhooks install Install the git pre-commit hook, shared by every worktree, that runs hooks pre-commit. Keeps a hook that is not quality's\n unless --force replaces it.\nhooks uninstall Remove quality's pre-commit hook. Keeps a hook that is not quality's.\nhooks pre-commit What the hook runs:
|
|
44
|
+
export declare const USAGE = "Usage:\n quality lint [--config <file>] [--warnings summary|all]\n quality fix [--config <file>]\n quality baseline write [--config <file>] [--rule <id>]...\n quality baseline prune [--config <file>] [--against <ref>]\n quality baseline tighten [--config <file>] [--staged]\n quality baseline migrate [--config <file>] [--from <file>]\n quality hooks install [--config <file>] [--force]\n quality hooks uninstall\n quality hooks pre-commit [--config <file>]\n\nlint Run every rule. Exits 1 on an error-level violation, a file over its baseline, a stale registry entry\n or a baseline entry for a rule that is off or unknown.\nfix Sort every package.json, apply Biome's lint fixes, unsafe ones included, its assist actions and formatting, then format again.\nbaseline write Record current error-level violations. Creates the baseline, or records the named rules again, replacing their entries.\nbaseline prune Drop fixed debt, lower entries to what is left and carry entries to files git saw move. Never adds or raises an entry.\nbaseline tighten Prune only the entries of files changed since HEAD, or with --staged, in the index.\nbaseline migrate Move a baseline from the earlier JSON format (--from, quality/baseline.json by default) to the configured file.\nhooks install Install the git pre-commit hook, shared by every worktree, that runs hooks pre-commit. Keeps a hook that is not quality's\n unless --force replaces it.\nhooks uninstall Remove quality's pre-commit hook. Keeps a hook that is not quality's.\nhooks pre-commit What the hook runs: lint, then package.json scripts typecheck and quality:commit when present.\n\n--config <file> Config file; its directory is the repository root. Without this option, uses ./quality.config.ts when present, otherwise defaults.\n--against <ref> The branch the work merges into, whose merge base prune follows moves from. Defaults to origin/HEAD, then origin/main, then origin/master.\nExit codes: 0 passed, 1 failed the gate, 2 could not run.";
|
|
45
45
|
export declare const parseCommand: (args: readonly string[]) => Parsed;
|
|
46
46
|
//# sourceMappingURL=args.d.ts.map
|
package/dist/cli/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,OAAO,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC1G;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7G;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACnG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5G;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnI,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,OAAO,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC1G;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7G;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACnG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5G;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnI,eAAO,MAAM,KAAK,miEAyBwC,CAAC;AAgF3D,eAAO,MAAM,YAAY,SAAU,SAAS,MAAM,EAAE,KAAG,MAuBtD,CAAC"}
|
package/dist/cli/args.js
CHANGED
|
@@ -21,9 +21,9 @@ baseline migrate Move a baseline from the earlier JSON format (--from, quality/
|
|
|
21
21
|
hooks install Install the git pre-commit hook, shared by every worktree, that runs hooks pre-commit. Keeps a hook that is not quality's
|
|
22
22
|
unless --force replaces it.
|
|
23
23
|
hooks uninstall Remove quality's pre-commit hook. Keeps a hook that is not quality's.
|
|
24
|
-
hooks pre-commit What the hook runs:
|
|
24
|
+
hooks pre-commit What the hook runs: lint, then package.json scripts typecheck and quality:commit when present.
|
|
25
25
|
|
|
26
|
-
--config <file> Config file; its directory is the repository root.
|
|
26
|
+
--config <file> Config file; its directory is the repository root. Without this option, uses ./quality.config.ts when present, otherwise defaults.
|
|
27
27
|
--against <ref> The branch the work merges into, whose merge base prune follows moves from. Defaults to origin/HEAD, then origin/main, then origin/master.
|
|
28
28
|
Exit codes: 0 passed, 1 failed the gate, 2 could not run.`;
|
|
29
29
|
const OPTIONS = {
|
package/dist/cli/baseline.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import { type Scope } from "#baseline/update.ts";
|
|
|
3
3
|
import { type Session } from "#engine/session.ts";
|
|
4
4
|
import { SetupFailure } from "#failure.ts";
|
|
5
5
|
export declare const writeBaseline: (cwd: string, config: string | undefined, rules: readonly string[]) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem>;
|
|
6
|
-
export declare const shrinkBaseline: <
|
|
6
|
+
export declare const shrinkBaseline: <TRequirements>(cwd: string, config: string | undefined, scopeOf: (session: Session) => Effect.Effect<Scope, SetupFailure, TRequirements>) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem | TRequirements>;
|
|
7
7
|
//# sourceMappingURL=baseline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY3C,eAAO,MAAM,aAAa,QACpB,MAAM,UACH,MAAM,GAAG,SAAS,SACnB,SAAS,MAAM,EAAE,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAcvD,CAAC;AAWJ,eAAO,MAAM,cAAc,GAAI,
|
|
1
|
+
{"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY3C,eAAO,MAAM,aAAa,QACpB,MAAM,UACH,MAAM,GAAG,SAAS,SACnB,SAAS,MAAM,EAAE,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAcvD,CAAC;AAWJ,eAAO,MAAM,cAAc,GAAI,aAAa,OACtC,MAAM,UACH,MAAM,GAAG,SAAS,WACjB,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,KAC9E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,GAAG,aAAa,CAYvE,CAAC"}
|
package/dist/cli/baseline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/fix.d.ts
CHANGED
|
@@ -2,14 +2,14 @@ import { Effect, FileSystem } from "effect";
|
|
|
2
2
|
import { SetupFailure } from "#failure.ts";
|
|
3
3
|
export declare const MAX_FIX_ROUNDS = 5;
|
|
4
4
|
export declare function snapshotOf(root: string): Effect.Effect<ReadonlyMap<string, string>, SetupFailure, FileSystem.FileSystem>;
|
|
5
|
-
export interface Pass<
|
|
5
|
+
export interface Pass<TFailure, TRequirements> {
|
|
6
6
|
readonly label: string;
|
|
7
|
-
readonly run: Effect.Effect<number,
|
|
7
|
+
readonly run: Effect.Effect<number, TFailure, TRequirements>;
|
|
8
8
|
}
|
|
9
|
-
export interface Settling<
|
|
10
|
-
readonly passes:
|
|
11
|
-
readonly snapshot: Effect.Effect<ReadonlyMap<string, string>,
|
|
9
|
+
export interface Settling<TFailure, TRequirements> {
|
|
10
|
+
readonly passes: readonly Pass<TFailure, TRequirements>[];
|
|
11
|
+
readonly snapshot: Effect.Effect<ReadonlyMap<string, string>, TFailure, TRequirements>;
|
|
12
12
|
}
|
|
13
|
-
export declare function settle<
|
|
13
|
+
export declare function settle<TFailure, TRequirements>({ passes, snapshot, }: Settling<TFailure, TRequirements>): Effect.Effect<void, TFailure | SetupFailure, TRequirements>;
|
|
14
14
|
export declare function fix(cwd: string, config: string | undefined): Effect.Effect<void, SetupFailure, FileSystem.FileSystem>;
|
|
15
15
|
//# sourceMappingURL=fix.d.ts.map
|
package/dist/cli/fix.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,eAAO,MAAM,cAAc,IAAI,CAAC;AAahC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAUxH;AAED,MAAM,WAAW,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,eAAO,MAAM,cAAc,IAAI,CAAC;AAahC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAUxH;AAED,MAAM,WAAW,IAAI,CAAC,QAAQ,EAAE,aAAa;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,QAAQ,CAAC,QAAQ,EAAE,aAAa;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;CACvF;AAsDD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,EAC/C,MAAM,EACN,QAAQ,GACR,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,EAAE,aAAa,CAAC,CAoBjG;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAOrH"}
|
package/dist/cli/fix.js
CHANGED
|
@@ -65,7 +65,7 @@ function unsettled(changed) {
|
|
|
65
65
|
"Run `biome check --write --unsafe --verbose` to name them.",
|
|
66
66
|
];
|
|
67
67
|
return new SetupFailure({
|
|
68
|
-
message: [...named, "Two fixes probably undo each other there.
|
|
68
|
+
message: [...named, "Two fixes probably undo each other there. Repair the conflicting code by hand so both checks pass."].join("\n"),
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
export function settle({ passes, snapshot, }) {
|
package/dist/cli/fix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,SAAS,KAAK,CAAC,IAAY,EAAE,IAAuB;IACnD,OAAO,MAAM,CAAC,UAAU,CAAC;QACxB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACvG,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;KAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB;IAClC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CACnD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAU,CAAC,CAAC,CAAC,CAClI,CAAC;QACF,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAYD,SAAS,SAAS,CAAC,IAAY,EAAE,IAAuB;IACvD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAChC,OAAO;QACN;YACC,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oCAAoC,EAAE,8CAA8C,CAAC,CAAC;SAC5I;QACD,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE;KAC9E,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CACb,
|
|
1
|
+
{"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,SAAS,KAAK,CAAC,IAAY,EAAE,IAAuB;IACnD,OAAO,MAAM,CAAC,UAAU,CAAC;QACxB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACvG,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;KAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB;IAClC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CACnD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAU,CAAC,CAAC,CAAC,CAClI,CAAC;QACF,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAYD,SAAS,SAAS,CAAC,IAAY,EAAE,IAAuB;IACvD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAChC,OAAO;QACN;YACC,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oCAAoC,EAAE,8CAA8C,CAAC,CAAC;SAC5I;QACD,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE;KAC9E,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CACb,MAAgD,EAChD,KAAa,EACb,aAA2D;IAE3D,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAChC,KAAK,IAAI,OAAO,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACvD,KAAK,CAAC,CAAC,aAAa,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAmC,EAAE,KAAkC;IAC9F,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACjH,CAAC;AAED,SAAS,SAAS,CAAC,OAA4B;IAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,mCAAmC,cAAc,kCAAkC,CAAC;IACpG,MAAM,KAAK,GACV,KAAK,CAAC,MAAM,GAAG,CAAC;QACf,CAAC,CAAC,CAAC,GAAG,OAAO,yCAAyC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5F,CAAC,CAAC;YACA,GAAG,OAAO,6GAA6G;YACvH,4DAA4D;SAC5D,CAAC;IACL,OAAO,IAAI,YAAY,CAAC;QACvB,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,oGAAoG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KACpI,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAA0B,EAC/C,MAAM,EACN,QAAQ,GAC2B;IACnC,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,OAAO;YACR,CAAC;QACF,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YAC/C,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,QAAQ,GAAG,OAAO,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO;QACR,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,MAA0B;IAC1D,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxH,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QACxF,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/cli/run-main.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ import type { EventEmitter } from "node:events";
|
|
|
2
2
|
import { Effect, type FileSystem } from "effect";
|
|
3
3
|
import type { Git } from "#git/command.ts";
|
|
4
4
|
export declare function quietOnClosedPipe(stream: EventEmitter): void;
|
|
5
|
-
export declare const runMain: <
|
|
5
|
+
export declare const runMain: <TValue, TError>(program: Effect.Effect<TValue, TError, FileSystem.FileSystem | Git>) => void;
|
|
6
6
|
//# sourceMappingURL=run-main.d.ts.map
|