@nitra/cursor 1.9.3 → 1.9.4

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/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@
4
4
 
5
5
  Формат — [Keep a Changelog](https://keepachangelog.com/uk/1.1.0/), нумерація — [SemVer](https://semver.org/lang/uk/).
6
6
 
7
+ ## [1.9.4] - 2026-05-11
8
+
9
+ ### Removed
10
+
11
+ - **graphql — вимога `scripts.dump-schema` у `package.json` прибрана:** правило `graphql.mdc` більше не вимагає канонічний скрипт `dump-schema` (раніше — `bunx graphqurl http://localhost:4040/v1/graphql -H 'X-Hasura-Admin-Secret: secret' --introspect > schema.graphql`) у корені проєкту за наявності gql tagged template literals. У `.mdc` відповідну буліт-точку та JSON-фрагмент видалено; фраза про «стандартний спосіб оновлення локальної `schema.graphql`» теж прибрана з підсумкового речення. Каталог `npm/policy/graphql/` (єдиний файл `package_json/package_json.rego` з deny-правилами на відсутність/неканонічний `scripts.dump-schema`) видалено повністю. Запис реєстру `graphql.package_json` (policyDir `graphql`, rule `graphql`, single `package.json`) прибрано з `npm/scripts/lint-conftest.mjs` (заголовок секції перейменовано — `graphql` вилучено). JSDoc-преамбулу `npm/scripts/check-graphql.mjs` оновлено: видалено абзац про rego-порт перевірки `dump-schema` і згадку `scripts.dump-schema` з докстрингу `check()`. Сам JS-чек і так не торкався `package.json` — після видалення rego-полісі ніяких runtime-перевірок `dump-schema` не лишається. У кореневому `package.json` репо cursor скрипт `dump-schema` теж видалено, оскільки тримати його як shim без правила немає сенсу.
12
+
7
13
  ## [1.9.3] - 2026-05-11
8
14
 
9
15
  ### Fixed
package/mdc/graphql.mdc CHANGED
@@ -8,18 +8,9 @@ alwaysApply: false
8
8
  Якщо в **`.vue`** або в **JavaScript / TypeScript** джерелах (`.js`, `.mjs`, `.cjs`, `.ts`, `.tsx`, `.jsx` тощо) зустрічається **tagged template literal** з тегом **`gql`** (типово `gql\`query …\`` для GraphQL-запиту), у **корені репозиторію** мають бути:
9
9
 
10
10
  - файл **`.graphqlrc.yml`** ([GraphQL Config](https://the-guild.dev/graphql/config/docs));
11
- - у **`.vscode/extensions.json`** в масиві **`recommendations`** — запис **`graphql.vscode-graphql`**;
12
- - у кореневому **`package.json`** скрипт:
11
+ - у **`.vscode/extensions.json`** в масиві **`recommendations`** — запис **`graphql.vscode-graphql`**.
13
12
 
14
- ```json title="package.json (фрагмент)"
15
- {
16
- "scripts": {
17
- "dump-schema": "bunx graphqurl http://localhost:4040/v1/graphql -H 'X-Hasura-Admin-Secret: secret' --introspect > schema.graphql"
18
- }
19
- }
20
- ```
21
-
22
- Це забезпечує підсвітку та діагностику GraphQL в редакторі, а також стандартний спосіб оновлення локальної `schema.graphql`.
13
+ Це забезпечує підсвітку та діагностику GraphQL в редакторі.
23
14
 
24
15
  Деталі виявлення `gql` у скриптах (у т.ч. лише `<script>` у SFC) — **`npm/scripts/check-graphql.mjs`** / **`npm/scripts/utils/graphql-gql-scan.mjs`**.
25
16
 
@@ -28,7 +19,7 @@ alwaysApply: false
28
19
  Підстав свої шляхи до схеми та до файлів з операціями; приклад орієнтиру:
29
20
 
30
21
  ```yaml title=".graphqlrc.yml"
31
- schema: schema.graphql
22
+ schema: node_modules/@nitra/efes-docs/schema/maya.graphql
32
23
  documents:
33
24
  - '**/*.{vue,js,ts,tsx}'
34
25
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nitra/cursor",
3
- "version": "1.9.3",
3
+ "version": "1.9.4",
4
4
  "description": "CLI для завантаження cursor-правил (префікс n-) у локальний репозиторій",
5
5
  "keywords": [
6
6
  "cli",
@@ -5,10 +5,6 @@
5
5
  * Обхід репозиторію — **`walkDir`** від **`process.cwd()`** (пропуски як у інших check). Кандидати — **`.vue`** та **`.js`/`.ts`/`.jsx`/`.tsx`** тощо; пропуск **`.d.ts`**, **auto-imports.d.ts** тощо — **`shouldSkipFileForGqlScan`**.
6
6
  *
7
7
  * Виявлення **`gql`** — **oxc-parser** після витягування `<script>` з SFC (**`graphql-gql-scan.mjs`**). Якщо збігів немає — перевірка завершується успішно без вимог до конфігів.
8
- *
9
- * Перевірку `scripts.dump-schema == REQUIRED_DUMP_SCHEMA_SCRIPT` у `package.json`
10
- * перенесено в Rego (`npm/policy/graphql/package_json/`); `bun run lint-conftest`
11
- * запускає її окремо.
12
8
  */
13
9
  import { existsSync } from 'node:fs'
14
10
  import { readFile } from 'node:fs/promises'
@@ -107,8 +103,8 @@ async function checkExtensionsRecommendation(pass, fail) {
107
103
  }
108
104
 
109
105
  /**
110
- * Перевіряє graphql.mdc: умовна вимога .graphqlrc.yml, graphql.vscode-graphql
111
- * і scripts.dump-schema за наявності gql tagged templates.
106
+ * Перевіряє graphql.mdc: умовна вимога .graphqlrc.yml і graphql.vscode-graphql
107
+ * за наявності gql tagged templates.
112
108
  * @returns {Promise<number>} 0 — OK, 1 — порушення
113
109
  */
114
110
  export async function check() {
@@ -157,8 +157,7 @@ const TARGETS = [
157
157
  single: '.github/workflows/lint-js.yml'
158
158
  },
159
159
 
160
- // ── graphql / image-compress / capacitor ────────────────────────────────
161
- { namespace: 'graphql.package_json', policyDir: 'graphql', rule: 'graphql', single: 'package.json' },
160
+ // ── image-compress / capacitor ──────────────────────────────────────────
162
161
  {
163
162
  namespace: 'image_compress.package_json',
164
163
  policyDir: 'image_compress',
@@ -1,35 +0,0 @@
1
- # Порт перевірки `package.json` з `npm/scripts/check-graphql.mjs` (graphql.mdc).
2
- #
3
- # Запуск (локально, ЯКЩО проект містить `gql\`…\`` теги — gating робить JS-частина
4
- # через oxc-parser-скан):
5
- # conftest test package.json -p npm/policy/graphql --namespace graphql.package_json
6
- #
7
- # Перевіряє: `scripts.dump-schema` точно відповідає канону graphql.mdc.
8
- #
9
- # AST-скан коду на `gql\`…\`` template literals і FS-перевірки (наявність
10
- # `.graphqlrc.yml`, `.vscode/extensions.json` з `graphql.vscode-graphql`) — у JS.
11
- #
12
- # Структура каталогу збігається зі шляхом пакету (regal: directory-package-mismatch).
13
- # Конвенція проєкту — `import rego.v1` + multi-value `deny contains msg if { … }`
14
- # (.cursor/rules/conftest.mdc). Лінт — `bun run lint-rego` (regal).
15
- package graphql.package_json
16
-
17
- import rego.v1
18
-
19
- required_dump_schema := concat("", [
20
- "bunx graphqurl http://localhost:4040/v1/graphql ",
21
- "-H 'X-Hasura-Admin-Secret: secret' --introspect > schema.graphql",
22
- ])
23
-
24
- deny contains msg if {
25
- scripts := object.get(input, "scripts", {})
26
- not "dump-schema" in object.keys(scripts)
27
- msg := "package.json: відсутній scripts.dump-schema (graphql.mdc)"
28
- }
29
-
30
- deny contains msg if {
31
- dump := object.get(object.get(input, "scripts", {}), "dump-schema", "")
32
- dump != ""
33
- dump != required_dump_schema
34
- msg := sprintf("package.json: scripts.dump-schema має бути канонічним з graphql.mdc (зараз %q)", [dump])
35
- }