@passlock/client 2.0.1 → 2.0.3
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 +2 -2
- package/README.template.md +2 -2
- package/dist/index.d.ts +235 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +237 -36
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +4 -0
- package/dist/internal/index.d.ts.map +1 -0
- package/dist/internal/index.js +4 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/{shared → internal}/network.d.ts +19 -16
- package/dist/internal/network.d.ts.map +1 -0
- package/dist/{shared → internal}/network.js +41 -24
- package/dist/internal/network.js.map +1 -0
- package/dist/{shared → internal}/promise.d.ts +2 -2
- package/dist/internal/promise.d.ts.map +1 -0
- package/dist/{shared → internal}/promise.js +2 -2
- package/dist/internal/promise.js.map +1 -0
- package/dist/internal/tenancy.d.ts.map +1 -0
- package/dist/internal/tenancy.js.map +1 -0
- package/dist/{logger/index.d.ts → logger.d.ts} +19 -4
- package/dist/logger.d.ts.map +1 -0
- package/dist/{logger/index.js → logger.js} +23 -8
- package/dist/logger.js.map +1 -0
- package/dist/{shared/options.d.ts → options.d.ts} +4 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/{shared/options.js.map → options.js.map} +1 -1
- package/dist/passkey/authentication/authentication.d.ts +145 -0
- package/dist/passkey/authentication/authentication.d.ts.map +1 -0
- package/dist/passkey/{authentication.js → authentication/authentication.js} +70 -52
- package/dist/passkey/authentication/authentication.js.map +1 -0
- package/dist/passkey/errors.d.ts +150 -15
- package/dist/passkey/errors.d.ts.map +1 -1
- package/dist/passkey/errors.js +209 -8
- package/dist/passkey/errors.js.map +1 -1
- package/dist/passkey/registration/registration.d.ts +149 -0
- package/dist/passkey/registration/registration.d.ts.map +1 -0
- package/dist/passkey/{registration.js → registration/registration.js} +46 -36
- package/dist/passkey/registration/registration.js.map +1 -0
- package/dist/passkey/shared.d.ts +10 -2
- package/dist/passkey/shared.d.ts.map +1 -1
- package/dist/passkey/signals/signals.d.ts +160 -0
- package/dist/passkey/signals/signals.d.ts.map +1 -0
- package/dist/passkey/{signals.js → signals/signals.js} +123 -84
- package/dist/passkey/signals/signals.js.map +1 -0
- package/dist/passkey/support.d.ts +15 -0
- package/dist/passkey/support.d.ts.map +1 -1
- package/dist/passkey/support.js +16 -1
- package/dist/passkey/support.js.map +1 -1
- package/dist/principal.d.ts +19 -0
- package/dist/principal.d.ts.map +1 -0
- package/dist/principal.js +2 -0
- package/dist/principal.js.map +1 -0
- package/dist/safe.d.ts +267 -0
- package/dist/safe.d.ts.map +1 -0
- package/dist/safe.js +275 -0
- package/dist/safe.js.map +1 -0
- package/package.json +22 -20
- package/dist/logger/index.d.ts.map +0 -1
- package/dist/logger/index.js.map +0 -1
- package/dist/passkey/authentication.d.ts +0 -118
- package/dist/passkey/authentication.d.ts.map +0 -1
- package/dist/passkey/authentication.js.map +0 -1
- package/dist/passkey/authentication.test.d.ts +0 -2
- package/dist/passkey/authentication.test.d.ts.map +0 -1
- package/dist/passkey/authentication.test.js +0 -157
- package/dist/passkey/authentication.test.js.map +0 -1
- package/dist/passkey/registration.d.ts +0 -136
- package/dist/passkey/registration.d.ts.map +0 -1
- package/dist/passkey/registration.js.map +0 -1
- package/dist/passkey/registration.test.d.ts +0 -2
- package/dist/passkey/registration.test.d.ts.map +0 -1
- package/dist/passkey/registration.test.js +0 -161
- package/dist/passkey/registration.test.js.map +0 -1
- package/dist/passkey/signals.d.ts +0 -113
- package/dist/passkey/signals.d.ts.map +0 -1
- package/dist/passkey/signals.js.map +0 -1
- package/dist/shared/network.d.ts.map +0 -1
- package/dist/shared/network.js.map +0 -1
- package/dist/shared/options.d.ts.map +0 -1
- package/dist/shared/promise.d.ts.map +0 -1
- package/dist/shared/promise.js.map +0 -1
- package/dist/shared/tenancy.d.ts.map +0 -1
- package/dist/shared/tenancy.js.map +0 -1
- package/dist/surface.test.d.ts +0 -2
- package/dist/surface.test.d.ts.map +0 -1
- package/dist/surface.test.js +0 -38
- package/dist/surface.test.js.map +0 -1
- package/dist/unsafe.d.ts +0 -41
- package/dist/unsafe.d.ts.map +0 -1
- package/dist/unsafe.js +0 -52
- package/dist/unsafe.js.map +0 -1
- /package/dist/{shared → internal}/tenancy.d.ts +0 -0
- /package/dist/{shared → internal}/tenancy.js +0 -0
- /package/dist/{shared/options.js → options.js} +0 -0
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { Micro, pipe } from "effect";
|
|
2
2
|
import { encodeUriComponent } from "effect/Encoding";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { makeEndpoint } from "../../internal";
|
|
4
|
+
import { Logger } from "../../logger";
|
|
5
|
+
import { DeleteError, PruningError, UpdateError, } from "../errors";
|
|
5
6
|
/**
|
|
6
7
|
* Does the current device support local passkey removal
|
|
7
8
|
*/
|
|
8
|
-
export const
|
|
9
|
+
export const isPasskeyDeleteSupport = Micro.sync(() => {
|
|
9
10
|
return (PublicKeyCredential?.signalUnknownCredential &&
|
|
10
11
|
typeof PublicKeyCredential.signalUnknownCredential === "function");
|
|
11
12
|
});
|
|
12
13
|
/**
|
|
13
|
-
* Does the current device support local passkey
|
|
14
|
+
* Does the current device support local passkey pruning
|
|
14
15
|
*/
|
|
15
|
-
export const
|
|
16
|
+
export const isPasskeyPruningSupport = Micro.sync(() => {
|
|
16
17
|
return (PublicKeyCredential?.signalAllAcceptedCredentials &&
|
|
17
18
|
typeof PublicKeyCredential.signalAllAcceptedCredentials === "function");
|
|
18
19
|
});
|
|
@@ -23,58 +24,58 @@ export const isPasskeyUpdateSupport = Micro.sync(() => {
|
|
|
23
24
|
return (PublicKeyCredential?.signalCurrentUserDetails &&
|
|
24
25
|
typeof PublicKeyCredential.signalCurrentUserDetails === "function");
|
|
25
26
|
});
|
|
26
|
-
/* Deletion error */
|
|
27
|
-
export const isDeletionError = (err) => err instanceof DeletionError;
|
|
28
|
-
export class DeletionError extends Micro.TaggedError("@error/DeletionError") {
|
|
29
|
-
static isDeletionError = isDeletionError;
|
|
30
|
-
}
|
|
31
|
-
/* Sync error */
|
|
32
|
-
export const isSyncError = (err) => err instanceof SyncError;
|
|
33
|
-
export class SyncError extends Micro.TaggedError("@error/SyncError") {
|
|
34
|
-
static isSyncError = isSyncError;
|
|
35
|
-
}
|
|
36
|
-
/* Update error */
|
|
37
|
-
export const isUpdateError = (err) => err instanceof UpdateError;
|
|
38
|
-
export class UpdateError extends Micro.TaggedError("@error/UpdateError") {
|
|
39
|
-
static isUpdateError = isUpdateError;
|
|
40
|
-
}
|
|
41
27
|
/**
|
|
42
28
|
* Instruct the device to remove a passkey. E.g. attempt to remove it from
|
|
43
29
|
* Apple Password Manager / iCloud.
|
|
44
30
|
*
|
|
45
|
-
* @param
|
|
46
|
-
* @
|
|
47
|
-
* @returns
|
|
31
|
+
* @param options Passkey identifier/credential details and Passlock tenancy options.
|
|
32
|
+
* @returns A Micro effect that resolves with a {@link DeleteSuccess} or fails with {@link DeleteError}.
|
|
48
33
|
*/
|
|
49
|
-
export const deletePasskey = (
|
|
50
|
-
const { tenancyId } = options;
|
|
34
|
+
export const deletePasskey = (options) => Micro.gen(function* () {
|
|
51
35
|
const logger = yield* Micro.service(Logger);
|
|
52
|
-
const { endpoint } = buildEndpoint(options);
|
|
53
36
|
yield* logger.logInfo("Testing for local passkey removal support");
|
|
54
|
-
const canDelete = yield*
|
|
37
|
+
const canDelete = yield* isPasskeyDeleteSupport;
|
|
55
38
|
if (!canDelete)
|
|
56
|
-
return yield* new
|
|
39
|
+
return yield* Micro.fail(new DeleteError({
|
|
57
40
|
code: "PASSKEY_DELETION_UNSUPPORTED",
|
|
58
41
|
message: "Passkey deletion not supported on this device",
|
|
59
|
-
});
|
|
42
|
+
}));
|
|
43
|
+
const credential = "rpId" in options ? options : yield* getCredentialMapping(options);
|
|
44
|
+
return yield* signalCredentialRemoval(credential);
|
|
45
|
+
});
|
|
46
|
+
const getCredentialMapping = (options) => Micro.gen(function* () {
|
|
47
|
+
const { tenancyId } = options;
|
|
48
|
+
const logger = yield* Micro.service(Logger);
|
|
49
|
+
const { endpoint } = makeEndpoint(options);
|
|
60
50
|
yield* logger.logInfo("Fetching passkey credential and rp id");
|
|
61
|
-
const url = new URL(`${tenancyId}/credential/${passkeyId}`, endpoint);
|
|
51
|
+
const url = new URL(`${tenancyId}/credential/${options.passkeyId}`, endpoint);
|
|
62
52
|
const response = yield* Micro.promise(() => fetch(url));
|
|
63
53
|
if (response.status === 404)
|
|
64
|
-
return yield* new
|
|
54
|
+
return yield* Micro.fail(new DeleteError({
|
|
65
55
|
code: "OTHER_ERROR",
|
|
66
56
|
message: "Unable to find the metadata associated with this passkey",
|
|
67
|
-
});
|
|
57
|
+
}));
|
|
68
58
|
const credential = yield* Micro.promise(() => response.json());
|
|
69
59
|
if (!isCredentialMapping(credential))
|
|
70
|
-
return yield* new
|
|
60
|
+
return yield* Micro.fail(new DeleteError({
|
|
71
61
|
code: "OTHER_ERROR",
|
|
72
62
|
message: "Invalid metadata associated with this passkey",
|
|
73
|
-
});
|
|
74
|
-
return
|
|
63
|
+
}));
|
|
64
|
+
return credential;
|
|
75
65
|
});
|
|
66
|
+
export const isPruningSuccess = (payload) => {
|
|
67
|
+
if (typeof payload !== "object")
|
|
68
|
+
return false;
|
|
69
|
+
if (payload === null)
|
|
70
|
+
return false;
|
|
71
|
+
if (!("_tag" in payload))
|
|
72
|
+
return false;
|
|
73
|
+
if (typeof payload._tag !== "string")
|
|
74
|
+
return false;
|
|
75
|
+
return payload._tag === "PruningSuccess";
|
|
76
|
+
};
|
|
76
77
|
/**
|
|
77
|
-
* Given a list of passkey
|
|
78
|
+
* Given a list of passkey IDs, instruct the device to remove any redundant passkeys.
|
|
78
79
|
*
|
|
79
80
|
* Note: this will only remove redundant passkeys (based on the userId).
|
|
80
81
|
*
|
|
@@ -88,76 +89,90 @@ export const deletePasskey = (passkeyId, options) => Micro.gen(function* () {
|
|
|
88
89
|
* jdoe@gmail.com account and remove passkey2. However as passkey3 is registered to a
|
|
89
90
|
* different account, the device will retain it.
|
|
90
91
|
*
|
|
91
|
-
* @param
|
|
92
|
-
* @
|
|
93
|
-
* @returns
|
|
92
|
+
* @param options Passlock tenancy/endpoint options and the passkey IDs to keep.
|
|
93
|
+
* @returns A Micro effect that resolves with a {@link PruningSuccess} or fails with {@link PruningError}.
|
|
94
94
|
*/
|
|
95
|
-
export const
|
|
95
|
+
export const prunePasskeys = (options) => Micro.gen(function* () {
|
|
96
96
|
const { tenancyId } = options;
|
|
97
97
|
const logger = yield* Micro.service(Logger);
|
|
98
|
-
const { endpoint } =
|
|
99
|
-
yield* logger.logInfo("Testing for local passkey
|
|
100
|
-
const canSync = yield*
|
|
98
|
+
const { endpoint } = makeEndpoint(options);
|
|
99
|
+
yield* logger.logInfo("Testing for local passkey pruning support");
|
|
100
|
+
const canSync = yield* isPasskeyPruningSupport;
|
|
101
101
|
if (!canSync)
|
|
102
|
-
return yield* new
|
|
103
|
-
code: "
|
|
102
|
+
return yield* Micro.fail(new PruningError({
|
|
103
|
+
code: "PASSKEY_PRUNING_UNSUPPORTED",
|
|
104
104
|
message: "Passkey deletion not supported on this device",
|
|
105
|
-
});
|
|
105
|
+
}));
|
|
106
106
|
yield* logger.logInfo("Fetching passkey credentials and rp id");
|
|
107
|
-
const encodedPasskeyIds = encodeUriComponent(
|
|
107
|
+
const encodedPasskeyIds = encodeUriComponent(options.allowablePasskeyIds.join(","));
|
|
108
108
|
const url = new URL(`${tenancyId}/credentials/${encodedPasskeyIds}`, endpoint);
|
|
109
109
|
const response = yield* Micro.promise(() => fetch(url));
|
|
110
110
|
if (response.status === 404)
|
|
111
|
-
return yield* new
|
|
111
|
+
return yield* Micro.fail(new PruningError({
|
|
112
112
|
code: "OTHER_ERROR",
|
|
113
113
|
message: "Unable to find the metadata associated with these passkeys",
|
|
114
|
-
});
|
|
114
|
+
}));
|
|
115
115
|
const credentials = yield* Micro.promise(() => response.json());
|
|
116
116
|
if (!isCredentialMappings(credentials))
|
|
117
|
-
return yield* new
|
|
117
|
+
return yield* Micro.fail(new PruningError({
|
|
118
118
|
code: "OTHER_ERROR",
|
|
119
119
|
message: "Invalid metadata associated with one or more passkeys",
|
|
120
|
-
});
|
|
120
|
+
}));
|
|
121
121
|
return yield* signalAcceptedCredentials(credentials);
|
|
122
122
|
});
|
|
123
|
+
export const isUpdateSuccess = (payload) => {
|
|
124
|
+
if (typeof payload !== "object")
|
|
125
|
+
return false;
|
|
126
|
+
if (payload === null)
|
|
127
|
+
return false;
|
|
128
|
+
if (!("_tag" in payload))
|
|
129
|
+
return false;
|
|
130
|
+
if (typeof payload._tag !== "string")
|
|
131
|
+
return false;
|
|
132
|
+
return payload._tag === "UpdateSuccess";
|
|
133
|
+
};
|
|
123
134
|
/**
|
|
124
|
-
* Update a passkey e.g. change the username and
|
|
135
|
+
* Update a passkey e.g. change the username and/or display name.
|
|
125
136
|
* Note: this is purely informational, it does not change any identifiers.
|
|
126
137
|
* The typical use case is when a user changes their account email, you would
|
|
127
138
|
* want to change the username in your backend system and also the user's
|
|
128
139
|
* device local passkey. Otherwise the passkey associated with your new-name@gmail.com
|
|
129
140
|
* account would still show up in their password manager as old-name@gmail.com.
|
|
130
141
|
*
|
|
131
|
-
* @param
|
|
132
|
-
* @
|
|
133
|
-
* @returns
|
|
142
|
+
* @param options Passkey update options.
|
|
143
|
+
* @returns A Micro effect that resolves with a {@link UpdateSuccess} or fails with {@link UpdateError}.
|
|
134
144
|
*/
|
|
135
|
-
export const
|
|
136
|
-
const { tenancyId } = options;
|
|
145
|
+
export const updatePasskey = (options) => Micro.gen(function* () {
|
|
137
146
|
const logger = yield* Micro.service(Logger);
|
|
138
|
-
const { endpoint } = buildEndpoint(options);
|
|
139
147
|
yield* logger.logInfo("Testing for local passkey update support");
|
|
140
148
|
const canUpdate = yield* isPasskeyUpdateSupport;
|
|
141
149
|
if (!canUpdate)
|
|
142
|
-
return yield* new UpdateError({
|
|
150
|
+
return yield* Micro.fail(new UpdateError({
|
|
143
151
|
code: "PASSKEY_UPDATE_UNSUPPORTED",
|
|
144
152
|
message: "Passkey update not supported on this device",
|
|
145
|
-
});
|
|
153
|
+
}));
|
|
154
|
+
const credential = "rpId" in options ? options : yield* getUserCredentialMapping(options);
|
|
155
|
+
return yield* signalCurrentUserDetails(credential, options);
|
|
156
|
+
});
|
|
157
|
+
const getUserCredentialMapping = (options) => Micro.gen(function* () {
|
|
158
|
+
const { tenancyId } = options;
|
|
159
|
+
const logger = yield* Micro.service(Logger);
|
|
160
|
+
const { endpoint } = makeEndpoint(options);
|
|
146
161
|
yield* logger.logInfo("Fetching passkey credential and rp id");
|
|
147
162
|
const url = new URL(`${tenancyId}/credential/${options.passkeyId}`, endpoint);
|
|
148
163
|
const response = yield* Micro.promise(() => fetch(url));
|
|
149
164
|
if (response.status === 404)
|
|
150
|
-
return yield* new UpdateError({
|
|
165
|
+
return yield* Micro.fail(new UpdateError({
|
|
151
166
|
code: "OTHER_ERROR",
|
|
152
167
|
message: "Unable to find the metadata associated with this passkey",
|
|
153
|
-
});
|
|
168
|
+
}));
|
|
154
169
|
const credential = yield* Micro.promise(() => response.json());
|
|
155
170
|
if (!isCredentialMapping(credential))
|
|
156
|
-
return yield* new UpdateError({
|
|
171
|
+
return yield* Micro.fail(new UpdateError({
|
|
157
172
|
code: "OTHER_ERROR",
|
|
158
173
|
message: "Invalid metadata associated with this passkey",
|
|
159
|
-
});
|
|
160
|
-
return
|
|
174
|
+
}));
|
|
175
|
+
return credential;
|
|
161
176
|
});
|
|
162
177
|
const isCredentialMapping = (payload) => {
|
|
163
178
|
if (typeof payload !== "object")
|
|
@@ -197,69 +212,93 @@ const isCredentialMappings = (payload) => {
|
|
|
197
212
|
return false;
|
|
198
213
|
return true;
|
|
199
214
|
};
|
|
215
|
+
export const isDeleteSuccess = (payload) => {
|
|
216
|
+
if (typeof payload !== "object")
|
|
217
|
+
return false;
|
|
218
|
+
if (payload === null)
|
|
219
|
+
return false;
|
|
220
|
+
if (!("_tag" in payload))
|
|
221
|
+
return false;
|
|
222
|
+
if (typeof payload._tag !== "string")
|
|
223
|
+
return false;
|
|
224
|
+
return payload._tag === "DeleteSuccess";
|
|
225
|
+
};
|
|
200
226
|
/**
|
|
201
227
|
* Tell the client device to remove a given credential
|
|
202
|
-
*
|
|
203
|
-
* @
|
|
228
|
+
*
|
|
229
|
+
* @param credential Credential mapping or missing-passkey payload.
|
|
230
|
+
* @returns A Micro effect that resolves with a {@link DeleteSuccess} or fails with {@link DeleteError}.
|
|
204
231
|
*/
|
|
205
232
|
export const signalCredentialRemoval = (credential) => Micro.gen(function* () {
|
|
206
233
|
const logger = yield* Micro.service(Logger);
|
|
207
234
|
yield* logger.logInfo("Testing for local passkey removal support");
|
|
208
|
-
const canDelete = yield*
|
|
235
|
+
const canDelete = yield* isPasskeyDeleteSupport;
|
|
209
236
|
if (!canDelete)
|
|
210
|
-
return yield* new
|
|
237
|
+
return yield* Micro.fail(new DeleteError({
|
|
211
238
|
code: "PASSKEY_DELETION_UNSUPPORTED",
|
|
212
239
|
message: "Passkey deletion not supported on this device",
|
|
213
|
-
});
|
|
240
|
+
}));
|
|
214
241
|
// might not be defined in older browsers
|
|
215
242
|
yield* logger.logInfo("Signalling browser to remove passkey");
|
|
216
243
|
yield* pipe(Micro.tryPromise({
|
|
217
244
|
try: () => PublicKeyCredential.signalUnknownCredential(credential),
|
|
218
|
-
catch: (err) => err instanceof Error
|
|
245
|
+
catch: (err) => err instanceof Error
|
|
246
|
+
? err
|
|
247
|
+
: new Error("Unable to signal credential removal"),
|
|
219
248
|
}), Micro.catchAllDefect((err) => err instanceof Error
|
|
220
249
|
? logger.logWarn(err.message)
|
|
221
250
|
: logger.logWarn("Unable to signal credential removal")), Micro.catchAll((err) => logger.logWarn(err.message)), Micro.forkDaemon);
|
|
222
251
|
yield* logger.logInfo("Passkey removed");
|
|
223
|
-
return
|
|
252
|
+
return { _tag: "DeleteSuccess" };
|
|
224
253
|
});
|
|
254
|
+
/**
|
|
255
|
+
* Tell the client device which credentials are still accepted for a user.
|
|
256
|
+
*
|
|
257
|
+
* @param credentials Accepted credential mapping for the user.
|
|
258
|
+
* @returns A Micro effect that resolves with a {@link PruningSuccess} or fails with {@link PruningError}.
|
|
259
|
+
*/
|
|
225
260
|
export const signalAcceptedCredentials = (credentials) => Micro.gen(function* () {
|
|
226
261
|
const logger = yield* Micro.service(Logger);
|
|
227
262
|
yield* logger.logInfo("Testing for accepted credential signalling support");
|
|
228
|
-
const canSync = yield*
|
|
263
|
+
const canSync = yield* isPasskeyPruningSupport;
|
|
229
264
|
if (!canSync)
|
|
230
|
-
return yield* new
|
|
231
|
-
code: "
|
|
232
|
-
message: "Passkey
|
|
233
|
-
});
|
|
265
|
+
return yield* Micro.fail(new PruningError({
|
|
266
|
+
code: "PASSKEY_PRUNING_UNSUPPORTED",
|
|
267
|
+
message: "Passkey pruning not supported on this device",
|
|
268
|
+
}));
|
|
234
269
|
yield* logger.logInfo("Signalling browser of accepted credentials");
|
|
235
270
|
yield* pipe(Micro.tryPromise({
|
|
236
271
|
try: () => PublicKeyCredential.signalAllAcceptedCredentials(credentials),
|
|
237
|
-
catch: (err) => err instanceof Error
|
|
272
|
+
catch: (err) => err instanceof Error
|
|
273
|
+
? err
|
|
274
|
+
: new Error("Unable to signal accepted credentials"),
|
|
238
275
|
}), Micro.timeout(1000), Micro.catchAllDefect((err) => err instanceof Error
|
|
239
276
|
? logger.logWarn(err.message)
|
|
240
277
|
: logger.logWarn("Unable to signal accepted credentials")), Micro.catchAll((err) => logger.logWarn(err.message)));
|
|
241
278
|
yield* logger.logInfo("Accepted credentials signalled");
|
|
242
|
-
return
|
|
279
|
+
return { _tag: "PruningSuccess" };
|
|
243
280
|
});
|
|
244
281
|
export const signalCurrentUserDetails = (credential, updates) => Micro.gen(function* () {
|
|
245
282
|
const logger = yield* Micro.service(Logger);
|
|
246
283
|
yield* logger.logInfo("Testing for local passkey update support");
|
|
247
284
|
const canUpdate = yield* isPasskeyUpdateSupport;
|
|
248
285
|
if (!canUpdate)
|
|
249
|
-
return yield* new UpdateError({
|
|
286
|
+
return yield* Micro.fail(new UpdateError({
|
|
250
287
|
code: "PASSKEY_UPDATE_UNSUPPORTED",
|
|
251
288
|
message: "Passkey update not supported on this device",
|
|
252
|
-
});
|
|
289
|
+
}));
|
|
253
290
|
yield* logger.logInfo("Signalling browser to update passkey");
|
|
254
|
-
const { username: name, displayName } = updates;
|
|
291
|
+
const { username: name, displayName = updates.username } = updates;
|
|
255
292
|
const credentialUpdates = { ...credential, name, displayName };
|
|
256
293
|
yield* pipe(Micro.tryPromise({
|
|
257
294
|
try: () => PublicKeyCredential.signalCurrentUserDetails(credentialUpdates),
|
|
258
|
-
catch: (err) => err instanceof Error
|
|
295
|
+
catch: (err) => err instanceof Error
|
|
296
|
+
? err
|
|
297
|
+
: new Error("Unable to signal credential update"),
|
|
259
298
|
}), Micro.catchAllDefect((err) => err instanceof Error
|
|
260
299
|
? logger.logWarn(err.message)
|
|
261
300
|
: logger.logWarn("Unable to signal credential update")), Micro.catchAll((err) => logger.logWarn(err.message)), Micro.forkDaemon);
|
|
262
301
|
yield* logger.logInfo("Passkey updated");
|
|
263
|
-
return
|
|
302
|
+
return { _tag: "UpdateSuccess" };
|
|
264
303
|
});
|
|
265
304
|
//# sourceMappingURL=signals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../src/passkey/signals/signals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test for passkey support on the device
|
|
3
|
+
*
|
|
4
|
+
* @returns `true` if the current browser supports passkeys.
|
|
5
|
+
*
|
|
6
|
+
* @category Passkeys (other)
|
|
7
|
+
*/
|
|
1
8
|
export declare const isPasskeySupport: () => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Test for passkey [autofill](https://passlock.dev/passkeys/autofill/) support on the device.
|
|
11
|
+
*
|
|
12
|
+
* @returns A promise that resolves to `true` if passkey autofill is supported.
|
|
13
|
+
*
|
|
14
|
+
* @category Passkeys (other)
|
|
15
|
+
*/
|
|
2
16
|
export declare const isAutofillSupport: () => Promise<boolean>;
|
|
17
|
+
export { isPasskeyDeleteSupport, isPasskeyPruningSupport as isPasskeySyncSupport, isPasskeyUpdateSupport, } from "./signals/signals";
|
|
3
18
|
//# sourceMappingURL=support.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/passkey/support.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/passkey/support.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAAO,OAAoC,CAAA;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAAO,CAAC,OAAO,CACjB,CAAA;AAEnC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,IAAI,oBAAoB,EAC/C,sBAAsB,GACvB,MAAM,mBAAmB,CAAA"}
|
package/dist/passkey/support.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
import { browserSupportsWebAuthn, browserSupportsWebAuthnAutofill } from "@simplewebauthn/browser";
|
|
1
|
+
import { browserSupportsWebAuthn, browserSupportsWebAuthnAutofill, } from "@simplewebauthn/browser";
|
|
2
|
+
/**
|
|
3
|
+
* Test for passkey support on the device
|
|
4
|
+
*
|
|
5
|
+
* @returns `true` if the current browser supports passkeys.
|
|
6
|
+
*
|
|
7
|
+
* @category Passkeys (other)
|
|
8
|
+
*/
|
|
2
9
|
export const isPasskeySupport = () => browserSupportsWebAuthn();
|
|
10
|
+
/**
|
|
11
|
+
* Test for passkey [autofill](https://passlock.dev/passkeys/autofill/) support on the device.
|
|
12
|
+
*
|
|
13
|
+
* @returns A promise that resolves to `true` if passkey autofill is supported.
|
|
14
|
+
*
|
|
15
|
+
* @category Passkeys (other)
|
|
16
|
+
*/
|
|
3
17
|
export const isAutofillSupport = () => browserSupportsWebAuthnAutofill();
|
|
18
|
+
export { isPasskeyDeleteSupport, isPasskeyPruningSupport as isPasskeySyncSupport, isPasskeyUpdateSupport, } from "./signals/signals";
|
|
4
19
|
//# sourceMappingURL=support.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/passkey/support.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/passkey/support.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,yBAAyB,CAAA;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAY,EAAE,CAAC,uBAAuB,EAAE,CAAA;AAExE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAqB,EAAE,CACtD,+BAA+B,EAAE,CAAA;AAEnC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,IAAI,oBAAoB,EAC/C,sBAAsB,GACvB,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Key identifiers. Not to be confused with the Principal available in backend code,
|
|
3
|
+
* which includes much more data.
|
|
4
|
+
*
|
|
5
|
+
* @category Passkeys (core)
|
|
6
|
+
*/
|
|
7
|
+
export type Principal = {
|
|
8
|
+
/**
|
|
9
|
+
* Passkey ID.
|
|
10
|
+
*/
|
|
11
|
+
authenticatorId: string;
|
|
12
|
+
/**
|
|
13
|
+
* By default this will mirror the `authenticatorId` however you
|
|
14
|
+
* can use the REST API or @passlock/node package to assign your
|
|
15
|
+
* own internal userId to the passkey.
|
|
16
|
+
*/
|
|
17
|
+
userId: string;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=principal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../src/principal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;CACf,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../src/principal.ts"],"names":[],"mappings":""}
|