@learnorama/mozaik-sdk 0.9.0-staging.35.1 → 0.9.3-staging.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +153 -0
  2. package/dist/api/account.d.ts +3 -1
  3. package/dist/api/account.js +2 -0
  4. package/dist/api/account.js.map +1 -1
  5. package/dist/api/admin-catalogue.js.map +1 -1
  6. package/dist/api/admin-consumption.d.ts +1 -1
  7. package/dist/api/admin-consumption.js.map +1 -1
  8. package/dist/api/admin-desk.d.ts +1 -1
  9. package/dist/api/admin-desk.js.map +1 -1
  10. package/dist/api/admin-licenses.d.ts +1 -1
  11. package/dist/api/admin-licenses.js.map +1 -1
  12. package/dist/api/admin-patrons.js.map +1 -1
  13. package/dist/api/admin-reviews.js.map +1 -1
  14. package/dist/api/admin-roles.d.ts +1 -1
  15. package/dist/api/admin-roles.js.map +1 -1
  16. package/dist/api/admin-support.d.ts +1 -1
  17. package/dist/api/admin-support.js.map +1 -1
  18. package/dist/api/admin-tenants.js.map +1 -1
  19. package/dist/api/admin-tutoring.d.ts +1 -1
  20. package/dist/api/admin-tutoring.js.map +1 -1
  21. package/dist/api/auth.d.ts +1 -1
  22. package/dist/api/auth.js.map +1 -1
  23. package/dist/api/biblio-catalogue.d.ts +11 -1
  24. package/dist/api/biblio-catalogue.js +23 -1
  25. package/dist/api/biblio-catalogue.js.map +1 -1
  26. package/dist/api/biblio-home.d.ts +6 -1
  27. package/dist/api/biblio-home.js +5 -0
  28. package/dist/api/biblio-home.js.map +1 -1
  29. package/dist/api/biblio-library.d.ts +9 -6
  30. package/dist/api/biblio-library.js +22 -9
  31. package/dist/api/biblio-library.js.map +1 -1
  32. package/dist/api/biblio-nextory.d.ts +1 -1
  33. package/dist/api/biblio-nextory.js.map +1 -1
  34. package/dist/api/biblio-press.d.ts +25 -32
  35. package/dist/api/biblio-press.js +45 -52
  36. package/dist/api/biblio-press.js.map +1 -1
  37. package/dist/api/biblio-search.js.map +1 -1
  38. package/dist/api/biblio-telemetry.d.ts +1 -1
  39. package/dist/api/biblio-telemetry.js.map +1 -1
  40. package/dist/api/consumption.d.ts +1 -1
  41. package/dist/api/consumption.js.map +1 -1
  42. package/dist/api/cvs-app.js.map +1 -1
  43. package/dist/api/cvs-documents.d.ts +1 -1
  44. package/dist/api/cvs-documents.js.map +1 -1
  45. package/dist/api/cvs-favorites.d.ts +1 -1
  46. package/dist/api/cvs-favorites.js.map +1 -1
  47. package/dist/api/cvs-ils.d.ts +1 -1
  48. package/dist/api/cvs-ils.js.map +1 -1
  49. package/dist/api/cvs-loans.d.ts +1 -1
  50. package/dist/api/cvs-loans.js.map +1 -1
  51. package/dist/api/cvs-payments.js.map +1 -1
  52. package/dist/api/cvs-streaming.js.map +1 -1
  53. package/dist/api/index.d.ts +3 -3
  54. package/dist/api/index.js +3 -3
  55. package/dist/api/partner-catalogue.d.ts +1 -1
  56. package/dist/api/partner-catalogue.js.map +1 -1
  57. package/dist/api/partner-reader.d.ts +1 -1
  58. package/dist/api/partner-reader.js.map +1 -1
  59. package/dist/api/profiles.d.ts +7 -1
  60. package/dist/api/profiles.js +6 -0
  61. package/dist/api/profiles.js.map +1 -1
  62. package/dist/api/search.d.ts +1 -1
  63. package/dist/api/search.js.map +1 -1
  64. package/dist/api/tutoring-catalogue.d.ts +1 -1
  65. package/dist/api/tutoring-catalogue.js.map +1 -1
  66. package/dist/api/tutoring-chat.d.ts +1 -1
  67. package/dist/api/tutoring-chat.js.map +1 -1
  68. package/dist/api/tutoring-dispatch.js.map +1 -1
  69. package/dist/api/tutoring-practitioner.js.map +1 -1
  70. package/dist/api/tutoring-requests.d.ts +1 -1
  71. package/dist/api/tutoring-requests.js.map +1 -1
  72. package/dist/chunks/client2.d.ts +1 -1
  73. package/dist/chunks/index.d.ts +348 -324
  74. package/dist/index.d.ts +3 -3
  75. package/dist/index.js +3 -3
  76. package/dist/index.js.map +1 -1
  77. package/dist/models.d.ts +2 -2
  78. package/dist/models.js +2 -1
  79. package/dist/models.js.map +1 -1
  80. package/dist/react/account.d.ts +3 -1
  81. package/dist/react/account.js +3 -1
  82. package/dist/react/account.js.map +1 -1
  83. package/dist/react/admin-catalogue.d.ts +1 -1
  84. package/dist/react/admin-catalogue.js +1 -1
  85. package/dist/react/admin-catalogue.js.map +1 -1
  86. package/dist/react/admin-consumption.d.ts +1 -1
  87. package/dist/react/admin-consumption.js +1 -1
  88. package/dist/react/admin-consumption.js.map +1 -1
  89. package/dist/react/admin-desk.d.ts +1 -1
  90. package/dist/react/admin-desk.js +1 -1
  91. package/dist/react/admin-desk.js.map +1 -1
  92. package/dist/react/admin-licenses.d.ts +1 -1
  93. package/dist/react/admin-licenses.js +1 -1
  94. package/dist/react/admin-licenses.js.map +1 -1
  95. package/dist/react/admin-patrons.d.ts +1 -1
  96. package/dist/react/admin-patrons.js +1 -1
  97. package/dist/react/admin-patrons.js.map +1 -1
  98. package/dist/react/admin-reviews.d.ts +1 -1
  99. package/dist/react/admin-reviews.js +1 -1
  100. package/dist/react/admin-reviews.js.map +1 -1
  101. package/dist/react/admin-roles.d.ts +1 -1
  102. package/dist/react/admin-roles.js +1 -1
  103. package/dist/react/admin-roles.js.map +1 -1
  104. package/dist/react/admin-support.d.ts +1 -1
  105. package/dist/react/admin-support.js +1 -1
  106. package/dist/react/admin-support.js.map +1 -1
  107. package/dist/react/admin-tenants.d.ts +1 -1
  108. package/dist/react/admin-tenants.js +1 -1
  109. package/dist/react/admin-tenants.js.map +1 -1
  110. package/dist/react/admin-tutoring.d.ts +1 -1
  111. package/dist/react/admin-tutoring.js +1 -1
  112. package/dist/react/admin-tutoring.js.map +1 -1
  113. package/dist/react/auth.d.ts +1 -1
  114. package/dist/react/auth.js +1 -1
  115. package/dist/react/auth.js.map +1 -1
  116. package/dist/react/biblio-catalogue.d.ts +38 -1
  117. package/dist/react/biblio-catalogue.js +48 -2
  118. package/dist/react/biblio-catalogue.js.map +1 -1
  119. package/dist/react/biblio-home.d.ts +6 -1
  120. package/dist/react/biblio-home.js +6 -1
  121. package/dist/react/biblio-home.js.map +1 -1
  122. package/dist/react/biblio-library.d.ts +15 -11
  123. package/dist/react/biblio-library.js +32 -19
  124. package/dist/react/biblio-library.js.map +1 -1
  125. package/dist/react/biblio-nextory.d.ts +1 -1
  126. package/dist/react/biblio-nextory.js +1 -1
  127. package/dist/react/biblio-nextory.js.map +1 -1
  128. package/dist/react/biblio-press.d.ts +82 -89
  129. package/dist/react/biblio-press.js +97 -104
  130. package/dist/react/biblio-press.js.map +1 -1
  131. package/dist/react/biblio-search.d.ts +1 -1
  132. package/dist/react/biblio-search.js +1 -1
  133. package/dist/react/biblio-search.js.map +1 -1
  134. package/dist/react/biblio-telemetry.d.ts +1 -1
  135. package/dist/react/biblio-telemetry.js +1 -1
  136. package/dist/react/biblio-telemetry.js.map +1 -1
  137. package/dist/react/consumption.d.ts +1 -1
  138. package/dist/react/consumption.js +1 -1
  139. package/dist/react/consumption.js.map +1 -1
  140. package/dist/react/cvs-app.d.ts +1 -1
  141. package/dist/react/cvs-app.js +1 -1
  142. package/dist/react/cvs-app.js.map +1 -1
  143. package/dist/react/cvs-documents.d.ts +1 -1
  144. package/dist/react/cvs-documents.js +1 -1
  145. package/dist/react/cvs-documents.js.map +1 -1
  146. package/dist/react/cvs-favorites.d.ts +1 -1
  147. package/dist/react/cvs-favorites.js +1 -1
  148. package/dist/react/cvs-favorites.js.map +1 -1
  149. package/dist/react/cvs-ils.d.ts +1 -1
  150. package/dist/react/cvs-ils.js +1 -1
  151. package/dist/react/cvs-ils.js.map +1 -1
  152. package/dist/react/cvs-loans.d.ts +1 -1
  153. package/dist/react/cvs-loans.js +1 -1
  154. package/dist/react/cvs-loans.js.map +1 -1
  155. package/dist/react/cvs-payments.d.ts +1 -1
  156. package/dist/react/cvs-payments.js +1 -1
  157. package/dist/react/cvs-payments.js.map +1 -1
  158. package/dist/react/cvs-streaming.d.ts +1 -1
  159. package/dist/react/cvs-streaming.js +1 -1
  160. package/dist/react/cvs-streaming.js.map +1 -1
  161. package/dist/react/index.d.ts +3 -3
  162. package/dist/react/index.js +3 -3
  163. package/dist/react/partner-catalogue.d.ts +1 -1
  164. package/dist/react/partner-catalogue.js +1 -1
  165. package/dist/react/partner-catalogue.js.map +1 -1
  166. package/dist/react/partner-reader.d.ts +1 -1
  167. package/dist/react/partner-reader.js +1 -1
  168. package/dist/react/partner-reader.js.map +1 -1
  169. package/dist/react/profiles.d.ts +7 -1
  170. package/dist/react/profiles.js +7 -1
  171. package/dist/react/profiles.js.map +1 -1
  172. package/dist/react/search.d.ts +1 -1
  173. package/dist/react/search.js +1 -1
  174. package/dist/react/search.js.map +1 -1
  175. package/dist/react/tutoring-catalogue.d.ts +1 -1
  176. package/dist/react/tutoring-catalogue.js +1 -1
  177. package/dist/react/tutoring-catalogue.js.map +1 -1
  178. package/dist/react/tutoring-chat.d.ts +1 -1
  179. package/dist/react/tutoring-chat.js +1 -1
  180. package/dist/react/tutoring-chat.js.map +1 -1
  181. package/dist/react/tutoring-dispatch.d.ts +1 -1
  182. package/dist/react/tutoring-dispatch.js +1 -1
  183. package/dist/react/tutoring-dispatch.js.map +1 -1
  184. package/dist/react/tutoring-practitioner.d.ts +1 -1
  185. package/dist/react/tutoring-practitioner.js +1 -1
  186. package/dist/react/tutoring-practitioner.js.map +1 -1
  187. package/dist/react/tutoring-requests.d.ts +1 -1
  188. package/dist/react/tutoring-requests.js +1 -1
  189. package/dist/react/tutoring-requests.js.map +1 -1
  190. package/package.json +7 -7
package/README.md CHANGED
@@ -40,6 +40,159 @@ PKCE and session refresh, use the SSO client below. Neither transport automatica
40
40
  replays failed application writes. Backend-owned Keycloak client secrets must
41
41
  never be supplied to this SDK.
42
42
 
43
+ ## Support sessions and profile bootstrap
44
+
45
+ `X-Acting-As` carries the `id` returned by `POST /admin/impersonations`, not its
46
+ `actingAsUserId`. Keep the operator's bearer token. While the header is present,
47
+ `GET /me/profile-session` returns:
48
+
49
+ ```json
50
+ {
51
+ "actorId": 123,
52
+ "profileId": 456,
53
+ "mode": "support",
54
+ "guardianPinSet": null,
55
+ "exitRequiresPin": false
56
+ }
57
+ ```
58
+
59
+ `actorId` is the staff operator; `profileId` is the support target. `null` means
60
+ guardian controls do not apply, not that the patron needs to set a PIN. In this
61
+ mode show “Quitter le mode support” and hide guardian-PIN and child-switch controls.
62
+ Their mutation endpoints remain forbidden. The GET does not read or change the
63
+ patron's own device lock. An operator already locked in child mode must unlock
64
+ their own device before using any support session.
65
+
66
+ ```ts
67
+ import { openSupportSession, closeSupportSession } from '@learnorama/mozaik-sdk/api/admin-support';
68
+ import { profileSession } from '@learnorama/mozaik-sdk/api/profiles';
69
+
70
+ // client is the ordinary operator client, with no default X-Acting-As header.
71
+ const support = await openSupportSession(
72
+ { userId: 456, product: 'biblio', reason: 'Ticket 123' }, { client },
73
+ );
74
+ const state = await profileSession({
75
+ client, headers: { 'X-Acting-As': String(support.id) },
76
+ });
77
+ // Revoke without X-Acting-As, then remove the support context from later calls.
78
+ await closeSupportSession(support.id, { client });
79
+ ```
80
+
81
+ Isolate/reset profile query caches when entering or leaving support mode. A stale,
82
+ revoked or foreign support ID still returns 403. Ordinary own/child responses
83
+ keep their existing PIN and device-lock semantics. Update the SDK to handle
84
+ `mode: "support"` and nullable `guardianPinSet`.
85
+
86
+ ## Browse a universe without client-side catalogue filtering
87
+
88
+ `GET /me/capabilities` identifies the available Biblio universes in
89
+ `biblio.availableCategoryKinds`. Those values are accepted directly by `kind`:
90
+ `course`, `book`, `press` (also `music` and `service` where entitled).
91
+
92
+ | Need | API |
93
+ | --- | --- |
94
+ | Course home | `GET /biblio/home-feed?kind=course&limit=12` |
95
+ | Course category chips | `GET /biblio/me/categories?kind=course` |
96
+ | Browse course cards | `GET /biblio/contents?kind=course&page=1&limit=24` |
97
+ | Narrow to one category | `GET /biblio/contents?kind=course&categoryId=12&page=1&limit=24` |
98
+ | Search within a universe | `GET /biblio/contents?kind=course&q=anglais&page=1&limit=24` |
99
+ | Press home / publication selection | `GET /biblio/press-feed` / `GET /biblio/press-titles` |
100
+ | Provider book home / catalogue | Follow `partners[].homeFeedUrl` / `partners[].mediaUrl` from capabilities |
101
+
102
+ Categories return `categoryId`, `title`, `kind`, nullable `packId` and
103
+ `contentsUrl`. A pack groups course categories; it is not a universe. Follow the
104
+ returned content URL instead of deriving routes from category names. Content is
105
+ deduplicated and filtered for kind, category, rights, access level and age before
106
+ pagination/counting. `q` matches a literal case-insensitive title substring;
107
+ omitting it browses the catalogue. Results order by publication date (newest
108
+ first), then `contentId`. Unknown kinds return 422. An inaccessible category
109
+ returns an empty page.
110
+
111
+ A filtered home contains only that universe's content, history and publishers.
112
+ Each carousel supplies its `kind`, `categoryId` and `contentsUrl` for “See all”.
113
+ Unclassified global editorial banners are included only when `kind` is omitted;
114
+ `pressFeed` is populated only on the mixed or press home. Omitting `kind` keeps
115
+ the mixed Biblio home. Profile/household access checks still run on every read.
116
+
117
+ `kind=book` covers Biblio content rows; it does not merge the separately stored
118
+ Nextory/YouScribe media catalogue. Those providers already supply server-composed
119
+ feeds, category listings and paginated media endpoints through capabilities.
120
+ Use `mediaId` as the identity of a catalogue card, favourite or reading position.
121
+ Nextory ebook/audio editions can share an `externalId` while remaining separate
122
+ media with different ISBNs, reader IDs and access flags.
123
+ The frontend chooses the universe's layout, but does not load the full catalogue
124
+ to classify, filter or paginate it. These feeds do not supply individual press
125
+ articles or trending topics that the upstream catalogue does not contain.
126
+
127
+ ## Press titles, onboarding and preferences
128
+
129
+ A title/publication (Le Monde), a dated edition and an article are distinct.
130
+ Use `contentId` from the title catalogue for all API paths and favourites.
131
+ `publicationId` is a separate provider identifier; never substitute it for
132
+ `contentId`. The optional `articleId` in a reader-access body is an actual
133
+ provider article identifier, not the catalogue content ID.
134
+
135
+ | Action | API |
136
+ | --- | --- |
137
+ | Browse/search | `GET /biblio/press-titles?page=1&limit=24&q=monde` |
138
+ | Selected titles only | `GET /biblio/press-titles?favorited=true` |
139
+ | Publication metadata | `GET /biblio/press-titles/{contentId}` |
140
+ | Dated editions | `GET /biblio/press-titles/{contentId}/issues` |
141
+ | Open an edition | `POST /biblio/press-titles/{contentId}/reader-access` with `issueDate`, optionally provider `articleId` |
142
+ | Select a title | `PUT /biblio/me/favorites/{contentId}` with `{ "mode": "press_title" }` |
143
+ | Unselect a title | `DELETE /biblio/me/favorites/{contentId}?mode=press_title` |
144
+ | Personalised press feed | `GET /biblio/press-feed?limit=6` |
145
+
146
+ The catalogue returns `data`, `meta` and accessible `themes`. Each title includes
147
+ `contentId`, `publicationId`, `title`, nullable `coverImage`/`periodicity`, and
148
+ `favorited`. Frequency is recorded metadata; hide its label when null. It is not
149
+ inferred from publication dates. `q` is a case-insensitive literal substring;
150
+ optional filters include `themeId`, `withoutTheme`, `lang`, `countries`,
151
+ `subthemes` and `favorited`. Omit filters you do not need. Ordering is alphabetical
152
+ with an ID tie-break; use `meta.totalPages` to fetch beyond the first page.
153
+
154
+ Only active, accessible titles are offered. Multiple catalogue variants of a
155
+ provider publication produce one entry, preferring an accessible non-test variant.
156
+ Selection applies across those variants, but never bypasses access or age checks.
157
+ Other saved, unavailable titles remain in favourites; they do not appear in the
158
+ selectable catalogue or press feed. Generic `mode=content` bookmarks remain
159
+ independent. DELETE without a mode removes only the generic content bookmark.
160
+
161
+ `GET /me/onboarding` returns `preferredPressTitleIds`, `pressTitlesUrl` and
162
+ `pressFavoritesUrl`, alongside category preferences. The returned selected IDs
163
+ refer to the current catalogue representatives; use each title's `favorited`
164
+ flag when paging. Press selection uses the existing favourites storage, not
165
+ category IDs. Use the same authenticated effective-profile context for every call.
166
+
167
+ The feed returns a `favorites` section ("Mes titres") first, then unsaved discovery
168
+ titles grouped by theme, including an unthemed discovery section. Empty sections
169
+ are omitted. Each section has `titles`, `meta` and `titlesUrl`; follow that URL
170
+ with the requested `page` to continue with the same filters and page size.
171
+ `GET /biblio/home-feed` exposes this same result as `pressFeed`.
172
+
173
+ ```ts
174
+ import { listPressTitles, readPressFeed } from '@learnorama/mozaik-sdk/api/biblio-press';
175
+ import { addBiblioFavorite, removeBiblioFavorite } from '@learnorama/mozaik-sdk/api/biblio-library';
176
+
177
+ const page = await listPressTitles({ page: 1, limit: 24 }, { client });
178
+ const title = page.data[0];
179
+ if (title) {
180
+ await addBiblioFavorite(title.contentId, { mode: 'press_title' }, { client });
181
+ await removeBiblioFavorite(title.contentId, { mode: 'press_title' }, { client });
182
+ }
183
+ const feed = await readPressFeed({ limit: 6 }, { client });
184
+ ```
185
+
186
+ After selection changes, invalidate/refetch title lists/details, favourites,
187
+ onboarding, the press feed and the home feed. Clear profile-scoped query caches
188
+ when switching accounts or profiles. HTTP responses containing these selections
189
+ are private and non-cacheable; application query caches still need this handling.
190
+
191
+ This is a breaking contract: `/press-articles` and `/press-review` have been
192
+ removed. Use `/press-titles` and `/press-feed`; `articleId` on a catalogue card
193
+ becomes `contentId`, `articles` in sections becomes `titles`, and home
194
+ `pressReview` becomes `pressFeed`. Regenerate/update the SDK with the backend.
195
+
43
196
  ## Google Workspace and partner SSO
44
197
 
45
198
  ```ts
@@ -1,5 +1,5 @@
1
1
 
2
- import { In as OnboardingRead, Qc as AccountUpdateWrite, X as ServiceListRead, el as AccountDetailRead, vi as FrontendCapabilitiesRead } from "../chunks/index.js";
2
+ import { In as OnboardingRead, X as ServiceListRead, bi as FrontendCapabilitiesRead, el as AccountUpdateWrite, nl as AccountDetailRead } from "../chunks/index.js";
3
3
  import { c as request } from "../chunks/client.js";
4
4
  //#region src/api/account/account.d.ts
5
5
  export declare const getDeleteAccountUrl: () => string;
@@ -50,6 +50,8 @@ export declare const getReadOnboardingUrl: () => string;
50
50
  * The signed-in adult updates their own fields using PATCH /me. A guardian
51
51
  * manages a child through /me/profiles. Category selections use
52
52
  * PUT /biblio/me/preferences/categories in the effective profile context.
53
+ * Press-title choices use pressTitlesUrl and pressFavoritesUrl; they are the
54
+ * profile's press_title favourites, not additional catalogue categories.
53
55
  * No terms acceptance or mandatory onboarding completion is invented here.
54
56
  * @summary Read Onboarding
55
57
  */
@@ -92,6 +92,8 @@ const getReadOnboardingUrl = () => {
92
92
  * The signed-in adult updates their own fields using PATCH /me. A guardian
93
93
  * manages a child through /me/profiles. Category selections use
94
94
  * PUT /biblio/me/preferences/categories in the effective profile context.
95
+ * Press-title choices use pressTitlesUrl and pressFavoritesUrl; they are the
96
+ * profile's press_title favourites, not additional catalogue categories.
95
97
  * No terms acceptance or mandatory onboarding completion is invented here.
96
98
  * @summary Read Onboarding
97
99
  */
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","names":[],"sources":["../../src/api/account/account.ts"],"sourcesContent":["/**\n * Generated by orval 🍺\n * Do not edit manually.\n * Mozaik backend\n * Four products behind one API — Biblio, Médiathèques, the partner catalogues (Nextory and YouScribe) and Prof Express. Authentication is Keycloak SSO only, once, for all of them: see the **auth** section below for the browser flow and the three failure modes.\n * OpenAPI spec version: 0.9.0\n */\nimport type {\n AccountDetailRead,\n AccountUpdateWrite,\n FrontendCapabilitiesRead,\n OnboardingRead,\n ServiceListRead\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getDeleteAccountUrl = () => {\n\n\n\n\n return `/me`\n}\n\n/**\n * Erase this authenticated identity while retaining its historical rows.\n *\n * Other independently authenticated household members are never erased by\n * this operation. The holder must first remove active/pending memberships;\n * an adult who is a child's final guardian must assign another guardian first.\n * All household writes take the same beneficiary lock, including invitations.\n * @summary Delete Account\n */\nexport const deleteAccount = async ( options?: Parameters<typeof request>[1]): Promise<void> => {\n\n return request<void>(getDeleteAccountUrl(),\n {\n ...options,\n method: 'DELETE'\n\n\n }\n);}\n\n\nexport const getReadAccountUrl = () => {\n\n\n\n\n return `/me`\n}\n\n/**\n * The authenticated account (E15).\n *\n * No query, no join: ``CurrentUserDep`` has already resolved the row behind the\n * token. The endpoint the legacy should have had here has been returning ``500``\n * on every request for as long as anyone has looked (defect D1).\n * @summary Read Account\n */\nexport const readAccount = async ( options?: Parameters<typeof request>[1]): Promise<AccountDetailRead> => {\n\n return request<AccountDetailRead>(getReadAccountUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getUpdateAccountUrl = () => {\n\n\n\n\n return `/me`\n}\n\n/**\n * Partially update the account (E16).\n *\n * ``exclude_unset`` is what separates PATCH from PUT here: a field the client\n * omitted is left alone, which is not the same as a field it sent as null. The\n * response is built from the persisted row rather than the submitted body.\n * @summary Update Account\n */\nexport const updateAccount = async (accountUpdateWrite: AccountUpdateWrite, options?: Parameters<typeof request>[1]): Promise<AccountDetailRead> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<AccountDetailRead>(getUpdateAccountUrl(),\n {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(accountUpdateWrite)\n }\n);}\n\n\nexport const getReadCapabilitiesUrl = () => {\n\n\n\n\n return `/me/capabilities`\n}\n\n/**\n * Current profile's local book rights, partner seats and navigation paths.\n *\n * Does not allocate a licence or contact a provider. ``readingAllowed`` is a\n * local permission snapshot; configuration and upstream health are separate.\n * The reader always authorizes again when opening a title.\n * @summary Read Capabilities\n */\nexport const readCapabilities = async ( options?: Parameters<typeof request>[1]): Promise<FrontendCapabilitiesRead> => {\n\n return request<FrontendCapabilitiesRead>(getReadCapabilitiesUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getReadOnboardingUrl = () => {\n\n\n\n\n return `/me/onboarding`\n}\n\n/**\n * State for optional profile setup, with existing write-resource paths.\n *\n * The signed-in adult updates their own fields using PATCH /me. A guardian\n * manages a child through /me/profiles. Category selections use\n * PUT /biblio/me/preferences/categories in the effective profile context.\n * No terms acceptance or mandatory onboarding completion is invented here.\n * @summary Read Onboarding\n */\nexport const readOnboarding = async ( options?: Parameters<typeof request>[1]): Promise<OnboardingRead> => {\n\n return request<OnboardingRead>(getReadOnboardingUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getListServicesUrl = () => {\n\n\n\n\n return `/me/services`\n}\n\n/**\n * Third-party services this account's establishment offers (E27).\n *\n * Under ``/me`` rather than ``/biblio/me`` because it is not a catalogue: these\n * are the establishment's own service tiles, and they belong to the tenant\n * whichever catalogue that tenant reads from. It is also the one place the\n * biblio spec describes something the *CVS* schema models, which is why it sat\n * in the wrong module until the prefixes made the mismatch visible.\n *\n * Date-windowed. A service outside its window is absent rather than disabled:\n * the client should not have to know the difference, and a visible dead link is\n * worse than no link.\n * @summary List Services\n */\nexport const listServices = async ( options?: Parameters<typeof request>[1]): Promise<ServiceListRead> => {\n\n return request<ServiceListRead>(getListServicesUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\n"],"mappings":";;;AAiBA,MAAa,4BAA4B;CAKvC,OAAO;AACT;;;;;;;;;;AAWA,MAAa,gBAAgB,OAAQ,YAA2D;CAE9F,OAAO,QAAc,oBAAoB,GACzC;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,0BAA0B;CAKrC,OAAO;AACT;;;;;;;;;AAUA,MAAa,cAAc,OAAQ,YAAwE;CAEzG,OAAO,QAA2B,kBAAkB,GACpD;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,4BAA4B;CAKvC,OAAO;AACT;;;;;;;;;AAUA,MAAa,gBAAgB,OAAO,oBAAwC,YAAwE;CAEhJ,MAAM,cAAc,MAAwF;EAC5G,IAAI,CAAC,GAAG,OAAO,CAAC;EAChB,IAAI,aAAa,SAAS,OAAO,OAAO,YAAY,EAAE,QAAQ,CAAC;EAC/D,IAAI,OAAO,YAAY,GACrB,OAAO,OAAO,YACZ,MAAM,KAAK,IAAkC,UAAU,MAAM,KAAK,KAAK,CAAqB,CAC9F;EAEF,MAAM,UAAsD,CAAC;EAC7D,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAgD,CAAC,GAClF,IAAI,UAAU,KAAA,GAAW,QAAQ,QAAQ;EAE3C,OAAO;CACT;CACF,OAAO,QAA2B,oBAAoB,GACpD;EACE,GAAG;EACH,QAAQ;EACR,SAAS;GAAE,gBAAgB;GAAoB,GAAG,WAAW,SAAS,OAAO;EAAE;EAC/E,MAAM,KAAK,UAAU,kBAAkB;CACzC,CACF;AAAE;AAGF,MAAa,+BAA+B;CAK1C,OAAO;AACT;;;;;;;;;AAUA,MAAa,mBAAmB,OAAQ,YAA+E;CAErH,OAAO,QAAkC,uBAAuB,GAChE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,6BAA6B;CAKxC,OAAO;AACT;;;;;;;;;;AAWA,MAAa,iBAAiB,OAAQ,YAAqE;CAEzG,OAAO,QAAwB,qBAAqB,GACpD;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,2BAA2B;CAKtC,OAAO;AACT;;;;;;;;;;;;;;;AAgBA,MAAa,eAAe,OAAQ,YAAsE;CAExG,OAAO,QAAyB,mBAAmB,GACnD;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE"}
1
+ {"version":3,"file":"account.js","names":[],"sources":["../../src/api/account/account.ts"],"sourcesContent":["/**\n * Generated by orval 🍺\n * Do not edit manually.\n * Mozaik backend\n * Four products behind one API — Biblio, Médiathèques, the partner catalogues (Nextory and YouScribe) and Prof Express. Authentication is Keycloak SSO only, once, for all of them: see the **auth** section below for the browser flow and the three failure modes.\n * OpenAPI spec version: 0.9.3\n */\nimport type {\n AccountDetailRead,\n AccountUpdateWrite,\n FrontendCapabilitiesRead,\n OnboardingRead,\n ServiceListRead\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getDeleteAccountUrl = () => {\n\n\n\n\n return `/me`\n}\n\n/**\n * Erase this authenticated identity while retaining its historical rows.\n *\n * Other independently authenticated household members are never erased by\n * this operation. The holder must first remove active/pending memberships;\n * an adult who is a child's final guardian must assign another guardian first.\n * All household writes take the same beneficiary lock, including invitations.\n * @summary Delete Account\n */\nexport const deleteAccount = async ( options?: Parameters<typeof request>[1]): Promise<void> => {\n\n return request<void>(getDeleteAccountUrl(),\n {\n ...options,\n method: 'DELETE'\n\n\n }\n);}\n\n\nexport const getReadAccountUrl = () => {\n\n\n\n\n return `/me`\n}\n\n/**\n * The authenticated account (E15).\n *\n * No query, no join: ``CurrentUserDep`` has already resolved the row behind the\n * token. The endpoint the legacy should have had here has been returning ``500``\n * on every request for as long as anyone has looked (defect D1).\n * @summary Read Account\n */\nexport const readAccount = async ( options?: Parameters<typeof request>[1]): Promise<AccountDetailRead> => {\n\n return request<AccountDetailRead>(getReadAccountUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getUpdateAccountUrl = () => {\n\n\n\n\n return `/me`\n}\n\n/**\n * Partially update the account (E16).\n *\n * ``exclude_unset`` is what separates PATCH from PUT here: a field the client\n * omitted is left alone, which is not the same as a field it sent as null. The\n * response is built from the persisted row rather than the submitted body.\n * @summary Update Account\n */\nexport const updateAccount = async (accountUpdateWrite: AccountUpdateWrite, options?: Parameters<typeof request>[1]): Promise<AccountDetailRead> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<AccountDetailRead>(getUpdateAccountUrl(),\n {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(accountUpdateWrite)\n }\n);}\n\n\nexport const getReadCapabilitiesUrl = () => {\n\n\n\n\n return `/me/capabilities`\n}\n\n/**\n * Current profile's local book rights, partner seats and navigation paths.\n *\n * Does not allocate a licence or contact a provider. ``readingAllowed`` is a\n * local permission snapshot; configuration and upstream health are separate.\n * The reader always authorizes again when opening a title.\n * @summary Read Capabilities\n */\nexport const readCapabilities = async ( options?: Parameters<typeof request>[1]): Promise<FrontendCapabilitiesRead> => {\n\n return request<FrontendCapabilitiesRead>(getReadCapabilitiesUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getReadOnboardingUrl = () => {\n\n\n\n\n return `/me/onboarding`\n}\n\n/**\n * State for optional profile setup, with existing write-resource paths.\n *\n * The signed-in adult updates their own fields using PATCH /me. A guardian\n * manages a child through /me/profiles. Category selections use\n * PUT /biblio/me/preferences/categories in the effective profile context.\n * Press-title choices use pressTitlesUrl and pressFavoritesUrl; they are the\n * profile's press_title favourites, not additional catalogue categories.\n * No terms acceptance or mandatory onboarding completion is invented here.\n * @summary Read Onboarding\n */\nexport const readOnboarding = async ( options?: Parameters<typeof request>[1]): Promise<OnboardingRead> => {\n\n return request<OnboardingRead>(getReadOnboardingUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getListServicesUrl = () => {\n\n\n\n\n return `/me/services`\n}\n\n/**\n * Third-party services this account's establishment offers (E27).\n *\n * Under ``/me`` rather than ``/biblio/me`` because it is not a catalogue: these\n * are the establishment's own service tiles, and they belong to the tenant\n * whichever catalogue that tenant reads from. It is also the one place the\n * biblio spec describes something the *CVS* schema models, which is why it sat\n * in the wrong module until the prefixes made the mismatch visible.\n *\n * Date-windowed. A service outside its window is absent rather than disabled:\n * the client should not have to know the difference, and a visible dead link is\n * worse than no link.\n * @summary List Services\n */\nexport const listServices = async ( options?: Parameters<typeof request>[1]): Promise<ServiceListRead> => {\n\n return request<ServiceListRead>(getListServicesUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\n"],"mappings":";;;AAiBA,MAAa,4BAA4B;CAKvC,OAAO;AACT;;;;;;;;;;AAWA,MAAa,gBAAgB,OAAQ,YAA2D;CAE9F,OAAO,QAAc,oBAAoB,GACzC;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,0BAA0B;CAKrC,OAAO;AACT;;;;;;;;;AAUA,MAAa,cAAc,OAAQ,YAAwE;CAEzG,OAAO,QAA2B,kBAAkB,GACpD;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,4BAA4B;CAKvC,OAAO;AACT;;;;;;;;;AAUA,MAAa,gBAAgB,OAAO,oBAAwC,YAAwE;CAEhJ,MAAM,cAAc,MAAwF;EAC5G,IAAI,CAAC,GAAG,OAAO,CAAC;EAChB,IAAI,aAAa,SAAS,OAAO,OAAO,YAAY,EAAE,QAAQ,CAAC;EAC/D,IAAI,OAAO,YAAY,GACrB,OAAO,OAAO,YACZ,MAAM,KAAK,IAAkC,UAAU,MAAM,KAAK,KAAK,CAAqB,CAC9F;EAEF,MAAM,UAAsD,CAAC;EAC7D,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAgD,CAAC,GAClF,IAAI,UAAU,KAAA,GAAW,QAAQ,QAAQ;EAE3C,OAAO;CACT;CACF,OAAO,QAA2B,oBAAoB,GACpD;EACE,GAAG;EACH,QAAQ;EACR,SAAS;GAAE,gBAAgB;GAAoB,GAAG,WAAW,SAAS,OAAO;EAAE;EAC/E,MAAM,KAAK,UAAU,kBAAkB;CACzC,CACF;AAAE;AAGF,MAAa,+BAA+B;CAK1C,OAAO;AACT;;;;;;;;;AAUA,MAAa,mBAAmB,OAAQ,YAA+E;CAErH,OAAO,QAAkC,uBAAuB,GAChE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,6BAA6B;CAKxC,OAAO;AACT;;;;;;;;;;;;AAaA,MAAa,iBAAiB,OAAQ,YAAqE;CAEzG,OAAO,QAAwB,qBAAqB,GACpD;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,2BAA2B;CAKtC,OAAO;AACT;;;;;;;;;;;;;;;AAgBA,MAAa,eAAe,OAAQ,YAAsE;CAExG,OAAO,QAAyB,mBAAmB,GACnD;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-catalogue.js","names":[],"sources":["../../src/api/admin-catalogue/admin-catalogue.ts"],"sourcesContent":["/**\n * Generated by orval 🍺\n * Do not edit manually.\n * Mozaik backend\n * Four products behind one API — Biblio, Médiathèques, the partner catalogues (Nextory and YouScribe) and Prof Express. Authentication is Keycloak SSO only, once, for all of them: see the **auth** section below for the browser flow and the three failure modes.\n * OpenAPI spec version: 0.9.0\n */\nimport type {\n ListThemesParams,\n ThemeListRead,\n ThemeOrderWrite,\n ThemeRead,\n ThemeWrite\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getListThemesUrl = (params?: ListThemesParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : String(value))\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/admin/themes?${stringifiedParams}` : `/admin/themes`\n}\n\n/**\n * Every theme, or one pillar's, in display order.\n *\n * Not paginated. There are 27 of them, and a client that has to page through\n * a list it is about to reorder cannot reorder it.\n * @summary List Themes\n */\nexport const listThemes = async (params?: ListThemesParams, options?: Parameters<typeof request>[1]): Promise<ThemeListRead> => {\n\n return request<ThemeListRead>(getListThemesUrl(params),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getCreateThemeUrl = () => {\n\n\n\n\n return `/admin/themes`\n}\n\n/**\n * Add a theme.\n *\n * ``409`` on a duplicate ``(pillar, title)``: that pair is unique in the\n * schema, and two themes with the same name in the same pillar are\n * indistinguishable to everyone downstream.\n *\n * With no ``sortOrder`` it goes last, which is what the legacy's form does by\n * defaulting the field to the current maximum plus one.\n * @summary Create Theme\n */\nexport const createTheme = async (themeWrite: ThemeWrite, options?: Parameters<typeof request>[1]): Promise<ThemeRead> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<ThemeRead>(getCreateThemeUrl(),\n {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(themeWrite)\n }\n);}\n\n\nexport const getReorderThemesUrl = () => {\n\n\n\n\n return `/admin/themes/order`\n}\n\n/**\n * Set the display order for a set of themes, in one transaction.\n *\n * The legacy renumbers one theme per request, so dragging an item in a list of\n * thirty was thirty requests — and closing the tab halfway left the order\n * half-applied, with two themes claiming the same position and the listing\n * silently choosing between them.\n *\n * Ids not named keep their relative order after the ones that are, so a client\n * may send only what moved. An unknown id is ``404`` and nothing is written:\n * a partially applied reorder is the failure this endpoint exists to prevent.\n * @summary Reorder Themes\n */\nexport const reorderThemes = async (themeOrderWrite: ThemeOrderWrite, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<void>(getReorderThemesUrl(),\n {\n ...options,\n method: 'PUT',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(themeOrderWrite)\n }\n);}\n\n\nexport const getDeleteThemeUrl = (themeId: number,) => {\n\n\n\n\n return `/admin/themes/${themeId}`\n}\n\n/**\n * Remove a theme.\n *\n * ``409`` when works still carry it. The legacy deletes and leaves the\n * references dangling, which is how a catalogue ends up with items filed under\n * a theme that no longer exists and no screen that can find them.\n *\n * Idempotent otherwise: deleting something already gone is ``204``, because\n * the caller wanted it gone and it is gone.\n * @summary Delete Theme\n */\nexport const deleteTheme = async (themeId: number, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n return request<void>(getDeleteThemeUrl(themeId),\n {\n ...options,\n method: 'DELETE'\n\n\n }\n);}\n\n\nexport const getReadThemeUrl = (themeId: number,) => {\n\n\n\n\n return `/admin/themes/${themeId}`\n}\n\n/**\n * One theme.\n * @summary Read Theme\n */\nexport const readTheme = async (themeId: number, options?: Parameters<typeof request>[1]): Promise<ThemeRead> => {\n\n return request<ThemeRead>(getReadThemeUrl(themeId),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getAmendThemeUrl = (themeId: number,) => {\n\n\n\n\n return `/admin/themes/${themeId}`\n}\n\n/**\n * Amend a theme. Same uniqueness rule as creating one.\n * @summary Amend Theme\n */\nexport const amendTheme = async (themeId: number,\n themeWrite: ThemeWrite, options?: Parameters<typeof request>[1]): Promise<ThemeRead> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<ThemeRead>(getAmendThemeUrl(themeId),\n {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(themeWrite)\n }\n);}\n\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"admin-catalogue.js","names":[],"sources":["../../src/api/admin-catalogue/admin-catalogue.ts"],"sourcesContent":["/**\n * Generated by orval 🍺\n * Do not edit manually.\n * Mozaik backend\n * Four products behind one API — Biblio, Médiathèques, the partner catalogues (Nextory and YouScribe) and Prof Express. Authentication is Keycloak SSO only, once, for all of them: see the **auth** section below for the browser flow and the three failure modes.\n * OpenAPI spec version: 0.9.3\n */\nimport type {\n ListThemesParams,\n ThemeListRead,\n ThemeOrderWrite,\n ThemeRead,\n ThemeWrite\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getListThemesUrl = (params?: ListThemesParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : String(value))\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/admin/themes?${stringifiedParams}` : `/admin/themes`\n}\n\n/**\n * Every theme, or one pillar's, in display order.\n *\n * Not paginated. There are 27 of them, and a client that has to page through\n * a list it is about to reorder cannot reorder it.\n * @summary List Themes\n */\nexport const listThemes = async (params?: ListThemesParams, options?: Parameters<typeof request>[1]): Promise<ThemeListRead> => {\n\n return request<ThemeListRead>(getListThemesUrl(params),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getCreateThemeUrl = () => {\n\n\n\n\n return `/admin/themes`\n}\n\n/**\n * Add a theme.\n *\n * ``409`` on a duplicate ``(pillar, title)``: that pair is unique in the\n * schema, and two themes with the same name in the same pillar are\n * indistinguishable to everyone downstream.\n *\n * With no ``sortOrder`` it goes last, which is what the legacy's form does by\n * defaulting the field to the current maximum plus one.\n * @summary Create Theme\n */\nexport const createTheme = async (themeWrite: ThemeWrite, options?: Parameters<typeof request>[1]): Promise<ThemeRead> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<ThemeRead>(getCreateThemeUrl(),\n {\n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(themeWrite)\n }\n);}\n\n\nexport const getReorderThemesUrl = () => {\n\n\n\n\n return `/admin/themes/order`\n}\n\n/**\n * Set the display order for a set of themes, in one transaction.\n *\n * The legacy renumbers one theme per request, so dragging an item in a list of\n * thirty was thirty requests — and closing the tab halfway left the order\n * half-applied, with two themes claiming the same position and the listing\n * silently choosing between them.\n *\n * Ids not named keep their relative order after the ones that are, so a client\n * may send only what moved. An unknown id is ``404`` and nothing is written:\n * a partially applied reorder is the failure this endpoint exists to prevent.\n * @summary Reorder Themes\n */\nexport const reorderThemes = async (themeOrderWrite: ThemeOrderWrite, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<void>(getReorderThemesUrl(),\n {\n ...options,\n method: 'PUT',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(themeOrderWrite)\n }\n);}\n\n\nexport const getDeleteThemeUrl = (themeId: number,) => {\n\n\n\n\n return `/admin/themes/${themeId}`\n}\n\n/**\n * Remove a theme.\n *\n * ``409`` when works still carry it. The legacy deletes and leaves the\n * references dangling, which is how a catalogue ends up with items filed under\n * a theme that no longer exists and no screen that can find them.\n *\n * Idempotent otherwise: deleting something already gone is ``204``, because\n * the caller wanted it gone and it is gone.\n * @summary Delete Theme\n */\nexport const deleteTheme = async (themeId: number, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n return request<void>(getDeleteThemeUrl(themeId),\n {\n ...options,\n method: 'DELETE'\n\n\n }\n);}\n\n\nexport const getReadThemeUrl = (themeId: number,) => {\n\n\n\n\n return `/admin/themes/${themeId}`\n}\n\n/**\n * One theme.\n * @summary Read Theme\n */\nexport const readTheme = async (themeId: number, options?: Parameters<typeof request>[1]): Promise<ThemeRead> => {\n\n return request<ThemeRead>(getReadThemeUrl(themeId),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getAmendThemeUrl = (themeId: number,) => {\n\n\n\n\n return `/admin/themes/${themeId}`\n}\n\n/**\n * Amend a theme. Same uniqueness rule as creating one.\n * @summary Amend Theme\n */\nexport const amendTheme = async (themeId: number,\n themeWrite: ThemeWrite, options?: Parameters<typeof request>[1]): Promise<ThemeRead> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<ThemeRead>(getAmendThemeUrl(themeId),\n {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(themeWrite)\n }\n);}\n\n\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
 
2
- import { Tr as LeaseCloseWrite, Xn as LiveLeaseListRead } from "../chunks/index.js";
2
+ import { Dr as LeaseCloseWrite, Xn as LiveLeaseListRead } from "../chunks/index.js";
3
3
  import { c as request } from "../chunks/client.js";
4
4
  //#region src/api/admin-consumption/admin-consumption.d.ts
5
5
  export declare const getListLiveLeasesUrl: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-consumption.js","names":[],"sources":["../../src/api/admin-consumption/admin-consumption.ts"],"sourcesContent":["/**\n * Generated by orval 🍺\n * Do not edit manually.\n * Mozaik backend\n * Four products behind one API — Biblio, Médiathèques, the partner catalogues (Nextory and YouScribe) and Prof Express. Authentication is Keycloak SSO only, once, for all of them: see the **auth** section below for the browser flow and the three failure modes.\n * OpenAPI spec version: 0.9.0\n */\nimport type {\n LeaseCloseWrite,\n LiveLeaseListRead\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getListLiveLeasesUrl = () => {\n\n\n\n\n return `/admin/consumption/live`\n}\n\n/**\n * What is open right now, within the caller's tenant scope.\n *\n * Read from the ledger rather than the Redis live set: this is a diagnostic and\n * must show the truth even when the cache is cold, and it runs once when\n * somebody opens a screen rather than on every read.\n *\n * Shares :func:`~app.services.entitlement.is_live` with the two seat counts.\n * An earlier version of this route filtered on ``returned_at`` alone and so\n * listed every lapsed-but-unreaped lease as live — which made the screen look\n * exactly like a stuck reaper even when the reaper was fine.\n * @summary List Live Leases\n */\nexport const listLiveLeases = async ( options?: Parameters<typeof request>[1]): Promise<LiveLeaseListRead> => {\n\n return request<LiveLeaseListRead>(getListLiveLeasesUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getForceCloseLeaseUrl = (eventId: number,) => {\n\n\n\n\n return `/admin/consumption/${eventId}`\n}\n\n/**\n * Force-close somebody else's lease. The legacy's ``FermeSessionAdherent``.\n *\n * Audited, which the legacy's was not: a button that ends a stranger's reading\n * session and leaves no trace is indistinguishable from abuse of the same\n * button. Tenant-scoped like every staff action, so a lease outside the\n * caller's scope is ``404`` rather than ``403``.\n * @summary Force Close Lease\n */\nexport const forceCloseLease = async (eventId: number,\n leaseCloseWrite: LeaseCloseWrite, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<void>(getForceCloseLeaseUrl(eventId),\n {\n ...options,\n method: 'DELETE',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(leaseCloseWrite)\n }\n);}\n\n\n"],"mappings":";;;AAcA,MAAa,6BAA6B;CAKxC,OAAO;AACT;;;;;;;;;;;;;;AAeA,MAAa,iBAAiB,OAAQ,YAAwE;CAE5G,OAAO,QAA2B,qBAAqB,GACvD;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,yBAAyB,YAAqB;CAKzD,OAAO,sBAAsB;AAC/B;;;;;;;;;;AAWA,MAAa,kBAAkB,OAAO,SAClC,iBAAkC,YAA2D;CAE7F,MAAM,cAAc,MAAwF;EAC5G,IAAI,CAAC,GAAG,OAAO,CAAC;EAChB,IAAI,aAAa,SAAS,OAAO,OAAO,YAAY,EAAE,QAAQ,CAAC;EAC/D,IAAI,OAAO,YAAY,GACrB,OAAO,OAAO,YACZ,MAAM,KAAK,IAAkC,UAAU,MAAM,KAAK,KAAK,CAAqB,CAC9F;EAEF,MAAM,UAAsD,CAAC;EAC7D,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAgD,CAAC,GAClF,IAAI,UAAU,KAAA,GAAW,QAAQ,QAAQ;EAE3C,OAAO;CACT;CACF,OAAO,QAAc,sBAAsB,OAAO,GAChD;EACE,GAAG;EACH,QAAQ;EACR,SAAS;GAAE,gBAAgB;GAAoB,GAAG,WAAW,SAAS,OAAO;EAAE;EAC/E,MAAM,KAAK,UAAU,eAAe;CACtC,CACF;AAAE"}
1
+ {"version":3,"file":"admin-consumption.js","names":[],"sources":["../../src/api/admin-consumption/admin-consumption.ts"],"sourcesContent":["/**\n * Generated by orval 🍺\n * Do not edit manually.\n * Mozaik backend\n * Four products behind one API — Biblio, Médiathèques, the partner catalogues (Nextory and YouScribe) and Prof Express. Authentication is Keycloak SSO only, once, for all of them: see the **auth** section below for the browser flow and the three failure modes.\n * OpenAPI spec version: 0.9.3\n */\nimport type {\n LeaseCloseWrite,\n LiveLeaseListRead\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getListLiveLeasesUrl = () => {\n\n\n\n\n return `/admin/consumption/live`\n}\n\n/**\n * What is open right now, within the caller's tenant scope.\n *\n * Read from the ledger rather than the Redis live set: this is a diagnostic and\n * must show the truth even when the cache is cold, and it runs once when\n * somebody opens a screen rather than on every read.\n *\n * Shares :func:`~app.services.entitlement.is_live` with the two seat counts.\n * An earlier version of this route filtered on ``returned_at`` alone and so\n * listed every lapsed-but-unreaped lease as live — which made the screen look\n * exactly like a stuck reaper even when the reaper was fine.\n * @summary List Live Leases\n */\nexport const listLiveLeases = async ( options?: Parameters<typeof request>[1]): Promise<LiveLeaseListRead> => {\n\n return request<LiveLeaseListRead>(getListLiveLeasesUrl(),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getForceCloseLeaseUrl = (eventId: number,) => {\n\n\n\n\n return `/admin/consumption/${eventId}`\n}\n\n/**\n * Force-close somebody else's lease. The legacy's ``FermeSessionAdherent``.\n *\n * Audited, which the legacy's was not: a button that ends a stranger's reading\n * session and leaves no trace is indistinguishable from abuse of the same\n * button. Tenant-scoped like every staff action, so a lease outside the\n * caller's scope is ``404`` rather than ``403``.\n * @summary Force Close Lease\n */\nexport const forceCloseLease = async (eventId: number,\n leaseCloseWrite: LeaseCloseWrite, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n const getHeaders = (h?: NonNullable<RequestInit['headers']>): Record<string, string | readonly string[]> => {\n if (!h) return {};\n if (h instanceof Headers) return Object.fromEntries(h.entries());\n if (Symbol.iterator in h) {\n return Object.fromEntries(\n Array.from(h as Iterable<Iterable<string>>, (entry) => Array.from(entry) as [string, string]),\n );\n }\n const headers: Record<string, string | readonly string[]> = {};\n for (const [name, value] of Object.entries<string | readonly string[] | undefined>(h)) {\n if (value !== undefined) headers[name] = value;\n }\n return headers;\n };\nreturn request<void>(getForceCloseLeaseUrl(eventId),\n {\n ...options,\n method: 'DELETE',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(leaseCloseWrite)\n }\n);}\n\n\n"],"mappings":";;;AAcA,MAAa,6BAA6B;CAKxC,OAAO;AACT;;;;;;;;;;;;;;AAeA,MAAa,iBAAiB,OAAQ,YAAwE;CAE5G,OAAO,QAA2B,qBAAqB,GACvD;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,yBAAyB,YAAqB;CAKzD,OAAO,sBAAsB;AAC/B;;;;;;;;;;AAWA,MAAa,kBAAkB,OAAO,SAClC,iBAAkC,YAA2D;CAE7F,MAAM,cAAc,MAAwF;EAC5G,IAAI,CAAC,GAAG,OAAO,CAAC;EAChB,IAAI,aAAa,SAAS,OAAO,OAAO,YAAY,EAAE,QAAQ,CAAC;EAC/D,IAAI,OAAO,YAAY,GACrB,OAAO,OAAO,YACZ,MAAM,KAAK,IAAkC,UAAU,MAAM,KAAK,KAAK,CAAqB,CAC9F;EAEF,MAAM,UAAsD,CAAC;EAC7D,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAgD,CAAC,GAClF,IAAI,UAAU,KAAA,GAAW,QAAQ,QAAQ;EAE3C,OAAO;CACT;CACF,OAAO,QAAc,sBAAsB,OAAO,GAChD;EACE,GAAG;EACH,QAAQ;EACR,SAAS;GAAE,gBAAgB;GAAoB,GAAG,WAAW,SAAS,OAAO;EAAE;EAC/E,MAAM,KAAK,UAAU,eAAe;CACtC,CACF;AAAE"}
@@ -1,5 +1,5 @@
1
1
 
2
- import { $i as DeskTutoringRead, $o as DeskGetLoanParams, $s as DeskAttentionItemsParams, Aa as DeskPaymentRead, Ao as DeskListContractsParams, As as DeskContractRead, Ba as DeskPartnerImportStatusRead, Bo as DeskIlsRead, Bs as DeskCollectionRead, Co as DeskListPatronsParams, Cs as DeskDashboardOverviewParams, D as TopContentParams, Da as DeskPaymentSummaryRead, Do as DeskListExpiringDocumentsParams, Ds as DeskContractUsageRead, Ea as DeskPractitionerRead, Eo as DeskListLiveLeasesParams, Es as DeskCountPatronsParams, Fa as DeskPatronActivityPage, Fo as DeskLicenseSummaryRead, Go as DeskGetTutoringAnswerParams, Gs as DeskCatalogueRead, Is as DeskConsumptionPage, Jo as DeskGetReadingProgressParams, Js as DeskAuditPage, Ko as DeskGetTenantIntegrationsParams, La as DeskPartnerLicenseSummaryParams, Lo as DeskInventoryPage, Ls as DeskConsumptionRead, Ma as DeskPatronPage, Mo as DeskListConsumptionEventsParams, Ms as DeskContentRatingsSummaryParams, Na as DeskPatronOverviewRead, Nc as CatalogueDetailsParams, No as DeskListCatalogueCollectionsParams, Ns as DeskConsumptionSummaryRead, Oa as DeskPaymentsSummaryParams, Oo as DeskListEntitlementGrantsParams, Os as DeskContractPage, Pa as DeskPatronDetailRead, Po as DeskListAuditEventsParams, Ps as DeskConsumptionSummaryParams, Qa as DeskPartnerFacetsRead, Qi as DeskTutoringPage, Qo as DeskGetPatronActivityParams, R as TenantOverviewParams, Ra as DeskPartnerLicensePage, Ta as DeskPractitionerPage, To as DeskListLoansParams, Ts as DeskCountRead, Us as DeskCataloguePage, Va as DeskPartnerImportStatusParams, Vo as DeskHierarchyRead, Vs as DeskCatalogueSummaryRead, Wo as DeskGetUsageLimitsParams, Ws as DeskCatalogueDetailsRead, Xi as DeskTutoringRequestsSummaryParams, Xo as DeskGetPaymentParams, Xs as DeskAttentionPage, Yi as DeskTutoringTimelineRead, Yo as DeskGetPractitionerParams, Ys as DeskAuditRead, Za as DeskPartnerHomeFeedParams, Zi as DeskTutoringPerformanceRead, Zo as DeskGetPatronServicesParams, Zt as PractitionerWorkloadParams, _a as DeskReviewRead, aa as DeskTenantPage, ac as DeskAccessMatrixRead, as as DeskGetAuditEventParams, ba as DeskRatingSummaryRead, bn as PartnerLicenseParams, bo as DeskListPractitionerDocumentsParams, bs as DeskDashboardRead, ca as DeskSummaryRead, da as DeskSearchPage, dc as DataCoverageParams, ea as DeskTopContentRead, es as DeskGetIlsStatusParams, g as TutoringPerformanceParams, ga as DeskReviewPage, gc as ContractCoverageParams, gn as PatronAccessMatrixParams, gs as DeskDocumentPage, ha as DeskReviewsSummaryParams, hc as ContractUsageParams, ho as DeskListTenantsParams, ia as DeskTenantStatsRead, io as DeskMetricTimeseriesParams, is as DeskGetCatalogueCollectionParams, jc as CatalogueInventoryParams, jo as DeskListContentRatingsParams, js as DeskContextRead, ka as DeskPaymentPage, ko as DeskListEntitlementExclusionsParams, ks as DeskContractCoverageRead, la as DeskServicePage, lo as DeskLoansSummaryParams, ls as DeskExplainAccessParams, ma as DeskSearchBackofficeParams, mn as PatronOverviewParams, mo as DeskListTutoringFeedbackParams, na as DeskTimeseriesRead, ns as DeskGetConsumptionEventParams, o as TutoringTimelineParams, oa as DeskTenantRead, os as DeskFindPractitionersParams, pa as DeskSearchCatalogueParams, ps as DeskEntitlementPage, qa as DeskPartnerHomeRead, qi as DeskWorkloadRead, qo as DeskGetReviewParams, rc as DeskAccessRead, rs as DeskGetCatalogueItemParams, sa as DeskTenantOverviewRead, so as DeskManifestRead, ss as DeskFeedbackPage, tc as DeskAnswerRead, to as DeskPartnerCatalogueFacetsParams, ts as DeskGetContractParams, uo as DeskListTutoringRequestsParams, us as DeskExclusionPage, va as DeskReferenceDataRead, vo as DeskListReviewsParams, vs as DeskDataCoverageRead, wa as DeskProgressRead, wo as DeskListPatronProfilesParams, xa as DeskRatingPage, xo as DeskListPaymentsParams, yn as PartnerLicensesParams, z as TenantHierarchyParams, za as DeskPartnerLicenseRead, zo as DeskIntegrationRead, zs as DeskCollectionPage } from "../chunks/index.js";
2
+ import { $a as DeskPartnerHomeFeedParams, $i as DeskTutoringPerformanceRead, $o as DeskGetPatronServicesParams, Aa as DeskPaymentsSummaryParams, Ao as DeskListEntitlementGrantsParams, As as DeskContractPage, Ba as DeskPartnerLicensePage, Ca as DeskRatingPage, Co as DeskListPaymentsParams, D as TopContentParams, Da as DeskPractitionerPage, Do as DeskListLoansParams, Ds as DeskCountRead, Ea as DeskProgressRead, Eo as DeskListPatronProfilesParams, Fa as DeskPatronOverviewRead, Fc as CatalogueDetailsParams, Fo as DeskListCatalogueCollectionsParams, Fs as DeskConsumptionSummaryRead, Gs as DeskCataloguePage, Ha as DeskPartnerImportStatusRead, Ho as DeskIlsRead, Hs as DeskCollectionRead, Ia as DeskPatronDetailRead, Io as DeskListAuditEventsParams, Is as DeskConsumptionSummaryParams, Jo as DeskGetTenantIntegrationsParams, Ko as DeskGetUsageLimitsParams, Ks as DeskCatalogueDetailsRead, La as DeskPatronActivityPage, Lo as DeskLicenseSummaryRead, Ma as DeskPaymentRead, Mo as DeskListContractsParams, Ms as DeskContractRead, Nc as CatalogueInventoryParams, No as DeskListContentRatingsParams, Ns as DeskContextRead, Oa as DeskPractitionerRead, Oo as DeskListLiveLeasesParams, Os as DeskCountPatronsParams, Pa as DeskPatronPage, Po as DeskListConsumptionEventsParams, Ps as DeskContentRatingsSummaryParams, Qi as DeskTutoringRequestsSummaryParams, Qo as DeskGetPaymentParams, Qs as DeskAttentionPage, R as TenantOverviewParams, Rs as DeskConsumptionPage, Sa as DeskRatingSummaryRead, So as DeskListPractitionerDocumentsParams, Ss as DeskDashboardRead, To as DeskListPatronsParams, Ts as DeskDashboardOverviewParams, Ua as DeskPartnerImportStatusParams, Uo as DeskHierarchyRead, Us as DeskCatalogueSummaryRead, Va as DeskPartnerLicenseRead, Vo as DeskIntegrationRead, Vs as DeskCollectionPage, Xo as DeskGetReadingProgressParams, Xs as DeskAuditPage, Ya as DeskPartnerHomeRead, Yi as DeskWorkloadRead, Yo as DeskGetReviewParams, Zi as DeskTutoringTimelineRead, Zo as DeskGetPractitionerParams, Zs as DeskAuditRead, Zt as PractitionerWorkloadParams, _a as DeskReviewsSummaryParams, _c as ContractUsageParams, _o as DeskListTenantsParams, ac as DeskAccessRead, as as DeskGetCatalogueItemParams, ba as DeskReferenceDataRead, bn as PartnerLicenseParams, bo as DeskListReviewsParams, bs as DeskDataCoverageRead, ca as DeskTenantRead, cs as DeskFindPractitionersParams, da as DeskServicePage, do as DeskLoansSummaryParams, ds as DeskExplainAccessParams, ea as DeskTutoringPage, eo as DeskPartnerFacetsRead, es as DeskGetPatronActivityParams, fo as DeskListTutoringRequestsParams, fs as DeskExclusionPage, g as TutoringPerformanceParams, ga as DeskSearchBackofficeParams, gn as PatronAccessMatrixParams, go as DeskListTutoringFeedbackParams, ha as DeskSearchCatalogueParams, hs as DeskEntitlementPage, ia as DeskTimeseriesRead, is as DeskGetConsumptionEventParams, ja as DeskPaymentPage, jo as DeskListEntitlementExclusionsParams, js as DeskContractCoverageRead, ka as DeskPaymentSummaryRead, ko as DeskListExpiringDocumentsParams, ks as DeskContractUsageRead, la as DeskTenantOverviewRead, lo as DeskManifestRead, ls as DeskFeedbackPage, mn as PatronOverviewParams, na as DeskTopContentRead, ns as DeskGetIlsStatusParams, o as TutoringTimelineParams, oa as DeskTenantStatsRead, oo as DeskMetricTimeseriesParams, os as DeskGetCatalogueCollectionParams, pa as DeskSearchPage, pc as DataCoverageParams, qo as DeskGetTutoringAnswerParams, qs as DeskCatalogueRead, rc as DeskAnswerRead, ro as DeskPartnerCatalogueFacetsParams, rs as DeskGetContractParams, sa as DeskTenantPage, sc as DeskAccessMatrixRead, ss as DeskGetAuditEventParams, ta as DeskTutoringRead, tc as DeskAttentionItemsParams, ts as DeskGetLoanParams, ua as DeskSummaryRead, va as DeskReviewPage, vc as ContractCoverageParams, vs as DeskDocumentPage, ya as DeskReviewRead, yn as PartnerLicensesParams, z as TenantHierarchyParams, za as DeskPartnerLicenseSummaryParams, zo as DeskInventoryPage, zs as DeskConsumptionRead } from "../chunks/index.js";
3
3
  import { c as request } from "../chunks/client.js";
4
4
  //#region src/api/admin-desk/admin-desk.d.ts
5
5
  export declare const getDeskExplainAccessUrl: (params: DeskExplainAccessParams) => string;