@passlock/client 2.0.0 → 2.0.2
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 +14 -16
- package/README.template.md +14 -16
- package/dist/errors.d.ts +4 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +14 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +245 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +253 -3
- 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 +40 -25
- 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} +19 -4
- 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 +82 -66
- package/dist/passkey/authentication/authentication.d.ts.map +1 -1
- package/dist/passkey/authentication/authentication.js +67 -49
- package/dist/passkey/authentication/authentication.js.map +1 -1
- package/dist/passkey/errors.d.ts +158 -16
- package/dist/passkey/errors.d.ts.map +1 -1
- package/dist/passkey/errors.js +214 -6
- package/dist/passkey/errors.js.map +1 -1
- package/dist/passkey/registration/registration.d.ts +81 -72
- package/dist/passkey/registration/registration.d.ts.map +1 -1
- package/dist/passkey/registration/registration.js +42 -35
- package/dist/passkey/registration/registration.js.map +1 -1
- package/dist/passkey/{types.d.ts → shared.d.ts} +9 -3
- package/dist/passkey/shared.d.ts.map +1 -0
- package/dist/passkey/shared.js +2 -0
- package/dist/passkey/shared.js.map +1 -0
- package/dist/passkey/signals/signals.d.ts +93 -35
- package/dist/passkey/signals/signals.d.ts.map +1 -1
- package/dist/passkey/signals/signals.js +197 -90
- package/dist/passkey/signals/signals.js.map +1 -1
- 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 +16 -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 +247 -0
- package/dist/safe.d.ts.map +1 -0
- package/dist/safe.js +254 -0
- package/dist/safe.js.map +1 -0
- package/package.json +26 -21
- package/dist/logger/index.d.ts.map +0 -1
- package/dist/logger/index.js.map +0 -1
- package/dist/passkey/authentication/authentication.test.d.ts +0 -2
- package/dist/passkey/authentication/authentication.test.d.ts.map +0 -1
- package/dist/passkey/authentication/authentication.test.js +0 -157
- package/dist/passkey/authentication/authentication.test.js.map +0 -1
- package/dist/passkey/authentication/index.d.ts +0 -21
- package/dist/passkey/authentication/index.d.ts.map +0 -1
- package/dist/passkey/authentication/index.js +0 -22
- package/dist/passkey/authentication/index.js.map +0 -1
- package/dist/passkey/index.d.ts +0 -6
- package/dist/passkey/index.d.ts.map +0 -1
- package/dist/passkey/index.js +0 -6
- package/dist/passkey/index.js.map +0 -1
- package/dist/passkey/registration/index.d.ts +0 -19
- package/dist/passkey/registration/index.d.ts.map +0 -1
- package/dist/passkey/registration/index.js +0 -20
- package/dist/passkey/registration/index.js.map +0 -1
- package/dist/passkey/registration/registration.test.d.ts +0 -2
- package/dist/passkey/registration/registration.test.d.ts.map +0 -1
- package/dist/passkey/registration/registration.test.js +0 -161
- package/dist/passkey/registration/registration.test.js.map +0 -1
- package/dist/passkey/signals/index.d.ts +0 -9
- package/dist/passkey/signals/index.d.ts.map +0 -1
- package/dist/passkey/signals/index.js +0 -19
- package/dist/passkey/signals/index.js.map +0 -1
- package/dist/passkey/types.d.ts.map +0 -1
- package/dist/passkey/types.js +0 -2
- package/dist/passkey/types.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/{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,92 +1,168 @@
|
|
|
1
1
|
import { Micro, pipe } from "effect";
|
|
2
2
|
import { encodeUriComponent } from "effect/Encoding";
|
|
3
|
+
import { makeEndpoint } from "../../internal";
|
|
3
4
|
import { Logger } from "../../logger";
|
|
4
|
-
import {
|
|
5
|
-
|
|
5
|
+
import { DeleteError, PruningError, UpdateError } from "../errors";
|
|
6
|
+
/**
|
|
7
|
+
* Does the current device support local passkey removal
|
|
8
|
+
*/
|
|
9
|
+
export const isPasskeyDeleteSupport = Micro.sync(() => {
|
|
6
10
|
return (PublicKeyCredential?.signalUnknownCredential &&
|
|
7
11
|
typeof PublicKeyCredential.signalUnknownCredential === "function");
|
|
8
12
|
});
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Does the current device support local passkey pruning
|
|
15
|
+
*/
|
|
16
|
+
export const isPasskeyPruningSupport = Micro.sync(() => {
|
|
10
17
|
return (PublicKeyCredential?.signalAllAcceptedCredentials &&
|
|
11
18
|
typeof PublicKeyCredential.signalAllAcceptedCredentials === "function");
|
|
12
19
|
});
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (!("credentialId" in payload))
|
|
29
|
-
return false;
|
|
30
|
-
if (typeof payload.credentialId !== "string")
|
|
31
|
-
return false;
|
|
32
|
-
if (!("rpId" in payload))
|
|
33
|
-
return false;
|
|
34
|
-
if (typeof payload.rpId !== "string")
|
|
35
|
-
return false;
|
|
36
|
-
return true;
|
|
37
|
-
};
|
|
20
|
+
/**
|
|
21
|
+
* Does the current device support local passkey updates
|
|
22
|
+
*/
|
|
23
|
+
export const isPasskeyUpdateSupport = Micro.sync(() => {
|
|
24
|
+
return (PublicKeyCredential?.signalCurrentUserDetails &&
|
|
25
|
+
typeof PublicKeyCredential.signalCurrentUserDetails === "function");
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Instruct the device to remove a passkey. E.g. attempt to remove it from
|
|
29
|
+
* Apple Password Manager / iCloud.
|
|
30
|
+
*
|
|
31
|
+
* @param passkeyId Passkey identifier.
|
|
32
|
+
* @param options Passlock tenancy and endpoint options.
|
|
33
|
+
* @returns A Micro effect that resolves with `true` or fails with {@link DeleteError}.
|
|
34
|
+
*/
|
|
38
35
|
export const deletePasskey = (passkeyId, options) => Micro.gen(function* () {
|
|
39
36
|
const { tenancyId } = options;
|
|
40
37
|
const logger = yield* Micro.service(Logger);
|
|
41
|
-
const { endpoint } =
|
|
38
|
+
const { endpoint } = makeEndpoint(options);
|
|
42
39
|
yield* logger.logInfo("Testing for local passkey removal support");
|
|
43
|
-
const canDelete = yield*
|
|
40
|
+
const canDelete = yield* isPasskeyDeleteSupport;
|
|
44
41
|
if (!canDelete)
|
|
45
|
-
return yield* new
|
|
42
|
+
return yield* Micro.fail(new DeleteError({
|
|
46
43
|
code: "PASSKEY_DELETION_UNSUPPORTED",
|
|
47
44
|
message: "Passkey deletion not supported on this device",
|
|
48
|
-
});
|
|
45
|
+
}));
|
|
49
46
|
yield* logger.logInfo("Fetching passkey credential and rp id");
|
|
50
47
|
const url = new URL(`${tenancyId}/credential/${passkeyId}`, endpoint);
|
|
51
48
|
const response = yield* Micro.promise(() => fetch(url));
|
|
52
49
|
if (response.status === 404)
|
|
53
|
-
return yield* new
|
|
50
|
+
return yield* Micro.fail(new DeleteError({
|
|
54
51
|
code: "OTHER_ERROR",
|
|
55
52
|
message: "Unable to find the metadata associated with this passkey",
|
|
56
|
-
});
|
|
53
|
+
}));
|
|
57
54
|
const credential = yield* Micro.promise(() => response.json());
|
|
58
55
|
if (!isCredentialMapping(credential))
|
|
59
|
-
return yield* new
|
|
56
|
+
return yield* Micro.fail(new DeleteError({
|
|
60
57
|
code: "OTHER_ERROR",
|
|
61
58
|
message: "Invalid metadata associated with this passkey",
|
|
62
|
-
});
|
|
59
|
+
}));
|
|
63
60
|
return yield* signalCredentialRemoval(credential);
|
|
64
61
|
});
|
|
65
62
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
63
|
+
* Given a list of passkey ids, instruct the device to remove any redundant passkeys.
|
|
64
|
+
*
|
|
65
|
+
* Note: this will only remove redundant passkeys (based on the userId).
|
|
66
|
+
*
|
|
67
|
+
* For example:
|
|
68
|
+
*
|
|
69
|
+
* The user has two passkeys registered against the jdoe@gmail.com account: passkey1
|
|
70
|
+
* and passkey2. The user has another passkey (passkey3) registered against the
|
|
71
|
+
* jdoe@work.com account.
|
|
72
|
+
*
|
|
73
|
+
* If you pass in the id for passkey1, the device will recognise it's assigned to the
|
|
74
|
+
* jdoe@gmail.com account and remove passkey2. However as passkey3 is registered to a
|
|
75
|
+
* different account, the device will retain it.
|
|
76
|
+
*
|
|
77
|
+
* @param passkeyIds Passkey identifiers to keep.
|
|
78
|
+
* @param options Passlock tenancy and endpoint options.
|
|
79
|
+
* @returns A Micro effect that resolves with `true` or fails with {@link PruningError}.
|
|
69
80
|
*/
|
|
70
|
-
export const
|
|
81
|
+
export const prunePasskeys = (passkeyIds, options) => Micro.gen(function* () {
|
|
82
|
+
const { tenancyId } = options;
|
|
71
83
|
const logger = yield* Micro.service(Logger);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
84
|
+
const { endpoint } = makeEndpoint(options);
|
|
85
|
+
yield* logger.logInfo("Testing for local passkey pruning support");
|
|
86
|
+
const canSync = yield* isPasskeyPruningSupport;
|
|
87
|
+
if (!canSync)
|
|
88
|
+
return yield* Micro.fail(new PruningError({
|
|
89
|
+
code: "PASSKEY_PRUNING_UNSUPPORTED",
|
|
77
90
|
message: "Passkey deletion not supported on this device",
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
91
|
+
}));
|
|
92
|
+
yield* logger.logInfo("Fetching passkey credentials and rp id");
|
|
93
|
+
const encodedPasskeyIds = encodeUriComponent(passkeyIds.join(","));
|
|
94
|
+
const url = new URL(`${tenancyId}/credentials/${encodedPasskeyIds}`, endpoint);
|
|
95
|
+
const response = yield* Micro.promise(() => fetch(url));
|
|
96
|
+
if (response.status === 404)
|
|
97
|
+
return yield* Micro.fail(new PruningError({
|
|
98
|
+
code: "OTHER_ERROR",
|
|
99
|
+
message: "Unable to find the metadata associated with these passkeys",
|
|
100
|
+
}));
|
|
101
|
+
const credentials = yield* Micro.promise(() => response.json());
|
|
102
|
+
if (!isCredentialMappings(credentials))
|
|
103
|
+
return yield* Micro.fail(new PruningError({
|
|
104
|
+
code: "OTHER_ERROR",
|
|
105
|
+
message: "Invalid metadata associated with one or more passkeys",
|
|
106
|
+
}));
|
|
107
|
+
return yield* signalAcceptedCredentials(credentials);
|
|
89
108
|
});
|
|
109
|
+
/**
|
|
110
|
+
* Update a passkey e.g. change the username and or display name.
|
|
111
|
+
* Note: this is purely informational, it does not change any identifiers.
|
|
112
|
+
* The typical use case is when a user changes their account email, you would
|
|
113
|
+
* want to change the username in your backend system and also the user's
|
|
114
|
+
* device local passkey. Otherwise the passkey associated with your new-name@gmail.com
|
|
115
|
+
* account would still show up in their password manager as old-name@gmail.com.
|
|
116
|
+
*
|
|
117
|
+
* @param options Passkey update options.
|
|
118
|
+
* @returns A Micro effect that resolves with `true` or fails with {@link UpdateError}.
|
|
119
|
+
*/
|
|
120
|
+
export const updatePasskey = (options) => Micro.gen(function* () {
|
|
121
|
+
const { tenancyId } = options;
|
|
122
|
+
const logger = yield* Micro.service(Logger);
|
|
123
|
+
const { endpoint } = makeEndpoint(options);
|
|
124
|
+
yield* logger.logInfo("Testing for local passkey update support");
|
|
125
|
+
const canUpdate = yield* isPasskeyUpdateSupport;
|
|
126
|
+
if (!canUpdate)
|
|
127
|
+
return yield* Micro.fail(new UpdateError({
|
|
128
|
+
code: "PASSKEY_UPDATE_UNSUPPORTED",
|
|
129
|
+
message: "Passkey update not supported on this device",
|
|
130
|
+
}));
|
|
131
|
+
yield* logger.logInfo("Fetching passkey credential and rp id");
|
|
132
|
+
const url = new URL(`${tenancyId}/credential/${options.passkeyId}`, endpoint);
|
|
133
|
+
const response = yield* Micro.promise(() => fetch(url));
|
|
134
|
+
if (response.status === 404)
|
|
135
|
+
return yield* Micro.fail(new UpdateError({
|
|
136
|
+
code: "OTHER_ERROR",
|
|
137
|
+
message: "Unable to find the metadata associated with this passkey",
|
|
138
|
+
}));
|
|
139
|
+
const credential = yield* Micro.promise(() => response.json());
|
|
140
|
+
if (!isCredentialMapping(credential))
|
|
141
|
+
return yield* Micro.fail(new UpdateError({
|
|
142
|
+
code: "OTHER_ERROR",
|
|
143
|
+
message: "Invalid metadata associated with this passkey",
|
|
144
|
+
}));
|
|
145
|
+
return yield* signalCurrentUserDetails(credential, options);
|
|
146
|
+
});
|
|
147
|
+
const isCredentialMapping = (payload) => {
|
|
148
|
+
if (typeof payload !== "object")
|
|
149
|
+
return false;
|
|
150
|
+
if (payload === null)
|
|
151
|
+
return false;
|
|
152
|
+
if (!("credentialId" in payload))
|
|
153
|
+
return false;
|
|
154
|
+
if (typeof payload.credentialId !== "string")
|
|
155
|
+
return false;
|
|
156
|
+
if (!("userId" in payload))
|
|
157
|
+
return false;
|
|
158
|
+
if (typeof payload.userId !== "string")
|
|
159
|
+
return false;
|
|
160
|
+
if (!("rpId" in payload))
|
|
161
|
+
return false;
|
|
162
|
+
if (typeof payload.rpId !== "string")
|
|
163
|
+
return false;
|
|
164
|
+
return true;
|
|
165
|
+
};
|
|
90
166
|
const isCredentialMappings = (payload) => {
|
|
91
167
|
if (typeof payload !== "object")
|
|
92
168
|
return false;
|
|
@@ -102,55 +178,86 @@ const isCredentialMappings = (payload) => {
|
|
|
102
178
|
return false;
|
|
103
179
|
if (!("allAcceptedCredentialIds" in payload))
|
|
104
180
|
return false;
|
|
105
|
-
if (Array.isArray(payload.allAcceptedCredentialIds))
|
|
181
|
+
if (!Array.isArray(payload.allAcceptedCredentialIds))
|
|
106
182
|
return false;
|
|
107
183
|
return true;
|
|
108
184
|
};
|
|
109
|
-
|
|
110
|
-
|
|
185
|
+
/**
|
|
186
|
+
* Tell the client device to remove a given credential
|
|
187
|
+
*
|
|
188
|
+
* @param credential Credential mapping or missing-passkey payload.
|
|
189
|
+
* @returns A Micro effect that resolves with `true` or fails with {@link DeleteError}.
|
|
190
|
+
*/
|
|
191
|
+
export const signalCredentialRemoval = (credential) => Micro.gen(function* () {
|
|
111
192
|
const logger = yield* Micro.service(Logger);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
code: "PASSKEY_SYNC_UNSUPPORTED",
|
|
193
|
+
yield* logger.logInfo("Testing for local passkey removal support");
|
|
194
|
+
const canDelete = yield* isPasskeyDeleteSupport;
|
|
195
|
+
if (!canDelete)
|
|
196
|
+
return yield* Micro.fail(new DeleteError({
|
|
197
|
+
code: "PASSKEY_DELETION_UNSUPPORTED",
|
|
118
198
|
message: "Passkey deletion not supported on this device",
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
code: "OTHER_ERROR",
|
|
133
|
-
message: "Invalid metadata associated with one or more passkeys",
|
|
134
|
-
});
|
|
135
|
-
return yield* signalAcceptedCredentials(credentials);
|
|
199
|
+
}));
|
|
200
|
+
// might not be defined in older browsers
|
|
201
|
+
yield* logger.logInfo("Signalling browser to remove passkey");
|
|
202
|
+
yield* pipe(Micro.tryPromise({
|
|
203
|
+
try: () => PublicKeyCredential.signalUnknownCredential(credential),
|
|
204
|
+
catch: (err) => err instanceof Error
|
|
205
|
+
? err
|
|
206
|
+
: new Error("Unable to signal credential removal"),
|
|
207
|
+
}), Micro.catchAllDefect((err) => err instanceof Error
|
|
208
|
+
? logger.logWarn(err.message)
|
|
209
|
+
: logger.logWarn("Unable to signal credential removal")), Micro.catchAll((err) => logger.logWarn(err.message)), Micro.forkDaemon);
|
|
210
|
+
yield* logger.logInfo("Passkey removed");
|
|
211
|
+
return true;
|
|
136
212
|
});
|
|
137
|
-
|
|
213
|
+
/**
|
|
214
|
+
* Tell the client device which credentials are still accepted for a user.
|
|
215
|
+
*
|
|
216
|
+
* @param credentials Accepted credential mapping for the user.
|
|
217
|
+
* @returns A Micro effect that resolves with `true` or fails with {@link PruningError}.
|
|
218
|
+
*/
|
|
219
|
+
export const signalAcceptedCredentials = (credentials) => Micro.gen(function* () {
|
|
138
220
|
const logger = yield* Micro.service(Logger);
|
|
139
221
|
yield* logger.logInfo("Testing for accepted credential signalling support");
|
|
140
|
-
const canSync = yield*
|
|
222
|
+
const canSync = yield* isPasskeyPruningSupport;
|
|
141
223
|
if (!canSync)
|
|
142
|
-
return yield* new
|
|
143
|
-
code: "
|
|
144
|
-
message: "Passkey
|
|
145
|
-
});
|
|
224
|
+
return yield* Micro.fail(new PruningError({
|
|
225
|
+
code: "PASSKEY_PRUNING_UNSUPPORTED",
|
|
226
|
+
message: "Passkey pruning not supported on this device",
|
|
227
|
+
}));
|
|
146
228
|
yield* logger.logInfo("Signalling browser of accepted credentials");
|
|
147
229
|
yield* pipe(Micro.tryPromise({
|
|
148
|
-
try: () => PublicKeyCredential.signalAllAcceptedCredentials(
|
|
149
|
-
catch: (err) => err instanceof Error
|
|
230
|
+
try: () => PublicKeyCredential.signalAllAcceptedCredentials(credentials),
|
|
231
|
+
catch: (err) => err instanceof Error
|
|
232
|
+
? err
|
|
233
|
+
: new Error("Unable to signal accepted credentials"),
|
|
150
234
|
}), Micro.timeout(1000), Micro.catchAllDefect((err) => err instanceof Error
|
|
151
235
|
? logger.logWarn(err.message)
|
|
152
236
|
: logger.logWarn("Unable to signal accepted credentials")), Micro.catchAll((err) => logger.logWarn(err.message)));
|
|
153
237
|
yield* logger.logInfo("Accepted credentials signalled");
|
|
154
238
|
return true;
|
|
155
239
|
});
|
|
240
|
+
export const signalCurrentUserDetails = (credential, updates) => Micro.gen(function* () {
|
|
241
|
+
const logger = yield* Micro.service(Logger);
|
|
242
|
+
yield* logger.logInfo("Testing for local passkey update support");
|
|
243
|
+
const canUpdate = yield* isPasskeyUpdateSupport;
|
|
244
|
+
if (!canUpdate)
|
|
245
|
+
return yield* Micro.fail(new UpdateError({
|
|
246
|
+
code: "PASSKEY_UPDATE_UNSUPPORTED",
|
|
247
|
+
message: "Passkey update not supported on this device",
|
|
248
|
+
}));
|
|
249
|
+
yield* logger.logInfo("Signalling browser to update passkey");
|
|
250
|
+
const { username: name, displayName } = updates;
|
|
251
|
+
const credentialUpdates = { ...credential, name, displayName };
|
|
252
|
+
yield* pipe(Micro.tryPromise({
|
|
253
|
+
try: () => PublicKeyCredential.signalCurrentUserDetails(credentialUpdates),
|
|
254
|
+
catch: (err) => err instanceof Error
|
|
255
|
+
? err
|
|
256
|
+
: new Error("Unable to signal credential update"),
|
|
257
|
+
}), Micro.catchAllDefect((err) => err instanceof Error
|
|
258
|
+
? logger.logWarn(err.message)
|
|
259
|
+
: logger.logWarn("Unable to signal credential update")), Micro.catchAll((err) => logger.logWarn(err.message)), Micro.forkDaemon);
|
|
260
|
+
yield* logger.logInfo("Passkey updated");
|
|
261
|
+
return true;
|
|
262
|
+
});
|
|
156
263
|
//# sourceMappingURL=signals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../src/passkey/signals/signals.ts"],"names":[],"mappings":"
|
|
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,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @category Passkeys (core)
|
|
3
|
+
*/
|
|
4
|
+
export type Principal = {
|
|
5
|
+
/**
|
|
6
|
+
* Passkey ID.
|
|
7
|
+
*/
|
|
8
|
+
authenticatorId: string;
|
|
9
|
+
/**
|
|
10
|
+
* By default this will mirror the `authenticatorId` however you
|
|
11
|
+
* can use the REST API or @passlock/node package to assign your
|
|
12
|
+
* own internal userId to the passkey.
|
|
13
|
+
*/
|
|
14
|
+
userId: string;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=principal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../src/principal.ts"],"names":[],"mappings":"AAAA;;GAEG;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":""}
|