@mano8/astro-media-m8 1.1.1 → 2.0.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 +54 -11
- package/dist/src/integration.d.ts.map +1 -1
- package/dist/src/integration.js +1 -0
- package/dist/src/integration.js.map +1 -1
- package/dist/src/runtime/api/categories.d.ts +14 -8
- package/dist/src/runtime/api/categories.d.ts.map +1 -1
- package/dist/src/runtime/api/categories.js +21 -8
- package/dist/src/runtime/api/categories.js.map +1 -1
- package/dist/src/runtime/api/index.d.ts +8 -0
- package/dist/src/runtime/api/index.d.ts.map +1 -1
- package/dist/src/runtime/api/index.js +8 -0
- package/dist/src/runtime/api/index.js.map +1 -1
- package/dist/src/runtime/api/transfer.d.ts +19 -0
- package/dist/src/runtime/api/transfer.d.ts.map +1 -0
- package/dist/src/runtime/api/transfer.js +48 -0
- package/dist/src/runtime/api/transfer.js.map +1 -0
- package/dist/src/runtime/client.d.ts.map +1 -1
- package/dist/src/runtime/client.js +7 -1
- package/dist/src/runtime/client.js.map +1 -1
- package/dist/src/runtime/compatibility.d.ts +6 -6
- package/dist/src/runtime/compatibility.d.ts.map +1 -1
- package/dist/src/runtime/compatibility.js +59 -7
- package/dist/src/runtime/compatibility.js.map +1 -1
- package/dist/src/runtime/errors.d.ts +20 -2
- package/dist/src/runtime/errors.d.ts.map +1 -1
- package/dist/src/runtime/errors.js +53 -2
- package/dist/src/runtime/errors.js.map +1 -1
- package/dist/src/runtime/hooks/index.d.ts +2 -0
- package/dist/src/runtime/hooks/index.d.ts.map +1 -1
- package/dist/src/runtime/hooks/index.js +2 -0
- package/dist/src/runtime/hooks/index.js.map +1 -1
- package/dist/src/runtime/hooks/useMediaCategories.d.ts +30 -0
- package/dist/src/runtime/hooks/useMediaCategories.d.ts.map +1 -0
- package/dist/src/runtime/hooks/useMediaCategories.js +56 -0
- package/dist/src/runtime/hooks/useMediaCategories.js.map +1 -0
- package/dist/src/runtime/hooks/useMediaObjects.d.ts.map +1 -1
- package/dist/src/runtime/hooks/useMediaObjects.js +14 -2
- package/dist/src/runtime/hooks/useMediaObjects.js.map +1 -1
- package/dist/src/runtime/hooks/useMediaTransfer.d.ts +42 -0
- package/dist/src/runtime/hooks/useMediaTransfer.d.ts.map +1 -0
- package/dist/src/runtime/hooks/useMediaTransfer.js +106 -0
- package/dist/src/runtime/hooks/useMediaTransfer.js.map +1 -0
- package/dist/src/runtime/queryKeys.d.ts +2 -0
- package/dist/src/runtime/queryKeys.d.ts.map +1 -1
- package/dist/src/runtime/queryKeys.js +2 -0
- package/dist/src/runtime/queryKeys.js.map +1 -1
- package/dist/src/runtime/react/CategoryManager.d.ts +10 -0
- package/dist/src/runtime/react/CategoryManager.d.ts.map +1 -0
- package/dist/src/runtime/react/CategoryManager.js +194 -0
- package/dist/src/runtime/react/CategoryManager.js.map +1 -0
- package/dist/src/runtime/react/CategoryMultiSelect.d.ts +73 -0
- package/dist/src/runtime/react/CategoryMultiSelect.d.ts.map +1 -0
- package/dist/src/runtime/react/CategoryMultiSelect.js +179 -0
- package/dist/src/runtime/react/CategoryMultiSelect.js.map +1 -0
- package/dist/src/runtime/react/MediaCategoryTreePane.d.ts +22 -0
- package/dist/src/runtime/react/MediaCategoryTreePane.d.ts.map +1 -0
- package/dist/src/runtime/react/MediaCategoryTreePane.js +244 -0
- package/dist/src/runtime/react/MediaCategoryTreePane.js.map +1 -0
- package/dist/src/runtime/react/MediaErrorBoundary.d.ts +53 -0
- package/dist/src/runtime/react/MediaErrorBoundary.d.ts.map +1 -0
- package/dist/src/runtime/react/MediaErrorBoundary.js +58 -0
- package/dist/src/runtime/react/MediaErrorBoundary.js.map +1 -0
- package/dist/src/runtime/react/MediaLibrary.d.ts +16 -1
- package/dist/src/runtime/react/MediaLibrary.d.ts.map +1 -1
- package/dist/src/runtime/react/MediaLibrary.js +75 -110
- package/dist/src/runtime/react/MediaLibrary.js.map +1 -1
- package/dist/src/runtime/react/MediaObjectViews.d.ts +47 -0
- package/dist/src/runtime/react/MediaObjectViews.d.ts.map +1 -0
- package/dist/src/runtime/react/MediaObjectViews.js +131 -0
- package/dist/src/runtime/react/MediaObjectViews.js.map +1 -0
- package/dist/src/runtime/react/MediaTransferPanel.d.ts +17 -0
- package/dist/src/runtime/react/MediaTransferPanel.d.ts.map +1 -0
- package/dist/src/runtime/react/MediaTransferPanel.js +93 -0
- package/dist/src/runtime/react/MediaTransferPanel.js.map +1 -0
- package/dist/src/runtime/react/MediaUploadDropzone.d.ts +36 -1
- package/dist/src/runtime/react/MediaUploadDropzone.d.ts.map +1 -1
- package/dist/src/runtime/react/MediaUploadDropzone.js +63 -3
- package/dist/src/runtime/react/MediaUploadDropzone.js.map +1 -1
- package/dist/src/runtime/react/ObjectDetail.d.ts.map +1 -1
- package/dist/src/runtime/react/ObjectDetail.js +51 -1
- package/dist/src/runtime/react/ObjectDetail.js.map +1 -1
- package/dist/src/runtime/react/categoryBranch.d.ts +38 -0
- package/dist/src/runtime/react/categoryBranch.d.ts.map +1 -0
- package/dist/src/runtime/react/categoryBranch.js +37 -0
- package/dist/src/runtime/react/categoryBranch.js.map +1 -0
- package/dist/src/runtime/react/default-ui/index.d.ts +6 -2
- package/dist/src/runtime/react/default-ui/index.d.ts.map +1 -1
- package/dist/src/runtime/react/default-ui/index.js +14 -9
- package/dist/src/runtime/react/default-ui/index.js.map +1 -1
- package/dist/src/runtime/react/index.d.ts +5 -2
- package/dist/src/runtime/react/index.d.ts.map +1 -1
- package/dist/src/runtime/react/index.js +3 -0
- package/dist/src/runtime/react/index.js.map +1 -1
- package/dist/src/runtime/react/mediaLibraryLabels.d.ts +93 -0
- package/dist/src/runtime/react/mediaLibraryLabels.d.ts.map +1 -0
- package/dist/src/runtime/react/mediaLibraryLabels.js +100 -0
- package/dist/src/runtime/react/mediaLibraryLabels.js.map +1 -0
- package/dist/src/runtime/react/mediaLibraryStyles.d.ts +44 -0
- package/dist/src/runtime/react/mediaLibraryStyles.d.ts.map +1 -0
- package/dist/src/runtime/react/mediaLibraryStyles.js +82 -0
- package/dist/src/runtime/react/mediaLibraryStyles.js.map +1 -0
- package/dist/src/runtime/routes.d.ts +2 -0
- package/dist/src/runtime/routes.d.ts.map +1 -1
- package/dist/src/runtime/routes.js +2 -0
- package/dist/src/runtime/routes.js.map +1 -1
- package/dist/src/runtime/schemas.d.ts +265 -0
- package/dist/src/runtime/schemas.d.ts.map +1 -1
- package/dist/src/runtime/schemas.js +173 -6
- package/dist/src/runtime/schemas.js.map +1 -1
- package/dist/src/runtime/upload/uploadController.d.ts +7 -0
- package/dist/src/runtime/upload/uploadController.d.ts.map +1 -1
- package/dist/src/runtime/upload/uploadController.js +10 -5
- package/dist/src/runtime/upload/uploadController.js.map +1 -1
- package/package.json +36 -28
- package/registry/r/media-category-tree.json +21 -0
- package/registry/r/media-dashboard-overview.json +1 -1
- package/registry/r/media-library-tree.json +25 -0
- package/registry/r/media-maintenance-panel.json +3 -2
- package/registry/r/media-transfer-dialog.json +26 -0
- package/registry/r/registry.json +18 -0
- package/registry.json +61 -1
- package/src/routes/categories.astro +12 -0
- package/src/scaffold/styles/media.css +395 -5
package/README.md
CHANGED
|
@@ -17,21 +17,28 @@ from [mano8/astro-ui-m8](https://github.com/mano8/astro-ui-m8), targets the
|
|
|
17
17
|
media backend at [mano8/media-service-m8](https://github.com/mano8/media-service-m8),
|
|
18
18
|
and composes into the [mano8/fa-ui-m8](https://github.com/mano8/fa-ui-m8) host app.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
## Related repositories
|
|
21
21
|
|
|
22
22
|
- [`media-service-m8`](https://github.com/mano8/media-service-m8) — the FastAPI backend this plugin fronts.
|
|
23
23
|
- [`astro-ui-m8`](https://github.com/mano8/astro-ui-m8) — canonical shared shadcn registry (data-table, state components) this plugin's admin views build on.
|
|
24
24
|
- [`astro-auth-m8`](https://github.com/mano8/astro-auth-m8) — required auth peer; issues the fa-auth-m8 tokens this plugin's adapter consumes.
|
|
25
25
|
- [`fa-ui-m8`](https://github.com/mano8/fa-ui-m8) — the Astro/Starlight host app this plugin installs into.
|
|
26
26
|
|
|
27
|
-
Pinned to `media-service-m8@1.
|
|
28
|
-
`>=
|
|
27
|
+
Pinned to `media-service-m8@1.1` (supported service-version range
|
|
28
|
+
`>=2.0.0 <3.0.0`; see `mediaServiceM8` in `package.json`).
|
|
29
29
|
|
|
30
30
|
## Backend contract
|
|
31
31
|
|
|
32
|
-
This package targets the `media-service-m8@1.
|
|
33
|
-
against `media-service-m8` service version `1.
|
|
34
|
-
versions are `>=
|
|
32
|
+
This package targets the additive `media-service-m8@1.1` API contract and was
|
|
33
|
+
tested against `media-service-m8` service version `2.1.1`. Supported backend
|
|
34
|
+
service versions are `>=2.0.0 <3.0.0`.
|
|
35
|
+
|
|
36
|
+
The contract axis and the service axis move independently, and only the range
|
|
37
|
+
gates anything. The **contract** stays `1.1` because no served shape changed;
|
|
38
|
+
the **tested service version** names what this client was exercised against.
|
|
39
|
+
Since the range admits the whole 2.x line, a host on the published `2.1.0`
|
|
40
|
+
passes preflight unchanged — the tested value is a statement of provenance, not
|
|
41
|
+
a floor.
|
|
35
42
|
|
|
36
43
|
Compatibility helpers are exported from `@mano8/astro-media-m8/compatibility`.
|
|
37
44
|
`media-service-m8` (>= 0.0.10) exposes a public `GET {API_PREFIX}/meta` route
|
|
@@ -55,10 +62,12 @@ elsewhere.
|
|
|
55
62
|
npm i @mano8/astro-media-m8 @mano8/astro-auth-m8 zod
|
|
56
63
|
```
|
|
57
64
|
|
|
58
|
-
`@mano8/astro-auth-m8` is a required peer
|
|
59
|
-
`fa-auth-m8`-issued tokens, so the plugin's auth
|
|
60
|
-
`fa-auth-m8` (the official plugin, or a custom adapter
|
|
61
|
-
tokens).
|
|
65
|
+
`@mano8/astro-auth-m8` is a required peer at **`^2.2.0` or newer**:
|
|
66
|
+
`media-service-m8` only accepts `fa-auth-m8`-issued tokens, so the plugin's auth
|
|
67
|
+
adapter must be backed by `fa-auth-m8` (the official plugin, or a custom adapter
|
|
68
|
+
that obtains those tokens). A 1.x auth is not supported — upgrade auth first, or
|
|
69
|
+
the install resolves nothing that satisfies the peer.
|
|
70
|
+
`@mano8/astro-ui-m8` (`^1.5.0`) is a normal dependency because the media registry
|
|
62
71
|
skins compose the canonical shared table from its packaged registry output.
|
|
63
72
|
`react`/`react-dom` are optional — only `./react`, `./hooks` and the starter
|
|
64
73
|
views need them; `@tanstack/react-query` is a required peer once you use
|
|
@@ -67,7 +76,9 @@ views need them; `@tanstack/react-query` is a required peer once you use
|
|
|
67
76
|
## Modes
|
|
68
77
|
|
|
69
78
|
- **headless** — schemas, API wrappers, upload controller, stores; no pages.
|
|
70
|
-
- **starter** — injects
|
|
79
|
+
- **starter** — injects library (with an upload dialog), category CRUD, object,
|
|
80
|
+
presets and admin routes. The legacy upload route remains available for
|
|
81
|
+
direct links and opens the same library upload workflow.
|
|
71
82
|
- **scaffolded** — `views.strategy: "scaffolded"` to own the view files.
|
|
72
83
|
|
|
73
84
|
## Quick start
|
|
@@ -184,6 +195,8 @@ declare the namespace in `components.json` for documentation / future HTTP hosti
|
|
|
184
195
|
| `media-dashboard-overview` | `npx shadcn add ./node_modules/@mano8/astro-media-m8/registry/r/media-dashboard-overview.json` | `card`, `button`, `media-storage-chart`, `@mano8/astro-ui-m8/data-table`, `@mano8/astro-ui-m8/state-empty`, `@mano8/astro-ui-m8/state-error`, `@mano8/astro-ui-m8/state-loading`, `@mano8/astro-ui-m8/state-unauthorized` | `lucide-react`, `@tanstack/react-table` | **yes** (`useMediaAdmin`) |
|
|
185
196
|
| `media-maintenance-panel` | `npx shadcn add ./node_modules/@mano8/astro-media-m8/registry/r/media-maintenance-panel.json` | `card`, `button`, `alert-dialog`, `@mano8/astro-ui-m8/state-error`, `@mano8/astro-ui-m8/state-unauthorized` | `lucide-react` | **yes** (`useMediaAdmin`) |
|
|
186
197
|
| `admin-media-dashboard` | `npx shadcn add ./node_modules/@mano8/astro-media-m8/registry/r/admin-media-dashboard.json` | `tabs`, `@mano8/astro-ui-m8/state-unauthorized`, `media-dashboard-overview`, `media-maintenance-panel` | `lucide-react` | **yes** (`MediaProvider`, `RequireSuperuser`) |
|
|
198
|
+
| `media-category-tree` | `npx shadcn add ./node_modules/@mano8/astro-media-m8/registry/r/media-category-tree.json` | `@mano8/astro-ui-m8/tree-view`, `@mano8/astro-ui-m8/state-empty`, `@mano8/astro-ui-m8/state-error`, `@mano8/astro-ui-m8/state-loading` | — | **yes** (`useCategoryTree`) |
|
|
199
|
+
| `media-library-tree` | `npx shadcn add ./node_modules/@mano8/astro-media-m8/registry/r/media-library-tree.json` | `badge`, `button`, `@mano8/astro-ui-m8/data-table`, `@mano8/astro-ui-m8/state-error`, `media-category-tree` | `@tanstack/react-table` | **yes** (`useMediaObjects`) |
|
|
187
200
|
|
|
188
201
|
`media-dashboard-overview` is the admin **landing** view (storage stat cards + a
|
|
189
202
|
per-category storage chart + a subscriptions table built on the canonical
|
|
@@ -198,6 +211,18 @@ into your own shell instead if you already own the media chrome (as fa-ui-m8 doe
|
|
|
198
211
|
Each reads its headless logic straight from `useMediaAdmin` and takes its strings via
|
|
199
212
|
`labels`.
|
|
200
213
|
|
|
214
|
+
`media-category-tree` is a shadcn skin over `astro-ui-m8`'s generic `tree-view` block
|
|
215
|
+
for the nested user category tree: "All media" and "Uncategorized" pseudo-nodes always
|
|
216
|
+
sit above the mapped category nodes, backed live by `useCategoryTree`, with the
|
|
217
|
+
canonical `astro-ui-m8` loading/empty/error states. `media-library-tree` pairs that pane
|
|
218
|
+
with the canonical `astro-ui-m8` `data-table` (right pane) scoped to the selected branch
|
|
219
|
+
via `useMediaObjects`; because that hook is cursor-paginated rather than page-numbered,
|
|
220
|
+
the table is pinned to the single loaded page and "Load more" is wired to the table's
|
|
221
|
+
add-button slot instead of forking a second results table. Both compose rather than
|
|
222
|
+
reimplement the shared `tree-view`/`data-table` blocks, per this package's registry
|
|
223
|
+
convention. Headless category-tree parsing is bounded to 10 levels, matching the
|
|
224
|
+
service default, so malformed responses cannot drive unbounded browser recursion.
|
|
225
|
+
|
|
201
226
|
Files land under `src/components/fa-media/` (the items' `target`), import shadcn
|
|
202
227
|
primitives via `@/components/ui/*`, and pull headless logic from the installed package.
|
|
203
228
|
The plugin package is intentionally **not** listed in item `dependencies` (it would make
|
|
@@ -217,11 +242,29 @@ Consumers should install the shared UI block first or let `shadcn` resolve it fr
|
|
|
217
242
|
the internal `PUBLIC_FA_MEDIA_*` form consumed by the provider config.
|
|
218
243
|
- All view labels are props with English defaults — pass your own i18n strings to localize.
|
|
219
244
|
|
|
245
|
+
## Error boundaries
|
|
246
|
+
|
|
247
|
+
Every React island root this plugin mounts — `LibraryView`, `ObjectDetailView`,
|
|
248
|
+
`UploadView`, `PresetsView` and `AdminMediaView` — is wrapped in an error
|
|
249
|
+
boundary. A throw inside a view renders the canonical `astro-ui-m8` error state
|
|
250
|
+
in place of that island rather than tearing it down and leaving a blank region
|
|
251
|
+
on the host page. Nothing is required of the host to get this.
|
|
252
|
+
|
|
253
|
+
## Dev preview gallery
|
|
254
|
+
|
|
255
|
+
`npm run preview:dev` serves a development-only `/_preview` gallery that mounts
|
|
256
|
+
every shipped island against an in-memory stand-in for `media-service-m8`. Only
|
|
257
|
+
`fetch` is replaced, so the views, hooks, API wrappers and Zod schemas you see
|
|
258
|
+
are the shipped ones rather than a picture of a mock; one panel deliberately
|
|
259
|
+
throws to show the error boundary. The gallery lives in `fixtures/` and is not
|
|
260
|
+
part of the published tarball.
|
|
261
|
+
|
|
220
262
|
## Commands
|
|
221
263
|
|
|
222
264
|
- `npm run build` — `tsc` → `dist/` + `npm run build:registry`
|
|
223
265
|
- `npm run build:registry` — regenerate `registry/r/*.json` from `registry.json`
|
|
224
266
|
- `npm run typecheck` — `tsc --noEmit`
|
|
225
267
|
- `npm test` — Vitest with coverage (100% on the non-React runtime)
|
|
268
|
+
- `npm run preview:dev` / `npm run preview:build` — the dev-only `/_preview` gallery
|
|
226
269
|
|
|
227
270
|
[`media-service-m8`]: https://github.com/mano8/media-service-m8
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,cAAc,CAAC;KACrD,CAAC;IACF,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;QAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,aAAa,CAAC;QAChC,iBAAiB,CAAC,EAAE,eAAe,CAAC;QACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,2GAA2G;IAC3G,GAAG,CAAC,EAAE;QACJ,sGAAsG;QACtG,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,eAAe,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,cAAc,CAAC;KACrD,CAAC;IACF,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;QAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,aAAa,CAAC;QAChC,iBAAiB,CAAC,EAAE,eAAe,CAAC;QACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,2GAA2G;IAC3G,GAAG,CAAC,EAAE;QACJ,sGAAsG;QACtG,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,eAAe,CAAC;CACrB,CAAC;AA8BF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,gBAAgB,CAkEnF;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/src/integration.js
CHANGED
|
@@ -3,6 +3,7 @@ import { buildMediaCspPolicy } from "./lib/csp.js";
|
|
|
3
3
|
const ROUTE_ENTRYPOINTS = {
|
|
4
4
|
upload: "@mano8/astro-media-m8/routes/upload.astro",
|
|
5
5
|
library: "@mano8/astro-media-m8/routes/library.astro",
|
|
6
|
+
categories: "@mano8/astro-media-m8/routes/categories.astro",
|
|
6
7
|
object: "@mano8/astro-media-m8/routes/object/[id].astro",
|
|
7
8
|
presets: "@mano8/astro-media-m8/routes/presets.astro",
|
|
8
9
|
admin: "@mano8/astro-media-m8/routes/admin/media.astro"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../src/integration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../src/integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import { type CategoriesPublic, type CategoryCreate, type
|
|
1
|
+
import { type CategoriesPublic, type CategoryCreate, type CategoryPublic, type CategoryTree, type CategoryUpdate } from "../schemas.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* User category CRUD + tree. These routes live under `legacyBase` (no `/v1`).
|
|
4
|
+
*
|
|
5
|
+
* `get`/`add`/`edit`/`delete` answer typed responses, not the older
|
|
6
|
+
* `{success, ...}` envelope — the server controller extraction
|
|
7
|
+
* (media-service-m8 `58bc3f9`) dropped it, so these wrappers are retyped
|
|
8
|
+
* rather than preserved. `list` was already unaffected on the wrapper shape,
|
|
9
|
+
* but its items now carry `parent_id`/`tenant_id` too (`U3`), which
|
|
10
|
+
* `CategoryPublicSchema` reflects.
|
|
6
11
|
*/
|
|
7
12
|
export declare function listCategories(skip?: number, limit?: number): Promise<CategoriesPublic>;
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
13
|
+
export declare function getCategoryTree(): Promise<CategoryTree>;
|
|
14
|
+
export declare function getCategory(itemId: number): Promise<CategoryPublic>;
|
|
15
|
+
export declare function createCategory(body: CategoryCreate): Promise<CategoryPublic>;
|
|
16
|
+
export declare function updateCategory(itemId: number, body: CategoryUpdate): Promise<CategoryPublic>;
|
|
17
|
+
export declare function deleteCategory(itemId: number): Promise<void>;
|
|
12
18
|
//# sourceMappingURL=categories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../../src/runtime/api/categories.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../../src/runtime/api/categories.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AAEH,wBAAgB,cAAc,CAAC,IAAI,SAAI,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAS/E;AAED,wBAAgB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAQvD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAQnE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAS5E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAS5F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO5D"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { request } from "../client.js";
|
|
2
|
-
import { CategoriesPublicSchema,
|
|
2
|
+
import { CategoriesPublicSchema, CategoryPublicSchema, CategoryTreeSchema } from "../schemas.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* User category CRUD + tree. These routes live under `legacyBase` (no `/v1`).
|
|
5
|
+
*
|
|
6
|
+
* `get`/`add`/`edit`/`delete` answer typed responses, not the older
|
|
7
|
+
* `{success, ...}` envelope — the server controller extraction
|
|
8
|
+
* (media-service-m8 `58bc3f9`) dropped it, so these wrappers are retyped
|
|
9
|
+
* rather than preserved. `list` was already unaffected on the wrapper shape,
|
|
10
|
+
* but its items now carry `parent_id`/`tenant_id` too (`U3`), which
|
|
11
|
+
* `CategoryPublicSchema` reflects.
|
|
7
12
|
*/
|
|
8
13
|
export function listCategories(skip = 0, limit = 100) {
|
|
9
14
|
return request({
|
|
@@ -15,12 +20,21 @@ export function listCategories(skip = 0, limit = 100) {
|
|
|
15
20
|
auth: true
|
|
16
21
|
});
|
|
17
22
|
}
|
|
23
|
+
export function getCategoryTree() {
|
|
24
|
+
return request({
|
|
25
|
+
method: "GET",
|
|
26
|
+
base: "legacy",
|
|
27
|
+
path: "/category/tree/",
|
|
28
|
+
schema: CategoryTreeSchema,
|
|
29
|
+
auth: true
|
|
30
|
+
});
|
|
31
|
+
}
|
|
18
32
|
export function getCategory(itemId) {
|
|
19
33
|
return request({
|
|
20
34
|
method: "GET",
|
|
21
35
|
base: "legacy",
|
|
22
36
|
path: `/category/get/${encodeURIComponent(itemId)}/`,
|
|
23
|
-
schema:
|
|
37
|
+
schema: CategoryPublicSchema,
|
|
24
38
|
auth: true
|
|
25
39
|
});
|
|
26
40
|
}
|
|
@@ -30,7 +44,7 @@ export function createCategory(body) {
|
|
|
30
44
|
base: "legacy",
|
|
31
45
|
path: "/category/add/",
|
|
32
46
|
body,
|
|
33
|
-
schema:
|
|
47
|
+
schema: CategoryPublicSchema,
|
|
34
48
|
auth: true
|
|
35
49
|
});
|
|
36
50
|
}
|
|
@@ -40,7 +54,7 @@ export function updateCategory(itemId, body) {
|
|
|
40
54
|
base: "legacy",
|
|
41
55
|
path: `/category/edit/${encodeURIComponent(itemId)}/`,
|
|
42
56
|
body,
|
|
43
|
-
schema:
|
|
57
|
+
schema: CategoryPublicSchema,
|
|
44
58
|
auth: true
|
|
45
59
|
});
|
|
46
60
|
}
|
|
@@ -49,7 +63,6 @@ export function deleteCategory(itemId) {
|
|
|
49
63
|
method: "DELETE",
|
|
50
64
|
base: "legacy",
|
|
51
65
|
path: `/category/delete/${encodeURIComponent(itemId)}/`,
|
|
52
|
-
schema: ResponseMessageSchema,
|
|
53
66
|
auth: true
|
|
54
67
|
});
|
|
55
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../../src/runtime/api/categories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../../src/runtime/api/categories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAMnB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AAEH,MAAM,UAAU,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG;IAClD,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACtB,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,GAAG;QACpD,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAoB;IACjD,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,IAAI;QACJ,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAoB;IACjE,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,GAAG;QACrD,IAAI;QACJ,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,GAAG;QACvD,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -6,6 +6,7 @@ import * as sharesApi from "./shares.js";
|
|
|
6
6
|
import * as categoriesApi from "./categories.js";
|
|
7
7
|
import * as dashboardApi from "./dashboard.js";
|
|
8
8
|
import * as adminApi from "./admin.js";
|
|
9
|
+
import * as transferApi from "./transfer.js";
|
|
9
10
|
export * from "./uploads.js";
|
|
10
11
|
export * from "./objects.js";
|
|
11
12
|
export * from "./variants.js";
|
|
@@ -14,6 +15,7 @@ export * from "./shares.js";
|
|
|
14
15
|
export * from "./categories.js";
|
|
15
16
|
export * from "./dashboard.js";
|
|
16
17
|
export * from "./admin.js";
|
|
18
|
+
export * from "./transfer.js";
|
|
17
19
|
export declare const uploads: {
|
|
18
20
|
readonly initiate: typeof uploadsApi.initiateUpload;
|
|
19
21
|
readonly complete: typeof uploadsApi.completeUpload;
|
|
@@ -47,6 +49,7 @@ export declare const shares: {
|
|
|
47
49
|
};
|
|
48
50
|
export declare const categories: {
|
|
49
51
|
readonly list: typeof categoriesApi.listCategories;
|
|
52
|
+
readonly tree: typeof categoriesApi.getCategoryTree;
|
|
50
53
|
readonly get: typeof categoriesApi.getCategory;
|
|
51
54
|
readonly create: typeof categoriesApi.createCategory;
|
|
52
55
|
readonly update: typeof categoriesApi.updateCategory;
|
|
@@ -69,4 +72,9 @@ export declare const admin: {
|
|
|
69
72
|
readonly listSubscriptions: typeof adminApi.listSubscriptions;
|
|
70
73
|
readonly deleteSubscription: typeof adminApi.deleteSubscription;
|
|
71
74
|
};
|
|
75
|
+
export declare const transfer: {
|
|
76
|
+
readonly startExport: typeof transferApi.startExport;
|
|
77
|
+
readonly getExportJob: typeof transferApi.getExportJob;
|
|
78
|
+
readonly startImport: typeof transferApi.startImport;
|
|
79
|
+
};
|
|
72
80
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAG7C,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAG9B,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AAEX,eAAO,MAAM,OAAO;;;;;;CAMV,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC;AAEX,eAAO,MAAM,OAAO;;;;;CAKV,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;CAKT,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,eAAO,MAAM,SAAS;;;CAGZ,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;;;;;;;;CAYR,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;CAIX,CAAC"}
|
|
@@ -6,6 +6,7 @@ import * as sharesApi from "./shares.js";
|
|
|
6
6
|
import * as categoriesApi from "./categories.js";
|
|
7
7
|
import * as dashboardApi from "./dashboard.js";
|
|
8
8
|
import * as adminApi from "./admin.js";
|
|
9
|
+
import * as transferApi from "./transfer.js";
|
|
9
10
|
// Flat named exports (tree-shakeable direct imports).
|
|
10
11
|
export * from "./uploads.js";
|
|
11
12
|
export * from "./objects.js";
|
|
@@ -15,6 +16,7 @@ export * from "./shares.js";
|
|
|
15
16
|
export * from "./categories.js";
|
|
16
17
|
export * from "./dashboard.js";
|
|
17
18
|
export * from "./admin.js";
|
|
19
|
+
export * from "./transfer.js";
|
|
18
20
|
// Grouped namespaces (`uploads.initiate`, `objects.list`, ...).
|
|
19
21
|
export const uploads = {
|
|
20
22
|
initiate: uploadsApi.initiateUpload,
|
|
@@ -49,6 +51,7 @@ export const shares = {
|
|
|
49
51
|
};
|
|
50
52
|
export const categories = {
|
|
51
53
|
list: categoriesApi.listCategories,
|
|
54
|
+
tree: categoriesApi.getCategoryTree,
|
|
52
55
|
get: categoriesApi.getCategory,
|
|
53
56
|
create: categoriesApi.createCategory,
|
|
54
57
|
update: categoriesApi.updateCategory,
|
|
@@ -71,4 +74,9 @@ export const admin = {
|
|
|
71
74
|
listSubscriptions: adminApi.listSubscriptions,
|
|
72
75
|
deleteSubscription: adminApi.deleteSubscription
|
|
73
76
|
};
|
|
77
|
+
export const transfer = {
|
|
78
|
+
startExport: transferApi.startExport,
|
|
79
|
+
getExportJob: transferApi.getExportJob,
|
|
80
|
+
startImport: transferApi.startImport
|
|
81
|
+
};
|
|
74
82
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ExportJobPublic, type ExportManifest, type ImportFormat, type ImportReport, type ObjectListParams } from "../schemas.js";
|
|
2
|
+
/**
|
|
3
|
+
* Export/import wrappers (`U9`/`U10`). `manifest` is answered inline —
|
|
4
|
+
* metadata only, no bytes; `archive` is accepted (202) as a job collected
|
|
5
|
+
* from {@link getExportJob}. Both formats share the same request shape, so
|
|
6
|
+
* one overloaded `startExport` narrows its return type by the `format`
|
|
7
|
+
* literal instead of the caller having to cast.
|
|
8
|
+
*/
|
|
9
|
+
export declare function startExport(format: "manifest", filters?: ObjectListParams): Promise<ExportManifest>;
|
|
10
|
+
export declare function startExport(format: "archive", filters?: ObjectListParams): Promise<ExportJobPublic>;
|
|
11
|
+
/** Progress (and, once `completed`, a presigned download) for an archive export job. */
|
|
12
|
+
export declare function getExportJob(jobId: string): Promise<ExportJobPublic>;
|
|
13
|
+
/**
|
|
14
|
+
* Multipart, for both formats — an export hands the caller a document to
|
|
15
|
+
* keep (the streamed manifest or the assembled archive) and an import takes
|
|
16
|
+
* that same document back, so one path reads one shape either way.
|
|
17
|
+
*/
|
|
18
|
+
export declare function startImport(format: ImportFormat, file: File | Blob): Promise<ImportReport>;
|
|
19
|
+
//# sourceMappingURL=transfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../src/runtime/api/transfer.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAEvB;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AACrG,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAuBrG,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAOpE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAY1F"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { request } from "../client.js";
|
|
2
|
+
import { ExportJobPublicSchema, ExportManifestSchema, ImportReportSchema } from "../schemas.js";
|
|
3
|
+
export function startExport(format, filters) {
|
|
4
|
+
if (format === "archive") {
|
|
5
|
+
return request({
|
|
6
|
+
method: "POST",
|
|
7
|
+
path: "/export",
|
|
8
|
+
body: { format, filters },
|
|
9
|
+
schema: ExportJobPublicSchema,
|
|
10
|
+
auth: true
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return request({
|
|
14
|
+
method: "POST",
|
|
15
|
+
path: "/export",
|
|
16
|
+
body: { format, filters },
|
|
17
|
+
schema: ExportManifestSchema,
|
|
18
|
+
auth: true
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/** Progress (and, once `completed`, a presigned download) for an archive export job. */
|
|
22
|
+
export function getExportJob(jobId) {
|
|
23
|
+
return request({
|
|
24
|
+
method: "GET",
|
|
25
|
+
path: `/export/${encodeURIComponent(jobId)}`,
|
|
26
|
+
schema: ExportJobPublicSchema,
|
|
27
|
+
auth: true
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Multipart, for both formats — an export hands the caller a document to
|
|
32
|
+
* keep (the streamed manifest or the assembled archive) and an import takes
|
|
33
|
+
* that same document back, so one path reads one shape either way.
|
|
34
|
+
*/
|
|
35
|
+
export function startImport(format, file) {
|
|
36
|
+
const form = new FormData();
|
|
37
|
+
form.set("format", format);
|
|
38
|
+
const filename = typeof File !== "undefined" && file instanceof File ? file.name : "import";
|
|
39
|
+
form.set("file", file, filename);
|
|
40
|
+
return request({
|
|
41
|
+
method: "POST",
|
|
42
|
+
path: "/import",
|
|
43
|
+
body: form,
|
|
44
|
+
schema: ImportReportSchema,
|
|
45
|
+
auth: true
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../src/runtime/api/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAOnB,MAAM,eAAe,CAAC;AAWvB,MAAM,UAAU,WAAW,CACzB,MAAoB,EACpB,OAA0B;IAE1B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;YACb,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;YACzB,MAAM,EAAE,qBAAqB;YAC7B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QACzB,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,WAAW,kBAAkB,CAAC,KAAK,CAAC,EAAE;QAC5C,MAAM,EAAE,qBAAqB;QAC7B,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB,EAAE,IAAiB;IACjE,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5F,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/runtime/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,cAAc,gBAAgB,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACpD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAYrE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/runtime/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,cAAc,gBAAgB,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACpD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAYrE;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAwE5E"}
|
|
@@ -46,7 +46,13 @@ export async function request(options) {
|
|
|
46
46
|
headers.set("Authorization", `Bearer ${token}`);
|
|
47
47
|
}
|
|
48
48
|
let body;
|
|
49
|
-
if (options.body
|
|
49
|
+
if (options.body instanceof FormData) {
|
|
50
|
+
// Never set Content-Type ourselves — fetch derives the multipart
|
|
51
|
+
// boundary from the FormData body, and a manually-set header here would
|
|
52
|
+
// ship without one and break parsing server-side.
|
|
53
|
+
body = options.body;
|
|
54
|
+
}
|
|
55
|
+
else if (options.body !== undefined) {
|
|
50
56
|
headers.set("Content-Type", "application/json");
|
|
51
57
|
body = JSON.stringify(options.body);
|
|
52
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/runtime/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,cAAc,gBAAgB,CAAC;AAiB/B;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAsB,EAAE,IAAY;IAC3D,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3F,MAAM,IAAI,GACR,IAAI,KAAK,UAAU;QACjB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;IACzF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,OAA+B;IAC9D,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAEtC,6EAA6E;IAC7E,8CAA8C;IAC9C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,cAAc,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,KAAK,IAAI,IAAI;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB;QACrC,GAAG,OAAO,CAAC,OAAO;KACnB,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QAC7C,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,IAA0B,CAAC;IAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const MEDIA_SERVICE_M8_CONTRACT_ID = "media-service-m8";
|
|
2
|
-
export declare const MEDIA_SERVICE_M8_CONTRACT_VERSION = "1.
|
|
3
|
-
export declare const MEDIA_SERVICE_M8_CONTRACT: "media-service-m8@1.
|
|
4
|
-
export declare const MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION = "1.
|
|
5
|
-
export declare const MEDIA_SERVICE_M8_MIN_SERVICE_VERSION = "
|
|
6
|
-
export declare const MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE = "
|
|
7
|
-
export declare const MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE = ">=
|
|
2
|
+
export declare const MEDIA_SERVICE_M8_CONTRACT_VERSION = "1.1";
|
|
3
|
+
export declare const MEDIA_SERVICE_M8_CONTRACT: "media-service-m8@1.1";
|
|
4
|
+
export declare const MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION = "2.1.1";
|
|
5
|
+
export declare const MEDIA_SERVICE_M8_MIN_SERVICE_VERSION = "2.0.0";
|
|
6
|
+
export declare const MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE = "3.0.0";
|
|
7
|
+
export declare const MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE = ">=2.0.0 <3.0.0";
|
|
8
8
|
export type MediaServiceM8CompatibilityStatus = "compatible" | "incompatible" | "unknown";
|
|
9
9
|
export type MediaServiceM8VersionMetadata = {
|
|
10
10
|
contract?: unknown;
|
|
@@ -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;AAyBzH,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"}
|
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
export const MEDIA_SERVICE_M8_CONTRACT_ID = "media-service-m8";
|
|
2
|
-
export const MEDIA_SERVICE_M8_CONTRACT_VERSION = "1.
|
|
2
|
+
export const MEDIA_SERVICE_M8_CONTRACT_VERSION = "1.1";
|
|
3
3
|
export const MEDIA_SERVICE_M8_CONTRACT = `${MEDIA_SERVICE_M8_CONTRACT_ID}@${MEDIA_SERVICE_M8_CONTRACT_VERSION}`;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const MEDIA_SERVICE_M8_COMPATIBLE_CONTRACTS = new Set([
|
|
5
|
+
"1.0",
|
|
6
|
+
`${MEDIA_SERVICE_M8_CONTRACT_ID}@1.0`,
|
|
7
|
+
MEDIA_SERVICE_M8_CONTRACT_VERSION,
|
|
8
|
+
MEDIA_SERVICE_M8_CONTRACT
|
|
9
|
+
]);
|
|
10
|
+
// The service version range moves with media-service-m8's package version, which
|
|
11
|
+
// reached 2.0.0 for the reader/writer role tiers and the anonymous PUBLIC read
|
|
12
|
+
// surface. The contract moves to 1.1 for the additive UX API surface; the
|
|
13
|
+
// service-version gate remains at 2.x because this plugin still targets the
|
|
14
|
+
// same service release line. A pre-tier 1.x service is deliberately no longer
|
|
15
|
+
// admitted: it cannot serve the authorization behavior this plugin's guards
|
|
16
|
+
// assume.
|
|
17
|
+
// The service version this client was actually exercised against: 2.1.1, the
|
|
18
|
+
// single-object category-projection fix, whose OpenAPI is what every schema
|
|
19
|
+
// here was diffed against in the same pass.
|
|
20
|
+
//
|
|
21
|
+
// Written ahead of the 2.1.1 tag, deliberately and on the record — the same
|
|
22
|
+
// ordering inversion the workspace matrix documents for the 2.1.0 image pins,
|
|
23
|
+
// noted rather than hidden. It is safe *here* in a way a pin is not: this
|
|
24
|
+
// constant resolves nothing and installs nothing. The gate is
|
|
25
|
+
// MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE below, which already admits the whole
|
|
26
|
+
// 2.x line, so a host pointed at the published 2.1.0 passes preflight
|
|
27
|
+
// unchanged and this value never refuses it.
|
|
28
|
+
export const MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION = "2.1.1";
|
|
29
|
+
export const MEDIA_SERVICE_M8_MIN_SERVICE_VERSION = "2.0.0";
|
|
30
|
+
export const MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE = "3.0.0";
|
|
7
31
|
export const MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE = `>=${MEDIA_SERVICE_M8_MIN_SERVICE_VERSION} <${MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE}`;
|
|
8
32
|
function stringValue(value) {
|
|
9
33
|
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
@@ -15,6 +39,21 @@ function contractObjectVersion(value) {
|
|
|
15
39
|
}
|
|
16
40
|
return undefined;
|
|
17
41
|
}
|
|
42
|
+
// Read ``contract.name`` from the GET /meta nested contract object.
|
|
43
|
+
//
|
|
44
|
+
// The flat-string contract forms carry the issuer id inline (``media-service-m8@1.0``)
|
|
45
|
+
// and are checked against it, but the nested object splits id and version apart.
|
|
46
|
+
// Without reading ``name`` the version check alone would bless any service whose
|
|
47
|
+
// contract happens to sit at the same version - and ``mount_service_meta`` is a
|
|
48
|
+
// shared auth-sdk-m8 helper, so every M8 service serves this same payload shape
|
|
49
|
+
// at ``{API_PREFIX}/meta``. A host pointed at the wrong sibling is exactly the
|
|
50
|
+
// misconfiguration the preflight exists to name.
|
|
51
|
+
function contractObjectName(value) {
|
|
52
|
+
if (typeof value === "object" && value !== null) {
|
|
53
|
+
return stringValue(value.name);
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
18
57
|
function parseSemver(version) {
|
|
19
58
|
const [withoutBuild = ""] = version.split("+", 1);
|
|
20
59
|
const [core = ""] = withoutBuild.split("-", 1);
|
|
@@ -50,9 +89,22 @@ export function getMediaServiceM8Compatibility(metadata = {}) {
|
|
|
50
89
|
const serviceVersion = stringValue(metadata.media_service_m8_version) ??
|
|
51
90
|
stringValue(metadata.service_version) ??
|
|
52
91
|
stringValue(metadata.version);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
92
|
+
// Checked before the version, so a wrong service is reported as a wrong
|
|
93
|
+
// service rather than as a version mismatch. Only applies when the payload
|
|
94
|
+
// names an id at all - a nested contract without a `name` still falls through
|
|
95
|
+
// to the version comparison below.
|
|
96
|
+
const contractName = contractObjectName(metadata.contract);
|
|
97
|
+
if (contractName && contractName !== MEDIA_SERVICE_M8_CONTRACT_ID) {
|
|
98
|
+
return {
|
|
99
|
+
status: "incompatible",
|
|
100
|
+
expectedContract: MEDIA_SERVICE_M8_CONTRACT,
|
|
101
|
+
expectedServiceVersionRange: MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE,
|
|
102
|
+
contractVersion,
|
|
103
|
+
serviceVersion,
|
|
104
|
+
reason: `Expected ${MEDIA_SERVICE_M8_CONTRACT}, received the ${contractName} contract - check the configured media API base`
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (contractVersion && !MEDIA_SERVICE_M8_COMPATIBLE_CONTRACTS.has(contractVersion)) {
|
|
56
108
|
return {
|
|
57
109
|
status: "incompatible",
|
|
58
110
|
expectedContract: MEDIA_SERVICE_M8_CONTRACT,
|