@learnorama/mozaik-sdk 0.1.0-staging.11.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.
- package/README.md +94 -0
- package/dist/api/account.d.ts +75 -0
- package/dist/api/account.js +117 -0
- package/dist/api/account.js.map +1 -0
- package/dist/api/admin-catalogue.d.ts +68 -0
- package/dist/api/admin-catalogue.js +155 -0
- package/dist/api/admin-catalogue.js.map +1 -0
- package/dist/api/admin-consumption.d.ts +27 -0
- package/dist/api/admin-consumption.js +55 -0
- package/dist/api/admin-consumption.js.map +1 -0
- package/dist/api/admin-licenses.d.ts +21 -0
- package/dist/api/admin-licenses.js +34 -0
- package/dist/api/admin-licenses.js.map +1 -0
- package/dist/api/admin-patrons.d.ts +36 -0
- package/dist/api/admin-patrons.js +76 -0
- package/dist/api/admin-patrons.js.map +1 -0
- package/dist/api/admin-reviews.d.ts +30 -0
- package/dist/api/admin-reviews.js +63 -0
- package/dist/api/admin-reviews.js.map +1 -0
- package/dist/api/admin-roles.d.ts +34 -0
- package/dist/api/admin-roles.js +62 -0
- package/dist/api/admin-roles.js.map +1 -0
- package/dist/api/admin-support.d.ts +68 -0
- package/dist/api/admin-support.js +116 -0
- package/dist/api/admin-support.js.map +1 -0
- package/dist/api/admin-tenants.d.ts +33 -0
- package/dist/api/admin-tenants.js +68 -0
- package/dist/api/admin-tenants.js.map +1 -0
- package/dist/api/admin-tutoring.d.ts +159 -0
- package/dist/api/admin-tutoring.js +455 -0
- package/dist/api/admin-tutoring.js.map +1 -0
- package/dist/api/auth.d.ts +92 -0
- package/dist/api/auth.js +192 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/biblio-catalogue.d.ts +122 -0
- package/dist/api/biblio-catalogue.js +223 -0
- package/dist/api/biblio-catalogue.js.map +1 -0
- package/dist/api/biblio-home.d.ts +18 -0
- package/dist/api/biblio-home.js +31 -0
- package/dist/api/biblio-home.js.map +1 -0
- package/dist/api/biblio-library.d.ts +94 -0
- package/dist/api/biblio-library.js +187 -0
- package/dist/api/biblio-library.js.map +1 -0
- package/dist/api/biblio-nextory.d.ts +43 -0
- package/dist/api/biblio-nextory.js +65 -0
- package/dist/api/biblio-nextory.js.map +1 -0
- package/dist/api/biblio-press.d.ts +38 -0
- package/dist/api/biblio-press.js +70 -0
- package/dist/api/biblio-press.js.map +1 -0
- package/dist/api/biblio-search.d.ts +17 -0
- package/dist/api/biblio-search.js +30 -0
- package/dist/api/biblio-search.js.map +1 -0
- package/dist/api/biblio-telemetry.d.ts +28 -0
- package/dist/api/biblio-telemetry.js +49 -0
- package/dist/api/biblio-telemetry.js.map +1 -0
- package/dist/api/consumption.d.ts +30 -0
- package/dist/api/consumption.js +45 -0
- package/dist/api/consumption.js.map +1 -0
- package/dist/api/cvs-app.d.ts +39 -0
- package/dist/api/cvs-app.js +72 -0
- package/dist/api/cvs-app.js.map +1 -0
- package/dist/api/cvs-documents.d.ts +106 -0
- package/dist/api/cvs-documents.js +208 -0
- package/dist/api/cvs-documents.js.map +1 -0
- package/dist/api/cvs-favorites.d.ts +53 -0
- package/dist/api/cvs-favorites.js +82 -0
- package/dist/api/cvs-favorites.js.map +1 -0
- package/dist/api/cvs-loans.d.ts +59 -0
- package/dist/api/cvs-loans.js +106 -0
- package/dist/api/cvs-loans.js.map +1 -0
- package/dist/api/cvs-streaming.d.ts +40 -0
- package/dist/api/cvs-streaming.js +68 -0
- package/dist/api/cvs-streaming.js.map +1 -0
- package/dist/api/index.d.ts +34 -0
- package/dist/api/index.js +34 -0
- package/dist/api/partner-catalogue.d.ts +77 -0
- package/dist/api/partner-catalogue.js +125 -0
- package/dist/api/partner-catalogue.js.map +1 -0
- package/dist/api/partner-reader.d.ts +56 -0
- package/dist/api/partner-reader.js +103 -0
- package/dist/api/partner-reader.js.map +1 -0
- package/dist/api/profiles.d.ts +64 -0
- package/dist/api/profiles.js +126 -0
- package/dist/api/profiles.js.map +1 -0
- package/dist/api/tutoring-catalogue.d.ts +32 -0
- package/dist/api/tutoring-catalogue.js +59 -0
- package/dist/api/tutoring-catalogue.js.map +1 -0
- package/dist/api/tutoring-chat.d.ts +31 -0
- package/dist/api/tutoring-chat.js +71 -0
- package/dist/api/tutoring-chat.js.map +1 -0
- package/dist/api/tutoring-dispatch.d.ts +37 -0
- package/dist/api/tutoring-dispatch.js +83 -0
- package/dist/api/tutoring-dispatch.js.map +1 -0
- package/dist/api/tutoring-practitioner.d.ts +55 -0
- package/dist/api/tutoring-practitioner.js +110 -0
- package/dist/api/tutoring-practitioner.js.map +1 -0
- package/dist/api/tutoring-requests.d.ts +86 -0
- package/dist/api/tutoring-requests.js +176 -0
- package/dist/api/tutoring-requests.js.map +1 -0
- package/dist/chunks/client.d.ts +28 -0
- package/dist/chunks/client.js +61 -0
- package/dist/chunks/client.js.map +1 -0
- package/dist/chunks/index.d.ts +4566 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/models.d.ts +3 -0
- package/dist/models.js +175 -0
- package/dist/models.js.map +1 -0
- package/dist/react/account.d.ts +163 -0
- package/dist/react/account.js +240 -0
- package/dist/react/account.js.map +1 -0
- package/dist/react/admin-catalogue.d.ts +196 -0
- package/dist/react/admin-catalogue.js +336 -0
- package/dist/react/admin-catalogue.js.map +1 -0
- package/dist/react/admin-consumption.d.ts +75 -0
- package/dist/react/admin-consumption.js +127 -0
- package/dist/react/admin-consumption.js.map +1 -0
- package/dist/react/admin-licenses.d.ts +50 -0
- package/dist/react/admin-licenses.js +78 -0
- package/dist/react/admin-licenses.js.map +1 -0
- package/dist/react/admin-patrons.d.ts +111 -0
- package/dist/react/admin-patrons.js +173 -0
- package/dist/react/admin-patrons.js.map +1 -0
- package/dist/react/admin-reviews.d.ts +78 -0
- package/dist/react/admin-reviews.js +135 -0
- package/dist/react/admin-reviews.js.map +1 -0
- package/dist/react/admin-roles.d.ts +82 -0
- package/dist/react/admin-roles.js +135 -0
- package/dist/react/admin-roles.js.map +1 -0
- package/dist/react/admin-support.d.ts +123 -0
- package/dist/react/admin-support.js +208 -0
- package/dist/react/admin-support.js.map +1 -0
- package/dist/react/admin-tenants.d.ts +108 -0
- package/dist/react/admin-tenants.js +165 -0
- package/dist/react/admin-tenants.js.map +1 -0
- package/dist/react/admin-tutoring.d.ts +556 -0
- package/dist/react/admin-tutoring.js +954 -0
- package/dist/react/admin-tutoring.js.map +1 -0
- package/dist/react/auth.d.ts +220 -0
- package/dist/react/auth.js +372 -0
- package/dist/react/auth.js.map +1 -0
- package/dist/react/biblio-catalogue.d.ts +374 -0
- package/dist/react/biblio-catalogue.js +498 -0
- package/dist/react/biblio-catalogue.js.map +1 -0
- package/dist/react/biblio-home.d.ts +47 -0
- package/dist/react/biblio-home.js +75 -0
- package/dist/react/biblio-home.js.map +1 -0
- package/dist/react/biblio-library.d.ts +285 -0
- package/dist/react/biblio-library.js +411 -0
- package/dist/react/biblio-library.js.map +1 -0
- package/dist/react/biblio-nextory.d.ts +100 -0
- package/dist/react/biblio-nextory.js +163 -0
- package/dist/react/biblio-nextory.js.map +1 -0
- package/dist/react/biblio-press.d.ts +121 -0
- package/dist/react/biblio-press.js +163 -0
- package/dist/react/biblio-press.js.map +1 -0
- package/dist/react/biblio-search.d.ts +46 -0
- package/dist/react/biblio-search.js +74 -0
- package/dist/react/biblio-search.js.map +1 -0
- package/dist/react/biblio-telemetry.d.ts +49 -0
- package/dist/react/biblio-telemetry.js +85 -0
- package/dist/react/biblio-telemetry.js.map +1 -0
- package/dist/react/consumption.d.ts +66 -0
- package/dist/react/consumption.js +109 -0
- package/dist/react/consumption.js.map +1 -0
- package/dist/react/cvs-app.d.ts +86 -0
- package/dist/react/cvs-app.js +144 -0
- package/dist/react/cvs-app.js.map +1 -0
- package/dist/react/cvs-documents.d.ts +254 -0
- package/dist/react/cvs-documents.js +418 -0
- package/dist/react/cvs-documents.js.map +1 -0
- package/dist/react/cvs-favorites.d.ts +143 -0
- package/dist/react/cvs-favorites.js +206 -0
- package/dist/react/cvs-favorites.js.map +1 -0
- package/dist/react/cvs-loans.d.ts +140 -0
- package/dist/react/cvs-loans.js +234 -0
- package/dist/react/cvs-loans.js.map +1 -0
- package/dist/react/cvs-streaming.d.ts +87 -0
- package/dist/react/cvs-streaming.js +141 -0
- package/dist/react/cvs-streaming.js.map +1 -0
- package/dist/react/index.d.ts +34 -0
- package/dist/react/index.js +34 -0
- package/dist/react/partner-catalogue.d.ts +223 -0
- package/dist/react/partner-catalogue.js +301 -0
- package/dist/react/partner-catalogue.js.map +1 -0
- package/dist/react/partner-reader.d.ts +159 -0
- package/dist/react/partner-reader.js +226 -0
- package/dist/react/partner-reader.js.map +1 -0
- package/dist/react/profiles.d.ts +174 -0
- package/dist/react/profiles.js +279 -0
- package/dist/react/profiles.js.map +1 -0
- package/dist/react/tutoring-catalogue.d.ts +115 -0
- package/dist/react/tutoring-catalogue.js +151 -0
- package/dist/react/tutoring-catalogue.js.map +1 -0
- package/dist/react/tutoring-chat.d.ts +96 -0
- package/dist/react/tutoring-chat.js +172 -0
- package/dist/react/tutoring-chat.js.map +1 -0
- package/dist/react/tutoring-dispatch.d.ts +102 -0
- package/dist/react/tutoring-dispatch.js +183 -0
- package/dist/react/tutoring-dispatch.js.map +1 -0
- package/dist/react/tutoring-practitioner.d.ts +129 -0
- package/dist/react/tutoring-practitioner.js +230 -0
- package/dist/react/tutoring-practitioner.js.map +1 -0
- package/dist/react/tutoring-requests.d.ts +233 -0
- package/dist/react/tutoring-requests.js +385 -0
- package/dist/react/tutoring-requests.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { r as request } from "../chunks/client.js";
|
|
3
|
+
import { useMutation, useQuery } from "@tanstack/react-query";
|
|
4
|
+
//#region src/react/partner-reader/partner-reader.ts
|
|
5
|
+
/**
|
|
6
|
+
* Generated by orval 🍺
|
|
7
|
+
* Do not edit manually.
|
|
8
|
+
* Mozaik backend
|
|
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.1.0
|
|
11
|
+
*/
|
|
12
|
+
const withQueryKey = (query, queryKey) => {
|
|
13
|
+
const result = { queryKey };
|
|
14
|
+
for (const key of Object.keys(query)) {
|
|
15
|
+
if (key === "queryKey") continue;
|
|
16
|
+
Object.defineProperty(result, key, {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
get: () => query[key]
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
24
|
+
const getReadPackageUrl = (provider, mediaId, params) => {
|
|
25
|
+
const normalizedParams = new URLSearchParams();
|
|
26
|
+
Object.entries(params || {}).forEach(([key, value]) => {
|
|
27
|
+
if (value !== void 0) normalizedParams.append(key, value === null ? "null" : String(value));
|
|
28
|
+
});
|
|
29
|
+
const stringifiedParams = normalizedParams.toString();
|
|
30
|
+
return stringifiedParams.length > 0 ? `/partners/${provider}/media/${mediaId}/package?${stringifiedParams}` : `/partners/${provider}/media/${mediaId}/package`;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Where to fetch the content itself.
|
|
34
|
+
*
|
|
35
|
+
* The returned URL is a short-lived DRM-wrapped credential. It is not cached
|
|
36
|
+
* here and should not be stored by the client.
|
|
37
|
+
*
|
|
38
|
+
* Opens a consumption lease, so the read appears in the ledger and counts
|
|
39
|
+
* against the establishment's live seats like any other. Its id comes back in
|
|
40
|
+
* ``lease``: keep it alive with ``PUT /consumption/{eventId}`` and drop it with
|
|
41
|
+
* ``DELETE`` when the reader closes. A client that does neither is not broken
|
|
42
|
+
* — the reaper closes the lease about a minute after the last heartbeat — but
|
|
43
|
+
* every such read is a seat held past the end of it.
|
|
44
|
+
*
|
|
45
|
+
* Re-opening the same title returns the lease already held rather than a
|
|
46
|
+
* second one, so a page reload does not leak a seat.
|
|
47
|
+
* @summary Read Package
|
|
48
|
+
*/
|
|
49
|
+
const readPackage = async (provider, mediaId, params, options) => {
|
|
50
|
+
return request(getReadPackageUrl(provider, mediaId, params), {
|
|
51
|
+
...options,
|
|
52
|
+
method: "GET"
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
const getReadPackageQueryKey = (provider, mediaId, params) => {
|
|
56
|
+
return [`/partners/${provider}/media/${mediaId}/package`, ...params ? [params] : []];
|
|
57
|
+
};
|
|
58
|
+
const getReadPackageQueryOptions = (provider, mediaId, params, options) => {
|
|
59
|
+
const { query: queryOptions, request: requestOptions } = options ?? {};
|
|
60
|
+
const queryKey = queryOptions?.queryKey ?? getReadPackageQueryKey(provider, mediaId, params);
|
|
61
|
+
const queryFn = ({ signal }) => readPackage(provider, mediaId, params, {
|
|
62
|
+
signal,
|
|
63
|
+
...requestOptions
|
|
64
|
+
});
|
|
65
|
+
return {
|
|
66
|
+
queryKey,
|
|
67
|
+
queryFn,
|
|
68
|
+
enabled: provider !== null && provider !== void 0 && mediaId !== null && mediaId !== void 0,
|
|
69
|
+
...queryOptions
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* @summary Read Package
|
|
74
|
+
*/
|
|
75
|
+
function useReadPackage(provider, mediaId, params, options, queryClient) {
|
|
76
|
+
const queryOptions = getReadPackageQueryOptions(provider, mediaId, params, options);
|
|
77
|
+
const query = useQuery(queryOptions, queryClient);
|
|
78
|
+
return withQueryKey(query, queryOptions.queryKey);
|
|
79
|
+
}
|
|
80
|
+
const getReadPositionUrl = (provider, mediaId) => {
|
|
81
|
+
return `/partners/${provider}/media/${mediaId}/position`;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Where this reader last was, according to the partner.
|
|
85
|
+
*
|
|
86
|
+
* ``404`` when the partner holds no position — a book never opened has no
|
|
87
|
+
* place to return to, and reporting zero would make a client jump a reader who
|
|
88
|
+
* *is* mid-book back to the start if the call ever failed soft.
|
|
89
|
+
* @summary Read Position
|
|
90
|
+
*/
|
|
91
|
+
const readPosition = async (provider, mediaId, options) => {
|
|
92
|
+
return request(getReadPositionUrl(provider, mediaId), {
|
|
93
|
+
...options,
|
|
94
|
+
method: "GET"
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
const getReadPositionQueryKey = (provider, mediaId) => {
|
|
98
|
+
return [`/partners/${provider}/media/${mediaId}/position`];
|
|
99
|
+
};
|
|
100
|
+
const getReadPositionQueryOptions = (provider, mediaId, options) => {
|
|
101
|
+
const { query: queryOptions, request: requestOptions } = options ?? {};
|
|
102
|
+
const queryKey = queryOptions?.queryKey ?? getReadPositionQueryKey(provider, mediaId);
|
|
103
|
+
const queryFn = ({ signal }) => readPosition(provider, mediaId, {
|
|
104
|
+
signal,
|
|
105
|
+
...requestOptions
|
|
106
|
+
});
|
|
107
|
+
return {
|
|
108
|
+
queryKey,
|
|
109
|
+
queryFn,
|
|
110
|
+
enabled: provider !== null && provider !== void 0 && mediaId !== null && mediaId !== void 0,
|
|
111
|
+
...queryOptions
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* @summary Read Position
|
|
116
|
+
*/
|
|
117
|
+
function useReadPosition(provider, mediaId, options, queryClient) {
|
|
118
|
+
const queryOptions = getReadPositionQueryOptions(provider, mediaId, options);
|
|
119
|
+
const query = useQuery(queryOptions, queryClient);
|
|
120
|
+
return withQueryKey(query, queryOptions.queryKey);
|
|
121
|
+
}
|
|
122
|
+
const getWritePositionUrl = (provider, mediaId) => {
|
|
123
|
+
return `/partners/${provider}/media/${mediaId}/position`;
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Record progress, and report the partner's own metering alongside it.
|
|
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.
|
|
131
|
+
* @summary Write Position
|
|
132
|
+
*/
|
|
133
|
+
const writePosition = async (provider, mediaId, readingPositionWrite, options) => {
|
|
134
|
+
const getHeaders = (h) => {
|
|
135
|
+
if (!h) return {};
|
|
136
|
+
if (h instanceof Headers) return Object.fromEntries(h.entries());
|
|
137
|
+
if (Symbol.iterator in h) return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
|
|
138
|
+
const headers = {};
|
|
139
|
+
for (const [name, value] of Object.entries(h)) if (value !== void 0) headers[name] = value;
|
|
140
|
+
return headers;
|
|
141
|
+
};
|
|
142
|
+
return request(getWritePositionUrl(provider, mediaId), {
|
|
143
|
+
...options,
|
|
144
|
+
method: "PATCH",
|
|
145
|
+
headers: {
|
|
146
|
+
"Content-Type": "application/json",
|
|
147
|
+
...getHeaders(options?.headers)
|
|
148
|
+
},
|
|
149
|
+
body: JSON.stringify(readingPositionWrite)
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
const getWritePositionMutationKey = () => ["writePosition"];
|
|
153
|
+
const getWritePositionMutationOptions = (options) => {
|
|
154
|
+
const mutationKey = getWritePositionMutationKey();
|
|
155
|
+
const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : {
|
|
156
|
+
...options,
|
|
157
|
+
mutation: {
|
|
158
|
+
...options.mutation,
|
|
159
|
+
mutationKey
|
|
160
|
+
}
|
|
161
|
+
} : {
|
|
162
|
+
mutation: { mutationKey },
|
|
163
|
+
request: void 0
|
|
164
|
+
};
|
|
165
|
+
const mutationFn = (props) => {
|
|
166
|
+
const { provider, mediaId, data } = props ?? {};
|
|
167
|
+
return writePosition(provider, mediaId, data, requestOptions);
|
|
168
|
+
};
|
|
169
|
+
return {
|
|
170
|
+
mutationFn,
|
|
171
|
+
...mutationOptions
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* @summary Write Position
|
|
176
|
+
*/
|
|
177
|
+
const useWritePosition = (options, queryClient) => {
|
|
178
|
+
return useMutation(getWritePositionMutationOptions(options), queryClient);
|
|
179
|
+
};
|
|
180
|
+
const getListCurrentReadingsUrl = (provider) => {
|
|
181
|
+
return `/partners/${provider}/readings`;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* The partner's own "continue reading" list, joined back to our catalogue.
|
|
185
|
+
*
|
|
186
|
+
* Entries the partner knows and our catalogue does not are dropped rather than
|
|
187
|
+
* surfaced with a null id: the import runs nightly and the partner's list is
|
|
188
|
+
* live, so a title added today is genuinely not browsable here yet, and a card
|
|
189
|
+
* that cannot be opened is worse than one that is absent.
|
|
190
|
+
* @summary List Current Readings
|
|
191
|
+
*/
|
|
192
|
+
const listCurrentReadings = async (provider, options) => {
|
|
193
|
+
return request(getListCurrentReadingsUrl(provider), {
|
|
194
|
+
...options,
|
|
195
|
+
method: "GET"
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
const getListCurrentReadingsQueryKey = (provider) => {
|
|
199
|
+
return [`/partners/${provider}/readings`];
|
|
200
|
+
};
|
|
201
|
+
const getListCurrentReadingsQueryOptions = (provider, options) => {
|
|
202
|
+
const { query: queryOptions, request: requestOptions } = options ?? {};
|
|
203
|
+
const queryKey = queryOptions?.queryKey ?? getListCurrentReadingsQueryKey(provider);
|
|
204
|
+
const queryFn = ({ signal }) => listCurrentReadings(provider, {
|
|
205
|
+
signal,
|
|
206
|
+
...requestOptions
|
|
207
|
+
});
|
|
208
|
+
return {
|
|
209
|
+
queryKey,
|
|
210
|
+
queryFn,
|
|
211
|
+
enabled: provider !== null && provider !== void 0,
|
|
212
|
+
...queryOptions
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* @summary List Current Readings
|
|
217
|
+
*/
|
|
218
|
+
function useListCurrentReadings(provider, options, queryClient) {
|
|
219
|
+
const queryOptions = getListCurrentReadingsQueryOptions(provider, options);
|
|
220
|
+
const query = useQuery(queryOptions, queryClient);
|
|
221
|
+
return withQueryKey(query, queryOptions.queryKey);
|
|
222
|
+
}
|
|
223
|
+
//#endregion
|
|
224
|
+
export { getListCurrentReadingsQueryKey, getListCurrentReadingsQueryOptions, getListCurrentReadingsUrl, getReadPackageQueryKey, getReadPackageQueryOptions, getReadPackageUrl, getReadPositionQueryKey, getReadPositionQueryOptions, getReadPositionUrl, getWritePositionMutationKey, getWritePositionMutationOptions, getWritePositionUrl, listCurrentReadings, readPackage, readPosition, useListCurrentReadings, useReadPackage, useReadPosition, useWritePosition, writePosition };
|
|
225
|
+
|
|
226
|
+
//# sourceMappingURL=partner-reader.js.map
|
|
@@ -0,0 +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.1.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} 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":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
|
|
2
|
+
import { Gn as HTTPExceptionResponse, gt as ProfileCreateWrite, ht as ProfileRead, mt as ProfileListRead, pt as ProfileUpdateWrite, t as ValidationErrorResponse } from "../chunks/index.js";
|
|
3
|
+
import { a as ErrorType, c as request, n as BodyType } from "../chunks/client.js";
|
|
4
|
+
import { DataTag, DefinedInitialDataOptions, DefinedUseQueryResult, QueryClient, QueryKey, UndefinedInitialDataOptions, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
|
|
5
|
+
//#region src/react/profiles/profiles.d.ts
|
|
6
|
+
type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
|
|
7
|
+
export declare const getListProfilesUrl: () => string;
|
|
8
|
+
/**
|
|
9
|
+
* Every profile on this account, the holder included (E20).
|
|
10
|
+
*
|
|
11
|
+
* Unpaginated: the cap is :data:`PROFILE_LIMIT`, so there is no page to turn.
|
|
12
|
+
* One endpoint replaces two legacy routes that rendered the same collection
|
|
13
|
+
* differently — the difference was presentation, which is the client's problem.
|
|
14
|
+
* @summary List Profiles
|
|
15
|
+
*/
|
|
16
|
+
export declare const listProfiles: (options?: Parameters<typeof request>[1]) => Promise<ProfileListRead>;
|
|
17
|
+
export declare const getListProfilesQueryKey: () => readonly [`/me/profiles`];
|
|
18
|
+
export declare const getListProfilesQueryOptions: <TData = Awaited<ReturnType<typeof listProfiles>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(options?: {
|
|
19
|
+
query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof listProfiles>>, TError, TData>>;
|
|
20
|
+
request?: SecondParameter<typeof request>;
|
|
21
|
+
}) => UseQueryOptions<Awaited<ReturnType<typeof listProfiles>>, TError, TData> & {
|
|
22
|
+
queryKey: DataTag<QueryKey, TData, TError>;
|
|
23
|
+
};
|
|
24
|
+
export type ListProfilesQueryResult = NonNullable<Awaited<ReturnType<typeof listProfiles>>>;
|
|
25
|
+
export type ListProfilesQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>;
|
|
26
|
+
export declare function useListProfiles<TData = Awaited<ReturnType<typeof listProfiles>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(options: {
|
|
27
|
+
query: Partial<UseQueryOptions<Awaited<ReturnType<typeof listProfiles>>, TError, TData>> & Pick<DefinedInitialDataOptions<Awaited<ReturnType<typeof listProfiles>>, TError, Awaited<ReturnType<typeof listProfiles>>>, 'initialData'>;
|
|
28
|
+
request?: SecondParameter<typeof request>;
|
|
29
|
+
}, queryClient?: QueryClient): DefinedUseQueryResult<TData, TError> & {
|
|
30
|
+
queryKey: DataTag<QueryKey, TData, TError>;
|
|
31
|
+
};
|
|
32
|
+
export declare function useListProfiles<TData = Awaited<ReturnType<typeof listProfiles>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(options?: {
|
|
33
|
+
query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof listProfiles>>, TError, TData>> & Pick<UndefinedInitialDataOptions<Awaited<ReturnType<typeof listProfiles>>, TError, Awaited<ReturnType<typeof listProfiles>>>, 'initialData'>;
|
|
34
|
+
request?: SecondParameter<typeof request>;
|
|
35
|
+
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
|
|
36
|
+
queryKey: DataTag<QueryKey, TData, TError>;
|
|
37
|
+
};
|
|
38
|
+
export declare function useListProfiles<TData = Awaited<ReturnType<typeof listProfiles>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(options?: {
|
|
39
|
+
query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof listProfiles>>, TError, TData>>;
|
|
40
|
+
request?: SecondParameter<typeof request>;
|
|
41
|
+
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
|
|
42
|
+
queryKey: DataTag<QueryKey, TData, TError>;
|
|
43
|
+
};
|
|
44
|
+
export declare const getCreateProfileUrl: () => string;
|
|
45
|
+
/**
|
|
46
|
+
* Add a profile to this account (E21).
|
|
47
|
+
*
|
|
48
|
+
* The new row inherits ``tenant_id`` from the holder rather than accepting one:
|
|
49
|
+
* a profile belongs to the same company as the account it hangs off, and
|
|
50
|
+
* letting that be supplied would be a way into another tenant.
|
|
51
|
+
*
|
|
52
|
+
* A profile has no credential of its own. It has no ``login``, no ``email`` and
|
|
53
|
+
* no password — it is reached by switching within an authenticated session, so
|
|
54
|
+
* there is nothing for it to authenticate *with*.
|
|
55
|
+
* @summary Create Profile
|
|
56
|
+
*/
|
|
57
|
+
export declare const createProfile: (profileCreateWrite: ProfileCreateWrite, options?: Parameters<typeof request>[1]) => Promise<ProfileRead>;
|
|
58
|
+
export declare const getCreateProfileMutationKey: () => readonly ['createProfile'];
|
|
59
|
+
export declare const getCreateProfileMutationOptions: <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>, TContext = unknown>(options?: {
|
|
60
|
+
mutation?: UseMutationOptions<Awaited<ReturnType<typeof createProfile>>, TError, CreateProfileMutationVariables, TContext>;
|
|
61
|
+
request?: SecondParameter<typeof request>;
|
|
62
|
+
}) => UseMutationOptions<Awaited<ReturnType<typeof createProfile>>, TError, CreateProfileMutationVariables, TContext>;
|
|
63
|
+
export type CreateProfileMutationResult = NonNullable<Awaited<ReturnType<typeof createProfile>>>;
|
|
64
|
+
export type CreateProfileMutationBody = BodyType<ProfileCreateWrite>;
|
|
65
|
+
export type CreateProfileMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>;
|
|
66
|
+
export type CreateProfileMutationVariables = {
|
|
67
|
+
data: BodyType<ProfileCreateWrite>;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @summary Create Profile
|
|
71
|
+
*/
|
|
72
|
+
export declare const useCreateProfile: <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>, TContext = unknown>(options?: {
|
|
73
|
+
mutation?: UseMutationOptions<Awaited<ReturnType<typeof createProfile>>, TError, CreateProfileMutationVariables, TContext>;
|
|
74
|
+
request?: SecondParameter<typeof request>;
|
|
75
|
+
}, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof createProfile>>, TError, CreateProfileMutationVariables, TContext>;
|
|
76
|
+
export declare const getDeleteProfileUrl: (profileId: number) => string;
|
|
77
|
+
/**
|
|
78
|
+
* Remove a profile (E24). Idempotent.
|
|
79
|
+
*
|
|
80
|
+
* Deleting a profile that is already gone is ``204``, not ``404``: the caller
|
|
81
|
+
* asked for it to be absent and it is absent. A retried delete after a timeout
|
|
82
|
+
* must not read as a failure.
|
|
83
|
+
*
|
|
84
|
+
* The account holder cannot be deleted this way — that is E17, which anonymises
|
|
85
|
+
* the whole account and is a different decision with different consequences.
|
|
86
|
+
* @summary Delete Profile
|
|
87
|
+
*/
|
|
88
|
+
export declare const deleteProfile: (profileId: number, options?: Parameters<typeof request>[1]) => Promise<void>;
|
|
89
|
+
export declare const getDeleteProfileMutationKey: () => readonly ['deleteProfile'];
|
|
90
|
+
export declare const getDeleteProfileMutationOptions: <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>, TContext = unknown>(options?: {
|
|
91
|
+
mutation?: UseMutationOptions<Awaited<ReturnType<typeof deleteProfile>>, TError, DeleteProfileMutationVariables, TContext>;
|
|
92
|
+
request?: SecondParameter<typeof request>;
|
|
93
|
+
}) => UseMutationOptions<Awaited<ReturnType<typeof deleteProfile>>, TError, DeleteProfileMutationVariables, TContext>;
|
|
94
|
+
export type DeleteProfileMutationResult = NonNullable<Awaited<ReturnType<typeof deleteProfile>>>;
|
|
95
|
+
export type DeleteProfileMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>;
|
|
96
|
+
export type DeleteProfileMutationVariables = {
|
|
97
|
+
profileId: number;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* @summary Delete Profile
|
|
101
|
+
*/
|
|
102
|
+
export declare const useDeleteProfile: <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>, TContext = unknown>(options?: {
|
|
103
|
+
mutation?: UseMutationOptions<Awaited<ReturnType<typeof deleteProfile>>, TError, DeleteProfileMutationVariables, TContext>;
|
|
104
|
+
request?: SecondParameter<typeof request>;
|
|
105
|
+
}, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof deleteProfile>>, TError, DeleteProfileMutationVariables, TContext>;
|
|
106
|
+
export declare const getReadProfileUrl: (profileId: number) => string;
|
|
107
|
+
/**
|
|
108
|
+
* One profile (E22). Returns the resource; the legacy rendered an edit form.
|
|
109
|
+
* @summary Read Profile
|
|
110
|
+
*/
|
|
111
|
+
export declare const readProfile: (profileId: number, options?: Parameters<typeof request>[1]) => Promise<ProfileRead>;
|
|
112
|
+
export declare const getReadProfileQueryKey: (profileId: number) => readonly [`/me/profiles/${number}`];
|
|
113
|
+
export declare const getReadProfileQueryOptions: <TData = Awaited<ReturnType<typeof readProfile>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(profileId: number, options?: {
|
|
114
|
+
query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof readProfile>>, TError, TData>>;
|
|
115
|
+
request?: SecondParameter<typeof request>;
|
|
116
|
+
}) => UseQueryOptions<Awaited<ReturnType<typeof readProfile>>, TError, TData> & {
|
|
117
|
+
queryKey: DataTag<QueryKey, TData, TError>;
|
|
118
|
+
};
|
|
119
|
+
export type ReadProfileQueryResult = NonNullable<Awaited<ReturnType<typeof readProfile>>>;
|
|
120
|
+
export type ReadProfileQueryError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>;
|
|
121
|
+
export declare function useReadProfile<TData = Awaited<ReturnType<typeof readProfile>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(profileId: number, options: {
|
|
122
|
+
query: Partial<UseQueryOptions<Awaited<ReturnType<typeof readProfile>>, TError, TData>> & Pick<DefinedInitialDataOptions<Awaited<ReturnType<typeof readProfile>>, TError, Awaited<ReturnType<typeof readProfile>>>, 'initialData'>;
|
|
123
|
+
request?: SecondParameter<typeof request>;
|
|
124
|
+
}, queryClient?: QueryClient): DefinedUseQueryResult<TData, TError> & {
|
|
125
|
+
queryKey: DataTag<QueryKey, TData, TError>;
|
|
126
|
+
};
|
|
127
|
+
export declare function useReadProfile<TData = Awaited<ReturnType<typeof readProfile>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(profileId: number, options?: {
|
|
128
|
+
query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof readProfile>>, TError, TData>> & Pick<UndefinedInitialDataOptions<Awaited<ReturnType<typeof readProfile>>, TError, Awaited<ReturnType<typeof readProfile>>>, 'initialData'>;
|
|
129
|
+
request?: SecondParameter<typeof request>;
|
|
130
|
+
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
|
|
131
|
+
queryKey: DataTag<QueryKey, TData, TError>;
|
|
132
|
+
};
|
|
133
|
+
export declare function useReadProfile<TData = Awaited<ReturnType<typeof readProfile>>, TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>>(profileId: number, options?: {
|
|
134
|
+
query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof readProfile>>, TError, TData>>;
|
|
135
|
+
request?: SecondParameter<typeof request>;
|
|
136
|
+
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
|
|
137
|
+
queryKey: DataTag<QueryKey, TData, TError>;
|
|
138
|
+
};
|
|
139
|
+
export declare const getUpdateProfileUrl: (profileId: number) => string;
|
|
140
|
+
/**
|
|
141
|
+
* Partially update a profile (E23).
|
|
142
|
+
*
|
|
143
|
+
* The target comes from the path and the row is re-read from the database
|
|
144
|
+
* before anything is written, so nothing in the body can retarget the write.
|
|
145
|
+
* That is the one habit worth keeping from the legacy handler, which overwrote
|
|
146
|
+
* the identity fields from the trusted record for exactly this reason.
|
|
147
|
+
*
|
|
148
|
+
* ``exclude_unset`` is what makes this a PATCH rather than a PUT wearing the
|
|
149
|
+
* wrong verb: a field the client did not send is untouched, which is not the
|
|
150
|
+
* same as a field it sent as null.
|
|
151
|
+
* @summary Update Profile
|
|
152
|
+
*/
|
|
153
|
+
export declare const updateProfile: (profileId: number, profileUpdateWrite: ProfileUpdateWrite, options?: Parameters<typeof request>[1]) => Promise<ProfileRead>;
|
|
154
|
+
export declare const getUpdateProfileMutationKey: () => readonly ['updateProfile'];
|
|
155
|
+
export declare const getUpdateProfileMutationOptions: <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>, TContext = unknown>(options?: {
|
|
156
|
+
mutation?: UseMutationOptions<Awaited<ReturnType<typeof updateProfile>>, TError, UpdateProfileMutationVariables, TContext>;
|
|
157
|
+
request?: SecondParameter<typeof request>;
|
|
158
|
+
}) => UseMutationOptions<Awaited<ReturnType<typeof updateProfile>>, TError, UpdateProfileMutationVariables, TContext>;
|
|
159
|
+
export type UpdateProfileMutationResult = NonNullable<Awaited<ReturnType<typeof updateProfile>>>;
|
|
160
|
+
export type UpdateProfileMutationBody = BodyType<ProfileUpdateWrite>;
|
|
161
|
+
export type UpdateProfileMutationError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>;
|
|
162
|
+
export type UpdateProfileMutationVariables = {
|
|
163
|
+
profileId: number;
|
|
164
|
+
data: BodyType<ProfileUpdateWrite>;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* @summary Update Profile
|
|
168
|
+
*/
|
|
169
|
+
export declare const useUpdateProfile: <TError = ErrorType<HTTPExceptionResponse | ValidationErrorResponse>, TContext = unknown>(options?: {
|
|
170
|
+
mutation?: UseMutationOptions<Awaited<ReturnType<typeof updateProfile>>, TError, UpdateProfileMutationVariables, TContext>;
|
|
171
|
+
request?: SecondParameter<typeof request>;
|
|
172
|
+
}, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof updateProfile>>, TError, UpdateProfileMutationVariables, TContext>;
|
|
173
|
+
//#endregion
|
|
174
|
+
//# sourceMappingURL=profiles.d.ts.map
|