@rool-dev/sdk 0.12.5 → 2.0.0-dev.03df95a

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 (108) hide show
  1. package/README.md +460 -783
  2. package/dist/agents.d.ts +138 -0
  3. package/dist/agents.d.ts.map +1 -0
  4. package/dist/agents.js +563 -0
  5. package/dist/agents.js.map +1 -0
  6. package/dist/auth-base.d.ts +43 -88
  7. package/dist/auth-base.d.ts.map +1 -1
  8. package/dist/auth-base.js +178 -302
  9. package/dist/auth-base.js.map +1 -1
  10. package/dist/auth-browser.d.ts +7 -25
  11. package/dist/auth-browser.d.ts.map +1 -1
  12. package/dist/auth-browser.js +45 -82
  13. package/dist/auth-browser.js.map +1 -1
  14. package/dist/auth-native.d.ts +9 -56
  15. package/dist/auth-native.d.ts.map +1 -1
  16. package/dist/auth-native.js +88 -177
  17. package/dist/auth-native.js.map +1 -1
  18. package/dist/auth-node.d.ts +32 -36
  19. package/dist/auth-node.d.ts.map +1 -1
  20. package/dist/auth-node.js +338 -265
  21. package/dist/auth-node.js.map +1 -1
  22. package/dist/auth-url.d.ts +6 -0
  23. package/dist/auth-url.d.ts.map +1 -0
  24. package/dist/auth-url.js +30 -0
  25. package/dist/auth-url.js.map +1 -0
  26. package/dist/client.d.ts +37 -290
  27. package/dist/client.d.ts.map +1 -1
  28. package/dist/client.js +331 -635
  29. package/dist/client.js.map +1 -1
  30. package/dist/events.d.ts +40 -0
  31. package/dist/events.d.ts.map +1 -0
  32. package/dist/events.js +175 -0
  33. package/dist/events.js.map +1 -0
  34. package/dist/files.d.ts +174 -0
  35. package/dist/files.d.ts.map +1 -0
  36. package/dist/files.js +846 -0
  37. package/dist/files.js.map +1 -0
  38. package/dist/index.d.ts +16 -19
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +7 -20
  41. package/dist/index.js.map +1 -1
  42. package/dist/machine.d.ts +51 -0
  43. package/dist/machine.d.ts.map +1 -0
  44. package/dist/machine.js +142 -0
  45. package/dist/machine.js.map +1 -0
  46. package/dist/problem.d.ts +11 -0
  47. package/dist/problem.d.ts.map +1 -0
  48. package/dist/problem.js +20 -0
  49. package/dist/problem.js.map +1 -0
  50. package/dist/structured.d.ts +84 -0
  51. package/dist/structured.d.ts.map +1 -0
  52. package/dist/structured.js +405 -0
  53. package/dist/structured.js.map +1 -0
  54. package/dist/types.d.ts +131 -520
  55. package/dist/types.d.ts.map +1 -1
  56. package/package.json +11 -16
  57. package/dist/auth.d.ts +0 -99
  58. package/dist/auth.d.ts.map +0 -1
  59. package/dist/auth.js +0 -217
  60. package/dist/auth.js.map +0 -1
  61. package/dist/client-info.d.ts +0 -18
  62. package/dist/client-info.d.ts.map +0 -1
  63. package/dist/client-info.js +0 -25
  64. package/dist/client-info.js.map +0 -1
  65. package/dist/event-emitter.d.ts +0 -45
  66. package/dist/event-emitter.d.ts.map +0 -1
  67. package/dist/event-emitter.js +0 -86
  68. package/dist/event-emitter.js.map +0 -1
  69. package/dist/graphql.d.ts +0 -90
  70. package/dist/graphql.d.ts.map +0 -1
  71. package/dist/graphql.js +0 -471
  72. package/dist/graphql.js.map +0 -1
  73. package/dist/logger.d.ts +0 -13
  74. package/dist/logger.d.ts.map +0 -1
  75. package/dist/logger.js +0 -17
  76. package/dist/logger.js.map +0 -1
  77. package/dist/path.d.ts +0 -6
  78. package/dist/path.d.ts.map +0 -1
  79. package/dist/path.js +0 -47
  80. package/dist/path.js.map +0 -1
  81. package/dist/reroute.d.ts +0 -22
  82. package/dist/reroute.d.ts.map +0 -1
  83. package/dist/reroute.js +0 -70
  84. package/dist/reroute.js.map +0 -1
  85. package/dist/rest.d.ts +0 -54
  86. package/dist/rest.d.ts.map +0 -1
  87. package/dist/rest.js +0 -171
  88. package/dist/rest.js.map +0 -1
  89. package/dist/router.d.ts +0 -20
  90. package/dist/router.d.ts.map +0 -1
  91. package/dist/router.js +0 -54
  92. package/dist/router.js.map +0 -1
  93. package/dist/space-session.d.ts +0 -30
  94. package/dist/space-session.d.ts.map +0 -1
  95. package/dist/space-session.js +0 -83
  96. package/dist/space-session.js.map +0 -1
  97. package/dist/space.d.ts +0 -161
  98. package/dist/space.d.ts.map +0 -1
  99. package/dist/space.js +0 -618
  100. package/dist/space.js.map +0 -1
  101. package/dist/subscription.d.ts +0 -36
  102. package/dist/subscription.d.ts.map +0 -1
  103. package/dist/subscription.js +0 -419
  104. package/dist/subscription.js.map +0 -1
  105. package/dist/webdav.d.ts +0 -171
  106. package/dist/webdav.d.ts.map +0 -1
  107. package/dist/webdav.js +0 -481
  108. package/dist/webdav.js.map +0 -1
@@ -1,101 +1,56 @@
1
- import type { AuthProvider, AuthTokens, AuthUser } from './types.js';
2
- import { type Logger } from './logger.js';
3
- export interface BaseTokenAuthConfig {
4
- /** Auth URL (e.g. https://rool.dev/auth). Injected by RoolClient if omitted. */
5
- authUrl?: string;
6
- /** Injected by RoolClient if omitted. */
7
- logger?: Logger;
8
- /** Injected by RoolClient if omitted, so auth-state reaches client events. */
9
- onAuthStateChanged?: (authenticated: boolean) => void;
1
+ import { type AuthEndpointConfig } from "./auth-url.js";
2
+ import type { RoolAuth, RoolRequestTokens } from "./types.js";
3
+ export interface TokenAuthConfig extends AuthEndpointConfig {
4
+ fetch?: typeof globalThis.fetch;
10
5
  }
11
- export declare abstract class BaseTokenAuthProvider implements AuthProvider {
12
- protected logger: Logger;
13
- private _authUrl;
14
- private _onAuthStateChanged;
6
+ export interface AuthTokenResponse {
7
+ id_token?: unknown;
8
+ refresh_token?: unknown;
9
+ rool_token?: unknown;
10
+ expires_in?: unknown;
11
+ }
12
+ export type EmailChangeErrorCode = "missing_token" | "invalid_token" | "missing_email" | "invalid_email" | "account_not_found" | "account_suspended" | "same_email" | "email_in_use" | "send_failed" | "internal_error";
13
+ export declare class EmailChangeError extends Error {
14
+ readonly code: EmailChangeErrorCode;
15
+ constructor(code: EmailChangeErrorCode, message: string);
16
+ }
17
+ export declare abstract class TokenAuth implements RoolAuth {
18
+ private readonly authUrl;
19
+ private readonly fetchRequest;
20
+ private readonly listeners;
15
21
  private refreshPromise;
16
- private refreshTimeoutId;
17
- private boundVisibilityHandler;
18
- constructor(config?: BaseTokenAuthConfig);
19
- setAuthUrl(url: string): void;
20
- setLogger(logger: Logger): void;
21
- setAuthStateChangedHandler(handler: (authenticated: boolean) => void): void;
22
- abstract initialize(): boolean;
23
- abstract login(appName: string, params?: Record<string, string>): Promise<void> | void;
24
- abstract signup(appName: string, params?: Record<string, string>): Promise<void> | void;
25
- /**
26
- * Check if user is currently authenticated.
27
- *
28
- * This reports identity (do we hold credentials), NOT server reachability.
29
- * It deliberately does not perform a network refresh: a backend outage must
30
- * not read as "logged out". A genuinely invalid/expired refresh token
31
- * surfaces later as a 401 on first real use, which clears tokens and fires
32
- * onAuthStateChanged(false) — the only path that ends the session.
33
- */
22
+ constructor(config?: TokenAuthConfig);
23
+ abstract initialize(): Promise<boolean>;
24
+ abstract login(appName: string, params?: Record<string, string>): Promise<void>;
25
+ abstract signup(appName: string, params?: Record<string, string>): Promise<void>;
34
26
  isAuthenticated(): Promise<boolean>;
35
- /**
36
- * Get current access token and rool token, refreshing if expired.
37
- * Returns undefined if not authenticated.
38
- */
39
- getTokens(): Promise<{
40
- accessToken: string;
41
- roolToken: string;
42
- } | undefined>;
43
- /**
44
- * Get auth identity decoded from JWT token.
45
- */
46
- getAuthUser(): AuthUser;
47
- /**
48
- * Complete an email verification flow. Exchanges a verify JWT (from the
49
- * verification email link) for a fresh token set and signs the user in.
50
- */
27
+ readonly getTokens: () => Promise<RoolRequestTokens | undefined>;
28
+ readonly logout: () => Promise<void>;
29
+ onAuthStateChanged(listener: (authenticated: boolean) => void): () => void;
51
30
  verify(token: string): Promise<boolean>;
52
- replaceTokens(tokens: AuthTokens): void;
53
- /**
54
- * Logout - clear all tokens and state.
55
- */
56
- logout(): void;
57
- /**
58
- * Destroy auth manager - clear refresh timers and listeners.
59
- */
60
- destroy(): void;
61
- /** Auth URL without trailing slash */
31
+ setPassword(password: string): Promise<void>;
32
+ requestEmailChange(newEmail: string): Promise<void>;
62
33
  protected get authBaseUrl(): string;
63
- protected notifyAuthState(authenticated: boolean): void;
64
- /** Persist a fresh token set and (re)arm the background refresh timer. */
65
- protected acceptTokens(accessToken: string, refreshToken: string | null, roolToken: string | null, expiresAt: number): void;
66
- /** Arm auto-refresh + visibility re-scheduling. Call from initialize(). */
67
- protected initBase(): void;
68
- /**
69
- * Overridable hook: clear subclass-owned transient state on logout/cancel
70
- * (e.g. an in-flight OAuth `state` or PKCE verifier). No-op by default.
71
- */
34
+ protected fetchAuth(path: string, init: RequestInit): Promise<Response>;
35
+ protected acceptTokenResponse(data: AuthTokenResponse, fallback?: {
36
+ refreshToken?: string | null;
37
+ roolToken?: string | null;
38
+ }): boolean;
39
+ protected emitAuthState(authenticated: boolean): void;
72
40
  protected clearTransientState(): void;
73
- protected get storagePrefix(): string;
74
- /** Build a storage key scoped to this auth endpoint. */
75
41
  protected keyFor(name: string): string;
76
- protected get storageKeys(): {
77
- readonly access: `${string}access_token`;
78
- readonly refresh: `${string}refresh_token`;
79
- readonly rool: `${string}rool_token`;
80
- readonly expiresAt: `${string}token_expires_at`;
81
- };
82
42
  protected readString(key: string): string | null;
83
43
  protected writeString(key: string, value: string): void;
84
44
  protected removeString(key: string): void;
85
- protected scheduleTokenRefresh(): void;
86
- protected writeTokens(accessToken: string | null, refreshToken: string | null, expiresAt: number | null): void;
87
- protected writeRoolToken(token: string | null): void;
88
- protected clearTokens(): void;
89
- protected readAccessToken(): string | null;
90
- protected readRoolToken(): string;
91
- protected readExpiresAt(): number | null;
92
- /**
93
- * Get a short hash of the auth URL for scoping storage by endpoint.
94
- */
45
+ private get storageKeys();
95
46
  private get endpointHash();
96
- private tryRefreshToken;
97
- private listenForVisibility;
98
- private cancelScheduledRefresh;
99
- private decodeAuthUser;
47
+ private readAccessToken;
48
+ private readRoolToken;
49
+ private readExpiresAt;
50
+ private writeTokens;
51
+ private writeOrRemove;
52
+ private clearTokens;
53
+ private refresh;
54
+ private performRefresh;
100
55
  }
101
56
  //# sourceMappingURL=auth-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-base.d.ts","sourceRoot":"","sources":["../src/auth-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-base.d.ts","sourceRoot":"","sources":["../src/auth-base.ts"],"names":[],"mappings":"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"}