@mano8/astro-media-m8 2.3.0 → 2.3.2
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/CHANGELOG.md +85 -0
- package/README.md +2 -2
- package/package.json +18 -15
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,91 @@ service line, so the contract can move without moving the major.
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [2.3.2] - 2026-09-27 · tracks media-service 3.0.2
|
|
15
|
+
|
|
16
|
+
**Patch.** Admits `@astrojs/react` 7 and Starlight 0.42 as peers, tracks
|
|
17
|
+
the published `@mano8/astro-ui-m8` `1.5.3` and `@mano8/astro-auth-m8`
|
|
18
|
+
`2.7.2`, and adds the fleet's dependency compatibility gate. Peer ranges only
|
|
19
|
+
widen, with both old lines still accepted, and the floors that rise are to
|
|
20
|
+
published releases. The contract stays `media-service-m8@1.1`, range
|
|
21
|
+
`>=2.0.0 <4.0.0`, and the tested service version stays `3.0.2`.
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **A tree that breaks a declared range fails the build.**
|
|
26
|
+
`scripts/verify-dependency-compat.mjs` (`npm run verify:dependency-compat`)
|
|
27
|
+
and `tests/dependency-compat.test.ts`, byte-identical across the fleet's
|
|
28
|
+
six npm repositories and first shipped in `@mano8/astro-ui-m8` `1.5.3`.
|
|
29
|
+
The gate reads `npm ls --all --json --long` with peer edges forced on. It
|
|
30
|
+
names every installed package outside a range declared on it, and every
|
|
31
|
+
missing required dependency or peer that a required edge reaches. CI runs
|
|
32
|
+
it after `npm ci`.
|
|
33
|
+
- **`.npmrc` with `legacy-peer-deps=true`**, byte-identical fleet-wide. The
|
|
34
|
+
four `npm ci --legacy-peer-deps` steps in `CI.yaml` and `npm-publish.yml`
|
|
35
|
+
become plain `npm ci`: the setting now lives in one place, local installs
|
|
36
|
+
and Dependabot included, and the gate above enforces the ranges it no
|
|
37
|
+
longer checks.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- **Peers `@astrojs/react` `^6.0.1` → `^6.0.1 || ^7.0.0` and
|
|
42
|
+
`@astrojs/starlight` `^0.41.3` → `^0.41.3 || ^0.42.0`**, matching
|
|
43
|
+
`@mano8/astro-auth-m8` `2.7.2`. `src/` imports neither package. Starlight
|
|
44
|
+
0.42 is the line built for `astro` 7.3, whose optional
|
|
45
|
+
`@astrojs/markdown-remark` `^7.3.0` peer Starlight 0.41 cannot meet.
|
|
46
|
+
- `@mano8/astro-ui-m8` floor `^1.5.2` → `^1.5.3` (`dependencies`) and
|
|
47
|
+
`@mano8/astro-auth-m8` `^2.7.1` → `^2.7.2` (`peerDependencies` and
|
|
48
|
+
`devDependencies`, still equal), the newest published releases, each read
|
|
49
|
+
back as npm `latest`. The README states the new floors.
|
|
50
|
+
- Dev dependencies test the new lines, matching `fa-ui-m8`: `@astrojs/react`
|
|
51
|
+
`^7.0.0`, `@astrojs/starlight` `^0.42.4`, `astro` `^7.3.4`, `react` /
|
|
52
|
+
`react-dom` / `@types/react` `^19.3.0`, `@typescript-eslint/*` `^8.70.1`,
|
|
53
|
+
`globals` `^17.12.0`. `@types/react-dom` `^19.3.0` is now declared: it is
|
|
54
|
+
a required peer of `@astrojs/react` that npm no longer installs on its own.
|
|
55
|
+
|
|
56
|
+
## [2.3.1] - 2026-09-26 · tracks media-service 3.0.2
|
|
57
|
+
|
|
58
|
+
**Patch.** Tracks the published `@mano8/astro-ui-m8` `1.5.2` and
|
|
59
|
+
`@mano8/astro-auth-m8` `2.7.1` (`B39-astro-ui-changelog-release`, finding
|
|
60
|
+
`G38`). The only shipped change is `package.json`'s floors, with the README
|
|
61
|
+
that states them. The contract stays `media-service-m8@1.1`, range
|
|
62
|
+
`>=2.0.0 <4.0.0`, and the tested service version stays `3.0.2`.
|
|
63
|
+
|
|
64
|
+
### Added
|
|
65
|
+
|
|
66
|
+
- **A lock that does not pin every package fails the build**
|
|
67
|
+
(`B34-npm-lock-integrity-guard`, finding `G34`(b)).
|
|
68
|
+
`scripts/verify-lock-integrity.mjs` (`npm run verify:lock-integrity`)
|
|
69
|
+
refuses a `package-lock.json` below `lockfileVersion` 3, or one with any
|
|
70
|
+
entry that lacks `integrity` or `resolved`, carries a non-`sha512` hash,
|
|
71
|
+
resolves outside `https://registry.npmjs.org/`, or is a link or `file:`
|
|
72
|
+
source, and names every offending key. `npm ci` installs an entry with no
|
|
73
|
+
`integrity` without checking a hash and says nothing, which is how `G33`
|
|
74
|
+
went unseen. CI runs it before `npm ci` in every job that installs.
|
|
75
|
+
`tests/lock-integrity.test.ts` proves each refusal against a fixture lock
|
|
76
|
+
and asserts this repository's own lock passes. The script is
|
|
77
|
+
dependency-free and byte-identical in the fleet's six npm repositories.
|
|
78
|
+
This lock already passed; the fixtures prove the red path. Only
|
|
79
|
+
`package.json`'s `scripts` gains an entry, so no release is owed.
|
|
80
|
+
|
|
81
|
+
### Changed
|
|
82
|
+
|
|
83
|
+
- `@mano8/astro-ui-m8` floor `^1.5.1` → `^1.5.2` (`dependencies`) and
|
|
84
|
+
`@mano8/astro-auth-m8` `^2.7.0` → `^2.7.1` (`peerDependencies` and
|
|
85
|
+
`devDependencies`, still equal), the newest published releases (§0.5's
|
|
86
|
+
explicit-pin rule). The lock moves those two entries, each with its
|
|
87
|
+
registry `resolved` and `sha512` `integrity`. The README states the new
|
|
88
|
+
floors.
|
|
89
|
+
|
|
90
|
+
### Security
|
|
91
|
+
|
|
92
|
+
- **The publish job verifies the lock before it installs**
|
|
93
|
+
(`B37-publish-lock-guard`, finding `G36`). `B34` guarded every `CI.yaml`
|
|
94
|
+
job but not the one that holds `id-token: write` and builds the tarball,
|
|
95
|
+
and the environment's `tag:v*` rule matches a tag by name, not by where it
|
|
96
|
+
points. `npm-publish.yml` now runs `npm run verify:lock-integrity` before
|
|
97
|
+
`npm ci`, and `tests/publish-workflow.test.ts` holds the order.
|
|
98
|
+
|
|
14
99
|
## [2.3.0] - 2026-09-26 · tracks media-service 3.0.2
|
|
15
100
|
|
|
16
101
|
**Minor bump.** Tracks the published `media-service-m8` `3.0.2` patch release
|
package/README.md
CHANGED
|
@@ -65,12 +65,12 @@ elsewhere.
|
|
|
65
65
|
npm i @mano8/astro-media-m8 @mano8/astro-auth-m8 zod
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
`@mano8/astro-auth-m8` is a required peer at **`^2.7.
|
|
68
|
+
`@mano8/astro-auth-m8` is a required peer at **`^2.7.2` or newer**:
|
|
69
69
|
`media-service-m8` only accepts `fa-auth-m8`-issued tokens, so the plugin's auth
|
|
70
70
|
adapter must be backed by `fa-auth-m8` (the official plugin, or a custom adapter
|
|
71
71
|
that obtains those tokens). A 1.x auth is not supported — upgrade auth first, or
|
|
72
72
|
the install resolves nothing that satisfies the peer.
|
|
73
|
-
`@mano8/astro-ui-m8` (`^1.5.
|
|
73
|
+
`@mano8/astro-ui-m8` (`^1.5.3`) is a normal dependency because the media registry
|
|
74
74
|
skins compose the canonical shared table from its packaged registry output.
|
|
75
75
|
`react`/`react-dom` are optional — only `./react`, `./hooks` and the starter
|
|
76
76
|
views need them; `@tanstack/react-query` is a required peer once you use
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mano8/astro-media-m8",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.2",
|
|
4
4
|
"description": "Astro integration and headless client for media-service-m8.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -56,7 +56,9 @@
|
|
|
56
56
|
"build:registry": "node scripts/build-registry.mjs",
|
|
57
57
|
"preview:dev": "vite --config fixtures/preview/vite.config.ts",
|
|
58
58
|
"preview:build": "tsc -p fixtures/preview/tsconfig.json --noEmit && vite build --config fixtures/preview/vite.config.ts",
|
|
59
|
+
"verify:dependency-compat": "node scripts/verify-dependency-compat.mjs",
|
|
59
60
|
"verify:fleet-gates": "node scripts/verify-fleet-gates.mjs",
|
|
61
|
+
"verify:lock-integrity": "node scripts/verify-lock-integrity.mjs",
|
|
60
62
|
"verify:registry-consumer": "node scripts/verify-registry-consumer.mjs",
|
|
61
63
|
"verify:registry-drift": "node scripts/verify-registry-drift.mjs",
|
|
62
64
|
"verify:starter-routes": "node scripts/verify-starter-routes.mjs",
|
|
@@ -67,12 +69,12 @@
|
|
|
67
69
|
"test:unit": "vitest run"
|
|
68
70
|
},
|
|
69
71
|
"dependencies": {
|
|
70
|
-
"@mano8/astro-ui-m8": "^1.5.
|
|
72
|
+
"@mano8/astro-ui-m8": "^1.5.3"
|
|
71
73
|
},
|
|
72
74
|
"peerDependencies": {
|
|
73
|
-
"@astrojs/react": "^6.0.1",
|
|
74
|
-
"@astrojs/starlight": "^0.41.3",
|
|
75
|
-
"@mano8/astro-auth-m8": "^2.7.
|
|
75
|
+
"@astrojs/react": "^6.0.1 || ^7.0.0",
|
|
76
|
+
"@astrojs/starlight": "^0.41.3 || ^0.42.0",
|
|
77
|
+
"@mano8/astro-auth-m8": "^2.7.2",
|
|
76
78
|
"@tanstack/react-query": "^5.102.8",
|
|
77
79
|
"astro": "^7.0.9",
|
|
78
80
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -88,25 +90,26 @@
|
|
|
88
90
|
}
|
|
89
91
|
},
|
|
90
92
|
"devDependencies": {
|
|
91
|
-
"@astrojs/react": "^
|
|
92
|
-
"@astrojs/starlight": "^0.
|
|
93
|
+
"@astrojs/react": "^7.0.0",
|
|
94
|
+
"@astrojs/starlight": "^0.42.4",
|
|
93
95
|
"@eslint-react/eslint-plugin": "^5.18.6",
|
|
94
96
|
"@eslint/js": "^10.0.1",
|
|
95
|
-
"@mano8/astro-auth-m8": "^2.7.
|
|
97
|
+
"@mano8/astro-auth-m8": "^2.7.2",
|
|
96
98
|
"@tanstack/react-query": "^5.102.8",
|
|
97
99
|
"@tanstack/react-table": "^8.21.3",
|
|
98
100
|
"@types/node": "^26.4.0",
|
|
99
|
-
"@types/react": "^19.
|
|
100
|
-
"@
|
|
101
|
-
"@typescript-eslint/
|
|
101
|
+
"@types/react": "^19.3.0",
|
|
102
|
+
"@types/react-dom": "^19.3.0",
|
|
103
|
+
"@typescript-eslint/eslint-plugin": "^8.70.1",
|
|
104
|
+
"@typescript-eslint/parser": "^8.70.1",
|
|
102
105
|
"@vitest/coverage-v8": "^4.1.11",
|
|
103
|
-
"astro": "^7.
|
|
106
|
+
"astro": "^7.3.4",
|
|
104
107
|
"eslint": "^10.9.1",
|
|
105
108
|
"eslint-plugin-security": "^4.0.1",
|
|
106
|
-
"globals": "^17.
|
|
109
|
+
"globals": "^17.12.0",
|
|
107
110
|
"jsdom": "^30.0.1",
|
|
108
|
-
"react": "^19.
|
|
109
|
-
"react-dom": "^19.
|
|
111
|
+
"react": "^19.3.0",
|
|
112
|
+
"react-dom": "^19.3.0",
|
|
110
113
|
"typescript": "^5.9.3",
|
|
111
114
|
"vitest": "^4.1.11",
|
|
112
115
|
"zod": "^4.5.4"
|