@williamthorsen/nmr 0.17.1 → 0.18.0
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 +27 -29
- package/dist/esm/default-scripts.js +2 -4
- package/dist/esm/helpers/package-json.js +1 -2
- package/package.json +14 -5
package/README.md
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Context-aware script runner for PNPM monorepos. Ships an `nmr` (node-monorepo run) binary that provides centralized, consistent script execution across workspace packages and the monorepo root.
|
|
4
4
|
|
|
5
5
|
<!-- section:release-notes -->
|
|
6
|
-
## Release notes — v0.
|
|
6
|
+
## Release notes — v0.18.0 (2026-07-13)
|
|
7
7
|
|
|
8
8
|
### 🐛 Bug fixes
|
|
9
9
|
|
|
10
|
-
-
|
|
10
|
+
- Remove the attw check and the nmr-attw binary (#469)
|
|
11
11
|
|
|
12
|
-
Fixes an issue where
|
|
12
|
+
Fixes an issue where a repo using nmr's default scripts could not pass `check:strict` without installing `@arethetypeswrong/cli` and conforming to inflexible requirements of questionable value. The `attw` check is removed.
|
|
13
13
|
<!-- /section:release-notes -->
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
@@ -139,26 +139,25 @@ These scripts are available out of the box. Repo-wide config (tier 2) and per-pa
|
|
|
139
139
|
|
|
140
140
|
### Workspace scripts
|
|
141
141
|
|
|
142
|
-
| Command | Runs
|
|
143
|
-
| --------------- |
|
|
144
|
-
| `
|
|
145
|
-
| `
|
|
146
|
-
| `check`
|
|
147
|
-
| `
|
|
148
|
-
| `
|
|
149
|
-
| `
|
|
150
|
-
| `fix`
|
|
151
|
-
| `
|
|
152
|
-
| `fmt`
|
|
153
|
-
| `
|
|
154
|
-
| `lint`
|
|
155
|
-
| `lint:
|
|
156
|
-
| `
|
|
157
|
-
| `test`
|
|
158
|
-
| `test:
|
|
159
|
-
| `
|
|
160
|
-
| `
|
|
161
|
-
| `view-coverage` | `open coverage/index.html` |
|
|
142
|
+
| Command | Runs |
|
|
143
|
+
| --------------- | -------------------------------------------------------- |
|
|
144
|
+
| `build` | `compile` |
|
|
145
|
+
| `check` | `typecheck`, `fmt:check`, `lint:check`, `test` |
|
|
146
|
+
| `check:strict` | `typecheck`, `fmt:check`, `lint:strict`, `test:coverage` |
|
|
147
|
+
| `clean` | `pnpm exec rimraf dist/*` |
|
|
148
|
+
| `compile` | `nmr-compile` |
|
|
149
|
+
| `fix` | `lint`, `fmt` |
|
|
150
|
+
| `fix:check` | `fmt:check`, `lint:check` |
|
|
151
|
+
| `fmt` | `prettier --list-different --write .` |
|
|
152
|
+
| `fmt:check` | `prettier --check .` |
|
|
153
|
+
| `lint` | `eslint --fix .` |
|
|
154
|
+
| `lint:check` | `eslint .` |
|
|
155
|
+
| `lint:strict` | `strict-lint` |
|
|
156
|
+
| `test` | `pnpm exec vitest` |
|
|
157
|
+
| `test:coverage` | `pnpm exec vitest --coverage` |
|
|
158
|
+
| `test:watch` | `pnpm exec vitest --watch` |
|
|
159
|
+
| `typecheck` | `tsgo --noEmit` |
|
|
160
|
+
| `view-coverage` | `open coverage/index.html` |
|
|
162
161
|
|
|
163
162
|
#### Integration test variant
|
|
164
163
|
|
|
@@ -184,12 +183,11 @@ A package gets this variant automatically when it contains a `vitest.integration
|
|
|
184
183
|
|
|
185
184
|
#### Check and quality
|
|
186
185
|
|
|
187
|
-
| Command | Runs
|
|
188
|
-
| ------------------- |
|
|
189
|
-
| `
|
|
190
|
-
| `check`
|
|
191
|
-
| `check:
|
|
192
|
-
| `check:strict` | `typecheck`, `fmt:check`, `lint:strict`, `test:coverage`, `attw`, `check:agent-files` |
|
|
186
|
+
| Command | Runs |
|
|
187
|
+
| ------------------- | ----------------------------------------------------------------------------- |
|
|
188
|
+
| `check` | `typecheck`, `fmt:check`, `lint:check`, `test` |
|
|
189
|
+
| `check:agent-files` | `nmr-sync-agent-files --check` |
|
|
190
|
+
| `check:strict` | `typecheck`, `fmt:check`, `lint:strict`, `test:coverage`, `check:agent-files` |
|
|
193
191
|
|
|
194
192
|
#### Fix
|
|
195
193
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export const commonWorkspaceScripts = {
|
|
2
|
-
attw: 'attw --pack --profile esm-only',
|
|
3
2
|
build: ['compile'],
|
|
4
3
|
check: ['typecheck', 'fmt:check', 'lint:check', 'test'],
|
|
5
|
-
'check:strict': ['typecheck', 'fmt:check', 'lint:strict', 'test:coverage'
|
|
4
|
+
'check:strict': ['typecheck', 'fmt:check', 'lint:strict', 'test:coverage'],
|
|
6
5
|
clean: 'pnpm exec rimraf dist/*',
|
|
7
6
|
compile: 'nmr-compile',
|
|
8
7
|
fix: ['lint', 'fmt'],
|
|
@@ -28,14 +27,13 @@ export const standardTestScripts = {
|
|
|
28
27
|
'test:watch': 'pnpm exec vitest --watch',
|
|
29
28
|
};
|
|
30
29
|
export const rootScripts = {
|
|
31
|
-
attw: 'pnpm --recursive exec nmr attw',
|
|
32
30
|
audit: ['audit:prod', 'audit:dev'],
|
|
33
31
|
'audit:dev': 'pnpm exec v11y --dev',
|
|
34
32
|
'audit:prod': 'pnpm exec v11y --prod',
|
|
35
33
|
build: 'pnpm --recursive exec nmr build',
|
|
36
34
|
check: ['typecheck', 'fmt:check', 'lint:check', 'test'],
|
|
37
35
|
'check:agent-files': 'nmr-sync-agent-files --check',
|
|
38
|
-
'check:strict': ['typecheck', 'fmt:check', 'lint:strict', 'test:coverage', '
|
|
36
|
+
'check:strict': ['typecheck', 'fmt:check', 'lint:strict', 'test:coverage', 'check:agent-files'],
|
|
39
37
|
ci: ['build', 'check:strict', 'audit'],
|
|
40
38
|
clean: 'pnpm --recursive exec nmr clean',
|
|
41
39
|
fix: ['lint', 'fmt'],
|
|
@@ -2,8 +2,7 @@ import { readFileSync } from 'node:fs';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { isObject } from "./type-guards.js";
|
|
4
4
|
export function readPackageJson(dir) {
|
|
5
|
-
const
|
|
6
|
-
const parsed = JSON.parse(content);
|
|
5
|
+
const parsed = JSON.parse(readFileSync(path.join(dir, 'package.json'), 'utf8'));
|
|
7
6
|
if (!isObject(parsed)) {
|
|
8
7
|
throw new TypeError(`Invalid package.json in ${dir}: expected an object`);
|
|
9
8
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@williamthorsen/nmr",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Context-aware script runner for PNPM monorepos",
|
|
6
6
|
"keywords": [
|
|
@@ -22,9 +22,18 @@
|
|
|
22
22
|
"author": "William Thorsen <william@thorsen.dev> (https://github.com/williamthorsen)",
|
|
23
23
|
"type": "module",
|
|
24
24
|
"exports": {
|
|
25
|
-
".":
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./dist/esm/index.d.ts",
|
|
27
|
+
"default": "./dist/esm/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./scripts": {
|
|
30
|
+
"types": "./dist/esm/scripts.d.ts",
|
|
31
|
+
"default": "./dist/esm/scripts.js"
|
|
32
|
+
},
|
|
33
|
+
"./tests": {
|
|
34
|
+
"types": "./dist/esm/tests/consistency.d.ts",
|
|
35
|
+
"default": "./dist/esm/tests/consistency.js"
|
|
36
|
+
}
|
|
28
37
|
},
|
|
29
38
|
"bin": {
|
|
30
39
|
"ensure-prepublish-hooks": "bin/ensure-prepublish-hooks.js",
|
|
@@ -44,7 +53,7 @@
|
|
|
44
53
|
"jiti": "2.7.0",
|
|
45
54
|
"yaml": "2.9.0",
|
|
46
55
|
"zod": "4.4.3",
|
|
47
|
-
"@williamthorsen/nmr-core": "0.
|
|
56
|
+
"@williamthorsen/nmr-core": "0.7.0"
|
|
48
57
|
},
|
|
49
58
|
"devDependencies": {
|
|
50
59
|
"@williamthorsen/toolbelt.strings": "3.1.4"
|