@learnorama/mozaik-sdk 0.8.2-staging.31.1 → 0.9.0-staging.35.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 (202) hide show
  1. package/dist/api/account.d.ts +27 -28
  2. package/dist/api/account.js +41 -28
  3. package/dist/api/account.js.map +1 -1
  4. package/dist/api/admin-catalogue.d.ts +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 +23 -1
  9. package/dist/api/admin-desk.js +59 -1
  10. package/dist/api/admin-desk.js.map +1 -1
  11. package/dist/api/admin-licenses.d.ts +1 -1
  12. package/dist/api/admin-licenses.js.map +1 -1
  13. package/dist/api/admin-patrons.d.ts +1 -1
  14. package/dist/api/admin-patrons.js.map +1 -1
  15. package/dist/api/admin-reviews.d.ts +1 -1
  16. package/dist/api/admin-reviews.js.map +1 -1
  17. package/dist/api/admin-roles.d.ts +1 -1
  18. package/dist/api/admin-roles.js.map +1 -1
  19. package/dist/api/admin-support.d.ts +1 -1
  20. package/dist/api/admin-support.js.map +1 -1
  21. package/dist/api/admin-tenants.d.ts +1 -1
  22. package/dist/api/admin-tenants.js.map +1 -1
  23. package/dist/api/admin-tutoring.d.ts +1 -1
  24. package/dist/api/admin-tutoring.js.map +1 -1
  25. package/dist/api/auth.d.ts +11 -1
  26. package/dist/api/auth.js +31 -1
  27. package/dist/api/auth.js.map +1 -1
  28. package/dist/api/biblio-catalogue.d.ts +1 -1
  29. package/dist/api/biblio-catalogue.js.map +1 -1
  30. package/dist/api/biblio-home.d.ts +1 -1
  31. package/dist/api/biblio-home.js.map +1 -1
  32. package/dist/api/biblio-library.d.ts +1 -1
  33. package/dist/api/biblio-library.js.map +1 -1
  34. package/dist/api/biblio-nextory.d.ts +1 -1
  35. package/dist/api/biblio-nextory.js.map +1 -1
  36. package/dist/api/biblio-press.d.ts +17 -1
  37. package/dist/api/biblio-press.js +49 -1
  38. package/dist/api/biblio-press.js.map +1 -1
  39. package/dist/api/biblio-search.d.ts +1 -1
  40. package/dist/api/biblio-search.js.map +1 -1
  41. package/dist/api/biblio-telemetry.d.ts +1 -1
  42. package/dist/api/biblio-telemetry.js.map +1 -1
  43. package/dist/api/consumption.d.ts +1 -1
  44. package/dist/api/consumption.js.map +1 -1
  45. package/dist/api/cvs-app.d.ts +1 -1
  46. package/dist/api/cvs-app.js.map +1 -1
  47. package/dist/api/cvs-documents.d.ts +1 -1
  48. package/dist/api/cvs-documents.js.map +1 -1
  49. package/dist/api/cvs-favorites.d.ts +1 -1
  50. package/dist/api/cvs-favorites.js.map +1 -1
  51. package/dist/api/cvs-ils.d.ts +1 -1
  52. package/dist/api/cvs-ils.js.map +1 -1
  53. package/dist/api/cvs-loans.d.ts +1 -1
  54. package/dist/api/cvs-loans.js.map +1 -1
  55. package/dist/api/cvs-payments.d.ts +1 -1
  56. package/dist/api/cvs-payments.js.map +1 -1
  57. package/dist/api/cvs-streaming.d.ts +1 -1
  58. package/dist/api/cvs-streaming.js.map +1 -1
  59. package/dist/api/index.d.ts +8 -8
  60. package/dist/api/index.js +8 -8
  61. package/dist/api/partner-catalogue.d.ts +20 -1
  62. package/dist/api/partner-catalogue.js +44 -1
  63. package/dist/api/partner-catalogue.js.map +1 -1
  64. package/dist/api/partner-reader.d.ts +34 -6
  65. package/dist/api/partner-reader.js +48 -6
  66. package/dist/api/partner-reader.js.map +1 -1
  67. package/dist/api/profiles.d.ts +86 -33
  68. package/dist/api/profiles.js +302 -33
  69. package/dist/api/profiles.js.map +1 -1
  70. package/dist/api/search.d.ts +1 -1
  71. package/dist/api/search.js.map +1 -1
  72. package/dist/api/tutoring-catalogue.d.ts +1 -1
  73. package/dist/api/tutoring-catalogue.js.map +1 -1
  74. package/dist/api/tutoring-chat.d.ts +1 -1
  75. package/dist/api/tutoring-chat.js.map +1 -1
  76. package/dist/api/tutoring-dispatch.d.ts +1 -1
  77. package/dist/api/tutoring-dispatch.js.map +1 -1
  78. package/dist/api/tutoring-practitioner.d.ts +1 -1
  79. package/dist/api/tutoring-practitioner.js.map +1 -1
  80. package/dist/api/tutoring-requests.d.ts +1 -1
  81. package/dist/api/tutoring-requests.js.map +1 -1
  82. package/dist/chunks/client2.d.ts +1 -1
  83. package/dist/chunks/connection.d.ts +1 -1
  84. package/dist/chunks/index.d.ts +1183 -347
  85. package/dist/index.d.ts +3 -3
  86. package/dist/index.js +3 -3
  87. package/dist/index.js.map +1 -1
  88. package/dist/models.d.ts +2 -2
  89. package/dist/models.js +95 -2
  90. package/dist/models.js.map +1 -1
  91. package/dist/react/account.d.ts +81 -28
  92. package/dist/react/account.js +90 -29
  93. package/dist/react/account.js.map +1 -1
  94. package/dist/react/admin-catalogue.d.ts +1 -1
  95. package/dist/react/admin-catalogue.js +1 -1
  96. package/dist/react/admin-catalogue.js.map +1 -1
  97. package/dist/react/admin-consumption.d.ts +1 -1
  98. package/dist/react/admin-consumption.js +1 -1
  99. package/dist/react/admin-consumption.js.map +1 -1
  100. package/dist/react/admin-desk.d.ts +104 -1
  101. package/dist/react/admin-desk.js +132 -2
  102. package/dist/react/admin-desk.js.map +1 -1
  103. package/dist/react/admin-licenses.d.ts +1 -1
  104. package/dist/react/admin-licenses.js +1 -1
  105. package/dist/react/admin-licenses.js.map +1 -1
  106. package/dist/react/admin-patrons.d.ts +1 -1
  107. package/dist/react/admin-patrons.js +1 -1
  108. package/dist/react/admin-patrons.js.map +1 -1
  109. package/dist/react/admin-reviews.d.ts +1 -1
  110. package/dist/react/admin-reviews.js +1 -1
  111. package/dist/react/admin-reviews.js.map +1 -1
  112. package/dist/react/admin-roles.d.ts +1 -1
  113. package/dist/react/admin-roles.js +1 -1
  114. package/dist/react/admin-roles.js.map +1 -1
  115. package/dist/react/admin-support.d.ts +1 -1
  116. package/dist/react/admin-support.js +1 -1
  117. package/dist/react/admin-support.js.map +1 -1
  118. package/dist/react/admin-tenants.d.ts +1 -1
  119. package/dist/react/admin-tenants.js +1 -1
  120. package/dist/react/admin-tenants.js.map +1 -1
  121. package/dist/react/admin-tutoring.d.ts +1 -1
  122. package/dist/react/admin-tutoring.js +1 -1
  123. package/dist/react/admin-tutoring.js.map +1 -1
  124. package/dist/react/auth.d.ts +29 -1
  125. package/dist/react/auth.js +60 -2
  126. package/dist/react/auth.js.map +1 -1
  127. package/dist/react/biblio-catalogue.d.ts +1 -1
  128. package/dist/react/biblio-catalogue.js +1 -1
  129. package/dist/react/biblio-catalogue.js.map +1 -1
  130. package/dist/react/biblio-home.d.ts +1 -1
  131. package/dist/react/biblio-home.js +1 -1
  132. package/dist/react/biblio-home.js.map +1 -1
  133. package/dist/react/biblio-library.d.ts +1 -1
  134. package/dist/react/biblio-library.js +1 -1
  135. package/dist/react/biblio-library.js.map +1 -1
  136. package/dist/react/biblio-nextory.d.ts +1 -1
  137. package/dist/react/biblio-nextory.js +1 -1
  138. package/dist/react/biblio-nextory.js.map +1 -1
  139. package/dist/react/biblio-press.d.ts +65 -3
  140. package/dist/react/biblio-press.js +104 -3
  141. package/dist/react/biblio-press.js.map +1 -1
  142. package/dist/react/biblio-search.d.ts +1 -1
  143. package/dist/react/biblio-search.js +1 -1
  144. package/dist/react/biblio-search.js.map +1 -1
  145. package/dist/react/biblio-telemetry.d.ts +1 -1
  146. package/dist/react/biblio-telemetry.js +1 -1
  147. package/dist/react/biblio-telemetry.js.map +1 -1
  148. package/dist/react/chat.d.ts +1 -1
  149. package/dist/react/consumption.d.ts +1 -1
  150. package/dist/react/consumption.js +1 -1
  151. package/dist/react/consumption.js.map +1 -1
  152. package/dist/react/cvs-app.d.ts +1 -1
  153. package/dist/react/cvs-app.js +1 -1
  154. package/dist/react/cvs-app.js.map +1 -1
  155. package/dist/react/cvs-documents.d.ts +1 -1
  156. package/dist/react/cvs-documents.js +1 -1
  157. package/dist/react/cvs-documents.js.map +1 -1
  158. package/dist/react/cvs-favorites.d.ts +1 -1
  159. package/dist/react/cvs-favorites.js +1 -1
  160. package/dist/react/cvs-favorites.js.map +1 -1
  161. package/dist/react/cvs-ils.d.ts +1 -1
  162. package/dist/react/cvs-ils.js +1 -1
  163. package/dist/react/cvs-ils.js.map +1 -1
  164. package/dist/react/cvs-loans.d.ts +1 -1
  165. package/dist/react/cvs-loans.js +1 -1
  166. package/dist/react/cvs-loans.js.map +1 -1
  167. package/dist/react/cvs-payments.d.ts +1 -1
  168. package/dist/react/cvs-payments.js +1 -1
  169. package/dist/react/cvs-payments.js.map +1 -1
  170. package/dist/react/cvs-streaming.d.ts +1 -1
  171. package/dist/react/cvs-streaming.js +1 -1
  172. package/dist/react/cvs-streaming.js.map +1 -1
  173. package/dist/react/index.d.ts +8 -8
  174. package/dist/react/index.js +8 -8
  175. package/dist/react/partner-catalogue.d.ts +74 -1
  176. package/dist/react/partner-catalogue.js +95 -2
  177. package/dist/react/partner-catalogue.js.map +1 -1
  178. package/dist/react/partner-reader.d.ts +79 -6
  179. package/dist/react/partner-reader.js +102 -7
  180. package/dist/react/partner-reader.js.map +1 -1
  181. package/dist/react/profiles.d.ts +406 -33
  182. package/dist/react/profiles.js +760 -59
  183. package/dist/react/profiles.js.map +1 -1
  184. package/dist/react/search.d.ts +1 -1
  185. package/dist/react/search.js +1 -1
  186. package/dist/react/search.js.map +1 -1
  187. package/dist/react/tutoring-catalogue.d.ts +1 -1
  188. package/dist/react/tutoring-catalogue.js +1 -1
  189. package/dist/react/tutoring-catalogue.js.map +1 -1
  190. package/dist/react/tutoring-chat.d.ts +1 -1
  191. package/dist/react/tutoring-chat.js +1 -1
  192. package/dist/react/tutoring-chat.js.map +1 -1
  193. package/dist/react/tutoring-dispatch.d.ts +1 -1
  194. package/dist/react/tutoring-dispatch.js +1 -1
  195. package/dist/react/tutoring-dispatch.js.map +1 -1
  196. package/dist/react/tutoring-practitioner.d.ts +1 -1
  197. package/dist/react/tutoring-practitioner.js +1 -1
  198. package/dist/react/tutoring-practitioner.js.map +1 -1
  199. package/dist/react/tutoring-requests.d.ts +1 -1
  200. package/dist/react/tutoring-requests.js +1 -1
  201. package/dist/react/tutoring-requests.js.map +1 -1
  202. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"partner-catalogue.js","names":[],"sources":["../../src/react/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.2\n */\nimport {\n useMutation,\n useQuery\n} from '@tanstack/react-query';\nimport type {\n DataTag,\n DefinedInitialDataOptions,\n DefinedUseQueryResult,\n MutationFunction,\n QueryClient,\n QueryFunction,\n QueryKey,\n UndefinedInitialDataOptions,\n UseMutationOptions,\n UseMutationResult,\n UseQueryOptions,\n UseQueryResult\n} from '@tanstack/react-query';\n\nimport type {\n HTTPExceptionResponse,\n ListMediaParams,\n PartnerCategoryListRead,\n PartnerFavoriteListRead,\n PartnerMediaPage,\n PartnerMediaRead,\n PartnerProvider,\n ValidationErrorResponse\n} from '../../models';\n\nimport { request } from '../../client';\nimport type { ErrorType } from '../../client';\n\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\n\n\nconst withQueryKey = <T extends object, K>(query: T, queryKey: K): T & { queryKey: K } => {\n const result = { queryKey } as T & { queryKey: K };\n for (const key of Object.keys(query)) {\n // The explicit queryKey always wins, matching the previous\n // `{ ...query, queryKey }` spread where it was set last.\n if (key === 'queryKey') continue;\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n get: () => (query as Record<string, unknown>)[key],\n });\n }\n return result;\n};\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\n\n\n\nexport const getListPartnerCategoriesQueryKey = (provider: PartnerProvider,) => {\n return [\n `/partners/${provider}/categories`\n ] as const;\n }\n\n\nexport const getListPartnerCategoriesQueryOptions = <TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getListPartnerCategoriesQueryKey(provider);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof listPartnerCategories>>> = ({ signal }) => listPartnerCategories(provider, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ListPartnerCategoriesQueryResult = NonNullable<Awaited<ReturnType<typeof listPartnerCategories>>>\nexport type ListPartnerCategoriesQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useListPartnerCategories<TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof listPartnerCategories>>,\n TError,\n Awaited<ReturnType<typeof listPartnerCategories>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListPartnerCategories<TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof listPartnerCategories>>,\n TError,\n Awaited<ReturnType<typeof listPartnerCategories>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListPartnerCategories<TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary List Partner Categories\n */\n\nexport function useListPartnerCategories<TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getListPartnerCategoriesQueryOptions(provider,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getListPartnerFavoritesQueryKey = (provider: PartnerProvider,) => {\n return [\n `/partners/${provider}/favorites`\n ] as const;\n }\n\n\nexport const getListPartnerFavoritesQueryOptions = <TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getListPartnerFavoritesQueryKey(provider);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof listPartnerFavorites>>> = ({ signal }) => listPartnerFavorites(provider, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ListPartnerFavoritesQueryResult = NonNullable<Awaited<ReturnType<typeof listPartnerFavorites>>>\nexport type ListPartnerFavoritesQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useListPartnerFavorites<TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof listPartnerFavorites>>,\n TError,\n Awaited<ReturnType<typeof listPartnerFavorites>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListPartnerFavorites<TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof listPartnerFavorites>>,\n TError,\n Awaited<ReturnType<typeof listPartnerFavorites>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListPartnerFavorites<TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary List Partner Favorites\n */\n\nexport function useListPartnerFavorites<TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getListPartnerFavoritesQueryOptions(provider,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getRemovePartnerFavoriteMutationKey = () => ['removePartnerFavorite'] as const;\n\nexport const getRemovePartnerFavoriteMutationOptions = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof removePartnerFavorite>>, TError,RemovePartnerFavoriteMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n): UseMutationOptions<Awaited<ReturnType<typeof removePartnerFavorite>>, TError,RemovePartnerFavoriteMutationVariables, TContext> => {\n\nconst mutationKey = getRemovePartnerFavoriteMutationKey();\nconst {mutation: mutationOptions, request: requestOptions} = options ?\n options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?\n options\n : {...options, mutation: {...options.mutation, mutationKey}}\n : {mutation: { mutationKey, }, request: undefined};\n\n\n\n\n const mutationFn: MutationFunction<Awaited<ReturnType<typeof removePartnerFavorite>>, RemovePartnerFavoriteMutationVariables> = (props) => {\n const {provider,mediaId} = props ?? {};\n\n return removePartnerFavorite(provider,mediaId,requestOptions)\n }\n\n\n\n\n\n\n return { mutationFn, ...mutationOptions }}\n\n export type RemovePartnerFavoriteMutationResult = NonNullable<Awaited<ReturnType<typeof removePartnerFavorite>>>\n\n export type RemovePartnerFavoriteMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n export type RemovePartnerFavoriteMutationVariables = {provider: PartnerProvider;mediaId: number}\n\n /**\n * @summary Remove Partner Favorite\n */\nexport const useRemovePartnerFavorite = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof removePartnerFavorite>>, TError,RemovePartnerFavoriteMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient): UseMutationResult<\n Awaited<ReturnType<typeof removePartnerFavorite>>,\n TError,\n RemovePartnerFavoriteMutationVariables,\n TContext\n > => {\n return useMutation(getRemovePartnerFavoriteMutationOptions(options), queryClient);\n }\n export 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\n\n\n\nexport const getAddPartnerFavoriteMutationKey = () => ['addPartnerFavorite'] as const;\n\nexport const getAddPartnerFavoriteMutationOptions = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addPartnerFavorite>>, TError,AddPartnerFavoriteMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n): UseMutationOptions<Awaited<ReturnType<typeof addPartnerFavorite>>, TError,AddPartnerFavoriteMutationVariables, TContext> => {\n\nconst mutationKey = getAddPartnerFavoriteMutationKey();\nconst {mutation: mutationOptions, request: requestOptions} = options ?\n options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?\n options\n : {...options, mutation: {...options.mutation, mutationKey}}\n : {mutation: { mutationKey, }, request: undefined};\n\n\n\n\n const mutationFn: MutationFunction<Awaited<ReturnType<typeof addPartnerFavorite>>, AddPartnerFavoriteMutationVariables> = (props) => {\n const {provider,mediaId} = props ?? {};\n\n return addPartnerFavorite(provider,mediaId,requestOptions)\n }\n\n\n\n\n\n\n return { mutationFn, ...mutationOptions }}\n\n export type AddPartnerFavoriteMutationResult = NonNullable<Awaited<ReturnType<typeof addPartnerFavorite>>>\n\n export type AddPartnerFavoriteMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n export type AddPartnerFavoriteMutationVariables = {provider: PartnerProvider;mediaId: number}\n\n /**\n * @summary Add Partner Favorite\n */\nexport const useAddPartnerFavorite = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addPartnerFavorite>>, TError,AddPartnerFavoriteMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient): UseMutationResult<\n Awaited<ReturnType<typeof addPartnerFavorite>>,\n TError,\n AddPartnerFavoriteMutationVariables,\n TContext\n > => {\n return useMutation(getAddPartnerFavoriteMutationOptions(options), queryClient);\n }\n export 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\n\n\n\nexport const getListMediaQueryKey = (provider: PartnerProvider,\n params?: ListMediaParams,) => {\n return [\n `/partners/${provider}/media`, ...(params ? [params] : [])\n ] as const;\n }\n\n\nexport const getListMediaQueryOptions = <TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n params?: ListMediaParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getListMediaQueryKey(provider,params);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof listMedia>>> = ({ signal }) => listMedia(provider,params, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ListMediaQueryResult = NonNullable<Awaited<ReturnType<typeof listMedia>>>\nexport type ListMediaQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useListMedia<TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params: undefined | ListMediaParams, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof listMedia>>,\n TError,\n Awaited<ReturnType<typeof listMedia>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListMedia<TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ListMediaParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof listMedia>>,\n TError,\n Awaited<ReturnType<typeof listMedia>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListMedia<TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ListMediaParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary List Media\n */\n\nexport function useListMedia<TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ListMediaParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getListMediaQueryOptions(provider,params,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\nexport const getReadMediaQueryKey = (provider: PartnerProvider,\n mediaId: number,) => {\n return [\n `/partners/${provider}/media/${mediaId}`\n ] as const;\n }\n\n\nexport const getReadMediaQueryOptions = <TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadMediaQueryKey(provider,mediaId);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readMedia>>> = ({ signal }) => readMedia(provider,mediaId, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined && mediaId !== null && mediaId !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadMediaQueryResult = NonNullable<Awaited<ReturnType<typeof readMedia>>>\nexport type ReadMediaQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadMedia<TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readMedia>>,\n TError,\n Awaited<ReturnType<typeof readMedia>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadMedia<TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readMedia>>,\n TError,\n Awaited<ReturnType<typeof readMedia>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadMedia<TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Media\n */\n\nexport function useReadMedia<TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadMediaQueryOptions(provider,mediaId,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\n\n\n\n\n\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"partner-catalogue.js","names":[],"sources":["../../src/react/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.0\n */\nimport {\n useMutation,\n useQuery\n} from '@tanstack/react-query';\nimport type {\n DataTag,\n DefinedInitialDataOptions,\n DefinedUseQueryResult,\n MutationFunction,\n QueryClient,\n QueryFunction,\n QueryKey,\n UndefinedInitialDataOptions,\n UseMutationOptions,\n UseMutationResult,\n UseQueryOptions,\n UseQueryResult\n} from '@tanstack/react-query';\n\nimport type {\n HTTPExceptionResponse,\n ListMediaParams,\n PartnerCategoryListRead,\n PartnerFacetsRead,\n PartnerFavoriteListRead,\n PartnerHomeRead,\n PartnerMediaPage,\n PartnerMediaRead,\n PartnerProvider,\n ReadPartnerFacetsParams,\n ReadPartnerHomeParams,\n ValidationErrorResponse\n} from '../../models';\n\nimport { request } from '../../client';\nimport type { ErrorType } from '../../client';\n\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\n\n\nconst withQueryKey = <T extends object, K>(query: T, queryKey: K): T & { queryKey: K } => {\n const result = { queryKey } as T & { queryKey: K };\n for (const key of Object.keys(query)) {\n // The explicit queryKey always wins, matching the previous\n // `{ ...query, queryKey }` spread where it was set last.\n if (key === 'queryKey') continue;\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n get: () => (query as Record<string, unknown>)[key],\n });\n }\n return result;\n};\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\n\n\n\nexport const getListPartnerCategoriesQueryKey = (provider: PartnerProvider,) => {\n return [\n `/partners/${provider}/categories`\n ] as const;\n }\n\n\nexport const getListPartnerCategoriesQueryOptions = <TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getListPartnerCategoriesQueryKey(provider);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof listPartnerCategories>>> = ({ signal }) => listPartnerCategories(provider, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ListPartnerCategoriesQueryResult = NonNullable<Awaited<ReturnType<typeof listPartnerCategories>>>\nexport type ListPartnerCategoriesQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useListPartnerCategories<TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof listPartnerCategories>>,\n TError,\n Awaited<ReturnType<typeof listPartnerCategories>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListPartnerCategories<TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof listPartnerCategories>>,\n TError,\n Awaited<ReturnType<typeof listPartnerCategories>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListPartnerCategories<TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary List Partner Categories\n */\n\nexport function useListPartnerCategories<TData = Awaited<ReturnType<typeof listPartnerCategories>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerCategories>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getListPartnerCategoriesQueryOptions(provider,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getReadPartnerFacetsQueryKey = (provider: PartnerProvider,\n params?: ReadPartnerFacetsParams,) => {\n return [\n `/partners/${provider}/facets`, ...(params ? [params] : [])\n ] as const;\n }\n\n\nexport const getReadPartnerFacetsQueryOptions = <TData = Awaited<ReturnType<typeof readPartnerFacets>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n params?: ReadPartnerFacetsParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerFacets>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadPartnerFacetsQueryKey(provider,params);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readPartnerFacets>>> = ({ signal }) => readPartnerFacets(provider,params, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readPartnerFacets>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadPartnerFacetsQueryResult = NonNullable<Awaited<ReturnType<typeof readPartnerFacets>>>\nexport type ReadPartnerFacetsQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadPartnerFacets<TData = Awaited<ReturnType<typeof readPartnerFacets>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params: undefined | ReadPartnerFacetsParams, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerFacets>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPartnerFacets>>,\n TError,\n Awaited<ReturnType<typeof readPartnerFacets>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPartnerFacets<TData = Awaited<ReturnType<typeof readPartnerFacets>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ReadPartnerFacetsParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerFacets>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPartnerFacets>>,\n TError,\n Awaited<ReturnType<typeof readPartnerFacets>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPartnerFacets<TData = Awaited<ReturnType<typeof readPartnerFacets>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ReadPartnerFacetsParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerFacets>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Partner Facets\n */\n\nexport function useReadPartnerFacets<TData = Awaited<ReturnType<typeof readPartnerFacets>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ReadPartnerFacetsParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerFacets>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadPartnerFacetsQueryOptions(provider,params,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getListPartnerFavoritesQueryKey = (provider: PartnerProvider,) => {\n return [\n `/partners/${provider}/favorites`\n ] as const;\n }\n\n\nexport const getListPartnerFavoritesQueryOptions = <TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getListPartnerFavoritesQueryKey(provider);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof listPartnerFavorites>>> = ({ signal }) => listPartnerFavorites(provider, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ListPartnerFavoritesQueryResult = NonNullable<Awaited<ReturnType<typeof listPartnerFavorites>>>\nexport type ListPartnerFavoritesQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useListPartnerFavorites<TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof listPartnerFavorites>>,\n TError,\n Awaited<ReturnType<typeof listPartnerFavorites>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListPartnerFavorites<TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof listPartnerFavorites>>,\n TError,\n Awaited<ReturnType<typeof listPartnerFavorites>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListPartnerFavorites<TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary List Partner Favorites\n */\n\nexport function useListPartnerFavorites<TData = Awaited<ReturnType<typeof listPartnerFavorites>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listPartnerFavorites>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getListPartnerFavoritesQueryOptions(provider,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getRemovePartnerFavoriteMutationKey = () => ['removePartnerFavorite'] as const;\n\nexport const getRemovePartnerFavoriteMutationOptions = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof removePartnerFavorite>>, TError,RemovePartnerFavoriteMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n): UseMutationOptions<Awaited<ReturnType<typeof removePartnerFavorite>>, TError,RemovePartnerFavoriteMutationVariables, TContext> => {\n\nconst mutationKey = getRemovePartnerFavoriteMutationKey();\nconst {mutation: mutationOptions, request: requestOptions} = options ?\n options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?\n options\n : {...options, mutation: {...options.mutation, mutationKey}}\n : {mutation: { mutationKey, }, request: undefined};\n\n\n\n\n const mutationFn: MutationFunction<Awaited<ReturnType<typeof removePartnerFavorite>>, RemovePartnerFavoriteMutationVariables> = (props) => {\n const {provider,mediaId} = props ?? {};\n\n return removePartnerFavorite(provider,mediaId,requestOptions)\n }\n\n\n\n\n\n\n return { mutationFn, ...mutationOptions }}\n\n export type RemovePartnerFavoriteMutationResult = NonNullable<Awaited<ReturnType<typeof removePartnerFavorite>>>\n\n export type RemovePartnerFavoriteMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n export type RemovePartnerFavoriteMutationVariables = {provider: PartnerProvider;mediaId: number}\n\n /**\n * @summary Remove Partner Favorite\n */\nexport const useRemovePartnerFavorite = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof removePartnerFavorite>>, TError,RemovePartnerFavoriteMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient): UseMutationResult<\n Awaited<ReturnType<typeof removePartnerFavorite>>,\n TError,\n RemovePartnerFavoriteMutationVariables,\n TContext\n > => {\n return useMutation(getRemovePartnerFavoriteMutationOptions(options), queryClient);\n }\n export 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\n\n\n\nexport const getAddPartnerFavoriteMutationKey = () => ['addPartnerFavorite'] as const;\n\nexport const getAddPartnerFavoriteMutationOptions = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addPartnerFavorite>>, TError,AddPartnerFavoriteMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n): UseMutationOptions<Awaited<ReturnType<typeof addPartnerFavorite>>, TError,AddPartnerFavoriteMutationVariables, TContext> => {\n\nconst mutationKey = getAddPartnerFavoriteMutationKey();\nconst {mutation: mutationOptions, request: requestOptions} = options ?\n options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?\n options\n : {...options, mutation: {...options.mutation, mutationKey}}\n : {mutation: { mutationKey, }, request: undefined};\n\n\n\n\n const mutationFn: MutationFunction<Awaited<ReturnType<typeof addPartnerFavorite>>, AddPartnerFavoriteMutationVariables> = (props) => {\n const {provider,mediaId} = props ?? {};\n\n return addPartnerFavorite(provider,mediaId,requestOptions)\n }\n\n\n\n\n\n\n return { mutationFn, ...mutationOptions }}\n\n export type AddPartnerFavoriteMutationResult = NonNullable<Awaited<ReturnType<typeof addPartnerFavorite>>>\n\n export type AddPartnerFavoriteMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n export type AddPartnerFavoriteMutationVariables = {provider: PartnerProvider;mediaId: number}\n\n /**\n * @summary Add Partner Favorite\n */\nexport const useAddPartnerFavorite = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof addPartnerFavorite>>, TError,AddPartnerFavoriteMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient): UseMutationResult<\n Awaited<ReturnType<typeof addPartnerFavorite>>,\n TError,\n AddPartnerFavoriteMutationVariables,\n TContext\n > => {\n return useMutation(getAddPartnerFavoriteMutationOptions(options), queryClient);\n }\n export 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\n\n\n\nexport const getReadPartnerHomeQueryKey = (provider: PartnerProvider,\n params?: ReadPartnerHomeParams,) => {\n return [\n `/partners/${provider}/home-feed`, ...(params ? [params] : [])\n ] as const;\n }\n\n\nexport const getReadPartnerHomeQueryOptions = <TData = Awaited<ReturnType<typeof readPartnerHome>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n params?: ReadPartnerHomeParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerHome>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadPartnerHomeQueryKey(provider,params);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readPartnerHome>>> = ({ signal }) => readPartnerHome(provider,params, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readPartnerHome>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadPartnerHomeQueryResult = NonNullable<Awaited<ReturnType<typeof readPartnerHome>>>\nexport type ReadPartnerHomeQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadPartnerHome<TData = Awaited<ReturnType<typeof readPartnerHome>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params: undefined | ReadPartnerHomeParams, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerHome>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPartnerHome>>,\n TError,\n Awaited<ReturnType<typeof readPartnerHome>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPartnerHome<TData = Awaited<ReturnType<typeof readPartnerHome>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ReadPartnerHomeParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerHome>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPartnerHome>>,\n TError,\n Awaited<ReturnType<typeof readPartnerHome>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPartnerHome<TData = Awaited<ReturnType<typeof readPartnerHome>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ReadPartnerHomeParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerHome>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Partner Home\n */\n\nexport function useReadPartnerHome<TData = Awaited<ReturnType<typeof readPartnerHome>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ReadPartnerHomeParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPartnerHome>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadPartnerHomeQueryOptions(provider,params,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getListMediaQueryKey = (provider: PartnerProvider,\n params?: ListMediaParams,) => {\n return [\n `/partners/${provider}/media`, ...(params ? [params] : [])\n ] as const;\n }\n\n\nexport const getListMediaQueryOptions = <TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n params?: ListMediaParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getListMediaQueryKey(provider,params);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof listMedia>>> = ({ signal }) => listMedia(provider,params, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ListMediaQueryResult = NonNullable<Awaited<ReturnType<typeof listMedia>>>\nexport type ListMediaQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useListMedia<TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params: undefined | ListMediaParams, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof listMedia>>,\n TError,\n Awaited<ReturnType<typeof listMedia>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListMedia<TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ListMediaParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof listMedia>>,\n TError,\n Awaited<ReturnType<typeof listMedia>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListMedia<TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ListMediaParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary List Media\n */\n\nexport function useListMedia<TData = Awaited<ReturnType<typeof listMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n params?: ListMediaParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getListMediaQueryOptions(provider,params,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\nexport const getReadMediaQueryKey = (provider: PartnerProvider,\n mediaId: number,) => {\n return [\n `/partners/${provider}/media/${mediaId}`\n ] as const;\n }\n\n\nexport const getReadMediaQueryOptions = <TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadMediaQueryKey(provider,mediaId);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readMedia>>> = ({ signal }) => readMedia(provider,mediaId, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined && mediaId !== null && mediaId !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadMediaQueryResult = NonNullable<Awaited<ReturnType<typeof readMedia>>>\nexport type ReadMediaQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadMedia<TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readMedia>>,\n TError,\n Awaited<ReturnType<typeof readMedia>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadMedia<TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readMedia>>,\n TError,\n Awaited<ReturnType<typeof readMedia>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadMedia<TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Media\n */\n\nexport function useReadMedia<TData = Awaited<ReturnType<typeof readMedia>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readMedia>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadMediaQueryOptions(provider,mediaId,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\n\n\n\n\n\n\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
 
2
- import { Dr as HTTPExceptionResponse, Zi as PartnerProvider, cs as CurrentReadingListRead, dt as ReadPackageParams, gt as ReadingPositionRead, mt as ReadingPositionWrite, t as ValidationErrorResponse, yt as ReaderPackageRead } from "../chunks/index.js";
2
+ import { $r as HTTPExceptionResponse, fc as CurrentReadingListRead, ht as ReadPackageParams, n as YouScribeAuthRead, no as PartnerProvider, r as ValidationErrorResponse, t as YouScribeReaderRead, wt as ReaderPackageRead, xt as ReadingPositionRead, yt as ReadingPositionWrite } from "../chunks/index.js";
3
3
  import { a as ErrorType, c as request, n as BodyType } from "../chunks/client.js";
4
4
  import { DataTag, DefinedInitialDataOptions, DefinedUseQueryResult, QueryClient, QueryKey, UndefinedInitialDataOptions, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
5
5
  //#region src/react/partner-reader/partner-reader.d.ts
@@ -52,7 +52,7 @@ export declare function useReadPackage<TData = Awaited<ReturnType<typeof readPac
52
52
  };
53
53
  export declare const getReadPositionUrl: (provider: PartnerProvider, mediaId: number) => string;
54
54
  /**
55
- * Where this reader last was, according to the partner.
55
+ * The last synchronized local position, or the partner's when none is saved.
56
56
  *
57
57
  * ``404`` when the partner holds no position — a book never opened has no
58
58
  * place to return to, and reporting zero would make a client jump a reader who
@@ -89,11 +89,18 @@ export declare function useReadPosition<TData = Awaited<ReturnType<typeof readPo
89
89
  };
90
90
  export declare const getWritePositionUrl: (provider: PartnerProvider, mediaId: number) => string;
91
91
  /**
92
- * Record progress, and report the partner's own metering alongside it.
92
+ * Synchronize and save progress, with the partner's metering alongside it.
93
93
  *
94
- * ``usage_blocks`` is forwarded first when present, because the legacy did and
95
- * the partner treats the two as one act: metering after a position update
96
- * records consumption against a page the reader has already left.
94
+ * ``usage_blocks`` is forwarded before a new position, matching the legacy's
95
+ * call order. The two reports are independent: an older position may carry
96
+ * usage the partner has not received yet.
97
+ *
98
+ * Only a strictly newer ``reachedAt`` replaces the saved position. Stale or
99
+ * duplicate writes return that saved position without updating it upstream.
100
+ * Provided usage blocks are still forwarded, including on retries; the
101
+ * partner's deduplication contract is unknown. Conflicting positions at the
102
+ * same instant return 409 before any outbound write.
103
+ * Progress is a resume point, not a measurement of time spent reading.
97
104
  * @summary Write Position
98
105
  */
99
106
  export declare const writePosition: (provider: PartnerProvider, mediaId: number, readingPositionWrite: ReadingPositionWrite, options?: Parameters<typeof request>[1]) => Promise<ReadingPositionRead>;
@@ -117,6 +124,34 @@ export declare const useWritePosition: <TError = ErrorType<HTTPExceptionResponse
117
124
  mutation?: UseMutationOptions<Awaited<ReturnType<typeof writePosition>>, TError, WritePositionMutationVariables, TContext>;
118
125
  request?: SecondParameter<typeof request>;
119
126
  }, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof writePosition>>, TError, WritePositionMutationVariables, TContext>;
127
+ export declare const getOpenNativeReaderUrl: (provider: PartnerProvider, mediaId: number) => string;
128
+ /**
129
+ * Authorize a YouScribe native title and open its consumption lease.
130
+ *
131
+ * Pass externalId and token to the YouScribe SDK. Mozaik requests keep using
132
+ * mediaId. Renew lease.eventId while the reader is open and close it when the
133
+ * reader exits; reopening the same title reuses its active lease.
134
+ * @summary Open Native Reader
135
+ */
136
+ export declare const openNativeReader: (provider: PartnerProvider, mediaId: number, options?: Parameters<typeof request>[1]) => Promise<YouScribeReaderRead>;
137
+ export declare const getOpenNativeReaderMutationKey: () => readonly ['openNativeReader'];
138
+ export declare const getOpenNativeReaderMutationOptions: <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>, TContext = unknown>(options?: {
139
+ mutation?: UseMutationOptions<Awaited<ReturnType<typeof openNativeReader>>, TError, OpenNativeReaderMutationVariables, TContext>;
140
+ request?: SecondParameter<typeof request>;
141
+ }) => UseMutationOptions<Awaited<ReturnType<typeof openNativeReader>>, TError, OpenNativeReaderMutationVariables, TContext>;
142
+ export type OpenNativeReaderMutationResult = NonNullable<Awaited<ReturnType<typeof openNativeReader>>>;
143
+ export type OpenNativeReaderMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>;
144
+ export type OpenNativeReaderMutationVariables = {
145
+ provider: PartnerProvider;
146
+ mediaId: number;
147
+ };
148
+ /**
149
+ * @summary Open Native Reader
150
+ */
151
+ export declare const useOpenNativeReader: <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>, TContext = unknown>(options?: {
152
+ mutation?: UseMutationOptions<Awaited<ReturnType<typeof openNativeReader>>, TError, OpenNativeReaderMutationVariables, TContext>;
153
+ request?: SecondParameter<typeof request>;
154
+ }, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof openNativeReader>>, TError, OpenNativeReaderMutationVariables, TContext>;
120
155
  export declare const getListCurrentReadingsUrl: (provider: PartnerProvider) => string;
121
156
  /**
122
157
  * The partner's own "continue reading" list, joined back to our catalogue.
@@ -155,5 +190,43 @@ export declare function useListCurrentReadings<TData = Awaited<ReturnType<typeof
155
190
  }, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
156
191
  queryKey: DataTag<QueryKey, TData, TError>;
157
192
  };
193
+ export declare const getReadNativeAuthUrl: (provider: PartnerProvider) => string;
194
+ /**
195
+ * YouScribe native SDK credentials for the selected, authorized profile.
196
+ *
197
+ * Equivalent to the legacy YouScribe user/auth endpoint. This does not create
198
+ * a licence or a consumption event. Open a title through its reader-auth POST
199
+ * to obtain the lease used for consumption heartbeats. The token is personal:
200
+ * never persist it, log it, or share it between profiles.
201
+ * @summary Read Native Auth
202
+ */
203
+ export declare const readNativeAuth: (provider: PartnerProvider, options?: Parameters<typeof request>[1]) => Promise<YouScribeAuthRead>;
204
+ export declare const getReadNativeAuthQueryKey: (provider: PartnerProvider) => readonly ["/partners/nextory/user/auth" | "/partners/youscribe/user/auth"];
205
+ export declare const getReadNativeAuthQueryOptions: <TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: {
206
+ query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>>;
207
+ request?: SecondParameter<typeof request>;
208
+ }) => UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData> & {
209
+ queryKey: DataTag<QueryKey, TData, TError>;
210
+ };
211
+ export type ReadNativeAuthQueryResult = NonNullable<Awaited<ReturnType<typeof readNativeAuth>>>;
212
+ export type ReadNativeAuthQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>;
213
+ export declare function useReadNativeAuth<TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options: {
214
+ query: Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>> & Pick<DefinedInitialDataOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, Awaited<ReturnType<typeof readNativeAuth>>>, 'initialData'>;
215
+ request?: SecondParameter<typeof request>;
216
+ }, queryClient?: QueryClient): DefinedUseQueryResult<TData, TError> & {
217
+ queryKey: DataTag<QueryKey, TData, TError>;
218
+ };
219
+ export declare function useReadNativeAuth<TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: {
220
+ query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>> & Pick<UndefinedInitialDataOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, Awaited<ReturnType<typeof readNativeAuth>>>, 'initialData'>;
221
+ request?: SecondParameter<typeof request>;
222
+ }, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
223
+ queryKey: DataTag<QueryKey, TData, TError>;
224
+ };
225
+ export declare function useReadNativeAuth<TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: {
226
+ query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>>;
227
+ request?: SecondParameter<typeof request>;
228
+ }, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
229
+ queryKey: DataTag<QueryKey, TData, TError>;
230
+ };
158
231
  //#endregion
159
232
  //# sourceMappingURL=partner-reader.d.ts.map
@@ -7,7 +7,7 @@ import { useMutation, useQuery } from "@tanstack/react-query";
7
7
  * Do not edit manually.
8
8
  * Mozaik backend
9
9
  * 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.
10
- * OpenAPI spec version: 0.8.2
10
+ * OpenAPI spec version: 0.9.0
11
11
  */
12
12
  const withQueryKey = (query, queryKey) => {
13
13
  const result = { queryKey };
@@ -81,7 +81,7 @@ const getReadPositionUrl = (provider, mediaId) => {
81
81
  return `/partners/${provider}/media/${mediaId}/position`;
82
82
  };
83
83
  /**
84
- * Where this reader last was, according to the partner.
84
+ * The last synchronized local position, or the partner's when none is saved.
85
85
  *
86
86
  * ``404`` when the partner holds no position — a book never opened has no
87
87
  * place to return to, and reporting zero would make a client jump a reader who
@@ -123,11 +123,18 @@ const getWritePositionUrl = (provider, mediaId) => {
123
123
  return `/partners/${provider}/media/${mediaId}/position`;
124
124
  };
125
125
  /**
126
- * Record progress, and report the partner's own metering alongside it.
126
+ * Synchronize and save progress, with the partner's metering alongside it.
127
127
  *
128
- * ``usage_blocks`` is forwarded first when present, because the legacy did and
129
- * the partner treats the two as one act: metering after a position update
130
- * records consumption against a page the reader has already left.
128
+ * ``usage_blocks`` is forwarded before a new position, matching the legacy's
129
+ * call order. The two reports are independent: an older position may carry
130
+ * usage the partner has not received yet.
131
+ *
132
+ * Only a strictly newer ``reachedAt`` replaces the saved position. Stale or
133
+ * duplicate writes return that saved position without updating it upstream.
134
+ * Provided usage blocks are still forwarded, including on retries; the
135
+ * partner's deduplication contract is unknown. Conflicting positions at the
136
+ * same instant return 409 before any outbound write.
137
+ * Progress is a resume point, not a measurement of time spent reading.
131
138
  * @summary Write Position
132
139
  */
133
140
  const writePosition = async (provider, mediaId, readingPositionWrite, options) => {
@@ -177,6 +184,51 @@ const getWritePositionMutationOptions = (options) => {
177
184
  const useWritePosition = (options, queryClient) => {
178
185
  return useMutation(getWritePositionMutationOptions(options), queryClient);
179
186
  };
187
+ const getOpenNativeReaderUrl = (provider, mediaId) => {
188
+ return `/partners/${provider}/media/${mediaId}/reader-auth`;
189
+ };
190
+ /**
191
+ * Authorize a YouScribe native title and open its consumption lease.
192
+ *
193
+ * Pass externalId and token to the YouScribe SDK. Mozaik requests keep using
194
+ * mediaId. Renew lease.eventId while the reader is open and close it when the
195
+ * reader exits; reopening the same title reuses its active lease.
196
+ * @summary Open Native Reader
197
+ */
198
+ const openNativeReader = async (provider, mediaId, options) => {
199
+ return request(getOpenNativeReaderUrl(provider, mediaId), {
200
+ ...options,
201
+ method: "POST"
202
+ });
203
+ };
204
+ const getOpenNativeReaderMutationKey = () => ["openNativeReader"];
205
+ const getOpenNativeReaderMutationOptions = (options) => {
206
+ const mutationKey = getOpenNativeReaderMutationKey();
207
+ const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : {
208
+ ...options,
209
+ mutation: {
210
+ ...options.mutation,
211
+ mutationKey
212
+ }
213
+ } : {
214
+ mutation: { mutationKey },
215
+ request: void 0
216
+ };
217
+ const mutationFn = (props) => {
218
+ const { provider, mediaId } = props ?? {};
219
+ return openNativeReader(provider, mediaId, requestOptions);
220
+ };
221
+ return {
222
+ mutationFn,
223
+ ...mutationOptions
224
+ };
225
+ };
226
+ /**
227
+ * @summary Open Native Reader
228
+ */
229
+ const useOpenNativeReader = (options, queryClient) => {
230
+ return useMutation(getOpenNativeReaderMutationOptions(options), queryClient);
231
+ };
180
232
  const getListCurrentReadingsUrl = (provider) => {
181
233
  return `/partners/${provider}/readings`;
182
234
  };
@@ -220,7 +272,50 @@ function useListCurrentReadings(provider, options, queryClient) {
220
272
  const query = useQuery(queryOptions, queryClient);
221
273
  return withQueryKey(query, queryOptions.queryKey);
222
274
  }
275
+ const getReadNativeAuthUrl = (provider) => {
276
+ return `/partners/${provider}/user/auth`;
277
+ };
278
+ /**
279
+ * YouScribe native SDK credentials for the selected, authorized profile.
280
+ *
281
+ * Equivalent to the legacy YouScribe user/auth endpoint. This does not create
282
+ * a licence or a consumption event. Open a title through its reader-auth POST
283
+ * to obtain the lease used for consumption heartbeats. The token is personal:
284
+ * never persist it, log it, or share it between profiles.
285
+ * @summary Read Native Auth
286
+ */
287
+ const readNativeAuth = async (provider, options) => {
288
+ return request(getReadNativeAuthUrl(provider), {
289
+ ...options,
290
+ method: "GET"
291
+ });
292
+ };
293
+ const getReadNativeAuthQueryKey = (provider) => {
294
+ return [`/partners/${provider}/user/auth`];
295
+ };
296
+ const getReadNativeAuthQueryOptions = (provider, options) => {
297
+ const { query: queryOptions, request: requestOptions } = options ?? {};
298
+ const queryKey = queryOptions?.queryKey ?? getReadNativeAuthQueryKey(provider);
299
+ const queryFn = ({ signal }) => readNativeAuth(provider, {
300
+ signal,
301
+ ...requestOptions
302
+ });
303
+ return {
304
+ queryKey,
305
+ queryFn,
306
+ enabled: provider !== null && provider !== void 0,
307
+ ...queryOptions
308
+ };
309
+ };
310
+ /**
311
+ * @summary Read Native Auth
312
+ */
313
+ function useReadNativeAuth(provider, options, queryClient) {
314
+ const queryOptions = getReadNativeAuthQueryOptions(provider, options);
315
+ const query = useQuery(queryOptions, queryClient);
316
+ return withQueryKey(query, queryOptions.queryKey);
317
+ }
223
318
  //#endregion
224
- export { getListCurrentReadingsQueryKey, getListCurrentReadingsQueryOptions, getListCurrentReadingsUrl, getReadPackageQueryKey, getReadPackageQueryOptions, getReadPackageUrl, getReadPositionQueryKey, getReadPositionQueryOptions, getReadPositionUrl, getWritePositionMutationKey, getWritePositionMutationOptions, getWritePositionUrl, listCurrentReadings, readPackage, readPosition, useListCurrentReadings, useReadPackage, useReadPosition, useWritePosition, writePosition };
319
+ export { getListCurrentReadingsQueryKey, getListCurrentReadingsQueryOptions, getListCurrentReadingsUrl, getOpenNativeReaderMutationKey, getOpenNativeReaderMutationOptions, getOpenNativeReaderUrl, getReadNativeAuthQueryKey, getReadNativeAuthQueryOptions, getReadNativeAuthUrl, getReadPackageQueryKey, getReadPackageQueryOptions, getReadPackageUrl, getReadPositionQueryKey, getReadPositionQueryOptions, getReadPositionUrl, getWritePositionMutationKey, getWritePositionMutationOptions, getWritePositionUrl, listCurrentReadings, openNativeReader, readNativeAuth, readPackage, readPosition, useListCurrentReadings, useOpenNativeReader, useReadNativeAuth, useReadPackage, useReadPosition, useWritePosition, writePosition };
225
320
 
226
321
  //# sourceMappingURL=partner-reader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"partner-reader.js","names":[],"sources":["../../src/react/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.2\n */\nimport {\n useMutation,\n useQuery\n} from '@tanstack/react-query';\nimport type {\n DataTag,\n DefinedInitialDataOptions,\n DefinedUseQueryResult,\n MutationFunction,\n QueryClient,\n QueryFunction,\n QueryKey,\n UndefinedInitialDataOptions,\n UseMutationOptions,\n UseMutationResult,\n UseQueryOptions,\n UseQueryResult\n} from '@tanstack/react-query';\n\nimport type {\n CurrentReadingListRead,\n HTTPExceptionResponse,\n PartnerProvider,\n ReadPackageParams,\n ReaderPackageRead,\n ReadingPositionRead,\n ReadingPositionWrite,\n ValidationErrorResponse\n} from '../../models';\n\nimport { request } from '../../client';\nimport type { ErrorType , BodyType } from '../../client';\n\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\n\n\nconst withQueryKey = <T extends object, K>(query: T, queryKey: K): T & { queryKey: K } => {\n const result = { queryKey } as T & { queryKey: K };\n for (const key of Object.keys(query)) {\n // The explicit queryKey always wins, matching the previous\n // `{ ...query, queryKey }` spread where it was set last.\n if (key === 'queryKey') continue;\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n get: () => (query as Record<string, unknown>)[key],\n });\n }\n return result;\n};\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\n\n\n\nexport const getReadPackageQueryKey = (provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams,) => {\n return [\n `/partners/${provider}/media/${mediaId}/package`, ...(params ? [params] : [])\n ] as const;\n }\n\n\nexport const getReadPackageQueryOptions = <TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadPackageQueryKey(provider,mediaId,params);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readPackage>>> = ({ signal }) => readPackage(provider,mediaId,params, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined && mediaId !== null && mediaId !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadPackageQueryResult = NonNullable<Awaited<ReturnType<typeof readPackage>>>\nexport type ReadPackageQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadPackage<TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number,\n params: undefined | ReadPackageParams, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPackage>>,\n TError,\n Awaited<ReturnType<typeof readPackage>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPackage<TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPackage>>,\n TError,\n Awaited<ReturnType<typeof readPackage>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPackage<TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Package\n */\n\nexport function useReadPackage<TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadPackageQueryOptions(provider,mediaId,params,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getReadPositionQueryKey = (provider: PartnerProvider,\n mediaId: number,) => {\n return [\n `/partners/${provider}/media/${mediaId}/position`\n ] as const;\n }\n\n\nexport const getReadPositionQueryOptions = <TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadPositionQueryKey(provider,mediaId);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readPosition>>> = ({ signal }) => readPosition(provider,mediaId, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined && mediaId !== null && mediaId !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadPositionQueryResult = NonNullable<Awaited<ReturnType<typeof readPosition>>>\nexport type ReadPositionQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadPosition<TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPosition>>,\n TError,\n Awaited<ReturnType<typeof readPosition>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPosition<TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPosition>>,\n TError,\n Awaited<ReturnType<typeof readPosition>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPosition<TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Position\n */\n\nexport function useReadPosition<TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadPositionQueryOptions(provider,mediaId,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getWritePositionMutationKey = () => ['writePosition'] as const;\n\nexport const getWritePositionMutationOptions = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof writePosition>>, TError,WritePositionMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n): UseMutationOptions<Awaited<ReturnType<typeof writePosition>>, TError,WritePositionMutationVariables, TContext> => {\n\nconst mutationKey = getWritePositionMutationKey();\nconst {mutation: mutationOptions, request: requestOptions} = options ?\n options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?\n options\n : {...options, mutation: {...options.mutation, mutationKey}}\n : {mutation: { mutationKey, }, request: undefined};\n\n\n\n\n const mutationFn: MutationFunction<Awaited<ReturnType<typeof writePosition>>, WritePositionMutationVariables> = (props) => {\n const {provider,mediaId,data} = props ?? {};\n\n return writePosition(provider,mediaId,data,requestOptions)\n }\n\n\n\n\n\n\n return { mutationFn, ...mutationOptions }}\n\n export type WritePositionMutationResult = NonNullable<Awaited<ReturnType<typeof writePosition>>>\n export type WritePositionMutationBody = BodyType<ReadingPositionWrite>\n export type WritePositionMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n export type WritePositionMutationVariables = {provider: PartnerProvider;mediaId: number;data: BodyType<ReadingPositionWrite>}\n\n /**\n * @summary Write Position\n */\nexport const useWritePosition = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof writePosition>>, TError,WritePositionMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient): UseMutationResult<\n Awaited<ReturnType<typeof writePosition>>,\n TError,\n WritePositionMutationVariables,\n TContext\n > => {\n return useMutation(getWritePositionMutationOptions(options), queryClient);\n }\n export 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\n\n\nexport const getListCurrentReadingsQueryKey = (provider: PartnerProvider,) => {\n return [\n `/partners/${provider}/readings`\n ] as const;\n }\n\n\nexport const getListCurrentReadingsQueryOptions = <TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getListCurrentReadingsQueryKey(provider);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof listCurrentReadings>>> = ({ signal }) => listCurrentReadings(provider, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ListCurrentReadingsQueryResult = NonNullable<Awaited<ReturnType<typeof listCurrentReadings>>>\nexport type ListCurrentReadingsQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useListCurrentReadings<TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof listCurrentReadings>>,\n TError,\n Awaited<ReturnType<typeof listCurrentReadings>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListCurrentReadings<TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof listCurrentReadings>>,\n TError,\n Awaited<ReturnType<typeof listCurrentReadings>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListCurrentReadings<TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary List Current Readings\n */\n\nexport function useListCurrentReadings<TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getListCurrentReadingsQueryOptions(provider,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\n\n\n\n\n\n\n"],"mappings":";;;;;;;;;;;AA6CA,MAAM,gBAAqC,OAAU,aAAqC;CACxF,MAAM,SAAS,EAAE,SAAS;CAC1B,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GAAG;EAGpC,IAAI,QAAQ,YAAY;EACxB,OAAO,eAAe,QAAQ,KAAK;GACjC,YAAY;GACZ,cAAc;GACd,WAAY,MAAkC;EAChD,CAAC;CACH;CACA,OAAO;AACT;AAEA,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;AAMF,MAAa,0BAA0B,UACnC,SACA,WAAgC;CAChC,OAAO,CACP,aAAa,SAAS,SAAS,QAAQ,WAAW,GAAI,SAAS,CAAC,MAAM,IAAI,CAAC,CAC3E;AACA;AAGJ,MAAa,8BAAoJ,UAC7J,SACA,QAA4B,YAC3B;CAEL,MAAM,EAAC,OAAO,cAAc,SAAS,mBAAkB,WAAW,CAAC;CAEjE,MAAM,WAAY,cAAc,YAAY,uBAAuB,UAAS,SAAQ,MAAM;CAIxF,MAAM,WAAmE,EAAE,aAAa,YAAY,UAAS,SAAQ,QAAQ;EAAE;EAAQ,GAAG;CAAe,CAAC;CAM3J,OAAQ;EAAE;EAAU;EAAS,SAAS,aAAa,QAAQ,aAAa,KAAA,KAAa,YAAY,QAAQ,YAAY,KAAA;EAAW,GAAG;CAAY;AAClJ;;;;AAwCA,SAAgB,eACf,UACG,SACA,QAA4B,SAC7B,aACiF;CAElF,MAAM,eAAe,2BAA2B,UAAS,SAAQ,QAAO,OAAO;CAE/E,MAAM,QAAQ,SAAS,cAAc,WAAW;CAEhD,OAAO,aAAa,OAAO,aAAa,QAAQ;AAClD;AAOA,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;AAMF,MAAa,2BAA2B,UACpC,YAAqB;CACrB,OAAO,CACP,aAAa,SAAS,SAAS,QAAQ,UACvC;AACA;AAGJ,MAAa,+BAAsJ,UAC/J,SAAiB,YAChB;CAEL,MAAM,EAAC,OAAO,cAAc,SAAS,mBAAkB,WAAW,CAAC;CAEjE,MAAM,WAAY,cAAc,YAAY,wBAAwB,UAAS,OAAO;CAIlF,MAAM,WAAoE,EAAE,aAAa,aAAa,UAAS,SAAS;EAAE;EAAQ,GAAG;CAAe,CAAC;CAMtJ,OAAQ;EAAE;EAAU;EAAS,SAAS,aAAa,QAAQ,aAAa,KAAA,KAAa,YAAY,QAAQ,YAAY,KAAA;EAAW,GAAG;CAAY;AAClJ;;;;AAqCA,SAAgB,gBACf,UACG,SAAiB,SAClB,aACiF;CAElF,MAAM,eAAe,4BAA4B,UAAS,SAAQ,OAAO;CAEzE,MAAM,QAAQ,SAAS,cAAc,WAAW;CAEhD,OAAO,aAAa,OAAO,aAAa,QAAQ;AAClD;AAOA,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;AAMF,MAAa,oCAAoC,CAAC,eAAe;AAEjE,MAAa,mCACW,YAC6F;CAErH,MAAM,cAAc,4BAA4B;CAChD,MAAM,EAAC,UAAU,iBAAiB,SAAS,mBAAkB,UACvD,QAAQ,YAAY,iBAAiB,QAAQ,YAAY,QAAQ,SAAS,cAC1E,UACE;EAAC,GAAG;EAAS,UAAU;GAAC,GAAG,QAAQ;GAAU;EAAW;CAAC,IACzD;EAAC,UAAU,EAAE,YAAa;EAAG,SAAS,KAAA;CAAS;CAKjD,MAAM,cAA2G,UAAU;EACvH,MAAM,EAAC,UAAS,SAAQ,SAAQ,SAAS,CAAC;EAE1C,OAAQ,cAAc,UAAS,SAAQ,MAAK,cAAc;CAC5D;CAON,OAAQ;EAAE;EAAY,GAAG;CAAgB;AAAC;;;;AAU5C,MAAa,oBACW,SACrB,gBAKQ;CACL,OAAO,YAAY,gCAAgC,OAAO,GAAG,WAAW;AAC1E;AACA,MAAa,6BAA6B,aAA+B;CAK3E,OAAO,aAAa,SAAS;AAC/B;;;;;;;;;;AAWA,MAAa,sBAAsB,OAAO,UAA2B,YAA6E;CAEhJ,OAAO,QAAgC,0BAA0B,QAAQ,GACzE;EACE,GAAG;EACH,QAAQ;CAGV,CACF;AAAE;AAMF,MAAa,kCAAkC,aAA+B;CAC1E,OAAO,CACP,aAAa,SAAS,UACtB;AACA;AAGJ,MAAa,sCAAoK,UAA2B,YACvM;CAEL,MAAM,EAAC,OAAO,cAAc,SAAS,mBAAkB,WAAW,CAAC;CAEjE,MAAM,WAAY,cAAc,YAAY,+BAA+B,QAAQ;CAIjF,MAAM,WAA2E,EAAE,aAAa,oBAAoB,UAAU;EAAE;EAAQ,GAAG;CAAe,CAAC;CAM5J,OAAQ;EAAE;EAAU;EAAS,SAAS,aAAa,QAAQ,aAAa,KAAA;EAAW,GAAG;CAAY;AACrG;;;;AAkCA,SAAgB,uBACf,UAA2B,SACzB,aACiF;CAElF,MAAM,eAAe,mCAAmC,UAAS,OAAO;CAExE,MAAM,QAAQ,SAAS,cAAc,WAAW;CAEhD,OAAO,aAAa,OAAO,aAAa,QAAQ;AAClD"}
1
+ {"version":3,"file":"partner-reader.js","names":[],"sources":["../../src/react/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.0\n */\nimport {\n useMutation,\n useQuery\n} from '@tanstack/react-query';\nimport type {\n DataTag,\n DefinedInitialDataOptions,\n DefinedUseQueryResult,\n MutationFunction,\n QueryClient,\n QueryFunction,\n QueryKey,\n UndefinedInitialDataOptions,\n UseMutationOptions,\n UseMutationResult,\n UseQueryOptions,\n UseQueryResult\n} from '@tanstack/react-query';\n\nimport type {\n CurrentReadingListRead,\n HTTPExceptionResponse,\n PartnerProvider,\n ReadPackageParams,\n ReaderPackageRead,\n ReadingPositionRead,\n ReadingPositionWrite,\n ValidationErrorResponse,\n YouScribeAuthRead,\n YouScribeReaderRead\n} from '../../models';\n\nimport { request } from '../../client';\nimport type { ErrorType , BodyType } from '../../client';\n\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];\n\n\n\nconst withQueryKey = <T extends object, K>(query: T, queryKey: K): T & { queryKey: K } => {\n const result = { queryKey } as T & { queryKey: K };\n for (const key of Object.keys(query)) {\n // The explicit queryKey always wins, matching the previous\n // `{ ...query, queryKey }` spread where it was set last.\n if (key === 'queryKey') continue;\n Object.defineProperty(result, key, {\n enumerable: true,\n configurable: true,\n get: () => (query as Record<string, unknown>)[key],\n });\n }\n return result;\n};\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\n\n\n\nexport const getReadPackageQueryKey = (provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams,) => {\n return [\n `/partners/${provider}/media/${mediaId}/package`, ...(params ? [params] : [])\n ] as const;\n }\n\n\nexport const getReadPackageQueryOptions = <TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadPackageQueryKey(provider,mediaId,params);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readPackage>>> = ({ signal }) => readPackage(provider,mediaId,params, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined && mediaId !== null && mediaId !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadPackageQueryResult = NonNullable<Awaited<ReturnType<typeof readPackage>>>\nexport type ReadPackageQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadPackage<TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number,\n params: undefined | ReadPackageParams, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPackage>>,\n TError,\n Awaited<ReturnType<typeof readPackage>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPackage<TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPackage>>,\n TError,\n Awaited<ReturnType<typeof readPackage>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPackage<TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Package\n */\n\nexport function useReadPackage<TData = Awaited<ReturnType<typeof readPackage>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number,\n params?: ReadPackageParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPackage>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadPackageQueryOptions(provider,mediaId,params,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getReadPositionQueryKey = (provider: PartnerProvider,\n mediaId: number,) => {\n return [\n `/partners/${provider}/media/${mediaId}/position`\n ] as const;\n }\n\n\nexport const getReadPositionQueryOptions = <TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadPositionQueryKey(provider,mediaId);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readPosition>>> = ({ signal }) => readPosition(provider,mediaId, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined && mediaId !== null && mediaId !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadPositionQueryResult = NonNullable<Awaited<ReturnType<typeof readPosition>>>\nexport type ReadPositionQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadPosition<TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPosition>>,\n TError,\n Awaited<ReturnType<typeof readPosition>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPosition<TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readPosition>>,\n TError,\n Awaited<ReturnType<typeof readPosition>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadPosition<TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Position\n */\n\nexport function useReadPosition<TData = Awaited<ReturnType<typeof readPosition>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider,\n mediaId: number, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readPosition>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadPositionQueryOptions(provider,mediaId,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\n\nexport const getWritePositionMutationKey = () => ['writePosition'] as const;\n\nexport const getWritePositionMutationOptions = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof writePosition>>, TError,WritePositionMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n): UseMutationOptions<Awaited<ReturnType<typeof writePosition>>, TError,WritePositionMutationVariables, TContext> => {\n\nconst mutationKey = getWritePositionMutationKey();\nconst {mutation: mutationOptions, request: requestOptions} = options ?\n options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?\n options\n : {...options, mutation: {...options.mutation, mutationKey}}\n : {mutation: { mutationKey, }, request: undefined};\n\n\n\n\n const mutationFn: MutationFunction<Awaited<ReturnType<typeof writePosition>>, WritePositionMutationVariables> = (props) => {\n const {provider,mediaId,data} = props ?? {};\n\n return writePosition(provider,mediaId,data,requestOptions)\n }\n\n\n\n\n\n\n return { mutationFn, ...mutationOptions }}\n\n export type WritePositionMutationResult = NonNullable<Awaited<ReturnType<typeof writePosition>>>\n export type WritePositionMutationBody = BodyType<ReadingPositionWrite>\n export type WritePositionMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n export type WritePositionMutationVariables = {provider: PartnerProvider;mediaId: number;data: BodyType<ReadingPositionWrite>}\n\n /**\n * @summary Write Position\n */\nexport const useWritePosition = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof writePosition>>, TError,WritePositionMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient): UseMutationResult<\n Awaited<ReturnType<typeof writePosition>>,\n TError,\n WritePositionMutationVariables,\n TContext\n > => {\n return useMutation(getWritePositionMutationOptions(options), queryClient);\n }\n export 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\n\n\n\nexport const getOpenNativeReaderMutationKey = () => ['openNativeReader'] as const;\n\nexport const getOpenNativeReaderMutationOptions = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof openNativeReader>>, TError,OpenNativeReaderMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n): UseMutationOptions<Awaited<ReturnType<typeof openNativeReader>>, TError,OpenNativeReaderMutationVariables, TContext> => {\n\nconst mutationKey = getOpenNativeReaderMutationKey();\nconst {mutation: mutationOptions, request: requestOptions} = options ?\n options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?\n options\n : {...options, mutation: {...options.mutation, mutationKey}}\n : {mutation: { mutationKey, }, request: undefined};\n\n\n\n\n const mutationFn: MutationFunction<Awaited<ReturnType<typeof openNativeReader>>, OpenNativeReaderMutationVariables> = (props) => {\n const {provider,mediaId} = props ?? {};\n\n return openNativeReader(provider,mediaId,requestOptions)\n }\n\n\n\n\n\n\n return { mutationFn, ...mutationOptions }}\n\n export type OpenNativeReaderMutationResult = NonNullable<Awaited<ReturnType<typeof openNativeReader>>>\n\n export type OpenNativeReaderMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n export type OpenNativeReaderMutationVariables = {provider: PartnerProvider;mediaId: number}\n\n /**\n * @summary Open Native Reader\n */\nexport const useOpenNativeReader = <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>,\n TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof openNativeReader>>, TError,OpenNativeReaderMutationVariables, TContext>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient): UseMutationResult<\n Awaited<ReturnType<typeof openNativeReader>>,\n TError,\n OpenNativeReaderMutationVariables,\n TContext\n > => {\n return useMutation(getOpenNativeReaderMutationOptions(options), queryClient);\n }\n export 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\n\n\nexport const getListCurrentReadingsQueryKey = (provider: PartnerProvider,) => {\n return [\n `/partners/${provider}/readings`\n ] as const;\n }\n\n\nexport const getListCurrentReadingsQueryOptions = <TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getListCurrentReadingsQueryKey(provider);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof listCurrentReadings>>> = ({ signal }) => listCurrentReadings(provider, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ListCurrentReadingsQueryResult = NonNullable<Awaited<ReturnType<typeof listCurrentReadings>>>\nexport type ListCurrentReadingsQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useListCurrentReadings<TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof listCurrentReadings>>,\n TError,\n Awaited<ReturnType<typeof listCurrentReadings>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListCurrentReadings<TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof listCurrentReadings>>,\n TError,\n Awaited<ReturnType<typeof listCurrentReadings>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useListCurrentReadings<TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary List Current Readings\n */\n\nexport function useListCurrentReadings<TData = Awaited<ReturnType<typeof listCurrentReadings>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listCurrentReadings>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getListCurrentReadingsQueryOptions(provider,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\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\n\n\nexport const getReadNativeAuthQueryKey = (provider: PartnerProvider,) => {\n return [\n `/partners/${provider}/user/auth`\n ] as const;\n }\n\n\nexport const getReadNativeAuthQueryOptions = <TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>>, request?: SecondParameter<typeof request>}\n) => {\n\nconst {query: queryOptions, request: requestOptions} = options ?? {};\n\n const queryKey = queryOptions?.queryKey ?? getReadNativeAuthQueryKey(provider);\n\n\n\n const queryFn: QueryFunction<Awaited<ReturnType<typeof readNativeAuth>>> = ({ signal }) => readNativeAuth(provider, { signal, ...requestOptions });\n\n\n\n\n\n return { queryKey, queryFn, enabled: provider !== null && provider !== undefined, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }\n}\n\nexport type ReadNativeAuthQueryResult = NonNullable<Awaited<ReturnType<typeof readNativeAuth>>>\nexport type ReadNativeAuthQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>\n\n\nexport function useReadNativeAuth<TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>> & Pick<\n DefinedInitialDataOptions<\n Awaited<ReturnType<typeof readNativeAuth>>,\n TError,\n Awaited<ReturnType<typeof readNativeAuth>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadNativeAuth<TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>> & Pick<\n UndefinedInitialDataOptions<\n Awaited<ReturnType<typeof readNativeAuth>>,\n TError,\n Awaited<ReturnType<typeof readNativeAuth>>\n > , 'initialData'\n >, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\nexport function useReadNativeAuth<TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }\n/**\n * @summary Read Native Auth\n */\n\nexport function useReadNativeAuth<TData = Awaited<ReturnType<typeof readNativeAuth>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(\n provider: PartnerProvider, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof readNativeAuth>>, TError, TData>>, request?: SecondParameter<typeof request>}\n , queryClient?: QueryClient\n ): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {\n\n const queryOptions = getReadNativeAuthQueryOptions(provider,options)\n\n const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };\n\n return withQueryKey(query, queryOptions.queryKey);\n}\n\n\n\n\n\n\n"],"mappings":"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"}