@learnorama/mozaik-sdk 0.8.3-staging.32.1 → 0.9.1-staging.36.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 (206) hide show
  1. package/README.md +107 -0
  2. package/dist/api/account.d.ts +29 -28
  3. package/dist/api/account.js +43 -28
  4. package/dist/api/account.js.map +1 -1
  5. package/dist/api/admin-catalogue.d.ts +1 -1
  6. package/dist/api/admin-catalogue.js.map +1 -1
  7. package/dist/api/admin-consumption.d.ts +1 -1
  8. package/dist/api/admin-consumption.js.map +1 -1
  9. package/dist/api/admin-desk.d.ts +23 -1
  10. package/dist/api/admin-desk.js +59 -1
  11. package/dist/api/admin-desk.js.map +1 -1
  12. package/dist/api/admin-licenses.d.ts +1 -1
  13. package/dist/api/admin-licenses.js.map +1 -1
  14. package/dist/api/admin-patrons.d.ts +1 -1
  15. package/dist/api/admin-patrons.js.map +1 -1
  16. package/dist/api/admin-reviews.d.ts +1 -1
  17. package/dist/api/admin-reviews.js.map +1 -1
  18. package/dist/api/admin-roles.d.ts +1 -1
  19. package/dist/api/admin-roles.js.map +1 -1
  20. package/dist/api/admin-support.d.ts +1 -1
  21. package/dist/api/admin-support.js.map +1 -1
  22. package/dist/api/admin-tenants.d.ts +1 -1
  23. package/dist/api/admin-tenants.js.map +1 -1
  24. package/dist/api/admin-tutoring.d.ts +1 -1
  25. package/dist/api/admin-tutoring.js.map +1 -1
  26. package/dist/api/auth.d.ts +11 -1
  27. package/dist/api/auth.js +31 -1
  28. package/dist/api/auth.js.map +1 -1
  29. package/dist/api/biblio-catalogue.d.ts +11 -1
  30. package/dist/api/biblio-catalogue.js +23 -1
  31. package/dist/api/biblio-catalogue.js.map +1 -1
  32. package/dist/api/biblio-home.d.ts +6 -1
  33. package/dist/api/biblio-home.js +5 -0
  34. package/dist/api/biblio-home.js.map +1 -1
  35. package/dist/api/biblio-library.d.ts +9 -6
  36. package/dist/api/biblio-library.js +22 -9
  37. package/dist/api/biblio-library.js.map +1 -1
  38. package/dist/api/biblio-nextory.d.ts +1 -1
  39. package/dist/api/biblio-nextory.js.map +1 -1
  40. package/dist/api/biblio-press.d.ts +34 -25
  41. package/dist/api/biblio-press.js +73 -32
  42. package/dist/api/biblio-press.js.map +1 -1
  43. package/dist/api/biblio-search.d.ts +1 -1
  44. package/dist/api/biblio-search.js.map +1 -1
  45. package/dist/api/biblio-telemetry.d.ts +1 -1
  46. package/dist/api/biblio-telemetry.js.map +1 -1
  47. package/dist/api/consumption.d.ts +1 -1
  48. package/dist/api/consumption.js.map +1 -1
  49. package/dist/api/cvs-app.d.ts +1 -1
  50. package/dist/api/cvs-app.js.map +1 -1
  51. package/dist/api/cvs-documents.d.ts +1 -1
  52. package/dist/api/cvs-documents.js.map +1 -1
  53. package/dist/api/cvs-favorites.d.ts +1 -1
  54. package/dist/api/cvs-favorites.js.map +1 -1
  55. package/dist/api/cvs-ils.d.ts +1 -1
  56. package/dist/api/cvs-ils.js.map +1 -1
  57. package/dist/api/cvs-loans.d.ts +1 -1
  58. package/dist/api/cvs-loans.js.map +1 -1
  59. package/dist/api/cvs-payments.d.ts +1 -1
  60. package/dist/api/cvs-payments.js.map +1 -1
  61. package/dist/api/cvs-streaming.d.ts +1 -1
  62. package/dist/api/cvs-streaming.js.map +1 -1
  63. package/dist/api/index.d.ts +9 -9
  64. package/dist/api/index.js +9 -9
  65. package/dist/api/partner-catalogue.d.ts +20 -1
  66. package/dist/api/partner-catalogue.js +44 -1
  67. package/dist/api/partner-catalogue.js.map +1 -1
  68. package/dist/api/partner-reader.d.ts +34 -6
  69. package/dist/api/partner-reader.js +48 -6
  70. package/dist/api/partner-reader.js.map +1 -1
  71. package/dist/api/profiles.d.ts +86 -33
  72. package/dist/api/profiles.js +302 -33
  73. package/dist/api/profiles.js.map +1 -1
  74. package/dist/api/search.d.ts +1 -1
  75. package/dist/api/search.js.map +1 -1
  76. package/dist/api/tutoring-catalogue.d.ts +1 -1
  77. package/dist/api/tutoring-catalogue.js.map +1 -1
  78. package/dist/api/tutoring-chat.d.ts +1 -1
  79. package/dist/api/tutoring-chat.js.map +1 -1
  80. package/dist/api/tutoring-dispatch.d.ts +1 -1
  81. package/dist/api/tutoring-dispatch.js.map +1 -1
  82. package/dist/api/tutoring-practitioner.d.ts +1 -1
  83. package/dist/api/tutoring-practitioner.js.map +1 -1
  84. package/dist/api/tutoring-requests.d.ts +1 -1
  85. package/dist/api/tutoring-requests.js.map +1 -1
  86. package/dist/chunks/client2.d.ts +1 -1
  87. package/dist/chunks/connection.d.ts +1 -1
  88. package/dist/chunks/index.d.ts +1220 -372
  89. package/dist/index.d.ts +3 -3
  90. package/dist/index.js +3 -3
  91. package/dist/index.js.map +1 -1
  92. package/dist/models.d.ts +2 -2
  93. package/dist/models.js +91 -1
  94. package/dist/models.js.map +1 -1
  95. package/dist/react/account.d.ts +83 -28
  96. package/dist/react/account.js +92 -29
  97. package/dist/react/account.js.map +1 -1
  98. package/dist/react/admin-catalogue.d.ts +1 -1
  99. package/dist/react/admin-catalogue.js +1 -1
  100. package/dist/react/admin-catalogue.js.map +1 -1
  101. package/dist/react/admin-consumption.d.ts +1 -1
  102. package/dist/react/admin-consumption.js +1 -1
  103. package/dist/react/admin-consumption.js.map +1 -1
  104. package/dist/react/admin-desk.d.ts +104 -1
  105. package/dist/react/admin-desk.js +132 -2
  106. package/dist/react/admin-desk.js.map +1 -1
  107. package/dist/react/admin-licenses.d.ts +1 -1
  108. package/dist/react/admin-licenses.js +1 -1
  109. package/dist/react/admin-licenses.js.map +1 -1
  110. package/dist/react/admin-patrons.d.ts +1 -1
  111. package/dist/react/admin-patrons.js +1 -1
  112. package/dist/react/admin-patrons.js.map +1 -1
  113. package/dist/react/admin-reviews.d.ts +1 -1
  114. package/dist/react/admin-reviews.js +1 -1
  115. package/dist/react/admin-reviews.js.map +1 -1
  116. package/dist/react/admin-roles.d.ts +1 -1
  117. package/dist/react/admin-roles.js +1 -1
  118. package/dist/react/admin-roles.js.map +1 -1
  119. package/dist/react/admin-support.d.ts +1 -1
  120. package/dist/react/admin-support.js +1 -1
  121. package/dist/react/admin-support.js.map +1 -1
  122. package/dist/react/admin-tenants.d.ts +1 -1
  123. package/dist/react/admin-tenants.js +1 -1
  124. package/dist/react/admin-tenants.js.map +1 -1
  125. package/dist/react/admin-tutoring.d.ts +1 -1
  126. package/dist/react/admin-tutoring.js +1 -1
  127. package/dist/react/admin-tutoring.js.map +1 -1
  128. package/dist/react/auth.d.ts +29 -1
  129. package/dist/react/auth.js +60 -2
  130. package/dist/react/auth.js.map +1 -1
  131. package/dist/react/biblio-catalogue.d.ts +38 -1
  132. package/dist/react/biblio-catalogue.js +48 -2
  133. package/dist/react/biblio-catalogue.js.map +1 -1
  134. package/dist/react/biblio-home.d.ts +6 -1
  135. package/dist/react/biblio-home.js +6 -1
  136. package/dist/react/biblio-home.js.map +1 -1
  137. package/dist/react/biblio-library.d.ts +15 -11
  138. package/dist/react/biblio-library.js +32 -19
  139. package/dist/react/biblio-library.js.map +1 -1
  140. package/dist/react/biblio-nextory.d.ts +1 -1
  141. package/dist/react/biblio-nextory.js +1 -1
  142. package/dist/react/biblio-nextory.js.map +1 -1
  143. package/dist/react/biblio-press.d.ts +119 -64
  144. package/dist/react/biblio-press.js +153 -59
  145. package/dist/react/biblio-press.js.map +1 -1
  146. package/dist/react/biblio-search.d.ts +1 -1
  147. package/dist/react/biblio-search.js +1 -1
  148. package/dist/react/biblio-search.js.map +1 -1
  149. package/dist/react/biblio-telemetry.d.ts +1 -1
  150. package/dist/react/biblio-telemetry.js +1 -1
  151. package/dist/react/biblio-telemetry.js.map +1 -1
  152. package/dist/react/chat.d.ts +1 -1
  153. package/dist/react/consumption.d.ts +1 -1
  154. package/dist/react/consumption.js +1 -1
  155. package/dist/react/consumption.js.map +1 -1
  156. package/dist/react/cvs-app.d.ts +1 -1
  157. package/dist/react/cvs-app.js +1 -1
  158. package/dist/react/cvs-app.js.map +1 -1
  159. package/dist/react/cvs-documents.d.ts +1 -1
  160. package/dist/react/cvs-documents.js +1 -1
  161. package/dist/react/cvs-documents.js.map +1 -1
  162. package/dist/react/cvs-favorites.d.ts +1 -1
  163. package/dist/react/cvs-favorites.js +1 -1
  164. package/dist/react/cvs-favorites.js.map +1 -1
  165. package/dist/react/cvs-ils.d.ts +1 -1
  166. package/dist/react/cvs-ils.js +1 -1
  167. package/dist/react/cvs-ils.js.map +1 -1
  168. package/dist/react/cvs-loans.d.ts +1 -1
  169. package/dist/react/cvs-loans.js +1 -1
  170. package/dist/react/cvs-loans.js.map +1 -1
  171. package/dist/react/cvs-payments.d.ts +1 -1
  172. package/dist/react/cvs-payments.js +1 -1
  173. package/dist/react/cvs-payments.js.map +1 -1
  174. package/dist/react/cvs-streaming.d.ts +1 -1
  175. package/dist/react/cvs-streaming.js +1 -1
  176. package/dist/react/cvs-streaming.js.map +1 -1
  177. package/dist/react/index.d.ts +9 -9
  178. package/dist/react/index.js +9 -9
  179. package/dist/react/partner-catalogue.d.ts +74 -1
  180. package/dist/react/partner-catalogue.js +95 -2
  181. package/dist/react/partner-catalogue.js.map +1 -1
  182. package/dist/react/partner-reader.d.ts +79 -6
  183. package/dist/react/partner-reader.js +102 -7
  184. package/dist/react/partner-reader.js.map +1 -1
  185. package/dist/react/profiles.d.ts +406 -33
  186. package/dist/react/profiles.js +760 -59
  187. package/dist/react/profiles.js.map +1 -1
  188. package/dist/react/search.d.ts +1 -1
  189. package/dist/react/search.js +1 -1
  190. package/dist/react/search.js.map +1 -1
  191. package/dist/react/tutoring-catalogue.d.ts +1 -1
  192. package/dist/react/tutoring-catalogue.js +1 -1
  193. package/dist/react/tutoring-catalogue.js.map +1 -1
  194. package/dist/react/tutoring-chat.d.ts +1 -1
  195. package/dist/react/tutoring-chat.js +1 -1
  196. package/dist/react/tutoring-chat.js.map +1 -1
  197. package/dist/react/tutoring-dispatch.d.ts +1 -1
  198. package/dist/react/tutoring-dispatch.js +1 -1
  199. package/dist/react/tutoring-dispatch.js.map +1 -1
  200. package/dist/react/tutoring-practitioner.d.ts +1 -1
  201. package/dist/react/tutoring-practitioner.js +1 -1
  202. package/dist/react/tutoring-practitioner.js.map +1 -1
  203. package/dist/react/tutoring-requests.d.ts +1 -1
  204. package/dist/react/tutoring-requests.js +1 -1
  205. package/dist/react/tutoring-requests.js.map +1 -1
  206. package/package.json +7 -7
@@ -1,5 +1,5 @@
1
1
 
2
- import { Rn as ListMediaParams, Zi as PartnerProvider, cn as PartnerCategoryListRead, nn as PartnerMediaRead, on as PartnerFavoriteListRead, rn as PartnerMediaPage } from "../chunks/index.js";
2
+ import { Cn as PartnerFavoriteListRead, On as PartnerCategoryListRead, Tn as PartnerFacetsRead, _n as PartnerMediaRead, io as PartnerProvider, mt as ReadPartnerFacetsParams, pt as ReadPartnerHomeParams, sr as ListMediaParams, vn as PartnerMediaPage, xn as PartnerHomeRead } from "../chunks/index.js";
3
3
  import { c as request } from "../chunks/client.js";
4
4
  //#region src/api/partner-catalogue/partner-catalogue.d.ts
5
5
  export declare const getListPartnerCategoriesUrl: (provider: PartnerProvider) => string;
@@ -14,6 +14,16 @@ export declare const getListPartnerCategoriesUrl: (provider: PartnerProvider) =>
14
14
  * @summary List Partner Categories
15
15
  */
16
16
  export declare const listPartnerCategories: (provider: PartnerProvider, options?: Parameters<typeof request>[1]) => Promise<PartnerCategoryListRead>;
17
+ export declare const getReadPartnerFacetsUrl: (provider: PartnerProvider, params?: ReadPartnerFacetsParams) => string;
18
+ /**
19
+ * Available languages and shelves in this profile's visible catalogue.
20
+ *
21
+ * Values are usable directly in ``/media`` filters, including the empty
22
+ * language value for titles whose provider supplied no language. Each facet
23
+ * drops its own filter so alternatives remain reachable.
24
+ * @summary Read Partner Facets
25
+ */
26
+ export declare const readPartnerFacets: (provider: PartnerProvider, params?: ReadPartnerFacetsParams, options?: Parameters<typeof request>[1]) => Promise<PartnerFacetsRead>;
17
27
  export declare const getListPartnerFavoritesUrl: (provider: PartnerProvider) => string;
18
28
  /**
19
29
  * This reader's bookmarks, filtered to what they may still see.
@@ -45,6 +55,15 @@ export declare const getAddPartnerFavoriteUrl: (provider: PartnerProvider, media
45
55
  * @summary Add Partner Favorite
46
56
  */
47
57
  export declare const addPartnerFavorite: (provider: PartnerProvider, mediaId: number, options?: Parameters<typeof request>[1]) => Promise<void>;
58
+ export declare const getReadPartnerHomeUrl: (provider: PartnerProvider, params?: ReadPartnerHomeParams) => string;
59
+ /**
60
+ * Visible shelves, favourites and locally saved readings for this profile.
61
+ *
62
+ * At most ``limit`` cards per section. No provider request, reader URL, licence
63
+ * allocation or consumption event is produced by browsing this home.
64
+ * @summary Read Partner Home
65
+ */
66
+ export declare const readPartnerHome: (provider: PartnerProvider, params?: ReadPartnerHomeParams, options?: Parameters<typeof request>[1]) => Promise<PartnerHomeRead>;
48
67
  export declare const getListMediaUrl: (provider: PartnerProvider, params?: ListMediaParams) => string;
49
68
  /**
50
69
  * A page of the catalogue.
@@ -20,6 +20,28 @@ const listPartnerCategories = async (provider, options) => {
20
20
  method: "GET"
21
21
  });
22
22
  };
23
+ const getReadPartnerFacetsUrl = (provider, params) => {
24
+ const normalizedParams = new URLSearchParams();
25
+ Object.entries(params || {}).forEach(([key, value]) => {
26
+ if (value !== void 0) normalizedParams.append(key, value === null ? "null" : String(value));
27
+ });
28
+ const stringifiedParams = normalizedParams.toString();
29
+ return stringifiedParams.length > 0 ? `/partners/${provider}/facets?${stringifiedParams}` : `/partners/${provider}/facets`;
30
+ };
31
+ /**
32
+ * Available languages and shelves in this profile's visible catalogue.
33
+ *
34
+ * Values are usable directly in ``/media`` filters, including the empty
35
+ * language value for titles whose provider supplied no language. Each facet
36
+ * drops its own filter so alternatives remain reachable.
37
+ * @summary Read Partner Facets
38
+ */
39
+ const readPartnerFacets = async (provider, params, options) => {
40
+ return request(getReadPartnerFacetsUrl(provider, params), {
41
+ ...options,
42
+ method: "GET"
43
+ });
44
+ };
23
45
  const getListPartnerFavoritesUrl = (provider) => {
24
46
  return `/partners/${provider}/favorites`;
25
47
  };
@@ -72,6 +94,27 @@ const addPartnerFavorite = async (provider, mediaId, options) => {
72
94
  method: "PUT"
73
95
  });
74
96
  };
97
+ const getReadPartnerHomeUrl = (provider, params) => {
98
+ const normalizedParams = new URLSearchParams();
99
+ Object.entries(params || {}).forEach(([key, value]) => {
100
+ if (value !== void 0) normalizedParams.append(key, value === null ? "null" : String(value));
101
+ });
102
+ const stringifiedParams = normalizedParams.toString();
103
+ return stringifiedParams.length > 0 ? `/partners/${provider}/home-feed?${stringifiedParams}` : `/partners/${provider}/home-feed`;
104
+ };
105
+ /**
106
+ * Visible shelves, favourites and locally saved readings for this profile.
107
+ *
108
+ * At most ``limit`` cards per section. No provider request, reader URL, licence
109
+ * allocation or consumption event is produced by browsing this home.
110
+ * @summary Read Partner Home
111
+ */
112
+ const readPartnerHome = async (provider, params, options) => {
113
+ return request(getReadPartnerHomeUrl(provider, params), {
114
+ ...options,
115
+ method: "GET"
116
+ });
117
+ };
75
118
  const getListMediaUrl = (provider, params) => {
76
119
  const normalizedParams = new URLSearchParams();
77
120
  Object.entries(params || {}).forEach(([key, value]) => {
@@ -120,6 +163,6 @@ const readMedia = async (provider, mediaId, options) => {
120
163
  });
121
164
  };
122
165
  //#endregion
123
- export { addPartnerFavorite, getAddPartnerFavoriteUrl, getListMediaUrl, getListPartnerCategoriesUrl, getListPartnerFavoritesUrl, getReadMediaUrl, getRemovePartnerFavoriteUrl, listMedia, listPartnerCategories, listPartnerFavorites, readMedia, removePartnerFavorite };
166
+ export { addPartnerFavorite, getAddPartnerFavoriteUrl, getListMediaUrl, getListPartnerCategoriesUrl, getListPartnerFavoritesUrl, getReadMediaUrl, getReadPartnerFacetsUrl, getReadPartnerHomeUrl, getRemovePartnerFavoriteUrl, listMedia, listPartnerCategories, listPartnerFavorites, readMedia, readPartnerFacets, readPartnerHome, removePartnerFavorite };
124
167
 
125
168
  //# sourceMappingURL=partner-catalogue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"partner-catalogue.js","names":[],"sources":["../../src/api/partner-catalogue/partner-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.8.3\n */\nimport type {\n ListMediaParams,\n PartnerCategoryListRead,\n PartnerFavoriteListRead,\n PartnerMediaPage,\n PartnerMediaRead,\n PartnerProvider\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getListPartnerCategoriesUrl = (provider: PartnerProvider,) => {\n\n\n\n\n return `/partners/${provider}/categories`\n}\n\n/**\n * The provider's taxonomy, with a count per node for this caller's slice.\n *\n * Counts come from ``partner_category_total`` and are summed across languages,\n * because the menu shows one number and the rollup is keyed per language. A\n * node with no matching rollup row reports ``0`` rather than being hidden: the\n * tree shape is stable, and a branch that vanishes because today's import found\n * nothing in it is harder to reason about than one that reads zero.\n * @summary List Partner Categories\n */\nexport const listPartnerCategories = async (provider: PartnerProvider, options?: Parameters<typeof request>[1]): Promise<PartnerCategoryListRead> => {\n\n return request<PartnerCategoryListRead>(getListPartnerCategoriesUrl(provider),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getListPartnerFavoritesUrl = (provider: PartnerProvider,) => {\n\n\n\n\n return `/partners/${provider}/favorites`\n}\n\n/**\n * This reader's bookmarks, filtered to what they may still see.\n *\n * The filter matters: a title can become adult-only, or leave the plan, between\n * being bookmarked and being listed. The legacy joined favourites to media with\n * no visibility predicate at all.\n * @summary List Partner Favorites\n */\nexport const listPartnerFavorites = async (provider: PartnerProvider, options?: Parameters<typeof request>[1]): Promise<PartnerFavoriteListRead> => {\n\n return request<PartnerFavoriteListRead>(getListPartnerFavoritesUrl(provider),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getRemovePartnerFavoriteUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/favorites/${mediaId}`\n}\n\n/**\n * Remove a bookmark. Idempotent, and deliberately not visibility-filtered.\n *\n * A reader must be able to unbookmark a title they can no longer see —\n * otherwise a media leaving their plan strands a row they have no way to\n * remove.\n * @summary Remove Partner Favorite\n */\nexport const removePartnerFavorite = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n return request<void>(getRemovePartnerFavoriteUrl(provider,mediaId),\n {\n ...options,\n method: 'DELETE'\n\n\n }\n);}\n\n\nexport const getAddPartnerFavoriteUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/favorites/${mediaId}`\n}\n\n/**\n * Bookmark a title. Idempotent.\n *\n * ``PUT``/``DELETE`` rather than the legacy's ``POST /toggle-favorite.json``. A\n * toggle is not idempotent, and the legacy's had no uniqueness behind it: two\n * tabs toggling at once left two rows, and un-toggling then removed one of\n * them, so the title stayed bookmarked.\n * @summary Add Partner Favorite\n */\nexport const addPartnerFavorite = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n return request<void>(getAddPartnerFavoriteUrl(provider,mediaId),\n {\n ...options,\n method: 'PUT'\n\n\n }\n);}\n\n\nexport const getListMediaUrl = (provider: PartnerProvider,\n params?: ListMediaParams,) => {\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 ? `/partners/${provider}/media?${stringifiedParams}` : `/partners/${provider}/media`\n}\n\n/**\n * A page of the catalogue.\n *\n * ``q`` ranks through Elasticsearch and then **intersects** with the same\n * visibility subquery as an unfiltered listing — the index knows nothing about\n * plans or ages, so authorisation happens here whatever the index returns. An\n * index that is missing or unreachable yields no candidates, which reads as an\n * empty page rather than an unfiltered one.\n *\n * A search result keeps the index's ranking rather than applying ``order``:\n * re-sorting relevance by publication date discards the only thing the search\n * contributed. That is why ``order`` is ignored when ``q`` is present, not\n * silently combined with it.\n * @summary List Media\n */\nexport const listMedia = async (provider: PartnerProvider,\n params?: ListMediaParams, options?: Parameters<typeof request>[1]): Promise<PartnerMediaPage> => {\n\n return request<PartnerMediaPage>(getListMediaUrl(provider,params),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getReadMediaUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/media/${mediaId}`\n}\n\n/**\n * One title.\n *\n * A media outside the caller's slice is ``404``, not ``403``: whether an adult\n * title exists is itself something a minor's client should not be able to\n * determine, and the legacy's detail page dereferenced an unknown id straight\n * into a 500.\n * @summary Read Media\n */\nexport const readMedia = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<PartnerMediaRead> => {\n\n return request<PartnerMediaRead>(getReadMediaUrl(provider,mediaId),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\n"],"mappings":";;;AAkBA,MAAa,+BAA+B,aAA+B;CAKzE,OAAO,aAAa,SAAS;AAC/B;;;;;;;;;;;AAYA,MAAa,wBAAwB,OAAO,UAA2B,YAA8E;CAEnJ,OAAO,QAAiC,4BAA4B,QAAQ,GAC5E;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,8BAA8B,aAA+B;CAKxE,OAAO,aAAa,SAAS;AAC/B;;;;;;;;;AAUA,MAAa,uBAAuB,OAAO,UAA2B,YAA8E;CAElJ,OAAO,QAAiC,2BAA2B,QAAQ,GAC3E;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,+BAA+B,UACxC,YAAqB;CAKvB,OAAO,aAAa,SAAS,aAAa;AAC5C;;;;;;;;;AAUA,MAAa,wBAAwB,OAAO,UACxC,SAAiB,YAA2D;CAE9E,OAAO,QAAc,4BAA4B,UAAS,OAAO,GACjE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,4BAA4B,UACrC,YAAqB;CAKvB,OAAO,aAAa,SAAS,aAAa;AAC5C;;;;;;;;;;AAWA,MAAa,qBAAqB,OAAO,UACrC,SAAiB,YAA2D;CAE9E,OAAO,QAAc,yBAAyB,UAAS,OAAO,GAC9D;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,mBAAmB,UAC5B,WAA8B;CAChC,MAAM,mBAAmB,IAAI,gBAAgB;CAE7C,OAAO,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAErD,IAAI,UAAU,KAAA,GACZ,iBAAiB,OAAO,KAAK,UAAU,OAAO,SAAS,OAAO,KAAK,CAAC;CAExE,CAAC;CAED,MAAM,oBAAoB,iBAAiB,SAAS;CAEpD,OAAO,kBAAkB,SAAS,IAAI,aAAa,SAAS,SAAS,sBAAsB,aAAa,SAAS;AACnH;;;;;;;;;;;;;;;;AAiBA,MAAa,YAAY,OAAO,UAC5B,QAA0B,YAAuE;CAEnG,OAAO,QAA0B,gBAAgB,UAAS,MAAM,GAChE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,mBAAmB,UAC5B,YAAqB;CAKvB,OAAO,aAAa,SAAS,SAAS;AACxC;;;;;;;;;;AAWA,MAAa,YAAY,OAAO,UAC5B,SAAiB,YAAuE;CAE1F,OAAO,QAA0B,gBAAgB,UAAS,OAAO,GACjE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE"}
1
+ {"version":3,"file":"partner-catalogue.js","names":[],"sources":["../../src/api/partner-catalogue/partner-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.1\n */\nimport type {\n ListMediaParams,\n PartnerCategoryListRead,\n PartnerFacetsRead,\n PartnerFavoriteListRead,\n PartnerHomeRead,\n PartnerMediaPage,\n PartnerMediaRead,\n PartnerProvider,\n ReadPartnerFacetsParams,\n ReadPartnerHomeParams\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getListPartnerCategoriesUrl = (provider: PartnerProvider,) => {\n\n\n\n\n return `/partners/${provider}/categories`\n}\n\n/**\n * The provider's taxonomy, with a count per node for this caller's slice.\n *\n * Counts come from ``partner_category_total`` and are summed across languages,\n * because the menu shows one number and the rollup is keyed per language. A\n * node with no matching rollup row reports ``0`` rather than being hidden: the\n * tree shape is stable, and a branch that vanishes because today's import found\n * nothing in it is harder to reason about than one that reads zero.\n * @summary List Partner Categories\n */\nexport const listPartnerCategories = async (provider: PartnerProvider, options?: Parameters<typeof request>[1]): Promise<PartnerCategoryListRead> => {\n\n return request<PartnerCategoryListRead>(getListPartnerCategoriesUrl(provider),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getReadPartnerFacetsUrl = (provider: PartnerProvider,\n params?: ReadPartnerFacetsParams,) => {\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 ? `/partners/${provider}/facets?${stringifiedParams}` : `/partners/${provider}/facets`\n}\n\n/**\n * Available languages and shelves in this profile's visible catalogue.\n *\n * Values are usable directly in ``/media`` filters, including the empty\n * language value for titles whose provider supplied no language. Each facet\n * drops its own filter so alternatives remain reachable.\n * @summary Read Partner Facets\n */\nexport const readPartnerFacets = async (provider: PartnerProvider,\n params?: ReadPartnerFacetsParams, options?: Parameters<typeof request>[1]): Promise<PartnerFacetsRead> => {\n\n return request<PartnerFacetsRead>(getReadPartnerFacetsUrl(provider,params),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getListPartnerFavoritesUrl = (provider: PartnerProvider,) => {\n\n\n\n\n return `/partners/${provider}/favorites`\n}\n\n/**\n * This reader's bookmarks, filtered to what they may still see.\n *\n * The filter matters: a title can become adult-only, or leave the plan, between\n * being bookmarked and being listed. The legacy joined favourites to media with\n * no visibility predicate at all.\n * @summary List Partner Favorites\n */\nexport const listPartnerFavorites = async (provider: PartnerProvider, options?: Parameters<typeof request>[1]): Promise<PartnerFavoriteListRead> => {\n\n return request<PartnerFavoriteListRead>(getListPartnerFavoritesUrl(provider),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getRemovePartnerFavoriteUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/favorites/${mediaId}`\n}\n\n/**\n * Remove a bookmark. Idempotent, and deliberately not visibility-filtered.\n *\n * A reader must be able to unbookmark a title they can no longer see —\n * otherwise a media leaving their plan strands a row they have no way to\n * remove.\n * @summary Remove Partner Favorite\n */\nexport const removePartnerFavorite = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n return request<void>(getRemovePartnerFavoriteUrl(provider,mediaId),\n {\n ...options,\n method: 'DELETE'\n\n\n }\n);}\n\n\nexport const getAddPartnerFavoriteUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/favorites/${mediaId}`\n}\n\n/**\n * Bookmark a title. Idempotent.\n *\n * ``PUT``/``DELETE`` rather than the legacy's ``POST /toggle-favorite.json``. A\n * toggle is not idempotent, and the legacy's had no uniqueness behind it: two\n * tabs toggling at once left two rows, and un-toggling then removed one of\n * them, so the title stayed bookmarked.\n * @summary Add Partner Favorite\n */\nexport const addPartnerFavorite = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<void> => {\n\n return request<void>(getAddPartnerFavoriteUrl(provider,mediaId),\n {\n ...options,\n method: 'PUT'\n\n\n }\n);}\n\n\nexport const getReadPartnerHomeUrl = (provider: PartnerProvider,\n params?: ReadPartnerHomeParams,) => {\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 ? `/partners/${provider}/home-feed?${stringifiedParams}` : `/partners/${provider}/home-feed`\n}\n\n/**\n * Visible shelves, favourites and locally saved readings for this profile.\n *\n * At most ``limit`` cards per section. No provider request, reader URL, licence\n * allocation or consumption event is produced by browsing this home.\n * @summary Read Partner Home\n */\nexport const readPartnerHome = async (provider: PartnerProvider,\n params?: ReadPartnerHomeParams, options?: Parameters<typeof request>[1]): Promise<PartnerHomeRead> => {\n\n return request<PartnerHomeRead>(getReadPartnerHomeUrl(provider,params),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getListMediaUrl = (provider: PartnerProvider,\n params?: ListMediaParams,) => {\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 ? `/partners/${provider}/media?${stringifiedParams}` : `/partners/${provider}/media`\n}\n\n/**\n * A page of the catalogue.\n *\n * ``q`` ranks through Elasticsearch and then **intersects** with the same\n * visibility subquery as an unfiltered listing — the index knows nothing about\n * plans or ages, so authorisation happens here whatever the index returns. An\n * index that is missing or unreachable yields no candidates, which reads as an\n * empty page rather than an unfiltered one.\n *\n * A search result keeps the index's ranking rather than applying ``order``:\n * re-sorting relevance by publication date discards the only thing the search\n * contributed. That is why ``order`` is ignored when ``q`` is present, not\n * silently combined with it.\n * @summary List Media\n */\nexport const listMedia = async (provider: PartnerProvider,\n params?: ListMediaParams, options?: Parameters<typeof request>[1]): Promise<PartnerMediaPage> => {\n\n return request<PartnerMediaPage>(getListMediaUrl(provider,params),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getReadMediaUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/media/${mediaId}`\n}\n\n/**\n * One title.\n *\n * A media outside the caller's slice is ``404``, not ``403``: whether an adult\n * title exists is itself something a minor's client should not be able to\n * determine, and the legacy's detail page dereferenced an unknown id straight\n * into a 500.\n * @summary Read Media\n */\nexport const readMedia = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<PartnerMediaRead> => {\n\n return request<PartnerMediaRead>(getReadMediaUrl(provider,mediaId),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\n"],"mappings":";;;AAsBA,MAAa,+BAA+B,aAA+B;CAKzE,OAAO,aAAa,SAAS;AAC/B;;;;;;;;;;;AAYA,MAAa,wBAAwB,OAAO,UAA2B,YAA8E;CAEnJ,OAAO,QAAiC,4BAA4B,QAAQ,GAC5E;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,2BAA2B,UACpC,WAAsC;CACxC,MAAM,mBAAmB,IAAI,gBAAgB;CAE7C,OAAO,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAErD,IAAI,UAAU,KAAA,GACZ,iBAAiB,OAAO,KAAK,UAAU,OAAO,SAAS,OAAO,KAAK,CAAC;CAExE,CAAC;CAED,MAAM,oBAAoB,iBAAiB,SAAS;CAEpD,OAAO,kBAAkB,SAAS,IAAI,aAAa,SAAS,UAAU,sBAAsB,aAAa,SAAS;AACpH;;;;;;;;;AAUA,MAAa,oBAAoB,OAAO,UACpC,QAAkC,YAAwE;CAE5G,OAAO,QAA2B,wBAAwB,UAAS,MAAM,GACzE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,8BAA8B,aAA+B;CAKxE,OAAO,aAAa,SAAS;AAC/B;;;;;;;;;AAUA,MAAa,uBAAuB,OAAO,UAA2B,YAA8E;CAElJ,OAAO,QAAiC,2BAA2B,QAAQ,GAC3E;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,+BAA+B,UACxC,YAAqB;CAKvB,OAAO,aAAa,SAAS,aAAa;AAC5C;;;;;;;;;AAUA,MAAa,wBAAwB,OAAO,UACxC,SAAiB,YAA2D;CAE9E,OAAO,QAAc,4BAA4B,UAAS,OAAO,GACjE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,4BAA4B,UACrC,YAAqB;CAKvB,OAAO,aAAa,SAAS,aAAa;AAC5C;;;;;;;;;;AAWA,MAAa,qBAAqB,OAAO,UACrC,SAAiB,YAA2D;CAE9E,OAAO,QAAc,yBAAyB,UAAS,OAAO,GAC9D;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,yBAAyB,UAClC,WAAoC;CACtC,MAAM,mBAAmB,IAAI,gBAAgB;CAE7C,OAAO,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAErD,IAAI,UAAU,KAAA,GACZ,iBAAiB,OAAO,KAAK,UAAU,OAAO,SAAS,OAAO,KAAK,CAAC;CAExE,CAAC;CAED,MAAM,oBAAoB,iBAAiB,SAAS;CAEpD,OAAO,kBAAkB,SAAS,IAAI,aAAa,SAAS,aAAa,sBAAsB,aAAa,SAAS;AACvH;;;;;;;;AASA,MAAa,kBAAkB,OAAO,UAClC,QAAgC,YAAsE;CAExG,OAAO,QAAyB,sBAAsB,UAAS,MAAM,GACrE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,mBAAmB,UAC5B,WAA8B;CAChC,MAAM,mBAAmB,IAAI,gBAAgB;CAE7C,OAAO,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAErD,IAAI,UAAU,KAAA,GACZ,iBAAiB,OAAO,KAAK,UAAU,OAAO,SAAS,OAAO,KAAK,CAAC;CAExE,CAAC;CAED,MAAM,oBAAoB,iBAAiB,SAAS;CAEpD,OAAO,kBAAkB,SAAS,IAAI,aAAa,SAAS,SAAS,sBAAsB,aAAa,SAAS;AACnH;;;;;;;;;;;;;;;;AAiBA,MAAa,YAAY,OAAO,UAC5B,QAA0B,YAAuE;CAEnG,OAAO,QAA0B,gBAAgB,UAAS,MAAM,GAChE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,mBAAmB,UAC5B,YAAqB;CAKvB,OAAO,aAAa,SAAS,SAAS;AACxC;;;;;;;;;;AAWA,MAAa,YAAY,OAAO,UAC5B,SAAiB,YAAuE;CAE1F,OAAO,QAA0B,gBAAgB,UAAS,OAAO,GACjE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE"}
@@ -1,5 +1,5 @@
1
1
 
2
- import { Zi as PartnerProvider, cs as CurrentReadingListRead, dt as ReadPackageParams, gt as ReadingPositionRead, mt as ReadingPositionWrite, yt as ReaderPackageRead } from "../chunks/index.js";
2
+ import { St as ReadingPositionRead, Tt as ReaderPackageRead, bt as ReadingPositionWrite, gt as ReadPackageParams, io as PartnerProvider, mc as CurrentReadingListRead, n as YouScribeAuthRead, t as YouScribeReaderRead } from "../chunks/index.js";
3
3
  import { c as request } from "../chunks/client.js";
4
4
  //#region src/api/partner-reader/partner-reader.d.ts
5
5
  export declare const getReadPackageUrl: (provider: PartnerProvider, mediaId: number, params?: ReadPackageParams) => string;
@@ -23,7 +23,7 @@ export declare const getReadPackageUrl: (provider: PartnerProvider, mediaId: num
23
23
  export declare const readPackage: (provider: PartnerProvider, mediaId: number, params?: ReadPackageParams, options?: Parameters<typeof request>[1]) => Promise<ReaderPackageRead>;
24
24
  export declare const getReadPositionUrl: (provider: PartnerProvider, mediaId: number) => string;
25
25
  /**
26
- * Where this reader last was, according to the partner.
26
+ * The last synchronized local position, or the partner's when none is saved.
27
27
  *
28
28
  * ``404`` when the partner holds no position — a book never opened has no
29
29
  * place to return to, and reporting zero would make a client jump a reader who
@@ -33,14 +33,31 @@ export declare const getReadPositionUrl: (provider: PartnerProvider, mediaId: nu
33
33
  export declare const readPosition: (provider: PartnerProvider, mediaId: number, options?: Parameters<typeof request>[1]) => Promise<ReadingPositionRead>;
34
34
  export declare const getWritePositionUrl: (provider: PartnerProvider, mediaId: number) => string;
35
35
  /**
36
- * Record progress, and report the partner's own metering alongside it.
36
+ * Synchronize and save progress, with the partner's metering alongside it.
37
37
  *
38
- * ``usage_blocks`` is forwarded first when present, because the legacy did and
39
- * the partner treats the two as one act: metering after a position update
40
- * records consumption against a page the reader has already left.
38
+ * ``usage_blocks`` is forwarded before a new position, matching the legacy's
39
+ * call order. The two reports are independent: an older position may carry
40
+ * usage the partner has not received yet.
41
+ *
42
+ * Only a strictly newer ``reachedAt`` replaces the saved position. Stale or
43
+ * duplicate writes return that saved position without updating it upstream.
44
+ * Provided usage blocks are still forwarded, including on retries; the
45
+ * partner's deduplication contract is unknown. Conflicting positions at the
46
+ * same instant return 409 before any outbound write.
47
+ * Progress is a resume point, not a measurement of time spent reading.
41
48
  * @summary Write Position
42
49
  */
43
50
  export declare const writePosition: (provider: PartnerProvider, mediaId: number, readingPositionWrite: ReadingPositionWrite, options?: Parameters<typeof request>[1]) => Promise<ReadingPositionRead>;
51
+ export declare const getOpenNativeReaderUrl: (provider: PartnerProvider, mediaId: number) => string;
52
+ /**
53
+ * Authorize a YouScribe native title and open its consumption lease.
54
+ *
55
+ * Pass externalId and token to the YouScribe SDK. Mozaik requests keep using
56
+ * mediaId. Renew lease.eventId while the reader is open and close it when the
57
+ * reader exits; reopening the same title reuses its active lease.
58
+ * @summary Open Native Reader
59
+ */
60
+ export declare const openNativeReader: (provider: PartnerProvider, mediaId: number, options?: Parameters<typeof request>[1]) => Promise<YouScribeReaderRead>;
44
61
  export declare const getListCurrentReadingsUrl: (provider: PartnerProvider) => string;
45
62
  /**
46
63
  * The partner's own "continue reading" list, joined back to our catalogue.
@@ -52,5 +69,16 @@ export declare const getListCurrentReadingsUrl: (provider: PartnerProvider) => s
52
69
  * @summary List Current Readings
53
70
  */
54
71
  export declare const listCurrentReadings: (provider: PartnerProvider, options?: Parameters<typeof request>[1]) => Promise<CurrentReadingListRead>;
72
+ export declare const getReadNativeAuthUrl: (provider: PartnerProvider) => string;
73
+ /**
74
+ * YouScribe native SDK credentials for the selected, authorized profile.
75
+ *
76
+ * Equivalent to the legacy YouScribe user/auth endpoint. This does not create
77
+ * a licence or a consumption event. Open a title through its reader-auth POST
78
+ * to obtain the lease used for consumption heartbeats. The token is personal:
79
+ * never persist it, log it, or share it between profiles.
80
+ * @summary Read Native Auth
81
+ */
82
+ export declare const readNativeAuth: (provider: PartnerProvider, options?: Parameters<typeof request>[1]) => Promise<YouScribeAuthRead>;
55
83
  //#endregion
56
84
  //# sourceMappingURL=partner-reader.d.ts.map
@@ -36,7 +36,7 @@ const getReadPositionUrl = (provider, mediaId) => {
36
36
  return `/partners/${provider}/media/${mediaId}/position`;
37
37
  };
38
38
  /**
39
- * Where this reader last was, according to the partner.
39
+ * The last synchronized local position, or the partner's when none is saved.
40
40
  *
41
41
  * ``404`` when the partner holds no position — a book never opened has no
42
42
  * place to return to, and reporting zero would make a client jump a reader who
@@ -53,11 +53,18 @@ const getWritePositionUrl = (provider, mediaId) => {
53
53
  return `/partners/${provider}/media/${mediaId}/position`;
54
54
  };
55
55
  /**
56
- * Record progress, and report the partner's own metering alongside it.
56
+ * Synchronize and save progress, with the partner's metering alongside it.
57
57
  *
58
- * ``usage_blocks`` is forwarded first when present, because the legacy did and
59
- * the partner treats the two as one act: metering after a position update
60
- * records consumption against a page the reader has already left.
58
+ * ``usage_blocks`` is forwarded before a new position, matching the legacy's
59
+ * call order. The two reports are independent: an older position may carry
60
+ * usage the partner has not received yet.
61
+ *
62
+ * Only a strictly newer ``reachedAt`` replaces the saved position. Stale or
63
+ * duplicate writes return that saved position without updating it upstream.
64
+ * Provided usage blocks are still forwarded, including on retries; the
65
+ * partner's deduplication contract is unknown. Conflicting positions at the
66
+ * same instant return 409 before any outbound write.
67
+ * Progress is a resume point, not a measurement of time spent reading.
61
68
  * @summary Write Position
62
69
  */
63
70
  const writePosition = async (provider, mediaId, readingPositionWrite, options) => {
@@ -79,6 +86,23 @@ const writePosition = async (provider, mediaId, readingPositionWrite, options) =
79
86
  body: JSON.stringify(readingPositionWrite)
80
87
  });
81
88
  };
89
+ const getOpenNativeReaderUrl = (provider, mediaId) => {
90
+ return `/partners/${provider}/media/${mediaId}/reader-auth`;
91
+ };
92
+ /**
93
+ * Authorize a YouScribe native title and open its consumption lease.
94
+ *
95
+ * Pass externalId and token to the YouScribe SDK. Mozaik requests keep using
96
+ * mediaId. Renew lease.eventId while the reader is open and close it when the
97
+ * reader exits; reopening the same title reuses its active lease.
98
+ * @summary Open Native Reader
99
+ */
100
+ const openNativeReader = async (provider, mediaId, options) => {
101
+ return request(getOpenNativeReaderUrl(provider, mediaId), {
102
+ ...options,
103
+ method: "POST"
104
+ });
105
+ };
82
106
  const getListCurrentReadingsUrl = (provider) => {
83
107
  return `/partners/${provider}/readings`;
84
108
  };
@@ -97,7 +121,25 @@ const listCurrentReadings = async (provider, options) => {
97
121
  method: "GET"
98
122
  });
99
123
  };
124
+ const getReadNativeAuthUrl = (provider) => {
125
+ return `/partners/${provider}/user/auth`;
126
+ };
127
+ /**
128
+ * YouScribe native SDK credentials for the selected, authorized profile.
129
+ *
130
+ * Equivalent to the legacy YouScribe user/auth endpoint. This does not create
131
+ * a licence or a consumption event. Open a title through its reader-auth POST
132
+ * to obtain the lease used for consumption heartbeats. The token is personal:
133
+ * never persist it, log it, or share it between profiles.
134
+ * @summary Read Native Auth
135
+ */
136
+ const readNativeAuth = async (provider, options) => {
137
+ return request(getReadNativeAuthUrl(provider), {
138
+ ...options,
139
+ method: "GET"
140
+ });
141
+ };
100
142
  //#endregion
101
- export { getListCurrentReadingsUrl, getReadPackageUrl, getReadPositionUrl, getWritePositionUrl, listCurrentReadings, readPackage, readPosition, writePosition };
143
+ export { getListCurrentReadingsUrl, getOpenNativeReaderUrl, getReadNativeAuthUrl, getReadPackageUrl, getReadPositionUrl, getWritePositionUrl, listCurrentReadings, openNativeReader, readNativeAuth, readPackage, readPosition, writePosition };
102
144
 
103
145
  //# sourceMappingURL=partner-reader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"partner-reader.js","names":[],"sources":["../../src/api/partner-reader/partner-reader.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.8.3\n */\nimport type {\n CurrentReadingListRead,\n PartnerProvider,\n ReadPackageParams,\n ReaderPackageRead,\n ReadingPositionRead,\n ReadingPositionWrite\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getReadPackageUrl = (provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams,) => {\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 ? `/partners/${provider}/media/${mediaId}/package?${stringifiedParams}` : `/partners/${provider}/media/${mediaId}/package`\n}\n\n/**\n * Where to fetch the content itself.\n *\n * The returned URL is a short-lived DRM-wrapped credential. It is not cached\n * here and should not be stored by the client.\n *\n * Opens a consumption lease, so the read appears in the ledger and counts\n * against the establishment's live seats like any other. Its id comes back in\n * ``lease``: keep it alive with ``PUT /consumption/{eventId}`` and drop it with\n * ``DELETE`` when the reader closes. A client that does neither is not broken\n * — the reaper closes the lease about a minute after the last heartbeat — but\n * every such read is a seat held past the end of it.\n *\n * Re-opening the same title returns the lease already held rather than a\n * second one, so a page reload does not leak a seat.\n * @summary Read Package\n */\nexport const readPackage = async (provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: Parameters<typeof request>[1]): Promise<ReaderPackageRead> => {\n\n return request<ReaderPackageRead>(getReadPackageUrl(provider,mediaId,params),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getReadPositionUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/media/${mediaId}/position`\n}\n\n/**\n * Where this reader last was, according to the partner.\n *\n * ``404`` when the partner holds no position — a book never opened has no\n * place to return to, and reporting zero would make a client jump a reader who\n * *is* mid-book back to the start if the call ever failed soft.\n * @summary Read Position\n */\nexport const readPosition = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<ReadingPositionRead> => {\n\n return request<ReadingPositionRead>(getReadPositionUrl(provider,mediaId),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getWritePositionUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/media/${mediaId}/position`\n}\n\n/**\n * Record progress, and report the partner's own metering alongside it.\n *\n * ``usage_blocks`` is forwarded first when present, because the legacy did and\n * the partner treats the two as one act: metering after a position update\n * records consumption against a page the reader has already left.\n * @summary Write Position\n */\nexport const writePosition = async (provider: PartnerProvider,\n mediaId: number,\n readingPositionWrite: ReadingPositionWrite, options?: Parameters<typeof request>[1]): Promise<ReadingPositionRead> => {\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<ReadingPositionRead>(getWritePositionUrl(provider,mediaId),\n {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(readingPositionWrite)\n }\n);}\n\n\nexport const getListCurrentReadingsUrl = (provider: PartnerProvider,) => {\n\n\n\n\n return `/partners/${provider}/readings`\n}\n\n/**\n * The partner's own \"continue reading\" list, joined back to our catalogue.\n *\n * Entries the partner knows and our catalogue does not are dropped rather than\n * surfaced with a null id: the import runs nightly and the partner's list is\n * live, so a title added today is genuinely not browsable here yet, and a card\n * that cannot be opened is worse than one that is absent.\n * @summary List Current Readings\n */\nexport const listCurrentReadings = async (provider: PartnerProvider, options?: Parameters<typeof request>[1]): Promise<CurrentReadingListRead> => {\n\n return request<CurrentReadingListRead>(getListCurrentReadingsUrl(provider),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\n"],"mappings":";;;AAkBA,MAAa,qBAAqB,UAC9B,SACA,WAAgC;CAClC,MAAM,mBAAmB,IAAI,gBAAgB;CAE7C,OAAO,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAErD,IAAI,UAAU,KAAA,GACZ,iBAAiB,OAAO,KAAK,UAAU,OAAO,SAAS,OAAO,KAAK,CAAC;CAExE,CAAC;CAED,MAAM,oBAAoB,iBAAiB,SAAS;CAEpD,OAAO,kBAAkB,SAAS,IAAI,aAAa,SAAS,SAAS,QAAQ,WAAW,sBAAsB,aAAa,SAAS,SAAS,QAAQ;AACvJ;;;;;;;;;;;;;;;;;;AAmBA,MAAa,cAAc,OAAO,UAC9B,SACA,QAA4B,YAAwE;CAEtG,OAAO,QAA2B,kBAAkB,UAAS,SAAQ,MAAM,GAC3E;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,sBAAsB,UAC/B,YAAqB;CAKvB,OAAO,aAAa,SAAS,SAAS,QAAQ;AAChD;;;;;;;;;AAUA,MAAa,eAAe,OAAO,UAC/B,SAAiB,YAA0E;CAE7F,OAAO,QAA6B,mBAAmB,UAAS,OAAO,GACvE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,uBAAuB,UAChC,YAAqB;CAKvB,OAAO,aAAa,SAAS,SAAS,QAAQ;AAChD;;;;;;;;;AAUA,MAAa,gBAAgB,OAAO,UAChC,SACA,sBAA4C,YAA0E;CAEtH,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,QAA6B,oBAAoB,UAAS,OAAO,GACtE;EACE,GAAG;EACH,QAAQ;EACR,SAAS;GAAE,gBAAgB;GAAoB,GAAG,WAAW,SAAS,OAAO;EAAE;EAC/E,MAAM,KAAK,UAAU,oBAAoB;CAC3C,CACF;AAAE;AAGF,MAAa,6BAA6B,aAA+B;CAKvE,OAAO,aAAa,SAAS;AAC/B;;;;;;;;;;AAWA,MAAa,sBAAsB,OAAO,UAA2B,YAA6E;CAEhJ,OAAO,QAAgC,0BAA0B,QAAQ,GACzE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE"}
1
+ {"version":3,"file":"partner-reader.js","names":[],"sources":["../../src/api/partner-reader/partner-reader.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.1\n */\nimport type {\n CurrentReadingListRead,\n PartnerProvider,\n ReadPackageParams,\n ReaderPackageRead,\n ReadingPositionRead,\n ReadingPositionWrite,\n YouScribeAuthRead,\n YouScribeReaderRead\n} from '../../models';\n\nimport { request } from '../../client';\n\nexport const getReadPackageUrl = (provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams,) => {\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 ? `/partners/${provider}/media/${mediaId}/package?${stringifiedParams}` : `/partners/${provider}/media/${mediaId}/package`\n}\n\n/**\n * Where to fetch the content itself.\n *\n * The returned URL is a short-lived DRM-wrapped credential. It is not cached\n * here and should not be stored by the client.\n *\n * Opens a consumption lease, so the read appears in the ledger and counts\n * against the establishment's live seats like any other. Its id comes back in\n * ``lease``: keep it alive with ``PUT /consumption/{eventId}`` and drop it with\n * ``DELETE`` when the reader closes. A client that does neither is not broken\n * — the reaper closes the lease about a minute after the last heartbeat — but\n * every such read is a seat held past the end of it.\n *\n * Re-opening the same title returns the lease already held rather than a\n * second one, so a page reload does not leak a seat.\n * @summary Read Package\n */\nexport const readPackage = async (provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: Parameters<typeof request>[1]): Promise<ReaderPackageRead> => {\n\n return request<ReaderPackageRead>(getReadPackageUrl(provider,mediaId,params),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getReadPositionUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/media/${mediaId}/position`\n}\n\n/**\n * The last synchronized local position, or the partner's when none is saved.\n *\n * ``404`` when the partner holds no position — a book never opened has no\n * place to return to, and reporting zero would make a client jump a reader who\n * *is* mid-book back to the start if the call ever failed soft.\n * @summary Read Position\n */\nexport const readPosition = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<ReadingPositionRead> => {\n\n return request<ReadingPositionRead>(getReadPositionUrl(provider,mediaId),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getWritePositionUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/media/${mediaId}/position`\n}\n\n/**\n * Synchronize and save progress, with the partner's metering alongside it.\n *\n * ``usage_blocks`` is forwarded before a new position, matching the legacy's\n * call order. The two reports are independent: an older position may carry\n * usage the partner has not received yet.\n *\n * Only a strictly newer ``reachedAt`` replaces the saved position. Stale or\n * duplicate writes return that saved position without updating it upstream.\n * Provided usage blocks are still forwarded, including on retries; the\n * partner's deduplication contract is unknown. Conflicting positions at the\n * same instant return 409 before any outbound write.\n * Progress is a resume point, not a measurement of time spent reading.\n * @summary Write Position\n */\nexport const writePosition = async (provider: PartnerProvider,\n mediaId: number,\n readingPositionWrite: ReadingPositionWrite, options?: Parameters<typeof request>[1]): Promise<ReadingPositionRead> => {\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<ReadingPositionRead>(getWritePositionUrl(provider,mediaId),\n {\n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...getHeaders(options?.headers) },\n body: JSON.stringify(readingPositionWrite)\n }\n);}\n\n\nexport const getOpenNativeReaderUrl = (provider: PartnerProvider,\n mediaId: number,) => {\n\n\n\n\n return `/partners/${provider}/media/${mediaId}/reader-auth`\n}\n\n/**\n * Authorize a YouScribe native title and open its consumption lease.\n *\n * Pass externalId and token to the YouScribe SDK. Mozaik requests keep using\n * mediaId. Renew lease.eventId while the reader is open and close it when the\n * reader exits; reopening the same title reuses its active lease.\n * @summary Open Native Reader\n */\nexport const openNativeReader = async (provider: PartnerProvider,\n mediaId: number, options?: Parameters<typeof request>[1]): Promise<YouScribeReaderRead> => {\n\n return request<YouScribeReaderRead>(getOpenNativeReaderUrl(provider,mediaId),\n {\n ...options,\n method: 'POST'\n\n\n }\n);}\n\n\nexport const getListCurrentReadingsUrl = (provider: PartnerProvider,) => {\n\n\n\n\n return `/partners/${provider}/readings`\n}\n\n/**\n * The partner's own \"continue reading\" list, joined back to our catalogue.\n *\n * Entries the partner knows and our catalogue does not are dropped rather than\n * surfaced with a null id: the import runs nightly and the partner's list is\n * live, so a title added today is genuinely not browsable here yet, and a card\n * that cannot be opened is worse than one that is absent.\n * @summary List Current Readings\n */\nexport const listCurrentReadings = async (provider: PartnerProvider, options?: Parameters<typeof request>[1]): Promise<CurrentReadingListRead> => {\n\n return request<CurrentReadingListRead>(getListCurrentReadingsUrl(provider),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\nexport const getReadNativeAuthUrl = (provider: PartnerProvider,) => {\n\n\n\n\n return `/partners/${provider}/user/auth`\n}\n\n/**\n * YouScribe native SDK credentials for the selected, authorized profile.\n *\n * Equivalent to the legacy YouScribe user/auth endpoint. This does not create\n * a licence or a consumption event. Open a title through its reader-auth POST\n * to obtain the lease used for consumption heartbeats. The token is personal:\n * never persist it, log it, or share it between profiles.\n * @summary Read Native Auth\n */\nexport const readNativeAuth = async (provider: PartnerProvider, options?: Parameters<typeof request>[1]): Promise<YouScribeAuthRead> => {\n\n return request<YouScribeAuthRead>(getReadNativeAuthUrl(provider),\n {\n ...options,\n method: 'GET'\n\n\n }\n);}\n\n\n"],"mappings":";;;AAoBA,MAAa,qBAAqB,UAC9B,SACA,WAAgC;CAClC,MAAM,mBAAmB,IAAI,gBAAgB;CAE7C,OAAO,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAErD,IAAI,UAAU,KAAA,GACZ,iBAAiB,OAAO,KAAK,UAAU,OAAO,SAAS,OAAO,KAAK,CAAC;CAExE,CAAC;CAED,MAAM,oBAAoB,iBAAiB,SAAS;CAEpD,OAAO,kBAAkB,SAAS,IAAI,aAAa,SAAS,SAAS,QAAQ,WAAW,sBAAsB,aAAa,SAAS,SAAS,QAAQ;AACvJ;;;;;;;;;;;;;;;;;;AAmBA,MAAa,cAAc,OAAO,UAC9B,SACA,QAA4B,YAAwE;CAEtG,OAAO,QAA2B,kBAAkB,UAAS,SAAQ,MAAM,GAC3E;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,sBAAsB,UAC/B,YAAqB;CAKvB,OAAO,aAAa,SAAS,SAAS,QAAQ;AAChD;;;;;;;;;AAUA,MAAa,eAAe,OAAO,UAC/B,SAAiB,YAA0E;CAE7F,OAAO,QAA6B,mBAAmB,UAAS,OAAO,GACvE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,uBAAuB,UAChC,YAAqB;CAKvB,OAAO,aAAa,SAAS,SAAS,QAAQ;AAChD;;;;;;;;;;;;;;;;AAiBA,MAAa,gBAAgB,OAAO,UAChC,SACA,sBAA4C,YAA0E;CAEtH,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,QAA6B,oBAAoB,UAAS,OAAO,GACtE;EACE,GAAG;EACH,QAAQ;EACR,SAAS;GAAE,gBAAgB;GAAoB,GAAG,WAAW,SAAS,OAAO;EAAE;EAC/E,MAAM,KAAK,UAAU,oBAAoB;CAC3C,CACF;AAAE;AAGF,MAAa,0BAA0B,UACnC,YAAqB;CAKvB,OAAO,aAAa,SAAS,SAAS,QAAQ;AAChD;;;;;;;;;AAUA,MAAa,mBAAmB,OAAO,UACnC,SAAiB,YAA0E;CAE7F,OAAO,QAA6B,uBAAuB,UAAS,OAAO,GAC3E;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,6BAA6B,aAA+B;CAKvE,OAAO,aAAa,SAAS;AAC/B;;;;;;;;;;AAWA,MAAa,sBAAsB,OAAO,UAA2B,YAA6E;CAEhJ,OAAO,QAAgC,0BAA0B,QAAQ,GACzE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAGF,MAAa,wBAAwB,aAA+B;CAKlE,OAAO,aAAa,SAAS;AAC/B;;;;;;;;;;AAWA,MAAa,iBAAiB,OAAO,UAA2B,YAAwE;CAEtI,OAAO,QAA2B,qBAAqB,QAAQ,GAC/D;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE"}
@@ -1,64 +1,117 @@
1
1
 
2
- import { Dt as ProfileCreateWrite, Et as ProfileRead, Tt as ProfileListRead, wt as ProfileUpdateWrite } from "../chunks/index.js";
2
+ import { At as ProfileUpdateWrite, Fr as IndependentInvitationWrite, Ft as ProfileRead, Mt as ProfileSessionRead, Pn as OpenChildProfileWrite, Pt as ProfileListRead, Rt as ProfileCreateWrite, _i as GuardianPinWrite, ci as HouseholdGuardianListRead, ii as HouseholdInvitationRead, ji as ExitChildProfileWrite, ni as HouseholdInvitationWrite, oi as HouseholdInvitationAcceptWrite, ri as HouseholdInvitationListRead, si as HouseholdGuardianWrite, vi as GuardianPinResetWrite, yi as GuardianPinResetRead } from "../chunks/index.js";
3
3
  import { c as request } from "../chunks/client.js";
4
4
  //#region src/api/profiles/profiles.d.ts
5
+ export declare const getSetPinUrl: () => string;
6
+ /**
7
+ * @summary Set Pin
8
+ */
9
+ export declare const setPin: (guardianPinWrite: GuardianPinWrite, options?: Parameters<typeof request>[1]) => Promise<void>;
10
+ export declare const getRequestResetUrl: () => string;
11
+ /**
12
+ * @summary Request Reset
13
+ */
14
+ export declare const requestReset: (options?: Parameters<typeof request>[1]) => Promise<GuardianPinResetRead>;
15
+ export declare const getConfirmResetUrl: () => string;
16
+ /**
17
+ * @summary Confirm Reset
18
+ */
19
+ export declare const confirmReset: (guardianPinResetWrite: GuardianPinResetWrite, options?: Parameters<typeof request>[1]) => Promise<void>;
20
+ export declare const getProfileSessionUrl: () => string;
21
+ /**
22
+ * @summary Profile Session
23
+ */
24
+ export declare const profileSession: (options?: Parameters<typeof request>[1]) => Promise<ProfileSessionRead>;
25
+ export declare const getOpenChildUrl: () => string;
26
+ /**
27
+ * @summary Open Child
28
+ */
29
+ export declare const openChild: (openChildProfileWrite: OpenChildProfileWrite, options?: Parameters<typeof request>[1]) => Promise<ProfileSessionRead>;
30
+ export declare const getExitChildUrl: () => string;
31
+ /**
32
+ * @summary Exit Child
33
+ */
34
+ export declare const exitChild: (exitChildProfileWrite: ExitChildProfileWrite, options?: Parameters<typeof request>[1]) => Promise<ProfileSessionRead>;
5
35
  export declare const getListProfilesUrl: () => string;
6
36
  /**
7
- * Every profile on this account, the holder included (E20).
37
+ * Holder sees household cards; another adult sees self and supervised children.
8
38
  *
9
- * Unpaginated: the cap is :data:`PROFILE_LIMIT`, so there is no page to turn.
10
- * One endpoint replaces two legacy routes that rendered the same collection
11
- * differently — the difference was presentation, which is the client's problem.
39
+ * Cards never grant the right to open another adult's profile. Expired pending
40
+ * invitations remain manageable but no longer reserve capacity.
12
41
  * @summary List Profiles
13
42
  */
14
43
  export declare const listProfiles: (options?: Parameters<typeof request>[1]) => Promise<ProfileListRead>;
15
44
  export declare const getCreateProfileUrl: () => string;
16
45
  /**
17
- * Add a profile to this account (E21).
18
- *
19
- * The new row inherits ``tenant_id`` from the holder rather than accepting one:
20
- * a profile belongs to the same company as the account it hangs off, and
21
- * letting that be supplied would be a way into another tenant.
22
- *
23
- * A profile has no credential of its own. It has no ``login``, no ``email`` and
24
- * no password — it is reached by switching within an authenticated session, so
25
- * there is nothing for it to authenticate *with*.
26
46
  * @summary Create Profile
27
47
  */
28
48
  export declare const createProfile: (profileCreateWrite: ProfileCreateWrite, options?: Parameters<typeof request>[1]) => Promise<ProfileRead>;
49
+ export declare const getGuardianCandidatesUrl: () => string;
50
+ /**
51
+ * @summary Guardian Candidates
52
+ */
53
+ export declare const guardianCandidates: (options?: Parameters<typeof request>[1]) => Promise<HouseholdGuardianListRead>;
54
+ export declare const getListInvitationsUrl: () => string;
55
+ /**
56
+ * @summary List Invitations
57
+ */
58
+ export declare const listInvitations: (options?: Parameters<typeof request>[1]) => Promise<HouseholdInvitationListRead>;
59
+ export declare const getInviteAdultUrl: () => string;
60
+ /**
61
+ * @summary Invite Adult
62
+ */
63
+ export declare const inviteAdult: (householdInvitationWrite: HouseholdInvitationWrite, options?: Parameters<typeof request>[1]) => Promise<HouseholdInvitationRead>;
64
+ export declare const getAcceptInvitationUrl: () => string;
65
+ /**
66
+ * Requires a verified login email; never creates an unrelated root account.
67
+ * @summary Accept Invitation
68
+ */
69
+ export declare const acceptInvitation: (householdInvitationAcceptWrite: HouseholdInvitationAcceptWrite, options?: Parameters<typeof request>[1]) => Promise<ProfileRead>;
70
+ export declare const getRevokeInvitationUrl: (invitationId: number) => string;
71
+ /**
72
+ * @summary Revoke Invitation
73
+ */
74
+ export declare const revokeInvitation: (invitationId: number, options?: Parameters<typeof request>[1]) => Promise<void>;
75
+ export declare const getResendInvitationUrl: (invitationId: number) => string;
76
+ /**
77
+ * @summary Resend Invitation
78
+ */
79
+ export declare const resendInvitation: (invitationId: number, options?: Parameters<typeof request>[1]) => Promise<HouseholdInvitationRead>;
29
80
  export declare const getDeleteProfileUrl: (profileId: number) => string;
30
81
  /**
31
- * Remove a profile (E24). Idempotent.
32
- *
33
- * Deleting a profile that is already gone is ``204``, not ``404``: the caller
34
- * asked for it to be absent and it is absent. A retried delete after a timeout
35
- * must not read as a failure.
36
- *
37
- * The account holder cannot be deleted this way — that is E17, which anonymises
38
- * the whole account and is a different decision with different consequences.
82
+ * Deactivate membership without discarding profile history or its ancestry.
39
83
  * @summary Delete Profile
40
84
  */
41
85
  export declare const deleteProfile: (profileId: number, options?: Parameters<typeof request>[1]) => Promise<void>;
42
86
  export declare const getReadProfileUrl: (profileId: number) => string;
43
87
  /**
44
- * One profile (E22). Returns the resource; the legacy rendered an edit form.
45
88
  * @summary Read Profile
46
89
  */
47
90
  export declare const readProfile: (profileId: number, options?: Parameters<typeof request>[1]) => Promise<ProfileRead>;
48
91
  export declare const getUpdateProfileUrl: (profileId: number) => string;
49
92
  /**
50
- * Partially update a profile (E23).
51
- *
52
- * The target comes from the path and the row is re-read from the database
53
- * before anything is written, so nothing in the body can retarget the write.
54
- * That is the one habit worth keeping from the legacy handler, which overwrote
55
- * the identity fields from the trusted record for exactly this reason.
56
- *
57
- * ``exclude_unset`` is what makes this a PATCH rather than a PUT wearing the
58
- * wrong verb: a field the client did not send is untouched, which is not the
59
- * same as a field it sent as null.
60
93
  * @summary Update Profile
61
94
  */
62
95
  export declare const updateProfile: (profileId: number, profileUpdateWrite: ProfileUpdateWrite, options?: Parameters<typeof request>[1]) => Promise<ProfileRead>;
96
+ export declare const getListGuardiansUrl: (profileId: number) => string;
97
+ /**
98
+ * @summary List Guardians
99
+ */
100
+ export declare const listGuardians: (profileId: number, options?: Parameters<typeof request>[1]) => Promise<HouseholdGuardianListRead>;
101
+ export declare const getAddGuardianUrl: (profileId: number) => string;
102
+ /**
103
+ * @summary Add Guardian
104
+ */
105
+ export declare const addGuardian: (profileId: number, householdGuardianWrite: HouseholdGuardianWrite, options?: Parameters<typeof request>[1]) => Promise<HouseholdGuardianListRead>;
106
+ export declare const getRemoveGuardianUrl: (profileId: number, adultId: number) => string;
107
+ /**
108
+ * @summary Remove Guardian
109
+ */
110
+ export declare const removeGuardian: (profileId: number, adultId: number, options?: Parameters<typeof request>[1]) => Promise<void>;
111
+ export declare const getInviteIndependentMinorUrl: (profileId: number) => string;
112
+ /**
113
+ * @summary Invite Independent Minor
114
+ */
115
+ export declare const inviteIndependentMinor: (profileId: number, independentInvitationWrite: IndependentInvitationWrite, options?: Parameters<typeof request>[1]) => Promise<HouseholdInvitationRead>;
63
116
  //#endregion
64
117
  //# sourceMappingURL=profiles.d.ts.map