hci-atrium 0.1.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/LICENSE +21 -0
- package/README.md +182 -0
- package/dist/atrium.d.ts +522 -0
- package/dist/atrium.d.ts.map +1 -0
- package/dist/atrium.js +806 -0
- package/dist/atrium.js.map +1 -0
- package/dist/auth.d.ts +85 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +369 -0
- package/dist/auth.js.map +1 -0
- package/dist/by.d.ts +84 -0
- package/dist/by.d.ts.map +1 -0
- package/dist/by.js +87 -0
- package/dist/by.js.map +1 -0
- package/dist/decider.d.ts +40 -0
- package/dist/decider.d.ts.map +1 -0
- package/dist/decider.js +76 -0
- package/dist/decider.js.map +1 -0
- package/dist/discovery.d.ts +15 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +38 -0
- package/dist/discovery.js.map +1 -0
- package/dist/env.d.ts +11 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +28 -0
- package/dist/env.js.map +1 -0
- package/dist/errors.d.ts +67 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +86 -0
- package/dist/errors.js.map +1 -0
- package/dist/files.d.ts +7 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +2 -0
- package/dist/files.js.map +1 -0
- package/dist/http.d.ts +11 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +21 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/models.d.ts +456 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +487 -0
- package/dist/models.js.map +1 -0
- package/dist/pkce.d.ts +16 -0
- package/dist/pkce.d.ts.map +1 -0
- package/dist/pkce.js +40 -0
- package/dist/pkce.js.map +1 -0
- package/dist/react/index.d.ts +37 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +89 -0
- package/dist/react/index.js.map +1 -0
- package/dist/rooms/armed-set.d.ts +33 -0
- package/dist/rooms/armed-set.d.ts.map +1 -0
- package/dist/rooms/armed-set.js +65 -0
- package/dist/rooms/armed-set.js.map +1 -0
- package/dist/rooms/brokers.d.ts +62 -0
- package/dist/rooms/brokers.d.ts.map +1 -0
- package/dist/rooms/brokers.js +109 -0
- package/dist/rooms/brokers.js.map +1 -0
- package/dist/rooms/codec.d.ts +100 -0
- package/dist/rooms/codec.d.ts.map +1 -0
- package/dist/rooms/codec.js +101 -0
- package/dist/rooms/codec.js.map +1 -0
- package/dist/rooms/index.d.ts +40 -0
- package/dist/rooms/index.d.ts.map +1 -0
- package/dist/rooms/index.js +45 -0
- package/dist/rooms/index.js.map +1 -0
- package/dist/rooms/offer-capture.d.ts +96 -0
- package/dist/rooms/offer-capture.d.ts.map +1 -0
- package/dist/rooms/offer-capture.js +338 -0
- package/dist/rooms/offer-capture.js.map +1 -0
- package/dist/rooms/offer-transcription.d.ts +63 -0
- package/dist/rooms/offer-transcription.d.ts.map +1 -0
- package/dist/rooms/offer-transcription.js +231 -0
- package/dist/rooms/offer-transcription.js.map +1 -0
- package/dist/rooms/participant.d.ts +35 -0
- package/dist/rooms/participant.d.ts.map +1 -0
- package/dist/rooms/participant.js +53 -0
- package/dist/rooms/participant.js.map +1 -0
- package/dist/rooms/recorder.d.ts +74 -0
- package/dist/rooms/recorder.d.ts.map +1 -0
- package/dist/rooms/recorder.js +157 -0
- package/dist/rooms/recorder.js.map +1 -0
- package/dist/rooms/room.d.ts +542 -0
- package/dist/rooms/room.d.ts.map +1 -0
- package/dist/rooms/room.js +1357 -0
- package/dist/rooms/room.js.map +1 -0
- package/dist/rooms/snippet.d.ts +48 -0
- package/dist/rooms/snippet.d.ts.map +1 -0
- package/dist/rooms/snippet.js +70 -0
- package/dist/rooms/snippet.js.map +1 -0
- package/dist/rooms/sse.d.ts +102 -0
- package/dist/rooms/sse.d.ts.map +1 -0
- package/dist/rooms/sse.js +347 -0
- package/dist/rooms/sse.js.map +1 -0
- package/dist/rooms/standing-source.d.ts +190 -0
- package/dist/rooms/standing-source.d.ts.map +1 -0
- package/dist/rooms/standing-source.js +431 -0
- package/dist/rooms/standing-source.js.map +1 -0
- package/dist/rooms/transcriber.d.ts +81 -0
- package/dist/rooms/transcriber.d.ts.map +1 -0
- package/dist/rooms/transcriber.js +111 -0
- package/dist/rooms/transcriber.js.map +1 -0
- package/dist/rooms/transport-shared.d.ts +28 -0
- package/dist/rooms/transport-shared.d.ts.map +1 -0
- package/dist/rooms/transport-shared.js +42 -0
- package/dist/rooms/transport-shared.js.map +1 -0
- package/dist/rooms/transport.d.ts +161 -0
- package/dist/rooms/transport.d.ts.map +1 -0
- package/dist/rooms/transport.js +258 -0
- package/dist/rooms/transport.js.map +1 -0
- package/dist/shaping/assets.d.ts +42 -0
- package/dist/shaping/assets.d.ts.map +1 -0
- package/dist/shaping/assets.js +77 -0
- package/dist/shaping/assets.js.map +1 -0
- package/dist/shaping/chat.d.ts +39 -0
- package/dist/shaping/chat.d.ts.map +1 -0
- package/dist/shaping/chat.js +62 -0
- package/dist/shaping/chat.js.map +1 -0
- package/dist/shaping/index.d.ts +14 -0
- package/dist/shaping/index.d.ts.map +1 -0
- package/dist/shaping/index.js +13 -0
- package/dist/shaping/index.js.map +1 -0
- package/dist/shaping/library.d.ts +84 -0
- package/dist/shaping/library.d.ts.map +1 -0
- package/dist/shaping/library.js +288 -0
- package/dist/shaping/library.js.map +1 -0
- package/dist/shaping/request.d.ts +47 -0
- package/dist/shaping/request.d.ts.map +1 -0
- package/dist/shaping/request.js +25 -0
- package/dist/shaping/request.js.map +1 -0
- package/dist/shaping/rooms.d.ts +128 -0
- package/dist/shaping/rooms.d.ts.map +1 -0
- package/dist/shaping/rooms.js +330 -0
- package/dist/shaping/rooms.js.map +1 -0
- package/dist/shaping/sources.d.ts +29 -0
- package/dist/shaping/sources.d.ts.map +1 -0
- package/dist/shaping/sources.js +51 -0
- package/dist/shaping/sources.js.map +1 -0
- package/dist/shaping/structured.d.ts +47 -0
- package/dist/shaping/structured.d.ts.map +1 -0
- package/dist/shaping/structured.js +115 -0
- package/dist/shaping/structured.js.map +1 -0
- package/dist/storage.d.ts +36 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +86 -0
- package/dist/storage.js.map +1 -0
- package/dist/transcribe-stream.d.ts +81 -0
- package/dist/transcribe-stream.d.ts.map +1 -0
- package/dist/transcribe-stream.js +253 -0
- package/dist/transcribe-stream.js.map +1 -0
- package/dist/transcribe.d.ts +57 -0
- package/dist/transcribe.d.ts.map +1 -0
- package/dist/transcribe.js +267 -0
- package/dist/transcribe.js.map +1 -0
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atrium.js","sourceRoot":"","sources":["../src/atrium.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Sign in with Atrium" — Authorization Code + PKCE against Atrium's OAuth endpoints.
|
|
3
|
+
*
|
|
4
|
+
* The SDK owns the annoying parts: the PKCE verifier, callback parsing, token storage, silent
|
|
5
|
+
* refresh, and the one-shot 401 retry. In a browser the constructor automatically finishes a
|
|
6
|
+
* pending sign-in (detects ``?code&state`` on the current URL, exchanges it, then strips the
|
|
7
|
+
* params) and otherwise resumes a cached session. Errors surface via :meth:`Auth.onError`, never
|
|
8
|
+
* silently.
|
|
9
|
+
*/
|
|
10
|
+
import type { PkceStore, TokenStore } from "./storage.js";
|
|
11
|
+
import type { User } from "./types.js";
|
|
12
|
+
/** Notified whenever the signed-in user changes (sign-in, sign-out, refresh failure). */
|
|
13
|
+
export type ChangeListener = (user: User | null) => void;
|
|
14
|
+
/** Notified when an auth flow fails (state mismatch, token exchange, refresh). */
|
|
15
|
+
export type ErrorListener = (error: Error) => void;
|
|
16
|
+
export interface SignInOptions {
|
|
17
|
+
/** Where Atrium redirects back after sign-in. Defaults to the current origin + path (no query). */
|
|
18
|
+
redirectUri?: string;
|
|
19
|
+
/** OAuth scope string. Omit for the default "act as you" scope. */
|
|
20
|
+
scope?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare class Auth {
|
|
23
|
+
private readonly baseUrl;
|
|
24
|
+
private readonly clientId;
|
|
25
|
+
private readonly tokenStore;
|
|
26
|
+
private readonly pkceStore;
|
|
27
|
+
private _user;
|
|
28
|
+
private tokens;
|
|
29
|
+
private lastError;
|
|
30
|
+
private readonly changeListeners;
|
|
31
|
+
private readonly errorListeners;
|
|
32
|
+
private endpointsPromise;
|
|
33
|
+
private refreshPromise;
|
|
34
|
+
private readonly readyPromise;
|
|
35
|
+
constructor(baseUrl: string, clientId: string | undefined, tokenStore: TokenStore, pkceStore: PkceStore);
|
|
36
|
+
/** The signed-in user, or ``null`` when signed out. */
|
|
37
|
+
get user(): User | null;
|
|
38
|
+
/** The most recent auth error (also delivered to :meth:`onError` listeners), or ``null``. */
|
|
39
|
+
get error(): Error | null;
|
|
40
|
+
/** Resolves once the initial callback handling / session resume has completed. */
|
|
41
|
+
ready(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* A valid access token (refreshing proactively when near expiry), or ``null`` when signed out —
|
|
44
|
+
* for callers that attach it themselves, e.g. the live-transcription WebSocket's ``?api_key=`` query
|
|
45
|
+
* (browsers can't set a WS ``Authorization`` header). Waits for the initial session resume first.
|
|
46
|
+
*/
|
|
47
|
+
token(): Promise<string | null>;
|
|
48
|
+
/** Subscribe to user changes. Returns an unsubscribe function. */
|
|
49
|
+
onChange(cb: ChangeListener): () => void;
|
|
50
|
+
/** Subscribe to auth errors. Returns an unsubscribe function. */
|
|
51
|
+
onError(cb: ErrorListener): () => void;
|
|
52
|
+
/**
|
|
53
|
+
* Begin sign-in via a full-page redirect to Atrium's authorize page. Stores the PKCE verifier +
|
|
54
|
+
* state in ``sessionStorage`` and never resolves in practice (the page navigates away). Calling
|
|
55
|
+
* this while already signed in re-authenticates.
|
|
56
|
+
*/
|
|
57
|
+
signIn(opts?: SignInOptions): Promise<void>;
|
|
58
|
+
/** Revoke the refresh token (best-effort), clear stored tokens, and emit a signed-out change. */
|
|
59
|
+
signOut(): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* ``fetch`` against the Atrium instance with the access token attached. Refreshes proactively
|
|
62
|
+
* when the token is near expiry and reactively once on a 401. Relative ``path`` is resolved
|
|
63
|
+
* against ``baseUrl``; an absolute URL is used as-is. This is the foundation the rest of the SDK
|
|
64
|
+
* builds on.
|
|
65
|
+
*/
|
|
66
|
+
apiFetch(path: string, init?: RequestInit): Promise<Response>;
|
|
67
|
+
private init;
|
|
68
|
+
private completeCallback;
|
|
69
|
+
private exchangeCode;
|
|
70
|
+
private refresh;
|
|
71
|
+
private doRefresh;
|
|
72
|
+
private loadUser;
|
|
73
|
+
private validAccessToken;
|
|
74
|
+
private postToken;
|
|
75
|
+
private setTokens;
|
|
76
|
+
private signedOut;
|
|
77
|
+
private getEndpoints;
|
|
78
|
+
private resolveUrl;
|
|
79
|
+
private withAuth;
|
|
80
|
+
private stripCallbackParams;
|
|
81
|
+
private requireClientId;
|
|
82
|
+
private emitChange;
|
|
83
|
+
private emitError;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAgB,UAAU,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC,yFAAyF;AACzF,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAA;AAExD,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AAElD,MAAM,WAAW,aAAa;IAC5B,mGAAmG;IACnG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAQD,qBAAa,IAAI;IAWb,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAGzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS;IAavC,uDAAuD;IACvD,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAEtB;IAED,6FAA6F;IAC7F,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAExB;IAED,kFAAkF;IAClF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKrC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,IAAI;IAKxC,iEAAiE;IACjE,OAAO,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM,IAAI;IAKtC;;;;OAIG;IACG,MAAM,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBrD,iGAAiG;IAC3F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B;;;;;OAKG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;YAezD,IAAI;YAiCJ,gBAAgB;YAyBhB,YAAY;IAgB1B,OAAO,CAAC,OAAO;YAUD,SAAS;YAkCT,QAAQ;YAmBR,gBAAgB;YAehB,SAAS;IAyBvB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,SAAS;CAMlB"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "Sign in with Atrium" — Authorization Code + PKCE against Atrium's OAuth endpoints.
|
|
3
|
+
*
|
|
4
|
+
* The SDK owns the annoying parts: the PKCE verifier, callback parsing, token storage, silent
|
|
5
|
+
* refresh, and the one-shot 401 retry. In a browser the constructor automatically finishes a
|
|
6
|
+
* pending sign-in (detects ``?code&state`` on the current URL, exchanges it, then strips the
|
|
7
|
+
* params) and otherwise resumes a cached session. Errors surface via :meth:`Auth.onError`, never
|
|
8
|
+
* silently.
|
|
9
|
+
*/
|
|
10
|
+
import { discoverEndpoints } from "./discovery.js";
|
|
11
|
+
import { asError, httpFetch, isBrowser } from "./http.js";
|
|
12
|
+
import { createPkcePair, randomToken } from "./pkce.js";
|
|
13
|
+
// Refresh the access token this many milliseconds before it actually expires.
|
|
14
|
+
const REFRESH_SKEW_MS = 60_000;
|
|
15
|
+
// Params the SDK strips from the URL after handling a callback.
|
|
16
|
+
const CALLBACK_PARAMS = ["code", "state", "error", "error_description", "iss", "session_state"];
|
|
17
|
+
export class Auth {
|
|
18
|
+
baseUrl;
|
|
19
|
+
clientId;
|
|
20
|
+
tokenStore;
|
|
21
|
+
pkceStore;
|
|
22
|
+
_user;
|
|
23
|
+
tokens = null;
|
|
24
|
+
lastError = null;
|
|
25
|
+
changeListeners = new Set();
|
|
26
|
+
errorListeners = new Set();
|
|
27
|
+
endpointsPromise = null;
|
|
28
|
+
refreshPromise = null;
|
|
29
|
+
readyPromise;
|
|
30
|
+
constructor(baseUrl, clientId, tokenStore, pkceStore) {
|
|
31
|
+
this.baseUrl = baseUrl;
|
|
32
|
+
this.clientId = clientId;
|
|
33
|
+
this.tokenStore = tokenStore;
|
|
34
|
+
this.pkceStore = pkceStore;
|
|
35
|
+
if (isBrowser()) {
|
|
36
|
+
this._user = undefined; // loading until the constructor's init() resolves
|
|
37
|
+
// Defer to a microtask so onChange/onError subscribed synchronously after `new Atrium()`
|
|
38
|
+
// are in place before the initial callback/session events fire.
|
|
39
|
+
this.readyPromise = Promise.resolve().then(() => this.init());
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this._user = null; // no sign-in outside a browser; a cached session can't be resumed
|
|
43
|
+
this.readyPromise = Promise.resolve();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** The signed-in user, or ``null`` when signed out. */
|
|
47
|
+
get user() {
|
|
48
|
+
return this._user ?? null;
|
|
49
|
+
}
|
|
50
|
+
/** The most recent auth error (also delivered to :meth:`onError` listeners), or ``null``. */
|
|
51
|
+
get error() {
|
|
52
|
+
return this.lastError;
|
|
53
|
+
}
|
|
54
|
+
/** Resolves once the initial callback handling / session resume has completed. */
|
|
55
|
+
ready() {
|
|
56
|
+
return this.readyPromise;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A valid access token (refreshing proactively when near expiry), or ``null`` when signed out —
|
|
60
|
+
* for callers that attach it themselves, e.g. the live-transcription WebSocket's ``?api_key=`` query
|
|
61
|
+
* (browsers can't set a WS ``Authorization`` header). Waits for the initial session resume first.
|
|
62
|
+
*/
|
|
63
|
+
async token() {
|
|
64
|
+
await this.readyPromise;
|
|
65
|
+
return this.validAccessToken();
|
|
66
|
+
}
|
|
67
|
+
/** Subscribe to user changes. Returns an unsubscribe function. */
|
|
68
|
+
onChange(cb) {
|
|
69
|
+
this.changeListeners.add(cb);
|
|
70
|
+
return () => this.changeListeners.delete(cb);
|
|
71
|
+
}
|
|
72
|
+
/** Subscribe to auth errors. Returns an unsubscribe function. */
|
|
73
|
+
onError(cb) {
|
|
74
|
+
this.errorListeners.add(cb);
|
|
75
|
+
return () => this.errorListeners.delete(cb);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Begin sign-in via a full-page redirect to Atrium's authorize page. Stores the PKCE verifier +
|
|
79
|
+
* state in ``sessionStorage`` and never resolves in practice (the page navigates away). Calling
|
|
80
|
+
* this while already signed in re-authenticates.
|
|
81
|
+
*/
|
|
82
|
+
async signIn(opts = {}) {
|
|
83
|
+
if (!isBrowser()) {
|
|
84
|
+
throw new Error("Atrium: signIn() requires a browser environment");
|
|
85
|
+
}
|
|
86
|
+
const endpoints = await this.getEndpoints();
|
|
87
|
+
const { verifier, challenge } = await createPkcePair();
|
|
88
|
+
const state = randomToken(16);
|
|
89
|
+
const redirectUri = opts.redirectUri ?? currentUrlWithoutQuery();
|
|
90
|
+
this.pkceStore.save({ verifier, state, redirectUri });
|
|
91
|
+
const params = new URLSearchParams({
|
|
92
|
+
client_id: this.requireClientId(),
|
|
93
|
+
redirect_uri: redirectUri,
|
|
94
|
+
response_type: "code",
|
|
95
|
+
state,
|
|
96
|
+
code_challenge: challenge,
|
|
97
|
+
code_challenge_method: "S256",
|
|
98
|
+
});
|
|
99
|
+
if (opts.scope) {
|
|
100
|
+
params.set("scope", opts.scope);
|
|
101
|
+
}
|
|
102
|
+
window.location.assign(`${endpoints.authorization}?${params.toString()}`);
|
|
103
|
+
}
|
|
104
|
+
/** Revoke the refresh token (best-effort), clear stored tokens, and emit a signed-out change. */
|
|
105
|
+
async signOut() {
|
|
106
|
+
const token = this.tokens?.refreshToken ?? this.tokens?.accessToken ?? null;
|
|
107
|
+
if (token && this.clientId) {
|
|
108
|
+
try {
|
|
109
|
+
const endpoints = await this.getEndpoints();
|
|
110
|
+
await httpFetch(endpoints.revocation, {
|
|
111
|
+
method: "POST",
|
|
112
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
113
|
+
body: new URLSearchParams({
|
|
114
|
+
token,
|
|
115
|
+
token_type_hint: this.tokens?.refreshToken ? "refresh_token" : "access_token",
|
|
116
|
+
client_id: this.clientId,
|
|
117
|
+
}).toString(),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// Revocation is best-effort; clearing local state below is what actually signs the user out.
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
this.signedOut();
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* ``fetch`` against the Atrium instance with the access token attached. Refreshes proactively
|
|
128
|
+
* when the token is near expiry and reactively once on a 401. Relative ``path`` is resolved
|
|
129
|
+
* against ``baseUrl``; an absolute URL is used as-is. This is the foundation the rest of the SDK
|
|
130
|
+
* builds on.
|
|
131
|
+
*/
|
|
132
|
+
async apiFetch(path, init = {}) {
|
|
133
|
+
const url = this.resolveUrl(path);
|
|
134
|
+
const token = await this.validAccessToken();
|
|
135
|
+
let res = await httpFetch(url, this.withAuth(init, token));
|
|
136
|
+
if (res.status === 401 && this.tokens?.refreshToken) {
|
|
137
|
+
const refreshed = await this.refresh();
|
|
138
|
+
if (refreshed) {
|
|
139
|
+
res = await httpFetch(url, this.withAuth(init, this.tokens?.accessToken ?? null));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return res;
|
|
143
|
+
}
|
|
144
|
+
// --- internals ---------------------------------------------------------------------------------
|
|
145
|
+
async init() {
|
|
146
|
+
const params = new URLSearchParams(window.location.search);
|
|
147
|
+
const code = params.get("code");
|
|
148
|
+
const state = params.get("state");
|
|
149
|
+
const errorParam = params.get("error");
|
|
150
|
+
// Only interpret callback params when THIS client started a sign-in (a PKCE stash exists).
|
|
151
|
+
// Otherwise a host app's own ``?code=`` / ``?state=`` / ``?error=`` params are left untouched —
|
|
152
|
+
// we neither strip them nor raise a spurious "state mismatch".
|
|
153
|
+
const pending = this.pkceStore.load() !== null;
|
|
154
|
+
if (pending && errorParam) {
|
|
155
|
+
this.pkceStore.clear();
|
|
156
|
+
this.stripCallbackParams();
|
|
157
|
+
this._user = null;
|
|
158
|
+
this.emitError(new Error(`Atrium sign-in failed: ${errorParam}`));
|
|
159
|
+
this.emitChange();
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (pending && code && state) {
|
|
163
|
+
await this.completeCallback(code, state);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const stored = this.tokenStore.load();
|
|
167
|
+
if (stored) {
|
|
168
|
+
this.tokens = stored;
|
|
169
|
+
await this.loadUser();
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
this._user = null;
|
|
173
|
+
this.emitChange();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async completeCallback(code, state) {
|
|
177
|
+
const stash = this.pkceStore.load();
|
|
178
|
+
this.pkceStore.clear();
|
|
179
|
+
this.stripCallbackParams();
|
|
180
|
+
if (!stash || stash.state !== state) {
|
|
181
|
+
this._user = null;
|
|
182
|
+
this.emitError(new Error("Atrium sign-in failed: state mismatch (possible CSRF or a stale callback)"));
|
|
183
|
+
this.emitChange();
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
const tokens = await this.exchangeCode(code, stash.verifier, stash.redirectUri);
|
|
188
|
+
this.setTokens(tokens);
|
|
189
|
+
await this.loadUser();
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
this.tokens = null;
|
|
193
|
+
this._user = null;
|
|
194
|
+
this.emitError(asError(err));
|
|
195
|
+
this.emitChange();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
async exchangeCode(code, verifier, redirectUri) {
|
|
199
|
+
const endpoints = await this.getEndpoints();
|
|
200
|
+
const body = new URLSearchParams({
|
|
201
|
+
grant_type: "authorization_code",
|
|
202
|
+
code,
|
|
203
|
+
redirect_uri: redirectUri,
|
|
204
|
+
client_id: this.requireClientId(),
|
|
205
|
+
code_verifier: verifier,
|
|
206
|
+
});
|
|
207
|
+
return this.postToken(endpoints.token, body);
|
|
208
|
+
}
|
|
209
|
+
refresh() {
|
|
210
|
+
// Single-flight: concurrent callers share one refresh round-trip.
|
|
211
|
+
if (!this.refreshPromise) {
|
|
212
|
+
this.refreshPromise = this.doRefresh().finally(() => {
|
|
213
|
+
this.refreshPromise = null;
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
return this.refreshPromise;
|
|
217
|
+
}
|
|
218
|
+
async doRefresh() {
|
|
219
|
+
// Storage is shared across tabs; a sibling may have rotated the refresh token since we cached it
|
|
220
|
+
// in memory. Adopt the stored tokens first so we don't POST one a sibling already revoked.
|
|
221
|
+
const stored = this.tokenStore.load();
|
|
222
|
+
if (stored && stored.refreshToken !== this.tokens?.refreshToken) {
|
|
223
|
+
this.tokens = stored;
|
|
224
|
+
}
|
|
225
|
+
const refreshToken = this.tokens?.refreshToken;
|
|
226
|
+
if (!refreshToken) {
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
try {
|
|
230
|
+
const endpoints = await this.getEndpoints();
|
|
231
|
+
const body = new URLSearchParams({
|
|
232
|
+
grant_type: "refresh_token",
|
|
233
|
+
refresh_token: refreshToken,
|
|
234
|
+
client_id: this.requireClientId(),
|
|
235
|
+
});
|
|
236
|
+
this.setTokens(await this.postToken(endpoints.token, body));
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
// A sibling tab may have refreshed concurrently (rotating the token we just tried). If storage
|
|
241
|
+
// now holds a different refresh token, adopt it rather than signing this tab out.
|
|
242
|
+
const latest = this.tokenStore.load();
|
|
243
|
+
if (latest && latest.refreshToken !== refreshToken) {
|
|
244
|
+
this.tokens = latest;
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
this.emitError(asError(err));
|
|
248
|
+
this.signedOut();
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
async loadUser() {
|
|
253
|
+
try {
|
|
254
|
+
const res = await this.apiFetch("/v1/users/me");
|
|
255
|
+
if (!res.ok) {
|
|
256
|
+
throw new Error(`Atrium: failed to load the signed-in user (HTTP ${res.status})`);
|
|
257
|
+
}
|
|
258
|
+
this._user = (await res.json());
|
|
259
|
+
this.lastError = null;
|
|
260
|
+
this.emitChange();
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
// A failure here (or a refresh that gave up inside apiFetch) means we are not signed in.
|
|
264
|
+
this.tokens = null;
|
|
265
|
+
this.tokenStore.clear();
|
|
266
|
+
this._user = null;
|
|
267
|
+
this.emitError(asError(err));
|
|
268
|
+
this.emitChange();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
async validAccessToken() {
|
|
272
|
+
if (!this.tokens) {
|
|
273
|
+
return null;
|
|
274
|
+
}
|
|
275
|
+
if (Date.now() < this.tokens.expiresAt - REFRESH_SKEW_MS) {
|
|
276
|
+
return this.tokens.accessToken;
|
|
277
|
+
}
|
|
278
|
+
if (this.tokens.refreshToken) {
|
|
279
|
+
const refreshed = await this.refresh();
|
|
280
|
+
return refreshed ? (this.tokens?.accessToken ?? null) : null;
|
|
281
|
+
}
|
|
282
|
+
// No refresh token: send the (possibly stale) access token and let a 401 be handled reactively.
|
|
283
|
+
return this.tokens.accessToken;
|
|
284
|
+
}
|
|
285
|
+
async postToken(url, body) {
|
|
286
|
+
const res = await httpFetch(url, {
|
|
287
|
+
method: "POST",
|
|
288
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
289
|
+
body: body.toString(),
|
|
290
|
+
});
|
|
291
|
+
if (!res.ok) {
|
|
292
|
+
const detail = await res.text().catch(() => "");
|
|
293
|
+
throw new Error(`Atrium token request failed: HTTP ${res.status} ${detail}`.trimEnd());
|
|
294
|
+
}
|
|
295
|
+
const data = (await res.json());
|
|
296
|
+
if (!data.access_token) {
|
|
297
|
+
throw new Error("Atrium token response missing access_token");
|
|
298
|
+
}
|
|
299
|
+
return {
|
|
300
|
+
accessToken: data.access_token,
|
|
301
|
+
refreshToken: data.refresh_token ?? this.tokens?.refreshToken ?? null,
|
|
302
|
+
expiresAt: Date.now() + (data.expires_in ?? 0) * 1000,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
setTokens(tokens) {
|
|
306
|
+
this.tokens = tokens;
|
|
307
|
+
this.tokenStore.save(tokens);
|
|
308
|
+
}
|
|
309
|
+
signedOut() {
|
|
310
|
+
this.tokens = null;
|
|
311
|
+
this.tokenStore.clear();
|
|
312
|
+
this._user = null;
|
|
313
|
+
this.emitChange();
|
|
314
|
+
}
|
|
315
|
+
getEndpoints() {
|
|
316
|
+
if (!this.endpointsPromise) {
|
|
317
|
+
this.endpointsPromise = discoverEndpoints(this.baseUrl);
|
|
318
|
+
}
|
|
319
|
+
return this.endpointsPromise;
|
|
320
|
+
}
|
|
321
|
+
resolveUrl(path) {
|
|
322
|
+
if (/^https?:\/\//i.test(path)) {
|
|
323
|
+
return path;
|
|
324
|
+
}
|
|
325
|
+
return `${this.baseUrl}${path.startsWith("/") ? path : `/${path}`}`;
|
|
326
|
+
}
|
|
327
|
+
withAuth(init, token) {
|
|
328
|
+
if (!token) {
|
|
329
|
+
return init;
|
|
330
|
+
}
|
|
331
|
+
const headers = new Headers(init.headers);
|
|
332
|
+
headers.set("Authorization", `Bearer ${token}`);
|
|
333
|
+
return { ...init, headers };
|
|
334
|
+
}
|
|
335
|
+
stripCallbackParams() {
|
|
336
|
+
try {
|
|
337
|
+
const url = new URL(window.location.href);
|
|
338
|
+
for (const param of CALLBACK_PARAMS) {
|
|
339
|
+
url.searchParams.delete(param);
|
|
340
|
+
}
|
|
341
|
+
window.history.replaceState(window.history.state, "", url.toString());
|
|
342
|
+
}
|
|
343
|
+
catch {
|
|
344
|
+
// History API unavailable — leaving the params in the URL is cosmetic, not a failure.
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
requireClientId() {
|
|
348
|
+
if (!this.clientId) {
|
|
349
|
+
throw new Error("Atrium: clientId is required for sign-in (pass { clientId } or set ATRIUM_CLIENT_ID)");
|
|
350
|
+
}
|
|
351
|
+
return this.clientId;
|
|
352
|
+
}
|
|
353
|
+
emitChange() {
|
|
354
|
+
const user = this.user;
|
|
355
|
+
for (const cb of this.changeListeners) {
|
|
356
|
+
cb(user);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
emitError(err) {
|
|
360
|
+
this.lastError = err;
|
|
361
|
+
for (const cb of this.errorListeners) {
|
|
362
|
+
cb(err);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
function currentUrlWithoutQuery() {
|
|
367
|
+
return `${window.location.origin}${window.location.pathname}`;
|
|
368
|
+
}
|
|
369
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/by.d.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ``by`` operand grammar — how ``searchByExamples`` (and, later, ``compare``) names a thing to
|
|
3
|
+
* embed. The TypeScript mirror of ``hci_atrium._operands``.
|
|
4
|
+
*
|
|
5
|
+
* Decision 9: no bare ``number[]`` heuristic. A raw vector is *always* explicit — ``by.vector([…])``
|
|
6
|
+
* — because a bare array is otherwise ambiguous (a few-shot list vs. a vector). Every operand is a
|
|
7
|
+
* member of a discriminated union keyed on ``kind``. ``by.text`` / ``by.asset`` disambiguate the
|
|
8
|
+
* two cases whose bare form clashes (a text string vs. an id string; a text string vs. a file);
|
|
9
|
+
* ``by.file`` / ``by.concept`` have no bare form.
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { by } from "hci-atrium"
|
|
13
|
+
* client.library.searchByExamples([hit.asset, by.asset("uuid")])
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
import type { FileSource } from "./files.js";
|
|
17
|
+
import type { Asset } from "./models.js";
|
|
18
|
+
/** An existing library asset, by id. */
|
|
19
|
+
export interface AssetOperand {
|
|
20
|
+
kind: "asset";
|
|
21
|
+
assetId: string;
|
|
22
|
+
}
|
|
23
|
+
/** A file to embed in-flight — a Blob/File or a URL string; ``format`` hints raw-bytes typing. */
|
|
24
|
+
export interface FileOperand {
|
|
25
|
+
kind: "file";
|
|
26
|
+
file: FileSource;
|
|
27
|
+
format?: string;
|
|
28
|
+
}
|
|
29
|
+
/** A text query (the explicit form of a bare string). */
|
|
30
|
+
export interface TextOperand {
|
|
31
|
+
kind: "text";
|
|
32
|
+
text: string;
|
|
33
|
+
}
|
|
34
|
+
/** A raw embedding vector (the only way to pass one — decision 9). */
|
|
35
|
+
export interface VectorOperand {
|
|
36
|
+
kind: "vector";
|
|
37
|
+
vector: number[];
|
|
38
|
+
}
|
|
39
|
+
/** A tag's concept classifier, by name (scoped to a collection's chain) or id. */
|
|
40
|
+
export interface ConceptOperand {
|
|
41
|
+
kind: "concept";
|
|
42
|
+
name: string;
|
|
43
|
+
collection?: string;
|
|
44
|
+
}
|
|
45
|
+
export type Operand = AssetOperand | FileOperand | TextOperand | VectorOperand | ConceptOperand;
|
|
46
|
+
/** Anything the operand grammar accepts at a call site: an {@link Operand}, an {@link Asset}, or a
|
|
47
|
+
* bare text string. (A bare array is deliberately *not* accepted — wrap it with ``by.vector``.) */
|
|
48
|
+
export type OperandLike = Operand | Asset | string;
|
|
49
|
+
/** One ``room.audioScores`` anchor's value: a single {@link OperandLike}, or an array of them — a
|
|
50
|
+
* few-shot category scored as the mean of its top members. Mirror of Python's ``AnchorLike``. */
|
|
51
|
+
export type AnchorLike = OperandLike | OperandLike[];
|
|
52
|
+
/** Explicit operand constructors. */
|
|
53
|
+
export declare const by: {
|
|
54
|
+
/** An existing library asset, by object or id. */
|
|
55
|
+
readonly asset: (asset: string | Asset) => AssetOperand;
|
|
56
|
+
/** A file to embed in-flight. Pass ``format`` (e.g. ``"wav"``) for raw bytes with no type. */
|
|
57
|
+
readonly file: (source: FileSource, opts?: {
|
|
58
|
+
format?: string;
|
|
59
|
+
}) => FileOperand;
|
|
60
|
+
/** A text query (the explicit form of a bare string). */
|
|
61
|
+
readonly text: (text: string) => TextOperand;
|
|
62
|
+
/** A raw embedding vector (the explicit form there is no bare form for). */
|
|
63
|
+
readonly vector: (vector: number[]) => VectorOperand;
|
|
64
|
+
/** A tag's concept classifier, by name (scoped to ``collection``'s chain) or id. */
|
|
65
|
+
readonly concept: (nameOrId: string, opts?: {
|
|
66
|
+
collection?: string;
|
|
67
|
+
}) => ConceptOperand;
|
|
68
|
+
};
|
|
69
|
+
/** Normalize a call-site value to an {@link Operand} using the bare-value rules. */
|
|
70
|
+
export declare function toOperand(value: OperandLike): Operand;
|
|
71
|
+
/**
|
|
72
|
+
* Resolve one ``audioScores`` anchor's value to its member {@link Operand}(s): a scalar is a
|
|
73
|
+
* single-member anchor; an array that *isn't* a raw vector is a few-shot category (each member
|
|
74
|
+
* resolved by the normal bare-value rules, so a nested ``number[]`` member is still a vector).
|
|
75
|
+
* Mirror of Python's ``to_anchor_members``.
|
|
76
|
+
*/
|
|
77
|
+
export declare function toAnchorMembers(value: AnchorLike): Operand[];
|
|
78
|
+
/**
|
|
79
|
+
* Resolve a ``searchByExamples`` seed to an asset id. v1 seeds are assets only — an {@link Asset}
|
|
80
|
+
* object or ``by.asset(id)``. A bare string is a *text* query in the grammar (not a valid seed
|
|
81
|
+
* yet), so it is rejected with a pointer to ``by.asset(...)``.
|
|
82
|
+
*/
|
|
83
|
+
export declare function seedAssetId(value: OperandLike): string;
|
|
84
|
+
//# sourceMappingURL=by.d.ts.map
|
package/dist/by.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"by.d.ts","sourceRoot":"","sources":["../src/by.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,wCAAwC;AACxC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAA;AAE/F;mGACmG;AACnG,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAElD;iGACiG;AACjG,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,EAAE,CAAA;AAEpD,qCAAqC;AACrC,eAAO,MAAM,EAAE;IACb,kDAAkD;4BACrC,MAAM,GAAG,KAAK,KAAG,YAAY;IAG1C,8FAA8F;4BACjF,UAAU,SAAQ;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAQ,WAAW;IAGrE,yDAAyD;0BAC9C,MAAM,KAAG,WAAW;IAG/B,4EAA4E;8BAC7D,MAAM,EAAE,KAAG,aAAa;IAGvC,oFAAoF;iCAClE,MAAM,SAAQ;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAQ,cAAc;CAGrE,CAAA;AAMV,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAQrD;AAQD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,EAAE,CAS5D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAStD"}
|