@mano8/astro-media-m8 1.1.1 → 2.1.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 +57 -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 +58 -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,31 @@ 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 <4.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 `
|
|
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 `3.0.0`. Supported backend
|
|
34
|
+
service versions are `>=2.0.0 <4.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
|
+
`media-service-m8` `3.0.0` is an object-storage backend and env-var rename
|
|
40
|
+
(the `MINIO_*` deprecation shim removed in favor of provider-neutral `S3_*`)
|
|
41
|
+
with no change to the `1.1` HTTP contract, so widening the range to admit it
|
|
42
|
+
is additive. Since the range admits the whole 2.x line plus 3.x, a host on the
|
|
43
|
+
published `2.1.0` passes preflight unchanged — the tested value is a statement
|
|
44
|
+
of provenance, not a floor.
|
|
35
45
|
|
|
36
46
|
Compatibility helpers are exported from `@mano8/astro-media-m8/compatibility`.
|
|
37
47
|
`media-service-m8` (>= 0.0.10) exposes a public `GET {API_PREFIX}/meta` route
|
|
@@ -55,10 +65,12 @@ elsewhere.
|
|
|
55
65
|
npm i @mano8/astro-media-m8 @mano8/astro-auth-m8 zod
|
|
56
66
|
```
|
|
57
67
|
|
|
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).
|
|
68
|
+
`@mano8/astro-auth-m8` is a required peer at **`^2.6.0` or newer**:
|
|
69
|
+
`media-service-m8` only accepts `fa-auth-m8`-issued tokens, so the plugin's auth
|
|
70
|
+
adapter must be backed by `fa-auth-m8` (the official plugin, or a custom adapter
|
|
71
|
+
that obtains those tokens). A 1.x auth is not supported — upgrade auth first, or
|
|
72
|
+
the install resolves nothing that satisfies the peer.
|
|
73
|
+
`@mano8/astro-ui-m8` (`^1.5.0`) is a normal dependency because the media registry
|
|
62
74
|
skins compose the canonical shared table from its packaged registry output.
|
|
63
75
|
`react`/`react-dom` are optional — only `./react`, `./hooks` and the starter
|
|
64
76
|
views need them; `@tanstack/react-query` is a required peer once you use
|
|
@@ -67,7 +79,9 @@ views need them; `@tanstack/react-query` is a required peer once you use
|
|
|
67
79
|
## Modes
|
|
68
80
|
|
|
69
81
|
- **headless** — schemas, API wrappers, upload controller, stores; no pages.
|
|
70
|
-
- **starter** — injects
|
|
82
|
+
- **starter** — injects library (with an upload dialog), category CRUD, object,
|
|
83
|
+
presets and admin routes. The legacy upload route remains available for
|
|
84
|
+
direct links and opens the same library upload workflow.
|
|
71
85
|
- **scaffolded** — `views.strategy: "scaffolded"` to own the view files.
|
|
72
86
|
|
|
73
87
|
## Quick start
|
|
@@ -184,6 +198,8 @@ declare the namespace in `components.json` for documentation / future HTTP hosti
|
|
|
184
198
|
| `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
199
|
| `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
200
|
| `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`) |
|
|
201
|
+
| `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`) |
|
|
202
|
+
| `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
203
|
|
|
188
204
|
`media-dashboard-overview` is the admin **landing** view (storage stat cards + a
|
|
189
205
|
per-category storage chart + a subscriptions table built on the canonical
|
|
@@ -198,6 +214,18 @@ into your own shell instead if you already own the media chrome (as fa-ui-m8 doe
|
|
|
198
214
|
Each reads its headless logic straight from `useMediaAdmin` and takes its strings via
|
|
199
215
|
`labels`.
|
|
200
216
|
|
|
217
|
+
`media-category-tree` is a shadcn skin over `astro-ui-m8`'s generic `tree-view` block
|
|
218
|
+
for the nested user category tree: "All media" and "Uncategorized" pseudo-nodes always
|
|
219
|
+
sit above the mapped category nodes, backed live by `useCategoryTree`, with the
|
|
220
|
+
canonical `astro-ui-m8` loading/empty/error states. `media-library-tree` pairs that pane
|
|
221
|
+
with the canonical `astro-ui-m8` `data-table` (right pane) scoped to the selected branch
|
|
222
|
+
via `useMediaObjects`; because that hook is cursor-paginated rather than page-numbered,
|
|
223
|
+
the table is pinned to the single loaded page and "Load more" is wired to the table's
|
|
224
|
+
add-button slot instead of forking a second results table. Both compose rather than
|
|
225
|
+
reimplement the shared `tree-view`/`data-table` blocks, per this package's registry
|
|
226
|
+
convention. Headless category-tree parsing is bounded to 10 levels, matching the
|
|
227
|
+
service default, so malformed responses cannot drive unbounded browser recursion.
|
|
228
|
+
|
|
201
229
|
Files land under `src/components/fa-media/` (the items' `target`), import shadcn
|
|
202
230
|
primitives via `@/components/ui/*`, and pull headless logic from the installed package.
|
|
203
231
|
The plugin package is intentionally **not** listed in item `dependencies` (it would make
|
|
@@ -217,11 +245,29 @@ Consumers should install the shared UI block first or let `shadcn` resolve it fr
|
|
|
217
245
|
the internal `PUBLIC_FA_MEDIA_*` form consumed by the provider config.
|
|
218
246
|
- All view labels are props with English defaults — pass your own i18n strings to localize.
|
|
219
247
|
|
|
248
|
+
## Error boundaries
|
|
249
|
+
|
|
250
|
+
Every React island root this plugin mounts — `LibraryView`, `ObjectDetailView`,
|
|
251
|
+
`UploadView`, `PresetsView` and `AdminMediaView` — is wrapped in an error
|
|
252
|
+
boundary. A throw inside a view renders the canonical `astro-ui-m8` error state
|
|
253
|
+
in place of that island rather than tearing it down and leaving a blank region
|
|
254
|
+
on the host page. Nothing is required of the host to get this.
|
|
255
|
+
|
|
256
|
+
## Dev preview gallery
|
|
257
|
+
|
|
258
|
+
`npm run preview:dev` serves a development-only `/_preview` gallery that mounts
|
|
259
|
+
every shipped island against an in-memory stand-in for `media-service-m8`. Only
|
|
260
|
+
`fetch` is replaced, so the views, hooks, API wrappers and Zod schemas you see
|
|
261
|
+
are the shipped ones rather than a picture of a mock; one panel deliberately
|
|
262
|
+
throws to show the error boundary. The gallery lives in `fixtures/` and is not
|
|
263
|
+
part of the published tarball.
|
|
264
|
+
|
|
220
265
|
## Commands
|
|
221
266
|
|
|
222
267
|
- `npm run build` — `tsc` → `dist/` + `npm run build:registry`
|
|
223
268
|
- `npm run build:registry` — regenerate `registry/r/*.json` from `registry.json`
|
|
224
269
|
- `npm run typecheck` — `tsc --noEmit`
|
|
225
270
|
- `npm test` — Vitest with coverage (100% on the non-React runtime)
|
|
271
|
+
- `npm run preview:dev` / `npm run preview:build` — the dev-only `/_preview` gallery
|
|
226
272
|
|
|
227
273
|
[`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":"AACA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,mBAAmB,EAAwB,MAAM,cAAc,CAAC;AAoDzE,MAAM,iBAAiB,GAAG;IACxB,MAAM,EAAE,2CAA2C;IACnD,OAAO,EAAE,4CAA4C;IACrD,MAAM,EAAE,gDAAgD;IACxD,OAAO,EAAE,4CAA4C;IACrD,KAAK,EAAE,gDAAgD;CAC/C,CAAC;AAEX,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAErD;;;GAGG;AACH,SAAS,cAAc,CAAC,YAA6C,EAAE,MAAsC;IAC3G,MAAM,KAAK,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1D,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,EAAE,IAAI,CACV,wCAAwC,qBAAqB,kCAAkC,CAChG,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;QACvD,MAAM,EAAE,IAAI,CAAC,GAAG,qBAAqB,gDAAgD,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,UAA+B,EAAE;IAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,IAAI,eAAe,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC;IAE5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,CAAC;IAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7D,MAAM,SAAS,GAAG,UAAU,IAAI,gBAAgB;QAC9C,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;YAC3B,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE,aAAa;YACzC,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,mBAAmB;SACtD,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE;YACL,oBAAoB,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;gBACrF,YAAY,CAAC;oBACX,IAAI,EAAE;wBACJ,MAAM,EAAE;4BACN,0CAA0C,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;4BACnE,yCAAyC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;4BAClF,6CAA6C,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;4BACvF,4CAA4C,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,cAAc,CAAC;4BACvG,4CAA4C,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;yBACxE;qBACF;iBACF,CAAC,CAAC;gBAEH,sEAAsE;gBACtE,uEAAuE;gBACvE,uDAAuD;gBACvD,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;oBACjC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC/C,CAAC;qBAAM,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;oBACjE,MAAM,EAAE,IAAI,CACV,+IAA+I,CAChJ,CAAC;gBACJ,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,SAAS,CAAC,KAAK,MAAM,CAAC;gBACxF,IAAI,OAAO,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACnC,MAAM,EAAE,IAAI,CACV,qHAAqH,CACtH,CAAC;gBACJ,CAAC;gBAED,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBACrD,IAAI,CAAC,OAAO;4BAAE,SAAS;wBACvB,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK;4BAAE,SAAS;wBACnE,WAAW,CAAC;4BACV,OAAO;4BACP,UAAU,EAAE,iBAAiB,CAAC,IAAsC,CAAC;yBACtE,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;oBAC/B,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,kCAAkC,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
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 = "
|
|
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 = "3.0.0";
|
|
5
|
+
export declare const MEDIA_SERVICE_M8_MIN_SERVICE_VERSION = "2.0.0";
|
|
6
|
+
export declare const MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE = "4.0.0";
|
|
7
|
+
export declare const MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE = ">=2.0.0 <4.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;AAwBzH,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,32 @@
|
|
|
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 widens to admit 3.x alongside 2.x because
|
|
14
|
+
// media-service-m8 3.0.0 is an object-storage backend and env-var rename
|
|
15
|
+
// (MinIO-specific `MINIO_*` shim removed in favor of provider-neutral `S3_*`)
|
|
16
|
+
// with no change to the `1.1` HTTP contract this plugin models — so the range
|
|
17
|
+
// move is additive (a minor here), not a major. A pre-tier 1.x service is
|
|
18
|
+
// still refused: it cannot serve the authorization behavior this plugin's
|
|
19
|
+
// guards assume.
|
|
20
|
+
// The service version this client was actually exercised against: 3.0.0, the
|
|
21
|
+
// media-sdk-m8 1.0.0 / media-service-m8 3.0.0 shim-removal cut, whose tree is
|
|
22
|
+
// what every schema here was diffed against in the same pass.
|
|
23
|
+
//
|
|
24
|
+
// The gate is MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE below, which admits the
|
|
25
|
+
// whole 2.x line plus 3.x, so a host pointed at the published 2.1.0 passes
|
|
26
|
+
// preflight unchanged and this value never refuses it.
|
|
27
|
+
export const MEDIA_SERVICE_M8_TESTED_SERVICE_VERSION = "3.0.0";
|
|
28
|
+
export const MEDIA_SERVICE_M8_MIN_SERVICE_VERSION = "2.0.0";
|
|
29
|
+
export const MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE = "4.0.0";
|
|
7
30
|
export const MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE = `>=${MEDIA_SERVICE_M8_MIN_SERVICE_VERSION} <${MEDIA_SERVICE_M8_MAX_SERVICE_VERSION_EXCLUSIVE}`;
|
|
8
31
|
function stringValue(value) {
|
|
9
32
|
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
@@ -15,6 +38,21 @@ function contractObjectVersion(value) {
|
|
|
15
38
|
}
|
|
16
39
|
return undefined;
|
|
17
40
|
}
|
|
41
|
+
// Read ``contract.name`` from the GET /meta nested contract object.
|
|
42
|
+
//
|
|
43
|
+
// The flat-string contract forms carry the issuer id inline (``media-service-m8@1.0``)
|
|
44
|
+
// and are checked against it, but the nested object splits id and version apart.
|
|
45
|
+
// Without reading ``name`` the version check alone would bless any service whose
|
|
46
|
+
// contract happens to sit at the same version - and ``mount_service_meta`` is a
|
|
47
|
+
// shared auth-sdk-m8 helper, so every M8 service serves this same payload shape
|
|
48
|
+
// at ``{API_PREFIX}/meta``. A host pointed at the wrong sibling is exactly the
|
|
49
|
+
// misconfiguration the preflight exists to name.
|
|
50
|
+
function contractObjectName(value) {
|
|
51
|
+
if (typeof value === "object" && value !== null) {
|
|
52
|
+
return stringValue(value.name);
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
18
56
|
function parseSemver(version) {
|
|
19
57
|
const [withoutBuild = ""] = version.split("+", 1);
|
|
20
58
|
const [core = ""] = withoutBuild.split("-", 1);
|
|
@@ -50,9 +88,22 @@ export function getMediaServiceM8Compatibility(metadata = {}) {
|
|
|
50
88
|
const serviceVersion = stringValue(metadata.media_service_m8_version) ??
|
|
51
89
|
stringValue(metadata.service_version) ??
|
|
52
90
|
stringValue(metadata.version);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
91
|
+
// Checked before the version, so a wrong service is reported as a wrong
|
|
92
|
+
// service rather than as a version mismatch. Only applies when the payload
|
|
93
|
+
// names an id at all - a nested contract without a `name` still falls through
|
|
94
|
+
// to the version comparison below.
|
|
95
|
+
const contractName = contractObjectName(metadata.contract);
|
|
96
|
+
if (contractName && contractName !== MEDIA_SERVICE_M8_CONTRACT_ID) {
|
|
97
|
+
return {
|
|
98
|
+
status: "incompatible",
|
|
99
|
+
expectedContract: MEDIA_SERVICE_M8_CONTRACT,
|
|
100
|
+
expectedServiceVersionRange: MEDIA_SERVICE_M8_SERVICE_VERSION_RANGE,
|
|
101
|
+
contractVersion,
|
|
102
|
+
serviceVersion,
|
|
103
|
+
reason: `Expected ${MEDIA_SERVICE_M8_CONTRACT}, received the ${contractName} contract - check the configured media API base`
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if (contractVersion && !MEDIA_SERVICE_M8_COMPATIBLE_CONTRACTS.has(contractVersion)) {
|
|
56
107
|
return {
|
|
57
108
|
status: "incompatible",
|
|
58
109
|
expectedContract: MEDIA_SERVICE_M8_CONTRACT,
|