@ic-reactor/react 3.8.0 → 3.10.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/README.md +84 -10
- package/dist/auth/authentication-manager.d.ts.map +1 -1
- package/dist/auth/authentication-manager.js +146 -21
- package/dist/auth/authentication-manager.js.map +1 -1
- package/dist/auth/createIdentityAttributeHooks.d.ts.map +1 -1
- package/dist/auth/createIdentityAttributeHooks.js +47 -5
- package/dist/auth/createIdentityAttributeHooks.js.map +1 -1
- package/dist/createInfiniteQuery.d.ts +11 -9
- package/dist/createInfiniteQuery.d.ts.map +1 -1
- package/dist/createInfiniteQuery.js +20 -17
- package/dist/createInfiniteQuery.js.map +1 -1
- package/dist/createMutation.d.ts.map +1 -1
- package/dist/createMutation.js +37 -3
- package/dist/createMutation.js.map +1 -1
- package/dist/createQuery.d.ts.map +1 -1
- package/dist/createQuery.js +7 -3
- package/dist/createQuery.js.map +1 -1
- package/dist/createSuspenseInfiniteQuery.d.ts +10 -9
- package/dist/createSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/createSuspenseInfiniteQuery.js +18 -16
- package/dist/createSuspenseInfiniteQuery.js.map +1 -1
- package/dist/createSuspenseQuery.d.ts.map +1 -1
- package/dist/createSuspenseQuery.js +7 -3
- package/dist/createSuspenseQuery.js.map +1 -1
- package/dist/defineReactor.d.ts.map +1 -1
- package/dist/defineReactor.js +17 -2
- package/dist/defineReactor.js.map +1 -1
- package/dist/hooks/createAuthHooks.d.ts.map +1 -1
- package/dist/hooks/createAuthHooks.js +13 -0
- package/dist/hooks/createAuthHooks.js.map +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useActorInfiniteQuery.d.ts.map +1 -1
- package/dist/hooks/useActorInfiniteQuery.js +21 -2
- package/dist/hooks/useActorInfiniteQuery.js.map +1 -1
- package/dist/hooks/useActorMethod.d.ts.map +1 -1
- package/dist/hooks/useActorMethod.js +76 -33
- package/dist/hooks/useActorMethod.js.map +1 -1
- package/dist/hooks/useActorMutation.d.ts +8 -1
- package/dist/hooks/useActorMutation.d.ts.map +1 -1
- package/dist/hooks/useActorMutation.js +23 -7
- package/dist/hooks/useActorMutation.js.map +1 -1
- package/dist/hooks/useActorQuery.d.ts.map +1 -1
- package/dist/hooks/useActorQuery.js +12 -1
- package/dist/hooks/useActorQuery.js.map +1 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.js +21 -2
- package/dist/hooks/useActorSuspenseInfiniteQuery.js.map +1 -1
- package/dist/hooks/useActorSuspenseQuery.d.ts.map +1 -1
- package/dist/hooks/useActorSuspenseQuery.js +12 -1
- package/dist/hooks/useActorSuspenseQuery.js.map +1 -1
- package/dist/types.d.ts +8 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +27 -5
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +65 -9
- package/dist/utils.js.map +1 -1
- package/package.json +8 -2
- package/src/auth/authentication-manager.ts +162 -21
- package/src/auth/createIdentityAttributeHooks.ts +54 -5
- package/src/createInfiniteQuery.ts +48 -34
- package/src/createMutation.ts +48 -2
- package/src/createQuery.ts +17 -10
- package/src/createSuspenseInfiniteQuery.ts +44 -32
- package/src/createSuspenseQuery.ts +17 -10
- package/src/defineReactor.ts +24 -2
- package/src/hooks/createAuthHooks.ts +18 -0
- package/src/hooks/index.ts +6 -0
- package/src/hooks/useActorInfiniteQuery.ts +30 -3
- package/src/hooks/useActorMethod.ts +91 -34
- package/src/hooks/useActorMutation.ts +35 -12
- package/src/hooks/useActorQuery.ts +11 -1
- package/src/hooks/useActorSuspenseInfiniteQuery.ts +30 -3
- package/src/hooks/useActorSuspenseQuery.ts +11 -1
- package/src/types.ts +8 -2
- package/src/utils.ts +66 -10
package/README.md
CHANGED
|
@@ -14,9 +14,26 @@ pnpm add @icp-sdk/auth
|
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
`@icp-sdk/auth` is an optional peer. `AuthenticationManager` reaches it through a
|
|
17
|
-
literal `import("@icp-sdk/auth/client")`, so Vite, Rollup and webpack
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
literal `import("@icp-sdk/auth/client")`, so Vite, Rollup and webpack code-split
|
|
18
|
+
it into its own async chunk. That chunk is never fetched unless something
|
|
19
|
+
touches authentication, and its bytes are dropped from the output entirely in
|
|
20
|
+
apps that never reference the class.
|
|
21
|
+
|
|
22
|
+
Bundlers still **resolve** that specifier while building the module graph, which
|
|
23
|
+
happens before any tree-shaking — so a missing peer cannot simply be optimized
|
|
24
|
+
away. The import therefore sits inside a `try` block, which webpack-family
|
|
25
|
+
bundlers treat as declaring an optional dependency: with the peer absent the
|
|
26
|
+
build succeeds and prints one warning,
|
|
27
|
+
`Module not found: Can't resolve '@icp-sdk/auth/client'`. Only the login paths
|
|
28
|
+
are affected, and they throw an actionable error if they are ever called.
|
|
29
|
+
|
|
30
|
+
Install the peer to remove the warning, or silence it with
|
|
31
|
+
[`ignoreWarnings`](https://webpack.js.org/configuration/other-options/#ignorewarnings):
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
// webpack.config.js / next.config.js (webpack)
|
|
35
|
+
ignoreWarnings: [{ module: /@ic-reactor\/react/, message: /@icp-sdk\/auth/ }]
|
|
36
|
+
```
|
|
20
37
|
|
|
21
38
|
## Quick Start
|
|
22
39
|
|
|
@@ -24,7 +41,7 @@ entirely in apps that never reference the class.
|
|
|
24
41
|
// src/reactor.ts
|
|
25
42
|
import { ClientManager, Reactor, createActorHooks } from "@ic-reactor/react"
|
|
26
43
|
import { QueryClient } from "@tanstack/react-query"
|
|
27
|
-
import { idlFactory, type _SERVICE } from "./declarations/backend"
|
|
44
|
+
import { canisterId, idlFactory, type _SERVICE } from "./declarations/backend"
|
|
28
45
|
|
|
29
46
|
export const queryClient = new QueryClient()
|
|
30
47
|
|
|
@@ -36,6 +53,10 @@ export const backend = new Reactor<_SERVICE>({
|
|
|
36
53
|
clientManager,
|
|
37
54
|
idlFactory,
|
|
38
55
|
name: "backend",
|
|
56
|
+
// `dfx` writes this alongside the idlFactory. Required — omit it only when
|
|
57
|
+
// the vite-plugin injects an `ic_env` cookie for this canister; outside that
|
|
58
|
+
// flow the constructor throws.
|
|
59
|
+
canisterId,
|
|
39
60
|
})
|
|
40
61
|
|
|
41
62
|
export const {
|
|
@@ -238,13 +259,13 @@ the Internet Identity window:
|
|
|
238
259
|
```tsx
|
|
239
260
|
// ✅ window opens immediately, nonce resolves while the user is in II
|
|
240
261
|
await requestOpenIdAttributes({
|
|
241
|
-
nonce: () => backend.
|
|
262
|
+
nonce: () => backend.callMethod({ functionName: "register_begin" }),
|
|
242
263
|
openIdProvider: "google",
|
|
243
264
|
keys: ["email", "name"],
|
|
244
265
|
})
|
|
245
266
|
|
|
246
267
|
// ❌ gesture is gone by the time the window would open
|
|
247
|
-
const nonce = await backend.
|
|
268
|
+
const nonce = await backend.callMethod({ functionName: "register_begin" })
|
|
248
269
|
await requestOpenIdAttributes({ nonce, openIdProvider: "google", keys })
|
|
249
270
|
```
|
|
250
271
|
|
|
@@ -263,7 +284,7 @@ function RegisterWithOpenIdProvider() {
|
|
|
263
284
|
|
|
264
285
|
async function handleProviderLogin() {
|
|
265
286
|
const result = await requestOpenIdAttributes({
|
|
266
|
-
nonce: () => backend.
|
|
287
|
+
nonce: () => backend.callMethod({ functionName: "register_begin" }),
|
|
267
288
|
openIdProvider: "microsoft",
|
|
268
289
|
keys: ["email", "name"],
|
|
269
290
|
windowOpenerFeatures: popupCenter(),
|
|
@@ -272,9 +293,14 @@ function RegisterWithOpenIdProvider() {
|
|
|
272
293
|
console.log(result.decodedAttributes.email)
|
|
273
294
|
console.log(result.decodedAttributes.name)
|
|
274
295
|
|
|
275
|
-
await backend.
|
|
276
|
-
|
|
277
|
-
|
|
296
|
+
await backend.callMethod({
|
|
297
|
+
functionName: "register_finish",
|
|
298
|
+
args: [
|
|
299
|
+
{
|
|
300
|
+
data: result.signedAttributes.data,
|
|
301
|
+
signature: result.signedAttributes.signature,
|
|
302
|
+
},
|
|
303
|
+
],
|
|
278
304
|
})
|
|
279
305
|
}
|
|
280
306
|
|
|
@@ -296,6 +322,54 @@ must send `signedAttributes.data` and `signedAttributes.signature` to the backen
|
|
|
296
322
|
or canister and verify the signature, nonce, origin, timestamp, and requested keys
|
|
297
323
|
before trusting or storing the attributes.
|
|
298
324
|
|
|
325
|
+
## Server-Side Rendering
|
|
326
|
+
|
|
327
|
+
**Build the reactor inside the request, not at module scope.**
|
|
328
|
+
|
|
329
|
+
A reactor owns its `QueryClient`. On a server a module-scope reactor is created
|
|
330
|
+
once per process and shared by every request, and query keys are
|
|
331
|
+
`[canisterId, functionName, args]` — they do not include the caller. So a
|
|
332
|
+
cached result for a caller-scoped method (`get_my_balance`, a deposit address,
|
|
333
|
+
`my_profile`) is handed to whichever request asks next:
|
|
334
|
+
|
|
335
|
+
```tsx
|
|
336
|
+
// ❌ Shared by every request on the server
|
|
337
|
+
export const app = defineReactor<_SERVICE>({
|
|
338
|
+
name: "backend",
|
|
339
|
+
idlFactory,
|
|
340
|
+
canisterId,
|
|
341
|
+
})
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
```tsx
|
|
345
|
+
// ✅ Per request: nothing is shared between users
|
|
346
|
+
export default async function Page() {
|
|
347
|
+
const app = defineReactor<_SERVICE>({
|
|
348
|
+
name: "backend",
|
|
349
|
+
idlFactory,
|
|
350
|
+
canisterId,
|
|
351
|
+
queryClient: new QueryClient(),
|
|
352
|
+
})
|
|
353
|
+
|
|
354
|
+
const data = await app.reactor.fetchQuery({ functionName: "get_my_profile" })
|
|
355
|
+
return <Profile data={data} />
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Two further constraints on the App Router specifically:
|
|
360
|
+
|
|
361
|
+
- Hooks are client-only, like every React hook — call them from a `"use client"`
|
|
362
|
+
module. A server component may import `Reactor` / `ClientManager` and make
|
|
363
|
+
imperative calls; that path works.
|
|
364
|
+
- Hooks bind to their reactor's own `QueryClient` rather than to a
|
|
365
|
+
`QueryClientProvider`, so `HydrationBoundary` prefetch does not feed them
|
|
366
|
+
unless the provider's client _is_ that reactor's client. Next.js also
|
|
367
|
+
evaluates a shared module twice on the server (the RSC and SSR graphs), so a
|
|
368
|
+
module-scope reactor is two different instances there.
|
|
369
|
+
|
|
370
|
+
If none of that applies — a client-only SPA — module-scope reactors are exactly
|
|
371
|
+
right and none of this is a concern.
|
|
372
|
+
|
|
299
373
|
## Query Result Methods
|
|
300
374
|
|
|
301
375
|
Every object returned by `createQuery`, `createSuspenseQuery`, and their
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication-manager.d.ts","sourceRoot":"","sources":["../../src/auth/authentication-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,SAAS,EACT,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"authentication-manager.d.ts","sourceRoot":"","sources":["../../src/auth/authentication-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,SAAS,EACT,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,aAAa,EAAwB,MAAM,kBAAkB,CAAA;AAUtE,MAAM,WAAW,+BAAgC,SAAQ,2BAA2B;IAClF,aAAa,EAAE,aAAa,CAAA;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAMD;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAC,CAA+B;IACnD,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,oBAAoB,CAAwC;IACpE,OAAO,CAAC,qBAAqB,CAAC,CAAuB;IACrD,OAAO,CAAC,4BAA4B,CAAC,CAEpC;IACD,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAA6B;IACvD,OAAO,CAAC,cAAc,CAKrB;IACD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAClE,SAAgB,aAAa,EAAE,aAAa,CAAA;IAE5C,wCAAwC;IACxC,IAAW,SAAS,IAAI,SAAS,CAEhC;gBAEW,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,GAAG,aAAa,EACjB,EAAE,+BAA+B;IAiClC,mDAAmD;IACnD,IAAW,MAAM,+BAEhB;IAEM,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI;IAS9D;;;;;;;OAOG;IACU,aAAa,CAAC,OAAO,CAAC,EAAE,2BAA2B;IAUhE;;;;;;;OAOG;IACI,iBAAiB,CACtB,OAAO,CAAC,EAAE,2BAA2B,GACpC,cAAc,GAAG,SAAS;IAItB,YAAY,QAAa,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAqF5D;IAEM,KAAK,GAAU,eAAe,2BAA2B,mBAwD/D;IAEM,MAAM,GAAU,UAAU;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,mBAuBrD;YAEa,gBAAgB;IAc9B,mDAAmD;IACtC,uBAAuB,CAClC,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,QAAQ,CAAC;IAyBpB,OAAO,CAAC,oBAAoB;IAiB5B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;YAed,mBAAmB;IAmBjC,mDAAmD;IACtC,YAAY,CAAC,OAAO,CAAC,EAAE,2BAA2B;IAQ/D,mDAAmD;IACtC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO;IAQxE,mDAAmD;IAC5C,iBAAiB;IAIxB,mDAAmD;IAC5C,sBAAsB,CAAC,KAAK,EAAE,KAAK;IAI1C,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,WAAW;YASL,yBAAyB;CAkCxC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { isDev } from "@ic-reactor/core";
|
|
1
|
+
import { isDev, isMainnetHost } from "@ic-reactor/core";
|
|
2
|
+
import { Principal } from "@icp-sdk/core/principal";
|
|
2
3
|
import { safeGetCanisterEnv } from "@icp-sdk/core/agent/canister-env";
|
|
3
4
|
import { IC_INTERNET_IDENTITY_PROVIDER, INTERNET_IDENTITY_PROVIDER_ENV_KEY, localInternetIdentityProvider, } from "./constants.js";
|
|
4
5
|
/**
|
|
@@ -112,7 +113,22 @@ export class AuthenticationManager {
|
|
|
112
113
|
writable: true,
|
|
113
114
|
value: async () => {
|
|
114
115
|
if (this.authState.isAuthenticated) {
|
|
115
|
-
|
|
116
|
+
// Returning on the cached flag alone meant a delegation that expired
|
|
117
|
+
// mid-session was never re-observed: the UI kept rendering a signed-in
|
|
118
|
+
// state while every update call failed, and only a reload recovered.
|
|
119
|
+
// Re-ask the client, which reads the cached expiry rather than hitting
|
|
120
|
+
// storage. A throw here is treated as "still valid" so a transient
|
|
121
|
+
// failure cannot sign anyone out.
|
|
122
|
+
if (!this.authClient) {
|
|
123
|
+
return this.authState.identity || undefined;
|
|
124
|
+
}
|
|
125
|
+
const stillValid = await Promise.resolve(this.authClient.isAuthenticated()).catch(() => true);
|
|
126
|
+
if (stillValid) {
|
|
127
|
+
return this.authState.identity || undefined;
|
|
128
|
+
}
|
|
129
|
+
// Expired — drop the stale flag and fall through to re-derive state,
|
|
130
|
+
// which resets the agent to the anonymous identity.
|
|
131
|
+
this.updateState({ isAuthenticated: false });
|
|
116
132
|
}
|
|
117
133
|
if (this.authPromise) {
|
|
118
134
|
return this.authPromise;
|
|
@@ -128,6 +144,11 @@ export class AuthenticationManager {
|
|
|
128
144
|
});
|
|
129
145
|
}
|
|
130
146
|
this.updateState({ isAuthenticating: true });
|
|
147
|
+
// Anything that changes auth state — a logout, notably — bumps this. If
|
|
148
|
+
// it moves while the awaits below are in flight, the result we are
|
|
149
|
+
// holding describes a session that has since ended, and installing it
|
|
150
|
+
// would put the signed-out user's delegation back on the agent.
|
|
151
|
+
const revision = this.authStateRevision;
|
|
131
152
|
try {
|
|
132
153
|
if (!this.authClient) {
|
|
133
154
|
const authClient = await this.initializeClient(this.resolveClientOptions());
|
|
@@ -138,6 +159,10 @@ export class AuthenticationManager {
|
|
|
138
159
|
}
|
|
139
160
|
const identity = await this.authClient.getIdentity();
|
|
140
161
|
const isAuthenticated = await this.authClient.isAuthenticated();
|
|
162
|
+
if (revision !== this.authStateRevision) {
|
|
163
|
+
// Superseded — leave whatever ran in the meantime in place.
|
|
164
|
+
return this.authState.identity || undefined;
|
|
165
|
+
}
|
|
141
166
|
// Restoring an anonymous session is the common first-load case; pushing
|
|
142
167
|
// it through updateAgent would invalidate the whole query cache on
|
|
143
168
|
// every mount for nothing.
|
|
@@ -224,27 +249,36 @@ export class AuthenticationManager {
|
|
|
224
249
|
throw new Error("Authentication module is missing or failed to initialize. To use logout, install the optional auth peer: npm install @icp-sdk/auth. If it is already installed and your bundler could not resolve it, pass a pre-constructed client instead: new AuthenticationManager({ clientManager, authClient: new AuthClient(...) })");
|
|
225
250
|
}
|
|
226
251
|
this.updateState({ isAuthenticating: true, error: undefined });
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
252
|
+
try {
|
|
253
|
+
await this.authClient.signOut(options);
|
|
254
|
+
const identity = await this.authClient.getIdentity();
|
|
255
|
+
this.clientManager.updateAgent(identity);
|
|
256
|
+
this.updateState({
|
|
257
|
+
identity,
|
|
258
|
+
isAuthenticated: false,
|
|
259
|
+
isAuthenticating: false,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
// Without this the manager was left with `isAuthenticating: true` and no
|
|
264
|
+
// recorded error, so a button disabled on `isAuthenticating` stayed stuck
|
|
265
|
+
// and nothing told the app why.
|
|
266
|
+
this.updateState({ error: error, isAuthenticating: false });
|
|
267
|
+
throw error;
|
|
268
|
+
}
|
|
235
269
|
}
|
|
236
270
|
});
|
|
237
271
|
this.clientManager = clientManager;
|
|
238
272
|
const canisterEnv = typeof window !== "undefined" ? getAuthenticationCanisterEnv() : undefined;
|
|
239
273
|
this.identityProvider =
|
|
240
274
|
identityProvider ||
|
|
241
|
-
canisterEnv?.[INTERNET_IDENTITY_PROVIDER_ENV_KEY] ||
|
|
242
|
-
|
|
275
|
+
acceptEnvIdentityProvider(canisterEnv?.[INTERNET_IDENTITY_PROVIDER_ENV_KEY] ||
|
|
276
|
+
canisterEnv?.["PUBLIC_INTERNET_IDENTITY_PROVIDER"], clientManager);
|
|
243
277
|
this.internetIdentityId =
|
|
244
278
|
internetIdentityId ||
|
|
245
|
-
canisterEnv?.["internet_identity"] ||
|
|
246
|
-
|
|
247
|
-
|
|
279
|
+
acceptEnvCanisterId(canisterEnv?.["internet_identity"] ||
|
|
280
|
+
canisterEnv?.["PUBLIC_CANISTER_ID:internet_identity"] ||
|
|
281
|
+
canisterEnv?.["CANISTER_ID_INTERNET_IDENTITY"]);
|
|
248
282
|
this.defaultClientOptions = clientOptions;
|
|
249
283
|
if (authClient) {
|
|
250
284
|
this.authClientWasProvided = true;
|
|
@@ -421,12 +455,7 @@ export class AuthenticationManager {
|
|
|
421
455
|
return this.authClientConstructor;
|
|
422
456
|
}
|
|
423
457
|
if (!this.authClientConstructorPromise) {
|
|
424
|
-
|
|
425
|
-
// makes bundlers skip this import entirely, so the bare specifier survives into
|
|
426
|
-
// the browser, where it cannot be resolved without an import map and every login
|
|
427
|
-
// path fails. A literal lets Vite/Rollup/webpack code-split the optional peer,
|
|
428
|
-
// and lets them tree-shake it away for apps that never reference this class.
|
|
429
|
-
this.authClientConstructorPromise = import("@icp-sdk/auth/client")
|
|
458
|
+
this.authClientConstructorPromise = importAuthClientModule()
|
|
430
459
|
.then((authModule) => {
|
|
431
460
|
const AuthClient = authModule.AuthClient;
|
|
432
461
|
if (!AuthClient) {
|
|
@@ -448,6 +477,37 @@ export class AuthenticationManager {
|
|
|
448
477
|
return this.authClientConstructorPromise;
|
|
449
478
|
}
|
|
450
479
|
}
|
|
480
|
+
/**
|
|
481
|
+
* Loads the optional `@icp-sdk/auth` peer.
|
|
482
|
+
*
|
|
483
|
+
* The `try` is load-bearing, not defensive. webpack flags a dynamic import
|
|
484
|
+
* that sits lexically inside a `try` block as an *optional* dependency
|
|
485
|
+
* (`ImportParserPlugin`: `dep.optional = Boolean(parser.scope.inTry)`), and
|
|
486
|
+
* `Compilation` reports an unresolvable optional dependency as a build
|
|
487
|
+
* *warning* instead of a fatal "Module not found" error, emitting a module
|
|
488
|
+
* that rejects at runtime. Without the `try`, every webpack-based toolchain
|
|
489
|
+
* (webpack, `next build --webpack`, Rspack) fails to build for consumers who
|
|
490
|
+
* never touch authentication, because npm/pnpm do not install optional peers.
|
|
491
|
+
* Do not hoist this import out of the `try`, and do not wrap it in a nested
|
|
492
|
+
* function — webpack resets `inTry` at every function boundary.
|
|
493
|
+
*
|
|
494
|
+
* The specifier must also stay a literal: a variable specifier (or
|
|
495
|
+
* `@vite-ignore`) makes bundlers skip this import entirely, so the bare
|
|
496
|
+
* specifier survives into the browser, where it cannot be resolved without an
|
|
497
|
+
* import map and every login path fails. A literal lets Vite/Rollup/webpack
|
|
498
|
+
* code-split the optional peer, and lets them tree-shake it away for apps that
|
|
499
|
+
* never reference this class.
|
|
500
|
+
*/
|
|
501
|
+
function importAuthClientModule() {
|
|
502
|
+
try {
|
|
503
|
+
return import("@icp-sdk/auth/client");
|
|
504
|
+
}
|
|
505
|
+
catch (error) {
|
|
506
|
+
// Native ESM without an import map (and bundlers that neither resolve nor
|
|
507
|
+
// stub the specifier) throw synchronously rather than rejecting.
|
|
508
|
+
return Promise.reject(error);
|
|
509
|
+
}
|
|
510
|
+
}
|
|
451
511
|
function getAuthClientOptions(options) {
|
|
452
512
|
if (!options) {
|
|
453
513
|
return undefined;
|
|
@@ -495,6 +555,71 @@ function isSameAuthClientOptions(current, next) {
|
|
|
495
555
|
current.identity === next.identity &&
|
|
496
556
|
current.transport === next.transport);
|
|
497
557
|
}
|
|
558
|
+
/**
|
|
559
|
+
* Decides whether an Internet Identity provider carried by the `ic_env` cookie
|
|
560
|
+
* may be used.
|
|
561
|
+
*
|
|
562
|
+
* The cookie is written by the replica serving a local or testnet deployment,
|
|
563
|
+
* and it is only authoritative in that setting: cookies are not origin-isolated
|
|
564
|
+
* the way script-accessible storage is, so on a mainnet deployment the identity
|
|
565
|
+
* provider is configuration that belongs in code rather than something read
|
|
566
|
+
* back out of the environment at runtime. `AuthClient` treats `identityProvider`
|
|
567
|
+
* as trusted developer configuration and does not re-check it.
|
|
568
|
+
*
|
|
569
|
+
* This mirrors the root-key guard in `ClientManager` (see `packages/core`):
|
|
570
|
+
* both values arrive from the same cookie and get the same treatment — adopted
|
|
571
|
+
* off-mainnet, ignored on mainnet in favour of the pinned default.
|
|
572
|
+
*
|
|
573
|
+
* A provider on the app's own origin is always accepted: it is exactly as
|
|
574
|
+
* trustworthy as the page doing the asking. Callers that need a custom provider
|
|
575
|
+
* on mainnet pass `identityProvider` explicitly.
|
|
576
|
+
*/
|
|
577
|
+
function acceptEnvIdentityProvider(value, clientManager) {
|
|
578
|
+
if (!value)
|
|
579
|
+
return undefined;
|
|
580
|
+
const pageOrigin = typeof window !== "undefined" ? window.location?.origin : undefined;
|
|
581
|
+
let url;
|
|
582
|
+
try {
|
|
583
|
+
url = new URL(value, pageOrigin);
|
|
584
|
+
}
|
|
585
|
+
catch {
|
|
586
|
+
return undefined;
|
|
587
|
+
}
|
|
588
|
+
if (pageOrigin && url.origin === pageOrigin) {
|
|
589
|
+
return url.toString();
|
|
590
|
+
}
|
|
591
|
+
// `isMainnetHost` matches only the real boundary domains and defaults to true
|
|
592
|
+
// for an unknown host, so custom testnets keep working while anything that
|
|
593
|
+
// looks like mainnet fails closed. `clientManager.isLocal` would be wrong
|
|
594
|
+
// here: it treats every unrecognized hostname as "ic".
|
|
595
|
+
if (isMainnetHost(clientManager.agentHost?.toString())) {
|
|
596
|
+
console.warn(`[ic-reactor] Ignoring the Internet Identity provider from the ic_env cookie ` +
|
|
597
|
+
`("${url.origin}") because this reactor targets mainnet, where the provider ` +
|
|
598
|
+
`is taken from configuration rather than the environment. Pass ` +
|
|
599
|
+
`\`identityProvider\` to AuthenticationManager to use a custom provider on mainnet.`);
|
|
600
|
+
return undefined;
|
|
601
|
+
}
|
|
602
|
+
return url.toString();
|
|
603
|
+
}
|
|
604
|
+
/**
|
|
605
|
+
* Accepts an Internet Identity canister ID from `ic_env` only when it parses as
|
|
606
|
+
* a principal.
|
|
607
|
+
*
|
|
608
|
+
* The value is interpolated into a provider URL
|
|
609
|
+
* (`http://<id>.localhost:<port>/authorize`), so anything that is not a bare
|
|
610
|
+
* principal can change the shape of that URL rather than just its subdomain.
|
|
611
|
+
* Only reachable on local networks, since mainnet uses the pinned provider.
|
|
612
|
+
*/
|
|
613
|
+
function acceptEnvCanisterId(value) {
|
|
614
|
+
if (!value)
|
|
615
|
+
return undefined;
|
|
616
|
+
try {
|
|
617
|
+
return Principal.fromText(value).toText();
|
|
618
|
+
}
|
|
619
|
+
catch {
|
|
620
|
+
return undefined;
|
|
621
|
+
}
|
|
622
|
+
}
|
|
498
623
|
function getAuthenticationCanisterEnv() {
|
|
499
624
|
const canisterEnv = safeGetCanisterEnv();
|
|
500
625
|
if (canisterEnv) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication-manager.js","sourceRoot":"","sources":["../../src/auth/authentication-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authentication-manager.js","sourceRoot":"","sources":["../../src/auth/authentication-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createIdentityAttributeHooks.d.ts","sourceRoot":"","sources":["../../src/auth/createIdentityAttributeHooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EACV,uBAAuB,EACvB,mCAAmC,EACnC,yCAAyC,EAC1C,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,CACjB,MAAM,EAAE,mCAAmC,KACxC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACrC,uBAAuB,EAAE,CACvB,MAAM,EAAE,yCAAyC,KAC9C,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACrC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC1C,sBAAsB,EAAE,OAAO,CAAA;IAC/B,cAAc,EAAE,KAAK,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,wBAAgB,4BAA4B,CAC1C,kBAAkB,EAAE,yBAAyB;iCAEX,2BAA2B;
|
|
1
|
+
{"version":3,"file":"createIdentityAttributeHooks.d.ts","sourceRoot":"","sources":["../../src/auth/createIdentityAttributeHooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EACV,uBAAuB,EACvB,mCAAmC,EACnC,yCAAyC,EAC1C,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,CACjB,MAAM,EAAE,mCAAmC,KACxC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACrC,uBAAuB,EAAE,CACvB,MAAM,EAAE,yCAAyC,KAC9C,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACrC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC1C,sBAAsB,EAAE,OAAO,CAAA;IAC/B,cAAc,EAAE,KAAK,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,wBAAgB,4BAA4B,CAC1C,kBAAkB,EAAE,yBAAyB;iCAEX,2BAA2B;EA2G9D"}
|
|
@@ -1,19 +1,42 @@
|
|
|
1
|
-
import { useCallback, useState } from "react";
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
2
|
export function createIdentityAttributeHooks(identityAttributes) {
|
|
3
3
|
const useIdentityAttributes = () => {
|
|
4
4
|
const [attributes, setAttributes] = useState(null);
|
|
5
5
|
const [isRequestingAttributes, setIsRequestingAttributes] = useState(false);
|
|
6
6
|
const [attributeError, setAttributeError] = useState(null);
|
|
7
|
+
/** The principal the session is currently signed in as, if any. */
|
|
8
|
+
const currentPrincipal = useCallback(() => {
|
|
9
|
+
const { authState } = identityAttributes.authentication;
|
|
10
|
+
return authState.isAuthenticated
|
|
11
|
+
? authState.identity?.getPrincipal().toText()
|
|
12
|
+
: undefined;
|
|
13
|
+
}, []);
|
|
14
|
+
/**
|
|
15
|
+
* A request started before a sign-out or an account switch resolves after
|
|
16
|
+
* it, and publishing that result would put the previous user's decoded PII
|
|
17
|
+
* back on screen with no further auth event to clear it again. Results are
|
|
18
|
+
* therefore only committed while the principal that asked for them is still
|
|
19
|
+
* the one signed in.
|
|
20
|
+
*/
|
|
21
|
+
const isCurrent = useCallback((requestedFor) => requestedFor === currentPrincipal(), [currentPrincipal]);
|
|
22
|
+
const publishIfCurrent = useCallback((requestedFor, result) => {
|
|
23
|
+
if (!isCurrent(requestedFor))
|
|
24
|
+
return false;
|
|
25
|
+
setAttributes(result);
|
|
26
|
+
return true;
|
|
27
|
+
}, [isCurrent]);
|
|
7
28
|
const requestAttributes = useCallback(async (params) => {
|
|
8
29
|
setIsRequestingAttributes(true);
|
|
9
30
|
setAttributeError(null);
|
|
31
|
+
const requestedFor = currentPrincipal();
|
|
10
32
|
try {
|
|
11
33
|
const result = await identityAttributes.request(params);
|
|
12
|
-
|
|
34
|
+
publishIfCurrent(requestedFor, result);
|
|
13
35
|
return result;
|
|
14
36
|
}
|
|
15
37
|
catch (error) {
|
|
16
|
-
|
|
38
|
+
if (isCurrent(requestedFor))
|
|
39
|
+
setAttributeError(error);
|
|
17
40
|
throw error;
|
|
18
41
|
}
|
|
19
42
|
finally {
|
|
@@ -23,13 +46,15 @@ export function createIdentityAttributeHooks(identityAttributes) {
|
|
|
23
46
|
const requestOpenIdAttributes = useCallback(async (params) => {
|
|
24
47
|
setIsRequestingAttributes(true);
|
|
25
48
|
setAttributeError(null);
|
|
49
|
+
const requestedFor = currentPrincipal();
|
|
26
50
|
try {
|
|
27
51
|
const result = await identityAttributes.requestOpenId(params);
|
|
28
|
-
|
|
52
|
+
publishIfCurrent(requestedFor, result);
|
|
29
53
|
return result;
|
|
30
54
|
}
|
|
31
55
|
catch (error) {
|
|
32
|
-
|
|
56
|
+
if (isCurrent(requestedFor))
|
|
57
|
+
setAttributeError(error);
|
|
33
58
|
throw error;
|
|
34
59
|
}
|
|
35
60
|
finally {
|
|
@@ -40,6 +65,23 @@ export function createIdentityAttributeHooks(identityAttributes) {
|
|
|
40
65
|
setAttributes(null);
|
|
41
66
|
setAttributeError(null);
|
|
42
67
|
}, []);
|
|
68
|
+
// Decoded attributes are the signed-in user's personal data — a name, an
|
|
69
|
+
// email. They used to survive a sign-out or a switch to another account,
|
|
70
|
+
// so the next person to look at the screen saw the previous user's details.
|
|
71
|
+
// Drop them whenever the principal behind them changes.
|
|
72
|
+
const attributedPrincipal = useRef(undefined);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
const { authentication } = identityAttributes;
|
|
75
|
+
attributedPrincipal.current ?? (attributedPrincipal.current = currentPrincipal());
|
|
76
|
+
return authentication.subscribeAuthState(() => {
|
|
77
|
+
const principal = currentPrincipal();
|
|
78
|
+
if (principal === attributedPrincipal.current)
|
|
79
|
+
return;
|
|
80
|
+
attributedPrincipal.current = principal;
|
|
81
|
+
setAttributes(null);
|
|
82
|
+
setAttributeError(null);
|
|
83
|
+
});
|
|
84
|
+
}, []);
|
|
43
85
|
return {
|
|
44
86
|
requestAttributes,
|
|
45
87
|
requestOpenIdAttributes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createIdentityAttributeHooks.js","sourceRoot":"","sources":["../../src/auth/createIdentityAttributeHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"createIdentityAttributeHooks.js","sourceRoot":"","sources":["../../src/auth/createIdentityAttributeHooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,16 @@ export interface InfiniteQueryConfig<Service = BaseActor, Method extends Functio
|
|
|
55
55
|
initialPageParam: TPageParam;
|
|
56
56
|
/** Function to get args from page parameter */
|
|
57
57
|
getArgs: (pageParam: TPageParam) => ReactorArgs<Service, Method, Transform>;
|
|
58
|
+
/**
|
|
59
|
+
* Narrows what the cache key derives from the call arguments.
|
|
60
|
+
*
|
|
61
|
+
* By default the key is scoped by `getArgs(initialPageParam)`, so two
|
|
62
|
+
* infinite queries on the same method with different arguments stay in
|
|
63
|
+
* separate cache entries. Supply this when those args embed the cursor and
|
|
64
|
+
* only part of them identifies the query — return the stable, serializable
|
|
65
|
+
* portion (typically everything except the pagination field).
|
|
66
|
+
*/
|
|
67
|
+
getKeyArgs?: (args: ReactorArgs<Service, Method, Transform>) => unknown;
|
|
58
68
|
/** Function to determine next page parameter */
|
|
59
69
|
getNextPageParam: (lastPage: InfiniteQueryPageData<Service, Method, Transform>, allPages: InfiniteQueryPageData<Service, Method, Transform>[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
|
|
60
70
|
/** Function to determine previous page parameter (for bi-directional) */
|
|
@@ -63,15 +73,7 @@ export interface InfiniteQueryConfig<Service = BaseActor, Method extends Functio
|
|
|
63
73
|
/**
|
|
64
74
|
* Configuration for createActorInfiniteQueryFactory (without initialPageParam, getArgs determined at call time).
|
|
65
75
|
*/
|
|
66
|
-
export type InfiniteQueryFactoryConfig<Service = BaseActor, Method extends FunctionName<Service> = FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown, Selected = InfiniteData<InfiniteQueryPageData<Service, Method, Transform>, TPageParam>> = Omit<InfiniteQueryConfig<Service, Method, Transform, TPageParam, Selected>, "getArgs"
|
|
67
|
-
/**
|
|
68
|
-
* Optional key-args derivation for factory calls.
|
|
69
|
-
* Receives the resolved args from `getArgs(initialPageParam)` and should return
|
|
70
|
-
* a stable serializable representation of the logical query identity
|
|
71
|
-
* (typically excluding pagination/cursor fields).
|
|
72
|
-
*/
|
|
73
|
-
getKeyArgs?: (args: ReactorArgs<Service, Method, Transform>) => unknown;
|
|
74
|
-
};
|
|
76
|
+
export type InfiniteQueryFactoryConfig<Service = BaseActor, Method extends FunctionName<Service> = FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown, Selected = InfiniteData<InfiniteQueryPageData<Service, Method, Transform>, TPageParam>> = Omit<InfiniteQueryConfig<Service, Method, Transform, TPageParam, Selected>, "getArgs">;
|
|
75
77
|
/**
|
|
76
78
|
* useInfiniteQuery hook with chained select support.
|
|
77
79
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"createInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"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"}
|