@archastro/sdk 0.6.0 → 0.7.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.
Files changed (47) hide show
  1. package/README.md +25 -0
  2. package/dist/app-session.d.ts +66 -0
  3. package/dist/app-session.d.ts.map +1 -0
  4. package/dist/app-session.js +158 -0
  5. package/dist/app-session.js.map +1 -0
  6. package/dist/client.d.ts +4 -0
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +6 -1
  9. package/dist/client.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.native.d.ts +14 -0
  15. package/dist/index.native.d.ts.map +1 -0
  16. package/dist/index.native.js +14 -0
  17. package/dist/index.native.js.map +1 -0
  18. package/dist/passwordless.d.ts +49 -0
  19. package/dist/passwordless.d.ts.map +1 -0
  20. package/dist/passwordless.js +70 -0
  21. package/dist/passwordless.js.map +1 -0
  22. package/dist/phx_channel/socket.d.ts.map +1 -1
  23. package/dist/phx_channel/socket.js +10 -22
  24. package/dist/phx_channel/socket.js.map +1 -1
  25. package/dist/phx_channel/websocket.d.ts +19 -0
  26. package/dist/phx_channel/websocket.d.ts.map +1 -0
  27. package/dist/phx_channel/websocket.js +28 -0
  28. package/dist/phx_channel/websocket.js.map +1 -0
  29. package/dist/phx_channel/websocket.native.d.ts +17 -0
  30. package/dist/phx_channel/websocket.native.d.ts.map +1 -0
  31. package/dist/phx_channel/websocket.native.js +16 -0
  32. package/dist/phx_channel/websocket.native.js.map +1 -0
  33. package/dist/platform-socket.d.ts +20 -0
  34. package/dist/platform-socket.d.ts.map +1 -0
  35. package/dist/platform-socket.js +25 -0
  36. package/dist/platform-socket.js.map +1 -0
  37. package/dist/runtime/http-client.d.ts.map +1 -1
  38. package/dist/runtime/http-client.js +7 -4
  39. package/dist/runtime/http-client.js.map +1 -1
  40. package/dist/runtime/url.d.ts +15 -0
  41. package/dist/runtime/url.d.ts.map +1 -0
  42. package/dist/runtime/url.js +34 -0
  43. package/dist/runtime/url.js.map +1 -0
  44. package/docs/authentication.md +91 -0
  45. package/docs/react-native.md +118 -0
  46. package/docs/scenarios.md +57 -0
  47. package/package.json +27 -5
package/README.md CHANGED
@@ -61,10 +61,35 @@ const teams = await client.teams.list();
61
61
  console.log(me.id, me.email, teams);
62
62
  ```
63
63
 
64
+ ## React Native / Expo
65
+
66
+ Native mobile works out of the box — no Node `ws` / `events` polyfills.
67
+ Use **`PlatformClient.forApp`** so session storage, passwordless OTP, and
68
+ auto-refresh stay behind one client (not a parallel session helper):
69
+
70
+ ```ts
71
+ import { PlatformClient, ApiChatChannel, type SessionStorage } from "@archastro/sdk";
72
+
73
+ const client = PlatformClient.forApp({
74
+ publishableKey: process.env.EXPO_PUBLIC_PUBLISHABLE_KEY!,
75
+ baseUrl: process.env.EXPO_PUBLIC_API_BASE_URL!,
76
+ storage, // your SessionStorage (SecureStore / AsyncStorage)
77
+ });
78
+
79
+ await client.restore();
80
+ // client.passwordless… → client.signIn(tokens, user)
81
+ await client.agents.list();
82
+ const socket = client.createSocket();
83
+ ```
84
+
85
+ See [React Native guide](./docs/react-native.md).
86
+
64
87
  ## Integration Guides
65
88
 
66
89
  - [Authentication](./docs/authentication.md): choose the right token strategy for
67
90
  browser sessions, server-side app integrations, and org workers.
91
+ - [React Native / Expo](./docs/react-native.md): session storage, passwordless
92
+ auth, and chat channels without Node polyfills.
68
93
  - [Integration scenarios](./docs/scenarios.md): read the current user, list
69
94
  teams, and create an agent with snippets that were smoke-tested against the
70
95
  local platform dev harness.
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Durable app-session mode for PlatformClient (hand-maintained).
3
+ *
4
+ * **Not a public package export.** The generator wires
5
+ * `PlatformClient.forApp` → `forApp()` from this module. Apps only see:
6
+ * PlatformClient.forApp / AppPlatformClient / SessionStorage / AppSession
7
+ * PasswordlessAuth, free forApp, and createPlatformSocket stay internal.
8
+ */
9
+ import { type AuthTokens } from "./auth.js";
10
+ import { PlatformClient } from "./client.js";
11
+ import { PasswordlessAuth } from "./passwordless.js";
12
+ import type { Socket, SocketConfig } from "./phx_channel/socket.js";
13
+ export interface AppSession {
14
+ accessToken: string;
15
+ refreshToken?: string;
16
+ accessTokenExpiresAt?: number | null;
17
+ user?: {
18
+ id: string;
19
+ email?: string | null;
20
+ name?: string | null;
21
+ alias?: string | null;
22
+ org?: string | null;
23
+ org_name?: string | null;
24
+ org_role?: string | null;
25
+ } | null;
26
+ }
27
+ export interface SessionStorage {
28
+ load(): Promise<AppSession | null>;
29
+ save(session: AppSession): Promise<void>;
30
+ clear(): Promise<void>;
31
+ }
32
+ export interface ForAppOptions {
33
+ /** Publishable key (pk_...) sent as x-archastro-api-key */
34
+ publishableKey: string;
35
+ /** Platform origin; defaults to production */
36
+ baseUrl?: string;
37
+ /** Durable token store (SecureStore, AsyncStorage, memory, …) */
38
+ storage: SessionStorage;
39
+ }
40
+ /**
41
+ * PlatformClient with app-session capabilities.
42
+ * Still a real PlatformClient — all generated resources work.
43
+ */
44
+ export type AppPlatformClient = PlatformClient & {
45
+ readonly passwordless: PasswordlessAuth;
46
+ /** Hydrate from storage and wire auto-refresh. Returns session if any. */
47
+ restore(): Promise<AppSession | null>;
48
+ /** Apply tokens from a login/verify response and persist. */
49
+ signIn(tokens: AuthTokens, user?: AppSession["user"]): Promise<AppSession>;
50
+ /** Clear memory + storage + client tokens. */
51
+ signOut(): Promise<void>;
52
+ getSession(): AppSession | null;
53
+ /**
54
+ * Phoenix ApiSocket using the current access token + publishable key.
55
+ * Throws if not signed in.
56
+ */
57
+ createSocket(socketConfig?: Omit<SocketConfig, "params">): Socket;
58
+ };
59
+ /**
60
+ * Client-side app factory: publishable key + durable session storage.
61
+ *
62
+ * Wires passwordless OTP, restore/signIn/signOut, 401 auto-refresh with
63
+ * rotated-token persistence, and createSocket().
64
+ */
65
+ export declare function forApp(options: ForAppOptions): AppPlatformClient;
66
+ //# sourceMappingURL=app-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-session.d.ts","sourceRoot":"","sources":["../src/app-session.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,0EAA0E;IAC1E,OAAO,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACtC,6DAA6D;IAC7D,MAAM,CACJ,MAAM,EAAE,UAAU,EAClB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GACxB,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,8CAA8C;IAC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,UAAU,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,YAAY,CACV,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAC1C,MAAM,CAAC;CACX,CAAC;AA2CF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CA6HhE"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Durable app-session mode for PlatformClient (hand-maintained).
3
+ *
4
+ * **Not a public package export.** The generator wires
5
+ * `PlatformClient.forApp` → `forApp()` from this module. Apps only see:
6
+ * PlatformClient.forApp / AppPlatformClient / SessionStorage / AppSession
7
+ * PasswordlessAuth, free forApp, and createPlatformSocket stay internal.
8
+ */
9
+ import { AuthClient } from "./auth.js";
10
+ import { PlatformClient } from "./client.js";
11
+ import { HttpClient } from "./runtime/http-client.js";
12
+ import { PasswordlessAuth } from "./passwordless.js";
13
+ import { createPlatformSocket, } from "./platform-socket.js";
14
+ function wireRefresh(client, publishableKey, baseUrl, onRotated) {
15
+ const refreshHttp = new HttpClient({
16
+ baseUrl,
17
+ defaultHeaders: { "x-archastro-api-key": publishableKey },
18
+ refreshOnly: true,
19
+ });
20
+ const refreshAuth = new AuthClient(refreshHttp);
21
+ client.http.setRefreshHandler(async () => {
22
+ const rt = client.refreshToken;
23
+ if (!rt)
24
+ throw new Error("No refresh token available");
25
+ const refreshed = await refreshAuth.refresh(rt);
26
+ if (!refreshed.accessToken) {
27
+ throw new Error("Refresh did not return an access token");
28
+ }
29
+ // Install the new access token first so a concurrent 401-retry that races
30
+ // past onRotated still sends the fresh bearer.
31
+ client.setAccessToken(refreshed.accessToken);
32
+ if (refreshed.refreshToken)
33
+ client.setRefreshToken(refreshed.refreshToken);
34
+ // onRotated must not throw for persistence blips — callers treat any throw
35
+ // as "refresh failed" and rethrow the original 401.
36
+ await onRotated(refreshed);
37
+ return refreshed.accessToken;
38
+ });
39
+ }
40
+ function applyAccessAndRefresh(client, tokens) {
41
+ if (!tokens.accessToken) {
42
+ throw new Error("Missing access token");
43
+ }
44
+ client.setAccessToken(tokens.accessToken);
45
+ if (tokens.refreshToken) {
46
+ client.setRefreshToken(tokens.refreshToken);
47
+ }
48
+ }
49
+ /**
50
+ * Client-side app factory: publishable key + durable session storage.
51
+ *
52
+ * Wires passwordless OTP, restore/signIn/signOut, 401 auto-refresh with
53
+ * rotated-token persistence, and createSocket().
54
+ */
55
+ export function forApp(options) {
56
+ const { publishableKey, storage } = options;
57
+ const baseUrl = (options.baseUrl ?? "https://platform.archastro.ai").replace(/\/+$/, "");
58
+ let current = null;
59
+ const client = new PlatformClient({
60
+ baseUrl,
61
+ defaultHeaders: { "x-archastro-api-key": publishableKey },
62
+ getAccessToken: () => current?.accessToken,
63
+ });
64
+ const passwordless = new PasswordlessAuth(client.http);
65
+ const persistRotation = async (tokens) => {
66
+ if (!tokens.accessToken)
67
+ return;
68
+ // Rewrite in-memory session first so getAccessToken() returns the rotated
69
+ // bearer for the HttpClient 401-retry, even if storage.save fails.
70
+ const nextExpiresAt = typeof tokens.tokenExpiry === "number"
71
+ ? Date.now() + tokens.tokenExpiry * 1000
72
+ : (current?.accessTokenExpiresAt ?? null);
73
+ current = {
74
+ accessToken: tokens.accessToken,
75
+ refreshToken: tokens.refreshToken ?? current?.refreshToken,
76
+ accessTokenExpiresAt: nextExpiresAt,
77
+ user: current?.user ?? null,
78
+ };
79
+ try {
80
+ await storage.save(current);
81
+ }
82
+ catch (err) {
83
+ console.warn("[@archastro/sdk] failed to persist rotated session tokens", err);
84
+ }
85
+ };
86
+ const enableRefresh = (tokens) => {
87
+ applyAccessAndRefresh(client, tokens);
88
+ wireRefresh(client, publishableKey, baseUrl, persistRotation);
89
+ };
90
+ const app = client;
91
+ Object.defineProperty(app, "passwordless", {
92
+ value: passwordless,
93
+ enumerable: true,
94
+ writable: false,
95
+ });
96
+ app.getSession = () => current;
97
+ app.restore = async () => {
98
+ const stored = await storage.load();
99
+ if (!stored?.accessToken) {
100
+ current = null;
101
+ return null;
102
+ }
103
+ // Without a refresh token the access token cannot be renewed — drop the
104
+ // half-session so callers re-auth instead of looping 401s with no refresh.
105
+ if (!stored.refreshToken) {
106
+ current = null;
107
+ await storage.clear().catch(() => undefined);
108
+ return null;
109
+ }
110
+ current = stored;
111
+ enableRefresh({
112
+ accessToken: stored.accessToken,
113
+ refreshToken: stored.refreshToken,
114
+ tokenExpiry: undefined,
115
+ });
116
+ return stored;
117
+ };
118
+ app.signIn = async (tokens, user) => {
119
+ if (!tokens.accessToken)
120
+ throw new Error("Missing access token");
121
+ if (!tokens.refreshToken) {
122
+ throw new Error("Missing refresh token — session cannot auto-renew without one");
123
+ }
124
+ const session = {
125
+ accessToken: tokens.accessToken,
126
+ refreshToken: tokens.refreshToken,
127
+ accessTokenExpiresAt: typeof tokens.tokenExpiry === "number"
128
+ ? Date.now() + tokens.tokenExpiry * 1000
129
+ : null,
130
+ user: user ?? current?.user ?? null,
131
+ };
132
+ current = session;
133
+ enableRefresh(tokens);
134
+ await storage.save(session);
135
+ return session;
136
+ };
137
+ app.signOut = async () => {
138
+ current = null;
139
+ client.setAccessToken("");
140
+ client.setRefreshToken("");
141
+ await storage.clear();
142
+ };
143
+ app.createSocket = (socketConfig) => {
144
+ const accessToken = current?.accessToken;
145
+ if (!accessToken) {
146
+ throw new Error("Not signed in — call restore() or signIn() first");
147
+ }
148
+ const opts = {
149
+ apiBaseUrl: baseUrl,
150
+ accessToken,
151
+ publishableKey,
152
+ socketConfig,
153
+ };
154
+ return createPlatformSocket(opts);
155
+ };
156
+ return app;
157
+ }
158
+ //# sourceMappingURL=app-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-session.js","sourceRoot":"","sources":["../src/app-session.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { AuthClient } from "./auth.js";
2
2
  import { HttpClient } from "./runtime/http-client.js";
3
3
  import { V1 } from "./v1.js";
4
+ import type { AppPlatformClient, ForAppOptions } from "./app-session.js";
4
5
  import type { ActivityFeedResource } from "./v1/resources/activity_feed.js";
5
6
  import type { AgentComputerResource } from "./v1/resources/agent_computers.js";
6
7
  import type { AgentEnvVarResource } from "./v1/resources/agent_env_vars.js";
@@ -96,5 +97,8 @@ export declare class PlatformClient {
96
97
  static withToken(apiKey: string, accessToken: string, baseUrl?: string): PlatformClient;
97
98
  /** Create a client by logging in with email/password */
98
99
  static withCredentials(apiKey: string, email: string, password: string, baseUrl?: string): Promise<PlatformClient>;
100
+ /** Client-side app: publishable key + durable session storage. Wires passwordless OTP, restore/signIn/signOut, 401 auto-refresh, and createSocket(). */
101
+ static forApp(options: ForAppOptions): AppPlatformClient;
99
102
  }
103
+ export type { AppPlatformClient, ForAppOptions, SessionStorage, AppSession } from "./app-session.js";
100
104
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AACjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAC7C,QAAQ,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;IACzD,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;IACxD,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;IACxD,QAAQ,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;IACpD,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;IAClE,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IAC7D,QAAQ,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;gBAEZ,MAAM,GAAE,oBAAyB;IAoD7C,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,eAAe,CAAC,KAAK,EAAE,MAAM;IAM7B,+DAA+D;IAC/D,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc;IAOnE,4EAA4E;IAC5E,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc;IAQvF,wDAAwD;WAC3C,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CA0BzH"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) 2026 ArchAstro Inc. All Rights Reserved.
2
2
  // This file is auto-generated by @archastro/sdk-generator. Do not edit.
3
- // Content hash: d7c9e66d5b12
3
+ // Content hash: 1dd3875f2a43
4
+ import { forApp } from "./app-session.js";
4
5
  import { AuthClient } from "./auth.js";
5
6
  import { HttpClient } from "./runtime/http-client.js";
6
7
  import { V1 } from "./v1.js";
@@ -151,5 +152,9 @@ export class PlatformClient {
151
152
  });
152
153
  return client;
153
154
  }
155
+ /** Client-side app: publishable key + durable session storage. Wires passwordless OTP, restore/signIn/signOut, 401 auto-refresh, and createSocket(). */
156
+ static forApp(options) {
157
+ return forApp(options);
158
+ }
154
159
  }
155
160
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,wEAAwE;AACxE,6BAA6B;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAgD7B,MAAM,OAAO,cAAc;IAChB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,EAAE,CAAK;IACP,aAAa,CAAuB;IACpC,eAAe,CAAwB;IACvC,cAAc,CAAsB;IACpC,oBAAoB,CAA4B;IAChD,mBAAmB,CAA4B;IAC/C,kBAAkB,CAA0B;IAC5C,cAAc,CAAuB;IACrC,cAAc,CAAuB;IACrC,YAAY,CAAqB;IACjC,WAAW,CAAoB;IAC/B,MAAM,CAAgB;IACtB,SAAS,CAAmB;IAC5B,eAAe,CAAwB;IACvC,WAAW,CAAqB;IAChC,WAAW,CAAoB;IAC/B,MAAM,CAAiB;IACvB,cAAc,CAAuB;IACrC,KAAK,CAAe;IACpB,oBAAoB,CAA6B;IACjD,OAAO,CAAiB;IACxB,mBAAmB,CAA4B;IAC/C,iBAAiB,CAA0B;IAC3C,EAAE,CAAa;IACf,wBAAwB,CAAiC;IACzD,aAAa,CAAuB;IACpC,IAAI,CAAc;IAClB,sBAAsB,CAA8B;IACpD,mBAAmB,CAA2B;IAC9C,aAAa,CAAsB;IACnC,SAAS,CAAmB;IAC5B,gBAAgB,CAAyB;IACzC,KAAK,CAAe;IACpB,eAAe,CAAwB;IACvC,OAAO,CAAiB;IACxB,KAAK,CAAe;IACpB,EAAE,CAAa;IAExB,YAAY,SAA+B,EAAE;QAC3C,MAAM,UAAU,GAAqB;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,+BAA+B;YAC1D,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC;QAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;IAGO,aAAa,CAAU;IAE/B,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,6DAA6D;IAE7D,+DAA+D;IAC/D,MAAM,CAAC,aAAa,CAAC,GAAW,EAAE,OAAgB;QAChD,OAAO,IAAI,cAAc,CAAC;YACxB,OAAO;YACP,cAAc,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,MAAM,CAAC,SAAS,CAAC,MAAc,EAAE,WAAmB,EAAE,OAAgB;QACpE,OAAO,IAAI,cAAc,CAAC;YACxB,OAAO;YACP,WAAW;YACX,cAAc,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE;SAClD,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAgB;QAC5F,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,OAAO;YACP,cAAc,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE;SAClD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACjF,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,YAAY;YAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC;YACjC,OAAO,EAAE,OAAO,IAAI,+BAA+B;YACnD,cAAc,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE;YACjD,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACvC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;YAC/B,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACtF,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,SAAS,CAAC,YAAY;gBAAE,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC3E,OAAO,SAAS,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from "./types/index.js";
2
2
  export { V1 } from "./v1.js";
3
3
  export * from "./v1/resources/index.js";
4
4
  export { PlatformClient, type PlatformClientConfig } from "./client.js";
5
+ export type { AppPlatformClient, ForAppOptions, SessionStorage, AppSession } from "./client.js";
5
6
  export { AuthClient, type AuthTokens } from "./auth.js";
6
7
  export { ApiActivityFeedChannel } from "./channels/api_activity_feed_channel.js";
7
8
  export { ApiChatChannel } from "./channels/api_chat_channel.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) 2026 ArchAstro Inc. All Rights Reserved.
2
2
  // This file is auto-generated by @archastro/sdk-generator. Do not edit.
3
- // Content hash: f77578a2151b
3
+ // Content hash: c6ce6c53517d
4
4
  export * from "./types/index.js";
5
5
  export { V1 } from "./v1.js";
6
6
  export * from "./v1/resources/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,wEAAwE;AACxE,6BAA6B;AAE7B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,cAAc,EAA6B,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,wEAAwE;AACxE,6BAA6B;AAE7B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,cAAc,EAA6B,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * React Native entry for `@archastro/sdk`.
3
+ *
4
+ * Metro resolves package.json `"react-native"` / exports.`react-native` here.
5
+ * Same public surface as the Node/browser entry — sockets use global WebSocket
6
+ * via `phx_channel/websocket.native.js` (never pulls Node `ws`).
7
+ *
8
+ * App-side you still provide:
9
+ * - fetch (global in RN)
10
+ * - SessionStorage (e.g. expo-secure-store)
11
+ * - publishable key + baseUrl
12
+ */
13
+ export * from "./index.js";
14
+ //# sourceMappingURL=index.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../src/index.native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,cAAc,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * React Native entry for `@archastro/sdk`.
3
+ *
4
+ * Metro resolves package.json `"react-native"` / exports.`react-native` here.
5
+ * Same public surface as the Node/browser entry — sockets use global WebSocket
6
+ * via `phx_channel/websocket.native.js` (never pulls Node `ws`).
7
+ *
8
+ * App-side you still provide:
9
+ * - fetch (global in RN)
10
+ * - SessionStorage (e.g. expo-secure-store)
11
+ * - publishable key + baseUrl
12
+ */
13
+ export * from "./index.js";
14
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.js","sourceRoot":"","sources":["../src/index.native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,cAAc,YAAY,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Passwordless email-code auth (hand-maintained).
3
+ *
4
+ * Complements generated AuthClient magic-link methods with the OTP code flow
5
+ * used by native mobile clients (see helpers RN + platform
6
+ * `/auth/register/code`, `/auth/login/code`, `/auth/code/verify`).
7
+ */
8
+ import type { HttpClient } from "./runtime/http-client.js";
9
+ import type { AuthTokens } from "./auth.js";
10
+ export interface PasswordlessRegisterInput {
11
+ email: string;
12
+ full_name?: string;
13
+ alias?: string;
14
+ timezone?: string;
15
+ }
16
+ export interface PasswordlessLoginCodeInput {
17
+ email: string;
18
+ }
19
+ export interface PasswordlessVerifyCodeInput {
20
+ email: string;
21
+ code: string;
22
+ timezone?: string;
23
+ }
24
+ export declare function extractUserFromAuthResponse(data: Record<string, unknown>): Record<string, unknown> | null;
25
+ /**
26
+ * Hand-maintained passwordless helpers bound to an HttpClient
27
+ * (typically `client.http` with a publishable key header set).
28
+ */
29
+ export declare class PasswordlessAuth {
30
+ private http;
31
+ constructor(http: HttpClient);
32
+ /**
33
+ * Start passwordless registration (sends email code).
34
+ * Existing accounts may return 409/422 — callers should fall back to
35
+ * {@link requestLoginCode}.
36
+ */
37
+ register(input: PasswordlessRegisterInput): Promise<void>;
38
+ /** Request a one-time login code for an existing user. */
39
+ requestLoginCode(input: PasswordlessLoginCodeInput): Promise<void>;
40
+ /**
41
+ * Verify email + code and return session tokens (+ raw user when present).
42
+ */
43
+ verifyCode(input: PasswordlessVerifyCodeInput): Promise<{
44
+ tokens: AuthTokens;
45
+ user: Record<string, unknown> | null;
46
+ raw: Record<string, unknown>;
47
+ }>;
48
+ }
49
+ //# sourceMappingURL=passwordless.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passwordless.d.ts","sourceRoot":"","sources":["../src/passwordless.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMhC;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC;;;;OAIG;IACG,QAAQ,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D,0DAA0D;IACpD,gBAAgB,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC;QAC5D,MAAM,EAAE,UAAU,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9B,CAAC;CAiBH"}
@@ -0,0 +1,70 @@
1
+ function mapTokens(data) {
2
+ return {
3
+ tokenExpiry: data.expires_in,
4
+ refreshToken: data.refresh_token,
5
+ accessToken: data.token ??
6
+ data.access_token,
7
+ };
8
+ }
9
+ export function extractUserFromAuthResponse(data) {
10
+ const user = data.user;
11
+ if (user && typeof user === "object") {
12
+ return user;
13
+ }
14
+ return null;
15
+ }
16
+ /**
17
+ * Hand-maintained passwordless helpers bound to an HttpClient
18
+ * (typically `client.http` with a publishable key header set).
19
+ */
20
+ export class PasswordlessAuth {
21
+ http;
22
+ constructor(http) {
23
+ this.http = http;
24
+ }
25
+ /**
26
+ * Start passwordless registration (sends email code).
27
+ * Existing accounts may return 409/422 — callers should fall back to
28
+ * {@link requestLoginCode}.
29
+ */
30
+ async register(input) {
31
+ const body = {
32
+ email: input.email,
33
+ };
34
+ if (input.full_name !== undefined)
35
+ body.full_name = input.full_name;
36
+ if (input.alias !== undefined)
37
+ body.alias = input.alias;
38
+ if (input.timezone !== undefined)
39
+ body.timezone = input.timezone;
40
+ await this.http.request("/api/v1/auth/register/code", {
41
+ method: "POST",
42
+ body,
43
+ });
44
+ }
45
+ /** Request a one-time login code for an existing user. */
46
+ async requestLoginCode(input) {
47
+ await this.http.request("/api/v1/auth/login/code", {
48
+ method: "POST",
49
+ body: { email: input.email },
50
+ });
51
+ }
52
+ /**
53
+ * Verify email + code and return session tokens (+ raw user when present).
54
+ */
55
+ async verifyCode(input) {
56
+ const body = {
57
+ email: input.email,
58
+ code: input.code,
59
+ };
60
+ if (input.timezone !== undefined)
61
+ body.timezone = input.timezone;
62
+ const data = await this.http.request("/api/v1/auth/code/verify", { method: "POST", body });
63
+ return {
64
+ tokens: mapTokens(data),
65
+ user: extractUserFromAuthResponse(data),
66
+ raw: data,
67
+ };
68
+ }
69
+ }
70
+ //# sourceMappingURL=passwordless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passwordless.js","sourceRoot":"","sources":["../src/passwordless.ts"],"names":[],"mappings":"AA2BA,SAAS,SAAS,CAAC,IAA6B;IAC9C,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,UAAgC;QAClD,YAAY,EAAE,IAAI,CAAC,aAAmC;QACtD,WAAW,EACR,IAAI,CAAC,KAA4B;YACjC,IAAI,CAAC,YAAmC;KAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAA6B;IAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,IAA+B,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExC;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAgC;QAC7C,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;QACF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACpE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACxD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEjE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,gBAAgB,CAAC,KAAiC;QACtD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAkC;QAKjD,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;QACF,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAClC,0BAA0B,EAC1B,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CACzB,CAAC;QACF,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,2BAA2B,CAAC,IAAI,CAAC;YACvC,GAAG,EAAE,IAAI;SACV,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/phx_channel/socket.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAOvC,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAUtC,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,mBAAmB,CAAS;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,aAAa,CAAU;IAE/B,OAAO,CAAC,EAAE,CAA8B;IACxC,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,cAAc,CAAwC;gBAElD,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,YAAiB;IAUlD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,IAAI,MAAM;IAKjB,OAAO,CAAC,QAAQ;IAWV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAMhB,SAAS;IA0FjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAUnB,iBAAiB;IAa/B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO;IAQrE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC,IAAI,CACF,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,IAAI;IAUP;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IAO3D,OAAO,CAAC,IAAI;CAKb;AAcD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/phx_channel/socket.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAYvC,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtC,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,mBAAmB,CAAS;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,aAAa,CAAU;IAE/B,OAAO,CAAC,EAAE,CAA8B;IACxC,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,cAAc,CAAwC;gBAElD,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,YAAiB;IAUlD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,IAAI,MAAM;IAKjB,OAAO,CAAC,QAAQ;IAUV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAMhB,SAAS;IAqFjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAUnB,iBAAiB;IAa/B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO;IAQrE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC,IAAI,CACF,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,IAAI;IAUP;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IAO3D,OAAO,CAAC,IAAI;CAKb;AAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -5,6 +5,8 @@
5
5
  * Protocol version: 2.0.0
6
6
  */
7
7
  import { Channel } from "./channel.js";
8
+ import { appendQueryParams } from "../runtime/url.js";
9
+ import { createWebSocket, } from "./websocket.js";
8
10
  /** Default reconnect backoff schedule (ms), matching the Phoenix JS client. */
9
11
  const DEFAULT_BACKOFF_MS = [10, 50, 100, 150, 200, 250, 500, 1000, 2000];
10
12
  const DEFAULT_HEARTBEAT_INTERVAL_MS = 30_000;
@@ -42,12 +44,11 @@ export class Socket {
42
44
  return String(this.ref);
43
45
  }
44
46
  buildUrl() {
45
- const url = new URL(this.baseUrl);
46
- url.searchParams.set("vsn", "2.0.0");
47
- for (const [key, value] of Object.entries(this.params)) {
48
- url.searchParams.set(key, value);
49
- }
50
- return url.toString();
47
+ // String-based query append — safe for ws:// on Hermes / React Native.
48
+ return appendQueryParams(this.baseUrl, {
49
+ vsn: "2.0.0",
50
+ ...this.params,
51
+ });
51
52
  }
52
53
  // ─── Connection lifecycle ─────────────────────────────────
53
54
  async connect() {
@@ -57,15 +58,10 @@ export class Socket {
57
58
  }
58
59
  async doConnect() {
59
60
  const url = this.buildUrl();
60
- // Pre-resolve the `ws` constructor in Node before entering the Promise
61
- // executor. Socket instantiation must be synchronous inside the executor
62
- // so open/error/close handlers are attached before any events can fire.
63
- const useGlobal = typeof globalThis.WebSocket !== "undefined";
64
- const WSCtor = useGlobal ? null : await loadWsCtor();
61
+ // Resolve transport before the Promise executor so open/error handlers
62
+ // attach synchronously after construction (required for Node `ws`).
63
+ const ws = await createWebSocket(url);
65
64
  return new Promise((resolve, reject) => {
66
- const ws = useGlobal
67
- ? new globalThis.WebSocket(url)
68
- : new WSCtor(url);
69
65
  // These handlers manage only the initial connection attempt.
70
66
  // Once the connection opens, setupReceive() takes over for
71
67
  // subsequent close/error events.
@@ -265,13 +261,5 @@ export class Socket {
265
261
  }
266
262
  }
267
263
  }
268
- let wsCtorPromise = null;
269
- function loadWsCtor() {
270
- if (!wsCtorPromise) {
271
- const dynamicImport = new Function("s", "return import(s)");
272
- wsCtorPromise = dynamicImport("ws").then((m) => m.default);
273
- }
274
- return wsCtorPromise;
275
- }
276
264
  export { Channel, ChannelError } from "./channel.js";
277
265
  //# sourceMappingURL=socket.js.map