eslint-plugin-ai-rules 0.3.0 → 0.3.1

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/README.md CHANGED
@@ -422,7 +422,7 @@ structure: {
422
422
 
423
423
  ```ts
424
424
  structure: {
425
- ignoredPaths: ['dist/**', 'coverage/**', 'src/services/generated/**'],
425
+ ignoredPaths: ['dist/**', 'coverage/**', 'src/shared/services/generated/**'],
426
426
  }
427
427
  ```
428
428
 
@@ -579,6 +579,8 @@ These violations are intentional and should be fixed during migration.
579
579
 
580
580
  ### Frontend preset relations
581
581
 
582
+ All global frontend layers live under `src/shared` (for example `src/shared/components`). Page-local layers remain under `src/pages/*`.
583
+
582
584
  | Layer | Can import | Same layer |
583
585
  |-------|------------|------------|
584
586
  | components | components, hooks, contexts, services, generated, utils, helpers, constants, env | yes |
@@ -731,32 +733,36 @@ Custom relation message:
731
733
  │ index.html, AGENTS.md, README.md, LICENSE
732
734
  ├── src/
733
735
  │ ├── App.tsx, AppRoutes.tsx, main.tsx, index.css, vite-env.d.ts
734
- │ ├── components/*.tsx
735
- │ ├── components/ui/*.{ts,tsx}
736
- │ ├── constants/*.ts
737
- │ ├── contexts/*.tsx
738
- │ ├── env/index.ts
739
- │ ├── helpers/*.ts
740
- │ ├── hooks/*.ts
741
- │ ├── pages/*.tsx
742
- │ ├── pages/<feature-kebab>/
743
- │ │ ├── *.tsx, helpers.ts, schema.ts, types.ts
744
- │ │ ├── components/*.tsx
745
- │ │ ├── hooks/*.ts
746
- │ │ ├── services/*.ts
736
+ │ ├── shared/
737
+ │ │ ├── components/
738
+ │ │ │ ├── *.tsx
739
+ │ │ │ └── ui/*.{ts,tsx}
740
+ │ │ ├── constants/*.ts
747
741
  │ │ ├── contexts/*.tsx
742
+ │ │ ├── env/index.ts
748
743
  │ │ ├── helpers/*.ts
749
- │ │ └── tabs/<tab-kebab>/
750
- │ │ ├── *.tsx
751
- │ │ └── <section-kebab>/
752
- │ │ ├── *.tsx, *.ts
753
- │ │ ├── components/*.tsx
754
- │ │ └── contents/
755
- │ │ ├── *.tsx
756
- │ │ └── components/*.tsx
757
- │ ├── services/generated/** (ignored)
758
- │ ├── services/utils/*.ts
759
- │ └── utils/*.ts
744
+ │ │ ├── hooks/*.ts
745
+ │ │ ├── services/
746
+ │ │ │ ├── generated/** (ignored)
747
+ │ │ │ └── utils/*.ts
748
+ │ │ └── utils/*.ts
749
+ │ └── pages/
750
+ │ ├── *.tsx
751
+ │ └── <feature-kebab>/
752
+ │ ├── *.tsx, helpers.ts, schema.ts, types.ts
753
+ │ ├── components/*.tsx
754
+ │ ├── hooks/*.ts
755
+ │ ├── services/*.ts
756
+ │ ├── contexts/*.tsx
757
+ │ ├── helpers/*.ts
758
+ │ └── tabs/<tab-kebab>/
759
+ │ ├── *.tsx
760
+ │ └── <section-kebab>/
761
+ │ ├── *.tsx, *.ts
762
+ │ ├── components/*.tsx
763
+ │ └── contents/
764
+ │ ├── *.tsx
765
+ │ └── components/*.tsx
760
766
  ├── e2e/
761
767
  │ ├── .auth/** (ignored)
762
768
  │ ├── fixtures/*
@@ -1293,16 +1299,19 @@ eslint-ai-guard/
1293
1299
 
1294
1300
  ## Publishing
1295
1301
 
1302
+ 1. Change `version` in `package.json`.
1303
+ 2. Optionally run `yarn build` to check the build and generated version.
1304
+ 3. Run `npm publish`.
1305
+
1306
+ `prepack` runs `yarn build` automatically, so `npm publish` always packs a fresh `dist`. The plugin version is injected from `package.json` during the build, so you do not need to edit `src/plugin.ts`.
1307
+
1308
+ For an extra check before publishing:
1309
+
1296
1310
  ```bash
1297
- npm run verify
1298
- npm run test:coverage
1299
- npm run test:release
1300
- npm version patch|minor|major
1301
- npm publish --access public
1311
+ yarn verify
1312
+ npm pack --dry-run
1302
1313
  ```
1303
1314
 
1304
- `prepublishOnly` runs `verify` and refuses to publish with any uncommitted, staged or untracked changes.
1305
-
1306
1315
  ## Legacy
1307
1316
 
1308
1317
  `eslint/` keeps the three original rule implementations before packaging. Source of truth is `src/rules/`.
package/dist/index.cjs CHANGED
@@ -632,7 +632,7 @@ function getSortedContent(content) {
632
632
  var plugin = {
633
633
  meta: {
634
634
  name: "eslint-plugin-ai-rules",
635
- version: "0.3.0"
635
+ version: "0.3.1"
636
636
  },
637
637
  rules: {
638
638
  "filename-pascal-case": filenamePascalCase,
@@ -1224,15 +1224,15 @@ var frontendRelations = {
1224
1224
  pageContext: "src/pages/*/contexts",
1225
1225
  pageHelper: "src/pages/*/helpers",
1226
1226
  page: "src/pages/*",
1227
- components: "src/components",
1228
- hooks: "src/hooks",
1229
- contexts: "src/contexts",
1230
- generated: "src/services/generated",
1231
- services: "src/services",
1232
- utils: "src/utils",
1233
- helpers: "src/helpers",
1234
- constants: "src/constants",
1235
- env: "src/env"
1227
+ components: "src/shared/components",
1228
+ hooks: "src/shared/hooks",
1229
+ contexts: "src/shared/contexts",
1230
+ generated: "src/shared/services/generated",
1231
+ services: "src/shared/services",
1232
+ utils: "src/shared/utils",
1233
+ helpers: "src/shared/helpers",
1234
+ constants: "src/shared/constants",
1235
+ env: "src/shared/env"
1236
1236
  },
1237
1237
  scope: {
1238
1238
  capture: "page",
@@ -1441,34 +1441,49 @@ var frontendPreset = {
1441
1441
  "vite-env.d.ts"
1442
1442
  ],
1443
1443
  folders: {
1444
- components: {
1445
- files: [pascalTsx],
1444
+ shared: {
1446
1445
  folders: {
1447
- ui: {
1448
- files: [pascalTsOrTsx]
1446
+ components: {
1447
+ files: [pascalTsx],
1448
+ folders: {
1449
+ ui: {
1450
+ files: [pascalTsOrTsx]
1451
+ }
1452
+ }
1453
+ },
1454
+ constants: {
1455
+ files: [pascalTs]
1456
+ },
1457
+ contexts: {
1458
+ files: [
1459
+ {
1460
+ case: "PascalCase",
1461
+ extensions: [".tsx"]
1462
+ }
1463
+ ]
1464
+ },
1465
+ env: {
1466
+ files: ["index.ts"]
1467
+ },
1468
+ helpers: {
1469
+ files: [pascalTs]
1470
+ },
1471
+ hooks: {
1472
+ files: [pascalTs]
1473
+ },
1474
+ services: {
1475
+ folders: {
1476
+ generated: { ignore: true },
1477
+ utils: {
1478
+ files: [pascalTs]
1479
+ }
1480
+ }
1481
+ },
1482
+ utils: {
1483
+ files: [pascalTs]
1449
1484
  }
1450
1485
  }
1451
1486
  },
1452
- constants: {
1453
- files: [pascalTs]
1454
- },
1455
- contexts: {
1456
- files: [
1457
- {
1458
- case: "PascalCase",
1459
- extensions: [".tsx"]
1460
- }
1461
- ]
1462
- },
1463
- env: {
1464
- files: ["index.ts"]
1465
- },
1466
- hooks: {
1467
- files: [pascalTs]
1468
- },
1469
- helpers: {
1470
- files: [pascalTs]
1471
- },
1472
1487
  pages: {
1473
1488
  files: [pascalTsx],
1474
1489
  folders: {
@@ -1531,17 +1546,6 @@ var frontendPreset = {
1531
1546
  }
1532
1547
  }
1533
1548
  }
1534
- },
1535
- services: {
1536
- folders: {
1537
- generated: { ignore: true },
1538
- utils: {
1539
- files: [pascalTs]
1540
- }
1541
- }
1542
- },
1543
- utils: {
1544
- files: [pascalTs]
1545
1549
  }
1546
1550
  }
1547
1551
  },
@@ -1579,7 +1583,7 @@ var frontendPreset = {
1579
1583
  ...commonIgnoredPaths,
1580
1584
  "playwright-report/**",
1581
1585
  "test-results/**",
1582
- "src/services/generated/**",
1586
+ "src/shared/services/generated/**",
1583
1587
  "scripts/types/**"
1584
1588
  ]
1585
1589
  },