@passlock/client 2.1.0 → 2.3.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 (45) hide show
  1. package/dist/index.d.ts +118 -22
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +123 -21
  4. package/dist/index.js.map +1 -1
  5. package/dist/internal/network.d.ts +14 -1
  6. package/dist/internal/network.d.ts.map +1 -1
  7. package/dist/internal/network.js +11 -1
  8. package/dist/internal/network.js.map +1 -1
  9. package/dist/internal/promise.d.ts +7 -3
  10. package/dist/internal/promise.d.ts.map +1 -1
  11. package/dist/internal/promise.js +9 -5
  12. package/dist/internal/promise.js.map +1 -1
  13. package/dist/internal/result.d.ts +33 -0
  14. package/dist/internal/result.d.ts.map +1 -0
  15. package/dist/internal/result.js +35 -0
  16. package/dist/internal/result.js.map +1 -0
  17. package/dist/logger.d.ts +11 -5
  18. package/dist/logger.d.ts.map +1 -1
  19. package/dist/logger.js +11 -5
  20. package/dist/logger.js.map +1 -1
  21. package/dist/options.d.ts +5 -5
  22. package/dist/options.d.ts.map +1 -1
  23. package/dist/passkey/authentication/authentication.d.ts +11 -4
  24. package/dist/passkey/authentication/authentication.d.ts.map +1 -1
  25. package/dist/passkey/authentication/authentication.js +5 -2
  26. package/dist/passkey/authentication/authentication.js.map +1 -1
  27. package/dist/passkey/errors.d.ts +19 -13
  28. package/dist/passkey/errors.d.ts.map +1 -1
  29. package/dist/passkey/errors.js +16 -16
  30. package/dist/passkey/errors.js.map +1 -1
  31. package/dist/passkey/registration/registration.d.ts +7 -4
  32. package/dist/passkey/registration/registration.d.ts.map +1 -1
  33. package/dist/passkey/registration/registration.js +4 -4
  34. package/dist/passkey/registration/registration.js.map +1 -1
  35. package/dist/passkey/shared.d.ts +16 -4
  36. package/dist/passkey/shared.d.ts.map +1 -1
  37. package/dist/passkey/signals/signals.d.ts +219 -29
  38. package/dist/passkey/signals/signals.d.ts.map +1 -1
  39. package/dist/passkey/signals/signals.js +144 -24
  40. package/dist/passkey/signals/signals.js.map +1 -1
  41. package/dist/safe.d.ts +181 -60
  42. package/dist/safe.d.ts.map +1 -1
  43. package/dist/safe.js +179 -54
  44. package/dist/safe.js.map +1 -1
  45. package/package.json +7 -7
@@ -33,7 +33,7 @@ export interface RegistrationOptions extends PasslockOptions {
33
33
  * or "John Doe (personal)". **note:** There's no guarantee browsers/devices
34
34
  * will choose to display this property.
35
35
  */
36
- userDisplayName?: string | undefined;
36
+ displayName?: string | undefined;
37
37
  /**
38
38
  * Prevents the user registering a passkey if they already have one
39
39
  * (associated with the same user account) registered on the current device.
@@ -74,6 +74,9 @@ export type RegistrationSuccess = {
74
74
  * Discriminator for use in a discriminated union.
75
75
  */
76
76
  _tag: "RegistrationSuccess";
77
+ /**
78
+ * Passlock identifiers for the newly registered passkey.
79
+ */
77
80
  principal: Principal;
78
81
  /**
79
82
  * A signed JWT representing the newly registered passkey.
@@ -129,19 +132,19 @@ export type RegistrationError = PasskeyUnsupportedError | DuplicatePasskeyError
129
132
  */
130
133
  export declare const registerPasskey: (options: RegistrationOptions) => Micro.Micro<RegistrationSuccess, RegistrationError, Logger | RegistrationHelper>;
131
134
  /**
132
- * Type of the registration event
135
+ * All registration lifecycle events emitted by {@link registerPasskey}.
133
136
  *
134
137
  * @category Passkeys (other)
135
138
  */
136
139
  export declare const RegistrationEvents: readonly ["optionsRequest", "createCredential", "saveCredential"];
137
140
  /**
138
- * Type of the registration event
141
+ * Registration lifecycle event name.
139
142
  *
140
143
  * @category Passkeys (other)
141
144
  */
142
145
  export type RegistrationEvent = "optionsRequest" | "createCredential" | "saveCredential";
143
146
  /**
144
- * Callback to receive registration lifecycle events.
147
+ * Callback invoked when registration reaches a lifecycle event.
145
148
  *
146
149
  * @category Passkeys (other)
147
150
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../src/passkey/registration/registration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../src/passkey/registration/registration.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as Helper from "@simplewebauthn/browser";
2
2
  import { WebAuthnError, } from "@simplewebauthn/browser";
3
3
  import { Context, Micro, pipe } from "effect";
4
- import { Endpoint, makeEndpoint, makeRequest, TenancyId } from "../../internal/index.js";
4
+ import { Endpoint, makeEndpoint, makeRequest, TenancyId, } from "../../internal/index.js";
5
5
  import { Logger } from "../../logger.js";
6
6
  import { DuplicatePasskeyError, OtherPasskeyError, PasskeyUnsupportedError, } from "../errors.js";
7
7
  /**
@@ -55,14 +55,14 @@ export const fetchOptions = (options) => Micro.gen(function* () {
55
55
  const logger = yield* Micro.service(Logger);
56
56
  const { endpoint } = yield* Micro.service(Endpoint);
57
57
  const { tenancyId } = yield* Micro.service(TenancyId);
58
- const { username, userDisplayName, excludeCredentials, userVerification, timeout, onEvent, } = options;
58
+ const { username, displayName, excludeCredentials, userVerification, timeout, onEvent, } = options;
59
59
  const url = new URL(`${tenancyId}/passkey/registration/options`, endpoint);
60
60
  onEvent?.("optionsRequest");
61
61
  yield* logger.logInfo("Fetching passkey registration options from Passlock");
62
62
  const payload = {
63
63
  excludeCredentials,
64
64
  timeout,
65
- userDisplayName,
65
+ displayName,
66
66
  username,
67
67
  userVerification,
68
68
  };
@@ -145,7 +145,7 @@ export const registerPasskey = (options) => {
145
145
  return pipe(effect, Micro.provideService(TenancyId, options), Micro.provideService(Endpoint, endpoint));
146
146
  };
147
147
  /**
148
- * Type of the registration event
148
+ * All registration lifecycle events emitted by {@link registerPasskey}.
149
149
  *
150
150
  * @category Passkeys (other)
151
151
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/passkey/registration/registration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/passkey/registration/registration.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,30 @@
1
1
  /**
2
- * https://w3c.github.io/webauthn/#user-verification
2
+ * WebAuthn user-verification preference passed to registration and
3
+ * authentication ceremonies.
3
4
  *
4
5
  * @see {@link https://passlock.dev/passkeys/user-verification/ User verification (main docs site)}
6
+ * @see {@link https://w3c.github.io/webauthn/#enumdef-userverificationrequirement WebAuthn specification}
5
7
  *
6
8
  * @category Passkeys (core)
7
9
  */
8
10
  export type UserVerification = "discouraged" | "preferred" | "required";
9
11
  /**
10
- * https://w3c.github.io/webauthn/#enumdef-publickeycredentialhint
12
+ * Browser hint describing the authenticator transport the UI should prefer.
13
+ *
14
+ * @see {@link https://w3c.github.io/webauthn/#enumdef-publickeycredentialhint WebAuthn specification}
11
15
  */
12
16
  export type PublicKeyCredentialHint = "hybrid" | "security-key" | "client-device";
13
17
  /**
14
- * https://www.iana.org/assignments/webauthn/webauthn.xhtml#webauthn-attestation-statement-format-ids
18
+ * IANA-registered WebAuthn attestation statement format identifier.
19
+ *
20
+ * @see {@link https://www.iana.org/assignments/webauthn/webauthn.xhtml#webauthn-attestation-statement-format-ids IANA registry}
15
21
  */
16
22
  export type AttestationFormat = "fido-u2f" | "packed" | "android-safetynet" | "android-key" | "tpm" | "apple" | "none";
17
23
  /**
18
- * https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson
24
+ * JSON-serializable variant of
25
+ * `PublicKeyCredentialCreationOptions`.
26
+ *
27
+ * @see {@link https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson WebAuthn specification}
19
28
  */
20
29
  export type PublicKeyCredentialCreationOptionsJSON = {
21
30
  rp: PublicKeyCredentialRpEntity;
@@ -30,5 +39,8 @@ export type PublicKeyCredentialCreationOptionsJSON = {
30
39
  attestationFormats?: Array<AttestationFormat>;
31
40
  extensions?: AuthenticationExtensionsClientInputs;
32
41
  };
42
+ /**
43
+ * Duration in milliseconds.
44
+ */
33
45
  export type Millis = number;
34
46
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/passkey/shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;AAEvE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B,QAAQ,GACR,cAAc,GACd,eAAe,CAAA;AAEnB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,QAAQ,GACR,mBAAmB,GACnB,aAAa,GACb,KAAK,GACL,OAAO,GACP,MAAM,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,sCAAsC,GAAG;IACnD,EAAE,EAAE,2BAA2B,CAAA;IAC/B,IAAI,EAAE,iCAAiC,CAAA;IACvC,SAAS,EAAE,eAAe,CAAA;IAC1B,gBAAgB,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAA;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,CAAC,EAAE,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAC7D,sBAAsB,CAAC,EAAE,8BAA8B,CAAA;IACvD,KAAK,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE,+BAA+B,CAAA;IAC7C,kBAAkB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC7C,UAAU,CAAC,EAAE,oCAAoC,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/passkey/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;AAEvE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAC/B,QAAQ,GACR,cAAc,GACd,eAAe,CAAA;AAEnB;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,QAAQ,GACR,mBAAmB,GACnB,aAAa,GACb,KAAK,GACL,OAAO,GACP,MAAM,CAAA;AAEV;;;;;GAKG;AACH,MAAM,MAAM,sCAAsC,GAAG;IACnD,EAAE,EAAE,2BAA2B,CAAA;IAC/B,IAAI,EAAE,iCAAiC,CAAA;IACvC,SAAS,EAAE,eAAe,CAAA;IAC1B,gBAAgB,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAA;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,CAAC,EAAE,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAC7D,sBAAsB,CAAC,EAAE,8BAA8B,CAAA;IACvD,KAAK,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE,+BAA+B,CAAA;IAC7C,kBAAkB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC7C,UAAU,CAAC,EAAE,oCAAoC,CAAA;CAClD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA"}
@@ -3,42 +3,109 @@ import { Logger } from "../../logger.js";
3
3
  import type { PasslockOptions } from "../../options.js";
4
4
  import { DeleteError, type OrphanedPasskeyError, PruningError, UpdateError } from "../errors.js";
5
5
  /**
6
- * Does the current device support local passkey removal
6
+ * Detect support for browser-driven local passkey removal via
7
+ * `PublicKeyCredential.signalUnknownCredential`.
7
8
  */
8
9
  export declare const isPasskeyDeleteSupport: Micro.Micro<boolean, never, never>;
9
10
  /**
10
- * Does the current device support local passkey pruning
11
+ * Detect support for browser-driven passkey pruning via
12
+ * `PublicKeyCredential.signalAllAcceptedCredentials`.
11
13
  */
12
14
  export declare const isPasskeyPruningSupport: Micro.Micro<boolean, never, never>;
13
15
  /**
14
- * Does the current device support local passkey updates
16
+ * Detect support for browser-driven passkey user-detail updates via
17
+ * `PublicKeyCredential.signalCurrentUserDetails`.
15
18
  */
16
19
  export declare const isPasskeyUpdateSupport: Micro.Micro<boolean, never, never>;
20
+ /**
21
+ * Delete a local passkey by Passlock passkey ID.
22
+ *
23
+ * The library uses the tenancy information to look up the credential metadata
24
+ * before signalling the browser.
25
+ *
26
+ * @see {@link deletePasskey}
27
+ * @category Passkeys (core)
28
+ */
17
29
  export interface DeletePasskeyOptions extends PasslockOptions {
30
+ /**
31
+ * Passlock passkey ID (authenticator ID).
32
+ */
18
33
  passkeyId: string;
19
34
  }
20
- export interface DeleteCredentialOptions extends PasslockOptions {
35
+ /**
36
+ * Delete a local passkey using credential metadata you already have.
37
+ *
38
+ * This shape is typically produced by `@passlock/server`'s
39
+ * `deleteUserPasskeys` helper, so the browser can be signalled without an
40
+ * extra Passlock lookup.
41
+ *
42
+ * @see {@link deletePasskey}
43
+ * @see {@link deleteUserPasskeys}
44
+ * @category Passkeys (core)
45
+ */
46
+ export type DeleteCredentialOptions = {
47
+ /**
48
+ * WebAuthn credential ID.
49
+ */
21
50
  credentialId: string;
51
+ /**
52
+ * Credential user ID.
53
+ */
22
54
  userId: string;
55
+ /**
56
+ * Relying party ID.
57
+ */
23
58
  rpId: string;
24
- }
59
+ };
25
60
  /**
26
- * Instruct the device to remove a passkey. E.g. attempt to remove it from
27
- * Apple Password Manager / iCloud.
61
+ * Instruct the browser to remove a local passkey, for example from a password
62
+ * manager.
63
+ *
64
+ * If you pass a Passlock `passkeyId`, the library first fetches the associated
65
+ * credential metadata from Passlock. If you pass a credential payload or
66
+ * {@link OrphanedPasskeyError}, it can signal the browser directly.
67
+ * Support and metadata lookup failures are surfaced as {@link DeleteError}.
68
+ * Browser-side signalling failures are logged as warnings and do not fail the
69
+ * effect.
28
70
  *
29
71
  * @param options Passkey identifier/credential details and Passlock tenancy options.
30
- * @returns A Micro effect that resolves with a {@link DeleteSuccess} or fails with {@link DeleteError}.
72
+ * @returns A Micro effect that resolves with a {@link DeleteSuccess} once the
73
+ * local removal workflow has been started.
31
74
  */
32
75
  export declare const deletePasskey: (options: DeletePasskeyOptions | DeleteCredentialOptions | OrphanedPasskeyError) => Micro.Micro<DeleteSuccess, DeleteError, Logger>;
76
+ /**
77
+ * Keep only the listed Passlock passkeys for a user on the current device.
78
+ *
79
+ * The library resolves those passkey IDs to the accepted WebAuthn credential
80
+ * list before signalling the browser.
81
+ *
82
+ * @see {@link prunePasskeys}
83
+ * @category Passkeys (core)
84
+ */
33
85
  export interface PrunePasskeyOptions extends PasslockOptions {
86
+ /**
87
+ * Passlock passkey IDs that should remain available on this device.
88
+ */
34
89
  allowablePasskeyIds: Array<string>;
35
90
  }
91
+ /**
92
+ * Indicates the library finished the accepted-credentials signalling flow.
93
+ * This does not guarantee the browser removed any local passkeys.
94
+ *
95
+ * @category Passkeys (core)
96
+ */
36
97
  export type PruningSuccess = {
37
98
  _tag: "PruningSuccess";
38
99
  };
100
+ /**
101
+ * Type guard for {@link PruningSuccess}.
102
+ *
103
+ * @category Passkeys (other)
104
+ */
39
105
  export declare const isPruningSuccess: (payload: unknown) => payload is PruningSuccess;
40
106
  /**
41
- * Given a list of passkey IDs, instruct the device to remove any redundant passkeys.
107
+ * Given a list of passkey IDs to keep, instruct the device to remove any
108
+ * redundant passkeys for the same account on the same relying party.
42
109
  *
43
110
  * Note: this will only remove redundant passkeys (based on the userId).
44
111
  *
@@ -52,8 +119,13 @@ export declare const isPruningSuccess: (payload: unknown) => payload is PruningS
52
119
  * jdoe@gmail.com account and remove passkey2. However as passkey3 is registered to a
53
120
  * different account, the device will retain it.
54
121
  *
122
+ * Support and metadata lookup failures are surfaced as {@link PruningError}.
123
+ * Browser-side signalling failures are logged as warnings and do not fail the
124
+ * effect.
125
+ *
55
126
  * @param options Passlock tenancy/endpoint options and the passkey IDs to keep.
56
- * @returns A Micro effect that resolves with a {@link PruningSuccess} or fails with {@link PruningError}.
127
+ * @returns A Micro effect that resolves with a {@link PruningSuccess} once the
128
+ * accepted-credentials signalling attempt has completed.
57
129
  */
58
130
  export declare const prunePasskeys: (options: PrunePasskeyOptions) => Micro.Micro<PruningSuccess, PruningError, Logger>;
59
131
  /**
@@ -65,43 +137,104 @@ export declare const prunePasskeys: (options: PrunePasskeyOptions) => Micro.Micr
65
137
  */
66
138
  export interface UpdatePasskeyOptions extends PasslockOptions {
67
139
  /**
68
- * The Passlock passkey id
140
+ * The Passlock passkey ID (authenticator ID).
69
141
  */
70
142
  passkeyId: string;
71
143
  /**
72
- * New username
144
+ * New username shown alongside the passkey.
73
145
  */
74
146
  username: string;
75
147
  /**
76
- * New display name
148
+ * New display name shown alongside the passkey.
77
149
  */
78
150
  displayName?: string | undefined;
79
151
  }
80
152
  /**
81
- * Used when you want to update one or more passkeys by the Credential User ID i.e. the
82
- * immutable Base64Url encoded binary ID.
153
+ * Used when you want to update one or more passkeys by the credential user ID,
154
+ * that is the immutable Base64Url-encoded binary ID.
155
+ *
156
+ * This shape is usually returned by `@passlock/server`'s
157
+ * `updatePasskeyUsernames` helper and does not include tenancy or endpoint
158
+ * configuration.
83
159
  *
84
160
  * @see {@link updatePasskey}
85
161
  * @see {@link https://passlock.dev/rest-api/credential/ The Credential property (main docs site)}
86
162
  *
87
163
  * @category Passkeys (core)
88
164
  */
89
- export interface UpdateCredentialOptions extends PasslockOptions {
165
+ export interface UpdateCredentialOptions {
166
+ /**
167
+ * Credential user ID.
168
+ */
90
169
  userId: string;
170
+ /**
171
+ * Relying party identifier for the passkey.
172
+ */
91
173
  rpId: string;
92
174
  /**
93
- * New username
175
+ * New username shown alongside the passkey.
94
176
  */
95
177
  username: string;
96
178
  /**
97
- * New display name
179
+ * New display name shown alongside the passkey.
98
180
  */
99
181
  displayName?: string | undefined;
100
182
  }
183
+ /**
184
+ * Indicates the library finished the local passkey update signalling flow.
185
+ *
186
+ * @category Passkeys (core)
187
+ */
101
188
  export type UpdateSuccess = {
102
189
  _tag: "UpdateSuccess";
103
190
  };
191
+ /**
192
+ * Type guard for {@link UpdateSuccess}.
193
+ *
194
+ * @category Passkeys (other)
195
+ */
104
196
  export declare const isUpdateSuccess: (payload: unknown) => payload is UpdateSuccess;
197
+ /**
198
+ * Update the username and/or display name for multiple local passkeys.
199
+ *
200
+ * Note: this is purely informational. It does not change any passkey
201
+ * identifiers.
202
+ *
203
+ * The typical use case is when a user changes their account email. You would
204
+ * update the username in your backend system, then pass the returned
205
+ * credential list into this function so the same account label is shown in the
206
+ * user's password manager.
207
+ *
208
+ * Support failures are surfaced as {@link UpdateError}. Browser-side
209
+ * signalling failures are logged as warnings and do not fail the effect.
210
+ *
211
+ * @param options Credential identifiers plus the updated username/display name,
212
+ * typically taken from `@passlock/server`'s `updatePasskeyUsernames`
213
+ * response.
214
+ * @returns A Micro effect that resolves with a {@link UpdateSuccess} once the
215
+ * local update workflows have been started.
216
+ */
217
+ export declare const updatePasskeyUsernames: (options: ReadonlyArray<UpdateCredentialOptions>) => Micro.Micro<{
218
+ readonly _tag: "UpdateSuccess";
219
+ }, UpdateError, Logger>;
220
+ /**
221
+ * Delete multiple local passkeys using credentials previously returned from
222
+ * your backend.
223
+ *
224
+ * The typical flow is to delete the server-side passkeys first, then pass the
225
+ * returned `deleted` array into this function so the user’s password manager is
226
+ * updated too.
227
+ *
228
+ * Support failures are surfaced as {@link DeleteError}. Browser-side
229
+ * signalling failures are logged as warnings and do not fail the effect.
230
+ *
231
+ * @param options Credentials derived from deleted server-side passkeys.
232
+ * @returns A Micro effect that resolves with a {@link DeleteSuccess} once the
233
+ * local removal workflows have been started.
234
+ */
235
+ export declare const deleteUserPasskeys: (options: ReadonlyArray<Credential>) => Micro.Micro<{
236
+ readonly _tag: "DeleteSuccess";
237
+ }, DeleteError, Logger>;
105
238
  /**
106
239
  * Update a passkey e.g. change the username and/or display name.
107
240
  * Note: this is purely informational, it does not change any identifiers.
@@ -110,18 +243,40 @@ export declare const isUpdateSuccess: (payload: unknown) => payload is UpdateSuc
110
243
  * device local passkey. Otherwise the passkey associated with your new-name@gmail.com
111
244
  * account would still show up in their password manager as old-name@gmail.com.
112
245
  *
246
+ * Support and metadata lookup failures are surfaced as {@link UpdateError}.
247
+ * Browser-side signalling failures are logged as warnings and do not fail the
248
+ * effect.
249
+ *
113
250
  * @param options Passkey update options.
114
- * @returns A Micro effect that resolves with a {@link UpdateSuccess} or fails with {@link UpdateError}.
251
+ * @returns A Micro effect that resolves with a {@link UpdateSuccess} once the
252
+ * local update workflow has been started.
115
253
  */
116
254
  export declare const updatePasskey: (options: UpdatePasskeyOptions | UpdateCredentialOptions) => Micro.Micro<{
117
255
  readonly _tag: "UpdateSuccess";
118
256
  }, UpdateError, Logger>;
119
- export type CredentialMapping = {
257
+ /**
258
+ * Credential metadata required to target a local passkey on the device.
259
+ *
260
+ * @category Passkeys (core)
261
+ */
262
+ export type Credential = {
263
+ /**
264
+ * WebAuthn credential ID.
265
+ */
120
266
  credentialId: string;
267
+ /**
268
+ * Credential user ID.
269
+ */
121
270
  userId: string;
271
+ /**
272
+ * Relying party ID.
273
+ */
122
274
  rpId: string;
123
275
  };
124
- export type CredentialMappings = {
276
+ /**
277
+ * Accepted credential list for a single user on a relying party.
278
+ */
279
+ export type UserCredentials = {
125
280
  rpId: string;
126
281
  userId: string;
127
282
  allAcceptedCredentialIds: string[];
@@ -131,28 +286,63 @@ type IPasskeyNotFound = {
131
286
  credentialId: string;
132
287
  rpId: string;
133
288
  };
289
+ /**
290
+ * Indicates the library finished preparing local passkey removal signalling.
291
+ * This does not guarantee the browser removed the passkey.
292
+ *
293
+ * @category Passkeys (core)
294
+ */
134
295
  export type DeleteSuccess = {
135
296
  _tag: "DeleteSuccess";
136
297
  };
298
+ /**
299
+ * Type guard for {@link DeleteSuccess}.
300
+ *
301
+ * @category Passkeys (other)
302
+ */
137
303
  export declare const isDeleteSuccess: (payload: unknown) => payload is DeleteSuccess;
138
304
  /**
139
- * Tell the client device to remove a given credential
305
+ * Attempt a browser removal signal for a credential.
140
306
  *
141
- * @param credential Credential mapping or missing-passkey payload.
142
- * @returns A Micro effect that resolves with a {@link DeleteSuccess} or fails with {@link DeleteError}.
307
+ * Support failures are surfaced as {@link DeleteError}. Browser-side
308
+ * signalling failures are logged as warnings and do not fail the effect.
309
+ *
310
+ * @param credential Credential or missing-passkey payload.
311
+ * @returns A Micro effect that resolves with a {@link DeleteSuccess} once the
312
+ * local removal workflow has been started.
143
313
  */
144
- export declare const signalCredentialRemoval: (credential: CredentialMapping | IPasskeyNotFound) => Micro.Micro<DeleteSuccess, DeleteError, Logger>;
314
+ export declare const signalCredentialRemoval: (credential: Credential | IPasskeyNotFound) => Micro.Micro<DeleteSuccess, DeleteError, Logger>;
145
315
  /**
146
- * Tell the client device which credentials are still accepted for a user.
316
+ * Tell the browser which credentials are still accepted for a user.
317
+ *
318
+ * Support failures are surfaced as {@link PruningError}. Browser-side
319
+ * signalling failures are logged as warnings and do not fail the effect.
147
320
  *
148
- * @param credentials Accepted credential mapping for the user.
149
- * @returns A Micro effect that resolves with a {@link PruningSuccess} or fails with {@link PruningError}.
321
+ * @param credentials Accepted credentials for the user.
322
+ * @returns A Micro effect that resolves with a {@link PruningSuccess} once the
323
+ * accepted-credentials signalling attempt has completed.
324
+ */
325
+ export declare const signalAcceptedCredentials: (credentials: UserCredentials) => Micro.Micro<PruningSuccess, PruningError, Logger>;
326
+ /**
327
+ * Credential identity needed to update the user-visible details for a local
328
+ * passkey.
150
329
  */
151
- export declare const signalAcceptedCredentials: (credentials: CredentialMappings) => Micro.Micro<PruningSuccess, PruningError, Logger>;
152
330
  export type CredentialUserId = {
153
331
  userId: string;
154
332
  rpId: string;
155
333
  };
334
+ /**
335
+ * Tell the browser to refresh the username and display name shown for a local
336
+ * passkey.
337
+ *
338
+ * Support failures are surfaced as {@link UpdateError}. Browser-side
339
+ * signalling failures are logged as warnings and do not fail the effect.
340
+ *
341
+ * @param credential Credential identity used to find the passkey.
342
+ * @param updates Updated username/display-name values.
343
+ * @returns A Micro effect that resolves with an {@link UpdateSuccess} once the
344
+ * local update workflow has been started.
345
+ */
156
346
  export declare const signalCurrentUserDetails: (credential: CredentialUserId, updates: Pick<UpdatePasskeyOptions, "username" | "displayName">) => Micro.Micro<{
157
347
  readonly _tag: "UpdateSuccess";
158
348
  }, UpdateError, Logger>;
@@ -1 +1 @@
1
- {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../../src/passkey/signals/signals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAA;AAGpC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EACL,WAAW,EACX,KAAK,oBAAoB,EACzB,YAAY,EACZ,WAAW,EACZ,MAAM,cAAc,CAAA;AAErB;;GAEG;AACH,eAAO,MAAM,sBAAsB,oCAKjC,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,oCAKlC,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,oCAKjC,CAAA;AAEF,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,oBAAoB,GAAG,uBAAuB,GAAG,oBAAoB,oDAmB5E,CAAA;AAkCJ,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,gBAAgB,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,SAAS,OAAO,KACf,OAAO,IAAI,cAMb,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,mBAAmB,sDA2CtD,CAAA;AAEJ;;;;;;GAMG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,OAAO,IAAI,aAM7D,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,oBAAoB,GAAG,uBAAuB;;uBAmBrD,CAAA;AAoCJ,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAoBD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,wBAAwB,EAAE,MAAM,EAAE,CAAA;CACnC,CAAA;AAoBD,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,OAAO,IAAI,aAM7D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,YAAY,iBAAiB,GAAG,gBAAgB,KAC/C,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAqC7C,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,aAAa,kBAAkB,KAC9B,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,EAAE,MAAM,CAqC/C,CAAA;AAEJ,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,YAAY,gBAAgB,EAC5B,SAAS,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,aAAa,CAAC;;uBAyC7D,CAAA"}
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../../src/passkey/signals/signals.ts"],"names":[],"mappings":"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"}