@biomejs/biome 1.6.4 → 1.7.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
@@ -131,6 +131,9 @@ We use [Polar.sh](https://polar.sh/biomejs) to up-vote and promote specific feat
131
131
  <td align="center" valign="middle">
132
132
  <a href="https://nanabit.dev/" target="_blank"><img src="https://images.opencollective.com/nanabit/d15fd98/logo/256.png?height=80" width="80"></a>
133
133
  </td>
134
+ <td align="center" valign="middle">
135
+ <a href="https://vital.io/" target="_blank"><img src="https://avatars.githubusercontent.com/u/25357309?s=200" width="80"></a>
136
+ </td>
134
137
  </tr>
135
138
  </tbody>
136
139
  </table>
@@ -123,7 +123,7 @@
123
123
  ]
124
124
  },
125
125
  "noHeaderScope": {
126
- "description": "The scope prop should be used only on <th> elements.",
126
+ "description": "The scope prop should be used only on \\<th> elements.",
127
127
  "anyOf": [
128
128
  { "$ref": "#/definitions/RuleConfiguration" },
129
129
  { "type": "null" }
@@ -328,6 +328,13 @@
328
328
  { "type": "null" }
329
329
  ]
330
330
  },
331
+ "noExcessiveNestedTestSuites": {
332
+ "description": "This rule enforces a maximum depth to nested describe() in test files.",
333
+ "anyOf": [
334
+ { "$ref": "#/definitions/RuleConfiguration" },
335
+ { "type": "null" }
336
+ ]
337
+ },
331
338
  "noExtraBooleanCast": {
332
339
  "description": "Disallow unnecessary boolean casts",
333
340
  "anyOf": [
@@ -419,6 +426,13 @@
419
426
  { "type": "null" }
420
427
  ]
421
428
  },
429
+ "noUselessTernary": {
430
+ "description": "Disallow ternary operators when simpler alternatives exist.",
431
+ "anyOf": [
432
+ { "$ref": "#/definitions/RuleConfiguration" },
433
+ { "type": "null" }
434
+ ]
435
+ },
422
436
  "noUselessThisAlias": {
423
437
  "description": "Disallow useless this aliasing.",
424
438
  "anyOf": [
@@ -801,6 +815,13 @@
801
815
  { "type": "null" }
802
816
  ]
803
817
  },
818
+ "useJsxKeyInIterable": {
819
+ "description": "Disallow missing key props in iterators/collection literals.",
820
+ "anyOf": [
821
+ { "$ref": "#/definitions/RuleConfiguration" },
822
+ { "type": "null" }
823
+ ]
824
+ },
804
825
  "useValidForDirection": {
805
826
  "description": "Enforce \"for\" loop update clause moving the counter in the right direction.",
806
827
  "anyOf": [
@@ -1107,6 +1128,10 @@
1107
1128
  "description": "A list of global bindings that should be ignored by the analyzers\n\nIf defined here, they should not emit diagnostics.",
1108
1129
  "anyOf": [{ "$ref": "#/definitions/StringSet" }, { "type": "null" }]
1109
1130
  },
1131
+ "jsx_runtime": {
1132
+ "description": "Indicates the type of runtime or transformation used for interpreting JSX.",
1133
+ "anyOf": [{ "$ref": "#/definitions/JsxRuntime" }, { "type": "null" }]
1134
+ },
1110
1135
  "organize_imports": {
1111
1136
  "anyOf": [
1112
1137
  { "$ref": "#/definitions/JavascriptOrganizeImports" },
@@ -1301,6 +1326,21 @@
1301
1326
  },
1302
1327
  "additionalProperties": false
1303
1328
  },
1329
+ "JsxRuntime": {
1330
+ "description": "Indicates the type of runtime or transformation used for interpreting JSX.",
1331
+ "oneOf": [
1332
+ {
1333
+ "description": "Indicates a modern or native JSX environment, that doesn't require special handling by Biome.",
1334
+ "type": "string",
1335
+ "enum": ["Transparent"]
1336
+ },
1337
+ {
1338
+ "description": "Indicates a classic React environment that requires the `React` import.\n\nCorresponds to the `react` value for the `jsx` option in TypeScript's `tsconfig.json`.\n\nThis option should only be necessary if you cannot upgrade to a React version that supports the new JSX runtime. For more information about the old vs. new JSX runtime, please see: <https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html>",
1339
+ "type": "string",
1340
+ "enum": ["ReactClassic"]
1341
+ }
1342
+ ]
1343
+ },
1304
1344
  "LineEnding": {
1305
1345
  "oneOf": [
1306
1346
  {
@@ -1373,6 +1413,18 @@
1373
1413
  },
1374
1414
  "additionalProperties": false
1375
1415
  },
1416
+ "NoCssEmptyBlockConfiguration": {
1417
+ "anyOf": [
1418
+ { "$ref": "#/definitions/RulePlainConfiguration" },
1419
+ { "$ref": "#/definitions/RuleWithNoCssEmptyBlockOptions" }
1420
+ ]
1421
+ },
1422
+ "NoCssEmptyBlockOptions": {
1423
+ "type": "object",
1424
+ "required": ["allowComments"],
1425
+ "properties": { "allowComments": { "type": "boolean" } },
1426
+ "additionalProperties": false
1427
+ },
1376
1428
  "Nursery": {
1377
1429
  "description": "A list of rules that belong to this group",
1378
1430
  "type": "object",
@@ -1381,27 +1433,34 @@
1381
1433
  "description": "It enables ALL rules for this group.",
1382
1434
  "type": ["boolean", "null"]
1383
1435
  },
1384
- "noBarrelFile": {
1385
- "description": "Disallow the use of barrel file.",
1436
+ "noColorInvalidHex": {
1437
+ "description": "WIP: This rule hasn't been implemented yet.",
1386
1438
  "anyOf": [
1387
1439
  { "$ref": "#/definitions/RuleConfiguration" },
1388
1440
  { "type": "null" }
1389
1441
  ]
1390
1442
  },
1391
- "noColorInvalidHex": {
1392
- "description": "[WIP] This rule hasn't been implemented yet.",
1443
+ "noConsole": {
1444
+ "description": "Disallow the use of console.",
1393
1445
  "anyOf": [
1394
1446
  { "$ref": "#/definitions/RuleConfiguration" },
1395
1447
  { "type": "null" }
1396
1448
  ]
1397
1449
  },
1398
- "noConsole": {
1399
- "description": "Disallow the use of console.",
1450
+ "noConstantMathMinMaxClamp": {
1451
+ "description": "Disallow the use of Math.min and Math.max to clamp a value where the result itself is constant.",
1400
1452
  "anyOf": [
1401
1453
  { "$ref": "#/definitions/RuleConfiguration" },
1402
1454
  { "type": "null" }
1403
1455
  ]
1404
1456
  },
1457
+ "noCssEmptyBlock": {
1458
+ "description": "Disallow CSS empty blocks.",
1459
+ "anyOf": [
1460
+ { "$ref": "#/definitions/NoCssEmptyBlockConfiguration" },
1461
+ { "type": "null" }
1462
+ ]
1463
+ },
1405
1464
  "noDoneCallback": {
1406
1465
  "description": "Disallow using a callback in asynchronous tests and hooks.",
1407
1466
  "anyOf": [
@@ -1416,43 +1475,43 @@
1416
1475
  { "type": "null" }
1417
1476
  ]
1418
1477
  },
1419
- "noDuplicateJsonKeys": {
1420
- "description": "Disallow two keys with the same name inside a JSON object.",
1478
+ "noDuplicateFontNames": {
1479
+ "description": "Disallow duplicate names within font families.",
1421
1480
  "anyOf": [
1422
1481
  { "$ref": "#/definitions/RuleConfiguration" },
1423
1482
  { "type": "null" }
1424
1483
  ]
1425
1484
  },
1426
- "noDuplicateTestHooks": {
1427
- "description": "A describe block should not contain duplicate hooks.",
1485
+ "noDuplicateJsonKeys": {
1486
+ "description": "Disallow two keys with the same name inside a JSON object.",
1428
1487
  "anyOf": [
1429
1488
  { "$ref": "#/definitions/RuleConfiguration" },
1430
1489
  { "type": "null" }
1431
1490
  ]
1432
1491
  },
1433
- "noEvolvingAny": {
1434
- "description": "Disallow variables from evolving into any type through reassignments.",
1492
+ "noDuplicateSelectorsKeyframeBlock": {
1493
+ "description": "Disallow duplicate selectors within keyframe blocks.",
1435
1494
  "anyOf": [
1436
1495
  { "$ref": "#/definitions/RuleConfiguration" },
1437
1496
  { "type": "null" }
1438
1497
  ]
1439
1498
  },
1440
- "noExcessiveNestedTestSuites": {
1441
- "description": "This rule enforces a maximum depth to nested describe() in test files.",
1499
+ "noEvolvingAny": {
1500
+ "description": "Disallow variables from evolving into any type through reassignments.",
1442
1501
  "anyOf": [
1443
1502
  { "$ref": "#/definitions/RuleConfiguration" },
1444
1503
  { "type": "null" }
1445
1504
  ]
1446
1505
  },
1447
- "noExportsInTest": {
1448
- "description": "Disallow using export or module.exports in files containing tests",
1506
+ "noFlatMapIdentity": {
1507
+ "description": "Disallow to use unnecessary callback on flatMap.",
1449
1508
  "anyOf": [
1450
1509
  { "$ref": "#/definitions/RuleConfiguration" },
1451
1510
  { "type": "null" }
1452
1511
  ]
1453
1512
  },
1454
- "noFocusedTests": {
1455
- "description": "Disallow focused tests.",
1513
+ "noImportantInKeyframe": {
1514
+ "description": "Disallow invalid !important within keyframe declarations",
1456
1515
  "anyOf": [
1457
1516
  { "$ref": "#/definitions/RuleConfiguration" },
1458
1517
  { "type": "null" }
@@ -1465,13 +1524,6 @@
1465
1524
  { "type": "null" }
1466
1525
  ]
1467
1526
  },
1468
- "noNamespaceImport": {
1469
- "description": "Disallow the use of namespace imports.",
1470
- "anyOf": [
1471
- { "$ref": "#/definitions/RuleConfiguration" },
1472
- { "type": "null" }
1473
- ]
1474
- },
1475
1527
  "noNodejsModules": {
1476
1528
  "description": "Forbid the use of Node.js builtin modules.",
1477
1529
  "anyOf": [
@@ -1479,8 +1531,8 @@
1479
1531
  { "type": "null" }
1480
1532
  ]
1481
1533
  },
1482
- "noReExportAll": {
1483
- "description": "Avoid re-export all.",
1534
+ "noReactSpecificProps": {
1535
+ "description": "Prevents React-specific JSX properties from being used.",
1484
1536
  "anyOf": [
1485
1537
  { "$ref": "#/definitions/RuleConfiguration" },
1486
1538
  { "type": "null" }
@@ -1493,20 +1545,6 @@
1493
1545
  { "type": "null" }
1494
1546
  ]
1495
1547
  },
1496
- "noSkippedTests": {
1497
- "description": "Disallow disabled tests.",
1498
- "anyOf": [
1499
- { "$ref": "#/definitions/RuleConfiguration" },
1500
- { "type": "null" }
1501
- ]
1502
- },
1503
- "noSuspiciousSemicolonInJsx": {
1504
- "description": "It detects possible \"wrong\" semicolons inside JSX elements.",
1505
- "anyOf": [
1506
- { "$ref": "#/definitions/RuleConfiguration" },
1507
- { "type": "null" }
1508
- ]
1509
- },
1510
1548
  "noUndeclaredDependencies": {
1511
1549
  "description": "Disallow the use of dependencies that aren't specified in the package.json.",
1512
1550
  "anyOf": [
@@ -1514,13 +1552,6 @@
1514
1552
  { "type": "null" }
1515
1553
  ]
1516
1554
  },
1517
- "noUselessTernary": {
1518
- "description": "Disallow ternary operators when simpler alternatives exist.",
1519
- "anyOf": [
1520
- { "$ref": "#/definitions/RuleConfiguration" },
1521
- { "type": "null" }
1522
- ]
1523
- },
1524
1555
  "recommended": {
1525
1556
  "description": "It enables the recommended rules for this group",
1526
1557
  "type": ["boolean", "null"]
@@ -1532,20 +1563,6 @@
1532
1563
  { "type": "null" }
1533
1564
  ]
1534
1565
  },
1535
- "useJsxKeyInIterable": {
1536
- "description": "Disallow missing key props in iterators/collection literals.",
1537
- "anyOf": [
1538
- { "$ref": "#/definitions/RuleConfiguration" },
1539
- { "type": "null" }
1540
- ]
1541
- },
1542
- "useNodeAssertStrict": {
1543
- "description": "Promotes the usage of node:assert/strict over node:assert.",
1544
- "anyOf": [
1545
- { "$ref": "#/definitions/RuleConfiguration" },
1546
- { "type": "null" }
1547
- ]
1548
- },
1549
1566
  "useSortedClasses": {
1550
1567
  "description": "Enforce the sorting of CSS utility classes.",
1551
1568
  "anyOf": [
@@ -1579,16 +1596,14 @@
1579
1596
  "properties": {
1580
1597
  "attributePosition": {
1581
1598
  "description": "The attribute position style.",
1582
- "default": null,
1583
1599
  "anyOf": [
1584
1600
  { "$ref": "#/definitions/AttributePosition" },
1585
1601
  { "type": "null" }
1586
1602
  ]
1587
1603
  },
1588
- "enabled": { "default": null, "type": ["boolean", "null"] },
1604
+ "enabled": { "type": ["boolean", "null"] },
1589
1605
  "formatWithErrors": {
1590
1606
  "description": "Stores whether formatting should be allowed to proceed if a given file has syntax errors",
1591
- "default": null,
1592
1607
  "type": ["boolean", "null"]
1593
1608
  },
1594
1609
  "indentSize": {
@@ -1616,7 +1631,6 @@
1616
1631
  },
1617
1632
  "lineWidth": {
1618
1633
  "description": "What's the max width of a line. Defaults to 80.",
1619
- "default": 80,
1620
1634
  "anyOf": [{ "$ref": "#/definitions/LineWidth" }, { "type": "null" }]
1621
1635
  }
1622
1636
  },
@@ -1721,6 +1735,13 @@
1721
1735
  { "type": "null" }
1722
1736
  ]
1723
1737
  },
1738
+ "noBarrelFile": {
1739
+ "description": "Disallow the use of barrel file.",
1740
+ "anyOf": [
1741
+ { "$ref": "#/definitions/RuleConfiguration" },
1742
+ { "type": "null" }
1743
+ ]
1744
+ },
1724
1745
  "noDelete": {
1725
1746
  "description": "Disallow the use of the delete operator.",
1726
1747
  "anyOf": [
@@ -1728,6 +1749,13 @@
1728
1749
  { "type": "null" }
1729
1750
  ]
1730
1751
  },
1752
+ "noReExportAll": {
1753
+ "description": "Avoid re-export all.",
1754
+ "anyOf": [
1755
+ { "$ref": "#/definitions/RuleConfiguration" },
1756
+ { "type": "null" }
1757
+ ]
1758
+ },
1731
1759
  "recommended": {
1732
1760
  "description": "It enables the recommended rules for this group",
1733
1761
  "type": ["boolean", "null"]
@@ -1845,12 +1873,20 @@
1845
1873
  },
1846
1874
  "additionalProperties": false
1847
1875
  },
1848
- "RuleWithNoOptions": {
1876
+ "RuleWithNoCssEmptyBlockOptions": {
1849
1877
  "type": "object",
1850
1878
  "required": ["level", "options"],
1851
1879
  "properties": {
1852
1880
  "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1853
- "options": { "type": "null" }
1881
+ "options": { "$ref": "#/definitions/NoCssEmptyBlockOptions" }
1882
+ },
1883
+ "additionalProperties": false
1884
+ },
1885
+ "RuleWithNoOptions": {
1886
+ "type": "object",
1887
+ "required": ["level"],
1888
+ "properties": {
1889
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" }
1854
1890
  },
1855
1891
  "additionalProperties": false
1856
1892
  },
@@ -1968,26 +2004,19 @@
1968
2004
  "StableHookResult": {
1969
2005
  "oneOf": [
1970
2006
  {
1971
- "description": "Used to indicate the hook does not have a stable result.",
1972
- "type": "string",
1973
- "enum": ["None"]
1974
- },
1975
- {
1976
- "description": "Used to indicate the identity of the result value is stable.\n\nNote this does not imply internal stability. For instance, the ref objects returned by React's `useRef()` always have a stable identity, but their internal value may be mutable.",
1977
- "type": "string",
1978
- "enum": ["Identity"]
2007
+ "description": "Whether the hook has a stable result.",
2008
+ "type": "boolean"
1979
2009
  },
1980
2010
  {
1981
- "description": "Used to indicate the hook returns an array and some of its indices have stable identities.\n\nFor example, React's `useState()` hook returns a stable function at index 1.",
1982
- "type": "object",
1983
- "required": ["Indices"],
1984
- "properties": {
1985
- "Indices": {
1986
- "type": "array",
1987
- "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }
1988
- }
2011
+ "description": "Used to indicate the hook returns an array and some of its indices have stable identities.",
2012
+ "type": "array",
2013
+ "items": {
2014
+ "type": "integer",
2015
+ "format": "uint8",
2016
+ "maximum": 255.0,
2017
+ "minimum": 0.0
1989
2018
  },
1990
- "additionalProperties": false
2019
+ "minItems": 1
1991
2020
  }
1992
2021
  ]
1993
2022
  },
@@ -2046,6 +2075,13 @@
2046
2075
  { "type": "null" }
2047
2076
  ]
2048
2077
  },
2078
+ "noNamespaceImport": {
2079
+ "description": "Disallow the use of namespace imports.",
2080
+ "anyOf": [
2081
+ { "$ref": "#/definitions/RuleConfiguration" },
2082
+ { "type": "null" }
2083
+ ]
2084
+ },
2049
2085
  "noNegationElse": {
2050
2086
  "description": "Disallow negation in the condition of an if statement if it has an else clause.",
2051
2087
  "anyOf": [
@@ -2135,7 +2171,7 @@
2135
2171
  ]
2136
2172
  },
2137
2173
  "useConsistentArrayType": {
2138
- "description": "Require consistently using either T[] or Array<T>",
2174
+ "description": "Require consistently using either T\\[] or Array\\<T>",
2139
2175
  "anyOf": [
2140
2176
  { "$ref": "#/definitions/ConsistentArrayTypeConfiguration" },
2141
2177
  { "type": "null" }
@@ -2191,7 +2227,7 @@
2191
2227
  ]
2192
2228
  },
2193
2229
  "useFragmentSyntax": {
2194
- "description": "This rule enforces the use of <>...</> over <Fragment>...</Fragment>.",
2230
+ "description": "This rule enforces the use of \\<>...\\</> over \\<Fragment>...\\</Fragment>.",
2195
2231
  "anyOf": [
2196
2232
  { "$ref": "#/definitions/RuleConfiguration" },
2197
2233
  { "type": "null" }
@@ -2218,6 +2254,13 @@
2218
2254
  { "type": "null" }
2219
2255
  ]
2220
2256
  },
2257
+ "useNodeAssertStrict": {
2258
+ "description": "Promotes the usage of node:assert/strict over node:assert.",
2259
+ "anyOf": [
2260
+ { "$ref": "#/definitions/RuleConfiguration" },
2261
+ { "type": "null" }
2262
+ ]
2263
+ },
2221
2264
  "useNodejsImportProtocol": {
2222
2265
  "description": "Enforces using the node: protocol for Node.js builtin modules.",
2223
2266
  "anyOf": [
@@ -2247,7 +2290,7 @@
2247
2290
  ]
2248
2291
  },
2249
2292
  "useShorthandArrayType": {
2250
- "description": "When expressing array types, this rule promotes the usage of T[] shorthand instead of Array<T>.",
2293
+ "description": "When expressing array types, this rule promotes the usage of T\\[] shorthand instead of Array\\<T>.",
2251
2294
  "anyOf": [
2252
2295
  { "$ref": "#/definitions/RuleConfiguration" },
2253
2296
  { "type": "null" }
@@ -2446,6 +2489,13 @@
2446
2489
  { "type": "null" }
2447
2490
  ]
2448
2491
  },
2492
+ "noDuplicateTestHooks": {
2493
+ "description": "A describe block should not contain duplicate hooks.",
2494
+ "anyOf": [
2495
+ { "$ref": "#/definitions/RuleConfiguration" },
2496
+ { "type": "null" }
2497
+ ]
2498
+ },
2449
2499
  "noEmptyBlockStatements": {
2450
2500
  "description": "Disallow empty block statements and static blocks.",
2451
2501
  "anyOf": [
@@ -2467,6 +2517,13 @@
2467
2517
  { "type": "null" }
2468
2518
  ]
2469
2519
  },
2520
+ "noExportsInTest": {
2521
+ "description": "Disallow using export or module.exports in files containing tests",
2522
+ "anyOf": [
2523
+ { "$ref": "#/definitions/RuleConfiguration" },
2524
+ { "type": "null" }
2525
+ ]
2526
+ },
2470
2527
  "noExtraNonNullAssertion": {
2471
2528
  "description": "Prevents the wrong usage of the non-null assertion operator (!) in TypeScript files.",
2472
2529
  "anyOf": [
@@ -2481,6 +2538,13 @@
2481
2538
  { "type": "null" }
2482
2539
  ]
2483
2540
  },
2541
+ "noFocusedTests": {
2542
+ "description": "Disallow focused tests.",
2543
+ "anyOf": [
2544
+ { "$ref": "#/definitions/RuleConfiguration" },
2545
+ { "type": "null" }
2546
+ ]
2547
+ },
2484
2548
  "noFunctionAssign": {
2485
2549
  "description": "Disallow reassigning function declarations.",
2486
2550
  "anyOf": [
@@ -2586,6 +2650,13 @@
2586
2650
  { "type": "null" }
2587
2651
  ]
2588
2652
  },
2653
+ "noSkippedTests": {
2654
+ "description": "Disallow disabled tests.",
2655
+ "anyOf": [
2656
+ { "$ref": "#/definitions/RuleConfiguration" },
2657
+ { "type": "null" }
2658
+ ]
2659
+ },
2589
2660
  "noSparseArray": {
2590
2661
  "description": "Disallow sparse arrays",
2591
2662
  "anyOf": [
@@ -2593,6 +2664,13 @@
2593
2664
  { "type": "null" }
2594
2665
  ]
2595
2666
  },
2667
+ "noSuspiciousSemicolonInJsx": {
2668
+ "description": "It detects possible \"wrong\" semicolons inside JSX elements.",
2669
+ "anyOf": [
2670
+ { "$ref": "#/definitions/RuleConfiguration" },
2671
+ { "type": "null" }
2672
+ ]
2673
+ },
2596
2674
  "noThenProperty": {
2597
2675
  "description": "Disallow then property.",
2598
2676
  "anyOf": [
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@biomejs/biome","version":"1.6.4","bin":"bin/biome","scripts":{"postinstall":"node scripts/postinstall.js"},"homepage":"https://biomejs.dev","repository":{"type":"git","url":"https://github.com/biomejs/biome.git","directory":"packages/@biomejs/biome"},"author":"Emanuele Stoppa","license":"MIT OR Apache-2.0","bugs":"https://github.com/biomejs/biome/issues","description":"Biome is a toolchain for the web: formatter, linter and more","files":["bin/biome","scripts/postinstall.js","configuration_schema.json","README.md","LICENSE-APACHE","LICENSE-MIT","ROME-LICENSE-MIT"],"keywords":["JavaScript","TypeScript","format","lint","toolchain","JSON"],"engines":{"node":">=14.21.3"},"funding":{"type":"opencollective","url":"https://opencollective.com/biome"},"optionalDependencies":{"@biomejs/cli-win32-x64":"1.6.4","@biomejs/cli-win32-arm64":"1.6.4","@biomejs/cli-darwin-x64":"1.6.4","@biomejs/cli-darwin-arm64":"1.6.4","@biomejs/cli-linux-x64":"1.6.4","@biomejs/cli-linux-arm64":"1.6.4","@biomejs/cli-linux-x64-musl":"1.6.4","@biomejs/cli-linux-arm64-musl":"1.6.4"}}
1
+ {"name":"@biomejs/biome","version":"1.7.1","bin":"bin/biome","scripts":{"postinstall":"node scripts/postinstall.js"},"homepage":"https://biomejs.dev","repository":{"type":"git","url":"https://github.com/biomejs/biome.git","directory":"packages/@biomejs/biome"},"author":"Emanuele Stoppa","license":"MIT OR Apache-2.0","bugs":"https://github.com/biomejs/biome/issues","description":"Biome is a toolchain for the web: formatter, linter and more","files":["bin/biome","scripts/postinstall.js","configuration_schema.json","README.md","LICENSE-APACHE","LICENSE-MIT","ROME-LICENSE-MIT"],"keywords":["JavaScript","TypeScript","format","lint","toolchain","JSON"],"engines":{"node":">=14.21.3"},"funding":{"type":"opencollective","url":"https://opencollective.com/biome"},"optionalDependencies":{"@biomejs/cli-win32-x64":"1.7.1","@biomejs/cli-win32-arm64":"1.7.1","@biomejs/cli-darwin-x64":"1.7.1","@biomejs/cli-darwin-arm64":"1.7.1","@biomejs/cli-linux-x64":"1.7.1","@biomejs/cli-linux-arm64":"1.7.1","@biomejs/cli-linux-x64-musl":"1.7.1","@biomejs/cli-linux-arm64-musl":"1.7.1"}}