skyltmax_config 0.0.7 → 0.0.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0635b272bd30a126daa5ea09e2aa10ce63567c109c0b606e0018083620ef898
4
- data.tar.gz: b21dddaf0d2b757c3c87a7239d89f82772a86420ed36c57e087be2b30fb7b586
3
+ metadata.gz: 252d21d44d2c5a9d4e5ed0ccea80a2bc31e655e6169c0f0ed31ae5a8620c6d49
4
+ data.tar.gz: 667d7138e052e43010994f73dd20f199bf6f7d1e2c7d71e832e57c7b385810bf
5
5
  SHA512:
6
- metadata.gz: 2b96358afb801106c087d22fcaa0d5206896e77aa43b74f202ff1a987231f018d338d3af4e0a53458e2d416c95a2db7e20254a11194919e3d9de7910748a595d
7
- data.tar.gz: 324d6f181de3e97a1c09a201f1f1cd722332cbbda3a1f08dd65cdde5b265b6b925864eb4234ae75d21c89f52ffee6be9f25a884e22feebcb0a7020ec0f1730ff
6
+ metadata.gz: b78d94ca3439d8cfc9a88b37602c8208e2678864bc1a79fc04971aa9db712dba0d2086d28fe2672c7eb49dcfccfaf20ff043a8b963280a02749b2763ae0dfe77
7
+ data.tar.gz: e4e6178ea79fc07e34b006d270e9bd2ff8381fa097628f06f8a7ffc228cc9b2b09d3112fb9b3b63d76dd9949f37a468db9bdfe25f6b54edac97e5ef1dfea564a
data/AGENTS.md CHANGED
@@ -501,9 +501,30 @@ This package uses a dual-publishing approach:
501
501
 
502
502
  ### Dependency Management
503
503
 
504
- This package bundles all required tooling as direct dependencies, making it the **single source of truth** for versions:
504
+ This package uses **peer dependencies** to provide all required tooling while ensuring proper editor/IDE discovery:
505
505
 
506
- **Dependencies (all tooling bundled):**
506
+ **Why Peer Dependencies?**
507
+
508
+ 1. **Editor Discovery:** Tools like VSCode, WebStorm, and others look for `prettier`, `eslint`, and `typescript` in the
509
+ project's root `node_modules`. When bundled as regular dependencies, they end up in
510
+ `node_modules/@signmax/config/node_modules`, which editors cannot find.
511
+
512
+ 2. **Automatic Installation:** Modern package managers with `autoInstallPeers` enabled (pnpm's default, npm 7+
513
+ configurable) automatically install peer dependencies, so users get a "single install" experience.
514
+
515
+ 3. **Hoisting:** Peer dependencies are hoisted to the root `node_modules`, making them discoverable by all tools and
516
+ editors.
517
+
518
+ 4. **Version Control:** This package controls the **exact** versions (no semver ranges) to ensure all consuming projects
519
+ get identical tool versions for reproducible linting/formatting/type-checking.
520
+
521
+ **Structure:**
522
+
523
+ - **peerDependencies:** All ESLint, Prettier, TypeScript tools and plugins with **exact versions** (no semver ranges)
524
+ - **devDependencies:** Only dev-specific tools (`@types/react`, `npm-run-all`, `react`) - peer dependencies are
525
+ auto-installed by pnpm for local development
526
+
527
+ **All tooling (declared as peer dependencies with exact versions):**
507
528
 
508
529
  - **ESLint & Core:** `eslint`, `@eslint/js`, `typescript-eslint`
509
530
  - **TypeScript ESLint:** `@typescript-eslint/eslint-plugin`, `@typescript-eslint/parser`, `@typescript-eslint/utils`
@@ -513,12 +534,18 @@ This package bundles all required tooling as direct dependencies, making it the
513
534
  - **Testing:** `@vitest/eslint-plugin`, `eslint-plugin-testing-library`, `eslint-plugin-jest-dom`
514
535
  - **Utilities:** `globals`
515
536
 
516
- **Why this approach?**
537
+ **Benefits:**
538
+
539
+ **Benefits:**
517
540
 
518
541
  - ✅ **Version control:** Consuming projects get consistent, tested versions
519
- - ✅ **Simplified setup:** Single `npm install @signmax/config` gets everything
542
+ - ✅ **Simplified setup:** Single `npm install @signmax/config` gets everything (with autoInstallPeers enabled)
520
543
  - ✅ **No version conflicts:** This package manages compatibility between tools
521
544
  - ✅ **Updates centralized:** Bump versions here, all projects benefit
545
+ - ✅ **Editor compatibility:** Tools are hoisted to root `node_modules/` for VSCode, WebStorm, etc.
546
+
547
+ **Note:** pnpm enables `autoInstallPeers` by default. For npm 7+, you may need to enable it with
548
+ `npm config set auto-install-peers true` or install peers manually if warnings appear.
522
549
 
523
550
  **DevDependencies (development only):**
524
551
 
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ### Unreleased
4
4
 
5
+ ### [0.0.9] - 2025-11-05
6
+
7
+ - feat: Add helper CLI for syncing peer dependencies.
8
+ - chore: Warn consumers about missing or mismatched peer dependencies on postinstall.
9
+
10
+ ### [0.0.8] - 2025-11-05
11
+
12
+ - fix: Move dependencies to peer dependencies.
13
+
5
14
  ### [0.0.7] - 2025-11-05
6
15
 
7
16
  - feat: Make prettier tailwind plugin optional.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- skyltmax_config (0.0.7)
4
+ skyltmax_config (0.0.9)
5
5
  rubocop (>= 1.81.0, < 2)
6
6
  rubocop-performance (>= 1.26.0, < 2)
7
7
  rubocop-rails (>= 2.33.0, < 3)
data/README.md CHANGED
@@ -16,8 +16,19 @@ npm install --save-dev @signmax/config
16
16
  pnpm add -D @signmax/config
17
17
  ```
18
18
 
19
- All required tools (ESLint, Prettier, TypeScript, and all plugins) are bundled as dependencies. This package is the
20
- single source of truth for all tooling versions—no need to install peer dependencies separately.
19
+ Once the package is in place, sync the tooling versions we pin:
20
+
21
+ ```bash
22
+ npx signmax-config-peers --dry-run # inspect the command (optional)
23
+ npx signmax-config-peers
24
+ ```
25
+
26
+ The helper installs the exact ESLint, Prettier, TypeScript, and plugin versions we dogfood with. It currently supports
27
+ `npm`, `pnpm`, and `bun`. If you prefer to manage things yourself, install each entry from
28
+ [`peerDependencies`](package.json) with the version locked there.
29
+
30
+ > After installation the package runs a lightweight audit and will warn if any peer is missing or pinned to a different
31
+ > version. When that happens, rerun `npx signmax-config-peers` to sync everything.
21
32
 
22
33
  ### Ruby
23
34
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SkyltmaxConfig
4
- VERSION = "0.0.7"
4
+ VERSION = "0.0.9"
5
5
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signmax/config",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -32,51 +32,59 @@
32
32
  "./reset.d.ts": "./reset.d.ts",
33
33
  "./eslint": "./eslint.js"
34
34
  },
35
+ "bin": {
36
+ "signmax-config-peers": "./scripts/peer-deps/install.js"
37
+ },
35
38
  "files": [
36
39
  "*.js",
37
40
  "*.json",
38
41
  "*.d.ts",
39
42
  "*.yml",
43
+ "scripts/**",
40
44
  "lib/**",
41
45
  "README.md",
42
46
  "LICENSE"
43
47
  ],
44
48
  "engines": {
45
- "node": ">=18.0.0"
49
+ "node": ">=20.0.0"
46
50
  },
47
51
  "scripts": {
48
52
  "format": "prettier . --write",
49
53
  "lint": "eslint .",
50
54
  "typecheck": "tsc",
51
- "validate": "run-p -l format lint typecheck"
55
+ "validate": "run-p -l format lint typecheck",
56
+ "test": "vitest run",
57
+ "postinstall": "node ./scripts/peer-deps/audit.js",
58
+ "bump": "npx npm-check-updates --dep prod,dev,peer,optional --target latest -i"
52
59
  },
53
- "dependencies": {
54
- "@eslint/js": "^9.33.0",
55
- "@total-typescript/ts-reset": "^0.6.1",
56
- "@typescript-eslint/eslint-plugin": "^8.39.1",
57
- "@typescript-eslint/parser": "^8.39.1",
58
- "@typescript-eslint/utils": "^8.39.1",
59
- "@vitest/eslint-plugin": "^1.3.4",
60
- "eslint": "^9.33.0",
61
- "eslint-config-prettier": "^10.1.8",
62
- "eslint-plugin-import-x": "^4.16.1",
63
- "eslint-plugin-jest-dom": "^5.5.0",
64
- "eslint-plugin-jsx-a11y": "^6.10.2",
65
- "eslint-plugin-prettier": "^5.5.4",
66
- "eslint-plugin-react": "^7.37.5",
67
- "eslint-plugin-react-hooks": "^5.2.0",
68
- "eslint-plugin-testing-library": "^7.6.6",
69
- "globals": "^16.3.0",
70
- "prettier": "^3.6.2",
71
- "prettier-plugin-tailwindcss": "^0.7.1",
72
- "tslib": "^2.8.1",
73
- "typescript": "^5.9.2",
74
- "typescript-eslint": "^8.39.1"
60
+ "peerDependencies": {
61
+ "@eslint/js": "9.39.1",
62
+ "@total-typescript/ts-reset": "0.6.1",
63
+ "@typescript-eslint/eslint-plugin": "8.46.3",
64
+ "@typescript-eslint/parser": "8.46.3",
65
+ "@typescript-eslint/utils": "8.46.3",
66
+ "@vitest/eslint-plugin": "1.4.1",
67
+ "eslint": "9.39.1",
68
+ "eslint-config-prettier": "10.1.8",
69
+ "eslint-plugin-import-x": "4.16.1",
70
+ "eslint-plugin-jest-dom": "5.5.0",
71
+ "eslint-plugin-jsx-a11y": "6.10.2",
72
+ "eslint-plugin-prettier": "5.5.4",
73
+ "eslint-plugin-react": "7.37.5",
74
+ "eslint-plugin-react-hooks": "7.0.1",
75
+ "eslint-plugin-testing-library": "7.13.3",
76
+ "globals": "16.5.0",
77
+ "prettier": "3.6.2",
78
+ "prettier-plugin-tailwindcss": "0.7.1",
79
+ "tslib": "2.8.1",
80
+ "typescript": "5.9.3",
81
+ "typescript-eslint": "8.46.3"
75
82
  },
76
83
  "devDependencies": {
77
84
  "@types/react": "^18.3.0",
78
85
  "npm-run-all": "^4.1.5",
79
- "react": "^18.3.0"
86
+ "react": "^18.3.0",
87
+ "vitest": "4.0.7"
80
88
  },
81
89
  "prettier": "./prettier.js"
82
90
  }