@nitra/cursor 1.3.4 → 1.3.5

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.
@@ -6,7 +6,7 @@
6
6
  * Завантажує cursor-правила з npm-пакету nitra-cursor у локальний репозиторій.
7
7
  *
8
8
  * Використання:
9
- * npx @nitra/cursor
9
+ * `npx @nitra/cursor`
10
10
  *
11
11
  * Якщо у корені репозиторію немає nitra-cursor.json, він створюється автоматично
12
12
  * з усіма правилами з каталогу mdc пакету (їх можна відредагувати після створення).
@@ -199,14 +199,10 @@ async function removeOrphanManagedRuleFiles(rulesDir, configRules) {
199
199
  const names = await readdir(rulesDir)
200
200
  const removed = []
201
201
  for (const name of names) {
202
- if (!name.endsWith('.mdc') || !name.startsWith(RULE_PREFIX)) {
203
- continue
202
+ if (name.endsWith('.mdc') && name.startsWith(RULE_PREFIX) && !expected.has(name)) {
203
+ await unlink(join(rulesDir, name))
204
+ removed.push(name)
204
205
  }
205
- if (expected.has(name)) {
206
- continue
207
- }
208
- await unlink(join(rulesDir, name))
209
- removed.push(name)
210
206
  }
211
207
  return removed.sort((a, b) => a.localeCompare(b))
212
208
  }
package/mdc/js-format.mdc CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  description: Правила форматів JavaScript ecosystem
3
3
  alwaysApply: true
4
- version: '1.2'
4
+ version: '1.3'
5
5
  ---
6
6
 
7
7
  В корені проекту є файл з правилами форматування для oxfmt:
@@ -0,0 +1,102 @@
1
+ ---
2
+ description: Перевірка JavaScript коду
3
+ alwaysApply: true
4
+ version: '1.2'
5
+ ---
6
+
7
+ Перевірка виконується за допомогою **oxlint** та **ESLint**.
8
+
9
+ У файлі `.vscode/extensions.json` мають бути рекомендації розширень:
10
+
11
+ ```json title=".vscode/extensions.json"
12
+ {
13
+ "recommendations": [
14
+ "dbaeumer.vscode-eslint",
15
+ "github.vscode-github-actions",
16
+ "oxc.oxc-vscode"
17
+ ]
18
+ }
19
+ ```
20
+
21
+ У кореневому `package.json` додай скрипт і залежність:
22
+
23
+ ```json title="package.json"
24
+ "scripts": {
25
+ "lint-js": "oxlint --fix && bunx eslint --fix ."
26
+ },
27
+ "devDependencies": {
28
+ "@nitra/eslint-config": "^3.0.7"
29
+ }
30
+ ```
31
+
32
+ У `devDependencies` достатньо `@nitra/eslint-config` (залежності ESLint підтягуються разом із ним). **oxlint** і **eslint** у скриптах викликай через `bunx`; окремо не додавай пакети `oxlint` / `eslint`, якщо цього не вимагає ваш монорепо.
33
+
34
+ Додай workflow `.github/workflows/lint-js.yml`:
35
+
36
+ ```yaml
37
+ name: Lint JS
38
+
39
+ on:
40
+ push:
41
+ branches:
42
+ - dev
43
+ paths:
44
+ - '**/*.js'
45
+ - '**/*.mjs'
46
+ - '**/*.cjs'
47
+ - '**/*.jsx'
48
+ - '**/*.ts'
49
+ - '**/*.tsx'
50
+ - '**/*.vue'
51
+ - '**/eslint.config.*'
52
+
53
+ pull_request:
54
+ branches:
55
+ - dev
56
+
57
+ concurrency:
58
+ group: ${{ github.ref }}-${{ github.workflow }}
59
+ cancel-in-progress: true
60
+
61
+ jobs:
62
+ eslint:
63
+ runs-on: ubuntu-latest
64
+ steps:
65
+ - uses: actions/checkout@v4
66
+
67
+ - uses: oven-sh/setup-bun@v2
68
+
69
+ - name: Cache Bun dependencies
70
+ uses: actions/cache@v4
71
+ with:
72
+ path: |
73
+ ~/.bun/install/cache
74
+ node_modules
75
+ key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
76
+ restore-keys: |
77
+ ${{ runner.os }}-bun-
78
+
79
+ - name: Install dependencies
80
+ run: bun install --frozen-lockfile
81
+
82
+ - name: Eslint
83
+ run: |
84
+ bunx oxlint
85
+ bunx eslint .
86
+ ```
87
+
88
+ **Без дублювання CI:** якщо в `.github/workflows` уже є `lint.yml` з тими самими кроками `oxlint` або `eslint`, видали зайвий workflow — лінт JS має виконуватися в одному місці.
89
+
90
+ У корені проєкту має бути `eslint.config.js` із розподілом директорій за типом коду:
91
+
92
+ ```javascript title="eslint.config.js"
93
+ import { getConfig } from '@nitra/eslint-config'
94
+
95
+ export default [
96
+ ...getConfig({
97
+ node: ['npm']
98
+ })
99
+ ]
100
+ ```
101
+
102
+ У монорепо пакети з Vite (frontend) вкажи в секції `vue`, решту — у секції `node` у виклику `getConfig`.
@@ -92,12 +92,14 @@ spec:
92
92
  type: PathPrefix
93
93
  value: /$PUBLIC_PATH/
94
94
  backendRefs:
95
- - name: user-site
95
+ - name: $SERVICE_NAME
96
96
  port: 8080
97
97
  ```
98
98
 
99
99
  де $PUBLIC_PATH підставляється з ini файлу з dev середовища, а якщо для інших середовищ відрізняється то підставляється в kustomization.ya,l відповідні значення з ini середовища.
100
100
 
101
+ В $SERVICE_NAME повинно бути вказано ім'я сервісу, яке буде використовуватися в k8s.
102
+
101
103
  В Dockerfile потрібно додати команду для стиснення файлів, які потім використовуватимуться з `gzip_static on`:
102
104
 
103
105
  ```dockerfile
@@ -32,7 +32,7 @@ version: '1.0'
32
32
  "lint-style": "stylelint '**/*.{css,scss,vue}' --fix",
33
33
  },
34
34
  "devDependencies": {
35
- "@nitra/stylelint-config": "^1.3.0"
35
+ "@nitra/stylelint-config": "^1.4.0"
36
36
  },
37
37
  "stylelint": {
38
38
  "extends": "@nitra/stylelint-config"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nitra/cursor",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "description": "CLI для завантаження cursor-правил Nitra у локальний репозиторій",
5
5
  "keywords": [
6
6
  "cli",
@@ -31,5 +31,7 @@
31
31
  "scripts": {
32
32
  "test": "npx coverage-node test/index.js"
33
33
  },
34
- "dependencies": {}
34
+ "engines": {
35
+ "node": ">=24"
36
+ }
35
37
  }