@passlock/client 0.9.32 → 2.0.0-beta.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 (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 -23
  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 -72
  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 -25
  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 -77
  96. package/dist/registration/register.js.map +0 -1
  97. package/dist/rpc/client.d.ts +0 -30
  98. package/dist/rpc/client.js +0 -101
  99. package/dist/rpc/client.js.map +0 -1
  100. package/dist/rpc/config.d.ts +0 -15
  101. package/dist/rpc/config.js +0 -6
  102. package/dist/rpc/config.js.map +0 -1
  103. package/dist/rpc/connection.d.ts +0 -8
  104. package/dist/rpc/connection.js +0 -16
  105. package/dist/rpc/connection.js.map +0 -1
  106. package/dist/rpc/passkey/authentication.d.ts +0 -8
  107. package/dist/rpc/passkey/authentication.js +0 -17
  108. package/dist/rpc/passkey/authentication.js.map +0 -1
  109. package/dist/rpc/passkey/registration.d.ts +0 -8
  110. package/dist/rpc/passkey/registration.js +0 -17
  111. package/dist/rpc/passkey/registration.js.map +0 -1
  112. package/dist/rpc/social.d.ts +0 -10
  113. package/dist/rpc/social.js +0 -19
  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 -20
  117. package/dist/rpc/user.js.map +0 -1
  118. package/dist/social/social.d.ts +0 -23
  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 -38
  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 -37
  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 -143
  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 -156
  163. package/src/rpc/client.ts +0 -174
  164. package/src/rpc/config.ts +0 -18
  165. package/src/rpc/connection.ts +0 -32
  166. package/src/rpc/passkey/authentication.ts +0 -52
  167. package/src/rpc/passkey/registration.ts +0 -52
  168. package/src/rpc/social.ts +0 -55
  169. package/src/rpc/user.ts +0 -68
  170. package/src/social/social.fixture.ts +0 -44
  171. package/src/social/social.test.ts +0 -179
  172. package/src/social/social.ts +0 -79
  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 -71
  180. package/src/version.ts +0 -1
@@ -1,25 +0,0 @@
1
- import { Effect as E, Layer as L, Option as O } from 'effect';
2
- import { VerifyEmailRequest, VerifyEmailResponse } from '@passlock/shared/dist/rpc/user.js';
3
- import * as Fixtures from '../test/fixtures.js';
4
- import { AuthenticationService } from '../authentication/authenticate.js';
5
- import { UserClient } from '../rpc/user.js';
6
- import { URLQueryString } from './email.js';
7
- export const token = 'token';
8
- export const code = 'code';
9
- export const authType = 'passkey';
10
- export const expireAt = Date.now() + 10000;
11
- export const locationSearchTest = L.succeed(URLQueryString, URLQueryString.of(E.succeed(`?code=${code}`)));
12
- export const authenticationServiceTest = L.succeed(AuthenticationService, AuthenticationService.of({
13
- authenticatePasskey: () => E.succeed(Fixtures.principal),
14
- }));
15
- export const rpcVerifyEmailReq = new VerifyEmailRequest({ token, code });
16
- export const rpcVerifyEmailRes = new VerifyEmailResponse({ principal: Fixtures.principal });
17
- export const rpcClientTest = L.succeed(UserClient, UserClient.of({
18
- isExistingUser: () => E.succeed({ existingUser: true, detail: O.none() }),
19
- verifyEmail: () => E.succeed(rpcVerifyEmailRes),
20
- resendVerificationEmail: () => E.fail(Fixtures.notImplemented),
21
- }));
22
- export const principal = Fixtures.principal;
23
- export const storedToken = Fixtures.storedToken;
24
- export const storageServiceTest = Fixtures.storageServiceTest;
25
- //# sourceMappingURL=email.fixture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email.fixture.js","sourceRoot":"","sources":["../../src/email/email.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAE3F,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAA;AAC5B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAA;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;AAE1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,OAAO,CACzC,cAAc,EACd,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAC9C,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,OAAO,CAChD,qBAAqB,EACrB,qBAAqB,CAAC,EAAE,CAAC;IACvB,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;CACzD,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,mBAAmB,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAE3F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CACpC,UAAU,EACV,UAAU,CAAC,EAAE,CAAC;IACZ,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACzE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAC/C,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/D,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAA"}
@@ -1,83 +0,0 @@
1
- /**
2
- * Email verification effects
3
- */
4
- import { Context, Effect as E, Layer, Option as O, flow, identity, pipe } from 'effect';
5
- import { BadRequest } from '@passlock/shared/dist/error/error.js';
6
- import { VerifyEmailRequest } from '@passlock/shared/dist/rpc/user.js';
7
- import { AuthenticationService } from '../authentication/authenticate.js';
8
- import { UserClient } from '../rpc/user.js';
9
- import { StorageService } from '../storage/storage.js';
10
- /* Dependencies */
11
- export class URLQueryString extends Context.Tag('@utils/URLQueryString')() {
12
- }
13
- /* Service */
14
- export class EmailService extends Context.Tag('@services/EmailService')() {
15
- }
16
- /**
17
- * Check for existing token in sessionStorage,
18
- * otherwise force passkey re-authentication
19
- * @returns
20
- */
21
- const getToken = () => {
22
- return E.gen(function* (_) {
23
- // Check for existing token
24
- const storageService = yield* _(StorageService);
25
- const existingTokenE = storageService.getToken('passkey');
26
- const authenticationService = yield* _(AuthenticationService);
27
- const tokenE = E.matchEffect(existingTokenE, {
28
- onSuccess: token => E.succeed(token),
29
- onFailure: () =>
30
- // No token, need to authenticate the user
31
- pipe(authenticationService.authenticatePasskey({
32
- userVerification: O.some('preferred'),
33
- email: O.none(),
34
- }), E.map(principal => ({
35
- token: principal.jti,
36
- authType: principal.authType,
37
- expiry: principal.exp.getTime(),
38
- }))),
39
- });
40
- const token = yield* _(tokenE);
41
- yield* _(storageService.clearToken('passkey'));
42
- return token;
43
- });
44
- };
45
- /**
46
- * Look for ?code=<code> in the url
47
- * @returns
48
- */
49
- export const extractCodeFromHref = () => {
50
- return pipe(URLQueryString, E.flatMap(identity), E.map(search => new URLSearchParams(search)), E.flatMap(params => O.fromNullable(params.get('code'))));
51
- };
52
- /* Effects */
53
- /**
54
- * Verify the mailbox using the given code
55
- * @param request
56
- * @returns
57
- */
58
- export const verifyEmail = (request) => {
59
- return E.gen(function* (_) {
60
- // Re-authenticate the user if required
61
- const { token } = yield* _(getToken());
62
- yield* _(E.logDebug('Making request'));
63
- const client = yield* _(UserClient);
64
- const { principal } = yield* _(client.verifyEmail(new VerifyEmailRequest({ token, code: request.code })));
65
- return principal;
66
- });
67
- };
68
- /**
69
- * Look for a code in the current url and verify it
70
- * @returns
71
- */
72
- export const verifyEmailLink = () => pipe(extractCodeFromHref(), E.mapError(() => new BadRequest({ message: 'Expected ?code=xxx in window.location' })), E.flatMap(code => verifyEmail({ code })));
73
- /* Live */
74
- /* v8 ignore start */
75
- export const EmailServiceLive = Layer.effect(EmailService, E.gen(function* (_) {
76
- const context = yield* _(E.context());
77
- return EmailService.of({
78
- verifyEmailCode: flow(verifyEmail, E.provide(context)),
79
- verifyEmailLink: flow(verifyEmailLink, E.provide(context)),
80
- });
81
- }));
82
- /* v8 ignore stop */
83
- //# sourceMappingURL=email.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/email/email.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Fire DOM events
3
- */
4
- import { Effect } from 'effect';
5
- import { InternalBrowserError } from '@passlock/shared/dist/error/error.js';
6
- export declare const DebugMessage = "PasslogDebugMessage";
7
- export declare const fireEvent: (message: string) => Effect.Effect<void, InternalBrowserError, never>;
8
- export declare function isPasslockEvent(event: Event): event is CustomEvent;
@@ -1,23 +0,0 @@
1
- /**
2
- * Fire DOM events
3
- */
4
- import { Effect } from 'effect';
5
- import { InternalBrowserError } from '@passlock/shared/dist/error/error.js';
6
- export const DebugMessage = 'PasslogDebugMessage';
7
- export const fireEvent = (message) => {
8
- return Effect.try({
9
- try: () => {
10
- const evt = new CustomEvent(DebugMessage, { detail: message });
11
- globalThis.dispatchEvent(evt);
12
- },
13
- catch: () => {
14
- return new InternalBrowserError({ message: 'Unable to fire custom event' });
15
- },
16
- });
17
- };
18
- export function isPasslockEvent(event) {
19
- if (event.type !== DebugMessage)
20
- return false;
21
- return 'detail' in event;
22
- }
23
- //# sourceMappingURL=event.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAE3E,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAA;AAEjD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE;YACR,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YAC9D,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,OAAO,IAAI,oBAAoB,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAA;QAC7E,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,KAAK,CAAA;IAC7C,OAAO,QAAQ,IAAI,KAAK,CAAA;AAC1B,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Logger implementation that also fires DOM events.
3
- * This is useful to allow external code to plug into the logging
4
- * mechanism. E.g. the Passlock demo subscribes to events to generate
5
- * a typewriter style effect
6
- */
7
- import { Effect as E } from 'effect';
8
- /**
9
- * Some log messages span multiple lines/include json etc which is
10
- * better output without being formatted by Effect's logging framework
11
- *
12
- * @param message
13
- * @returns
14
- */
15
- export declare const logRaw: <T>(message: T) => E.Effect<void, never, never>;
16
- export declare const DebugMessage = "PasslogDebugMessage";
17
- export declare const eventLoggerLive: import("effect/Layer").Layer<never, never, never>;
@@ -1,38 +0,0 @@
1
- /**
2
- * Logger implementation that also fires DOM events.
3
- * This is useful to allow external code to plug into the logging
4
- * mechanism. E.g. the Passlock demo subscribes to events to generate
5
- * a typewriter style effect
6
- */
7
- import { Effect as E, LogLevel, Logger } from 'effect';
8
- /**
9
- * Some log messages span multiple lines/include json etc which is
10
- * better output without being formatted by Effect's logging framework
11
- *
12
- * @param message
13
- * @returns
14
- */
15
- export const logRaw = (message) => {
16
- return E.sync(() => {
17
- console.log(message);
18
- });
19
- };
20
- export const DebugMessage = 'PasslogDebugMessage';
21
- const dispatch = (message) => {
22
- try {
23
- const evt = new CustomEvent(DebugMessage, { detail: message });
24
- globalThis.dispatchEvent(evt);
25
- }
26
- catch {
27
- globalThis.console.log('Unable to fire custom event');
28
- }
29
- };
30
- export const eventLoggerLive = Logger.add(Logger.make(({ logLevel, message }) => {
31
- if (typeof message === 'string' && logLevel !== LogLevel.Debug) {
32
- dispatch(message);
33
- }
34
- else if (Array.isArray(message) && logLevel !== LogLevel.Debug) {
35
- message.forEach(dispatch);
36
- }
37
- }));
38
- //# sourceMappingURL=eventLogger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventLogger.js","sourceRoot":"","sources":["../../src/logging/eventLogger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,OAAU,EAAE,EAAE;IACtC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAA;AAEjD,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QAC9D,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;IACvD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CACvC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/D,QAAQ,CAAC,OAAO,CAAC,CAAA;IACnB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC,CAAC,CACH,CAAA"}
@@ -1,25 +0,0 @@
1
- import { Context, Effect as E, Layer } from 'effect';
2
- import type { Duplicate, NotSupported } from '@passlock/shared/dist/error/error.js';
3
- import { InternalBrowserError } from '@passlock/shared/dist/error/error.js';
4
- import * as RPC from '../rpc/passkey/registration.js';
5
- import type { RegistrationCredential } from '@passlock/shared/dist/schema/passkey.js';
6
- import type { Principal } from '@passlock/shared/dist/schema/principal.js';
7
- import { Capabilities } from '../capabilities/capabilities.js';
8
- import { StorageService } from '../storage/storage.js';
9
- import type { UserService } from '../user/user.js';
10
- export type RegistrationRequest = RPC.OptionsRequest;
11
- declare const CreateCredential_base: Context.TagClass<CreateCredential, "@services/CreateCredential", {
12
- createCredential: (request: CredentialCreationOptions) => E.Effect<RegistrationCredential, InternalBrowserError | Duplicate>;
13
- }>;
14
- export declare class CreateCredential extends CreateCredential_base {
15
- }
16
- export type RegistrationErrors = NotSupported | RPC.OptionsErrors | RPC.VerificationErrors;
17
- declare const RegistrationService_base: Context.TagClass<RegistrationService, "@services/RegistrationService", {
18
- registerPasskey: (request: RegistrationRequest) => E.Effect<Principal, RegistrationErrors>;
19
- }>;
20
- export declare class RegistrationService extends RegistrationService_base {
21
- }
22
- type Dependencies = Capabilities | CreateCredential | StorageService | UserService | RPC.RegistrationClient;
23
- export declare const registerPasskey: (request: RegistrationRequest) => E.Effect<Principal, RegistrationErrors, Dependencies>;
24
- export declare const RegistrationServiceLive: Layer.Layer<RegistrationService, never, Capabilities | StorageService | RPC.RegistrationClient | UserService | CreateCredential>;
25
- export {};
@@ -1,53 +0,0 @@
1
- import { Layer as L } from 'effect';
2
- import { OptionsRequest, OptionsResponse, VerificationRequest, VerificationResponse } from '@passlock/shared/dist/rpc/passkey/registration.js';
3
- import type { RegistrationCredential } from '@passlock/shared/dist/schema/passkey.js';
4
- import { RegistrationClient } from '../rpc/passkey/registration.js';
5
- import { UserService } from '../user/user.js';
6
- import { CreateCredential, type RegistrationRequest } from './register.js';
7
- export declare const session = "session";
8
- export declare const token = "token";
9
- export declare const code = "code";
10
- export declare const authType = "passkey";
11
- export declare const expireAt: number;
12
- export declare const registrationRequest: RegistrationRequest;
13
- export declare const rpcOptionsReq: OptionsRequest;
14
- export declare const registrationOptions: OptionsResponse;
15
- export declare const rpcOptionsRes: OptionsResponse;
16
- export declare const credential: RegistrationCredential;
17
- export declare const rpcVerificationReq: VerificationRequest;
18
- export declare const rpcVerificationRes: VerificationResponse;
19
- export declare const createCredentialTest: L.Layer<CreateCredential, never, never>;
20
- export declare const userServiceTest: L.Layer<UserService, never, never>;
21
- export declare const rpcClientTest: L.Layer<RegistrationClient, never, never>;
22
- export declare const principal: {
23
- readonly email?: string;
24
- readonly givenName?: string;
25
- readonly familyName?: string;
26
- readonly emailVerified?: boolean;
27
- readonly user?: {
28
- readonly email: string;
29
- readonly id: string;
30
- readonly givenName: string;
31
- readonly familyName: string;
32
- readonly emailVerified: boolean;
33
- };
34
- readonly iss: string;
35
- readonly aud: string;
36
- readonly sub: string;
37
- readonly iat: Date;
38
- readonly nbf: Date;
39
- readonly exp: Date;
40
- readonly jti: string;
41
- readonly token: string;
42
- readonly userVerified: boolean;
43
- readonly authType: "email" | "apple" | "google" | "passkey";
44
- readonly authId: string;
45
- readonly authStatement: {
46
- readonly userVerified: boolean;
47
- readonly authType: "email" | "apple" | "google" | "passkey";
48
- readonly authTimestamp: Date;
49
- };
50
- readonly expireAt: Date;
51
- };
52
- export declare const capabilitiesTest: L.Layer<import("../capabilities/capabilities.js").Capabilities, never, never>;
53
- export declare const storageServiceTest: L.Layer<import("../storage/storage.js").StorageService, never, never>;
@@ -1,66 +0,0 @@
1
- import { Effect as E, Layer as L, Option as O } from 'effect';
2
- import { OptionsRequest, OptionsResponse, VerificationRequest, VerificationResponse, } from '@passlock/shared/dist/rpc/passkey/registration.js';
3
- import * as Fixtures from '../test/fixtures.js';
4
- import { RegistrationClient } from '../rpc/passkey/registration.js';
5
- import { UserService } from '../user/user.js';
6
- import { CreateCredential } from './register.js';
7
- export const session = 'session';
8
- export const token = 'token';
9
- export const code = 'code';
10
- export const authType = 'passkey';
11
- export const expireAt = Date.now() + 10000;
12
- export const registrationRequest = {
13
- email: 'jdoe@gmail.com',
14
- givenName: O.some('john'),
15
- familyName: O.some('doe'),
16
- userVerification: O.none(),
17
- verifyEmail: O.none(),
18
- };
19
- export const rpcOptionsReq = new OptionsRequest(registrationRequest);
20
- export const registrationOptions = {
21
- session,
22
- publicKey: {
23
- rp: {
24
- name: 'passlock',
25
- id: 'passlock.dev',
26
- },
27
- user: {
28
- name: 'john doe',
29
- id: 'jdoe',
30
- displayName: 'john doe',
31
- },
32
- challenge: 'FKZSl_saKu5OXjLLwoq8eK3wlD8XgpGiS10SszW5RiE',
33
- pubKeyCredParams: [],
34
- },
35
- };
36
- export const rpcOptionsRes = new OptionsResponse(registrationOptions);
37
- export const credential = {
38
- type: 'public-key',
39
- id: '1',
40
- rawId: '1',
41
- response: {
42
- transports: [],
43
- clientDataJSON: '',
44
- attestationObject: '',
45
- },
46
- clientExtensionResults: {},
47
- };
48
- export const rpcVerificationReq = new VerificationRequest({
49
- session,
50
- credential,
51
- verifyEmail: O.none(),
52
- });
53
- export const rpcVerificationRes = new VerificationResponse({ principal: Fixtures.principal });
54
- export const createCredentialTest = L.succeed(CreateCredential, CreateCredential.of({ createCredential: () => E.succeed(credential) }));
55
- export const userServiceTest = L.succeed(UserService, UserService.of({
56
- isExistingUser: () => E.succeed(false),
57
- resendVerificationEmail: () => E.succeed(true),
58
- }));
59
- export const rpcClientTest = L.succeed(RegistrationClient, RegistrationClient.of({
60
- getRegistrationOptions: () => E.succeed(rpcOptionsRes),
61
- verifyRegistrationCredential: () => E.succeed(rpcVerificationRes),
62
- }));
63
- export const principal = Fixtures.principal;
64
- export const capabilitiesTest = Fixtures.capabilitiesTest;
65
- export const storageServiceTest = Fixtures.storageServiceTest;
66
- //# sourceMappingURL=register.fixture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.fixture.js","sourceRoot":"","sources":["../../src/registration/register.fixture.ts"],"names":[],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- /**
2
- * User & passkey registration effects
3
- */
4
- import { parseCreationOptionsFromJSON, } from '@github/webauthn-json/browser-ponyfill';
5
- import { Context, Effect as E, Layer, flow, pipe } from 'effect';
6
- import { InternalBrowserError } from '@passlock/shared/dist/error/error.js';
7
- import * as RPC from '../rpc/passkey/registration.js';
8
- import { Capabilities } from '../capabilities/capabilities.js';
9
- import { StorageService } from '../storage/storage.js';
10
- /* Dependencies */
11
- export class CreateCredential extends Context.Tag('@services/CreateCredential')() {
12
- }
13
- /* Service */
14
- export class RegistrationService extends Context.Tag('@services/RegistrationService')() {
15
- }
16
- /* Utilities */
17
- const fetchOptions = (request) => {
18
- return E.gen(function* (_) {
19
- yield* _(E.logDebug('Making request'));
20
- const rpcClient = yield* _(RPC.RegistrationClient);
21
- const { publicKey, session } = yield* _(rpcClient.getRegistrationOptions(request));
22
- yield* _(E.logDebug('Converting Passlock options to CredentialCreationOptions'));
23
- const options = yield* _(toCreationOptions({ publicKey }));
24
- return { options, session };
25
- });
26
- };
27
- const toCreationOptions = (jsonOptions) => {
28
- return pipe(E.try(() => parseCreationOptionsFromJSON(jsonOptions)), E.mapError(error => new InternalBrowserError({
29
- message: 'Browser was unable to create credential creation options',
30
- detail: String(error.error),
31
- })));
32
- };
33
- const verifyCredential = (request) => {
34
- return E.gen(function* (_) {
35
- yield* _(E.logDebug('Making request'));
36
- const rpcClient = yield* _(RPC.RegistrationClient);
37
- const { principal } = yield* _(rpcClient.verifyRegistrationCredential(request));
38
- return principal;
39
- });
40
- };
41
- export const registerPasskey = (request) => {
42
- const effect = E.gen(function* (_) {
43
- yield* _(E.logInfo('Checking if browser supports Passkeys'));
44
- const capabilities = yield* _(Capabilities);
45
- yield* _(capabilities.passkeySupport);
46
- yield* _(E.logInfo('Fetching registration options from Passlock'));
47
- const { options, session } = yield* fetchOptions(new RPC.OptionsRequest(request));
48
- yield* _(E.logInfo('Building new credential'));
49
- const { createCredential } = yield* _(CreateCredential);
50
- const credential = yield* _(createCredential(options));
51
- yield* _(E.logInfo('Storing credential public key in Passlock'));
52
- const verificationRequest = new RPC.VerificationRequest({
53
- ...request,
54
- credential,
55
- session,
56
- });
57
- const principal = yield* _(verifyCredential(verificationRequest));
58
- const storageService = yield* _(StorageService);
59
- yield* _(storageService.storeToken(principal));
60
- yield* _(E.logDebug('Storing token in local storage'));
61
- yield* _(E.logDebug('Defering local token deletion'));
62
- const delayedClearTokenE = pipe(storageService.clearExpiredToken('passkey'), E.delay('6 minutes'), E.fork);
63
- yield* _(delayedClearTokenE);
64
- return principal;
65
- });
66
- return E.catchTag(effect, 'InternalBrowserError', e => E.die(e));
67
- };
68
- /* Live */
69
- /* v8 ignore start */
70
- export const RegistrationServiceLive = Layer.effect(RegistrationService, E.gen(function* (_) {
71
- const context = yield* _(E.context());
72
- return RegistrationService.of({
73
- registerPasskey: flow(registerPasskey, E.provide(context)),
74
- });
75
- }));
76
- /* v8 ignore stop */
77
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/registration/register.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import * as S from '@effect/schema/Schema';
2
- import { Context, Effect as E, Layer } from 'effect';
3
- import { NetworkError } from '@passlock/shared/dist/error/error.js';
4
- import { RetrySchedule, RpcConfig } from './config.js';
5
- export type DispatcherResponse = {
6
- status: number;
7
- body: object;
8
- };
9
- declare const Dispatcher_base: Context.TagClass<Dispatcher, "@rpc/Dispatcher", {
10
- get: (path: string) => E.Effect<DispatcherResponse, NetworkError>;
11
- post: (path: string, body: string) => E.Effect<DispatcherResponse, NetworkError>;
12
- }>;
13
- /** To send the JSON to the backend */
14
- export declare class Dispatcher extends Dispatcher_base {
15
- }
16
- /** Fires off client requests using fetch */
17
- /** TODO: Write tests */
18
- /** TODO: Evaluate platform/http client (if now stable) */
19
- export declare const DispatcherLive: Layer.Layer<Dispatcher, never, RpcConfig | RetrySchedule>;
20
- export declare const makeGetRequest: <Res, ResEnc, Err, ErrEnc>(responseSchema: S.Schema<Res, ResEnc, never>, errorSchema: S.Schema<Err, ErrEnc, never>, dispatcher: Dispatcher["Type"]) => (path: string) => E.Effect<Res, Exclude<Exclude<Err, {
21
- _tag: "ParseError";
22
- }>, {
23
- _tag: "NetworkError";
24
- }>, never>;
25
- export declare const makePostRequest: <Req, ReqEnc, Res, ResEnc, Err, ErrEnc>(requestSchema: S.Schema<Req, ReqEnc, never>, responseSchema: S.Schema<Res, ResEnc, never>, errorSchema: S.Schema<Err, ErrEnc, never>, dispatcher: Dispatcher["Type"]) => (path: string, request: Req) => E.Effect<Res, Exclude<Exclude<Err, {
26
- _tag: "ParseError";
27
- }>, {
28
- _tag: "NetworkError";
29
- }>, never>;
30
- export {};
@@ -1,101 +0,0 @@
1
- import * as S from '@effect/schema/Schema';
2
- import { Context, Effect as E, Layer, pipe } from 'effect';
3
- import { NetworkError } from '@passlock/shared/dist/error/error.js';
4
- import { PASSLOCK_CLIENT_VERSION } from '../version.js';
5
- import { RetrySchedule, RpcConfig } from './config.js';
6
- /** To send the JSON to the backend */
7
- export class Dispatcher extends Context.Tag('@rpc/Dispatcher')() {
8
- }
9
- /** Fires off client requests using fetch */
10
- /** TODO: Write tests */
11
- /** TODO: Evaluate platform/http client (if now stable) */
12
- export const DispatcherLive = Layer.effect(Dispatcher, E.gen(function* (_) {
13
- const { schedule } = yield* _(RetrySchedule);
14
- const { tenancyId, clientId, endpoint: maybeEndpoint } = yield* _(RpcConfig);
15
- const parseJson = (res, url) => E.tryPromise({
16
- try: () => res.json(),
17
- catch: e => new NetworkError({
18
- message: 'Unable to extract json response from ' + url,
19
- detail: String(e),
20
- }),
21
- });
22
- // 400 errors are reflected in the RPC response error channel
23
- // so in network terms they're still "ok"
24
- const assertNo500s = (res, url) => {
25
- if (res.status >= 500) {
26
- return E.fail(new NetworkError({
27
- message: 'Received 500 response code from ' + url,
28
- }));
29
- }
30
- else
31
- return E.void;
32
- };
33
- const parseJsonObject = (json) => {
34
- return typeof json === 'object' && json !== null
35
- ? E.succeed(json)
36
- : E.fail(new NetworkError({
37
- message: `Expected JSON object to be returned from RPC endpoint, actual ${typeof json}`,
38
- }));
39
- };
40
- const buildUrl = (_path) => {
41
- const endpoint = maybeEndpoint || 'https://api.v1.passlock.dev';
42
- // drop leading /
43
- const path = _path.replace(/^\//, '');
44
- return `${endpoint}/${tenancyId}/${path}`;
45
- };
46
- return {
47
- get: (path) => {
48
- const effect = E.gen(function* (_) {
49
- const headers = {
50
- 'Accept': 'application/json',
51
- 'X-CLIENT-ID': clientId,
52
- 'X-PASSLOCK-CLIENT-VERSION': PASSLOCK_CLIENT_VERSION,
53
- };
54
- const url = buildUrl(path);
55
- const res = yield* _(E.tryPromise({
56
- try: () => fetch(url, { method: 'GET', headers }),
57
- catch: e => new NetworkError({ message: 'Unable to fetch from ' + url, detail: String(e) }),
58
- }));
59
- const json = yield* _(parseJson(res, url));
60
- yield* _(assertNo500s(res, url));
61
- const jsonObject = yield* _(parseJsonObject(json));
62
- return { status: res.status, body: jsonObject };
63
- });
64
- return E.retry(effect, { schedule });
65
- },
66
- post: (_path, body) => {
67
- const effect = E.gen(function* (_) {
68
- const headers = {
69
- 'Content-Type': 'application/json',
70
- 'Accept': 'application/json',
71
- 'X-CLIENT-ID': clientId,
72
- 'X-PASSLOCK-CLIENT-VERSION': PASSLOCK_CLIENT_VERSION,
73
- };
74
- // drop leading /
75
- const url = buildUrl(_path);
76
- const res = yield* _(E.tryPromise({
77
- try: () => fetch(url, { method: 'POST', headers, body }),
78
- catch: e => new NetworkError({ message: 'Unable to fetch from ' + url, detail: String(e) }),
79
- }));
80
- const json = yield* _(parseJson(res, url));
81
- yield* _(assertNo500s(res, url));
82
- const jsonObject = yield* _(parseJsonObject(json));
83
- return { status: res.status, body: jsonObject };
84
- });
85
- return E.retry(effect, { schedule });
86
- },
87
- };
88
- }));
89
- export const makeGetRequest = (responseSchema, errorSchema, dispatcher) => (path) => pipe(dispatcher.get(path), E.flatMap(res => {
90
- if (res.status === 200)
91
- return S.decodeUnknown(responseSchema)(res.body);
92
- return pipe(S.decodeUnknown(errorSchema)(res.body), E.flatMap(err => E.fail(err)));
93
- }), E.catchTag('ParseError', e => E.die(e)), E.catchTag('NetworkError', e => E.die(e)));
94
- export const makePostRequest = (requestSchema, responseSchema, errorSchema, dispatcher) => (path, request) => {
95
- return pipe(S.encode(requestSchema)(request), E.flatMap(request => dispatcher.post(path, JSON.stringify(request))), E.flatMap(res => {
96
- if (res.status === 200)
97
- return S.decodeUnknown(responseSchema)(res.body);
98
- return pipe(S.decodeUnknown(errorSchema)(res.body), E.flatMap(err => E.fail(err)));
99
- }), E.catchTag('ParseError', e => E.die(e)), E.catchTag('NetworkError', e => E.die(e)));
100
- };
101
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/rpc/client.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { Schedule } from 'effect';
2
- import { Context } from 'effect';
3
- declare const RpcConfig_base: Context.TagClass<RpcConfig, "@rpc/RpcConfig", {
4
- endpoint?: string;
5
- tenancyId: string;
6
- clientId: string;
7
- }>;
8
- export declare class RpcConfig extends RpcConfig_base {
9
- }
10
- declare const RetrySchedule_base: Context.TagClass<RetrySchedule, "@rpc/RetrySchedule", {
11
- schedule: Schedule.Schedule<unknown>;
12
- }>;
13
- export declare class RetrySchedule extends RetrySchedule_base {
14
- }
15
- export {};
@@ -1,6 +0,0 @@
1
- import { Context } from 'effect';
2
- export class RpcConfig extends Context.Tag('@rpc/RpcConfig')() {
3
- }
4
- export class RetrySchedule extends Context.Tag('@rpc/RetrySchedule')() {
5
- }
6
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/rpc/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAOzD;CAAG;AAEN,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAKjE;CAAG"}