js-bao-wss-client 2.0.0 → 2.0.2
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 +10 -7
- package/dist/JsBaoClient.d.ts +18 -24
- package/dist/JsBaoClient.d.ts.map +1 -1
- package/dist/JsBaoClient.js +9 -77
- package/dist/JsBaoClient.js.map +1 -1
- package/dist/api/blobBucketsApi.d.ts +43 -4
- package/dist/api/blobBucketsApi.d.ts.map +1 -1
- package/dist/api/blobBucketsApi.js +8 -0
- package/dist/api/blobBucketsApi.js.map +1 -1
- package/dist/api/databasesApi.d.ts +14 -1
- package/dist/api/databasesApi.d.ts.map +1 -1
- package/dist/api/databasesApi.js.map +1 -1
- package/dist/api/documentsApi.d.ts.map +1 -1
- package/dist/api/documentsApi.js +35 -7
- package/dist/api/documentsApi.js.map +1 -1
- package/dist/api/geminiApi.d.ts +34 -1
- package/dist/api/geminiApi.d.ts.map +1 -1
- package/dist/api/geminiApi.js +14 -1
- package/dist/api/geminiApi.js.map +1 -1
- package/dist/api/llmApi.d.ts +18 -1
- package/dist/api/llmApi.d.ts.map +1 -1
- package/dist/api/llmApi.js +8 -1
- package/dist/api/llmApi.js.map +1 -1
- package/dist/browser.umd.js +82 -86
- package/dist/browser.umd.js.map +1 -1
- package/dist/dev/DevTools.d.ts +38 -0
- package/dist/dev/DevTools.d.ts.map +1 -0
- package/dist/dev/DevTools.js +203 -0
- package/dist/dev/DevTools.js.map +1 -0
- package/dist/dev/index.d.ts +35 -0
- package/dist/dev/index.d.ts.map +1 -0
- package/dist/dev/index.js +40 -0
- package/dist/dev/index.js.map +1 -0
- package/dist/dev/storage.d.ts +61 -0
- package/dist/dev/storage.d.ts.map +1 -0
- package/dist/dev/storage.js +130 -0
- package/dist/dev/storage.js.map +1 -0
- package/dist/dev/useDevToken.d.ts +155 -0
- package/dist/dev/useDevToken.d.ts.map +1 -0
- package/dist/dev/useDevToken.js +266 -0
- package/dist/dev/useDevToken.js.map +1 -0
- package/dist/internal/authController.d.ts.map +1 -1
- package/dist/internal/authController.js +8 -0
- package/dist/internal/authController.js.map +1 -1
- package/dist/internal/databaseSubscriptions.d.ts +3 -0
- package/dist/internal/databaseSubscriptions.d.ts.map +1 -1
- package/dist/internal/databaseSubscriptions.js.map +1 -1
- package/package.json +11 -2
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-agnostic core for `<DevTools>` (issue #420).
|
|
3
|
+
*
|
|
4
|
+
* All the behaviour that does NOT depend on React lives here so it can be
|
|
5
|
+
* unit-tested in a plain Node environment: the DEV gate, window-hook
|
|
6
|
+
* installation, env-token auto-apply, switch-user (with cached-token reuse),
|
|
7
|
+
* logout, and prop validation. The React component (`DevTools.tsx`) is a thin
|
|
8
|
+
* wrapper that renders the panel and delegates to this controller.
|
|
9
|
+
*/
|
|
10
|
+
import { DevTokenCache } from "./storage.js";
|
|
11
|
+
/** The subset of `JsBaoClient` that DevTools depends on. */
|
|
12
|
+
export interface DevClient {
|
|
13
|
+
getAppId(): string;
|
|
14
|
+
getToken(): string | null;
|
|
15
|
+
setToken(token: string | null, options?: {
|
|
16
|
+
cause?: string;
|
|
17
|
+
}): void;
|
|
18
|
+
logout(options?: any): Promise<void>;
|
|
19
|
+
makeRequest(method: string, path: string, data?: any): Promise<any>;
|
|
20
|
+
}
|
|
21
|
+
export interface DevToolsConfig {
|
|
22
|
+
client: DevClient;
|
|
23
|
+
/** Auto-apply VITE_PRIMITIVE_DEV_TOKEN on mount unless explicitly false. */
|
|
24
|
+
autoApplyEnvToken?: boolean;
|
|
25
|
+
/** Inject an env-token value for testing (defaults to import.meta.env). */
|
|
26
|
+
envToken?: string | null;
|
|
27
|
+
/** Override the DEV gate for testing (defaults to import.meta.env.DEV). */
|
|
28
|
+
isDev?: boolean;
|
|
29
|
+
/** Override the cache (defaults to a localStorage-backed cache). */
|
|
30
|
+
cache?: DevTokenCache;
|
|
31
|
+
/** Default TTL minted for switch-user (server-enforced). */
|
|
32
|
+
ttl?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface AppUserSummary {
|
|
35
|
+
userId: string;
|
|
36
|
+
email?: string;
|
|
37
|
+
name?: string | null;
|
|
38
|
+
role?: string | null;
|
|
39
|
+
}
|
|
40
|
+
export interface CurrentUserInfo {
|
|
41
|
+
userId: string;
|
|
42
|
+
email?: string;
|
|
43
|
+
name?: string;
|
|
44
|
+
appRole?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Window-global automation hooks installed by DevTools when running in dev.
|
|
48
|
+
* Exposed for Claude-in-Chrome / scripted login.
|
|
49
|
+
*/
|
|
50
|
+
export interface DevToolsWindowApi {
|
|
51
|
+
/** Resolves only after the token has been applied to the client. */
|
|
52
|
+
switchToUserId(userId: string): Promise<void>;
|
|
53
|
+
/** List app users (admin-gated; rejects for non-admins). */
|
|
54
|
+
listUsers(): Promise<AppUserSummary[]>;
|
|
55
|
+
/** Apply an arbitrary token (quick login). */
|
|
56
|
+
setToken(token: string): void;
|
|
57
|
+
/** Log out and evict the cached token for the current user. */
|
|
58
|
+
logout(): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The DevTools controller. Construction is cheap and side-effect-free; call
|
|
62
|
+
* {@link DevToolsController.activate} to install window hooks and auto-apply
|
|
63
|
+
* the env token (a no-op when not in dev).
|
|
64
|
+
*/
|
|
65
|
+
export declare class DevToolsController {
|
|
66
|
+
readonly isDev: boolean;
|
|
67
|
+
readonly client: DevClient;
|
|
68
|
+
private readonly cache;
|
|
69
|
+
private readonly autoApplyEnvToken;
|
|
70
|
+
private readonly envToken;
|
|
71
|
+
private readonly ttl;
|
|
72
|
+
private installed;
|
|
73
|
+
constructor(config: DevToolsConfig);
|
|
74
|
+
/**
|
|
75
|
+
* Activate the controller: prune the cache, install the window automation
|
|
76
|
+
* hooks, and auto-apply the env token. In production (DEV === false) this is
|
|
77
|
+
* a no-op aside from a one-time console warning, and NO hooks are installed.
|
|
78
|
+
* Returns a cleanup function.
|
|
79
|
+
*/
|
|
80
|
+
activate(): () => void;
|
|
81
|
+
private getWindow;
|
|
82
|
+
private installWindowHooks;
|
|
83
|
+
private uninstall;
|
|
84
|
+
/** Whether the window automation hooks are currently installed. */
|
|
85
|
+
get hooksInstalled(): boolean;
|
|
86
|
+
/** Fetch the current user profile via the existing `/me` endpoint. */
|
|
87
|
+
getCurrentUser(): Promise<CurrentUserInfo | null>;
|
|
88
|
+
/**
|
|
89
|
+
* List app users via the existing admin-gated `GET /users` endpoint.
|
|
90
|
+
* Rejects (propagates the 403) when the caller is not admin/owner so the
|
|
91
|
+
* panel can surface an "admin required" message.
|
|
92
|
+
*/
|
|
93
|
+
listUsers(): Promise<AppUserSummary[]>;
|
|
94
|
+
/**
|
|
95
|
+
* Switch to a user: reuse a fresh cached token without an API call, else
|
|
96
|
+
* mint a new one via `POST /tokens`. Resolves only after the token has been
|
|
97
|
+
* applied to the client.
|
|
98
|
+
*/
|
|
99
|
+
switchToUser(userId: string): Promise<void>;
|
|
100
|
+
/** Apply an arbitrary token (quick login). */
|
|
101
|
+
setToken(token: string): void;
|
|
102
|
+
/** Log out and evict the cached token for the current user. */
|
|
103
|
+
logout(currentUserId?: string): Promise<void>;
|
|
104
|
+
/** Expose the cache (used by the React panel for display/eviction). */
|
|
105
|
+
getCache(): DevTokenCache;
|
|
106
|
+
}
|
|
107
|
+
/** Reset module-level state (test helper only). */
|
|
108
|
+
export declare function __resetDevToolsWarnState(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Create and activate a framework-agnostic DevTools session WITHOUT React.
|
|
111
|
+
*
|
|
112
|
+
* Installs the `window.__PRIMITIVE_SET_TOKEN__` / `window.__PRIMITIVE_DEVTOOLS__`
|
|
113
|
+
* automation hooks and auto-applies `VITE_PRIMITIVE_DEV_TOKEN` (when present),
|
|
114
|
+
* exactly like mounting `<DevTools>` does — but with no React dependency. In a
|
|
115
|
+
* production build (`import.meta.env.DEV === false`) this is a no-op that
|
|
116
|
+
* installs no hooks (the same dual production gate the component honors).
|
|
117
|
+
*
|
|
118
|
+
* @returns the live controller (call `switchToUser`, `setToken`, `logout`, …)
|
|
119
|
+
* plus a `dispose()` cleanup that removes the window hooks.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* import { createDevTools } from "js-bao-wss-client/dev";
|
|
123
|
+
* const dev = createDevTools({ client });
|
|
124
|
+
* await dev.switchToUser("user_123"); // sign in as a test user — no React
|
|
125
|
+
* dev.dispose();
|
|
126
|
+
*/
|
|
127
|
+
export declare function createDevTools(config: DevToolsConfig): DevToolsController & {
|
|
128
|
+
dispose: () => void;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Sign a user into the client by applying a token directly — the simplest
|
|
132
|
+
* non-React way to "log in" (e.g. a token minted by `primitive tokens inject`
|
|
133
|
+
* or pasted from the DevTools snippet). Equivalent to the panel's Quick Login.
|
|
134
|
+
*
|
|
135
|
+
* This does NOT require React and does NOT install any window hooks; it just
|
|
136
|
+
* applies the token to the client (which triggers WebSocket re-auth).
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* import { injectDevToken } from "js-bao-wss-client/dev";
|
|
140
|
+
* injectDevToken(client, "prim_…"); // signed in — no React, no UI
|
|
141
|
+
*/
|
|
142
|
+
export declare function injectDevToken(client: DevClient, token: string): void;
|
|
143
|
+
/**
|
|
144
|
+
* Switch to a test user by id WITHOUT React — mints (or reuses a cached) token
|
|
145
|
+
* via the admin-gated `POST /tokens` and applies it. Convenience wrapper that
|
|
146
|
+
* constructs a controller for a one-shot switch. For repeated switches prefer
|
|
147
|
+
* {@link createDevTools} and reuse the returned controller (so the token cache
|
|
148
|
+
* is shared).
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* import { switchDevUser } from "js-bao-wss-client/dev";
|
|
152
|
+
* await switchDevUser({ client }, "user_123"); // signed in as that user
|
|
153
|
+
*/
|
|
154
|
+
export declare function switchDevUser(config: DevToolsConfig, userId: string): Promise<void>;
|
|
155
|
+
//# sourceMappingURL=useDevToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDevToken.d.ts","sourceRoot":"","sources":["../../dev/useDevToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-agnostic core for `<DevTools>` (issue #420).
|
|
3
|
+
*
|
|
4
|
+
* All the behaviour that does NOT depend on React lives here so it can be
|
|
5
|
+
* unit-tested in a plain Node environment: the DEV gate, window-hook
|
|
6
|
+
* installation, env-token auto-apply, switch-user (with cached-token reuse),
|
|
7
|
+
* logout, and prop validation. The React component (`DevTools.tsx`) is a thin
|
|
8
|
+
* wrapper that renders the panel and delegates to this controller.
|
|
9
|
+
*/
|
|
10
|
+
import { DevTokenCache } from "./storage.js";
|
|
11
|
+
const ENV_TOKEN_VAR = "VITE_PRIMITIVE_DEV_TOKEN";
|
|
12
|
+
const SET_TOKEN_HOOK = "__PRIMITIVE_SET_TOKEN__";
|
|
13
|
+
const DEVTOOLS_HOOK = "__PRIMITIVE_DEVTOOLS__";
|
|
14
|
+
const DEFAULT_TTL = "30m";
|
|
15
|
+
let warnedProductionOnce = false;
|
|
16
|
+
/** Reads import.meta.env.DEV defensively (it may be undefined outside Vite). */
|
|
17
|
+
function readImportMetaDev() {
|
|
18
|
+
try {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
const env = import.meta?.env;
|
|
21
|
+
// When unbundled / non-Vite, treat undefined as NOT dev (fail safe).
|
|
22
|
+
return env?.DEV === true;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function readEnvToken() {
|
|
29
|
+
try {
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
const env = import.meta?.env;
|
|
32
|
+
const v = env?.[ENV_TOKEN_VAR];
|
|
33
|
+
return typeof v === "string" && v.length > 0 ? v : null;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The DevTools controller. Construction is cheap and side-effect-free; call
|
|
41
|
+
* {@link DevToolsController.activate} to install window hooks and auto-apply
|
|
42
|
+
* the env token (a no-op when not in dev).
|
|
43
|
+
*/
|
|
44
|
+
export class DevToolsController {
|
|
45
|
+
constructor(config) {
|
|
46
|
+
this.installed = false;
|
|
47
|
+
if (!config || !config.client) {
|
|
48
|
+
throw new Error("<DevTools> requires a `client` prop (a JsBaoClient instance).");
|
|
49
|
+
}
|
|
50
|
+
this.client = config.client;
|
|
51
|
+
this.isDev = config.isDev ?? readImportMetaDev();
|
|
52
|
+
this.cache = config.cache ?? new DevTokenCache();
|
|
53
|
+
this.autoApplyEnvToken = config.autoApplyEnvToken !== false;
|
|
54
|
+
this.envToken =
|
|
55
|
+
config.envToken !== undefined ? config.envToken : readEnvToken();
|
|
56
|
+
this.ttl = config.ttl ?? DEFAULT_TTL;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Activate the controller: prune the cache, install the window automation
|
|
60
|
+
* hooks, and auto-apply the env token. In production (DEV === false) this is
|
|
61
|
+
* a no-op aside from a one-time console warning, and NO hooks are installed.
|
|
62
|
+
* Returns a cleanup function.
|
|
63
|
+
*/
|
|
64
|
+
activate() {
|
|
65
|
+
if (!this.isDev) {
|
|
66
|
+
if (!warnedProductionOnce) {
|
|
67
|
+
warnedProductionOnce = true;
|
|
68
|
+
// eslint-disable-next-line no-console
|
|
69
|
+
console.warn("[PrimitiveDevTools] Disabled outside a dev build (import.meta.env.DEV is false). No window hooks installed.");
|
|
70
|
+
}
|
|
71
|
+
return () => { };
|
|
72
|
+
}
|
|
73
|
+
// Prune expired entries on activation (panel open).
|
|
74
|
+
try {
|
|
75
|
+
this.cache.prune();
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// best-effort
|
|
79
|
+
}
|
|
80
|
+
this.installWindowHooks();
|
|
81
|
+
if (this.autoApplyEnvToken && this.envToken) {
|
|
82
|
+
this.client.setToken(this.envToken, { cause: "devtools:env" });
|
|
83
|
+
}
|
|
84
|
+
this.installed = true;
|
|
85
|
+
return () => this.uninstall();
|
|
86
|
+
}
|
|
87
|
+
getWindow() {
|
|
88
|
+
return typeof window !== "undefined" ? window : null;
|
|
89
|
+
}
|
|
90
|
+
installWindowHooks() {
|
|
91
|
+
const w = this.getWindow();
|
|
92
|
+
if (!w)
|
|
93
|
+
return;
|
|
94
|
+
w[SET_TOKEN_HOOK] = (token) => {
|
|
95
|
+
this.client.setToken(token, { cause: "devtools:hook" });
|
|
96
|
+
};
|
|
97
|
+
const api = {
|
|
98
|
+
switchToUserId: (userId) => this.switchToUser(userId),
|
|
99
|
+
listUsers: () => this.listUsers(),
|
|
100
|
+
setToken: (token) => this.client.setToken(token, { cause: "devtools:hook" }),
|
|
101
|
+
logout: () => this.logout(),
|
|
102
|
+
};
|
|
103
|
+
w[DEVTOOLS_HOOK] = api;
|
|
104
|
+
}
|
|
105
|
+
uninstall() {
|
|
106
|
+
const w = this.getWindow();
|
|
107
|
+
if (!w)
|
|
108
|
+
return;
|
|
109
|
+
try {
|
|
110
|
+
delete w[SET_TOKEN_HOOK];
|
|
111
|
+
delete w[DEVTOOLS_HOOK];
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
w[SET_TOKEN_HOOK] = undefined;
|
|
115
|
+
w[DEVTOOLS_HOOK] = undefined;
|
|
116
|
+
}
|
|
117
|
+
this.installed = false;
|
|
118
|
+
}
|
|
119
|
+
/** Whether the window automation hooks are currently installed. */
|
|
120
|
+
get hooksInstalled() {
|
|
121
|
+
return this.installed;
|
|
122
|
+
}
|
|
123
|
+
/** Fetch the current user profile via the existing `/me` endpoint. */
|
|
124
|
+
async getCurrentUser() {
|
|
125
|
+
try {
|
|
126
|
+
const me = await this.client.makeRequest("GET", "/me");
|
|
127
|
+
return me ?? null;
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* List app users via the existing admin-gated `GET /users` endpoint.
|
|
135
|
+
* Rejects (propagates the 403) when the caller is not admin/owner so the
|
|
136
|
+
* panel can surface an "admin required" message.
|
|
137
|
+
*/
|
|
138
|
+
async listUsers() {
|
|
139
|
+
const resp = await this.client.makeRequest("GET", "/users");
|
|
140
|
+
const items = Array.isArray(resp) ? resp : resp?.items ?? [];
|
|
141
|
+
return items;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Switch to a user: reuse a fresh cached token without an API call, else
|
|
145
|
+
* mint a new one via `POST /tokens`. Resolves only after the token has been
|
|
146
|
+
* applied to the client.
|
|
147
|
+
*/
|
|
148
|
+
async switchToUser(userId) {
|
|
149
|
+
const appId = this.client.getAppId();
|
|
150
|
+
const cached = this.cache.get(appId, userId);
|
|
151
|
+
if (cached) {
|
|
152
|
+
this.client.setToken(cached.token, { cause: "devtools:cached" });
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const name = `devtools-${Date.now()}`;
|
|
156
|
+
const resp = await this.client.makeRequest("POST", "/tokens", {
|
|
157
|
+
userId,
|
|
158
|
+
name,
|
|
159
|
+
ttl: this.ttl,
|
|
160
|
+
});
|
|
161
|
+
const token = resp?.token;
|
|
162
|
+
if (!token) {
|
|
163
|
+
throw new Error("Token mint did not return a token");
|
|
164
|
+
}
|
|
165
|
+
const expiresAt = resp?.expiresAt
|
|
166
|
+
? new Date(resp.expiresAt).getTime()
|
|
167
|
+
: Date.now() + 30 * 60 * 1000;
|
|
168
|
+
const entry = {
|
|
169
|
+
token,
|
|
170
|
+
expiresAt,
|
|
171
|
+
createdAt: Date.now(),
|
|
172
|
+
name,
|
|
173
|
+
};
|
|
174
|
+
this.cache.set(appId, userId, entry);
|
|
175
|
+
this.client.setToken(token, { cause: "devtools:mint" });
|
|
176
|
+
}
|
|
177
|
+
/** Apply an arbitrary token (quick login). */
|
|
178
|
+
setToken(token) {
|
|
179
|
+
this.client.setToken(token, { cause: "devtools:quick-login" });
|
|
180
|
+
}
|
|
181
|
+
/** Log out and evict the cached token for the current user. */
|
|
182
|
+
async logout(currentUserId) {
|
|
183
|
+
const appId = this.client.getAppId();
|
|
184
|
+
if (currentUserId) {
|
|
185
|
+
this.cache.remove(appId, currentUserId);
|
|
186
|
+
}
|
|
187
|
+
await this.client.logout();
|
|
188
|
+
}
|
|
189
|
+
/** Expose the cache (used by the React panel for display/eviction). */
|
|
190
|
+
getCache() {
|
|
191
|
+
return this.cache;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/** Reset module-level state (test helper only). */
|
|
195
|
+
export function __resetDevToolsWarnState() {
|
|
196
|
+
warnedProductionOnce = false;
|
|
197
|
+
}
|
|
198
|
+
// ── Framework-agnostic convenience API (no React) ───────────────────────────
|
|
199
|
+
//
|
|
200
|
+
// React is NOT required to sign a user into the client. The `<DevTools>`
|
|
201
|
+
// component is just an optional UI layer over `DevToolsController`. The
|
|
202
|
+
// helpers below let a plain (vanilla JS / Vue / Svelte / Solid / Node) app
|
|
203
|
+
// sign in with a single function call and never import React.
|
|
204
|
+
/**
|
|
205
|
+
* Create and activate a framework-agnostic DevTools session WITHOUT React.
|
|
206
|
+
*
|
|
207
|
+
* Installs the `window.__PRIMITIVE_SET_TOKEN__` / `window.__PRIMITIVE_DEVTOOLS__`
|
|
208
|
+
* automation hooks and auto-applies `VITE_PRIMITIVE_DEV_TOKEN` (when present),
|
|
209
|
+
* exactly like mounting `<DevTools>` does — but with no React dependency. In a
|
|
210
|
+
* production build (`import.meta.env.DEV === false`) this is a no-op that
|
|
211
|
+
* installs no hooks (the same dual production gate the component honors).
|
|
212
|
+
*
|
|
213
|
+
* @returns the live controller (call `switchToUser`, `setToken`, `logout`, …)
|
|
214
|
+
* plus a `dispose()` cleanup that removes the window hooks.
|
|
215
|
+
*
|
|
216
|
+
* @example
|
|
217
|
+
* import { createDevTools } from "js-bao-wss-client/dev";
|
|
218
|
+
* const dev = createDevTools({ client });
|
|
219
|
+
* await dev.switchToUser("user_123"); // sign in as a test user — no React
|
|
220
|
+
* dev.dispose();
|
|
221
|
+
*/
|
|
222
|
+
export function createDevTools(config) {
|
|
223
|
+
const controller = new DevToolsController(config);
|
|
224
|
+
const cleanup = controller.activate();
|
|
225
|
+
// Attach dispose without subclassing so callers keep the full controller API.
|
|
226
|
+
controller.dispose =
|
|
227
|
+
cleanup;
|
|
228
|
+
return controller;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Sign a user into the client by applying a token directly — the simplest
|
|
232
|
+
* non-React way to "log in" (e.g. a token minted by `primitive tokens inject`
|
|
233
|
+
* or pasted from the DevTools snippet). Equivalent to the panel's Quick Login.
|
|
234
|
+
*
|
|
235
|
+
* This does NOT require React and does NOT install any window hooks; it just
|
|
236
|
+
* applies the token to the client (which triggers WebSocket re-auth).
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* import { injectDevToken } from "js-bao-wss-client/dev";
|
|
240
|
+
* injectDevToken(client, "prim_…"); // signed in — no React, no UI
|
|
241
|
+
*/
|
|
242
|
+
export function injectDevToken(client, token) {
|
|
243
|
+
if (!client || typeof client.setToken !== "function") {
|
|
244
|
+
throw new Error("injectDevToken(client, token) requires a JsBaoClient instance.");
|
|
245
|
+
}
|
|
246
|
+
if (typeof token !== "string" || token.length === 0) {
|
|
247
|
+
throw new Error("injectDevToken requires a non-empty token string.");
|
|
248
|
+
}
|
|
249
|
+
client.setToken(token, { cause: "devtools:inject" });
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Switch to a test user by id WITHOUT React — mints (or reuses a cached) token
|
|
253
|
+
* via the admin-gated `POST /tokens` and applies it. Convenience wrapper that
|
|
254
|
+
* constructs a controller for a one-shot switch. For repeated switches prefer
|
|
255
|
+
* {@link createDevTools} and reuse the returned controller (so the token cache
|
|
256
|
+
* is shared).
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* import { switchDevUser } from "js-bao-wss-client/dev";
|
|
260
|
+
* await switchDevUser({ client }, "user_123"); // signed in as that user
|
|
261
|
+
*/
|
|
262
|
+
export async function switchDevUser(config, userId) {
|
|
263
|
+
const controller = new DevToolsController(config);
|
|
264
|
+
await controller.switchToUser(userId);
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=useDevToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDevToken.js","sourceRoot":"","sources":["../../dev/useDevToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authController.d.ts","sourceRoot":"","sources":["../../internal/authController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;CAab,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEpE;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;gBAExC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM;CAKtD;AAaD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,cAAc,IAAI,WAAW,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1C,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,IAAI,GAAG,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,YAAY,IAAI,IAAI,CAAC;IACrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,IAAI,CAAC;IACR,kBAAkB,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;IACjE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;CACzC;AAED,qBAAa,cAAc;IAYb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAK;gBAEjB,IAAI,EAAE,kBAAkB;IAIrD,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,uBAAuB;YASjB,oBAAoB;YAkDpB,qBAAqB;IAkEnC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAS1C,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,WAAW,CACT,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,IAAI;IAiBP,oBAAoB,IAAI,IAAI;IAKtB,kBAAkB,CACtB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAcvC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAatD,qBAAqB,CACzB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EAC1C,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5C,OAAO,CAAC,IAAI,CAAC;IAIV,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"authController.d.ts","sourceRoot":"","sources":["../../internal/authController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;CAab,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEpE;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;gBAExC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM;CAKtD;AAaD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,cAAc,IAAI,WAAW,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1C,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,IAAI,GAAG,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,YAAY,IAAI,IAAI,CAAC;IACrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,IAAI,CAAC;IACR,kBAAkB,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;IACjE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;CACzC;AAED,qBAAa,cAAc;IAYb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAK;gBAEjB,IAAI,EAAE,kBAAkB;IAIrD,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,uBAAuB;YASjB,oBAAoB;YAkDpB,qBAAqB;IAkEnC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAS1C,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,WAAW,CACT,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,IAAI;IAiBP,oBAAoB,IAAI,IAAI;IAKtB,kBAAkB,CACtB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAcvC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAatD,qBAAqB,CACzB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EAC1C,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5C,OAAO,CAAC,IAAI,CAAC;IAIV,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAsBvC,cAAc,CAAC,MAAM,EAAE;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;QAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CX,mBAAmB,CAAC,MAAM,EAAE;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,IAAI,CAAC;IAaX,aAAa,IAAI,OAAO,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC9B,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC;QACzD,UAAU,EAAE,OAAO,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;YAWY,cAAc;IAMtB,gBAAgB,CAAC,MAAM,EAAE;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAsB3B,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC;QACT,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvD,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IAoDI,UAAU,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAmBpE,SAAS,CAAC,MAAM,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC;QACV,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvD,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IAsDI,gBAAgB,IAAI,OAAO,CAAC;QAChC,OAAO,EAAE,GAAG,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAoBI,iBAAiB,CAAC,MAAM,EAAE;QAC9B,UAAU,EAAE,GAAG,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvD,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IA0BI,oBAAoB,IAAI,OAAO,CAAC;QACpC,OAAO,EAAE,GAAG,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAsBI,qBAAqB,CAAC,MAAM,EAAE;QAClC,UAAU,EAAE,GAAG,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,UAAU,CAAC,EAAE;YACX,YAAY,EAAE,MAAM,CAAC;YACrB,cAAc,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAA;aAAE,CAAC;SACvD,CAAC;KACH,CAAC;IAmCI,WAAW,IAAI,OAAO,CAAC;QAC3B,QAAQ,EAAE,KAAK,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACJ,CAAC;IAoBI,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAoB/D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAC7B,OAAO,CAAC;QACT,OAAO,EAAE;YACP,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IAsBF,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C,YAAY,IAAI,MAAM,GAAG,IAAI;IAO7B,SAAS,IAAI,MAAM,GAAG,IAAI;IAU1B,oBAAoB,IAAI,IAAI;IAU5B,uBAAuB,IAAI,OAAO;IAI5B,mBAAmB,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC;QACvE,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;QACxC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAgCI,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA6I1E,qBAAqB,IAAI;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;KACzC;IAeK,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA+D9E,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjE,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IA0BzC,MAAM,CAAC,OAAO,CAAC,EAAE;QACrB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBX,aAAa,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAahE,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAE,CAAC;IA0C3D,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAuBpD,OAAO,CAAC,kBAAkB;IAmE1B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,+BAA+B;YAUzB,qBAAqB;YA8BrB,uBAAuB;CA6DtC;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,+BAA+B,CAAC,EAAE,MAAM,CAAC;CAC1C,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DlB;AAoBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAShE"}
|
|
@@ -253,6 +253,14 @@ export class AuthController {
|
|
|
253
253
|
if (!response.ok)
|
|
254
254
|
return false;
|
|
255
255
|
const config = await response.json();
|
|
256
|
+
// The browser confidential flow exchanges the code server-side with the
|
|
257
|
+
// stored client_secret, so gate on `hasWebOAuth` (clientId AND secret),
|
|
258
|
+
// not `hasOAuth` (which is clientId-only for native PKCE clients). Fall
|
|
259
|
+
// back to the old check when talking to an older server that doesn't yet
|
|
260
|
+
// return `hasWebOAuth`.
|
|
261
|
+
if (typeof config.hasWebOAuth === "boolean") {
|
|
262
|
+
return config.hasWebOAuth;
|
|
263
|
+
}
|
|
256
264
|
return config.hasOAuth && !!config.googleClientId;
|
|
257
265
|
}
|
|
258
266
|
catch (error) {
|