@theoo/react 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 +38 -0
- package/dist/components.d.ts +86 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +216 -0
- package/dist/components.js.map +1 -0
- package/dist/connect.d.ts +31 -0
- package/dist/connect.d.ts.map +1 -0
- package/dist/connect.js +203 -0
- package/dist/connect.js.map +1 -0
- package/dist/context.d.ts +34 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +47 -0
- package/dist/context.js.map +1 -0
- package/dist/hooks-entry.d.ts +4 -0
- package/dist/hooks-entry.d.ts.map +1 -0
- package/dist/hooks-entry.js +4 -0
- package/dist/hooks-entry.js.map +1 -0
- package/dist/hooks.d.ts +253 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +317 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/package.json +47 -0
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { useTheoo, useSession } from "./context.js";
|
|
3
|
+
function asError(e) {
|
|
4
|
+
return e instanceof Error ? e : new Error(String(e));
|
|
5
|
+
}
|
|
6
|
+
/** Runs one async action at a time, keeping `busy` and `error` for the UI. */
|
|
7
|
+
function useAction() {
|
|
8
|
+
const [busy, setBusy] = useState(false);
|
|
9
|
+
const [error, setError] = useState(null);
|
|
10
|
+
const run = useCallback(async (f) => {
|
|
11
|
+
setBusy(true);
|
|
12
|
+
setError(null);
|
|
13
|
+
try {
|
|
14
|
+
return await f();
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
setError(asError(e));
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
finally {
|
|
21
|
+
setBusy(false);
|
|
22
|
+
}
|
|
23
|
+
}, []);
|
|
24
|
+
return { busy, error, run, clearError: () => setError(null) };
|
|
25
|
+
}
|
|
26
|
+
/* ── who is signed in ────────────────────────────────────────────────────── */
|
|
27
|
+
export { useSession } from "./context.js";
|
|
28
|
+
/**
|
|
29
|
+
* The sign-in state machine: send a code and submit it, hand off to Google or
|
|
30
|
+
* KingsChat, or use a passkey. `onSignedIn` fires once with the outcome.
|
|
31
|
+
*/
|
|
32
|
+
export function useSignIn(onSignedIn) {
|
|
33
|
+
const theoo = useTheoo();
|
|
34
|
+
const { busy, error, run, clearError } = useAction();
|
|
35
|
+
const [state, setState] = useState({ step: "idle" });
|
|
36
|
+
const cb = useRef(onSignedIn);
|
|
37
|
+
cb.current = onSignedIn;
|
|
38
|
+
const finish = (outcome) => {
|
|
39
|
+
setState({ step: "done", outcome });
|
|
40
|
+
cb.current?.(outcome);
|
|
41
|
+
return outcome;
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
...state,
|
|
45
|
+
busy,
|
|
46
|
+
error,
|
|
47
|
+
clearError,
|
|
48
|
+
reset: () => setState({ step: "idle" }),
|
|
49
|
+
sendCode: (provider, destination) => run(async () => {
|
|
50
|
+
const c = await theoo.auth.begin({ provider, destination });
|
|
51
|
+
if (c.kind !== "code")
|
|
52
|
+
throw new Error(`expected a code challenge, got ${c.kind}`);
|
|
53
|
+
setState({ step: "code_sent", challenge: c, provider, destination });
|
|
54
|
+
return c;
|
|
55
|
+
}),
|
|
56
|
+
submitCode: (code) => run(async () => {
|
|
57
|
+
if (state.step !== "code_sent")
|
|
58
|
+
throw new Error("no code was sent");
|
|
59
|
+
return finish(await theoo.auth.complete({ kind: "code", challengeId: state.challenge.challengeId, code }));
|
|
60
|
+
}),
|
|
61
|
+
withProvider: (provider) => run(async () => {
|
|
62
|
+
const c = await theoo.auth.begin({ provider });
|
|
63
|
+
if (c.kind !== "redirect" && c.kind !== "popup")
|
|
64
|
+
throw new Error(`expected a redirect, got ${c.kind}`);
|
|
65
|
+
setState({ step: "redirect", challenge: c });
|
|
66
|
+
return c;
|
|
67
|
+
}),
|
|
68
|
+
/** After the provider sent the user back: the `code` (or token) and the `state` it echoed. */
|
|
69
|
+
completeProvider: (result) => run(async () => {
|
|
70
|
+
if (state.step !== "redirect")
|
|
71
|
+
throw new Error("no provider sign-in in progress");
|
|
72
|
+
const s = state.challenge.state;
|
|
73
|
+
const out = "code" in result
|
|
74
|
+
? await theoo.auth.complete({ kind: "oauth_callback", state: s, code: result.code })
|
|
75
|
+
: await theoo.auth.complete({ kind: "forwarded_token", state: s, accessToken: result.accessToken });
|
|
76
|
+
return finish(out);
|
|
77
|
+
}),
|
|
78
|
+
withPasskey: () => run(async () => finish(await theoo.auth.withPasskey())),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/** Enrol a passkey on the signed-in user. The first one becomes the account's owner on chain. */
|
|
82
|
+
export function useEnrolPasskey() {
|
|
83
|
+
const theoo = useTheoo();
|
|
84
|
+
const { busy, error, run, clearError } = useAction();
|
|
85
|
+
const [outcome, setOutcome] = useState(null);
|
|
86
|
+
return {
|
|
87
|
+
busy,
|
|
88
|
+
error,
|
|
89
|
+
clearError,
|
|
90
|
+
outcome,
|
|
91
|
+
enrol: (label) => run(async () => {
|
|
92
|
+
const o = await theoo.auth.enrolPasskey(label);
|
|
93
|
+
setOutcome(o);
|
|
94
|
+
return o;
|
|
95
|
+
}),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/* ── on chain ────────────────────────────────────────────────────────────── */
|
|
99
|
+
/**
|
|
100
|
+
* The chains this tenant offers, and which one the app is pointed at.
|
|
101
|
+
*
|
|
102
|
+
* The choice is this hook's, not the server's: Theoo has a default and
|
|
103
|
+
* every call takes an override. Pass `chain` from here to `useOperation`,
|
|
104
|
+
* `useSessionKeys` and the rest.
|
|
105
|
+
*
|
|
106
|
+
* Worth telling users: **an account has a different address on each chain**,
|
|
107
|
+
* unless the factory was deployed at the same address on both. Switching is
|
|
108
|
+
* not moving funds between chains.
|
|
109
|
+
*/
|
|
110
|
+
export function useChains() {
|
|
111
|
+
const theoo = useTheoo();
|
|
112
|
+
const [chains, setChains] = useState(null);
|
|
113
|
+
const [chain, setChain] = useState(undefined);
|
|
114
|
+
const [error, setError] = useState(null);
|
|
115
|
+
useEffect(() => {
|
|
116
|
+
let live = true;
|
|
117
|
+
void (async () => {
|
|
118
|
+
try {
|
|
119
|
+
const list = await theoo.chains();
|
|
120
|
+
if (!live)
|
|
121
|
+
return;
|
|
122
|
+
setChains(list);
|
|
123
|
+
setChain((c) => c ?? list.find((x) => x.isDefault)?.chain ?? list[0]?.chain);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
if (live)
|
|
127
|
+
setError(asError(e));
|
|
128
|
+
}
|
|
129
|
+
})();
|
|
130
|
+
return () => {
|
|
131
|
+
live = false;
|
|
132
|
+
};
|
|
133
|
+
}, [theoo]);
|
|
134
|
+
return {
|
|
135
|
+
chains,
|
|
136
|
+
/** `undefined` until loaded, which every call reads as "the default". */
|
|
137
|
+
chain,
|
|
138
|
+
select: setChain,
|
|
139
|
+
current: chains?.find((c) => c.chain === chain) ?? null,
|
|
140
|
+
error,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/** Run an operation: prepare, sign with the passkey, submit, follow it to inclusion. */
|
|
144
|
+
export function useOperation(wait = {}) {
|
|
145
|
+
const theoo = useTheoo();
|
|
146
|
+
const session = useSession();
|
|
147
|
+
const { busy, error, run, clearError } = useAction();
|
|
148
|
+
const [status, setStatus] = useState(null);
|
|
149
|
+
return {
|
|
150
|
+
busy,
|
|
151
|
+
error,
|
|
152
|
+
clearError,
|
|
153
|
+
status,
|
|
154
|
+
run: (kind, chain) => run(async () => {
|
|
155
|
+
setStatus(null);
|
|
156
|
+
const s = await theoo.me.operations.run(kind, { chain, wait });
|
|
157
|
+
setStatus(s);
|
|
158
|
+
// The first operation deploys the account; everyone sharing the
|
|
159
|
+
// session should see that without a reload.
|
|
160
|
+
if (s.state === "included")
|
|
161
|
+
await session.reload();
|
|
162
|
+
return s;
|
|
163
|
+
}),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/** The user's operations, newest first. */
|
|
167
|
+
export function useOperations() {
|
|
168
|
+
const theoo = useTheoo();
|
|
169
|
+
const [list, setList] = useState(null);
|
|
170
|
+
const [error, setError] = useState(null);
|
|
171
|
+
const reload = useCallback(async () => {
|
|
172
|
+
try {
|
|
173
|
+
setList(await theoo.me.operations.list());
|
|
174
|
+
}
|
|
175
|
+
catch (e) {
|
|
176
|
+
setError(asError(e));
|
|
177
|
+
}
|
|
178
|
+
}, [theoo]);
|
|
179
|
+
useEffect(() => {
|
|
180
|
+
void reload();
|
|
181
|
+
}, [reload]);
|
|
182
|
+
return { operations: list, error, reload };
|
|
183
|
+
}
|
|
184
|
+
/** Guardian recovery: whether it is on, and the three things a user can do about it. */
|
|
185
|
+
export function useRecovery(chain) {
|
|
186
|
+
const theoo = useTheoo();
|
|
187
|
+
const { busy, error, run, clearError } = useAction();
|
|
188
|
+
const [status, setStatus] = useState(null);
|
|
189
|
+
const reload = useCallback(async () => {
|
|
190
|
+
try {
|
|
191
|
+
setStatus(await theoo.me.recovery.status(chain));
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
setStatus(null);
|
|
195
|
+
}
|
|
196
|
+
}, [theoo, chain]);
|
|
197
|
+
useEffect(() => {
|
|
198
|
+
void reload();
|
|
199
|
+
}, [reload]);
|
|
200
|
+
return {
|
|
201
|
+
status,
|
|
202
|
+
busy,
|
|
203
|
+
error,
|
|
204
|
+
clearError,
|
|
205
|
+
reload,
|
|
206
|
+
/** Appoint Theoo's platform guardian: a passkey-signed operation. */
|
|
207
|
+
enable: () => run(async () => {
|
|
208
|
+
const s = await theoo.me.operations.run({ kind: "enable_recovery" }, { chain });
|
|
209
|
+
await reload();
|
|
210
|
+
return s;
|
|
211
|
+
}),
|
|
212
|
+
/** Move the account to the newest passkey. Steps up first. */
|
|
213
|
+
begin: () => run(async () => {
|
|
214
|
+
await theoo.me.stepUp();
|
|
215
|
+
const s = await theoo.me.recovery.begin(chain);
|
|
216
|
+
setStatus(s);
|
|
217
|
+
return s;
|
|
218
|
+
}),
|
|
219
|
+
complete: () => run(async () => {
|
|
220
|
+
const s = await theoo.me.recovery.complete(chain);
|
|
221
|
+
setStatus(s);
|
|
222
|
+
return s;
|
|
223
|
+
}),
|
|
224
|
+
cancel: () => run(async () => {
|
|
225
|
+
const s = await theoo.me.operations.run({ kind: "cancel_recovery" }, { chain });
|
|
226
|
+
await reload();
|
|
227
|
+
return s;
|
|
228
|
+
}),
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
/** The user's session keys, and granting or revoking one with the passkey. */
|
|
232
|
+
export function useSessionKeys() {
|
|
233
|
+
const theoo = useTheoo();
|
|
234
|
+
const { busy, error, run, clearError } = useAction();
|
|
235
|
+
const [keys, setKeys] = useState(null);
|
|
236
|
+
const reload = useCallback(async () => {
|
|
237
|
+
try {
|
|
238
|
+
setKeys(await theoo.me.sessions.list());
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
setKeys(null);
|
|
242
|
+
}
|
|
243
|
+
}, [theoo]);
|
|
244
|
+
useEffect(() => {
|
|
245
|
+
void reload();
|
|
246
|
+
}, [reload]);
|
|
247
|
+
return {
|
|
248
|
+
keys,
|
|
249
|
+
busy,
|
|
250
|
+
error,
|
|
251
|
+
clearError,
|
|
252
|
+
reload,
|
|
253
|
+
grant: (grant, chain) => run(async () => {
|
|
254
|
+
const r = await theoo.me.sessions.grant(grant, { chain });
|
|
255
|
+
await reload();
|
|
256
|
+
return r;
|
|
257
|
+
}),
|
|
258
|
+
renew: (renewal, chain) => run(async () => {
|
|
259
|
+
const r = await theoo.me.sessions.renew(renewal, { chain });
|
|
260
|
+
await reload();
|
|
261
|
+
return r;
|
|
262
|
+
}),
|
|
263
|
+
revoke: (id, chain) => run(async () => {
|
|
264
|
+
const r = await theoo.me.sessions.revoke(id, { chain });
|
|
265
|
+
await reload();
|
|
266
|
+
return r;
|
|
267
|
+
}),
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* The same, on Solana. `execute` is not a ceremony here: the key signs the
|
|
272
|
+
* transaction itself, so the call returns the finished operation.
|
|
273
|
+
*/
|
|
274
|
+
export function useSolanaSessionKeys(cluster) {
|
|
275
|
+
const theoo = useTheoo();
|
|
276
|
+
const { busy, error, run, clearError } = useAction();
|
|
277
|
+
const [keys, setKeys] = useState(null);
|
|
278
|
+
const reload = useCallback(async () => {
|
|
279
|
+
try {
|
|
280
|
+
setKeys(await theoo.me.solana.sessions.list());
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
setKeys(null);
|
|
284
|
+
}
|
|
285
|
+
}, [theoo]);
|
|
286
|
+
useEffect(() => {
|
|
287
|
+
void reload();
|
|
288
|
+
}, [reload]);
|
|
289
|
+
return {
|
|
290
|
+
keys,
|
|
291
|
+
busy,
|
|
292
|
+
error,
|
|
293
|
+
clearError,
|
|
294
|
+
reload,
|
|
295
|
+
grant: (grant) => run(async () => {
|
|
296
|
+
const r = await theoo.me.solana.sessions.grant(grant, cluster);
|
|
297
|
+
await reload();
|
|
298
|
+
return r;
|
|
299
|
+
}),
|
|
300
|
+
renew: (renewal) => run(async () => {
|
|
301
|
+
const r = await theoo.me.solana.sessions.renew(renewal, cluster);
|
|
302
|
+
await reload();
|
|
303
|
+
return r;
|
|
304
|
+
}),
|
|
305
|
+
revoke: (id) => run(async () => {
|
|
306
|
+
const r = await theoo.me.solana.sessions.revoke(id, cluster);
|
|
307
|
+
await reload();
|
|
308
|
+
return r;
|
|
309
|
+
}),
|
|
310
|
+
execute: (id, action) => run(async () => {
|
|
311
|
+
const r = await theoo.me.solana.sessions.execute(id, action);
|
|
312
|
+
await reload();
|
|
313
|
+
return r;
|
|
314
|
+
}),
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./hooks-entry.js";
|
|
2
|
+
export { AuthModeSwitch, ConfirmOperation, PasskeyEnrol, Recovery, SignIn, useEscape, type AuthMode, type ConfirmOperationProps, type PasskeyEnrolProps, type RecoveryProps, type SignInProps, } from "./components.js";
|
|
3
|
+
export { TheooConnect, shortAddress, type TheooConnectProps } from "./connect.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,SAAS,GAMV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAA0B,MAAM,cAAc,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@theoo/react",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "React hooks and components for Theoo: sign-in, passkeys, operations, recovery and session keys.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./hooks": {
|
|
15
|
+
"types": "./dist/hooks-entry.d.ts",
|
|
16
|
+
"import": "./dist/hooks-entry.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"sideEffects": false,
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@theoo/sdk": "0.1.0"
|
|
27
|
+
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"react": ">=18"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/react": "^19.0.0",
|
|
33
|
+
"@types/react-dom": "^19.0.0",
|
|
34
|
+
"react": "^19.0.0",
|
|
35
|
+
"react-dom": "^19.0.0",
|
|
36
|
+
"typescript": "^5.7.0",
|
|
37
|
+
"vitest": "^3.0.0"
|
|
38
|
+
},
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc -p tsconfig.build.json",
|
|
44
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
45
|
+
"test": "vitest run"
|
|
46
|
+
}
|
|
47
|
+
}
|