@passlock/client 0.9.29 → 0.9.32

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 (92) hide show
  1. package/README.md +1 -1
  2. package/README.template.md +1 -1
  3. package/dist/authentication/authenticate.d.ts +5 -6
  4. package/dist/authentication/authenticate.fixture.d.ts +15 -15
  5. package/dist/authentication/authenticate.fixture.js +8 -8
  6. package/dist/authentication/authenticate.fixture.js.map +1 -1
  7. package/dist/authentication/authenticate.js +4 -5
  8. package/dist/authentication/authenticate.js.map +1 -1
  9. package/dist/connection/connection.d.ts +3 -3
  10. package/dist/connection/connection.fixture.d.ts +2 -2
  11. package/dist/connection/connection.fixture.js +2 -2
  12. package/dist/connection/connection.fixture.js.map +1 -1
  13. package/dist/connection/connection.js +2 -2
  14. package/dist/connection/connection.js.map +1 -1
  15. package/dist/effect.js +2 -2
  16. package/dist/effect.js.map +1 -1
  17. package/dist/email/email.d.ts +7 -7
  18. package/dist/email/email.fixture.d.ts +10 -10
  19. package/dist/email/email.fixture.js +3 -3
  20. package/dist/email/email.fixture.js.map +1 -1
  21. package/dist/email/email.js +2 -2
  22. package/dist/email/email.js.map +1 -1
  23. package/dist/index.d.ts +33 -31
  24. package/dist/index.js +5 -12
  25. package/dist/index.js.map +1 -1
  26. package/dist/registration/register.d.ts +5 -7
  27. package/dist/registration/register.fixture.d.ts +14 -14
  28. package/dist/registration/register.fixture.js +6 -6
  29. package/dist/registration/register.fixture.js.map +1 -1
  30. package/dist/registration/register.js +5 -6
  31. package/dist/registration/register.js.map +1 -1
  32. package/dist/rpc/client.js +1 -1
  33. package/dist/rpc/client.js.map +1 -1
  34. package/dist/rpc/connection.d.ts +1 -1
  35. package/dist/rpc/connection.js +3 -2
  36. package/dist/rpc/connection.js.map +1 -1
  37. package/dist/rpc/{authentication.d.ts → passkey/authentication.d.ts} +4 -4
  38. package/dist/rpc/passkey/authentication.js +17 -0
  39. package/dist/rpc/passkey/authentication.js.map +1 -0
  40. package/dist/rpc/{registration.d.ts → passkey/registration.d.ts} +3 -3
  41. package/dist/rpc/passkey/registration.js +17 -0
  42. package/dist/rpc/passkey/registration.js.map +1 -0
  43. package/dist/rpc/social.d.ts +1 -1
  44. package/dist/rpc/social.js +6 -5
  45. package/dist/rpc/social.js.map +1 -1
  46. package/dist/rpc/user.d.ts +1 -1
  47. package/dist/rpc/user.js +5 -4
  48. package/dist/rpc/user.js.map +1 -1
  49. package/dist/social/social.d.ts +7 -8
  50. package/dist/social/social.fixture.d.ts +11 -11
  51. package/dist/social/social.fixture.js +7 -7
  52. package/dist/social/social.fixture.js.map +1 -1
  53. package/dist/social/social.js +7 -8
  54. package/dist/social/social.js.map +1 -1
  55. package/dist/tsconfig.tsbuildinfo +1 -1
  56. package/dist/user/user.d.ts +3 -3
  57. package/dist/user/user.fixture.d.ts +6 -6
  58. package/dist/user/user.fixture.js +6 -6
  59. package/dist/user/user.fixture.js.map +1 -1
  60. package/dist/user/user.js +5 -6
  61. package/dist/user/user.js.map +1 -1
  62. package/dist/version.d.ts +1 -1
  63. package/dist/version.js +1 -1
  64. package/package.json +14 -14
  65. package/src/authentication/authenticate.fixture.ts +11 -11
  66. package/src/authentication/authenticate.test.ts +1 -1
  67. package/src/authentication/authenticate.ts +10 -16
  68. package/src/connection/connection.fixture.ts +2 -2
  69. package/src/connection/connection.ts +3 -3
  70. package/src/effect.ts +2 -2
  71. package/src/email/email.fixture.ts +3 -3
  72. package/src/email/email.ts +2 -2
  73. package/src/index.ts +10 -17
  74. package/src/registration/register.fixture.ts +11 -11
  75. package/src/registration/register.test.ts +1 -1
  76. package/src/registration/register.ts +11 -13
  77. package/src/rpc/client.ts +1 -1
  78. package/src/rpc/connection.ts +4 -2
  79. package/src/rpc/{authentication.ts → passkey/authentication.ts} +22 -13
  80. package/src/rpc/passkey/registration.ts +52 -0
  81. package/src/rpc/social.ts +24 -14
  82. package/src/rpc/user.ts +23 -12
  83. package/src/social/social.fixture.ts +7 -8
  84. package/src/social/social.test.ts +8 -8
  85. package/src/social/social.ts +13 -16
  86. package/src/user/user.fixture.ts +10 -10
  87. package/src/user/user.ts +7 -9
  88. package/dist/rpc/authentication.js +0 -16
  89. package/dist/rpc/authentication.js.map +0 -1
  90. package/dist/rpc/registration.js +0 -16
  91. package/dist/rpc/registration.js.map +0 -1
  92. package/src/rpc/registration.ts +0 -41
@@ -1,22 +1,29 @@
1
1
  import { Layer as L } from 'effect';
2
- import * as Shared from '@passlock/shared/dist/rpc/social.js';
3
2
  import { SocialClient } from '../rpc/social.js';
4
3
  import type { AuthenticateOidcReq } from './social.js';
4
+ import { OIDCRegistrationRequest, PrincipalResponse } from '@passlock/shared/dist/rpc/social.js';
5
5
  export declare const session = "session";
6
6
  export declare const token = "token";
7
7
  export declare const code = "code";
8
8
  export declare const authType = "passkey";
9
9
  export declare const expireAt: number;
10
- export declare const registerOidcReq: Shared.RegisterOidcReq;
10
+ export declare const registerOidcReq: OIDCRegistrationRequest;
11
11
  export declare const authOidcReq: AuthenticateOidcReq;
12
- export declare const rpcRegisterRes: Shared.PrincipalRes;
13
- export declare const rpcAuthenticateRes: Shared.PrincipalRes;
12
+ export declare const rpcRegisterRes: PrincipalResponse;
13
+ export declare const rpcAuthenticateRes: PrincipalResponse;
14
14
  export declare const rpcClientTest: L.Layer<SocialClient, never, never>;
15
15
  export declare const principal: {
16
16
  readonly email?: string;
17
17
  readonly givenName?: string;
18
18
  readonly familyName?: string;
19
19
  readonly emailVerified?: boolean;
20
+ readonly user?: {
21
+ readonly email: string;
22
+ readonly id: string;
23
+ readonly givenName: string;
24
+ readonly familyName: string;
25
+ readonly emailVerified: boolean;
26
+ };
20
27
  readonly iss: string;
21
28
  readonly aud: string;
22
29
  readonly sub: string;
@@ -28,13 +35,6 @@ export declare const principal: {
28
35
  readonly userVerified: boolean;
29
36
  readonly authType: "email" | "apple" | "google" | "passkey";
30
37
  readonly authId: string;
31
- readonly user?: {
32
- readonly id: string;
33
- readonly email: string;
34
- readonly givenName: string;
35
- readonly familyName: string;
36
- readonly emailVerified: boolean;
37
- };
38
38
  readonly authStatement: {
39
39
  readonly userVerified: boolean;
40
40
  readonly authType: "email" | "apple" | "google" | "passkey";
@@ -1,29 +1,29 @@
1
1
  import { Effect as E, Layer as L, Option as O } from 'effect';
2
- import * as Shared from '@passlock/shared/dist/rpc/social.js';
3
2
  import * as Fixtures from '../test/fixtures.js';
4
3
  import { SocialClient } from '../rpc/social.js';
4
+ import { OIDCAuthenticationRequest, OIDCRegistrationRequest, PrincipalResponse } from '@passlock/shared/dist/rpc/social.js';
5
5
  export const session = 'session';
6
6
  export const token = 'token';
7
7
  export const code = 'code';
8
8
  export const authType = 'passkey';
9
9
  export const expireAt = Date.now() + 10000;
10
- export const registerOidcReq = new Shared.RegisterOidcReq({
10
+ export const registerOidcReq = new OIDCRegistrationRequest({
11
11
  provider: 'google',
12
12
  idToken: 'google-token',
13
13
  nonce: 'nonce',
14
14
  givenName: O.some('john'),
15
15
  familyName: O.some('doe'),
16
16
  });
17
- export const authOidcReq = new Shared.AuthOidcReq({
17
+ export const authOidcReq = new OIDCAuthenticationRequest({
18
18
  provider: 'google',
19
19
  idToken: 'google-token',
20
20
  nonce: 'nonce',
21
21
  });
22
- export const rpcRegisterRes = new Shared.PrincipalRes({ principal: Fixtures.principal });
23
- export const rpcAuthenticateRes = new Shared.PrincipalRes({ principal: Fixtures.principal });
22
+ export const rpcRegisterRes = new PrincipalResponse({ principal: Fixtures.principal });
23
+ export const rpcAuthenticateRes = new PrincipalResponse({ principal: Fixtures.principal });
24
24
  export const rpcClientTest = L.succeed(SocialClient, SocialClient.of({
25
- registerOidc: () => E.fail(Fixtures.notImplemented),
26
- authenticateOidc: () => E.fail(Fixtures.notImplemented),
25
+ oidcRegistration: () => E.fail(Fixtures.notImplemented),
26
+ oidcAuthentication: () => E.fail(Fixtures.notImplemented),
27
27
  }));
28
28
  export const principal = Fixtures.principal;
29
29
  export const capabilitiesTest = Fixtures.capabilitiesTest;
@@ -1 +1 @@
1
- {"version":3,"file":"social.fixture.js","sourceRoot":"","sources":["../../src/social/social.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAA;AAE7D,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG/C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAA;AAChC,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,eAAe,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC;IACxD,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAwB,IAAI,MAAM,CAAC,WAAW,CAAC;IACrE,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,OAAO;CACf,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAExF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAE5F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CACpC,YAAY,EACZ,YAAY,CAAC,EAAE,CAAC;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACnD,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;CACxD,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAA;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAA"}
1
+ {"version":3,"file":"social.fixture.js","sourceRoot":"","sources":["../../src/social/social.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE3H,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAA;AAChC,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,eAAe,GAAG,IAAI,uBAAuB,CAAC;IACzD,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAwB,IAAI,yBAAyB,CAAC;IAC5E,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,OAAO;CACf,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAEtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAE1F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CACpC,YAAY,EACZ,YAAY,CAAC,EAAE,CAAC;IACd,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACvD,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC1D,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAA;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAA"}
@@ -2,27 +2,26 @@
2
2
  * Passkey authentication effects
3
3
  */
4
4
  import { Context, Effect as E, Layer, flow } from 'effect';
5
- import * as RPC from '@passlock/shared/dist/rpc/social.js';
5
+ import * as RPC from '../rpc/social.js';
6
6
  import {} from '@passlock/shared/dist/error/error.js';
7
- import { SocialClient } from '../rpc/social.js';
8
7
  /* Service */
9
8
  export class SocialService extends Context.Tag('@services/SocialService')() {
10
9
  }
11
10
  export const registerOidc = (request) => {
12
11
  return E.gen(function* (_) {
13
12
  yield* _(E.logInfo('Registering social account'));
14
- const rpcClient = yield* _(SocialClient);
15
- const rpcRequest = new RPC.RegisterOidcReq(request);
16
- const { principal } = yield* _(rpcClient.registerOidc(rpcRequest));
13
+ const rpcClient = yield* _(RPC.SocialClient);
14
+ const rpcRequest = new RPC.OIDCRegistrationRequest(request);
15
+ const { principal } = yield* _(rpcClient.oidcRegistration(rpcRequest));
17
16
  return principal;
18
17
  });
19
18
  };
20
19
  export const authenticateOidc = (request) => {
21
20
  return E.gen(function* (_) {
22
21
  yield* _(E.logInfo('Authenticating with social account'));
23
- const rpcClient = yield* _(SocialClient);
24
- const rpcRequest = new RPC.AuthOidcReq(request);
25
- const { principal } = yield* _(rpcClient.authenticateOidc(rpcRequest));
22
+ const rpcClient = yield* _(RPC.SocialClient);
23
+ const rpcRequest = new RPC.OIDCAuthenticationRequest(request);
24
+ const { principal } = yield* _(rpcClient.oidcAuthentication(rpcRequest));
26
25
  return principal;
27
26
  });
28
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE1D,OAAO,KAAK,GAAG,MAAM,qCAAqC,CAAA;AAC1D,OAAO,EAAsC,MAAM,sCAAsC,CAAA;AAGzF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAgB/C,aAAa;AAEb,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAMtE;CAAG;AAMN,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAwB,EAC+B,EAAE;IACzD,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAA;QAEjD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QACxC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAA;QAElE,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAA4B,EAC6B,EAAE;IAC3D,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,CAAA;QAEzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QACxC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAA;QAEtE,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,UAAU;AAEV,qBAAqB;AACrB,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAC3C,aAAa,EACb,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAgB,CAAC,CAAA;IAEnD,OAAO,aAAa,CAAC,EAAE,CAAC;QACtB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC7D,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA;AACD,oBAAoB"}
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAsC,MAAM,sCAAsC,CAAA;AAiBzF,aAAa;AAEb,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAMtE;CAAG;AAMN,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAwB,EAC+B,EAAE;IACzD,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAA;QAEjD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAC3D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAA;QAEtE,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAA4B,EAC6B,EAAE;IAC3D,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,CAAA;QAEzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;QAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAA;QAExE,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,UAAU;AAEV,qBAAqB;AACrB,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAC3C,aAAa,EACb,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAoB,CAAC,CAAA;IAEvD,OAAO,aAAa,CAAC,EAAE,CAAC;QACtB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC7D,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA;AACD,oBAAoB"}
@@ -1 +1 @@
1
- {"root":["../src/effect.ts","../src/index.ts","../src/version.ts","../src/authentication/authenticate.fixture.ts","../src/authentication/authenticate.test.ts","../src/authentication/authenticate.ts","../src/capabilities/capabilities.ts","../src/connection/connection.fixture.ts","../src/connection/connection.test.ts","../src/connection/connection.ts","../src/email/email.fixture.ts","../src/email/email.test.ts","../src/email/email.ts","../src/event/event.node.test.ts","../src/event/event.test.ts","../src/event/event.ts","../src/logging/eventlogger.test.ts","../src/logging/eventlogger.ts","../src/registration/register.fixture.ts","../src/registration/register.test.ts","../src/registration/register.ts","../src/rpc/authentication.ts","../src/rpc/client.ts","../src/rpc/config.ts","../src/rpc/connection.ts","../src/rpc/registration.ts","../src/rpc/social.ts","../src/rpc/user.ts","../src/social/social.fixture.ts","../src/social/social.test.ts","../src/social/social.ts","../src/storage/storage.fixture.ts","../src/storage/storage.test.ts","../src/storage/storage.ts","../src/test/fixtures.ts","../src/user/user.fixture.ts","../src/user/user.test.ts","../src/user/user.ts"],"version":"5.6.2"}
1
+ {"root":["../src/effect.ts","../src/index.ts","../src/version.ts","../src/authentication/authenticate.fixture.ts","../src/authentication/authenticate.test.ts","../src/authentication/authenticate.ts","../src/capabilities/capabilities.ts","../src/connection/connection.fixture.ts","../src/connection/connection.test.ts","../src/connection/connection.ts","../src/email/email.fixture.ts","../src/email/email.test.ts","../src/email/email.ts","../src/event/event.node.test.ts","../src/event/event.test.ts","../src/event/event.ts","../src/logging/eventlogger.test.ts","../src/logging/eventlogger.ts","../src/registration/register.fixture.ts","../src/registration/register.test.ts","../src/registration/register.ts","../src/rpc/client.ts","../src/rpc/config.ts","../src/rpc/connection.ts","../src/rpc/social.ts","../src/rpc/user.ts","../src/rpc/passkey/authentication.ts","../src/rpc/passkey/registration.ts","../src/social/social.fixture.ts","../src/social/social.test.ts","../src/social/social.ts","../src/storage/storage.fixture.ts","../src/storage/storage.test.ts","../src/storage/storage.ts","../src/test/fixtures.ts","../src/user/user.fixture.ts","../src/user/user.test.ts","../src/user/user.ts"],"version":"5.6.2"}
@@ -4,7 +4,7 @@
4
4
  import { Context, Effect as E, Layer } from 'effect';
5
5
  import type { BadRequest, Disabled, NotFound } from '@passlock/shared/dist/error/error.js';
6
6
  import type { VerifyEmail } from '@passlock/shared/dist/schema/email.js';
7
- import { UserClient } from '../rpc/user.js';
7
+ import * as RPC from '../rpc/user.js';
8
8
  export type Email = {
9
9
  email: string;
10
10
  };
@@ -18,8 +18,8 @@ declare const UserService_base: Context.TagClass<UserService, "@services/UserSer
18
18
  }>;
19
19
  export declare class UserService extends UserService_base {
20
20
  }
21
- type Dependencies = UserClient;
21
+ type Dependencies = RPC.UserClient;
22
22
  export declare const isExistingUser: (request: Email) => E.Effect<boolean, BadRequest, Dependencies>;
23
23
  export declare const resendVerificationEmail: (request: ResendEmail) => E.Effect<void, ResendEmailErrors, Dependencies>;
24
- export declare const UserServiceLive: Layer.Layer<UserService, never, UserClient>;
24
+ export declare const UserServiceLive: Layer.Layer<UserService, never, RPC.UserClient>;
25
25
  export {};
@@ -1,12 +1,12 @@
1
1
  import { Layer as L } from 'effect';
2
- import { IsExistingUserReq, IsExistingUserRes, ResendEmailReq, ResendEmailRes, VerifyEmailRes } from '@passlock/shared/dist/rpc/user.js';
2
+ import { IsExistingUserRequest, IsExistingUserResponse, ResendEmailRequest, ResendEmailResponse, VerifyEmailResponse } from '@passlock/shared/dist/rpc/user.js';
3
3
  import { UserClient } from '../rpc/user.js';
4
4
  import type { ResendEmail } from './user.js';
5
5
  export declare const email = "jdoe@gmail.com";
6
- export declare const isRegisteredReq: IsExistingUserReq;
7
- export declare const isRegisteredRes: IsExistingUserRes;
8
- export declare const verifyEmailRes: VerifyEmailRes;
6
+ export declare const isRegisteredReq: IsExistingUserRequest;
7
+ export declare const isRegisteredRes: IsExistingUserResponse;
8
+ export declare const verifyEmailRes: VerifyEmailResponse;
9
9
  export declare const resendEmailReq: ResendEmail;
10
- export declare const rpcResendEmailReq: ResendEmailReq;
11
- export declare const rpcResendEmailRes: ResendEmailRes;
10
+ export declare const rpcResendEmailReq: ResendEmailRequest;
11
+ export declare const rpcResendEmailRes: ResendEmailResponse;
12
12
  export declare const rpcClientTest: L.Layer<UserClient, never, never>;
@@ -1,17 +1,17 @@
1
1
  import { Effect as E, Layer as L, Option as O } from 'effect';
2
- import { IsExistingUserReq, IsExistingUserRes, ResendEmailReq, ResendEmailRes, VerifyEmailRes, } from '@passlock/shared/dist/rpc/user.js';
2
+ import { IsExistingUserRequest, IsExistingUserResponse, ResendEmailRequest, ResendEmailResponse, VerifyEmailResponse, } from '@passlock/shared/dist/rpc/user.js';
3
3
  import * as Fixtures from '../test/fixtures.js';
4
4
  import { UserClient } from '../rpc/user.js';
5
5
  export const email = 'jdoe@gmail.com';
6
- export const isRegisteredReq = new IsExistingUserReq({ email });
7
- export const isRegisteredRes = new IsExistingUserRes({ existingUser: false, detail: O.none() });
8
- export const verifyEmailRes = new VerifyEmailRes({ principal: Fixtures.principal });
6
+ export const isRegisteredReq = new IsExistingUserRequest({ email });
7
+ export const isRegisteredRes = new IsExistingUserResponse({ existingUser: false, detail: O.none() });
8
+ export const verifyEmailRes = new VerifyEmailResponse({ principal: Fixtures.principal });
9
9
  export const resendEmailReq = { userId: '123', method: 'code' };
10
- export const rpcResendEmailReq = new ResendEmailReq({
10
+ export const rpcResendEmailReq = new ResendEmailRequest({
11
11
  userId: '123',
12
12
  verifyEmail: { method: 'code' },
13
13
  });
14
- export const rpcResendEmailRes = new ResendEmailRes({});
14
+ export const rpcResendEmailRes = new ResendEmailResponse({});
15
15
  export const rpcClientTest = L.succeed(UserClient, UserClient.of({
16
16
  isExistingUser: () => E.succeed({ existingUser: true, detail: O.none() }),
17
17
  verifyEmail: () => E.succeed(verifyEmailRes),
@@ -1 +1 @@
1
- {"version":3,"file":"user.fixture.js","sourceRoot":"","sources":["../../src/user/user.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,mCAAmC,CAAA;AAE1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAG3C,MAAM,CAAC,MAAM,KAAK,GAAG,gBAAgB,CAAA;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,iBAAiB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AACnF,MAAM,CAAC,MAAM,cAAc,GAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC;IAClD,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;CAChC,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAA;AAEvD,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,cAAc,CAAC;IAC5C,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/D,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"user.fixture.js","sourceRoot":"","sources":["../../src/user/user.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAG3C,MAAM,CAAC,MAAM,KAAK,GAAG,gBAAgB,CAAA;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AACpG,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,mBAAmB,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AACxF,MAAM,CAAC,MAAM,cAAc,GAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,kBAAkB,CAAC;IACtD,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;CAChC,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAA;AAE5D,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,cAAc,CAAC;IAC5C,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/D,CAAC,CACH,CAAA"}
package/dist/user/user.js CHANGED
@@ -2,27 +2,26 @@
2
2
  * Check for an existing user
3
3
  */
4
4
  import { Context, Effect as E, Layer, flow } from 'effect';
5
- import { IsExistingUserReq, ResendEmailReq } from '@passlock/shared/dist/rpc/user.js';
6
- import { UserClient } from '../rpc/user.js';
5
+ import * as RPC from '../rpc/user.js';
7
6
  /* Service */
8
7
  export class UserService extends Context.Tag('@services/UserService')() {
9
8
  }
10
9
  export const isExistingUser = (request) => {
11
10
  return E.gen(function* (_) {
12
11
  yield* _(E.logInfo('Checking registration status'));
13
- const rpcClient = yield* _(UserClient);
12
+ const rpcClient = yield* _(RPC.UserClient);
14
13
  yield* _(E.logDebug('Making RPC request'));
15
- const { existingUser } = yield* _(rpcClient.isExistingUser(new IsExistingUserReq(request)));
14
+ const { existingUser } = yield* _(rpcClient.isExistingUser(new RPC.IsExistingUserRequest(request)));
16
15
  return existingUser;
17
16
  });
18
17
  };
19
18
  export const resendVerificationEmail = (request) => {
20
19
  return E.gen(function* (_) {
21
20
  yield* _(E.logInfo('Resending verification email'));
22
- const rpcClient = yield* _(UserClient);
21
+ const rpcClient = yield* _(RPC.UserClient);
23
22
  yield* _(E.logDebug('Making RPC request'));
24
23
  const { userId, ...verifyEmail } = request;
25
- yield* _(rpcClient.resendVerificationEmail(new ResendEmailReq({ userId, verifyEmail })));
24
+ yield* _(rpcClient.resendVerificationEmail(new RPC.ResendEmailRequest({ userId, verifyEmail })));
26
25
  });
27
26
  };
28
27
  /* Live */
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/user/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAG1D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAGrF,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAW3C,aAAa;AAEb,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAMlE;CAAG;AAMN,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAc,EAA+C,EAAE;IAC5F,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAEtC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAE3F,OAAO,YAAY,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,OAAoB,EAC6B,EAAE;IACnD,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAEtC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAA;QAC1C,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,UAAU;AAEV,qBAAqB;AACrB,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACzC,WAAW,EACX,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAc,CAAC,CAAA;IACjD,OAAO,WAAW,CAAC,EAAE,CAAC;QACpB,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC3E,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA;AACD,oBAAoB"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/user/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAI1D,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAWrC,aAAa;AAEb,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAMlE;CAAG;AAMN,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAc,EAA+C,EAAE;IAC5F,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAE1C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEnG,OAAO,YAAY,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,OAAoB,EAC6B,EAAE;IACnD,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAE1C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAA;QAC1C,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,UAAU;AAEV,qBAAqB;AACrB,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACzC,WAAW,EACX,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAkB,CAAC,CAAA;IACrD,OAAO,WAAW,CAAC,EAAE,CAAC;QACpB,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC3E,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA;AACD,oBAAoB"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const PASSLOCK_CLIENT_VERSION = "0.9.29";
1
+ export declare const PASSLOCK_CLIENT_VERSION = "0.9.32";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const PASSLOCK_CLIENT_VERSION = '0.9.29';
1
+ export const PASSLOCK_CLIENT_VERSION = '0.9.32';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@passlock/client",
3
- "version": "0.9.29",
3
+ "version": "0.9.32",
4
4
  "description": "Passkey authentication and social login for web apps (Typescript). Framework agnostic",
5
5
  "keywords": [
6
6
  "passkey",
@@ -45,33 +45,33 @@
45
45
  "!dist/**/*.spec.*"
46
46
  ],
47
47
  "dependencies": {
48
- "@effect/schema": "0.74.0",
48
+ "@effect/schema": "0.74.1",
49
49
  "@github/webauthn-json": "^2.1.1",
50
- "effect": "3.8.3",
51
- "@passlock/shared": "0.9.29"
50
+ "effect": "3.8.4",
51
+ "@passlock/shared": "0.9.32"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@qetza/replacetokens": "^1.7.0",
55
55
  "@total-typescript/tsconfig": "^1.0.4",
56
56
  "@trivago/prettier-plugin-sort-imports": "^4.3.0",
57
57
  "@tsconfig/node20": "^20.1.4",
58
- "@types/node": "^22.5.5",
59
- "@typescript-eslint/eslint-plugin": "^8.6.0",
60
- "@typescript-eslint/parser": "^8.6.0",
61
- "@vitest/coverage-v8": "^2.1.1",
62
- "@vitest/ui": "^2.1.1",
63
- "eslint": "^9.10.0",
58
+ "@types/node": "^22.7.4",
59
+ "@typescript-eslint/eslint-plugin": "^8.8.0",
60
+ "@typescript-eslint/parser": "^8.8.0",
61
+ "@vitest/coverage-v8": "^2.1.2",
62
+ "@vitest/ui": "^2.1.2",
63
+ "eslint": "^9.12.0",
64
64
  "eslint-config-prettier": "^9.1.0",
65
- "globals": "^15.9.0",
66
- "jsdom": "^25.0.0",
65
+ "globals": "^15.10.0",
66
+ "jsdom": "^25.0.1",
67
67
  "prettier": "^3.3.3",
68
68
  "publint": "^0.2.11",
69
69
  "rimraf": "^6.0.1",
70
70
  "tslib": "^2.7.0",
71
71
  "tsx": "^4.19.1",
72
72
  "typescript": "^5.6.2",
73
- "vite": "^5.4.6",
74
- "vitest": "^2.1.1",
73
+ "vite": "^5.4.8",
74
+ "vitest": "^2.1.2",
75
75
  "vitest-mock-extended": "^2.0.2"
76
76
  },
77
77
  "scripts": {
@@ -1,15 +1,15 @@
1
1
  import { Effect as E, Layer as L, Option as O } from 'effect'
2
2
 
3
3
  import {
4
- OptionsRes,
5
- VerificationReq,
6
- VerificationRes,
7
- } from '@passlock/shared/dist/rpc/authentication.js'
8
- import { IsExistingUserRes, VerifyEmailRes } from '@passlock/shared/dist/rpc/user.js'
4
+ OptionsResponse,
5
+ VerificationRequest,
6
+ VerificationResponse,
7
+ } from '@passlock/shared/dist/rpc/passkey/authentication.js'
8
+ import { IsExistingUserResponse, VerifyEmailResponse } from '@passlock/shared/dist/rpc/user.js'
9
9
  import type { AuthenticationCredential } from '@passlock/shared/dist/schema/passkey.js'
10
10
 
11
11
  import * as Fixtures from '../test/fixtures.js'
12
- import { AuthenticationClient } from '../rpc/authentication.js'
12
+ import { AuthenticationClient } from '../rpc/passkey/authentication.js'
13
13
  import { type AuthenticationRequest, GetCredential } from './authenticate.js'
14
14
 
15
15
  export const session = 'session'
@@ -23,7 +23,7 @@ export const request: AuthenticationRequest = {
23
23
  email: O.none(),
24
24
  }
25
25
 
26
- export const rpcOptionsRes = new OptionsRes({
26
+ export const rpcOptionsRes = new OptionsResponse({
27
27
  session,
28
28
  publicKey: {
29
29
  rpId: 'passlock.dev',
@@ -47,13 +47,13 @@ export const credential: AuthenticationCredential = {
47
47
  authenticatorAttachment: null,
48
48
  }
49
49
 
50
- export const rpcVerificationReq = new VerificationReq({ session, credential })
50
+ export const rpcVerificationReq = new VerificationRequest({ session, credential })
51
51
 
52
- export const rpcVerificationRes = new VerificationRes({ principal: Fixtures.principal })
52
+ export const rpcVerificationRes = new VerificationResponse({ principal: Fixtures.principal })
53
53
 
54
- export const rpcIsExistingUserRes = new IsExistingUserRes({ existingUser: true, detail: O.none() })
54
+ export const rpcIsExistingUserRes = new IsExistingUserResponse({ existingUser: true, detail: O.none() })
55
55
 
56
- export const rpcVerifyEmailRes = new VerifyEmailRes({ principal: Fixtures.principal })
56
+ export const rpcVerifyEmailRes = new VerifyEmailResponse({ principal: Fixtures.principal })
57
57
 
58
58
  export const getCredentialTest = L.succeed(
59
59
  GetCredential,
@@ -3,7 +3,7 @@ import { describe, expect, test, vi } from 'vitest'
3
3
  import { mock } from 'vitest-mock-extended'
4
4
 
5
5
  import * as Fixture from './authenticate.fixture.js'
6
- import { AuthenticationClient } from '../rpc/authentication.js'
6
+ import { AuthenticationClient } from '../rpc/passkey/authentication.js'
7
7
  import { StorageService } from '../storage/storage.js'
8
8
  import { AuthenticateServiceLive, AuthenticationService, GetCredential } from './authenticate.js'
9
9
 
@@ -8,25 +8,19 @@ import {
8
8
  import { Context, Effect as E, Layer, flow, pipe } from 'effect'
9
9
 
10
10
  import { InternalBrowserError, type NotSupported } from '@passlock/shared/dist/error/error.js'
11
- import {
12
- type OptionsErrors,
13
- type OptionsReq,
14
- type VerificationErrors,
15
- VerificationReq,
16
- } from '@passlock/shared/dist/rpc/authentication.js'
11
+ import * as RPC from '../rpc/passkey/authentication.js'
17
12
  import type { AuthenticationCredential } from '@passlock/shared/dist/schema/passkey.js'
18
13
  import type { Principal } from '@passlock/shared/dist/schema/principal.js'
19
14
 
20
15
  import { Capabilities } from '../capabilities/capabilities.js'
21
- import { AuthenticationClient } from '../rpc/authentication.js'
22
16
  import { StorageService } from '../storage/storage.js'
23
17
 
24
18
  /* Requests */
25
19
 
26
- export type AuthenticationRequest = OptionsReq
20
+ export type AuthenticationRequest = RPC.OptionsRequest
27
21
  /* Errors */
28
22
 
29
- export type AuthenticationErrors = NotSupported | OptionsErrors | VerificationErrors
23
+ export type AuthenticationErrors = NotSupported | RPC.OptionsErrors | RPC.VerificationErrors
30
24
 
31
25
  /* Dependencies */
32
26
 
@@ -52,11 +46,11 @@ export class AuthenticationService extends Context.Tag('@services/Authentication
52
46
 
53
47
  /* Utilities */
54
48
 
55
- const fetchOptions = (request: OptionsReq) => {
49
+ const fetchOptions = (request: RPC.OptionsRequest) => {
56
50
  return E.gen(function* (_) {
57
51
  yield* _(E.logDebug('Making request'))
58
52
 
59
- const rpcClient = yield* _(AuthenticationClient)
53
+ const rpcClient = yield* _(RPC.AuthenticationClient)
60
54
  const { publicKey, session } = yield* _(rpcClient.getAuthenticationOptions(request))
61
55
 
62
56
  yield* _(E.logDebug('Converting Passlock options to CredentialRequestOptions'))
@@ -79,11 +73,11 @@ const toRequestOptions = (request: CredentialRequestOptionsJSON) => {
79
73
  )
80
74
  }
81
75
 
82
- const verifyCredential = (request: VerificationReq) => {
76
+ const verifyCredential = (request: RPC.VerificationRequest) => {
83
77
  return E.gen(function* (_) {
84
78
  yield* _(E.logDebug('Making request'))
85
79
 
86
- const rpcClient = yield* _(AuthenticationClient)
80
+ const rpcClient = yield* _(RPC.AuthenticationClient)
87
81
  const { principal } = yield* _(rpcClient.verifyAuthenticationCredential(request))
88
82
 
89
83
  return principal
@@ -92,7 +86,7 @@ const verifyCredential = (request: VerificationReq) => {
92
86
 
93
87
  /* Effects */
94
88
 
95
- type Dependencies = GetCredential | Capabilities | StorageService | AuthenticationClient
89
+ type Dependencies = GetCredential | Capabilities | StorageService | RPC.AuthenticationClient
96
90
 
97
91
  export const authenticatePasskey = (
98
92
  request: AuthenticationRequest,
@@ -111,7 +105,7 @@ export const authenticatePasskey = (
111
105
  const credential = yield* _(getCredential(options))
112
106
 
113
107
  yield* _(E.logInfo('Verifying credential with Passlock'))
114
- const principal = yield* _(verifyCredential(new VerificationReq({ credential, session })))
108
+ const principal = yield* _(verifyCredential(new RPC.VerificationRequest({ credential, session })))
115
109
 
116
110
  const storageService = yield* _(StorageService)
117
111
  yield* _(storageService.storeToken(principal))
@@ -138,7 +132,7 @@ export const AuthenticateServiceLive = Layer.effect(
138
132
  AuthenticationService,
139
133
  E.gen(function* (_) {
140
134
  const context = yield* _(
141
- E.context<GetCredential | AuthenticationClient | Capabilities | StorageService>(),
135
+ E.context<GetCredential | RPC.AuthenticationClient | Capabilities | StorageService>(),
142
136
  )
143
137
 
144
138
  return AuthenticationService.of({
@@ -1,10 +1,10 @@
1
1
  import { Effect as E, Layer as L } from 'effect'
2
2
 
3
- import { ConnectRes } from '@passlock/shared/dist/rpc/connection.js'
3
+ import { ConnectResponse } from '@passlock/shared/dist/rpc/connection.js'
4
4
 
5
5
  import { ConnectionClient } from '../rpc/connection.js'
6
6
 
7
- export const preConnectRes = new ConnectRes({ warmed: true })
7
+ export const preConnectRes = new ConnectResponse({ warmed: true })
8
8
 
9
9
  export const rpcClientTest = L.succeed(
10
10
  ConnectionClient,
@@ -5,7 +5,7 @@ import { Context, Effect as E, Layer, flow, pipe } from 'effect'
5
5
 
6
6
  import { Dispatcher } from '../rpc/client.js'
7
7
  import type { RpcConfig } from '../rpc/config.js'
8
- import { ConnectionClient } from '../rpc/connection.js'
8
+ import * as RPC from '../rpc/connection.js'
9
9
 
10
10
  /* Service */
11
11
 
@@ -28,7 +28,7 @@ const hitPrincipal = pipe(
28
28
 
29
29
  const hitRpc = pipe(
30
30
  E.logInfo('Pre-connecting to RPC endpoint'),
31
- E.zipRight(ConnectionClient),
31
+ E.zipRight(RPC.ConnectionClient),
32
32
  E.flatMap(rpcClient => rpcClient.preConnect()),
33
33
  E.asVoid,
34
34
  )
@@ -41,7 +41,7 @@ export const preConnect = () => pipe(E.all([hitPrincipal, hitRpc], { concurrency
41
41
  export const ConnectionServiceLive = Layer.effect(
42
42
  ConnectionService,
43
43
  E.gen(function* (_) {
44
- const context = yield* _(E.context<ConnectionClient | Dispatcher | RpcConfig>())
44
+ const context = yield* _(E.context<RPC.ConnectionClient | Dispatcher | RpcConfig>())
45
45
 
46
46
  return ConnectionService.of({
47
47
  preConnect: flow(preConnect, E.provide(context)),
package/src/effect.ts CHANGED
@@ -32,12 +32,12 @@ import {
32
32
  RegistrationService,
33
33
  RegistrationServiceLive,
34
34
  } from './registration/register.js'
35
- import { AuthenticationClientLive } from './rpc/authentication.js'
35
+ import { AuthenticationClientLive } from './rpc/passkey/authentication.js'
36
36
  import { DispatcherLive } from './rpc/client.js'
37
37
  import type { RpcConfig } from './rpc/config.js'
38
38
  import { RetrySchedule } from './rpc/config.js'
39
39
  import { ConnectionClientLive } from './rpc/connection.js'
40
- import { RegistrationClientLive } from './rpc/registration.js'
40
+ import { RegistrationClientLive } from './rpc/passkey/registration.js'
41
41
  import { SocialClientLive } from './rpc/social.js'
42
42
  import { UserClientLive } from './rpc/user.js'
43
43
  import {
@@ -1,6 +1,6 @@
1
1
  import { Effect as E, Layer as L, Option as O } from 'effect'
2
2
 
3
- import { VerifyEmailReq, VerifyEmailRes } from '@passlock/shared/dist/rpc/user.js'
3
+ import { VerifyEmailRequest, VerifyEmailResponse } from '@passlock/shared/dist/rpc/user.js'
4
4
 
5
5
  import * as Fixtures from '../test/fixtures.js'
6
6
  import { AuthenticationService } from '../authentication/authenticate.js'
@@ -24,9 +24,9 @@ export const authenticationServiceTest = L.succeed(
24
24
  }),
25
25
  )
26
26
 
27
- export const rpcVerifyEmailReq = new VerifyEmailReq({ token, code })
27
+ export const rpcVerifyEmailReq = new VerifyEmailRequest({ token, code })
28
28
 
29
- export const rpcVerifyEmailRes = new VerifyEmailRes({ principal: Fixtures.principal })
29
+ export const rpcVerifyEmailRes = new VerifyEmailResponse({ principal: Fixtures.principal })
30
30
 
31
31
  export const rpcClientTest = L.succeed(
32
32
  UserClient,
@@ -5,7 +5,7 @@ import { Context, Effect as E, Layer, Option as O, flow, identity, pipe } from '
5
5
 
6
6
  import { BadRequest } from '@passlock/shared/dist/error/error.js'
7
7
  import type { VerifyEmailErrors as RpcErrors } from '@passlock/shared/dist/rpc/user.js'
8
- import { VerifyEmailReq } from '@passlock/shared/dist/rpc/user.js'
8
+ import { VerifyEmailRequest } from '@passlock/shared/dist/rpc/user.js'
9
9
  import type { Principal } from '@passlock/shared/dist/schema/principal.js'
10
10
 
11
11
  import { type AuthenticationErrors, AuthenticationService } from '../authentication/authenticate.js'
@@ -112,7 +112,7 @@ export const verifyEmail = (
112
112
  yield* _(E.logDebug('Making request'))
113
113
  const client = yield* _(UserClient)
114
114
  const { principal } = yield* _(
115
- client.verifyEmail(new VerifyEmailReq({ token, code: request.code })),
115
+ client.verifyEmail(new VerifyEmailRequest({ token, code: request.code })),
116
116
  )
117
117
 
118
118
  return principal
package/src/index.ts CHANGED
@@ -13,7 +13,12 @@ import type {
13
13
  import { ErrorCode } from '@passlock/shared/dist/error/error.js'
14
14
  import type { VerifyEmail } from '@passlock/shared/dist/schema/email.js'
15
15
  import type { UserVerification } from '@passlock/shared/dist/schema/passkey.js'
16
- import type { Principal, UserPrincipal } from '@passlock/shared/dist/schema/principal.js'
16
+ import {
17
+ type Principal,
18
+ type UserPrincipal,
19
+ isPrincipal,
20
+ isUserPrincipal,
21
+ } from '@passlock/shared/dist/schema/principal.js'
17
22
 
18
23
  import type { AuthenticationService } from './authentication/authenticate.js'
19
24
  import type { Capabilities } from './capabilities/capabilities.js'
@@ -240,14 +245,8 @@ export class PasslockUnsafe {
240
245
  E.runSync(E.logDebug(`Passlock version: ${PASSLOCK_CLIENT_VERSION}`))
241
246
  }
242
247
 
243
- static isUserPrincipal = (principal: Principal): principal is UserPrincipal => {
244
- return (
245
- principal.givenName !== undefined &&
246
- principal.familyName !== undefined &&
247
- principal.email !== undefined &&
248
- principal.emailVerified !== undefined
249
- )
250
- }
248
+ static isPrincipal = (value: unknown): value is Principal => isPrincipal(value)
249
+ static isUserPrincipal = (value: unknown): value is UserPrincipal => isUserPrincipal(value)
251
250
 
252
251
  private readonly runPromise: {
253
252
  <A, R extends Requirements>(
@@ -327,14 +326,8 @@ export class Passlock {
327
326
  E.runSync(E.logDebug(`Passlock version: ${PASSLOCK_CLIENT_VERSION}`))
328
327
  }
329
328
 
330
- static isUserPrincipal = (principal: Principal): principal is UserPrincipal => {
331
- return (
332
- principal.givenName !== undefined &&
333
- principal.familyName !== undefined &&
334
- principal.email !== undefined &&
335
- principal.emailVerified !== undefined
336
- )
337
- }
329
+ static isPrincipal = (value: unknown): value is Principal => isPrincipal(value)
330
+ static isUserPrincipal = (value: unknown): value is UserPrincipal => isUserPrincipal(value)
338
331
 
339
332
  private readonly runPromise: {
340
333
  <A, R extends Requirements>(