@mano8/astro-media-m8 2.2.0 → 2.3.1
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
ADDED
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@mano8/astro-media-m8` are documented here.
|
|
4
|
+
|
|
5
|
+
This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
The major version tracks the supported `media-service-m8` **service-version
|
|
7
|
+
line**, not just this package's own surface: a backend repoint is always a
|
|
8
|
+
major. Note that this is the *service* version, not the contract version — the
|
|
9
|
+
compatibility helper admits several contracts (`1.0` and `1.1`) against one
|
|
10
|
+
service line, so the contract can move without moving the major.
|
|
11
|
+
|
|
12
|
+
## [Unreleased]
|
|
13
|
+
|
|
14
|
+
## [2.3.1] - 2026-09-26 · tracks media-service 3.0.2
|
|
15
|
+
|
|
16
|
+
**Patch.** Tracks the published `@mano8/astro-ui-m8` `1.5.2` and
|
|
17
|
+
`@mano8/astro-auth-m8` `2.7.1` (`B39-astro-ui-changelog-release`, finding
|
|
18
|
+
`G38`). The only shipped change is `package.json`'s floors, with the README
|
|
19
|
+
that states them. The contract stays `media-service-m8@1.1`, range
|
|
20
|
+
`>=2.0.0 <4.0.0`, and the tested service version stays `3.0.2`.
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- **A lock that does not pin every package fails the build**
|
|
25
|
+
(`B34-npm-lock-integrity-guard`, finding `G34`(b)).
|
|
26
|
+
`scripts/verify-lock-integrity.mjs` (`npm run verify:lock-integrity`)
|
|
27
|
+
refuses a `package-lock.json` below `lockfileVersion` 3, or one with any
|
|
28
|
+
entry that lacks `integrity` or `resolved`, carries a non-`sha512` hash,
|
|
29
|
+
resolves outside `https://registry.npmjs.org/`, or is a link or `file:`
|
|
30
|
+
source, and names every offending key. `npm ci` installs an entry with no
|
|
31
|
+
`integrity` without checking a hash and says nothing, which is how `G33`
|
|
32
|
+
went unseen. CI runs it before `npm ci` in every job that installs.
|
|
33
|
+
`tests/lock-integrity.test.ts` proves each refusal against a fixture lock
|
|
34
|
+
and asserts this repository's own lock passes. The script is
|
|
35
|
+
dependency-free and byte-identical in the fleet's six npm repositories.
|
|
36
|
+
This lock already passed; the fixtures prove the red path. Only
|
|
37
|
+
`package.json`'s `scripts` gains an entry, so no release is owed.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- `@mano8/astro-ui-m8` floor `^1.5.1` → `^1.5.2` (`dependencies`) and
|
|
42
|
+
`@mano8/astro-auth-m8` `^2.7.0` → `^2.7.1` (`peerDependencies` and
|
|
43
|
+
`devDependencies`, still equal), the newest published releases (§0.5's
|
|
44
|
+
explicit-pin rule). The lock moves those two entries, each with its
|
|
45
|
+
registry `resolved` and `sha512` `integrity`. The README states the new
|
|
46
|
+
floors.
|
|
47
|
+
|
|
48
|
+
### Security
|
|
49
|
+
|
|
50
|
+
- **The publish job verifies the lock before it installs**
|
|
51
|
+
(`B37-publish-lock-guard`, finding `G36`). `B34` guarded every `CI.yaml`
|
|
52
|
+
job but not the one that holds `id-token: write` and builds the tarball,
|
|
53
|
+
and the environment's `tag:v*` rule matches a tag by name, not by where it
|
|
54
|
+
points. `npm-publish.yml` now runs `npm run verify:lock-integrity` before
|
|
55
|
+
`npm ci`, and `tests/publish-workflow.test.ts` holds the order.
|
|
56
|
+
|
|
57
|
+
## [2.3.0] - 2026-09-26 · tracks media-service 3.0.2
|
|
58
|
+
|
|
59
|
+
**Minor bump.** Tracks the published `media-service-m8` `3.0.2` patch release
|
|
60
|
+
(`B31-plugin-tracking-tail`, finding `G32`). The supported contract stays
|
|
61
|
+
`media-service-m8@1.1`, range `>=2.0.0 <4.0.0` — no contract repoint, so this
|
|
62
|
+
is not a major; a minor rather than a patch on the same reasoning as `2.2.0`
|
|
63
|
+
(an exported compatibility constant changes value).
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
|
|
67
|
+
- `MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION` and `package.json`'s
|
|
68
|
+
`mediaServiceM8.testedServiceVersion` move `3.0.1` → `3.0.2`. Read from
|
|
69
|
+
`v3.0.1` to `v3.0.2` on the service, nothing this plugin models moved:
|
|
70
|
+
`3.0.2` is the fleet's Debian patch layer, a UTC PostgreSQL session clock,
|
|
71
|
+
and typing fixes — the upload reject `reason` is hoisted into a named
|
|
72
|
+
`UploadRejectReason` alias carrying the same five values. Dashboard activity
|
|
73
|
+
bounds now always carry a UTC offset; this package types them as strings,
|
|
74
|
+
so both forms parse.
|
|
75
|
+
- `README.md` names `3.0.2` as the tested service version.
|
|
76
|
+
- Raised the `@mano8/astro-auth-m8` floor from `^2.6.0` to `^2.7.0` in both
|
|
77
|
+
`peerDependencies` and `devDependencies` (`B31-plugin-tracking-tail` leg 2).
|
|
78
|
+
`2.7.0` is the auth tracking release for `fa-auth-m8` `2.2.3`, published
|
|
79
|
+
before this one, and `package-lock.json` resolves its tarball. `README.md`
|
|
80
|
+
names the new peer floor, and corrects the `@mano8/astro-ui-m8` floor it
|
|
81
|
+
quoted (`^1.5.0`) to the declared `^1.5.1`.
|
|
82
|
+
|
|
83
|
+
### Unchanged, deliberately
|
|
84
|
+
|
|
85
|
+
- `MEDIA_SERVICE_M8_MIN_SERVICE_VERSION` stays `2.0.0` and
|
|
86
|
+
`MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE` stays `4.0.0`, and the
|
|
87
|
+
contract stays `1.1`: the range already admits `3.0.2`, and no served shape
|
|
88
|
+
changed.
|
|
89
|
+
|
|
90
|
+
### Security
|
|
91
|
+
|
|
92
|
+
- **npm is reached only from a published release**
|
|
93
|
+
(`B30-pre-publish-hardening` leg 5, finding `G25`). `npm-publish.yml` ran
|
|
94
|
+
`npm publish` on any `workflow_dispatch`, from any branch, into an `npm`
|
|
95
|
+
environment with no protection. A dispatch now
|
|
96
|
+
runs `npm publish --dry-run`; a release fails unless its tag, with the `v`
|
|
97
|
+
stripped, is `package.json`'s `version`; and the tarball ships
|
|
98
|
+
`CHANGELOG.md` from the next release (`G31`(b)).
|
|
99
|
+
`tests/publish-workflow.test.ts` locks each rule. The operator's `v*` tag
|
|
100
|
+
policy on the `npm` environment is the platform half of the same rule.
|
|
101
|
+
|
|
102
|
+
## [2.2.0] - 2026-09-16 · tracks media-service 3.0.1
|
|
103
|
+
|
|
104
|
+
**Minor bump.** Tracks the `media-service-m8` `3.0.1` patch release. The
|
|
105
|
+
supported contract stays `media-service-m8@1.1`, range `>=2.0.0 <4.0.0` — no
|
|
106
|
+
contract repoint, so this is not a major; a minor rather than a patch on the
|
|
107
|
+
same reasoning the fleet's auth client uses for its tracking releases (an
|
|
108
|
+
exported compatibility constant changes value).
|
|
109
|
+
|
|
110
|
+
### Changed
|
|
111
|
+
|
|
112
|
+
- `MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION` and `package.json`'s
|
|
113
|
+
`mediaServiceM8.testedServiceVersion` move `3.0.0` → `3.0.1`. `3.0.1` fixes
|
|
114
|
+
the service's hard purge, which answered `500` for any soft-deleted object
|
|
115
|
+
that had ever had a variant generated (`media_variant` / `variant_job`
|
|
116
|
+
reference `media_object` without `ON DELETE CASCADE`); it is a maintenance
|
|
117
|
+
code path — nothing served over HTTP changes, no schema here moves — so
|
|
118
|
+
this release exists only to keep the tracked version in step with the
|
|
119
|
+
fleet's compose pins (`media-service-m8` and `fa-ui-m8` stacks re-pinned
|
|
120
|
+
to `3.0.1` the same day).
|
|
121
|
+
- `README.md` names `3.0.1` as the tested service version.
|
|
122
|
+
|
|
123
|
+
### Unchanged, deliberately
|
|
124
|
+
|
|
125
|
+
- `MEDIA_SERVICE_M8_MIN_SERVICE_VERSION` stays `2.0.0` and
|
|
126
|
+
`MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE` stays `4.0.0`: the range
|
|
127
|
+
admits `3.0.1` already, and nothing on the `2.x`/`3.x` line has touched the
|
|
128
|
+
`1.1` contract this plugin speaks.
|
|
129
|
+
|
|
130
|
+
## [2.1.0] - 2026-09-14 · media-service 3.x admitted (additive)
|
|
131
|
+
|
|
132
|
+
**Minor bump.** `media-service-m8` `3.0.0` ships an object-storage backend and
|
|
133
|
+
env-var rename — the `MINIO_*` deprecation shim is removed in favor of the
|
|
134
|
+
provider-neutral `S3_*` settings — with no change to the `1.1` HTTP contract
|
|
135
|
+
this plugin models. Widening the supported range to admit it alongside the
|
|
136
|
+
existing 2.x line is therefore additive, not breaking.
|
|
137
|
+
|
|
138
|
+
### Changed
|
|
139
|
+
|
|
140
|
+
- `MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE` `"3.0.0"` → `"4.0.0"`;
|
|
141
|
+
`MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE` now `>=2.0.0 <4.0.0`.
|
|
142
|
+
`MEDIA_SERVICE_M8_MIN_SERVICE_VERSION` stays `"2.0.0"` — the published
|
|
143
|
+
`2.1.0` service remains a valid peer.
|
|
144
|
+
- `MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION` `"2.1.1"` → `"3.0.0"`, the
|
|
145
|
+
media-sdk-m8 `1.0.0` / media-service-m8 `3.0.0` shim-removal cut this
|
|
146
|
+
client's schemas were diffed against.
|
|
147
|
+
- `package.json` `mediaServiceM8.serviceVersionRange` →
|
|
148
|
+
`">=2.0.0 <4.0.0"`, `mediaServiceM8.testedServiceVersion` → `"3.0.0"`.
|
|
149
|
+
- **The required `@mano8/astro-auth-m8` peer is repointed `^2.4.1` → `^2.6.0`**
|
|
150
|
+
in both `peerDependencies` and `devDependencies`; the lockfile resolves
|
|
151
|
+
`astro-auth-m8-2.6.0.tgz`, the registry's current `latest`. `2.5.0` and
|
|
152
|
+
`2.6.0` are tracking releases — they move the auth plugin's tested
|
|
153
|
+
`fa-auth-m8` issuer version `2.0.0` → `2.2.1` (the JWKS `kid`/key-binding
|
|
154
|
+
remediation line the fleet's compose pins now run) and leave its
|
|
155
|
+
`fa-auth-m8@2.0` contract, minimum service version and peer ranges
|
|
156
|
+
unchanged, so nothing this plugin imports or adapts moves. The floor states
|
|
157
|
+
the pairing the fleet is verified against rather than one it merely
|
|
158
|
+
tolerates. `README.md`'s install section, which still read `^2.2.0`, now
|
|
159
|
+
names the same floor.
|
|
160
|
+
|
|
161
|
+
### Fixed
|
|
162
|
+
|
|
163
|
+
- `js-yaml` `4.3.1` → `4.3.2` in the lockfile (transitive, via `astro` /
|
|
164
|
+
`@astrojs/starlight` / `@astrojs/internal-helpers`), closing
|
|
165
|
+
[GHSA-2883-xcg3-v3hh](https://github.com/advisories/GHSA-2883-xcg3-v3hh)
|
|
166
|
+
(high: `maxTotalMergeKeys` does not bound CPU use for empty merge sources),
|
|
167
|
+
which had turned CI's `npm audit --audit-level=high` gate red on this
|
|
168
|
+
branch. No manifest range changes; the patch is inside every declaring
|
|
169
|
+
package's existing range.
|
|
170
|
+
|
|
171
|
+
## [2.0.0] - 2026-08-30 · media-service 2.x repoint, auth generation jump
|
|
172
|
+
|
|
173
|
+
**Major bump, for two independent breaking reasons.**
|
|
174
|
+
|
|
175
|
+
1. **The supported `media-service-m8` moves from 1.x to 2.x.**
|
|
176
|
+
`MEDIA_SERVICE_M8_MIN_SERVICE_VERSION` goes `1.0.0` → `2.0.0` and the
|
|
177
|
+
exclusive maximum `2.0.0` → `3.0.0`, so a pre-tier `1.x` service is
|
|
178
|
+
deliberately **no longer admitted**: it cannot serve the role-tier
|
|
179
|
+
authorization behaviour this plugin's guards assume. A consumer pointing at a
|
|
180
|
+
1.x service is refused at preflight, which is a breaking change to what this
|
|
181
|
+
package works against.
|
|
182
|
+
2. **The required `@mano8/astro-auth-m8` peer crosses a generation**, `^1.5.0` →
|
|
183
|
+
`^2.4.1`. The old range excluded every 2.x auth release, so consumers pairing
|
|
184
|
+
this plugin with a 1.x auth must upgrade auth first.
|
|
185
|
+
|
|
186
|
+
No export of this package is removed or renamed; both breaking changes are to
|
|
187
|
+
what it requires around it.
|
|
188
|
+
|
|
189
|
+
**This section is a fold of two never-published versions.** `1.2.0` and `2.0.0`
|
|
190
|
+
were both numbered in source without ever being tagged — `origin`'s newest tag
|
|
191
|
+
is `v1.1.1` — so under the fleet's one-bump-per-unpublished-release rule they
|
|
192
|
+
are one release, and the number is the major the work actually earns. `1.2.0`
|
|
193
|
+
had been numbered a **minor** while carrying reason 1 above, which is what made
|
|
194
|
+
folding it the correct call rather than a tidying one.
|
|
195
|
+
|
|
196
|
+
### Added
|
|
197
|
+
|
|
198
|
+
- **Every React island root is wrapped in an error boundary** (`A-C3`). A throw
|
|
199
|
+
inside `LibraryView`, `ObjectDetailView`, `UploadView`, `PresetsView` or
|
|
200
|
+
`AdminMediaView` now renders the canonical `astro-ui-m8` error state instead
|
|
201
|
+
of tearing down the island and leaving a blank region on the host page.
|
|
202
|
+
- **Dev-only `/_preview` gallery** (`A-C2`). `npm run preview:dev` mounts every
|
|
203
|
+
shipped island against an in-memory stand-in for `media-service-m8`: only
|
|
204
|
+
`fetch` is replaced, so the views, hooks, API wrappers and Zod schemas
|
|
205
|
+
exercised are the shipped ones. `npm run preview:build` typechecks and builds
|
|
206
|
+
the fixture, and CI runs both. The gallery is a development fixture and is not
|
|
207
|
+
part of the published tarball.
|
|
208
|
+
|
|
209
|
+
- **Category CRUD starter page.** Starter mode now ships `/media/categories`,
|
|
210
|
+
backed by the existing tenant-scoped `CategoryManager`, so consumers can
|
|
211
|
+
mount category creation, rename, reparent and delete as a real page.
|
|
212
|
+
|
|
213
|
+
### Fixed
|
|
214
|
+
|
|
215
|
+
- **The tree view's category pane scrolls horizontally instead of clipping**
|
|
216
|
+
(`U7`). The pane's width is fixed from `md` up (`md:w-64`) while a nested
|
|
217
|
+
branch's is not, so a tree several levels deep ran off the pane edge with no
|
|
218
|
+
way to reach the rest of it — every row was ellipsed at the same point and
|
|
219
|
+
the indentation kept pushing the labels further right. Three changes make the
|
|
220
|
+
pane show its content rather than hide it, and they only work together:
|
|
221
|
+
`overflow-y-auto` becomes `overflow-auto`; the `role="tree"` list takes
|
|
222
|
+
`min-w-max` so it states the width of its widest row; and
|
|
223
|
+
`.fa-media-tree-name` drops `truncate` for plain `whitespace-nowrap`. A
|
|
224
|
+
truncating label can never widen its list, so with the old rule the new
|
|
225
|
+
horizontal bar would have had nothing to reveal. The bar is `auto`, so a
|
|
226
|
+
shallow tree renders exactly as before. Carried in both the Tailwind token
|
|
227
|
+
classes and the framework-neutral `media.css` fallback (`D11`).
|
|
228
|
+
- **The tree view's two panes are the same height, and the pane is no longer a
|
|
229
|
+
fixed 16rem.** The row was `md:items-start`, so the category pane hugged its
|
|
230
|
+
own content and sat as a short box beside a long results table; it is
|
|
231
|
+
`items-stretch` at both widths now, so the pane takes the results column's
|
|
232
|
+
height and the `max-h` only bites when the tree is the taller of the two —
|
|
233
|
+
then it scrolls at the cap rather than growing the page. `min-h-0` is required
|
|
234
|
+
for that scroll to engage at all, since a stretched flex item will not shrink
|
|
235
|
+
below its content. The width moves from a flat `w-64` to
|
|
236
|
+
`clamp(16rem, 24vw, 26rem)`: 16rem was the same pane on a 13" laptop and a 27"
|
|
237
|
+
monitor and too narrow for a nested tree on both.
|
|
238
|
+
- **The tree pane is now complete under Tailwind alone.** The list reset and
|
|
239
|
+
the child indent were the only tree geometry with no Tailwind twin — they
|
|
240
|
+
existed solely in the scaffold stylesheet. A consumer that maps its own theme
|
|
241
|
+
instead of loading that stylesheet (which is the documented way to use this
|
|
242
|
+
package with a design system) therefore lost the indentation and the branch
|
|
243
|
+
guide line entirely, and the tree read as a flat list. Both are stated as
|
|
244
|
+
utilities on the elements now (`m-0 list-none p-0` on the tree list,
|
|
245
|
+
`ml-1 border-l border-border pl-3` on each child group), with the scaffold
|
|
246
|
+
rules kept unchanged for consumers without Tailwind.
|
|
247
|
+
- **The two-pane split waits for `lg`, not `md`.** At 48rem a category pane and
|
|
248
|
+
a six-column table shared 768px and both were cramped, so the stacked layout
|
|
249
|
+
now carries the tablet range where it reads better.
|
|
250
|
+
- **The results table scrolls instead of squashing.** Six columns have no
|
|
251
|
+
readable narrow form, so the table sits in its own `overflow-x-auto` box with
|
|
252
|
+
`min-w-[34rem]` — the `min-width` is what gives the bar something to reveal,
|
|
253
|
+
since `width: 100%` alone can never exceed its wrapper. Applies to the list
|
|
254
|
+
view as well as the tree view, since both render the same table.
|
|
255
|
+
- **The import dropzone stops borrowing the tree pane's class.** It reused
|
|
256
|
+
`treePaneClassName` outright for its card look, which quietly handed it the
|
|
257
|
+
pane's width and scroll behaviour too — so sizing the pane for a category tree
|
|
258
|
+
would have resized a file dropzone with it. It carries
|
|
259
|
+
`fa-media-transfer-dropzone` now, and with it a framework-neutral fallback it
|
|
260
|
+
never had: `--active` was referenced by the runtime with no rule behind it
|
|
261
|
+
(`D11`).
|
|
262
|
+
- **The child indent is trimmed** — `.fa-media-tree-children` `padding-left`
|
|
263
|
+
`1.25rem` → `0.75rem` and `margin-left` `0.4rem` → `0.25rem`. Each level pays
|
|
264
|
+
for indent *and* a `1.25rem` toggle column, so on a four-deep tree the indent
|
|
265
|
+
was the largest single contributor to the width that pushed rows out of the
|
|
266
|
+
pane. `0.75rem` still clears the toggle glyph, so the branch guide rule stays
|
|
267
|
+
legible against the row it belongs to.
|
|
268
|
+
|
|
269
|
+
### Changed
|
|
270
|
+
|
|
271
|
+
- **`MediaLibrary.tsx` is split into modules, and the largest components are
|
|
272
|
+
decomposed.** The file had grown to 1224 non-comment lines and carried the
|
|
273
|
+
library, its tree pane, its transfer panel, the whole label contract and every
|
|
274
|
+
Tailwind token class in one place; it is now `mediaLibraryLabels`,
|
|
275
|
+
`mediaLibraryStyles`, `categoryBranch`, `MediaCategoryTreePane`,
|
|
276
|
+
`MediaTransferPanel` and a 507-line `MediaLibrary`. The same pass extracts
|
|
277
|
+
subcomponents and hooks from `CategoryMultiSelectView`, `CategoryManagerRow`,
|
|
278
|
+
`CategoryManager`, `MediaObjectPreview` and the three library registry skins,
|
|
279
|
+
and splits the two oversized tree-pane tests into focused cases. **No export,
|
|
280
|
+
prop, class name or rendered markup changes** — `MediaLibraryLabels` is still
|
|
281
|
+
exported from `MediaLibrary.js`, and all 237 tests pass unchanged apart from
|
|
282
|
+
the ones deliberately split. It is a Codacy complexity gate the fleet keeps
|
|
283
|
+
green, not a redesign.
|
|
284
|
+
- **The category tree pane opens with every branch collapsed.** It used to
|
|
285
|
+
render the whole tree expanded, which on a deep hierarchy filled the pane
|
|
286
|
+
with descendants before the user had chosen a branch and made the pane its
|
|
287
|
+
widest at the moment it was least useful. The pane now tracks `expandedIds`
|
|
288
|
+
rather than the inverted `collapsed` set — an empty set is the honest seed
|
|
289
|
+
for "all shut", where the old set could only ever mean "all open" on first
|
|
290
|
+
render because the ids it would have to hold are not known until the tree
|
|
291
|
+
resolves. Nothing else about the pane's keyboard contract moves:
|
|
292
|
+
ArrowRight/ArrowLeft still open and close, and `aria-expanded` still reports
|
|
293
|
+
the real state. The `media-category-tree` registry skin drops its
|
|
294
|
+
`defaultExpandedIds={collectExpandableIds(nodes)}` for the same reason, so
|
|
295
|
+
the skin and the runtime pane stay non-divergent.
|
|
296
|
+
- **`UploadCompleteRequestSchema` carries `category_ids`.** The served
|
|
297
|
+
`POST /media/v1/uploads/{id}/complete` has always accepted an optional
|
|
298
|
+
`category_ids` that *replaces* the filing staged at initiate (`[]` completes
|
|
299
|
+
the object filed into nothing), and this schema is `.strict()` — so a caller
|
|
300
|
+
meaning to override the filing at complete time was rejected client-side
|
|
301
|
+
before the request was ever made. Purely additive: omitting the key still
|
|
302
|
+
means "keep what initiate staged", which is what this package's own upload
|
|
303
|
+
controller relies on, so no existing caller changes.
|
|
304
|
+
- **The `media-service-m8` pairing is re-measured.**
|
|
305
|
+
`MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION` and `mediaServiceM8.testedServiceVersion`
|
|
306
|
+
move `2.0.0` → `2.1.1` — the service this client was actually exercised
|
|
307
|
+
against, whose OpenAPI every schema here was diffed against in the same pass.
|
|
308
|
+
Written ahead of the `2.1.1` tag and recorded as such, the same ordering
|
|
309
|
+
inversion the workspace matrix documents for the `2.1.0` image pins; it is
|
|
310
|
+
safe here in a way a pin is not, because the constant resolves nothing and
|
|
311
|
+
installs nothing.
|
|
312
|
+
**Neither gate moves.** `MEDIA_SERVICE_M8_CONTRACT_VERSION` stays `1.1`
|
|
313
|
+
because the *contract* did not move: the service fix populates a field that
|
|
314
|
+
was already declared, already documented and already populated by the list and
|
|
315
|
+
write paths, so no served shape changed. `media_service`'s own
|
|
316
|
+
`CONTRACT_VERSION` is still `1.1` and `tests/test_meta.py` asserts it as a
|
|
317
|
+
literal — advancing this client past it would make every preflight demand a
|
|
318
|
+
contract the service does not serve. The service-version range likewise stays
|
|
319
|
+
`>=2.0.0 <3.0.0`, which admits the whole 2.x line, so a host on the published
|
|
320
|
+
`2.1.0` passes preflight unchanged. `REPOSITORY_CONTEXT.md` additionally carried
|
|
321
|
+
`>=1.0.0 <2.0.0` for that range, wrong twice over — it is a *service*-version
|
|
322
|
+
range, not a range of contract versions, and the value had been left behind by
|
|
323
|
+
the 2.x repoint, so it excluded every service this package admits.
|
|
324
|
+
`compatibility.ts` and the `mediaServiceM8` block have been right since that
|
|
325
|
+
repoint; the doc line was the outlier and is corrected in place.
|
|
326
|
+
- **Required auth peer raised to `@mano8/astro-auth-m8` `^2.2.0`**, in both
|
|
327
|
+
`peerDependencies` and `devDependencies`. The previous `^1.5.0` range excluded
|
|
328
|
+
every 2.x auth release, so this package declared it needed an auth generation
|
|
329
|
+
the fleet had already left behind; the conflict was only ever suppressed by
|
|
330
|
+
installing with `--legacy-peer-deps`. Consumers pairing this plugin with a 1.x
|
|
331
|
+
auth must upgrade auth first. `@mano8/astro-ui-m8` stays at `^1.5.0`.
|
|
332
|
+
- **Category-tree responses are depth-bounded.** The Zod tree schema accepts up
|
|
333
|
+
to 10 levels, matching the service default, and rejects deeper untrusted
|
|
334
|
+
responses before recursive UI rendering.
|
|
335
|
+
- **Contract `media-service-m8@1.1`** (`P2 U12`). The compatibility helper,
|
|
336
|
+
package metadata and documentation now agree on the additive media UX
|
|
337
|
+
contract. The contract axis itself is additive — the client admits both
|
|
338
|
+
`1.0` and `1.1` — so it is **not** what makes this release a major; the
|
|
339
|
+
service-version gate above is.
|
|
340
|
+
|
|
341
|
+
- **The fleet gate exempts one authorization specifier** (remediation `W7.7`,
|
|
342
|
+
decision 4). `scripts/verify-fleet-gates.mjs` is carried byte-identically by
|
|
343
|
+
all four plugins, so a fleet-wide rule change lands in all four or in none.
|
|
344
|
+
`no-cross-plugin-import` now permits exactly
|
|
345
|
+
`@mano8/astro-auth-m8/authorization` — the pure, framework-neutral mirror of
|
|
346
|
+
`auth_sdk_m8/authorization.py` — so a plugin can meet `RBAC-06`, one role
|
|
347
|
+
hierarchy, by importing it rather than re-implementing it. Every other
|
|
348
|
+
subpath of the auth peer stays refused. A new `authorization-purity` gate
|
|
349
|
+
makes that exemption conditional: in a package that uses it, it walks the
|
|
350
|
+
module's import closure and fails on React, on any bare dependency other than
|
|
351
|
+
`zod`, or on any read of a runtime global. This package imports no
|
|
352
|
+
authorization module today, so the second gate is inert here and nothing in
|
|
353
|
+
its behaviour, surface or dependencies changes; it carries the rule so the
|
|
354
|
+
fleet stays one rule.
|
|
355
|
+
|
|
356
|
+
- **Upload is a library action.** `MediaLibrary` now places an `Upload media`
|
|
357
|
+
action at the right of its top toolbar and opens the upload form as an
|
|
358
|
+
accessible modal. The dialog includes the existing nested user-category
|
|
359
|
+
selector, closes on Escape/backdrop/completion and refreshes the library
|
|
360
|
+
after a successful upload. The legacy `/media/upload` starter route opens
|
|
361
|
+
this same library dialog for direct-link compatibility.
|
|
362
|
+
- **The required auth peer is raised to `@mano8/astro-auth-m8` `^2.4.1`** in
|
|
363
|
+
both `peerDependencies` and `devDependencies`. Two separate reasons stack, and
|
|
364
|
+
the floor is the higher of them. `2.3.0` coordinates the two token-refresh
|
|
365
|
+
paths behind one single-flight guard; below it, a page mounting both paths
|
|
366
|
+
against one expired token can issue two rotations, which `fa-auth-m8` reads as
|
|
367
|
+
token reuse and answers by revoking every session for the account. This plugin
|
|
368
|
+
reaches that path through `installFaAuthBrowserAdapter`, so it is behaviour
|
|
369
|
+
this package depends on rather than one it merely tolerates. `2.4.0` then
|
|
370
|
+
makes `@mano8/astro-auth-m8/authorization` a **supported** cross-plugin import
|
|
371
|
+
surface rather than an internal module siblings happen to be able to reach —
|
|
372
|
+
the guarantee the fleet's widened `no-cross-plugin-import` gate (`C12`) and
|
|
373
|
+
its `authorization-purity` companion are written against. This package carries
|
|
374
|
+
both gates, so it takes the floor that makes them meaningful even though its
|
|
375
|
+
own adapter does not yet import the module. The previous `^2.2.0` range
|
|
376
|
+
already resolved these on a fresh install; the floor states the requirement.
|
|
377
|
+
The floor landed as `^2.4.0` and was repointed to `^2.4.1` once that
|
|
378
|
+
tooling-alignment release was published; the lockfile resolves
|
|
379
|
+
`astro-auth-m8-2.4.1.tgz`.
|
|
380
|
+
|
|
381
|
+
- **`@mano8/astro-ui-m8` is repointed `^1.5.0` → `^1.5.1`**, the published
|
|
382
|
+
tooling-alignment release, so the manifest no longer names a range ahead of
|
|
383
|
+
the registry. The lockfile resolves `astro-ui-m8-1.5.1.tgz`.
|
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ Pinned to `media-service-m8@1.1` (supported service-version range
|
|
|
30
30
|
## Backend contract
|
|
31
31
|
|
|
32
32
|
This package targets the additive `media-service-m8@1.1` API contract and was
|
|
33
|
-
tested against `media-service-m8` service version `3.0.
|
|
33
|
+
tested against `media-service-m8` service version `3.0.2`. Supported backend
|
|
34
34
|
service versions are `>=2.0.0 <4.0.0`.
|
|
35
35
|
|
|
36
36
|
The contract axis and the service axis move independently, and only the range
|
|
@@ -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.
|
|
68
|
+
`@mano8/astro-auth-m8` is a required peer at **`^2.7.1` 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.2`) 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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const MEDIA_SERVICE_M8_CONTRACT_ID = "media-service-m8";
|
|
2
2
|
export declare const MEDIA_SERVICE_M8_CONTRACT_VERSION = "1.1";
|
|
3
3
|
export declare const MEDIA_SERVICE_M8_CONTRACT: "media-service-m8@1.1";
|
|
4
|
-
export declare const MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION = "3.0.
|
|
4
|
+
export declare const MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION = "3.0.2";
|
|
5
5
|
export declare const MEDIA_SERVICE_M8_MIN_SERVICE_VERSION = "2.0.0";
|
|
6
6
|
export declare const MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE = "4.0.0";
|
|
7
7
|
export declare const MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE = ">=2.0.0 <4.0.0";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../../src/runtime/compatibility.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAC/D,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AACvD,eAAO,MAAM,yBAAyB,wBAAkF,CAAC;
|
|
1
|
+
{"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../../src/runtime/compatibility.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAC/D,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AACvD,eAAO,MAAM,yBAAyB,wBAAkF,CAAC;AA4BzH,eAAO,MAAM,uCAAuC,UAAU,CAAC;AAC/D,eAAO,MAAM,oCAAoC,UAAU,CAAC;AAC5D,eAAO,MAAM,8CAA8C,UAAU,CAAC;AACtE,eAAO,MAAM,sCAAsC,mBAAiG,CAAC;AAErJ,MAAM,MAAM,iCAAiC,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;AAE1F,MAAM,MAAM,6BAA6B,GAAG;IAG1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,iCAAiC,CAAC;IAC1C,gBAAgB,EAAE,OAAO,yBAAyB,CAAC;IACnD,2BAA2B,EAAE,OAAO,sCAAsC,CAAC;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAqDF,wBAAgB,wCAAwC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIjF;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,GAAE,6BAAkC,GAC3C,2BAA2B,CAmE7B;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,6BAA6B,EACvC,YAAY,UAAO,GAClB,2BAA2B,CAM7B"}
|
|
@@ -17,16 +17,18 @@ const MEDIA_SERVICE_M8_COMPATIBLE_CONTRACTS = new Set([
|
|
|
17
17
|
// move is additive (a minor here), not a major. A pre-tier 1.x service is
|
|
18
18
|
// still refused: it cannot serve the authorization behavior this plugin's
|
|
19
19
|
// guards assume.
|
|
20
|
-
// The service version this client was actually exercised against: 3.0.
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
20
|
+
// The service version this client was actually exercised against: 3.0.2, on
|
|
21
|
+
// the media-sdk-m8 1.0.0 / media-service-m8 3.0.0 shim-removal cut whose tree
|
|
22
|
+
// every schema here was diffed against. 3.0.1 fixed the hard purge; 3.0.2 is
|
|
23
|
+
// the Debian patch layer, the UTC session clock and typing fixes (the upload
|
|
24
|
+
// reject reason hoisted into a named alias with the same five values).
|
|
25
|
+
// Nothing served changes, so this value tracks the fleet's compose pins and
|
|
26
|
+
// gates nothing.
|
|
25
27
|
//
|
|
26
28
|
// The gate is MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE below, which admits the
|
|
27
29
|
// whole 2.x line plus 3.x, so a host pointed at the published 2.1.0 passes
|
|
28
30
|
// preflight unchanged and this value never refuses it.
|
|
29
|
-
export const MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION = "3.0.
|
|
31
|
+
export const MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION = "3.0.2";
|
|
30
32
|
export const MEDIA_SERVICE_M8_MIN_SERVICE_VERSION = "2.0.0";
|
|
31
33
|
export const MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE = "4.0.0";
|
|
32
34
|
export const MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE = `>=${MEDIA_SERVICE_M8_MIN_SERVICE_VERSION} <${MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../../src/runtime/compatibility.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,kBAAkB,CAAC;AAC/D,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AACvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,4BAA4B,IAAI,iCAAiC,EAAW,CAAC;AACzH,MAAM,qCAAqC,GAAG,IAAI,GAAG,CAAC;IACpD,KAAK;IACL,GAAG,4BAA4B,MAAM;IACrC,iCAAiC;IACjC,yBAAyB;CAC1B,CAAC,CAAC;AACH,iFAAiF;AACjF,+EAA+E;AAC/E,0EAA0E;AAC1E,iEAAiE;AACjE,yEAAyE;AACzE,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,iBAAiB;AACjB,
|
|
1
|
+
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../../src/runtime/compatibility.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mano8/astro-media-m8",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"description": "Astro integration and headless client for media-service-m8.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"registry.json",
|
|
26
26
|
"registry/r",
|
|
27
27
|
"README.md",
|
|
28
|
+
"CHANGELOG.md",
|
|
28
29
|
"LICENSE"
|
|
29
30
|
],
|
|
30
31
|
"exports": {
|
|
@@ -56,6 +57,7 @@
|
|
|
56
57
|
"preview:dev": "vite --config fixtures/preview/vite.config.ts",
|
|
57
58
|
"preview:build": "tsc -p fixtures/preview/tsconfig.json --noEmit && vite build --config fixtures/preview/vite.config.ts",
|
|
58
59
|
"verify:fleet-gates": "node scripts/verify-fleet-gates.mjs",
|
|
60
|
+
"verify:lock-integrity": "node scripts/verify-lock-integrity.mjs",
|
|
59
61
|
"verify:registry-consumer": "node scripts/verify-registry-consumer.mjs",
|
|
60
62
|
"verify:registry-drift": "node scripts/verify-registry-drift.mjs",
|
|
61
63
|
"verify:starter-routes": "node scripts/verify-starter-routes.mjs",
|
|
@@ -66,12 +68,12 @@
|
|
|
66
68
|
"test:unit": "vitest run"
|
|
67
69
|
},
|
|
68
70
|
"dependencies": {
|
|
69
|
-
"@mano8/astro-ui-m8": "^1.5.
|
|
71
|
+
"@mano8/astro-ui-m8": "^1.5.2"
|
|
70
72
|
},
|
|
71
73
|
"peerDependencies": {
|
|
72
74
|
"@astrojs/react": "^6.0.1",
|
|
73
75
|
"@astrojs/starlight": "^0.41.3",
|
|
74
|
-
"@mano8/astro-auth-m8": "^2.
|
|
76
|
+
"@mano8/astro-auth-m8": "^2.7.1",
|
|
75
77
|
"@tanstack/react-query": "^5.102.8",
|
|
76
78
|
"astro": "^7.0.9",
|
|
77
79
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -91,7 +93,7 @@
|
|
|
91
93
|
"@astrojs/starlight": "^0.41.10",
|
|
92
94
|
"@eslint-react/eslint-plugin": "^5.18.6",
|
|
93
95
|
"@eslint/js": "^10.0.1",
|
|
94
|
-
"@mano8/astro-auth-m8": "^2.
|
|
96
|
+
"@mano8/astro-auth-m8": "^2.7.1",
|
|
95
97
|
"@tanstack/react-query": "^5.102.8",
|
|
96
98
|
"@tanstack/react-table": "^8.21.3",
|
|
97
99
|
"@types/node": "^26.4.0",
|
|
@@ -115,7 +117,7 @@
|
|
|
115
117
|
},
|
|
116
118
|
"mediaServiceM8": {
|
|
117
119
|
"contract": "media-service-m8@1.1",
|
|
118
|
-
"testedServiceVersion": "3.0.
|
|
120
|
+
"testedServiceVersion": "3.0.2",
|
|
119
121
|
"serviceVersionRange": ">=2.0.0 <4.0.0"
|
|
120
122
|
}
|
|
121
123
|
}
|