@scaleway/biome 0.0.3

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/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Scaleway
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # @scaleway/biome
2
+
3
+ Scaleway's shareable configuration for [biome](https://biomejs.dev/).
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install --save-dev @scaleway/biome
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ Create a `biome.jsonc` file in your project root:
14
+
15
+ ```json
16
+ {
17
+ "extends": ["@scaleway/biome/core.jsonc]
18
+ }
19
+ ```
20
+
21
+ ### Framework-Specific Configurations
22
+
23
+ #### React
24
+
25
+ For React projects, extend the React configuration:
26
+
27
+ ```json
28
+ {
29
+ "extends": ["@scaleway/biome/core", "@scaleway/biome/react"]
30
+ }
31
+ ```
32
+
33
+ #### Next
34
+
35
+ For Next projects, extend the Next configuration:
36
+
37
+ ```json
38
+ {
39
+ "extends": ["@scaleway/biome/core", "@scaleway/biome/next"]
40
+ }
41
+ ```
42
+
43
+ ## Available Configurations
44
+
45
+ 1. **Base rules** (`@scaleway/biome/core`): Core rules for all JavaScript/TypeScript projects
46
+ 2. **React rules** (`@scaleway/biome/react`): React-specific rules
47
+ 3. **Next rules** (`@scaleway/biome/next`): Next-specific rules
48
+
49
+ ## License
50
+
51
+ MIT
@@ -0,0 +1,642 @@
1
+ {
2
+ "root": false,
3
+ "$schema": "../../../../node_modules/@biomejs/biome/configuration_schema.json",
4
+ "files": {
5
+ "ignoreUnknown": true,
6
+ "includes": [
7
+ "**",
8
+ "!!**/_generated",
9
+ "!!**/*.gen.*",
10
+ "!!**/.next",
11
+ "!!**/next-env.d.ts",
12
+ "!!**/.nuxt",
13
+ "!!**/.output",
14
+ "!!**/.svelte-kit",
15
+ "!!**/.vitepress/cache",
16
+ "!!**/.vitepress/dist",
17
+ "!!**/dist",
18
+ "!!**/build",
19
+ "!!**/out",
20
+ "!!**/.turbo",
21
+ "!!**/.vercel",
22
+ "!!**/.netlify",
23
+ "!!**/storybook-static",
24
+ "!!**/.docusaurus",
25
+ "!!**/.cache",
26
+ "!!**/public/build",
27
+ "!!**/.parcel-cache",
28
+ "!!**/.vite",
29
+ "!!**/.astro",
30
+ "!!**/_astro",
31
+ "!!**/coverage",
32
+ "!!**/.nyc_output",
33
+ "!!**/*.generated.*",
34
+ "!!**/*.auto.*",
35
+ "!!**/generated",
36
+ "!!**/auto-generated",
37
+ "!!**/codegen",
38
+ "!!**/__generated__",
39
+ "!!**/graphql-types.*",
40
+ "!!**/schema.d.ts",
41
+ "!!**/schema.graphql.d.ts",
42
+ "!!**/*.d.ts.map",
43
+ "!!**/.expo",
44
+ "!!**/.expo-shared",
45
+ "!!**/android/build",
46
+ "!!**/ios/build",
47
+ "!!**/DerivedData/**/*"
48
+ ]
49
+ },
50
+ "formatter": {
51
+ "attributePosition": "auto",
52
+ "enabled": true,
53
+ "formatWithErrors": true,
54
+ "indentStyle": "space",
55
+ "indentWidth": 2,
56
+ "lineEnding": "lf",
57
+ "lineWidth": 80,
58
+ "bracketSpacing": true
59
+ },
60
+ "assist": {
61
+ "actions": {
62
+ "source": {
63
+ // Provides a code action to sort the imports and exports in the file using a built-in or custom order.
64
+ "organizeImports": "on",
65
+ // Enforce attribute sorting in JSX elements.
66
+ "useSortedAttributes": "on",
67
+ // Enforce ordering of a JS object properties.
68
+ "useSortedKeys": "off",
69
+
70
+ "useSortedProperties": "off"
71
+ }
72
+ },
73
+ "includes": ["**", "!**/package.json"]
74
+ },
75
+ "linter": {
76
+ "enabled": true,
77
+ "rules": {
78
+ "a11y": {
79
+ /** ------------------------ JavaScript Rules ------------------------ **/
80
+
81
+ "noAccessKey": "error",
82
+ "noAriaHiddenOnFocusable": "error",
83
+ "noAriaUnsupportedElements": "error",
84
+ "noDistractingElements": "error",
85
+ "noHeaderScope": "error",
86
+ "noInteractiveElementToNoninteractiveRole": "error",
87
+ "noLabelWithoutControl": "error",
88
+ "noNoninteractiveElementInteractions": "error",
89
+ "noNoninteractiveElementToInteractiveRole": "error",
90
+ "noNoninteractiveTabindex": "error",
91
+ "noPositiveTabindex": "error",
92
+ "noRedundantAlt": "error",
93
+ "noRedundantRoles": "error",
94
+ "noStaticElementInteractions": "error",
95
+ "noSvgWithoutTitle": "error",
96
+ "useAltText": "error",
97
+ "useAnchorContent": "error",
98
+ "useAriaActivedescendantWithTabindex": "error",
99
+ "useAriaPropsForRole": "error",
100
+ "useAriaPropsSupportedByRole": "error",
101
+ "useButtonType": "error",
102
+ "useFocusableInteractive": "error",
103
+ "useHeadingContent": "error",
104
+ "useHtmlLang": "error",
105
+ "useIframeTitle": "error",
106
+ "useKeyWithClickEvents": "error",
107
+ "useKeyWithMouseEvents": "error",
108
+ "useMediaCaption": "error",
109
+ "useSemanticElements": "error",
110
+ "useValidAnchor": "error",
111
+ "useValidAriaProps": "error",
112
+ "useValidAriaRole": "error",
113
+ "useValidAriaValues": "error",
114
+ "useValidAutocomplete": "error",
115
+ "useValidLang": "error",
116
+
117
+ "noAutofocus": "off",
118
+
119
+ /** ------------------------ CSS Rules ------------------------ **/
120
+ "useGenericFontNames": "error"
121
+ },
122
+ "complexity": {
123
+ /** ------------------------ JavaScript Rules ------------------------ **/
124
+
125
+ "noAdjacentSpacesInRegex": "error",
126
+ "noArguments": "error",
127
+ "noBannedTypes": "error",
128
+ "noCommaOperator": "error",
129
+ "noEmptyTypeParameters": "error",
130
+ "noExcessiveCognitiveComplexity": {
131
+ "level": "error",
132
+ "options": {
133
+ "maxAllowedComplexity": 20
134
+ }
135
+ },
136
+ "noExcessiveNestedTestSuites": "error",
137
+ "noExtraBooleanCast": "error",
138
+ "noFlatMapIdentity": "error",
139
+ "noForEach": "error",
140
+ "noStaticOnlyClass": "error",
141
+ "noThisInStatic": "error",
142
+ "noUselessCatch": "error",
143
+ "noUselessConstructor": "error",
144
+ "noUselessContinue": "error",
145
+ "noUselessEmptyExport": "error",
146
+ "noUselessEscapeInRegex": "error",
147
+ "noUselessFragments": "error",
148
+ "noUselessLabel": "error",
149
+ "noUselessLoneBlockStatements": "error",
150
+ "noUselessRename": "error",
151
+ "noUselessStringConcat": "error",
152
+ "noUselessStringRaw": "error",
153
+ "noUselessSwitchCase": "error",
154
+ "noUselessTernary": "error",
155
+ "noUselessThisAlias": "error",
156
+ "noUselessTypeConstraint": "error",
157
+ "noUselessUndefinedInitialization": "error",
158
+ "noVoid": "error",
159
+ "useArrowFunction": "error",
160
+ "useDateNow": "error",
161
+ "useFlatMap": "error",
162
+ "useIndexOf": "error",
163
+ "useLiteralKeys": "error",
164
+ "useNumericLiterals": "error",
165
+ "useOptionalChain": "error",
166
+ "useRegexLiterals": "error",
167
+ "useSimpleNumberKeys": "error",
168
+ "useSimplifiedLogicExpression": "error",
169
+ "useWhile": "error",
170
+
171
+ "noExcessiveLinesPerFunction": "off",
172
+ "noImplicitCoercions": "off",
173
+
174
+ /** ------------------------ CSS Rules ------------------------ **/
175
+ "noImportantStyles": "off"
176
+ },
177
+ "correctness": {
178
+ /** ------------------------ JavaScript Rules ------------------------ **/
179
+
180
+ "noConstantCondition": "error",
181
+ "noConstantMathMinMaxClamp": "error",
182
+ "noConstAssign": "error",
183
+ "noConstructorReturn": "error",
184
+ "noEmptyCharacterClassInRegex": "error",
185
+ "noEmptyPattern": "error",
186
+ "noGlobalDirnameFilename": "error",
187
+ "noGlobalObjectCalls": "error",
188
+ "noInnerDeclarations": "error",
189
+ "noInvalidBuiltinInstantiation": "error",
190
+ "noInvalidConstructorSuper": "error",
191
+ "noInvalidUseBeforeDeclaration": "error",
192
+ "noNonoctalDecimalEscape": "error",
193
+ "noPrecisionLoss": "error",
194
+ "noRestrictedElements": "error",
195
+ "noSelfAssign": "error",
196
+ "noSetterReturn": "error",
197
+ "noStringCaseMismatch": "error",
198
+ "noSwitchDeclarations": "error",
199
+ "noUndeclaredVariables": "error",
200
+ "noUnreachable": "error",
201
+ "noUnreachableSuper": "error",
202
+ "noUnsafeFinally": "error",
203
+ "noUnsafeOptionalChaining": "error",
204
+ "noUnusedFunctionParameters": "error",
205
+ "noUnusedImports": {
206
+ "fix": "safe",
207
+ "level": "error"
208
+ },
209
+ "noUnusedLabels": "error",
210
+ "noUnusedPrivateClassMembers": "error",
211
+ "noUnusedVariables": "error",
212
+ "noVoidTypeReturn": "error",
213
+ "useGraphqlNamedOperations": "error",
214
+ "useImageSize": "error",
215
+ "useIsNan": "error",
216
+ "useParseIntRadix": "error",
217
+ "useSingleJsDocAsterisk": "error",
218
+ "useValidForDirection": "error",
219
+ "useValidTypeof": "error",
220
+ "useYield": "error",
221
+
222
+ "noNodejsModules": "off",
223
+ "noProcessGlobal": "off",
224
+ "useUniqueElementIds": "off",
225
+
226
+ "noPrivateImports": "off",
227
+ "noUndeclaredDependencies": "off",
228
+ "useImportExtensions": "off",
229
+ "useJsonImportAttributes": "off",
230
+
231
+ "noInvalidDirectionInLinearGradient": "error",
232
+ "noInvalidGridAreas": "error",
233
+ "noInvalidPositionAtImportRule": "error",
234
+ "noMissingVarFunction": "error",
235
+ "noUnknownFunction": "error",
236
+ "noUnknownMediaFeatureName": "error",
237
+ "noUnknownProperty": "error",
238
+ "noUnknownPseudoClass": "error",
239
+ "noUnknownPseudoElement": "error",
240
+ "noUnknownTypeSelector": "error",
241
+ "noUnknownUnit": "error",
242
+ "noUnmatchableAnbSelector": "error"
243
+ },
244
+ "nursery": {
245
+ "useSortedClasses": {
246
+ "fix": "safe",
247
+ "level": "error",
248
+ "options": {
249
+ "attributes": ["className"],
250
+ "functions": ["clsx", "cva", "tw", "twMerge", "cn", "twJoin", "tv"]
251
+ }
252
+ }
253
+ },
254
+ "performance": {
255
+ /** ------------------------ JavaScript Rules ------------------------ **/
256
+
257
+ "noAccumulatingSpread": "error",
258
+ "noBarrelFile": "error",
259
+ "noDelete": "error",
260
+ "noDynamicNamespaceImportAccess": "error",
261
+ "noNamespaceImport": "error",
262
+ "noUnwantedPolyfillio": "error",
263
+ "useGoogleFontPreconnect": "error",
264
+ "useTopLevelRegex": "error",
265
+
266
+ "noAwaitInLoops": "off",
267
+ "noReExportAll": "off"
268
+ },
269
+ "security": {
270
+ /** ------------------------ JavaScript Rules ------------------------ **/
271
+
272
+ "noBlankTarget": "error",
273
+ "noDangerouslySetInnerHtml": "error",
274
+ "noDangerouslySetInnerHtmlWithChildren": "error",
275
+ "noGlobalEval": "error",
276
+
277
+ "noSecrets": "off"
278
+ },
279
+ "style": {
280
+ /** ------------------------ JavaScript Rules ------------------------ **/
281
+
282
+ "noDoneCallback": "error",
283
+ "noEnum": "error",
284
+ "noExportedImports": "error",
285
+ "noInferrableTypes": "error",
286
+ "noNamespace": "error",
287
+ "noNegationElse": "error",
288
+ "noNestedTernary": "error",
289
+ "noNonNullAssertion": "error",
290
+ "noParameterAssign": "error",
291
+ "noParameterProperties": "error",
292
+ "noRestrictedGlobals": "error",
293
+ "noRestrictedImports": "error",
294
+ "noRestrictedTypes": "error",
295
+ "noShoutyConstants": "error",
296
+ "noSubstr": "error",
297
+ "noUnusedTemplateLiteral": "error",
298
+ "noUselessElse": "error",
299
+ "noYodaExpression": "error",
300
+ "useArrayLiterals": "error",
301
+ "useAsConstAssertion": "error",
302
+ "useAtIndex": "error",
303
+ "useBlockStatements": "error",
304
+ "useCollapsedElseIf": "error",
305
+ "useCollapsedIf": "error",
306
+ "useConsistentArrayType": "error",
307
+ "useConsistentBuiltinInstantiation": "error",
308
+ "useConsistentMemberAccessibility": "error",
309
+ "useConsistentObjectDefinitions": "error",
310
+ "useConsistentTypeDefinitions": {
311
+ "level": "error",
312
+ "options": {
313
+ "style": "type"
314
+ }
315
+ },
316
+ "useConst": "error",
317
+ "useDefaultParameterLast": "error",
318
+ "useDefaultSwitchClause": "error",
319
+ "useDeprecatedReason": "error",
320
+ "useEnumInitializers": "error",
321
+ "useExponentiationOperator": "error",
322
+ "useExportType": "error",
323
+ "useFilenamingConvention": {
324
+ "level": "info",
325
+ "options": {
326
+ "requireAscii": true,
327
+ "filenameCases": ["camelCase", "PascalCase", "kebab-case"]
328
+ }
329
+ },
330
+ "useForOf": "error",
331
+ "useFragmentSyntax": "error",
332
+ "useGraphqlNamingConvention": "error",
333
+ "useGroupedAccessorPairs": "error",
334
+ "useImportType": "error",
335
+ "useLiteralEnumMembers": "error",
336
+ "useNodeAssertStrict": "error",
337
+ "useNodejsImportProtocol": "error",
338
+ "useNumberNamespace": "error",
339
+ "useNumericSeparators": "error",
340
+ "useObjectSpread": "error",
341
+ "useReadonlyClassProperties": "error",
342
+ "useSelfClosingElements": "error",
343
+ "useShorthandAssign": "error",
344
+ "useShorthandFunctionType": "error",
345
+ "useSymbolDescription": "error",
346
+ "useTemplate": "error",
347
+ "useThrowNewError": "error",
348
+ "useThrowOnlyError": "error",
349
+ "useTrimStartEnd": "error",
350
+ "useUnifiedTypeSignatures": "error",
351
+
352
+ "noCommonJs": "off",
353
+ "noDefaultExport": "off",
354
+ "noImplicitBoolean": "off",
355
+ "noMagicNumbers": "off",
356
+ "noProcessEnv": "off",
357
+ "useComponentExportOnlyModules": "off",
358
+ "useConsistentCurlyBraces": "off",
359
+ "useExplicitLengthCheck": "off",
360
+ "useExportsLast": "off",
361
+ "useNamingConvention": "off",
362
+ "useSingleVarDeclarator": "off",
363
+
364
+ /** ------------------------ CSS Rules ------------------------ **/
365
+ "noDescendingSpecificity": "error",
366
+ "noValueAtRule": "error"
367
+ },
368
+ "suspicious": {
369
+ /** ------------------------ JavaScript Rules ------------------------ **/
370
+
371
+ "noAlert": "error",
372
+ "noApproximativeNumericConstant": "error",
373
+ "noAssignInExpressions": "error",
374
+ "noAsyncPromiseExecutor": "error",
375
+ "noBiomeFirstException": "error",
376
+ "noBitwiseOperators": "error",
377
+ "noCatchAssign": "error",
378
+ "noClassAssign": "error",
379
+ "noCommentText": "error",
380
+ "noCompareNegZero": "error",
381
+ "noConfusingLabels": "error",
382
+ "noConfusingVoidType": "off",
383
+ "noConstantBinaryExpressions": "error",
384
+ "noConstEnum": "error",
385
+ "noControlCharactersInRegex": "error",
386
+ "noDebugger": "error",
387
+ "noDocumentCookie": "error",
388
+ "noDoubleEquals": "error",
389
+ "noDuplicateCase": "error",
390
+ "noDuplicateClassMembers": "error",
391
+ "noDuplicateElseIf": "error",
392
+ "noDuplicateFields": "error",
393
+ "noDuplicateObjectKeys": "error",
394
+ "noDuplicateParameters": "error",
395
+ "noDuplicateTestHooks": "error",
396
+ "noEmptyBlockStatements": "error",
397
+ "noEmptyInterface": "error",
398
+ "noEvolvingTypes": "error",
399
+ "noExplicitAny": "error",
400
+ "noExportsInTest": "error",
401
+ "noExtraNonNullAssertion": "error",
402
+ "noFallthroughSwitchClause": "error",
403
+ "noFocusedTests": "error",
404
+ "noFunctionAssign": "error",
405
+ "noGlobalAssign": "error",
406
+ "noGlobalIsFinite": "error",
407
+ "noGlobalIsNan": "error",
408
+ "noImplicitAnyLet": "error",
409
+ "noImportAssign": "error",
410
+ "noIrregularWhitespace": "error",
411
+ "noLabelVar": "error",
412
+ "noMisleadingCharacterClass": "error",
413
+ "noMisleadingInstantiator": "error",
414
+ "noMisplacedAssertion": "error",
415
+ "noMisrefactoredShorthandAssign": "error",
416
+ "noOctalEscape": "error",
417
+ "noPrototypeBuiltins": "error",
418
+ "noQuickfixBiome": "error",
419
+ "noRedeclare": "error",
420
+ "noRedundantUseStrict": "error",
421
+ "noSelfCompare": "error",
422
+ "noShadowRestrictedNames": "error",
423
+ "noSkippedTests": "error",
424
+ "noSparseArray": "error",
425
+ "noTemplateCurlyInString": "error",
426
+ "noThenProperty": "error",
427
+ "noTsIgnore": "error",
428
+ "noUnassignedVariables": "error",
429
+ "noUnsafeDeclarationMerging": "error",
430
+ "noUnsafeNegation": "error",
431
+ "noUselessEscapeInString": "error",
432
+ "noUselessRegexBackrefs": "error",
433
+ "noVar": "error",
434
+ "noWith": "error",
435
+ "useAdjacentOverloadSignatures": "error",
436
+ "useAwait": "error",
437
+ "useBiomeIgnoreFolder": "error",
438
+ "useDefaultSwitchClauseLast": "error",
439
+ "useErrorMessage": "error",
440
+ "useGetterReturn": "error",
441
+ "useGoogleFontDisplay": "error",
442
+ "useGuardForIn": "error",
443
+ "useIsArray": "error",
444
+ "useIterableCallbackReturn": "error",
445
+ "useNamespaceKeyword": "error",
446
+ "useNumberToFixedDigitsArgument": "error",
447
+ "useStaticResponseMethods": "error",
448
+ "useStrictMode": "error",
449
+ "noNonNullAssertedOptionalChain": "error",
450
+
451
+ "noConsole": "off",
452
+
453
+ /** ------------------------ CSS Rules ------------------------ **/
454
+ "noDuplicateAtImportRules": "error",
455
+ "noDuplicateCustomProperties": "error",
456
+ "noDuplicateFontNames": "error",
457
+ "noDuplicateProperties": "error",
458
+ "noDuplicateSelectorsKeyframeBlock": "error",
459
+ "noEmptyBlock": "error",
460
+ "noImportantInKeyframe": "error",
461
+ "noShorthandPropertyOverrides": "error",
462
+ "noUnknownAtRules": "error"
463
+ }
464
+ }
465
+ },
466
+ "javascript": {
467
+ "formatter": {
468
+ "arrowParentheses": "asNeeded",
469
+ "attributePosition": "auto",
470
+ "bracketSameLine": false,
471
+ "bracketSpacing": true,
472
+ "jsxQuoteStyle": "double",
473
+ "quoteProperties": "asNeeded",
474
+ "quoteStyle": "single",
475
+ "semicolons": "asNeeded",
476
+ "trailingCommas": "all"
477
+ },
478
+ "linter": {
479
+ "enabled": true
480
+ }
481
+ },
482
+ "css": {
483
+ "formatter": {
484
+ "enabled": true,
485
+ "lineEnding": "lf",
486
+ "lineWidth": 80,
487
+ "quoteStyle": "double"
488
+ },
489
+ "linter": {
490
+ "enabled": true
491
+ },
492
+ "parser": {
493
+ "allowWrongLineComments": false,
494
+ "cssModules": false,
495
+ "tailwindDirectives": true
496
+ }
497
+ },
498
+ "json": {
499
+ "assist": {
500
+ "enabled": true
501
+ },
502
+ "linter": {
503
+ "enabled": true
504
+ },
505
+ "formatter": {
506
+ "enabled": true,
507
+ "indentStyle": "space",
508
+ "indentWidth": 2,
509
+ "lineEnding": "lf",
510
+ "lineWidth": 80,
511
+ "trailingCommas": "none"
512
+ },
513
+ "parser": {
514
+ "allowComments": false,
515
+ "allowTrailingCommas": false
516
+ }
517
+ },
518
+ "html": {
519
+ "formatter": {
520
+ "enabled": true
521
+ }
522
+ },
523
+ "vcs": {
524
+ "enabled": true,
525
+ "clientKind": "git",
526
+ "useIgnoreFile": true,
527
+ "defaultBranch": "main"
528
+ },
529
+ "overrides": [
530
+ {
531
+ "includes": [
532
+ "*.config.{js,ts,mjs,cjs,mts,cts}",
533
+ "vite.config.*",
534
+ "vitest.config.*",
535
+ "jest.config.*",
536
+ "rollup.config.*",
537
+ "webpack.config.*",
538
+ "eslint.config.*",
539
+ "prettier.config.*",
540
+ "stylelint.config.*",
541
+ "commitlint.config.*",
542
+ "lint-staged.config.*",
543
+ "postcss.config.*",
544
+ "tailwind.config.*",
545
+ "playwright.config.*",
546
+ "cypress.config.*",
547
+ "babel.config.*",
548
+ "metro.config.*",
549
+ "next.config.*",
550
+ "nuxt.config.*",
551
+ "astro.config.*",
552
+ "svelte.config.*",
553
+ "tsup.config.*"
554
+ ]
555
+ },
556
+ {
557
+ "includes": ["**/*.{test,spec}.{ts,tsx,js,jsx}", "**/__tests__/**/*"],
558
+ "linter": {
559
+ "rules": {
560
+ "complexity": {
561
+ "noExcessiveCognitiveComplexity": "off"
562
+ },
563
+ "suspicious": {
564
+ "noConsole": "off",
565
+ "noExplicitAny": "off"
566
+ }
567
+ }
568
+ }
569
+ },
570
+ {
571
+ "includes": ["**/scripts", "**/bin", "*.mjs", "*.cjs"],
572
+ "linter": {
573
+ "rules": {
574
+ "suspicious": {
575
+ "noConsole": "off"
576
+ },
577
+ "style": {
578
+ "noProcessEnv": "off"
579
+ }
580
+ }
581
+ }
582
+ },
583
+ {
584
+ "includes": ["**/*.{stories,story}.{ts,tsx,js,jsx}"],
585
+ "linter": {
586
+ "rules": {
587
+ "correctness": {
588
+ "noUnusedVariables": "off",
589
+ "noUnusedImports": "off"
590
+ }
591
+ }
592
+ }
593
+ },
594
+ {
595
+ "includes": ["**/*.d.ts", "**/{env,global,types}.d.ts"],
596
+ "linter": {
597
+ "rules": {
598
+ "correctness": {
599
+ "noUnusedVariables": "off",
600
+ "noUndeclaredVariables": "off"
601
+ }
602
+ }
603
+ }
604
+ },
605
+ {
606
+ "includes": [
607
+ "**/dist",
608
+ "**/build",
609
+ "**/.next",
610
+ "**/.nuxt",
611
+ "**/out",
612
+ "**/coverage",
613
+ "**/*.min.js",
614
+ "**/*.min.css",
615
+ ".env",
616
+ ".env.*"
617
+ ],
618
+ "formatter": {
619
+ "enabled": false
620
+ },
621
+ "linter": {
622
+ "enabled": false
623
+ }
624
+ },
625
+ {
626
+ "includes": [
627
+ "**/package.json",
628
+ "**/{tsconfig,jsconfig}.json",
629
+ "**/tsconfig.*.json",
630
+ ".vscode/*.json",
631
+ ".github/**/*.json",
632
+ ".zed/*.json"
633
+ ],
634
+ "json": {
635
+ "parser": {
636
+ "allowComments": true,
637
+ "allowTrailingCommas": true
638
+ }
639
+ }
640
+ }
641
+ ]
642
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "root": false,
3
+ "$schema": "../../../../node_modules/@biomejs/biome/configuration_schema.json",
4
+ "linter": {
5
+ "rules": {
6
+ "performance": {
7
+ "noImgElement": "error"
8
+ },
9
+ "style": {
10
+ "noHeadElement": "error"
11
+ },
12
+ "suspicious": {
13
+ "noDocumentImportInPage": "error",
14
+ "noHeadImportInDocument": "error"
15
+ }
16
+ }
17
+ },
18
+ "overrides": [
19
+ {
20
+ "includes": ["**/next.config.*"],
21
+ "linter": {
22
+ "rules": {
23
+ "suspicious": {
24
+ "useAwait": "off"
25
+ }
26
+ }
27
+ }
28
+ },
29
+ {
30
+ "includes": ["**/page.{ts,tsx,js,jsx}", "**/layout.{ts,tsx,js,jsx}"],
31
+ "linter": {
32
+ "rules": {
33
+ "suspicious": {
34
+ "useAwait": "off"
35
+ }
36
+ }
37
+ }
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "root": false,
3
+ "$schema": "../../../../node_modules/@biomejs/biome/configuration_schema.json",
4
+ "linter": {
5
+ "rules": {
6
+ "correctness": {
7
+ "noChildrenProp": "error",
8
+ "noNestedComponentDefinitions": "error",
9
+ "noReactPropAssignments": "error",
10
+ "noRenderReturnValue": "error",
11
+ "noVoidElementsWithChildren": "error",
12
+ "useExhaustiveDependencies": "error",
13
+ "useHookAtTopLevel": "error",
14
+ "useJsxKeyInIterable": "error"
15
+ },
16
+ "suspicious": {
17
+ "noArrayIndexKey": "error",
18
+ "noDuplicateJsxProps": "error",
19
+ "noSuspiciousSemicolonInJsx": "error",
20
+ "noReactSpecificProps": "off"
21
+ },
22
+ "style": {
23
+ "useReactFunctionComponents": "error"
24
+ }
25
+ }
26
+ }
27
+ }
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@scaleway/biome",
3
+ "version": "0.0.3",
4
+ "description": "Scaleway's shareable configuration for biome",
5
+ "keywords": [
6
+ "biome",
7
+ "biome-config",
8
+ "lint",
9
+ "config",
10
+ "scaleway"
11
+ ],
12
+ "author": "Scaleway",
13
+ "license": "MIT",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/scaleway/scaleway-lib",
17
+ "directory": "packages/biome"
18
+ },
19
+ "bugs": {
20
+ "url": "https://github.com/scaleway/oxlint-config-scaleway/issues"
21
+ },
22
+ "homepage": "https://github.com/scaleway/oxlint-config-scaleway#readme",
23
+ "main": "index.json",
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "files": [
28
+ "configs/**"
29
+ ],
30
+ "exports": {
31
+ "./*": "./config/biome/*/biome.jsonc"
32
+ },
33
+ "devDependencies": {
34
+ "@biomejs/biome": "2.3.11"
35
+ },
36
+ "peerDependencies": {
37
+ "@biomejs/biome": "2.3.11"
38
+ },
39
+ "scripts": {
40
+ "test": "echo \"Error: no test specified\" && exit 1"
41
+ }
42
+ }