@nitra/cursor 1.8.145 → 1.8.150

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.
@@ -0,0 +1,359 @@
1
+ e18e/prefer-includes error
2
+ array-callback-return deny
3
+ no-new-wrappers deny
4
+ import/no-named-as-default deny
5
+ oxc/uninvoked-array-callback deny
6
+ typescript/no-non-null-assertion deny
7
+ unicorn/prefer-date-now deny
8
+ no-obj-calls deny
9
+ default-case-last deny
10
+ import/no-webpack-loader-syntax deny
11
+ promise/no-promise-in-callback deny
12
+ typescript/no-unnecessary-type-constraint deny
13
+ unicorn/prefer-dom-node-remove deny
14
+ for-direction deny
15
+ no-prototype-builtins deny
16
+ typescript/no-useless-empty-export deny
17
+ unicorn/prefer-includes deny
18
+ guard-for-in deny
19
+ no-restricted-globals deny
20
+ promise/prefer-await-to-then off
21
+ typescript/prefer-as-const deny
22
+ unicorn/prefer-math-trunc deny
23
+ no-self-assign deny
24
+ max-params off
25
+ react/button-has-type deny
26
+ typescript/prefer-function-type deny
27
+ unicorn/prefer-native-coercion-functions deny
28
+ no-extra-label deny
29
+ no-shadow-restricted-names deny
30
+ react/iframe-missing-sandbox deny
31
+ typescript/prefer-ts-expect-error deny
32
+ unicorn/prefer-number-properties off
33
+ no-labels deny
34
+ no-ternary off
35
+ react/jsx-key deny
36
+ unicorn/consistent-empty-array-spread deny
37
+ unicorn/prefer-query-selector deny
38
+ no-object-constructor deny
39
+ react/jsx-no-script-url deny
40
+ unicorn/empty-brace-spaces deny
41
+ unicorn/prefer-set-has deny
42
+ no-array-constructor deny
43
+ react/jsx-no-useless-fragment deny
44
+ unicorn/explicit-length-check off
45
+ unicorn/prefer-string-replace-all deny
46
+ no-bitwise deny
47
+ no-unsafe-optional-chaining deny
48
+ react/no-children-prop deny
49
+ unicorn/no-abusive-eslint-disable deny
50
+ unicorn/prefer-string-trim-start-end deny
51
+ no-class-assign deny
52
+ no-unused-private-class-members deny
53
+ react/no-direct-mutation-state deny
54
+ unicorn/no-array-reduce deny
55
+ unicorn/require-array-join-separator deny
56
+ no-console off
57
+ no-useless-concat deny
58
+ react/no-render-return-value deny
59
+ unicorn/no-console-spaces deny
60
+ unicorn/text-encoding-identifier-case deny
61
+ no-constant-condition deny
62
+ no-useless-rename deny
63
+ react/no-unescaped-entities deny
64
+ unicorn/no-hex-escape deny
65
+ no-control-regex deny
66
+ no-with deny
67
+ react/react-in-jsx-scope deny
68
+ unicorn/no-length-as-slice-end deny
69
+ no-div-regex deny
70
+ prefer-numeric-literals deny
71
+ react/self-closing-comp deny
72
+ unicorn/no-negation-in-equality-check deny
73
+ no-dupe-keys deny
74
+ prefer-rest-params deny
75
+ unicorn/no-new-buffer deny
76
+ no-empty-character-class deny
77
+ require-await deny
78
+ node/no-exports-assign deny
79
+ unicorn/no-process-exit deny
80
+ no-empty-static-block deny
81
+ sort-keys off
82
+ oxc/bad-array-method-on-arguments deny
83
+ unicorn/no-thenable deny
84
+ typescript/ban-ts-comment deny
85
+ no-eval deny
86
+ unicode-bom deny
87
+ jsdoc/check-access deny
88
+ oxc/bad-comparison-sequence deny
89
+ unicorn/no-unnecessary-await deny
90
+ typescript/consistent-generic-constructors deny
91
+ no-extra-boolean-cast deny
92
+ vars-on-top deny
93
+ jsdoc/empty-tags deny
94
+ oxc/bad-replace-all-arg deny
95
+ unicorn/no-useless-fallback-in-spread deny
96
+ no-global-assign deny
97
+ jsdoc/require-param deny
98
+ oxc/erasing-op deny
99
+ unicorn/no-useless-spread deny
100
+ typescript/no-confusing-non-null-assertion deny
101
+ no-invalid-regexp deny
102
+ import/no-namespace off
103
+ jsdoc/require-param-type deny
104
+ oxc/no-accumulating-spread deny
105
+ typescript/no-empty-interface deny
106
+ unicorn/no-zero-fractions deny
107
+ import/namespace deny
108
+ jsdoc/require-property-name deny
109
+ no-label-var deny
110
+ typescript/no-extra-non-null-assertion deny
111
+ oxc/no-barrel-file deny
112
+ unicorn/prefer-spread deny
113
+ no-negated-condition deny
114
+ import/no-cycle deny
115
+ jsdoc/require-returns-description deny
116
+ typescript/no-misused-new deny
117
+ oxc/no-optional-chaining off
118
+ unicorn/prefer-array-flat-map deny
119
+ no-new-native-nonconstructor deny
120
+ import/no-dynamic-require deny
121
+ oxc/only-used-in-recursion deny
122
+ typescript/no-non-null-asserted-optional-chain deny
123
+ unicorn/prefer-code-point deny
124
+ default-case off
125
+ no-nonoctal-decimal-escape deny
126
+ import/no-self-import deny
127
+ promise/catch-or-return deny
128
+ typescript/no-this-alias deny
129
+ unicorn/prefer-dom-node-dataset deny
130
+ eqeqeq deny
131
+ no-proto deny
132
+ promise/no-new-statics deny
133
+ typescript/no-unsafe-function-type deny
134
+ unicorn/prefer-event-target deny
135
+ no-regex-spaces deny
136
+ promise/prefer-await-to-callbacks off
137
+ typescript/no-wrapper-object-types deny
138
+ unicorn/prefer-math-min-max deny
139
+ max-lines off
140
+ no-script-url deny
141
+ promise/valid-params deny
142
+ typescript/prefer-for-of deny
143
+ unicorn/prefer-modern-math-apis deny
144
+ no-useless-call deny
145
+ no-setter-return deny
146
+ typescript/prefer-namespace-keyword deny
147
+ unicorn/prefer-node-protocol deny
148
+ no-nested-ternary off
149
+ no-template-curly-in-string deny
150
+ react/jsx-curly-brace-presence deny
151
+ unicorn/catch-error-name deny
152
+ unicorn/prefer-prototype-methods deny
153
+ no-throw-literal deny
154
+ react/jsx-no-duplicate-props deny
155
+ unicorn/consistent-function-scoping deny
156
+ unicorn/prefer-regexp-test deny
157
+ no-alert deny
158
+ no-unexpected-multiline deny
159
+ react/jsx-no-undef deny
160
+ unicorn/escape-case deny
161
+ unicorn/prefer-string-raw deny
162
+ no-await-in-loop off
163
+ no-unsafe-negation deny
164
+ react/no-array-index-key deny
165
+ unicorn/new-for-builtins deny
166
+ unicorn/prefer-string-starts-ends-with deny
167
+ no-case-declarations deny
168
+ no-unused-labels deny
169
+ react/no-danger deny
170
+ unicorn/no-array-for-each deny
171
+ unicorn/prefer-type-error deny
172
+ no-cond-assign deny
173
+ no-useless-catch deny
174
+ react/no-is-mounted deny
175
+ unicorn/no-await-in-promise-methods deny
176
+ unicorn/switch-case-braces deny
177
+ no-constant-binary-expression deny
178
+ no-useless-escape deny
179
+ react/no-string-refs deny
180
+ unicorn/no-empty-file deny
181
+ no-void deny
182
+ unicorn/no-invalid-remove-event-listener deny
183
+ react/prefer-es6-class deny
184
+ no-delete-var deny
185
+ prefer-exponentiation-operator deny
186
+ react/rules-of-hooks deny
187
+ unicorn/no-magic-array-flat-depth deny
188
+ no-dupe-else-if deny
189
+ prefer-object-spread deny
190
+ react/void-dom-elements-no-children deny
191
+ unicorn/no-new-array deny
192
+ no-else-return deny
193
+ radix off
194
+ unicorn/no-object-as-default-parameter deny
195
+ no-empty-pattern deny
196
+ sort-imports off
197
+ oxc/approx-constant deny
198
+ typescript/array-type deny
199
+ unicorn/no-static-only-class deny
200
+ no-eq-null deny
201
+ symbol-description deny
202
+ oxc/bad-char-at-comparison deny
203
+ typescript/ban-types deny
204
+ unicorn/no-typeof-undefined deny
205
+ no-extend-native deny
206
+ valid-typeof deny
207
+ jsdoc/check-tag-names deny
208
+ oxc/bad-object-literal-comparison deny
209
+ typescript/consistent-type-definitions deny
210
+ unicorn/no-unreadable-iife deny
211
+ no-func-assign deny
212
+ import/default deny
213
+ jsdoc/no-defaults deny
214
+ oxc/double-comparisons deny
215
+ typescript/no-inferrable-types deny
216
+ unicorn/no-useless-promise-resolve-reject deny
217
+ no-inner-declarations deny
218
+ import/no-named-default deny
219
+ oxc/missing-throw deny
220
+ jsdoc/require-param-name deny
221
+ typescript/no-dynamic-delete deny
222
+ unicorn/no-useless-undefined deny
223
+ no-iterator deny
224
+ jsdoc/require-property-description deny
225
+ oxc/no-async-endpoint-handlers deny
226
+ typescript/no-explicit-any deny
227
+ unicorn/numeric-separators-style off
228
+ no-magic-numbers off
229
+ import/no-commonjs off
230
+ jsdoc/require-returns deny
231
+ typescript/no-import-type-side-effects deny
232
+ unicorn/prefer-array-flat deny
233
+ no-new-func deny
234
+ import/no-duplicates deny
235
+ jsdoc/require-yields deny
236
+ oxc/number-arg-out-of-range deny
237
+ typescript/no-non-null-asserted-nullish-coalescing deny
238
+ unicorn/prefer-blob-reading-methods deny
239
+ no-new deny
240
+ import/no-named-as-default-member off
241
+ promise/avoid-new deny
242
+ typescript/no-require-imports deny
243
+ unicorn/prefer-dom-node-append deny
244
+ default-param-last deny
245
+ no-plusplus off
246
+ import/unambiguous off
247
+ promise/no-callback-in-promise deny
248
+ typescript/no-unsafe-declaration-merging deny
249
+ unicorn/prefer-dom-node-text-content deny
250
+ func-names off
251
+ no-redeclare deny
252
+ promise/param-names deny
253
+ typescript/no-var-requires deny
254
+ unicorn/prefer-logical-operator-over-ternary deny
255
+ max-classes-per-file deny
256
+ no-return-assign deny
257
+ promise/spec-only deny
258
+ typescript/prefer-enum-initializers deny
259
+ unicorn/prefer-modern-dom-apis deny
260
+ new-cap off
261
+ no-self-compare deny
262
+ react/checked-requires-onchange-or-readonly deny
263
+ typescript/prefer-literal-enum-member deny
264
+ unicorn/prefer-negative-index deny
265
+ no-multi-assign deny
266
+ no-sparse-arrays deny
267
+ typescript/triple-slash-reference deny
268
+ react/jsx-boolean-value deny
269
+ unicorn/prefer-optional-catch-binding deny
270
+ no-lone-blocks deny
271
+ no-this-before-super deny
272
+ react/jsx-no-comment-textnodes deny
273
+ unicorn/consistent-existence-index-check deny
274
+ unicorn/prefer-reflect-apply deny
275
+ no-duplicate-imports deny
276
+ no-undefined off
277
+ react/jsx-no-target-blank deny
278
+ unicorn/prefer-set-size deny
279
+ unicorn/error-message deny
280
+ no-async-promise-executor deny
281
+ no-unsafe-finally deny
282
+ react/jsx-props-no-spread-multi deny
283
+ unicorn/filename-case off
284
+ unicorn/prefer-string-slice deny
285
+ no-caller deny
286
+ no-unused-expressions deny
287
+ react/no-danger-with-children deny
288
+ unicorn/no-anonymous-default-export off
289
+ unicorn/prefer-structured-clone deny
290
+ no-compare-neg-zero deny
291
+ no-unused-vars deny
292
+ react/no-find-dom-node deny
293
+ unicorn/no-await-expression-member deny
294
+ unicorn/require-number-to-fixed-digits-argument deny
295
+ no-const-assign deny
296
+ no-useless-constructor deny
297
+ react/no-set-state deny
298
+ unicorn/no-document-cookie deny
299
+ unicorn/throw-new-error deny
300
+ no-constructor-return deny
301
+ no-var deny
302
+ react/no-unknown-property deny
303
+ unicorn/no-instanceof-array deny
304
+ no-debugger deny
305
+ prefer-promise-reject-errors deny
306
+ unicorn/no-lonely-if deny
307
+ no-dupe-class-members deny
308
+ prefer-object-has-own deny
309
+ react/style-prop-object deny
310
+ unicorn/no-nested-ternary off
311
+ no-duplicate-case deny
312
+ prefer-spread deny
313
+ unicorn/no-null off
314
+ no-empty-function deny
315
+ require-yield deny
316
+ node/no-new-require deny
317
+ typescript/adjacent-overload-signatures deny
318
+ unicorn/no-single-promise-in-promise-methods deny
319
+ no-empty deny
320
+ sort-vars deny
321
+ oxc/bad-bitwise-operator deny
322
+ typescript/ban-tslint-comment deny
323
+ unicorn/no-this-assignment deny
324
+ no-ex-assign deny
325
+ use-isnan deny
326
+ jsdoc/check-property-names deny
327
+ oxc/bad-min-max-func deny
328
+ typescript/consistent-indexed-object-style deny
329
+ unicorn/no-unreadable-array-destructuring deny
330
+ no-fallthrough deny
331
+ yoda deny
332
+ jsdoc/implements-on-classes deny
333
+ oxc/const-comparisons deny
334
+ unicorn/no-useless-length-check deny
335
+ typescript/explicit-function-return-type deny
336
+ no-import-assign deny
337
+ import/first deny
338
+ jsdoc/require-param-description deny
339
+ typescript/no-duplicate-enum-values deny
340
+ oxc/misrefactored-assign-op deny
341
+ unicorn/no-useless-switch-case deny
342
+ no-irregular-whitespace deny
343
+ import/max-dependencies off
344
+ jsdoc/require-property deny
345
+ oxc/no-async-await off
346
+ typescript/no-empty-object-type deny
347
+ unicorn/number-literal-case deny
348
+ no-loss-of-precision deny
349
+ import/no-amd deny
350
+ jsdoc/require-property-type deny
351
+ oxc/no-const-enum deny
352
+ typescript/no-extraneous-class deny
353
+ unicorn/prefer-add-event-listener deny
354
+ no-multi-str deny
355
+ import/no-default-export off
356
+ jsdoc/require-returns-type deny
357
+ oxc/no-rest-spread-properties off
358
+ typescript/no-namespace deny
359
+ unicorn/prefer-array-some deny
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Збирає `oxlint-canonical.json` з `oxlint-canonical-skeleton.json` (без поля rules) та списку
3
+ * правил у `oxlint-rules.tsv` (колонки: ім’я правила, TAB, severity: deny | off | error).
4
+ *
5
+ * Після змін у TSV або скелеті запускай з каталогу пакета: `bun ./scripts/utils/rebuild-oxlint-canonical.mjs`,
6
+ * потім скопіюй оновлений канон у корінь споживача як `.oxlintrc.json` за потреби.
7
+ */
8
+ import { readFileSync, writeFileSync } from 'node:fs'
9
+ import { dirname, join } from 'node:path'
10
+ import { fileURLToPath } from 'node:url'
11
+
12
+ const dir = dirname(fileURLToPath(import.meta.url))
13
+ const rules = {}
14
+ for (const line of readFileSync(join(dir, 'oxlint-rules.tsv'), 'utf8').split('\n')) {
15
+ const t = line.trim()
16
+ if (!t) {
17
+ continue
18
+ }
19
+ const i = t.indexOf('\t')
20
+ if (i === -1) {
21
+ throw new Error(`oxlint-rules.tsv: очікується TAB між ключем і значенням: ${t}`)
22
+ }
23
+ rules[t.slice(0, i)] = t.slice(i + 1)
24
+ }
25
+ const skeleton = JSON.parse(readFileSync(join(dir, 'oxlint-canonical-skeleton.json'), 'utf8'))
26
+ skeleton.rules = rules
27
+ const out = join(dir, 'oxlint-canonical.json')
28
+ writeFileSync(out, `${JSON.stringify(skeleton, null, 2)}\n`)
29
+ console.log(`wrote ${out} (${Object.keys(rules).length} rules)`)
@@ -53,7 +53,7 @@ bun run lint
53
53
 
54
54
  **Чому взагалі кілька `eslint`:** оркестратор (Claude Code, Cursor тощо) може **розпаралелити** роботу: кілька **субагентів** / **паралельних Bash-задач** / **фонових shell**, і кожен **сам** виконує **`/n-lint`** або запускає **`eslint`**. Тоді навантаження **множиться**: не один прогон лінту, а **N прогонів** одночасно.
55
55
 
56
- **Що робити агенту під час виконання цього скілу (обов’язково)**
56
+ ### Що робити агенту під час виконання цього скілу (обов’язково)
57
57
 
58
58
  1. **Один** запуск **`bun run lint`** (або всі кроки **`lint`**, як у **`package.json`**) — у **одному** foreground shell, **без** `run_in_background` / фонових копій тієї ж команди.
59
59
  2. **Не** викликати **паралельні субагенти** (subagent, Task, «розбий на N паралельних завдань») лише заради лінту в одному репозиторії. Лінт не потребує шардінгу: один процес, послідовно.