-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy patheslint.config.mjs
More file actions
120 lines (112 loc) · 2.69 KB
/
eslint.config.mjs
File metadata and controls
120 lines (112 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import js from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';
export default [
// --- Global ignores ---
{
ignores: [
'**/dist/**',
'**/coverage/**',
'**/node_modules/**',
'apps/api/src/**/*.test.js',
'archive/**',
'paper/**',
'reference/**',
'packages/sdk-js/src/**/*.test.js',
'packages/sdk-js/tests/**',
'packages/sdk-js/archived/**',
'reference/**',
],
},
// --- Base: eslint:recommended + globals ---
{
...js.configs.recommended,
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
globals: {
...globals.es2021,
...globals.node,
},
},
rules: {
'no-unused-vars': ['error', { argsIgnorePattern: '^_', caughtErrorsIgnorePattern: '^_' }],
},
},
// --- TypeScript files: parser + disable rules handled by tsc ---
{
files: ['**/*.ts', '**/*.tsx'],
languageOptions: {
parser: tseslint.parser,
},
rules: {
// These are handled by TypeScript compiler (tsc --noEmit)
'no-unused-vars': 'off',
'no-undef': 'off',
'no-redeclare': 'off',
},
},
// --- @peac/crypto: restrict direct @noble/ed25519 imports ---
// All noble usage must go through the async-only wrapper (src/ed25519.ts).
// The wrapper itself and test files are exempt.
{
files: ['packages/crypto/src/**/*.ts'],
ignores: ['packages/crypto/src/ed25519.ts'],
rules: {
'no-restricted-imports': [
'error',
{
paths: [
{
name: '@noble/ed25519',
message:
'Import from ./ed25519.js instead. Direct @noble/ed25519 imports bypass the async-only wrapper.',
},
],
},
],
},
},
// --- @peac/mcp-server: forbid console.log (stdout is reserved for JSON-RPC) ---
// Use process.stderr.write() for diagnostics, never console.log/warn/error.
{
files: ['packages/mcp-server/src/**/*.ts'],
rules: {
'no-console': 'error',
},
},
// --- Test files: add test globals ---
{
files: [
'**/*.test.ts',
'**/*.test.js',
'**/*.spec.ts',
'**/*.spec.js',
'**/tests/**',
'**/__tests__/**',
],
languageOptions: {
globals: {
...globals.jest,
},
},
},
// --- Verifier app: browser globals ---
{
files: ['apps/verifier/src/**/*.ts'],
languageOptions: {
globals: {
...globals.browser,
},
},
},
// --- Service worker: add SW globals ---
{
files: ['apps/verifier/public/sw.js'],
languageOptions: {
globals: {
...globals.serviceworker,
},
},
},
];