@rool-dev/sdk 0.11.3 → 0.11.4-dev.e9877cb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +165 -105
  2. package/dist/auth-base.d.ts +100 -0
  3. package/dist/auth-base.d.ts.map +1 -0
  4. package/dist/auth-base.js +377 -0
  5. package/dist/auth-base.js.map +1 -0
  6. package/dist/auth-browser.d.ts +6 -77
  7. package/dist/auth-browser.d.ts.map +1 -1
  8. package/dist/auth-browser.js +32 -328
  9. package/dist/auth-browser.js.map +1 -1
  10. package/dist/auth-native.d.ts +72 -0
  11. package/dist/auth-native.d.ts.map +1 -0
  12. package/dist/auth-native.js +260 -0
  13. package/dist/auth-native.js.map +1 -0
  14. package/dist/auth.d.ts +17 -1
  15. package/dist/auth.d.ts.map +1 -1
  16. package/dist/auth.js +36 -5
  17. package/dist/auth.js.map +1 -1
  18. package/dist/client-info.d.ts +18 -0
  19. package/dist/client-info.d.ts.map +1 -0
  20. package/dist/client-info.js +25 -0
  21. package/dist/client-info.js.map +1 -0
  22. package/dist/client.d.ts +34 -8
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +79 -26
  25. package/dist/client.js.map +1 -1
  26. package/dist/graphql.d.ts +15 -19
  27. package/dist/graphql.d.ts.map +1 -1
  28. package/dist/graphql.js +43 -77
  29. package/dist/graphql.js.map +1 -1
  30. package/dist/index.d.ts +5 -2
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +5 -2
  33. package/dist/index.js.map +1 -1
  34. package/dist/reroute.d.ts.map +1 -1
  35. package/dist/reroute.js +9 -0
  36. package/dist/reroute.js.map +1 -1
  37. package/dist/rest.d.ts +3 -0
  38. package/dist/rest.d.ts.map +1 -1
  39. package/dist/rest.js +4 -0
  40. package/dist/rest.js.map +1 -1
  41. package/dist/router.d.ts +3 -0
  42. package/dist/router.d.ts.map +1 -1
  43. package/dist/router.js +8 -5
  44. package/dist/router.js.map +1 -1
  45. package/dist/{channel.d.ts → space-session.d.ts} +44 -139
  46. package/dist/space-session.d.ts.map +1 -0
  47. package/dist/{channel.js → space-session.js} +111 -325
  48. package/dist/space-session.js.map +1 -0
  49. package/dist/space.d.ts +21 -48
  50. package/dist/space.d.ts.map +1 -1
  51. package/dist/space.js +88 -223
  52. package/dist/space.js.map +1 -1
  53. package/dist/subscription.d.ts +5 -2
  54. package/dist/subscription.d.ts.map +1 -1
  55. package/dist/subscription.js +13 -33
  56. package/dist/subscription.js.map +1 -1
  57. package/dist/types.d.ts +80 -83
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/webdav.d.ts +3 -0
  60. package/dist/webdav.d.ts.map +1 -1
  61. package/dist/webdav.js +4 -0
  62. package/dist/webdav.js.map +1 -1
  63. package/package.json +1 -1
  64. package/dist/channel.d.ts.map +0 -1
  65. package/dist/channel.js.map +0 -1
@@ -0,0 +1,260 @@
1
+ // =============================================================================
2
+ // Native PKCE auth provider
3
+ // For app shells that run JavaScript but sign in through an external system
4
+ // browser (Capacitor, Cordova, Tauri, ...). The app hands off to the auth
5
+ // server's /authorize in an external browser, then feeds the deep-link callback
6
+ // back into handleRedirect(), which exchanges the code + verifier at /token.
7
+ //
8
+ // The SDK stays platform-agnostic: the app injects how to open an external URL
9
+ // (openExternal) and calls handleRedirect() from its own deep-link listener.
10
+ // Token storage and refresh are inherited from BaseTokenAuthProvider.
11
+ // =============================================================================
12
+ import { BaseTokenAuthProvider } from './auth-base.js';
13
+ export class NativePkceAuthProvider extends BaseTokenAuthProvider {
14
+ redirectUri;
15
+ defaultProvider;
16
+ openExternal;
17
+ constructor(config) {
18
+ super();
19
+ this.redirectUri = config.redirectUri;
20
+ this.defaultProvider = config.defaultProvider ?? 'google';
21
+ this.openExternal = config.openExternal;
22
+ }
23
+ /**
24
+ * No synchronous callback to process — the app drives completion via
25
+ * handleRedirect(). Just arm refresh for any persisted session.
26
+ */
27
+ initialize() {
28
+ this.initBase();
29
+ return false;
30
+ }
31
+ /**
32
+ * Begin sign-in. `params.provider` ('google' | 'apple') overrides the
33
+ * default; `params.rvid` is forwarded for signup attribution.
34
+ */
35
+ login(_appName, params) {
36
+ return this.startPkce(params);
37
+ }
38
+ /**
39
+ * Same flow as login — the providers don't distinguish signup from login
40
+ * for native, and the auth server creates the account on first sign-in.
41
+ */
42
+ signup(_appName, params) {
43
+ return this.startPkce(params);
44
+ }
45
+ /**
46
+ * Complete a sign-in from the deep link the app received (e.g. Capacitor's
47
+ * appUrlOpen). Validates state, exchanges the code + stored verifier at
48
+ * /token, and persists the session. Returns true once signed in.
49
+ */
50
+ async handleRedirect(url) {
51
+ if (!url.startsWith(this.redirectUri))
52
+ return false;
53
+ let parsed;
54
+ try {
55
+ parsed = new URL(url);
56
+ }
57
+ catch {
58
+ return false;
59
+ }
60
+ const error = parsed.searchParams.get('error');
61
+ if (error) {
62
+ this.logger.warn(`[RoolClient] Native auth error: ${error}`);
63
+ this.clearTransientState();
64
+ return false;
65
+ }
66
+ const code = parsed.searchParams.get('code');
67
+ const incomingState = parsed.searchParams.get('state');
68
+ if (!code)
69
+ return false;
70
+ const verifier = this.readString(this.verifierKey);
71
+ const storedState = this.readString(this.stateKey);
72
+ if (!verifier) {
73
+ this.logger.error('[RoolClient] No PKCE verifier for redirect. Ignored.');
74
+ return false;
75
+ }
76
+ if (storedState && incomingState !== storedState) {
77
+ this.logger.error('[RoolClient] Native auth state mismatch. Ignored.');
78
+ this.clearTransientState();
79
+ return false;
80
+ }
81
+ let response;
82
+ try {
83
+ response = await fetch(`${this.authBaseUrl}/token`, {
84
+ method: 'POST',
85
+ headers: { 'Content-Type': 'application/json' },
86
+ body: JSON.stringify({ code, code_verifier: verifier }),
87
+ });
88
+ }
89
+ catch (err) {
90
+ // Network error - keep the verifier so a retry can still complete.
91
+ this.logger.error('[RoolClient] /token network error:', err);
92
+ return false;
93
+ }
94
+ // The code is single-use and the verifier is now spent either way.
95
+ this.clearTransientState();
96
+ if (!response.ok) {
97
+ this.logger.warn(`[RoolClient] /token failed: ${response.status}`);
98
+ return false;
99
+ }
100
+ let data;
101
+ try {
102
+ data = await response.json();
103
+ }
104
+ catch (err) {
105
+ this.logger.error('[RoolClient] /token response parse error:', err);
106
+ return false;
107
+ }
108
+ const idToken = data.id_token ?? null;
109
+ const refreshToken = data.refresh_token ?? null;
110
+ const expiresAt = data.expires_in ? Date.now() + data.expires_in * 1000 : NaN;
111
+ if (!idToken || !Number.isFinite(expiresAt)) {
112
+ this.logger.error('[RoolClient] /token response missing id_token or expires_in');
113
+ return false;
114
+ }
115
+ this.acceptTokens(idToken, refreshToken, data.rool_token ?? null, expiresAt);
116
+ this.notifyAuthState(true);
117
+ return true;
118
+ }
119
+ /**
120
+ * Sign in with email + password. No redirect involved — the auth server
121
+ * returns the token set as JSON, which we persist directly.
122
+ *
123
+ * Resolves `signed_in` on success, or `verify_required` when the account's
124
+ * email isn't verified (the server has emailed a magic link). Rejects with
125
+ * a human-readable Error on bad credentials or server failure.
126
+ */
127
+ async signInWithPassword(email, password) {
128
+ let response;
129
+ try {
130
+ response = await fetch(`${this.authBaseUrl}/login-password`, {
131
+ method: 'POST',
132
+ headers: { 'Content-Type': 'application/json' },
133
+ body: JSON.stringify({ email, password }),
134
+ });
135
+ }
136
+ catch (err) {
137
+ this.logger.error('[RoolClient] login-password network error:', err);
138
+ throw new Error('Network error. Please try again.');
139
+ }
140
+ let data;
141
+ try {
142
+ data = await response.json();
143
+ }
144
+ catch {
145
+ throw new Error('Unexpected response. Please try again.');
146
+ }
147
+ if (!response.ok || data.ok === false) {
148
+ throw new Error(data.error || 'Invalid email or password.');
149
+ }
150
+ if (data.status === 'verify_required') {
151
+ return { status: 'verify_required' };
152
+ }
153
+ const idToken = data.id_token ?? null;
154
+ const refreshToken = data.refresh_token ?? null;
155
+ const expiresAt = data.expires_in ? Date.now() + data.expires_in * 1000 : NaN;
156
+ if (!idToken || !Number.isFinite(expiresAt)) {
157
+ this.logger.error('[RoolClient] login-password response missing id_token or expires_in');
158
+ throw new Error('Sign-in failed. Please try again.');
159
+ }
160
+ this.acceptTokens(idToken, refreshToken, data.rool_token ?? null, expiresAt);
161
+ this.notifyAuthState(true);
162
+ return { status: 'signed_in' };
163
+ }
164
+ /**
165
+ * Request a magic sign-in link by email. The server emails a link carrying
166
+ * a verify token; the user completes sign-in by following it, which lands
167
+ * back in the app and is finished via `verify(token)`. Resolves once the
168
+ * email is accepted; rejects with a human-readable Error if the address is
169
+ * rejected (invalid / disposable / unreachable).
170
+ *
171
+ * NOTE: the emailed link is an https URL (`<appsDomain>/?verify=…`), so on
172
+ * native it only re-opens the app if Universal Links / App Links are set up
173
+ * for that domain. Without them the link completes on the website instead.
174
+ */
175
+ async requestMagicLink(email) {
176
+ let response;
177
+ try {
178
+ response = await fetch(`${this.authBaseUrl}/magic-link`, {
179
+ method: 'POST',
180
+ headers: { 'Content-Type': 'application/json' },
181
+ body: JSON.stringify({ email }),
182
+ });
183
+ }
184
+ catch (err) {
185
+ this.logger.error('[RoolClient] magic-link network error:', err);
186
+ throw new Error('Network error. Please try again.');
187
+ }
188
+ let data;
189
+ try {
190
+ data = await response.json();
191
+ }
192
+ catch {
193
+ data = {};
194
+ }
195
+ if (!response.ok || data.ok === false) {
196
+ throw new Error(data.error || 'Could not send the sign-in link. Please try again.');
197
+ }
198
+ }
199
+ // ===========================================================================
200
+ // Private
201
+ // ===========================================================================
202
+ get verifierKey() {
203
+ return this.keyFor('pkce_verifier');
204
+ }
205
+ get stateKey() {
206
+ return this.keyFor('pkce_state');
207
+ }
208
+ async startPkce(params) {
209
+ const provider = normalizeProvider(params?.provider) ?? this.defaultProvider;
210
+ const verifier = generateCodeVerifier();
211
+ const challenge = await deriveCodeChallenge(verifier);
212
+ const state = generateState();
213
+ // Stash the verifier + state for handleRedirect(). localStorage (not
214
+ // sessionStorage) so it survives the app being backgrounded while the
215
+ // external browser is in front.
216
+ this.writeString(this.verifierKey, verifier);
217
+ this.writeString(this.stateKey, state);
218
+ const url = new URL(`${this.authBaseUrl}/authorize`);
219
+ url.searchParams.set('provider', provider);
220
+ url.searchParams.set('redirect_uri', this.redirectUri);
221
+ url.searchParams.set('state', state);
222
+ url.searchParams.set('code_challenge', challenge);
223
+ url.searchParams.set('code_challenge_method', 'S256');
224
+ if (params?.rvid)
225
+ url.searchParams.set('rvid', params.rvid);
226
+ await this.openExternal(url.toString());
227
+ }
228
+ clearTransientState() {
229
+ this.removeString(this.verifierKey);
230
+ this.removeString(this.stateKey);
231
+ }
232
+ }
233
+ function normalizeProvider(value) {
234
+ return value === 'google' || value === 'apple' ? value : null;
235
+ }
236
+ /** RFC 7636 code verifier: base64url of 32 random bytes (43 chars, unreserved). */
237
+ function generateCodeVerifier() {
238
+ const bytes = new Uint8Array(32);
239
+ crypto.getRandomValues(bytes);
240
+ return base64UrlEncode(bytes.buffer);
241
+ }
242
+ /** S256 challenge: base64url(SHA-256(verifier)). */
243
+ async function deriveCodeChallenge(verifier) {
244
+ const digest = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(verifier));
245
+ return base64UrlEncode(digest);
246
+ }
247
+ function generateState() {
248
+ const bytes = new Uint8Array(16);
249
+ crypto.getRandomValues(bytes);
250
+ return Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
251
+ }
252
+ function base64UrlEncode(buffer) {
253
+ const bytes = new Uint8Array(buffer);
254
+ let binary = '';
255
+ for (let i = 0; i < bytes.length; i++) {
256
+ binary += String.fromCharCode(bytes[i]);
257
+ }
258
+ return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
259
+ }
260
+ //# sourceMappingURL=auth-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-native.js","sourceRoot":"","sources":["../src/auth-native.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,4BAA4B;AAC5B,4EAA4E;AAC5E,0EAA0E;AAC1E,gFAAgF;AAChF,6EAA6E;AAC7E,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,sEAAsE;AACtE,gFAAgF;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAsBvD,MAAM,OAAO,sBAAuB,SAAQ,qBAAqB;IAC5C,WAAW,CAAS;IACpB,eAAe,CAAyB;IACxC,YAAY,CAAwC;IAErE,YAAY,MAA4B;QACpC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,UAAU;QACN,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAgB,EAAE,MAA+B;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAgB,EAAE,MAA+B;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,GAAW;QAC5B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAEpD,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,WAAW,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACvE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,QAAQ,EAAE;gBAChD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;aAC1D,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,mEAAmE;YACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YAC7D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAKH,CAAC;QACF,IAAI,CAAC;YACD,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9E,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACjF,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,QAAgB;QACpD,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,iBAAiB,EAAE;gBACzD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;aAC5C,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAQH,CAAC;QACF,IAAI,CAAC;YACD,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,4BAA4B,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACpC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9E,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACzF,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAa;QAChC,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,aAAa,EAAE;gBACrD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;aAClC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAsC,CAAC;QAC3C,IAAI,CAAC;YACD,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,GAAG,EAAE,CAAC;QACd,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,oDAAoD,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,UAAU;IACV,8EAA8E;IAE9E,IAAY,WAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAED,IAAY,QAAQ;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAA+B;QACnD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;QAC7E,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAE9B,qEAAqE;QACrE,sEAAsE;QACtE,gCAAgC;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,YAAY,CAAC,CAAC;QACrD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,MAAM,EAAE,IAAI;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAE5D,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IAES,mBAAmB;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;CACJ;AAED,SAAS,iBAAiB,CAAC,KAAyB;IAChD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC;AAED,mFAAmF;AACnF,SAAS,oBAAoB;IACzB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,oDAAoD;AACpD,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IAC/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzF,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,aAAa;IAClB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB;IACxC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC"}
package/dist/auth.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AuthUser, AuthProvider } from './types.js';
1
+ import type { AuthUser, AuthProvider, PasswordSignInResult } from './types.js';
2
2
  import type { Logger } from './logger.js';
3
3
  export interface AuthManagerConfig {
4
4
  authUrl: string;
@@ -46,6 +46,22 @@ export declare class AuthManager {
46
46
  * signed in as a result.
47
47
  */
48
48
  verify(token: string): Promise<boolean>;
49
+ /**
50
+ * Complete a native deep-link auth callback (PKCE providers). The app calls
51
+ * this from its platform deep-link handler with the full callback URL.
52
+ * Returns true if the user is signed in as a result.
53
+ */
54
+ handleRedirect(url: string): Promise<boolean>;
55
+ /**
56
+ * Sign in with email + password. Resolves `signed_in` or `verify_required`;
57
+ * rejects on bad credentials or if the provider doesn't support it.
58
+ */
59
+ signInWithPassword(email: string, password: string): Promise<PasswordSignInResult>;
60
+ /**
61
+ * Request a magic sign-in link by email. Resolves once accepted; rejects on a
62
+ * bad address or if the provider doesn't support it.
63
+ */
64
+ requestMagicLink(email: string): Promise<void>;
49
65
  /**
50
66
  * Logout - clear all tokens and state.
51
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,6EAA6E;IAC7E,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB;IAyBrC;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAIlF;;OAEG;IACH,WAAW,IAAI,QAAQ;IAIvB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI7E;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI9E;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7C;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;;OAGG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD;;;;OAIG;IACH,eAAe,IAAI,OAAO;IAQ1B;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,6EAA6E;IAC7E,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB;IA0BrC;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAIlF;;OAEG;IACH,WAAW,IAAI,QAAQ;IAIvB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI7E;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI9E;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7C;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnD;;;OAGG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAOxF;;;OAGG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;;OAGG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD;;;;OAIG;IACH,eAAe,IAAI,OAAO;IAQ1B;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
package/dist/auth.js CHANGED
@@ -11,12 +11,13 @@ export class AuthManager {
11
11
  if (config.authProvider) {
12
12
  this.provider = config.authProvider;
13
13
  // Inject auth URL if the provider supports it (e.g. NodeAuthProvider)
14
- if ('setAuthUrl' in this.provider && typeof this.provider.setAuthUrl === 'function') {
15
- this.provider.setAuthUrl(config.authUrl);
16
- }
14
+ this.provider.setAuthUrl?.(config.authUrl);
17
15
  // Inject logger if the provider supports it
18
- if ('setLogger' in this.provider && typeof this.provider.setLogger === 'function') {
19
- this.provider.setLogger(config.logger);
16
+ this.provider.setLogger?.(config.logger);
17
+ // Bridge auth-state to client events/state (e.g. NativePkceAuthProvider),
18
+ // so provider-driven sign-out and 401 token clearing reach the client.
19
+ if (config.onAuthStateChanged) {
20
+ this.provider.setAuthStateChangedHandler?.(config.onAuthStateChanged);
20
21
  }
21
22
  }
22
23
  else {
@@ -79,6 +80,36 @@ export class AuthManager {
79
80
  return false;
80
81
  return this.provider.verify(token);
81
82
  }
83
+ /**
84
+ * Complete a native deep-link auth callback (PKCE providers). The app calls
85
+ * this from its platform deep-link handler with the full callback URL.
86
+ * Returns true if the user is signed in as a result.
87
+ */
88
+ async handleRedirect(url) {
89
+ if (!this.provider.handleRedirect)
90
+ return false;
91
+ return this.provider.handleRedirect(url);
92
+ }
93
+ /**
94
+ * Sign in with email + password. Resolves `signed_in` or `verify_required`;
95
+ * rejects on bad credentials or if the provider doesn't support it.
96
+ */
97
+ async signInWithPassword(email, password) {
98
+ if (!this.provider.signInWithPassword) {
99
+ throw new Error('Password sign-in is not supported by this auth provider');
100
+ }
101
+ return this.provider.signInWithPassword(email, password);
102
+ }
103
+ /**
104
+ * Request a magic sign-in link by email. Resolves once accepted; rejects on a
105
+ * bad address or if the provider doesn't support it.
106
+ */
107
+ async requestMagicLink(email) {
108
+ if (!this.provider.requestMagicLink) {
109
+ throw new Error('Magic-link sign-in is not supported by this auth provider');
110
+ }
111
+ return this.provider.requestMagicLink(email);
112
+ }
82
113
  /**
83
114
  * Logout - clear all tokens and state.
84
115
  */
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface RoolClientIdentity {
2
+ /** Application name, e.g. com.example.app or my-web-app. */
3
+ appName?: string;
4
+ /** Application version, e.g. 1.4.2. */
5
+ appVersion?: string;
6
+ /** Operating system version, e.g. iOS 17.5 or Android 15. */
7
+ osVersion?: string;
8
+ }
9
+ export interface RoolClientInfo {
10
+ sdkName: string;
11
+ sdkVersion: string;
12
+ identity: RoolClientIdentity;
13
+ }
14
+ export declare const roolSdkVersion: string;
15
+ export declare function resolveClientInfo(identity?: RoolClientIdentity): RoolClientInfo;
16
+ export declare function addClientInfoHeaders(headers: Headers, clientInfo: RoolClientInfo): void;
17
+ export declare function clientInfoHeaderRecord(clientInfo: RoolClientInfo): Record<string, string>;
18
+ //# sourceMappingURL=client-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-info.d.ts","sourceRoot":"","sources":["../src/client-info.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,eAAO,MAAM,cAAc,QAAc,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAM/E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CAOvF;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIzF"}
@@ -0,0 +1,25 @@
1
+ import pkg from '../package.json' with { type: 'json' };
2
+ export const roolSdkVersion = pkg.version;
3
+ export function resolveClientInfo(identity) {
4
+ return {
5
+ sdkName: pkg.name,
6
+ sdkVersion: pkg.version,
7
+ identity: identity ?? {},
8
+ };
9
+ }
10
+ export function addClientInfoHeaders(headers, clientInfo) {
11
+ headers.set('X-Rool-SDK-Name', clientInfo.sdkName);
12
+ headers.set('X-Rool-SDK-Version', clientInfo.sdkVersion);
13
+ if (clientInfo.identity.appName)
14
+ headers.set('X-Rool-App-Name', clientInfo.identity.appName);
15
+ if (clientInfo.identity.appVersion)
16
+ headers.set('X-Rool-App-Version', clientInfo.identity.appVersion);
17
+ if (clientInfo.identity.osVersion)
18
+ headers.set('X-Rool-OS-Version', clientInfo.identity.osVersion);
19
+ }
20
+ export function clientInfoHeaderRecord(clientInfo) {
21
+ const headers = new Headers();
22
+ addClientInfoHeaders(headers, clientInfo);
23
+ return Object.fromEntries(headers.entries());
24
+ }
25
+ //# sourceMappingURL=client-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-info.js","sourceRoot":"","sources":["../src/client-info.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAiBxD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAAC,QAA6B;IAC7D,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,UAAU,EAAE,GAAG,CAAC,OAAO;QACvB,QAAQ,EAAE,QAAQ,IAAI,EAAE;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,UAA0B;IAC/E,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAEzD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7F,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtG,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAA0B;IAC/D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC"}
package/dist/client.d.ts CHANGED
@@ -1,15 +1,14 @@
1
1
  import { EventEmitter } from './event-emitter.js';
2
2
  import { RoolSpace } from './space.js';
3
- import type { RoolClientConfig, RoolClientEvents, RoolSpaceInfo, CurrentUser, InvitePreview, InviteRedeemResult, AuthUser } from './types.js';
3
+ import type { RoolClientConfig, RoolClientEvents, RoolSpaceInfo, CurrentUser, InvitePreview, InviteRedeemResult, AuthUser, PasswordSignInResult } from './types.js';
4
4
  /**
5
5
  * Rool Client - Manages authentication, space lifecycle, and shared infrastructure.
6
6
  *
7
- * The client is lightweight - most operations happen on RoolSpace and RoolChannel instances.
7
+ * The client is lightweight - most operations happen on RoolSpace instances.
8
8
  *
9
9
  * Features:
10
10
  * - Authentication (login, logout, token management)
11
11
  * - Space lifecycle (list, create, delete, rename)
12
- * - Channel management (open, list, rename, delete)
13
12
  * - Client-level subscription for lifecycle events
14
13
  * - User storage (cross-device key-value storage)
15
14
  */
@@ -21,6 +20,8 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
21
20
  private router;
22
21
  private subscriptionManager;
23
22
  private logger;
23
+ private clientInfo;
24
+ private _serverInfo;
24
25
  private openSpaces;
25
26
  private _storageCache;
26
27
  private _currentUser;
@@ -75,6 +76,28 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
75
76
  * Returns true if the user is now signed in as a result.
76
77
  */
77
78
  verify(token: string): Promise<boolean>;
79
+ /**
80
+ * Complete a native sign-in (PKCE) from a deep-link callback URL. Call this
81
+ * from the app's platform deep-link handler (e.g. Capacitor's `appUrlOpen`)
82
+ * with the full callback URL. Exchanges the code for a live session.
83
+ *
84
+ * Returns true if the user is now signed in as a result.
85
+ */
86
+ handleAuthRedirect(url: string): Promise<boolean>;
87
+ /**
88
+ * Sign in with email + password. Resolves to `{ status: 'signed_in' }` once
89
+ * authenticated, or `{ status: 'verify_required' }` when the account's email
90
+ * isn't verified yet (a magic link has been emailed). Rejects with a
91
+ * human-readable Error on bad credentials or server failure.
92
+ */
93
+ signInWithPassword(email: string, password: string): Promise<PasswordSignInResult>;
94
+ /**
95
+ * Request a magic sign-in link by email. The server emails a link; the user
96
+ * completes sign-in by following it, which is finished via `verify()` /
97
+ * `handleAuthRedirect()` when it lands back in the app. Resolves once the
98
+ * email is accepted; rejects with a human-readable Error on a bad address.
99
+ */
100
+ requestMagicLink(email: string): Promise<void>;
78
101
  /**
79
102
  * Set or change the current user's password. Requires an authenticated session.
80
103
  * Password must be at least 8 characters and contain both letters and either
@@ -109,13 +132,18 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
109
132
  * Available after successful authentication.
110
133
  */
111
134
  get currentUser(): CurrentUser | null;
135
+ get serverInfo(): {
136
+ version: string;
137
+ minimumSdkVersion?: string | null;
138
+ compatibility: 'ok' | 'unsupported';
139
+ } | null;
112
140
  /**
113
141
  * List all spaces accessible to the user.
114
142
  */
115
143
  listSpaces(): Promise<RoolSpaceInfo[]>;
116
144
  /**
117
145
  * Open a space with a real-time subscription.
118
- * Returns a live RoolSpace handle with channel lifecycle events.
146
+ * Returns a live RoolSpace handle with conversation and file events.
119
147
  * Reuses an existing handle if the space is already open.
120
148
  *
121
149
  * Call space.close() when done to stop the subscription.
@@ -124,12 +152,12 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
124
152
  /**
125
153
  * Create a new space.
126
154
  * Returns a RoolSpace handle with a real-time subscription.
127
- * Call space.openChannel(channelId) to start working with objects.
155
+ * Use the returned RoolSpace to work with objects, conversations, and AI.
128
156
  */
129
157
  createSpace(name: string): Promise<RoolSpace>;
130
158
  /**
131
159
  * Delete a space.
132
- * Note: This does not affect any open Channel instances - they become stale.
160
+ * Note: This closes any cached open RoolSpace handle.
133
161
  */
134
162
  deleteSpace(spaceId: string): Promise<void>;
135
163
  /**
@@ -216,8 +244,6 @@ export declare class RoolClient extends EventEmitter<RoolClientEvents> {
216
244
  _graphql<T>(query: string, variables?: Record<string, unknown>): Promise<T>;
217
245
  /**
218
246
  * Handle a client-level event from the subscription.
219
- * Channel events from the client SSE are ignored — they're handled by
220
- * the space subscription via RoolSpace instead.
221
247
  * @internal
222
248
  */
223
249
  private handleClientEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}