@draekien/create-d9-app 0.0.3 → 0.0.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/package.json
CHANGED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: upgrade-dependencies
|
|
3
|
+
description: Upgrades outdated patch and minor dependency pins in a pnpm, npm, yarn or bun workspace to exact versions, runs build, check, typecheck and test, and reports every change. Applies when asked to "upgrade dependencies", "update packages", "bump versions", or "update deps".
|
|
4
|
+
argument-hint: "[--accept]"
|
|
5
|
+
allowed-tools: Bash(npm view *), Bash(gh release view *), Bash(gh api *), Bash(pnpm *), Bash(npm *), Bash(yarn *), Bash(bun *), Bash(git diff *), Bash(git status *)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Upgrade dependencies
|
|
9
|
+
|
|
10
|
+
Arguments: `$ARGUMENTS`. `--accept` means the developer accepts the breaking-change list in advance; proceed at step 4 without stopping.
|
|
11
|
+
|
|
12
|
+
Apply patch and minor upgrades only. Never apply a major; list it as `held: major`.
|
|
13
|
+
|
|
14
|
+
## 1. Read the workspace
|
|
15
|
+
|
|
16
|
+
- Package manager: root `package.json` field `packageManager` (`pnpm@11.25.0` means `pnpm`). Call it `<pm>` below.
|
|
17
|
+
- Manifests: root `package.json`, `apps/*/package.json`, `packages/*/package.json`.
|
|
18
|
+
- Pins: entries in `dependencies`, `devDependencies`, `optionalDependencies`. Skip `workspace:*`, `link:`, `file:`, `git`, `npm:` alias and URL specs.
|
|
19
|
+
- Minimum age in minutes: `minimumReleaseAge` in `pnpm-workspace.yaml` or `.npmrc`; if unset, `1440`.
|
|
20
|
+
|
|
21
|
+
## 2. Find upgrades
|
|
22
|
+
|
|
23
|
+
Run once per distinct package name:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npm view <pkg> versions time --json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"versions": ["5.9.2", "5.9.3", "6.0.0-beta", "6.0.2", "6.0.3"],
|
|
32
|
+
"time": {
|
|
33
|
+
"created": "2012-10-01T15:35:39.553Z",
|
|
34
|
+
"modified": "2026-10-10T08:24:07.208Z",
|
|
35
|
+
"5.9.3": "2025-09-30T21:19:38.784Z",
|
|
36
|
+
"6.0.0-beta": "2026-02-11T18:26:37.557Z",
|
|
37
|
+
"6.0.2": "2026-03-23T16:14:45.521Z",
|
|
38
|
+
"6.0.3": "2026-04-16T23:38:27.905Z"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
A package with one version returns `versions` as a string, not an array.
|
|
44
|
+
|
|
45
|
+
Candidates: versions without a `-` prerelease suffix, with `time[version]` at least the minimum age before now.
|
|
46
|
+
|
|
47
|
+
- Same major as the pin, newer than the pin: take the highest. Type is `minor` if the minor differs, else `patch`.
|
|
48
|
+
- Higher major exists: record `held: major` with the highest eligible version. Do not apply it.
|
|
49
|
+
- No candidate newer than the pin: current.
|
|
50
|
+
|
|
51
|
+
If every pin is current, change no files, report `all pins current`, and stop.
|
|
52
|
+
|
|
53
|
+
## 3. Read release notes
|
|
54
|
+
|
|
55
|
+
For each package to upgrade, read the notes for every release after the old version up to and including the new one.
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
gh release view v<version> --repo <owner>/<repo> --json body
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- Repository: `npm view <pkg> repository.url`.
|
|
62
|
+
- No GitHub release for the tag: read `CHANGELOG.md` in the repository for the same range.
|
|
63
|
+
- Record each breaking change, deprecation and migration step per package.
|
|
64
|
+
|
|
65
|
+
## 4. Surface and stop
|
|
66
|
+
|
|
67
|
+
Print one list: package, old version, new version, type, breaking changes and migrations (or `none found`). Then:
|
|
68
|
+
|
|
69
|
+
- Without `--accept`: stop and ask the developer to accept or exclude packages. Edit nothing before the answer.
|
|
70
|
+
- With `--accept`: continue.
|
|
71
|
+
|
|
72
|
+
## 5. Apply
|
|
73
|
+
|
|
74
|
+
- Set each upgraded pin to the exact new version: no `^`, no `~`, no `latest`.
|
|
75
|
+
- Run `<pm> install`.
|
|
76
|
+
- Run each project script with `<pm> run <script>` in this order: `build`, `check`, `typecheck`, `test`. Skip a script the root `package.json` does not define.
|
|
77
|
+
|
|
78
|
+
## 6. Handle a failing check
|
|
79
|
+
|
|
80
|
+
For each failure:
|
|
81
|
+
|
|
82
|
+
- The release notes read in step 3 name the change and its migration: apply the migration, then re-run `<pm> install` and all four scripts.
|
|
83
|
+
- Otherwise: set the package that caused the failure back to its old version, re-run `<pm> install` and all four scripts. Report it as `held: check failed` with the error text.
|
|
84
|
+
|
|
85
|
+
Repeat until `build`, `check`, `typecheck` and `test` all exit 0. Never finish with a failing check.
|
|
86
|
+
|
|
87
|
+
## 7. Report
|
|
88
|
+
|
|
89
|
+
Print a table of changed packages:
|
|
90
|
+
|
|
91
|
+
| Package | Old | New | Type |
|
|
92
|
+
| --- | --- | --- | --- |
|
|
93
|
+
| typescript | 5.9.2 | 5.9.3 | patch |
|
|
94
|
+
|
|
95
|
+
Below it list:
|
|
96
|
+
|
|
97
|
+
- `held: major`: package, current version, newest eligible major.
|
|
98
|
+
- `held: check failed`: package, old version, attempted version, error text.
|
|
99
|
+
- Migrations applied, with the file changed.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: upgrade-dependencies
|
|
3
|
+
description: Upgrades outdated patch and minor dependency pins in a pnpm, npm, yarn or bun workspace to exact versions, runs build, check, typecheck and test, and reports every change. Applies when asked to "upgrade dependencies", "update packages", "bump versions", or "update deps".
|
|
4
|
+
argument-hint: "[--accept]"
|
|
5
|
+
allowed-tools: Bash(npm view *), Bash(gh release view *), Bash(gh api *), Bash(pnpm *), Bash(npm *), Bash(yarn *), Bash(bun *), Bash(git diff *), Bash(git status *)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Upgrade dependencies
|
|
9
|
+
|
|
10
|
+
Arguments: `$ARGUMENTS`. `--accept` means the developer accepts the breaking-change list in advance; proceed at step 4 without stopping.
|
|
11
|
+
|
|
12
|
+
Apply patch and minor upgrades only. Never apply a major; list it as `held: major`.
|
|
13
|
+
|
|
14
|
+
## 1. Read the workspace
|
|
15
|
+
|
|
16
|
+
- Package manager: root `package.json` field `packageManager` (`pnpm@11.25.0` means `pnpm`). Call it `<pm>` below.
|
|
17
|
+
- Manifests: root `package.json`, `apps/*/package.json`, `packages/*/package.json`.
|
|
18
|
+
- Pins: entries in `dependencies`, `devDependencies`, `optionalDependencies`. Skip `workspace:*`, `link:`, `file:`, `git`, `npm:` alias and URL specs.
|
|
19
|
+
- Minimum age in minutes: `minimumReleaseAge` in `pnpm-workspace.yaml` or `.npmrc`; if unset, `1440`.
|
|
20
|
+
|
|
21
|
+
## 2. Find upgrades
|
|
22
|
+
|
|
23
|
+
Run once per distinct package name:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npm view <pkg> versions time --json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"versions": ["5.9.2", "5.9.3", "6.0.0-beta", "6.0.2", "6.0.3"],
|
|
32
|
+
"time": {
|
|
33
|
+
"created": "2012-10-01T15:35:39.553Z",
|
|
34
|
+
"modified": "2026-10-10T08:24:07.208Z",
|
|
35
|
+
"5.9.3": "2025-09-30T21:19:38.784Z",
|
|
36
|
+
"6.0.0-beta": "2026-02-11T18:26:37.557Z",
|
|
37
|
+
"6.0.2": "2026-03-23T16:14:45.521Z",
|
|
38
|
+
"6.0.3": "2026-04-16T23:38:27.905Z"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
A package with one version returns `versions` as a string, not an array.
|
|
44
|
+
|
|
45
|
+
Candidates: versions without a `-` prerelease suffix, with `time[version]` at least the minimum age before now.
|
|
46
|
+
|
|
47
|
+
- Same major as the pin, newer than the pin: take the highest. Type is `minor` if the minor differs, else `patch`.
|
|
48
|
+
- Higher major exists: record `held: major` with the highest eligible version. Do not apply it.
|
|
49
|
+
- No candidate newer than the pin: current.
|
|
50
|
+
|
|
51
|
+
If every pin is current, change no files, report `all pins current`, and stop.
|
|
52
|
+
|
|
53
|
+
## 3. Read release notes
|
|
54
|
+
|
|
55
|
+
For each package to upgrade, read the notes for every release after the old version up to and including the new one.
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
gh release view v<version> --repo <owner>/<repo> --json body
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- Repository: `npm view <pkg> repository.url`.
|
|
62
|
+
- No GitHub release for the tag: read `CHANGELOG.md` in the repository for the same range.
|
|
63
|
+
- Record each breaking change, deprecation and migration step per package.
|
|
64
|
+
|
|
65
|
+
## 4. Surface and stop
|
|
66
|
+
|
|
67
|
+
Print one list: package, old version, new version, type, breaking changes and migrations (or `none found`). Then:
|
|
68
|
+
|
|
69
|
+
- Without `--accept`: stop and ask the developer to accept or exclude packages. Edit nothing before the answer.
|
|
70
|
+
- With `--accept`: continue.
|
|
71
|
+
|
|
72
|
+
## 5. Apply
|
|
73
|
+
|
|
74
|
+
- Set each upgraded pin to the exact new version: no `^`, no `~`, no `latest`.
|
|
75
|
+
- Run `<pm> install`.
|
|
76
|
+
- Run each project script with `<pm> run <script>` in this order: `build`, `check`, `typecheck`, `test`. Skip a script the root `package.json` does not define.
|
|
77
|
+
|
|
78
|
+
## 6. Handle a failing check
|
|
79
|
+
|
|
80
|
+
For each failure:
|
|
81
|
+
|
|
82
|
+
- The release notes read in step 3 name the change and its migration: apply the migration, then re-run `<pm> install` and all four scripts.
|
|
83
|
+
- Otherwise: set the package that caused the failure back to its old version, re-run `<pm> install` and all four scripts. Report it as `held: check failed` with the error text.
|
|
84
|
+
|
|
85
|
+
Repeat until `build`, `check`, `typecheck` and `test` all exit 0. Never finish with a failing check.
|
|
86
|
+
|
|
87
|
+
## 7. Report
|
|
88
|
+
|
|
89
|
+
Print a table of changed packages:
|
|
90
|
+
|
|
91
|
+
| Package | Old | New | Type |
|
|
92
|
+
| --- | --- | --- | --- |
|
|
93
|
+
| typescript | 5.9.2 | 5.9.3 | patch |
|
|
94
|
+
|
|
95
|
+
Below it list:
|
|
96
|
+
|
|
97
|
+
- `held: major`: package, current version, newest eligible major.
|
|
98
|
+
- `held: check failed`: package, old version, attempted version, error text.
|
|
99
|
+
- Migrations applied, with the file changed.
|