@flytedesk/app-kit 5.0.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +184 -41
- package/dist/auth/client/authSession.d.ts +168 -0
- package/dist/auth/client/authSession.js +581 -0
- package/dist/auth/client/authSession.js.map +1 -0
- package/dist/auth/client/browserEnvironment.d.ts +22 -0
- package/dist/auth/client/browserEnvironment.js +87 -0
- package/dist/auth/client/browserEnvironment.js.map +1 -0
- package/dist/auth/client/httpClient.d.ts +22 -25
- package/dist/auth/client/httpClient.js +49 -51
- package/dist/auth/client/httpClient.js.map +1 -1
- package/dist/auth/client/index.d.ts +15 -8
- package/dist/auth/client/index.js +13 -7
- package/dist/auth/client/index.js.map +1 -1
- package/dist/auth/client/testing.d.ts +6 -0
- package/dist/auth/client/testing.js +20 -0
- package/dist/auth/client/testing.js.map +1 -0
- package/dist/auth/client/useAuthSession.d.ts +54 -91
- package/dist/auth/client/useAuthSession.js +65 -252
- package/dist/auth/client/useAuthSession.js.map +1 -1
- package/dist/auth/index.d.ts +3 -4
- package/dist/auth/index.js +1 -2
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/oidc-client.d.ts +18 -4
- package/dist/auth/oidc-client.js +18 -1
- package/dist/auth/oidc-client.js.map +1 -1
- package/dist/auth/plugin.js +250 -211
- package/dist/auth/plugin.js.map +1 -1
- package/dist/auth/returnTarget.d.ts +30 -0
- package/dist/auth/returnTarget.js +48 -0
- package/dist/auth/returnTarget.js.map +1 -0
- package/dist/auth/shared-types.d.ts +18 -41
- package/dist/auth/shared-types.js +18 -45
- package/dist/auth/shared-types.js.map +1 -1
- package/dist/auth/testing/fake-idp.d.ts +38 -1
- package/dist/auth/testing/fake-idp.js +166 -27
- package/dist/auth/testing/fake-idp.js.map +1 -1
- package/dist/auth/types.d.ts +26 -29
- package/dist/bigquery/errors.d.ts +19 -0
- package/dist/bigquery/errors.js +41 -0
- package/dist/bigquery/errors.js.map +1 -1
- package/dist/bigquery/index.d.ts +2 -2
- package/dist/bigquery/index.js +1 -1
- package/dist/bigquery/index.js.map +1 -1
- package/dist/bigquery/query.js +14 -1
- package/dist/bigquery/query.js.map +1 -1
- package/dist/bigquery/schema.d.ts +5 -0
- package/dist/bigquery/schema.js +35 -0
- package/dist/bigquery/schema.js.map +1 -0
- package/dist/bigquery/types.d.ts +47 -2
- package/dist/chat/index.d.ts +52 -21
- package/dist/chat/index.js +50 -20
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/mcp/entry.d.ts +37 -0
- package/dist/chat/mcp/entry.js +135 -0
- package/dist/chat/mcp/entry.js.map +1 -0
- package/dist/cli/is-running-as-main.d.ts +1 -0
- package/dist/cli/is-running-as-main.js +54 -0
- package/dist/cli/is-running-as-main.js.map +1 -0
- package/dist/cli/sync-engine.d.ts +1 -32
- package/dist/cli/sync-engine.js +7 -45
- package/dist/cli/sync-engine.js.map +1 -1
- package/dist/flags/evaluate.d.ts +43 -0
- package/dist/flags/evaluate.js +64 -0
- package/dist/flags/evaluate.js.map +1 -0
- package/dist/flags/index.d.ts +22 -6
- package/dist/flags/index.js +21 -6
- package/dist/flags/index.js.map +1 -1
- package/dist/flags/plugin.js +73 -7
- package/dist/flags/plugin.js.map +1 -1
- package/dist/flags/types.d.ts +25 -0
- package/package.json +11 -4
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The real browser behind `./authSession.ts`'s `AuthSessionEnvironment` (AK-35), and the
|
|
3
|
+
* one per-tab `authSession` every app reads. Browser-safe, ZERO Node imports.
|
|
4
|
+
*
|
|
5
|
+
* This package's tsconfig deliberately has no "DOM" lib (it is Node-first — see
|
|
6
|
+
* `./httpClient.ts`'s own `declare const window`), so the few browser globals used here
|
|
7
|
+
* are declared below with exactly the members this file touches. The declarations are
|
|
8
|
+
* erased at compile time and resolve to the real browser objects at runtime.
|
|
9
|
+
*/
|
|
10
|
+
import { createAuthSession, SESSION_CHANNEL, } from "./authSession.js";
|
|
11
|
+
function isSessionMessage(data) {
|
|
12
|
+
if (typeof data !== "object" || data === null)
|
|
13
|
+
return false;
|
|
14
|
+
const { type, userId } = data;
|
|
15
|
+
return (type === "signed-out" ||
|
|
16
|
+
(type === "signed-in" && typeof userId === "string"));
|
|
17
|
+
}
|
|
18
|
+
export function browserEnvironment() {
|
|
19
|
+
return {
|
|
20
|
+
href: () => window.location.href,
|
|
21
|
+
navigate: (url) => window.location.assign(url),
|
|
22
|
+
replaceUrl: (url) => window.history.replaceState(null, "", url),
|
|
23
|
+
reload: () => window.location.reload(),
|
|
24
|
+
isVisible: () => document.visibilityState === "visible",
|
|
25
|
+
onAttention(listener) {
|
|
26
|
+
const onVisibility = () => {
|
|
27
|
+
if (document.visibilityState === "visible")
|
|
28
|
+
listener();
|
|
29
|
+
};
|
|
30
|
+
document.addEventListener("visibilitychange", onVisibility);
|
|
31
|
+
window.addEventListener("focus", listener);
|
|
32
|
+
return () => {
|
|
33
|
+
document.removeEventListener("visibilitychange", onVisibility);
|
|
34
|
+
window.removeEventListener("focus", listener);
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
onRestore(listener) {
|
|
38
|
+
const onPageShow = (event) => {
|
|
39
|
+
if (event.persisted)
|
|
40
|
+
listener();
|
|
41
|
+
};
|
|
42
|
+
window.addEventListener("pageshow", onPageShow);
|
|
43
|
+
return () => window.removeEventListener("pageshow", onPageShow);
|
|
44
|
+
},
|
|
45
|
+
// Read lazily, per call: merely touching `window.sessionStorage` throws when site data
|
|
46
|
+
// is blocked, which the lifecycle handles per key.
|
|
47
|
+
sessionStorage: () => window.sessionStorage,
|
|
48
|
+
localStorage: () => window.localStorage,
|
|
49
|
+
openChannel(onMessage) {
|
|
50
|
+
const channel = new BroadcastChannel(SESSION_CHANNEL);
|
|
51
|
+
channel.onmessage = (event) => {
|
|
52
|
+
if (isSessionMessage(event.data))
|
|
53
|
+
onMessage(event.data);
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
post: (message) => channel.postMessage(message),
|
|
57
|
+
close: () => channel.close(),
|
|
58
|
+
};
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
let instance = null;
|
|
63
|
+
function current() {
|
|
64
|
+
instance ??= createAuthSession(browserEnvironment());
|
|
65
|
+
return instance;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* THE session of this tab — one lifecycle, however many components or modules read it.
|
|
69
|
+
* Created on first use (never at import, so importing this module is safe during SSR or
|
|
70
|
+
* in a Node test). React code reads it through `useAuthSession()`; anything else (an
|
|
71
|
+
* API helper, a store outside React) through `authSession.getSnapshot()` and
|
|
72
|
+
* `authSession.subscribe()`.
|
|
73
|
+
*/
|
|
74
|
+
export const authSession = {
|
|
75
|
+
getSnapshot: () => current().getSnapshot(),
|
|
76
|
+
subscribe: (listener) => current().subscribe(listener),
|
|
77
|
+
signOut: () => current().signOut(),
|
|
78
|
+
retry: () => current().retry(),
|
|
79
|
+
refreshUser: () => current().refreshUser(),
|
|
80
|
+
};
|
|
81
|
+
/** Test seam (`@flytedesk/app-kit/auth/client/testing`): stops and forgets the tab's
|
|
82
|
+
* lifecycle, so the next use starts a fresh one. */
|
|
83
|
+
export function resetAuthSession() {
|
|
84
|
+
instance?.stop();
|
|
85
|
+
instance = null;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=browserEnvironment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserEnvironment.js","sourceRoot":"","sources":["../../../src/auth/client/browserEnvironment.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,8 +43,8 @@ export type AuthUnavailableErrorCode = AuthUnavailableCode | typeof AUTH_UNREACH
|
|
|
43
43
|
* carrying one of `AUTH_UNAVAILABLE_CODES`) — or the automatic refresh reached no
|
|
44
44
|
* decision at all (`AUTH_UNREACHABLE_CODE`). Transient, and NOT a sign-out: the session
|
|
45
45
|
* (its refresh cookie) is intact and the same request can succeed once the dependency
|
|
46
|
-
* recovers.
|
|
47
|
-
* session and retries with backoff (its `"unavailable"` status). A subclass of
|
|
46
|
+
* recovers. It never announces a session end (`onSessionEnded`); `./authSession.ts` keeps
|
|
47
|
+
* the session and retries with backoff (its `"unavailable"` status). A subclass of
|
|
48
48
|
* ApiRequestError, so existing `instanceof ApiRequestError` handling still sees it.
|
|
49
49
|
*/
|
|
50
50
|
export declare class AuthUnavailableError extends ApiRequestError {
|
|
@@ -70,33 +70,31 @@ export declare function getAccessToken(): string | null;
|
|
|
70
70
|
/** As configured via configureApiClient — same origin/path every request in this
|
|
71
71
|
* module targets. */
|
|
72
72
|
export declare function getBaseUrl(): string;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
* then just reports the second 401 as a failure, with no recovery attempt. */
|
|
86
|
-
export declare function setAuthRecovery(recovery: AuthRecovery): () => void;
|
|
73
|
+
type SessionEndedListener = () => void;
|
|
74
|
+
/**
|
|
75
|
+
* Subscribes to the ONE signal that a session is over (AK-35): a request answered 401
|
|
76
|
+
* and the shared `refreshAccessToken()` then resolved `null` — the plugin itself refused
|
|
77
|
+
* the refresh cookie. That verdict, and only that, is what `./authSession.ts` turns into
|
|
78
|
+
* the session-expired state and an automatic sign-in. A 401 that follows a SUCCESSFUL
|
|
79
|
+
* refresh-and-retry is that route's own answer about that request (the session was just
|
|
80
|
+
* proven live), so it is thrown to the caller and never announced here — treating it as
|
|
81
|
+
* a session loss would loop: expired -> sign in -> authenticated -> the same 401.
|
|
82
|
+
* Internal to `@flytedesk/app-kit/auth/client`: an app never subscribes itself.
|
|
83
|
+
*/
|
|
84
|
+
export declare function onSessionEnded(listener: SessionEndedListener): () => void;
|
|
87
85
|
/**
|
|
88
86
|
* Runs — or joins, when one is already in flight — THE one `POST {routePrefix}/refresh`,
|
|
89
87
|
* and resolves the new access token (also stored via setAccessToken). Single-flighted and
|
|
90
|
-
* always deadline-bound: every caller that 401s, and
|
|
88
|
+
* always deadline-bound: every caller that 401s, and `./authSession.ts`'s own loads, share
|
|
91
89
|
* this one refresh — the refresh cookie rotates on every call, so two concurrent
|
|
92
90
|
* refreshes presenting one cookie would race, and a refresh that never answered would
|
|
93
91
|
* stall them all.
|
|
94
92
|
*
|
|
95
93
|
* AK-23 (L-c): only the plugin's verdict signs anyone out. A 401 — the one answer the
|
|
96
94
|
* plugin gives a refresh it refuses — resolves `null` ("no new token"), which
|
|
97
|
-
*
|
|
98
|
-
* AuthUnavailableError, shared by every waiting caller, so no caller
|
|
99
|
-
*
|
|
95
|
+
* sendWithAuthRetry treats as the session being over (`onSessionEnded`). Every other
|
|
96
|
+
* outcome rejects with AuthUnavailableError, shared by every waiting caller, so no caller
|
|
97
|
+
* ever announces a session end over an outage: the plugin's own 503 "could not decide",
|
|
100
98
|
* and an outcome that is no decision at all (AUTH_UNREACHABLE_CODE) — a network error,
|
|
101
99
|
* the deadline (the server's `/refresh` can legitimately outlast it: a contended
|
|
102
100
|
* session lock plus a slow flytedesk-id `/token` and authorization call), or a status
|
|
@@ -113,17 +111,16 @@ export interface RequestOptions {
|
|
|
113
111
|
* body decode. Past it the call rejects with a RequestDeadlineError and does nothing
|
|
114
112
|
* further (no retry, no auth-failure event). */
|
|
115
113
|
deadlineMs?: number;
|
|
116
|
-
/** Set only by a session layer's own bootstrap/probe calls, which ARE the auth
|
|
117
|
-
* recovery (or start it): a 401 that survives the refresh still starts the shared
|
|
118
|
-
* recovery, but this call does not wait for it — waiting would mean the recovery
|
|
119
|
-
* waiting on itself. */
|
|
120
|
-
ownsAuthRecovery?: boolean;
|
|
121
114
|
/** Passed straight to `fetch`'s own `keepalive` — lets a request started right
|
|
122
115
|
* before the page unloads actually complete instead of being cancelled the instant
|
|
123
116
|
* the page goes away. Only meaningfully used with a small body: the browser caps
|
|
124
117
|
* the total size of in-flight keepalive requests (~64KB combined). */
|
|
125
118
|
keepalive?: boolean;
|
|
126
119
|
}
|
|
120
|
+
/** The absolute URL of `path` on this client's api — for a top-level navigation (the
|
|
121
|
+
* sign-in route), which, unlike a fetch, can't be left relative to a dev proxy. A
|
|
122
|
+
* same-origin `baseUrl` resolves against `pageOrigin`. */
|
|
123
|
+
export declare function absoluteApiUrl(path: string, pageOrigin: string): string;
|
|
127
124
|
/** The one place a browser app talks to its own BFF api. Handles bearer auth,
|
|
128
125
|
* transparent access-token refresh on 401, and the { error, code, field? } error
|
|
129
126
|
* contract every @flytedesk/app-kit/auth-backed api returns. */
|
|
@@ -47,8 +47,8 @@ export const AUTH_UNREACHABLE_CODE = "auth_unreachable";
|
|
|
47
47
|
* carrying one of `AUTH_UNAVAILABLE_CODES`) — or the automatic refresh reached no
|
|
48
48
|
* decision at all (`AUTH_UNREACHABLE_CODE`). Transient, and NOT a sign-out: the session
|
|
49
49
|
* (its refresh cookie) is intact and the same request can succeed once the dependency
|
|
50
|
-
* recovers.
|
|
51
|
-
* session and retries with backoff (its `"unavailable"` status). A subclass of
|
|
50
|
+
* recovers. It never announces a session end (`onSessionEnded`); `./authSession.ts` keeps
|
|
51
|
+
* the session and retries with backoff (its `"unavailable"` status). A subclass of
|
|
52
52
|
* ApiRequestError, so existing `instanceof ApiRequestError` handling still sees it.
|
|
53
53
|
*/
|
|
54
54
|
export class AuthUnavailableError extends ApiRequestError {
|
|
@@ -111,21 +111,27 @@ export function getAccessToken() {
|
|
|
111
111
|
export function getBaseUrl() {
|
|
112
112
|
return baseUrl;
|
|
113
113
|
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
|
|
123
|
-
|
|
114
|
+
const sessionEndedListeners = new Set();
|
|
115
|
+
/**
|
|
116
|
+
* Subscribes to the ONE signal that a session is over (AK-35): a request answered 401
|
|
117
|
+
* and the shared `refreshAccessToken()` then resolved `null` — the plugin itself refused
|
|
118
|
+
* the refresh cookie. That verdict, and only that, is what `./authSession.ts` turns into
|
|
119
|
+
* the session-expired state and an automatic sign-in. A 401 that follows a SUCCESSFUL
|
|
120
|
+
* refresh-and-retry is that route's own answer about that request (the session was just
|
|
121
|
+
* proven live), so it is thrown to the caller and never announced here — treating it as
|
|
122
|
+
* a session loss would loop: expired -> sign in -> authenticated -> the same 401.
|
|
123
|
+
* Internal to `@flytedesk/app-kit/auth/client`: an app never subscribes itself.
|
|
124
|
+
*/
|
|
125
|
+
export function onSessionEnded(listener) {
|
|
126
|
+
sessionEndedListeners.add(listener);
|
|
124
127
|
return () => {
|
|
125
|
-
|
|
126
|
-
authRecovery = null;
|
|
128
|
+
sessionEndedListeners.delete(listener);
|
|
127
129
|
};
|
|
128
130
|
}
|
|
131
|
+
function announceSessionEnded() {
|
|
132
|
+
for (const listener of sessionEndedListeners)
|
|
133
|
+
listener();
|
|
134
|
+
}
|
|
129
135
|
/** Runs `run` under a deadline: past `ms`, its AbortSignal aborts (so the underlying
|
|
130
136
|
* fetch, and any body read on it, is cancelled) and the returned promise rejects with
|
|
131
137
|
* a RequestDeadlineError — the rejection does not depend on whatever `run` awaits
|
|
@@ -164,16 +170,16 @@ function refreshUnreachable(status, cause) {
|
|
|
164
170
|
/**
|
|
165
171
|
* Runs — or joins, when one is already in flight — THE one `POST {routePrefix}/refresh`,
|
|
166
172
|
* and resolves the new access token (also stored via setAccessToken). Single-flighted and
|
|
167
|
-
* always deadline-bound: every caller that 401s, and
|
|
173
|
+
* always deadline-bound: every caller that 401s, and `./authSession.ts`'s own loads, share
|
|
168
174
|
* this one refresh — the refresh cookie rotates on every call, so two concurrent
|
|
169
175
|
* refreshes presenting one cookie would race, and a refresh that never answered would
|
|
170
176
|
* stall them all.
|
|
171
177
|
*
|
|
172
178
|
* AK-23 (L-c): only the plugin's verdict signs anyone out. A 401 — the one answer the
|
|
173
179
|
* plugin gives a refresh it refuses — resolves `null` ("no new token"), which
|
|
174
|
-
*
|
|
175
|
-
* AuthUnavailableError, shared by every waiting caller, so no caller
|
|
176
|
-
*
|
|
180
|
+
* sendWithAuthRetry treats as the session being over (`onSessionEnded`). Every other
|
|
181
|
+
* outcome rejects with AuthUnavailableError, shared by every waiting caller, so no caller
|
|
182
|
+
* ever announces a session end over an outage: the plugin's own 503 "could not decide",
|
|
177
183
|
* and an outcome that is no decision at all (AUTH_UNREACHABLE_CODE) — a network error,
|
|
178
184
|
* the deadline (the server's `/refresh` can legitimately outlast it: a contended
|
|
179
185
|
* session lock plus a slow flytedesk-id `/token` and authorization call), or a status
|
|
@@ -216,6 +222,12 @@ export async function refreshAccessToken() {
|
|
|
216
222
|
function isAbsoluteUrl(value) {
|
|
217
223
|
return /^[a-z][a-z\d+.-]*:\/\//i.test(value);
|
|
218
224
|
}
|
|
225
|
+
/** The absolute URL of `path` on this client's api — for a top-level navigation (the
|
|
226
|
+
* sign-in route), which, unlike a fetch, can't be left relative to a dev proxy. A
|
|
227
|
+
* same-origin `baseUrl` resolves against `pageOrigin`. */
|
|
228
|
+
export function absoluteApiUrl(path, pageOrigin) {
|
|
229
|
+
return isAbsoluteUrl(baseUrl) ? `${baseUrl}${path}` : `${pageOrigin}${baseUrl}${path}`;
|
|
230
|
+
}
|
|
219
231
|
function buildUrl(path, query) {
|
|
220
232
|
const url = new URL(baseUrl + path, typeof window !== "undefined" ? window.location.origin : "http://localhost");
|
|
221
233
|
if (query) {
|
|
@@ -235,8 +247,7 @@ function buildUrl(path, query) {
|
|
|
235
247
|
return isAbsoluteUrl(baseUrl) ? url.toString() : url.pathname + url.search;
|
|
236
248
|
}
|
|
237
249
|
/** Shared tail of both apiRequest and apiUpload: fires `doFetch`, transparently
|
|
238
|
-
* retries once after a refresh on 401 (unless skipped)
|
|
239
|
-
* more after the shared auth recovery (see setAuthRecovery) — and applies the same
|
|
250
|
+
* retries once after a refresh on 401 (unless skipped), and applies the same
|
|
240
251
|
* { error, code, field? } error contract / 204-handling / JSON decode to the result —
|
|
241
252
|
* all under `deadlineMs` when one is given (see withDeadline). Kept as one place so
|
|
242
253
|
* the auth-retry dance can't drift between the JSON and multipart transports. */
|
|
@@ -246,43 +257,30 @@ async function sendAndDecode(label, doFetch, options) {
|
|
|
246
257
|
return decodeWithAuthRetry(doFetch, options);
|
|
247
258
|
return withDeadline(label, deadlineMs, (signal) => decodeWithAuthRetry(doFetch, options, signal));
|
|
248
259
|
}
|
|
249
|
-
/** The shared tail of every transport this client offers: fires `doFetch`,
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
const recovery = authRecovery;
|
|
258
|
-
const sentAs = recovery?.principal() ?? null;
|
|
260
|
+
/** The shared tail of every transport this client offers: fires `doFetch`, and on a
|
|
261
|
+
* 401 (unless skipped) refreshes once through the shared single-flighted
|
|
262
|
+
* `refreshAccessToken` and retries. When that refresh is REFUSED (it resolves `null`),
|
|
263
|
+
* the session is over: `onSessionEnded` listeners hear it and the 401 is thrown. Any
|
|
264
|
+
* non-2xx left after that is thrown decoded. Returns the successful raw Response so
|
|
265
|
+
* each transport (JSON body, blob download) can decode it its own way; this is the ONE
|
|
266
|
+
* place the auth-retry dance lives, so it can't drift between them. */
|
|
267
|
+
async function sendWithAuthRetry(doFetch, { skipAuthRetry }, signal) {
|
|
259
268
|
let res = await doFetch(signal);
|
|
260
269
|
if (res.status === 401 && !skipAuthRetry) {
|
|
261
270
|
// Rejects with AuthUnavailableError on an outage (AK-23) — straight out of this
|
|
262
|
-
// call
|
|
271
|
+
// call: an outage is not a sign-out.
|
|
263
272
|
const refreshed = await refreshAccessToken();
|
|
264
273
|
// The shared refresh is not cancelled by this call's deadline (other callers may
|
|
265
274
|
// still want it) — but a call that has already missed its deadline must not act on
|
|
266
|
-
// its outcome: no retry, and no
|
|
275
|
+
// its outcome: no retry, and no session-ended announcement for a caller that gave up.
|
|
267
276
|
signal?.throwIfAborted();
|
|
268
|
-
if (refreshed)
|
|
277
|
+
if (refreshed === null) {
|
|
278
|
+
// AK-35: the plugin refused the refresh cookie — the only verdict that ends a
|
|
279
|
+
// session. See onSessionEnded.
|
|
280
|
+
announceSessionEnded();
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
269
283
|
res = await doFetch(signal);
|
|
270
|
-
signal?.throwIfAborted();
|
|
271
|
-
if (res.status === 401) {
|
|
272
|
-
// Both the original request and the refresh-then-retry (or the refresh call
|
|
273
|
-
// itself, if it never returned a token) came back 401 — the session is gone,
|
|
274
|
-
// not just this in-memory access token. See setAuthRecovery.
|
|
275
|
-
if (recovery && ownsAuthRecovery) {
|
|
276
|
-
void recovery.recover();
|
|
277
|
-
}
|
|
278
|
-
else if (recovery) {
|
|
279
|
-
await recovery.recover();
|
|
280
|
-
signal?.throwIfAborted();
|
|
281
|
-
// Replay only for the same user. A recovery that ended signed out, or signed
|
|
282
|
-
// in as someone else, leaves this request failed.
|
|
283
|
-
if (sentAs !== null && recovery.principal() === sentAs)
|
|
284
|
-
res = await doFetch(signal);
|
|
285
|
-
}
|
|
286
284
|
signal?.throwIfAborted();
|
|
287
285
|
}
|
|
288
286
|
}
|
|
@@ -300,7 +298,7 @@ async function decodeWithAuthRetry(doFetch, options, signal) {
|
|
|
300
298
|
* transparent access-token refresh on 401, and the { error, code, field? } error
|
|
301
299
|
* contract every @flytedesk/app-kit/auth-backed api returns. */
|
|
302
300
|
export async function apiRequest(path, options = {}) {
|
|
303
|
-
const { method = "GET", body, query, skipAuthRetry, deadlineMs,
|
|
301
|
+
const { method = "GET", body, query, skipAuthRetry, deadlineMs, keepalive } = options;
|
|
304
302
|
const doFetch = async (signal) => fetch(buildUrl(path, query), {
|
|
305
303
|
method,
|
|
306
304
|
credentials: "include",
|
|
@@ -312,7 +310,7 @@ export async function apiRequest(path, options = {}) {
|
|
|
312
310
|
signal,
|
|
313
311
|
...(keepalive ? { keepalive: true } : {}),
|
|
314
312
|
});
|
|
315
|
-
return sendAndDecode(`${method} ${path}`, doFetch, { skipAuthRetry, deadlineMs
|
|
313
|
+
return sendAndDecode(`${method} ${path}`, doFetch, { skipAuthRetry, deadlineMs });
|
|
316
314
|
}
|
|
317
315
|
/** Sibling to apiRequest for multipart/form-data uploads. Same bearer auth, 401 ->
|
|
318
316
|
* refresh -> retry-once dance, and error contract — but always POSTs `formData` as-is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../../src/auth/client/httpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,GAGd,MAAM,oBAAoB,CAAC;AAkB5B;;;8EAG8E;AAC9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAEpE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,IAAI,CAAS;IACb,KAAK,CAAU;IACf,MAAM,CAAS;IACf;;qDAEiD;IACjD,IAAI,CAAyC;IAC7C,YAAY,MAAc,EAAE,IAA4C;QACtE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAMxD;;;;;;;;;GASG;AACH,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAEvD,YAAY,MAAc,EAAE,IAAiF;QAC3G,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,SAAS,qBAAqB,CAAC,IAAa;IAC1C,OAAQ,sBAA6C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAGD,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEpE;;oFAEoF;AACpF,MAAM,UAAU,iBAAiB,CAAC,QAAiC;IACjE,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,GAAG,EAAE;QACV,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA2B;IACvD,KAAK,MAAM,QAAQ,IAAI,wBAAwB;QAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;+BAE+B;AAC/B,KAAK,UAAU,iBAAiB,CAAC,GAAa;IAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAA2C,CAAC;IACxG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,OAAO,oBAAoB,CAAC,IAAI,oBAAoB,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,6DAA6D;AAC7D,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,IAAY,EAAE,EAAU;QAClC,KAAK,CAAC,GAAG,IAAI,4BAA4B,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,IAAI,WAAW,GAAkB,IAAI,CAAC;AACtC,IAAI,cAAc,GAAkC,IAAI,CAAC;AACzD,IAAI,OAAO,GAAG,SAAS,CAAC;AAExB,MAAM,UAAU,kBAAkB,CAAC,IAAyB;IAC1D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,WAAW,GAAG,KAAK,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;sBACsB;AACtB,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAQD,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C;;;;;;+EAM+E;AAC/E,MAAM,UAAU,eAAe,CAAC,QAAsB;IACpD,YAAY,GAAG,QAAQ,CAAC;IACxB,OAAO,GAAG,EAAE;QACV,IAAI,YAAY,KAAK,QAAQ;YAAE,YAAY,GAAG,IAAI,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;;;4DAG4D;AAC5D,KAAK,UAAU,YAAY,CACzB,IAAY,EACZ,EAAU,EACV,GAAwC,EACxC,cAA4B;IAE5B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,cAAc,CAAC,OAAO;YAAE,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;YAC/D,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,KAAgD,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAChD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClD,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;4DAC4D;AAC5D,SAAS,kBAAkB,CAAC,MAAc,EAAE,KAAa;IACvD,OAAO,oBAAoB,CACzB,IAAI,oBAAoB,CAAC,MAAM,EAAE;QAC/B,KAAK,EAAE,6CAA6C,KAAK,EAAE;QAC3D,IAAI,EAAE,qBAAqB;KAC5B,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAChE,cAAc,GAAG,YAAY,CAC3B,QAAQ,WAAW,EAAE,EACrB,2BAA2B,EAC3B,KAAK,EAAE,MAAM,EAAE,EAAE;YACf,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,WAAW,EAAE,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,SAAS;gBACtB,MAAM;aACP,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,KAAK,YAAY,oBAAoB;oBAAE,MAAM,KAAK,CAAC;gBACvD,MAAM,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;YAC3D,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC,CACF;aACE,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,GAAG,YAAY,oBAAoB;gBAAE,MAAM,GAAG,CAAC;YACnD,MAAM,kBAAkB,CACtB,CAAC,EACD,GAAG,YAAY,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iCAAiC,CAC9F,CAAC;QACJ,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AA0BD;gFACgF;AAChF,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,KAA+B;IAC7D,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,OAAO,GAAG,IAAI,EACd,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAC5E,CAAC;IACF,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;gBAAE,SAAS;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;gBACnF,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,6EAA6E;IAC7E,oFAAoF;IACpF,oFAAoF;IACpF,4CAA4C;IAC5C,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;AAC7E,CAAC;AAID;;;;;kFAKkF;AAClF,KAAK,UAAU,aAAa,CAAI,KAAa,EAAE,OAAgB,EAAE,OAAoB;IACnF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,mBAAmB,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9E,OAAO,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAI,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACvG,CAAC;AAED;;;;;4EAK4E;AAC5E,KAAK,UAAU,iBAAiB,CAC9B,OAAgB,EAChB,EAAE,aAAa,EAAE,gBAAgB,EAAe,EAChD,MAAoB;IAEpB,sFAAsF;IACtF,MAAM,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;IAC7C,IAAI,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,gFAAgF;QAChF,8DAA8D;QAC9D,MAAM,SAAS,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC7C,iFAAiF;QACjF,mFAAmF;QACnF,8EAA8E;QAC9E,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,IAAI,SAAS;YAAE,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,4EAA4E;YAC5E,6EAA6E;YAC7E,6DAA6D;YAC7D,IAAI,QAAQ,IAAI,gBAAgB,EAAE,CAAC;gBACjC,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,EAAE,cAAc,EAAE,CAAC;gBACzB,6EAA6E;gBAC7E,kDAAkD;gBAClD,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,KAAK,MAAM;oBAAE,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,EAAE,cAAc,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAgB,EAChB,OAAoB,EACpB,MAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,SAAc,CAAC;IAC9C,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;AACjC,CAAC;AAED;;iEAEiE;AACjE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAI,IAAY,EAAE,UAA0B,EAAE;IAC5E,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAExG,MAAM,OAAO,GAAG,KAAK,EAAE,MAAoB,EAAqB,EAAE,CAChE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;QAC3B,MAAM;QACN,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE;YACP,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE;QACD,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACrD,MAAM;QACN,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC;IAEL,OAAO,aAAa,CAAI,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACzG,CAAC;AAED;;;;0CAI0C;AAC1C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAY,EACZ,QAAkB,EAClB,UAAuC,EAAE;IAEzC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAElC,MAAM,OAAO,GAAG,KAAK,IAAuB,EAAE,CAC5C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE;YACP,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE;QACD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEL,OAAO,aAAa,CAAI,QAAQ,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;;oBAIoB;AACpB,SAAS,+BAA+B,CAAC,MAAqB;IAC5D,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,QAAQ,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,+EAA+E;QAC/E,sDAAsD;QACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAqBD;;;0EAG0E;AAC1E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,UAA8B,EAAE;IAC9E,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAE7D,MAAM,OAAO,GAAG,KAAK,EAAE,WAAyB,EAAqB,EAAE,CACrE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;QAC3B,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE;YACP,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE;QACD,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,KAAK,EAAE,GAAa,EAA8B,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,0BAA0B,CAAC;QACzG,MAAM,QAAQ,GAAG,+BAA+B,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACzF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,EAAE,WAAyB,EAA8B,EAAE,CAC1E,MAAM,CAAC,MAAM,iBAAiB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3E,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,YAAY,CAAC,OAAO,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED;;+CAE+C;AAC/C,MAAM,UAAU,QAAQ,CAAC,IAAU,EAAE,QAAgB;IACnD,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,MAAM,UAAU,GAAG,GAAkC,CAAC;IACtD,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;QAClB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../../src/auth/client/httpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Browser-safe client for `@flytedesk/app-kit/auth` — a separate subpath export (see
|
|
3
3
|
* package.json's "exports") so this never drags a single Node/Fastify import into a
|
|
4
|
-
* browser bundle.
|
|
5
|
-
*
|
|
4
|
+
* browser bundle.
|
|
5
|
+
*
|
|
6
|
+
* Two things live here, and an app uses both:
|
|
7
|
+
* - the flytedesk ID session lifecycle (AK-35): `SessionBoundary`, `useAuthSession` and
|
|
8
|
+
* `authSession` — sign-in, session loss, checks, sign-out and cross-tab, decided in
|
|
9
|
+
* ONE place (`./authSession.ts`). An app never builds any of it itself; see the
|
|
10
|
+
* README's "Building a flytedesk ID app";
|
|
11
|
+
* - the api client every request goes through (`apiRequest`, `apiUpload`,
|
|
12
|
+
* `apiDownload`), which carries the session's access token and refreshes it.
|
|
6
13
|
*/
|
|
7
|
-
export { ApiRequestError, AuthUnavailableError, AUTH_UNREACHABLE_CODE, type AuthUnavailableErrorCode, RequestDeadlineError,
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export type { AppSwitcherEntry, AuthedUserDto, IdpRole, ApiErrorBody, AuthUnavailableCode,
|
|
12
|
-
export { AUTH_ROUTE_PREFIX, AUTH_ROUTE_SEGMENTS, AUTH_UNAVAILABLE_CODES, authRoutePath,
|
|
14
|
+
export { ApiRequestError, AuthUnavailableError, AUTH_UNREACHABLE_CODE, type AuthUnavailableErrorCode, RequestDeadlineError, DEFAULT_REQUEST_DEADLINE_MS, configureApiClient, getBaseUrl, apiRequest, apiUpload, apiDownload, saveBlob, type RequestOptions, type ApiDownloadOptions, type ApiDownloadResult, } from "./httpClient.js";
|
|
15
|
+
export { type AuthSessionState, type AuthenticatedState, type CheckingState, type ErrorState, type SigningInState, type SigningOutState, type UnavailableState, } from "./authSession.js";
|
|
16
|
+
export { authSession } from "./browserEnvironment.js";
|
|
17
|
+
export { SessionBoundary, useAuthSession, type AuthSession, type AuthSessionActions, type SessionBoundaryProps, type SessionScreenKind, type SessionScreenState, type UsableSession, } from "./useAuthSession.js";
|
|
18
|
+
export type { AppSwitcherEntry, AuthedUserDto, IdpRole, ApiErrorBody, AuthUnavailableCode, } from "../shared-types.js";
|
|
19
|
+
export { AUTH_ROUTE_PREFIX, AUTH_ROUTE_SEGMENTS, AUTH_UNAVAILABLE_CODES, authRoutePath, type AuthRouteSegment, } from "../shared-types.js";
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Browser-safe client for `@flytedesk/app-kit/auth` — a separate subpath export (see
|
|
3
3
|
* package.json's "exports") so this never drags a single Node/Fastify import into a
|
|
4
|
-
* browser bundle.
|
|
5
|
-
*
|
|
4
|
+
* browser bundle.
|
|
5
|
+
*
|
|
6
|
+
* Two things live here, and an app uses both:
|
|
7
|
+
* - the flytedesk ID session lifecycle (AK-35): `SessionBoundary`, `useAuthSession` and
|
|
8
|
+
* `authSession` — sign-in, session loss, checks, sign-out and cross-tab, decided in
|
|
9
|
+
* ONE place (`./authSession.ts`). An app never builds any of it itself; see the
|
|
10
|
+
* README's "Building a flytedesk ID app";
|
|
11
|
+
* - the api client every request goes through (`apiRequest`, `apiUpload`,
|
|
12
|
+
* `apiDownload`), which carries the session's access token and refreshes it.
|
|
6
13
|
*/
|
|
7
|
-
export { ApiRequestError, AuthUnavailableError, AUTH_UNREACHABLE_CODE, RequestDeadlineError,
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export { AUTH_ROUTE_PREFIX, AUTH_ROUTE_SEGMENTS, AUTH_UNAVAILABLE_CODES, authRoutePath, SILENT_AUTH_DETAIL_CODES, SIGNIN_ERROR_QUERY_PARAM, SIGNIN_ERROR_CODES, } from "../shared-types.js";
|
|
14
|
+
export { ApiRequestError, AuthUnavailableError, AUTH_UNREACHABLE_CODE, RequestDeadlineError, DEFAULT_REQUEST_DEADLINE_MS, configureApiClient, getBaseUrl, apiRequest, apiUpload, apiDownload, saveBlob, } from "./httpClient.js";
|
|
15
|
+
export { authSession } from "./browserEnvironment.js";
|
|
16
|
+
export { SessionBoundary, useAuthSession, } from "./useAuthSession.js";
|
|
17
|
+
export { AUTH_ROUTE_PREFIX, AUTH_ROUTE_SEGMENTS, AUTH_UNAVAILABLE_CODES, authRoutePath, } from "../shared-types.js";
|
|
12
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/client/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EAErB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,GAIT,MAAM,iBAAiB,CAAC;AAYzB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,cAAc,GAOf,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,GAEd,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Makes every following `apiRequest`/`apiUpload`/`apiDownload` send `token` as its
|
|
2
|
+
* Bearer — as if the session had just refreshed. `null` clears it. */
|
|
3
|
+
export declare function setTestAccessToken(token: string | null): void;
|
|
4
|
+
/** Stops the tab's session lifecycle, forgets its state and clears the access token, so
|
|
5
|
+
* the next test starts from a fresh boot. */
|
|
6
|
+
export declare function resetAuthSessionForTests(): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@flytedesk/app-kit/auth/client/testing` — seams for an app's OWN unit tests (AK-35),
|
|
3
|
+
* never for app code. The session's access token and lifecycle are private to
|
|
4
|
+
* `@flytedesk/app-kit/auth/client`; a test that exercises `apiRequest` against a mocked
|
|
5
|
+
* `fetch`, or renders a component under `useAuthSession`, sets them up through here.
|
|
6
|
+
*/
|
|
7
|
+
import { setAccessToken } from "./httpClient.js";
|
|
8
|
+
import { resetAuthSession } from "./browserEnvironment.js";
|
|
9
|
+
/** Makes every following `apiRequest`/`apiUpload`/`apiDownload` send `token` as its
|
|
10
|
+
* Bearer — as if the session had just refreshed. `null` clears it. */
|
|
11
|
+
export function setTestAccessToken(token) {
|
|
12
|
+
setAccessToken(token);
|
|
13
|
+
}
|
|
14
|
+
/** Stops the tab's session lifecycle, forgets its state and clears the access token, so
|
|
15
|
+
* the next test starts from a fresh boot. */
|
|
16
|
+
export function resetAuthSessionForTests() {
|
|
17
|
+
resetAuthSession();
|
|
18
|
+
setAccessToken(null);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../src/auth/client/testing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;uEACuE;AACvE,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,cAAc,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED;8CAC8C;AAC9C,MAAM,UAAU,wBAAwB;IACtC,gBAAgB,EAAE,CAAC;IACnB,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
|