@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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draekien/create-d9-app",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "type": "module",
5
5
  "description": "Scaffold a Turborepo monorepo with the draekien default stack",
6
6
  "license": "MIT",
@@ -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.
@@ -2,7 +2,7 @@
2
2
  "name": "my-app",
3
3
  "private": true,
4
4
  "type": "module",
5
- "packageManager": "pnpm@11.25.0",
5
+ "packageManager": "pnpm@12.11.0",
6
6
  "engines": {
7
7
  "node": ">=22.18.0"
8
8
  },