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 +4 -4
- data/AGENTS.md +31 -4
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +1 -1
- data/README.md +13 -2
- data/lib/skyltmax_config/version.rb +1 -1
- data/package.json +34 -26
- data/pnpm-lock.yaml +1192 -32
- data/scripts/peer-deps/audit.js +116 -0
- data/scripts/peer-deps/install.js +160 -0
- data/tests/check-peers.test.js +76 -0
- data/tests/fixtures/manifest-no-peers.json +3 -0
- data/tests/fixtures/manifest-with-peers.json +6 -0
- data/tests/install-peers.test.js +79 -0
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 252d21d44d2c5a9d4e5ed0ccea80a2bc31e655e6169c0f0ed31ae5a8620c6d49
|
|
4
|
+
data.tar.gz: 667d7138e052e43010994f73dd20f199bf6f7d1e2c7d71e832e57c7b385810bf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
504
|
+
This package uses **peer dependencies** to provide all required tooling while ensuring proper editor/IDE discovery:
|
|
505
505
|
|
|
506
|
-
**
|
|
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
|
-
**
|
|
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
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
|
-
|
|
20
|
-
|
|
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
|
|
data/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signmax/config",
|
|
3
|
-
"version": "0.0.
|
|
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": ">=
|
|
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
|
-
"
|
|
54
|
-
"@eslint/js": "
|
|
55
|
-
"@total-typescript/ts-reset": "
|
|
56
|
-
"@typescript-eslint/eslint-plugin": "
|
|
57
|
-
"@typescript-eslint/parser": "
|
|
58
|
-
"@typescript-eslint/utils": "
|
|
59
|
-
"@vitest/eslint-plugin": "
|
|
60
|
-
"eslint": "
|
|
61
|
-
"eslint-config-prettier": "
|
|
62
|
-
"eslint-plugin-import-x": "
|
|
63
|
-
"eslint-plugin-jest-dom": "
|
|
64
|
-
"eslint-plugin-jsx-a11y": "
|
|
65
|
-
"eslint-plugin-prettier": "
|
|
66
|
-
"eslint-plugin-react": "
|
|
67
|
-
"eslint-plugin-react-hooks": "
|
|
68
|
-
"eslint-plugin-testing-library": "
|
|
69
|
-
"globals": "
|
|
70
|
-
"prettier": "
|
|
71
|
-
"prettier-plugin-tailwindcss": "
|
|
72
|
-
"tslib": "
|
|
73
|
-
"typescript": "
|
|
74
|
-
"typescript-eslint": "
|
|
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
|
}
|