@passlock/client 0.9.30 → 2.0.0-beta.1

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 (180) hide show
  1. package/README.md +14 -86
  2. package/README.template.md +16 -88
  3. package/dist/index.d.ts +4 -206
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +2 -158
  6. package/dist/index.js.map +1 -1
  7. package/dist/logger/index.d.ts +24 -0
  8. package/dist/logger/index.d.ts.map +1 -0
  9. package/dist/logger/index.js +47 -0
  10. package/dist/logger/index.js.map +1 -0
  11. package/dist/network.d.ts +39 -0
  12. package/dist/network.d.ts.map +1 -0
  13. package/dist/network.js +83 -0
  14. package/dist/network.js.map +1 -0
  15. package/dist/passkey/authentication/index.d.ts +21 -0
  16. package/dist/passkey/authentication/index.d.ts.map +1 -0
  17. package/dist/passkey/authentication/index.js +22 -0
  18. package/dist/passkey/authentication/index.js.map +1 -0
  19. package/dist/passkey/authentication/micro.d.ts +71 -0
  20. package/dist/passkey/authentication/micro.d.ts.map +1 -0
  21. package/dist/passkey/authentication/micro.js +107 -0
  22. package/dist/passkey/authentication/micro.js.map +1 -0
  23. package/dist/passkey/index.d.ts +7 -0
  24. package/dist/passkey/index.d.ts.map +1 -0
  25. package/dist/passkey/index.js +5 -0
  26. package/dist/passkey/index.js.map +1 -0
  27. package/dist/passkey/registration/index.d.ts +19 -0
  28. package/dist/passkey/registration/index.d.ts.map +1 -0
  29. package/dist/passkey/registration/index.js +20 -0
  30. package/dist/passkey/registration/index.js.map +1 -0
  31. package/dist/passkey/registration/micro.d.ts +101 -0
  32. package/dist/passkey/registration/micro.d.ts.map +1 -0
  33. package/dist/passkey/registration/micro.js +126 -0
  34. package/dist/passkey/registration/micro.js.map +1 -0
  35. package/dist/passkey/shared.d.ts +24 -0
  36. package/dist/passkey/shared.d.ts.map +1 -0
  37. package/dist/passkey/shared.js +10 -0
  38. package/dist/passkey/shared.js.map +1 -0
  39. package/dist/passkey/support.d.ts +3 -0
  40. package/dist/passkey/support.d.ts.map +1 -0
  41. package/dist/passkey/support.js +4 -0
  42. package/dist/passkey/support.js.map +1 -0
  43. package/dist/passkey/types.d.ts +26 -0
  44. package/dist/passkey/types.d.ts.map +1 -0
  45. package/dist/passkey/types.js +2 -0
  46. package/dist/passkey/types.js.map +1 -0
  47. package/dist/promise.d.ts +15 -0
  48. package/dist/promise.d.ts.map +1 -0
  49. package/dist/promise.js +46 -0
  50. package/dist/promise.js.map +1 -0
  51. package/dist/shared.d.ts +15 -0
  52. package/dist/shared.d.ts.map +1 -0
  53. package/dist/shared.js +2 -0
  54. package/dist/shared.js.map +1 -0
  55. package/dist/tenancy.d.ts +8 -0
  56. package/dist/tenancy.d.ts.map +1 -0
  57. package/dist/tenancy.js +4 -0
  58. package/dist/tenancy.js.map +1 -0
  59. package/package.json +52 -58
  60. package/LICENSE +0 -21
  61. package/dist/authentication/authenticate.d.ts +0 -24
  62. package/dist/authentication/authenticate.fixture.d.ts +0 -52
  63. package/dist/authentication/authenticate.fixture.js +0 -50
  64. package/dist/authentication/authenticate.fixture.js.map +0 -1
  65. package/dist/authentication/authenticate.js +0 -73
  66. package/dist/authentication/authenticate.js.map +0 -1
  67. package/dist/capabilities/capabilities.d.ts +0 -19
  68. package/dist/capabilities/capabilities.js +0 -37
  69. package/dist/capabilities/capabilities.js.map +0 -1
  70. package/dist/connection/connection.d.ts +0 -15
  71. package/dist/connection/connection.fixture.d.ts +0 -10
  72. package/dist/connection/connection.fixture.js +0 -13
  73. package/dist/connection/connection.fixture.js.map +0 -1
  74. package/dist/connection/connection.js +0 -23
  75. package/dist/connection/connection.js.map +0 -1
  76. package/dist/effect.d.ts +0 -26
  77. package/dist/effect.js +0 -78
  78. package/dist/effect.js.map +0 -1
  79. package/dist/email/email.d.ts +0 -70
  80. package/dist/email/email.fixture.d.ts +0 -46
  81. package/dist/email/email.fixture.js +0 -25
  82. package/dist/email/email.fixture.js.map +0 -1
  83. package/dist/email/email.js +0 -83
  84. package/dist/email/email.js.map +0 -1
  85. package/dist/event/event.d.ts +0 -8
  86. package/dist/event/event.js +0 -23
  87. package/dist/event/event.js.map +0 -1
  88. package/dist/logging/eventLogger.d.ts +0 -17
  89. package/dist/logging/eventLogger.js +0 -38
  90. package/dist/logging/eventLogger.js.map +0 -1
  91. package/dist/registration/register.d.ts +0 -27
  92. package/dist/registration/register.fixture.d.ts +0 -53
  93. package/dist/registration/register.fixture.js +0 -66
  94. package/dist/registration/register.fixture.js.map +0 -1
  95. package/dist/registration/register.js +0 -78
  96. package/dist/registration/register.js.map +0 -1
  97. package/dist/rpc/authentication.d.ts +0 -8
  98. package/dist/rpc/authentication.js +0 -16
  99. package/dist/rpc/authentication.js.map +0 -1
  100. package/dist/rpc/client.d.ts +0 -30
  101. package/dist/rpc/client.js +0 -101
  102. package/dist/rpc/client.js.map +0 -1
  103. package/dist/rpc/config.d.ts +0 -15
  104. package/dist/rpc/config.js +0 -6
  105. package/dist/rpc/config.js.map +0 -1
  106. package/dist/rpc/connection.d.ts +0 -8
  107. package/dist/rpc/connection.js +0 -15
  108. package/dist/rpc/connection.js.map +0 -1
  109. package/dist/rpc/registration.d.ts +0 -8
  110. package/dist/rpc/registration.js +0 -16
  111. package/dist/rpc/registration.js.map +0 -1
  112. package/dist/rpc/social.d.ts +0 -10
  113. package/dist/rpc/social.js +0 -18
  114. package/dist/rpc/social.js.map +0 -1
  115. package/dist/rpc/user.d.ts +0 -8
  116. package/dist/rpc/user.js +0 -19
  117. package/dist/rpc/user.js.map +0 -1
  118. package/dist/social/social.d.ts +0 -24
  119. package/dist/social/social.fixture.d.ts +0 -46
  120. package/dist/social/social.fixture.js +0 -31
  121. package/dist/social/social.fixture.js.map +0 -1
  122. package/dist/social/social.js +0 -39
  123. package/dist/social/social.js.map +0 -1
  124. package/dist/storage/storage.d.ts +0 -56
  125. package/dist/storage/storage.fixture.d.ts +0 -4
  126. package/dist/storage/storage.fixture.js +0 -10
  127. package/dist/storage/storage.fixture.js.map +0 -1
  128. package/dist/storage/storage.js +0 -111
  129. package/dist/storage/storage.js.map +0 -1
  130. package/dist/test/fixtures.d.ts +0 -15
  131. package/dist/test/fixtures.js +0 -56
  132. package/dist/test/fixtures.js.map +0 -1
  133. package/dist/tsconfig.tsbuildinfo +0 -1
  134. package/dist/user/user.d.ts +0 -25
  135. package/dist/user/user.fixture.d.ts +0 -12
  136. package/dist/user/user.fixture.js +0 -20
  137. package/dist/user/user.fixture.js.map +0 -1
  138. package/dist/user/user.js +0 -38
  139. package/dist/user/user.js.map +0 -1
  140. package/dist/version.d.ts +0 -1
  141. package/dist/version.js +0 -2
  142. package/dist/version.js.map +0 -1
  143. package/src/authentication/authenticate.fixture.ts +0 -73
  144. package/src/authentication/authenticate.test.ts +0 -249
  145. package/src/authentication/authenticate.ts +0 -149
  146. package/src/capabilities/capabilities.ts +0 -83
  147. package/src/connection/connection.fixture.ts +0 -20
  148. package/src/connection/connection.test.ts +0 -60
  149. package/src/connection/connection.ts +0 -51
  150. package/src/effect.ts +0 -280
  151. package/src/email/email.fixture.ts +0 -44
  152. package/src/email/email.test.ts +0 -186
  153. package/src/email/email.ts +0 -148
  154. package/src/event/event.node.test.ts +0 -21
  155. package/src/event/event.test.ts +0 -37
  156. package/src/event/event.ts +0 -25
  157. package/src/index.ts +0 -407
  158. package/src/logging/eventLogger.test.ts +0 -104
  159. package/src/logging/eventLogger.ts +0 -41
  160. package/src/registration/register.fixture.ts +0 -96
  161. package/src/registration/register.test.ts +0 -216
  162. package/src/registration/register.ts +0 -158
  163. package/src/rpc/authentication.ts +0 -43
  164. package/src/rpc/client.ts +0 -174
  165. package/src/rpc/config.ts +0 -18
  166. package/src/rpc/connection.ts +0 -30
  167. package/src/rpc/registration.ts +0 -41
  168. package/src/rpc/social.ts +0 -45
  169. package/src/rpc/user.ts +0 -57
  170. package/src/social/social.fixture.ts +0 -45
  171. package/src/social/social.test.ts +0 -179
  172. package/src/social/social.ts +0 -82
  173. package/src/storage/storage.fixture.ts +0 -16
  174. package/src/storage/storage.test.ts +0 -206
  175. package/src/storage/storage.ts +0 -168
  176. package/src/test/fixtures.ts +0 -70
  177. package/src/user/user.fixture.ts +0 -33
  178. package/src/user/user.test.ts +0 -84
  179. package/src/user/user.ts +0 -73
  180. package/src/version.ts +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAIhC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Context, Micro } from "effect";
2
+ declare const Logger_base: Context.TagClass<Logger, "Logger", {
3
+ readonly logDebug: (message: string) => Micro.Micro<void>;
4
+ readonly logInfo: (message: string) => Micro.Micro<void>;
5
+ readonly logError: (message: string) => Micro.Micro<void>;
6
+ }>;
7
+ export declare class Logger extends Logger_base {
8
+ }
9
+ export declare const ConsoleLogger: typeof Logger.Service;
10
+ export declare enum LogLevel {
11
+ DEBUG = "DEBUG",
12
+ INFO = "INFO",
13
+ ERROR = "ERROR"
14
+ }
15
+ export declare class LogEvent extends Event {
16
+ #private;
17
+ static name: string;
18
+ constructor(message: string, level: LogLevel);
19
+ get message(): string;
20
+ get level(): LogLevel;
21
+ }
22
+ export declare const EventLogger: typeof Logger.Service;
23
+ export {};
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;;uBAKjB,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;sBACvC,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;uBACrC,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;;AAL7D,qBAAa,MAAO,SAAQ,WAOzB;CAAG;AAEN,eAAO,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC,OAezC,CAAC;AAEF,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,qBAAa,QAAS,SAAQ,KAAK;;IAIjC,MAAM,CAAC,IAAI,SAAsB;gBAErB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;IAM5C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,KAAK,IAAI,QAAQ,CAEpB;CACF;AASD,eAAO,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC,OAIvC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { Context, Micro } from "effect";
2
+ export class Logger extends Context.Tag("Logger")() {
3
+ }
4
+ export const ConsoleLogger = {
5
+ logDebug: (message, ...optionalArgs) => Micro.sync(() => {
6
+ console.debug(message, optionalArgs);
7
+ }),
8
+ logInfo: (message, ...optionalArgs) => Micro.sync(() => {
9
+ console.info(message, optionalArgs);
10
+ }),
11
+ logError: (message, ...optionalArgs) => Micro.sync(() => {
12
+ console.error(message, optionalArgs);
13
+ }),
14
+ };
15
+ export var LogLevel;
16
+ (function (LogLevel) {
17
+ LogLevel["DEBUG"] = "DEBUG";
18
+ LogLevel["INFO"] = "INFO";
19
+ LogLevel["ERROR"] = "ERROR";
20
+ })(LogLevel || (LogLevel = {}));
21
+ export class LogEvent extends Event {
22
+ #message;
23
+ #level;
24
+ static name = "PasslockLogEvent";
25
+ constructor(message, level) {
26
+ super(LogEvent.name);
27
+ this.#message = message;
28
+ this.#level = level;
29
+ }
30
+ get message() {
31
+ return this.#message;
32
+ }
33
+ get level() {
34
+ return this.#level;
35
+ }
36
+ }
37
+ const logEvent = (level) => (message) => Micro.sync(() => {
38
+ if (typeof message === "string") {
39
+ window.dispatchEvent(new LogEvent(message, level));
40
+ }
41
+ });
42
+ export const EventLogger = {
43
+ logDebug: logEvent(LogLevel.DEBUG),
44
+ logInfo: logEvent(LogLevel.INFO),
45
+ logError: logEvent(LogLevel.ERROR),
46
+ };
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,OAAO,MAAO,SAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAO9C;CAAG;AAEN,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,QAAQ,EAAE,CAAC,OAAwB,EAAE,GAAG,YAA4B,EAAE,EAAE,CACtE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC;IAEJ,OAAO,EAAE,CAAC,OAAwB,EAAE,GAAG,YAA4B,EAAE,EAAE,CACrE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC,CAAC;IAEJ,QAAQ,EAAE,CAAC,OAAwB,EAAE,GAAG,YAA4B,EAAE,EAAE,CACtE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,QAAQ,CAAS;IACjB,MAAM,CAAW;IAE1B,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAEjC,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;;AAGH,MAAM,QAAQ,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,OAAe,EAAE,EAAE,CACxD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;IACd,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,WAAW,GAA0B;IAChD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;CACnC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Context, Micro } from "effect";
2
+ export declare const isUnexpectedError: (err: unknown) => err is UnexpectedError;
3
+ declare const UnexpectedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Micro.YieldableError & {
4
+ readonly _tag: "@error/UnexpectedError";
5
+ } & Readonly<A>;
6
+ export declare class UnexpectedError extends UnexpectedError_base<{
7
+ readonly message: string;
8
+ readonly url: string;
9
+ }> {
10
+ static isUnexpectedError: (err: unknown) => err is UnexpectedError;
11
+ }
12
+ declare const Endpoint_base: Context.TagClass<Endpoint, "Endpoint", {
13
+ readonly endpoint: string;
14
+ }>;
15
+ /**
16
+ * Passlock API endpoint
17
+ */
18
+ export declare class Endpoint extends Endpoint_base {
19
+ }
20
+ export declare const buildEndpoint: ({ endpoint, }: {
21
+ endpoint?: string;
22
+ }) => Endpoint["Type"];
23
+ /**
24
+ * Make a fetch request and parse the response using the provided
25
+ * responsePredicate function.
26
+ * @param param0
27
+ * @returns
28
+ */
29
+ export declare const makeRequest: <Res extends object>({ url, payload, responsePredicate, label, }: {
30
+ url: URL;
31
+ /** Request payload */
32
+ payload: object;
33
+ /** Response type guard */
34
+ responsePredicate: (res: unknown) => res is Res;
35
+ /** For logging/error reporting */
36
+ label: string;
37
+ }) => Micro.Micro<Res, UnexpectedError>;
38
+ export {};
39
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAexC,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,eACxB,CAAC;;;;AAEjC,qBAAa,eAAgB,SAAQ,qBAEnC;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;IACA,MAAM,CAAC,iBAAiB,QATa,OAAO,KAAG,GAAG,IAAI,eAAe,CASxB;CAC9C;;uBAOsB,MAAM;;AAL7B;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAG3B;CAAG;AAEN,eAAO,MAAM,aAAa,GAAI,eAE3B;IACD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,KAAG,QAAQ,CAAC,MAAM,CAA8B,CAAC;AAoBlD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,SAAS,MAAM,EAAE,6CAK7C;IACD,GAAG,EAAE,GAAG,CAAC;IACT,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,iBAAiB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,GAAG,CAAC;IAChD,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf,KAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAiDhC,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { Context, Micro } from "effect";
2
+ /**
3
+ * Make a request to the Passlock API endpoint.
4
+ * Assumes the response is JSON and any errors
5
+ * have a non-200 status code, are also JSON and
6
+ * include message and _tag fields.
7
+ */
8
+ /**
9
+ * TODO Consider Effect RPC/HttpClient
10
+ */
11
+ const DefaultEndpoint = "https://api.passlock.dev";
12
+ export const isUnexpectedError = (err) => err instanceof UnexpectedError;
13
+ export class UnexpectedError extends Micro.TaggedError("@error/UnexpectedError") {
14
+ static isUnexpectedError = isUnexpectedError;
15
+ }
16
+ /**
17
+ * Passlock API endpoint
18
+ */
19
+ export class Endpoint extends Context.Tag("Endpoint")() {
20
+ }
21
+ export const buildEndpoint = ({ endpoint = DefaultEndpoint, }) => Endpoint.of({ endpoint });
22
+ const isErrorResponse = (payload) => {
23
+ if (typeof payload !== "object")
24
+ return false;
25
+ if (payload === null)
26
+ return false;
27
+ if (!("message" in payload))
28
+ return false;
29
+ if (typeof payload.message !== "string")
30
+ return false;
31
+ if (!("_tag" in payload))
32
+ return false;
33
+ if (typeof payload._tag !== "string")
34
+ return false;
35
+ return true;
36
+ };
37
+ /**
38
+ * Make a fetch request and parse the response using the provided
39
+ * responsePredicate function.
40
+ * @param param0
41
+ * @returns
42
+ */
43
+ export const makeRequest = ({ url, payload, responsePredicate, label, }) => Micro.gen(function* () {
44
+ const headers = {
45
+ "Content-Type": "application/json",
46
+ Accept: "application/json",
47
+ };
48
+ const body = JSON.stringify(payload);
49
+ const networkError = new UnexpectedError({
50
+ message: "Fetch failed",
51
+ url: String(url),
52
+ });
53
+ const parseError = new UnexpectedError({
54
+ message: "Unable to parse JSON response",
55
+ url: String(url),
56
+ });
57
+ const invalidResponsePayload = new UnexpectedError({
58
+ message: `Invalid ${label} response`,
59
+ url: String(url),
60
+ });
61
+ const fetchResponse = yield* Micro.tryPromise({
62
+ try: () => fetch(url, { method: "post", headers, body }),
63
+ catch: () => networkError,
64
+ });
65
+ if (!fetchResponse.ok) {
66
+ const apiError = yield* Micro.tryPromise({
67
+ try: () => fetchResponse.json(),
68
+ catch: () => parseError,
69
+ });
70
+ return isErrorResponse(apiError)
71
+ ? yield* new UnexpectedError({
72
+ ...apiError,
73
+ url: String(url),
74
+ })
75
+ : yield* parseError;
76
+ }
77
+ const json = yield* Micro.tryPromise({
78
+ try: () => fetchResponse.json(),
79
+ catch: () => parseError,
80
+ });
81
+ return responsePredicate(json) ? json : yield* invalidResponsePayload;
82
+ });
83
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type AuthenticationError, type AuthenticationOptions, type AuthenticationSuccess } from "./micro";
2
+ import { Logger } from "../../logger";
3
+ /**
4
+ * Trigger local passkey authentication then verify the passkey in the Passlock vault.
5
+ * Returns a code and id_token that can be exchanged/decoded in your backend.
6
+ *
7
+ * @param options
8
+ * @returns
9
+ */
10
+ export declare const authenticatePasskeyUnsafe: (options: AuthenticationOptions, logger?: typeof Logger.Service) => Promise<AuthenticationSuccess>;
11
+ /**
12
+ * Trigger local passkey authentication then verify the passkey in the Passlock vault.
13
+ * Returns a code and id_token that can be exchanged/decoded in your backend.
14
+ *
15
+ * @param options
16
+ * @returns
17
+ */
18
+ export declare const authenticatePasskey: (options: AuthenticationOptions, logger?: typeof Logger.Service) => Promise<AuthenticationSuccess | AuthenticationError>;
19
+ export type { AuthenticationSuccess, AuthenticationError } from "./micro";
20
+ export { isAuthenticationSuccess } from "./micro";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/passkey/authentication/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAe,MAAM,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,SAAS,qBAAqB,EAC9B,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,qBAAqB,CAK7B,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,qBAAqB,EAC9B,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,qBAAqB,GAAG,mBAAmB,CAKnD,CAAC;AAEJ,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Micro, pipe } from "effect";
2
+ import { runToPromise, runToPromiseUnsafe } from "../../promise";
3
+ import { authenticatePasskey as authenticatePasskeyM, } from "./micro";
4
+ import { EventLogger, Logger } from "../../logger";
5
+ /**
6
+ * Trigger local passkey authentication then verify the passkey in the Passlock vault.
7
+ * Returns a code and id_token that can be exchanged/decoded in your backend.
8
+ *
9
+ * @param options
10
+ * @returns
11
+ */
12
+ export const authenticatePasskeyUnsafe = (options, logger = EventLogger) => pipe(authenticatePasskeyM(options), Micro.provideService(Logger, logger), runToPromiseUnsafe);
13
+ /**
14
+ * Trigger local passkey authentication then verify the passkey in the Passlock vault.
15
+ * Returns a code and id_token that can be exchanged/decoded in your backend.
16
+ *
17
+ * @param options
18
+ * @returns
19
+ */
20
+ export const authenticatePasskey = (options, logger = EventLogger) => pipe(authenticatePasskeyM(options), Micro.provideService(Logger, logger), runToPromise);
21
+ export { isAuthenticationSuccess } from "./micro";
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/passkey/authentication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,mBAAmB,IAAI,oBAAoB,GAI5C,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,OAA8B,EAC9B,SAAgC,WAAW,EACX,EAAE,CAClC,IAAI,CACF,oBAAoB,CAAC,OAAO,CAAC,EAC7B,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,kBAAkB,CACnB,CAAC;AAEJ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAA8B,EAC9B,SAAgC,WAAW,EACW,EAAE,CACxD,IAAI,CACF,oBAAoB,CAAC,OAAO,CAAC,EAC7B,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,YAAY,CACb,CAAC;AAGJ,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { Micro } from "effect";
2
+ import { type UnexpectedError } from "../../network";
3
+ import { OtherPasskeyError, PasskeysUnsupportedError } from "../shared";
4
+ import { type PasslockOptions } from "../../shared";
5
+ import { Logger } from "../../logger";
6
+ import type { UserVerification } from "../types";
7
+ export interface AuthenticationOptions extends PasslockOptions {
8
+ /**
9
+ * Passlock userId. Essentially a shortcut to look up any
10
+ * registered passkeys (allowCredentials) for a given user.
11
+ */
12
+ userId?: string | undefined;
13
+ /**
14
+ * Restrict the passkey(s) the device presents to the user to a given set
15
+ *
16
+ * @see {@link https://passlock.dev/passkeys/authentication/#allowcredentials|allowCredentials}
17
+ */
18
+ allowCredentials?: Array<string> | undefined;
19
+ /**
20
+ * Whether the device should re-authenticate the user locally before registering the passkey.
21
+ *
22
+ * @see {@link https://passlock.dev/passkeys/user-verification/|userVerification}
23
+ */
24
+ userVerification?: UserVerification | undefined;
25
+ timeout?: number | undefined;
26
+ }
27
+ declare const AuthenticationSuccessTag: "AuthenticationSuccess";
28
+ type AuthenticationSuccessTag = typeof AuthenticationSuccessTag;
29
+ /**
30
+ * Represents the outcome of a successfull passkey authentication.
31
+ * Submit the code and/or id_token to your backend, then either
32
+ * exchange the code with the passlock REST API or decode and
33
+ * verify the id_token (JWT).
34
+ *
35
+ * Note: The @passlock/node library includes utilities to do this
36
+ * for you.
37
+ */
38
+ export interface AuthenticationSuccess {
39
+ _tag: AuthenticationSuccessTag;
40
+ principal: {
41
+ authenticatorId: string;
42
+ userId: string;
43
+ };
44
+ /**
45
+ * A signed JWT representing the newly registered passkey.
46
+ * Decode and verify this in your backend or use one of the @passlock/node
47
+ * helper utilities.
48
+ *
49
+ * @see {@link https://passlock.dev/principal/idtoken-verification/|id_token}
50
+ */
51
+ id_token: string;
52
+ /**
53
+ * Call the Passlock API to exchange this code for details about the newly
54
+ * registered passkey.
55
+ *
56
+ * @see {@link https://passlock.dev/principal/code-exchange//|code exchange}
57
+ */
58
+ code: string;
59
+ }
60
+ export declare const isAuthenticationSuccess: (payload: unknown) => payload is AuthenticationSuccess;
61
+ export type AuthenticationError = PasskeysUnsupportedError | OtherPasskeyError | UnexpectedError;
62
+ /**
63
+ * Trigger local passkey authentication then verify the passkey in the Passlock vault.
64
+ * Returns a code and id_token that can be exchanged/decoded in your backend.
65
+ *
66
+ * @param options
67
+ * @returns
68
+ */
69
+ export declare const authenticatePasskey: (options: AuthenticationOptions) => Micro.Micro<AuthenticationSuccess, AuthenticationError, Logger>;
70
+ export {};
71
+ //# sourceMappingURL=micro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"micro.d.ts","sourceRoot":"","sources":["../../../src/passkey/authentication/micro.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAC;AAGrC,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAqBjD,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAwBD,QAAA,MAAM,wBAAwB,EAAG,uBAAgC,CAAC;AAClE,KAAK,wBAAwB,GAAG,OAAO,wBAAwB,CAAC;AAEhE;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE;QACT,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,uBAAuB,GAClC,SAAS,OAAO,KACf,OAAO,IAAI,qBASb,CAAC;AA6DF,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,iBAAiB,GACjB,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,qBAAqB,KAC7B,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAgBhE,CAAC"}
@@ -0,0 +1,107 @@
1
+ import { WebAuthnError, startAuthentication as simpleAuthentication, browserSupportsWebAuthn, } from "@simplewebauthn/browser";
2
+ import { Micro, pipe } from "effect";
3
+ import { TenancyId } from "../../tenancy";
4
+ import { buildEndpoint, Endpoint, makeRequest, } from "../../network";
5
+ import { OtherPasskeyError, PasskeysUnsupportedError } from "../shared";
6
+ import {} from "../../shared";
7
+ import { Logger } from "../../logger";
8
+ const isOptionsResponse = (payload) => {
9
+ if (typeof payload !== "object")
10
+ return false;
11
+ if (payload === null)
12
+ return false;
13
+ if (!("optionsJSON" in payload))
14
+ return false;
15
+ if (typeof payload.optionsJSON !== "object")
16
+ return false;
17
+ if (payload.optionsJSON === null)
18
+ return false;
19
+ if (!("sessionToken" in payload))
20
+ return false;
21
+ if (typeof payload.sessionToken !== "string")
22
+ return false;
23
+ return true;
24
+ };
25
+ const fetchOptions = ({ userId, userVerification }) => Micro.gen(function* () {
26
+ const logger = yield* Micro.service(Logger);
27
+ const { endpoint } = yield* Micro.service(Endpoint);
28
+ const { tenancyId } = yield* Micro.service(TenancyId);
29
+ const url = new URL(`${tenancyId}/passkey/authentication/options`, endpoint);
30
+ yield* logger.logInfo("Fetching passkey authentication options from Passlock");
31
+ return yield* makeRequest({
32
+ url,
33
+ payload: { userId, userVerification },
34
+ label: "authentication options",
35
+ responsePredicate: isOptionsResponse,
36
+ });
37
+ });
38
+ const AuthenticationSuccessTag = "AuthenticationSuccess";
39
+ export const isAuthenticationSuccess = (payload) => {
40
+ if (typeof payload !== "object")
41
+ return false;
42
+ if (payload === null)
43
+ return false;
44
+ if (!("_tag" in payload))
45
+ return false;
46
+ if (typeof payload._tag !== "string")
47
+ return false;
48
+ if (payload._tag !== AuthenticationSuccessTag)
49
+ return false;
50
+ return true;
51
+ };
52
+ const verifyCredential = (sessionToken, response) => Micro.gen(function* () {
53
+ const logger = yield* Micro.service(Logger);
54
+ const { endpoint } = yield* Micro.service(Endpoint);
55
+ const { tenancyId } = yield* Micro.service(TenancyId);
56
+ const url = new URL(`${tenancyId}/passkey/authentication/verification`, endpoint);
57
+ yield* logger.logInfo("Verifying passkey in Passlock vault");
58
+ const authenticationResponse = yield* makeRequest({
59
+ url,
60
+ payload: { sessionToken, response },
61
+ label: "authentication verification",
62
+ responsePredicate: isAuthenticationSuccess,
63
+ });
64
+ yield* logger.logInfo(`Passkey with id ${authenticationResponse.principal.authenticatorId} successfully authenticated`);
65
+ return authenticationResponse;
66
+ });
67
+ const startAuthentication = (optionsJSON) => Micro.gen(function* () {
68
+ const logger = yield* Micro.service(Logger);
69
+ yield* logger.logInfo("Requesting passkey authentication on device");
70
+ const isSupport = browserSupportsWebAuthn();
71
+ if (!isSupport)
72
+ yield* new PasskeysUnsupportedError({
73
+ message: "Device does not support passkeys",
74
+ });
75
+ return yield* Micro.tryPromise({
76
+ try: () => simpleAuthentication({ optionsJSON }),
77
+ catch: (error) => {
78
+ if (error instanceof WebAuthnError) {
79
+ return new OtherPasskeyError({
80
+ error: error.cause,
81
+ message: error.message,
82
+ code: error.code,
83
+ });
84
+ }
85
+ else {
86
+ return new OtherPasskeyError({ error, message: "Unexpected error" });
87
+ }
88
+ },
89
+ });
90
+ });
91
+ /**
92
+ * Trigger local passkey authentication then verify the passkey in the Passlock vault.
93
+ * Returns a code and id_token that can be exchanged/decoded in your backend.
94
+ *
95
+ * @param options
96
+ * @returns
97
+ */
98
+ export const authenticatePasskey = (options) => {
99
+ const endpoint = buildEndpoint(options);
100
+ const effect = Micro.gen(function* () {
101
+ const { sessionToken, optionsJSON } = yield* fetchOptions(options);
102
+ const response = yield* startAuthentication(optionsJSON);
103
+ return yield* verifyCredential(sessionToken, response);
104
+ });
105
+ return pipe(effect, Micro.provideService(TenancyId, options), Micro.provideService(Endpoint, endpoint));
106
+ };
107
+ //# sourceMappingURL=micro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"micro.js","sourceRoot":"","sources":["../../../src/passkey/authentication/micro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type { RegistrationOptions, RegistrationSuccess, RegistrationError, DuplicatePasskeyError, } from "./registration/micro";
2
+ export { registerPasskeyUnsafe, registerPasskey, isRegistrationSuccess, } from "./registration/index";
3
+ export type { AuthenticationOptions, AuthenticationSuccess, AuthenticationError, } from "./authentication/micro";
4
+ export { authenticatePasskeyUnsafe, authenticatePasskey, isAuthenticationSuccess, } from "./authentication/index";
5
+ export { isPasskeySupport, isAutofillSupport } from "./support";
6
+ export { PasskeysUnsupportedError, OtherPasskeyError } from "./shared";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/passkey/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { registerPasskeyUnsafe, registerPasskey, isRegistrationSuccess, } from "./registration/index";
2
+ export { authenticatePasskeyUnsafe, authenticatePasskey, isAuthenticationSuccess, } from "./authentication/index";
3
+ export { isPasskeySupport, isAutofillSupport } from "./support";
4
+ export { PasskeysUnsupportedError, OtherPasskeyError } from "./shared";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/passkey/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type RegistrationError, type RegistrationOptions, type RegistrationSuccess } from "./micro";
2
+ import { Logger } from "../../logger";
3
+ /**
4
+ * Register a passkey on the local device and store the
5
+ * associated public key in your Passlock vault.
6
+ * @param options
7
+ * @returns
8
+ */
9
+ export declare const registerPasskeyUnsafe: (options: RegistrationOptions, logger?: typeof Logger.Service) => Promise<RegistrationSuccess>;
10
+ /**
11
+ * Register a passkey on the local device and store the
12
+ * associated public key in your Passlock vault.
13
+ * @param options
14
+ * @returns
15
+ */
16
+ export declare const registerPasskey: (options: RegistrationOptions, logger?: typeof Logger.Service) => Promise<RegistrationSuccess | RegistrationError>;
17
+ export type { RegistrationSuccess, RegistrationError } from "./micro";
18
+ export { isRegistrationSuccess } from "./micro";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/passkey/registration/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAe,MAAM,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,mBAAmB,EAC5B,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,mBAAmB,CAK3B,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,mBAAmB,EAC5B,SAAQ,OAAO,MAAM,CAAC,OAAqB,KAC1C,OAAO,CAAC,mBAAmB,GAAG,iBAAiB,CAK/C,CAAC;AAEJ,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Micro, pipe } from "effect";
2
+ import { runToPromise, runToPromiseUnsafe } from "../../promise";
3
+ import { registerPasskey as registerPasskeyM, } from "./micro";
4
+ import { EventLogger, Logger } from "../../logger";
5
+ /**
6
+ * Register a passkey on the local device and store the
7
+ * associated public key in your Passlock vault.
8
+ * @param options
9
+ * @returns
10
+ */
11
+ export const registerPasskeyUnsafe = async (options, logger = EventLogger) => pipe(registerPasskeyM(options), Micro.provideService(Logger, logger), runToPromiseUnsafe);
12
+ /**
13
+ * Register a passkey on the local device and store the
14
+ * associated public key in your Passlock vault.
15
+ * @param options
16
+ * @returns
17
+ */
18
+ export const registerPasskey = async (options, logger = EventLogger) => pipe(registerPasskeyM(options), Micro.provideService(Logger, logger), runToPromise);
19
+ export { isRegistrationSuccess } from "./micro";
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/passkey/registration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,eAAe,IAAI,gBAAgB,GAIpC,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,OAA4B,EAC5B,SAAgC,WAAW,EACb,EAAE,CAChC,IAAI,CACF,gBAAgB,CAAC,OAAO,CAAC,EACzB,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,kBAAkB,CACnB,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,OAA4B,EAC5B,SAAgC,WAAW,EACO,EAAE,CACpD,IAAI,CACF,gBAAgB,CAAC,OAAO,CAAC,EACzB,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,YAAY,CACb,CAAC;AAGJ,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}