@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.
Files changed (103) hide show
  1. package/README.md +14 -16
  2. package/README.template.md +14 -16
  3. package/dist/errors.d.ts +4 -0
  4. package/dist/errors.d.ts.map +1 -0
  5. package/dist/errors.js +14 -0
  6. package/dist/errors.js.map +1 -0
  7. package/dist/index.d.ts +245 -4
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +253 -3
  10. package/dist/index.js.map +1 -1
  11. package/dist/internal/index.d.ts +4 -0
  12. package/dist/internal/index.d.ts.map +1 -0
  13. package/dist/internal/index.js +4 -0
  14. package/dist/internal/index.js.map +1 -0
  15. package/dist/{shared → internal}/network.d.ts +19 -16
  16. package/dist/internal/network.d.ts.map +1 -0
  17. package/dist/{shared → internal}/network.js +40 -25
  18. package/dist/internal/network.js.map +1 -0
  19. package/dist/{shared → internal}/promise.d.ts +2 -2
  20. package/dist/internal/promise.d.ts.map +1 -0
  21. package/dist/{shared → internal}/promise.js +2 -2
  22. package/dist/internal/promise.js.map +1 -0
  23. package/dist/internal/tenancy.d.ts.map +1 -0
  24. package/dist/internal/tenancy.js.map +1 -0
  25. package/dist/{logger/index.d.ts → logger.d.ts} +19 -4
  26. package/dist/logger.d.ts.map +1 -0
  27. package/dist/{logger/index.js → logger.js} +19 -4
  28. package/dist/logger.js.map +1 -0
  29. package/dist/{shared/options.d.ts → options.d.ts} +4 -0
  30. package/dist/options.d.ts.map +1 -0
  31. package/dist/{shared/options.js.map → options.js.map} +1 -1
  32. package/dist/passkey/authentication/authentication.d.ts +82 -66
  33. package/dist/passkey/authentication/authentication.d.ts.map +1 -1
  34. package/dist/passkey/authentication/authentication.js +67 -49
  35. package/dist/passkey/authentication/authentication.js.map +1 -1
  36. package/dist/passkey/errors.d.ts +158 -16
  37. package/dist/passkey/errors.d.ts.map +1 -1
  38. package/dist/passkey/errors.js +214 -6
  39. package/dist/passkey/errors.js.map +1 -1
  40. package/dist/passkey/registration/registration.d.ts +81 -72
  41. package/dist/passkey/registration/registration.d.ts.map +1 -1
  42. package/dist/passkey/registration/registration.js +42 -35
  43. package/dist/passkey/registration/registration.js.map +1 -1
  44. package/dist/passkey/{types.d.ts → shared.d.ts} +9 -3
  45. package/dist/passkey/shared.d.ts.map +1 -0
  46. package/dist/passkey/shared.js +2 -0
  47. package/dist/passkey/shared.js.map +1 -0
  48. package/dist/passkey/signals/signals.d.ts +93 -35
  49. package/dist/passkey/signals/signals.d.ts.map +1 -1
  50. package/dist/passkey/signals/signals.js +197 -90
  51. package/dist/passkey/signals/signals.js.map +1 -1
  52. package/dist/passkey/support.d.ts +15 -0
  53. package/dist/passkey/support.d.ts.map +1 -1
  54. package/dist/passkey/support.js +16 -1
  55. package/dist/passkey/support.js.map +1 -1
  56. package/dist/principal.d.ts +16 -0
  57. package/dist/principal.d.ts.map +1 -0
  58. package/dist/principal.js +2 -0
  59. package/dist/principal.js.map +1 -0
  60. package/dist/safe.d.ts +247 -0
  61. package/dist/safe.d.ts.map +1 -0
  62. package/dist/safe.js +254 -0
  63. package/dist/safe.js.map +1 -0
  64. package/package.json +26 -21
  65. package/dist/logger/index.d.ts.map +0 -1
  66. package/dist/logger/index.js.map +0 -1
  67. package/dist/passkey/authentication/authentication.test.d.ts +0 -2
  68. package/dist/passkey/authentication/authentication.test.d.ts.map +0 -1
  69. package/dist/passkey/authentication/authentication.test.js +0 -157
  70. package/dist/passkey/authentication/authentication.test.js.map +0 -1
  71. package/dist/passkey/authentication/index.d.ts +0 -21
  72. package/dist/passkey/authentication/index.d.ts.map +0 -1
  73. package/dist/passkey/authentication/index.js +0 -22
  74. package/dist/passkey/authentication/index.js.map +0 -1
  75. package/dist/passkey/index.d.ts +0 -6
  76. package/dist/passkey/index.d.ts.map +0 -1
  77. package/dist/passkey/index.js +0 -6
  78. package/dist/passkey/index.js.map +0 -1
  79. package/dist/passkey/registration/index.d.ts +0 -19
  80. package/dist/passkey/registration/index.d.ts.map +0 -1
  81. package/dist/passkey/registration/index.js +0 -20
  82. package/dist/passkey/registration/index.js.map +0 -1
  83. package/dist/passkey/registration/registration.test.d.ts +0 -2
  84. package/dist/passkey/registration/registration.test.d.ts.map +0 -1
  85. package/dist/passkey/registration/registration.test.js +0 -161
  86. package/dist/passkey/registration/registration.test.js.map +0 -1
  87. package/dist/passkey/signals/index.d.ts +0 -9
  88. package/dist/passkey/signals/index.d.ts.map +0 -1
  89. package/dist/passkey/signals/index.js +0 -19
  90. package/dist/passkey/signals/index.js.map +0 -1
  91. package/dist/passkey/types.d.ts.map +0 -1
  92. package/dist/passkey/types.js +0 -2
  93. package/dist/passkey/types.js.map +0 -1
  94. package/dist/shared/network.d.ts.map +0 -1
  95. package/dist/shared/network.js.map +0 -1
  96. package/dist/shared/options.d.ts.map +0 -1
  97. package/dist/shared/promise.d.ts.map +0 -1
  98. package/dist/shared/promise.js.map +0 -1
  99. package/dist/shared/tenancy.d.ts.map +0 -1
  100. package/dist/shared/tenancy.js.map +0 -1
  101. /package/dist/{shared → internal}/tenancy.d.ts +0 -0
  102. /package/dist/{shared → internal}/tenancy.js +0 -0
  103. /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 { buildEndpoint } from "../../shared/network";
5
- export const isPasskeyDeletionSupport = Micro.sync(() => {
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
- export const isAcceptedCredentialsSupport = Micro.sync(() => {
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
- /* Deletion error */
14
- export const isDeletionError = (err) => err instanceof DeletionError;
15
- export class DeletionError extends Micro.TaggedError("@error/DeletionError") {
16
- static isDeletionError = isDeletionError;
17
- }
18
- /* Sync error */
19
- export const isSyncError = (err) => err instanceof SyncError;
20
- export class SyncError extends Micro.TaggedError("@error/SyncError") {
21
- static isSyncError = isSyncError;
22
- }
23
- const isCredentialMapping = (payload) => {
24
- if (typeof payload !== "object")
25
- return false;
26
- if (payload === null)
27
- return false;
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 } = buildEndpoint(options);
38
+ const { endpoint } = makeEndpoint(options);
42
39
  yield* logger.logInfo("Testing for local passkey removal support");
43
- const canDelete = yield* isPasskeyDeletionSupport;
40
+ const canDelete = yield* isPasskeyDeleteSupport;
44
41
  if (!canDelete)
45
- return yield* new DeletionError({
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 DeletionError({
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 DeletionError({
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
- * Tell the client device to remove a given credential
67
- * @param error
68
- * @returns
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 signalCredentialRemoval = (signal) => Micro.gen(function* () {
81
+ export const prunePasskeys = (passkeyIds, options) => Micro.gen(function* () {
82
+ const { tenancyId } = options;
71
83
  const logger = yield* Micro.service(Logger);
72
- yield* logger.logInfo("Testing for local passkey removal support");
73
- const canDelete = yield* isPasskeyDeletionSupport;
74
- if (!canDelete)
75
- return yield* new DeletionError({
76
- code: "PASSKEY_DELETION_UNSUPPORTED",
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
- // might not be defined in older browsers
80
- yield* logger.logInfo("Signalling browser to remove passkey");
81
- yield* pipe(Micro.tryPromise({
82
- try: () => PublicKeyCredential.signalUnknownCredential(signal),
83
- catch: (err) => err instanceof Error ? err : new Error("Unable to signal credential removal"),
84
- }), Micro.catchAllDefect((err) => err instanceof Error
85
- ? logger.logWarn(err.message)
86
- : logger.logWarn("Unable to signal credential removal")), Micro.catchAll((err) => logger.logWarn(err.message)), Micro.forkDaemon);
87
- yield* logger.logInfo("Passkey removed");
88
- return true;
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
- export const syncPasskeys = (passkeyIds, options) => Micro.gen(function* () {
110
- const { tenancyId } = options;
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
- const { endpoint } = buildEndpoint(options);
113
- yield* logger.logInfo("Testing for local passkey sync support");
114
- const canSync = yield* isAcceptedCredentialsSupport;
115
- if (!canSync)
116
- return yield* new SyncError({
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
- yield* logger.logInfo("Fetching passkey credentials and rp id");
121
- const encodedPasskeyIds = encodeUriComponent(passkeyIds.join(","));
122
- const url = new URL(`${tenancyId}/credentials/${encodedPasskeyIds}`, endpoint);
123
- const response = yield* Micro.promise(() => fetch(url));
124
- if (response.status === 404)
125
- return yield* new SyncError({
126
- code: "OTHER_ERROR",
127
- message: "Unable to find the metadata associated with these passkeys",
128
- });
129
- const credentials = yield* Micro.promise(() => response.json());
130
- if (!isCredentialMappings(credentials))
131
- return yield* new SyncError({
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
- export const signalAcceptedCredentials = (signal) => Micro.gen(function* () {
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* isAcceptedCredentialsSupport;
222
+ const canSync = yield* isPasskeyPruningSupport;
141
223
  if (!canSync)
142
- return yield* new SyncError({
143
- code: "PASSKEY_SYNC_UNSUPPORTED",
144
- message: "Passkey sync not supported on this device",
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(signal),
149
- catch: (err) => err instanceof Error ? err : new Error("Unable to signal accepted credentials"),
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":"AACA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;IACtD,OAAO,CACL,mBAAmB,EAAE,uBAAuB;QAC5C,OAAO,mBAAmB,CAAC,uBAAuB,KAAK,UAAU,CAClE,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;IAC1D,OAAO,CACL,mBAAmB,EAAE,4BAA4B;QACjD,OAAO,mBAAmB,CAAC,4BAA4B,KAAK,UAAU,CACvE,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,oBAAoB;AAEpB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,YAAY,aAAa,CAAA;AAE7E,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,WAAW,CAAC,sBAAsB,CAGzE;IACA,MAAM,CAAC,eAAe,GAAG,eAAe,CAAA;;AAG1C,gBAAgB;AAEhB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,YAAY,SAAS,CAAA;AAErE,MAAM,OAAO,SAAU,SAAQ,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAGjE;IACA,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;;AAQlC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAgC,EAAE;IAC7E,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC7C,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAElC,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9C,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE1D,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAElD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,OAAwB,EAAE,EAAE,CAC3E,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAE3C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,wBAAwB,CAAA;IACjD,IAAI,CAAC,SAAS;QACZ,OAAO,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC;YAC9B,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,+CAA+C;SACzD,CAAC,CAAA;IAEJ,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAA;IAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,SAAS,eAAe,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QACzB,OAAO,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC;YAC9B,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,0DAA0D;SACpE,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9D,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;QAClC,OAAO,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC;YAC9B,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,+CAA+C;SACzD,CAAC,CAAA;IAEJ,OAAO,KAAK,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAA;AACnD,CAAC,CAAC,CAAA;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAAyB,EACoB,EAAE,CAC/C,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAE3C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,wBAAwB,CAAA;IACjD,IAAI,CAAC,SAAS;QACZ,OAAO,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC;YAC9B,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,+CAA+C;SACzD,CAAC,CAAA;IAEJ,yCAAyC;IACzC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAA;IAE7D,KAAK,CAAC,CAAC,IAAI,CACT,KAAK,CAAC,UAAU,CAAC;QACf,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,MAAM,CAAC;QAC9D,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CACb,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC;KAChF,CAAC,EACF,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAC3B,GAAG,YAAY,KAAK;QAClB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAC1D,EACD,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EACpD,KAAK,CAAC,UAAU,CACjB,CAAA;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAExC,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA;AAQJ,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAiC,EAAE;IAC/E,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC7C,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAElC,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAElD,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAEpD,IAAI,CAAC,CAAC,0BAA0B,IAAI,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC;QAAE,OAAO,KAAK,CAAA;IAEjE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAyB,EAAE,OAAwB,EAAE,EAAE,CAClF,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAE3C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,4BAA4B,CAAA;IACnD,IAAI,CAAC,OAAO;QACV,OAAO,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,+CAA+C;SACzD,CAAC,CAAA;IAEJ,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAA;IAC/D,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,SAAS,gBAAgB,iBAAiB,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QACzB,OAAO,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,4DAA4D;SACtE,CAAC,CAAA;IAEJ,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/D,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;QACpC,OAAO,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,uDAAuD;SACjE,CAAC,CAAA;IAEJ,OAAO,KAAK,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAA;AACtD,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,MAA0B,EACe,EAAE,CAC3C,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAE3C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAA;IAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,4BAA4B,CAAA;IACnD,IAAI,CAAC,OAAO;QACV,OAAO,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,2CAA2C;SACrD,CAAC,CAAA;IAEJ,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAA;IAEnE,KAAK,CAAC,CAAC,IAAI,CACT,KAAK,CAAC,UAAU,CAAC;QACf,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,MAAM,CAAC;QACnE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CACb,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC;KAClF,CAAC,EACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EACnB,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAC3B,GAAG,YAAY,KAAK;QAClB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAC5D,EACD,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CACrD,CAAA;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAA;IAEvD,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA"}
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":"AAEA,eAAO,MAAM,gBAAgB,QAAO,OAAoC,CAAA;AAExE,eAAO,MAAM,iBAAiB,QAAO,OAAO,CAAC,OAAO,CAAsC,CAAA"}
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"}
@@ -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,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AAElG,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAY,EAAE,CAAC,uBAAuB,EAAE,CAAA;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAqB,EAAE,CAAC,+BAA+B,EAAE,CAAA"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=principal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"principal.js","sourceRoot":"","sources":["../src/principal.ts"],"names":[],"mappings":""}