@passlock/client 0.9.6 → 0.9.8

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 (91) hide show
  1. package/README.md +3 -3
  2. package/dist/authentication/authenticate.d.ts +6 -5
  3. package/dist/authentication/authenticate.d.ts.map +1 -1
  4. package/dist/authentication/authenticate.fixture.d.ts +8 -5
  5. package/dist/authentication/authenticate.fixture.d.ts.map +1 -1
  6. package/dist/authentication/authenticate.fixture.js +12 -7
  7. package/dist/authentication/authenticate.fixture.js.map +1 -1
  8. package/dist/authentication/authenticate.js +6 -6
  9. package/dist/authentication/authenticate.js.map +1 -1
  10. package/dist/authentication/authenticate.test.js +4 -4
  11. package/dist/capabilities/capabilities.js +3 -3
  12. package/dist/connection/connection.fixture.d.ts +1 -1
  13. package/dist/connection/connection.fixture.d.ts.map +1 -1
  14. package/dist/connection/connection.fixture.js +13 -10
  15. package/dist/connection/connection.fixture.js.map +1 -1
  16. package/dist/connection/connection.js +3 -3
  17. package/dist/effect.d.ts +21 -5
  18. package/dist/effect.d.ts.map +1 -1
  19. package/dist/effect.js +12 -9
  20. package/dist/effect.js.map +1 -1
  21. package/dist/email/email.d.ts +24 -8
  22. package/dist/email/email.d.ts.map +1 -1
  23. package/dist/email/email.fixture.d.ts +8 -8
  24. package/dist/email/email.fixture.d.ts.map +1 -1
  25. package/dist/email/email.fixture.js +12 -10
  26. package/dist/email/email.fixture.js.map +1 -1
  27. package/dist/email/email.js +5 -5
  28. package/dist/email/email.js.map +1 -1
  29. package/dist/email/email.test.js +4 -4
  30. package/dist/email/email.test.js.map +1 -1
  31. package/dist/index.d.ts +52 -37
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +21 -14
  34. package/dist/index.js.map +1 -1
  35. package/dist/registration/register.d.ts +3 -4
  36. package/dist/registration/register.d.ts.map +1 -1
  37. package/dist/registration/register.fixture.d.ts +4 -4
  38. package/dist/registration/register.fixture.d.ts.map +1 -1
  39. package/dist/registration/register.fixture.js +12 -8
  40. package/dist/registration/register.fixture.js.map +1 -1
  41. package/dist/registration/register.js +4 -13
  42. package/dist/registration/register.js.map +1 -1
  43. package/dist/social/social.d.ts +22 -0
  44. package/dist/social/social.d.ts.map +1 -0
  45. package/dist/social/social.js +29 -0
  46. package/dist/social/social.js.map +1 -0
  47. package/dist/storage/storage.d.ts +1 -1
  48. package/dist/storage/storage.d.ts.map +1 -1
  49. package/dist/storage/storage.fixture.d.ts +1 -2
  50. package/dist/storage/storage.fixture.d.ts.map +1 -1
  51. package/dist/storage/storage.fixture.js +1 -16
  52. package/dist/storage/storage.fixture.js.map +1 -1
  53. package/dist/storage/storage.js +4 -3
  54. package/dist/storage/storage.js.map +1 -1
  55. package/dist/test/fixtures.d.ts +4 -0
  56. package/dist/test/fixtures.d.ts.map +1 -1
  57. package/dist/test/fixtures.js +13 -9
  58. package/dist/test/fixtures.js.map +1 -1
  59. package/dist/user/user.d.ts +9 -2
  60. package/dist/user/user.d.ts.map +1 -1
  61. package/dist/user/user.fixture.d.ts +3 -2
  62. package/dist/user/user.fixture.d.ts.map +1 -1
  63. package/dist/user/user.fixture.js +13 -9
  64. package/dist/user/user.fixture.js.map +1 -1
  65. package/dist/user/user.js +11 -1
  66. package/dist/user/user.js.map +1 -1
  67. package/package.json +14 -13
  68. package/src/authentication/authenticate.fixture.ts +14 -7
  69. package/src/authentication/authenticate.test.ts +4 -4
  70. package/src/authentication/authenticate.ts +15 -12
  71. package/src/capabilities/capabilities.ts +3 -3
  72. package/src/connection/connection.fixture.ts +14 -11
  73. package/src/connection/connection.ts +4 -4
  74. package/src/effect.ts +28 -26
  75. package/src/email/email.fixture.ts +15 -13
  76. package/src/email/email.test.ts +4 -4
  77. package/src/email/email.ts +13 -12
  78. package/src/index.ts +91 -34
  79. package/src/registration/register.fixture.ts +12 -8
  80. package/src/registration/register.test.ts +8 -43
  81. package/src/registration/register.ts +8 -24
  82. package/src/social/social.ts +86 -0
  83. package/src/storage/storage.fixture.ts +2 -19
  84. package/src/storage/storage.ts +5 -4
  85. package/src/test/fixtures.ts +15 -10
  86. package/src/user/user.fixture.ts +14 -11
  87. package/src/user/user.ts +22 -3
  88. package/dist/exit.d.ts +0 -64
  89. package/dist/exit.d.ts.map +0 -1
  90. package/dist/exit.js +0 -106
  91. package/dist/exit.js.map +0 -1
@@ -8,11 +8,11 @@ import { StorageService } from '../storage/storage.js';
8
8
  import { UserService } from '../user/user.js';
9
9
  export const CreateCredential = Context.GenericTag('@services/Create');
10
10
  export const RegistrationService = Context.GenericTag('@services/RegistrationService');
11
- const fetchOptions = (req) => {
11
+ const fetchOptions = (request) => {
12
12
  return E.gen(function* (_) {
13
13
  yield* _(E.logDebug('Making request'));
14
14
  const rpcClient = yield* _(RpcClient);
15
- const { publicKey, session } = yield* _(rpcClient.getRegistrationOptions(req));
15
+ const { publicKey, session } = yield* _(rpcClient.getRegistrationOptions(request));
16
16
  yield* _(E.logDebug('Converting Passlock options to CredentialCreationOptions'));
17
17
  const options = yield* _(toCreationOptions({ publicKey }));
18
18
  return { options, session };
@@ -24,28 +24,19 @@ const toCreationOptions = (jsonOptions) => {
24
24
  detail: String(error.error),
25
25
  })));
26
26
  };
27
- const verifyCredential = (req) => {
27
+ const verifyCredential = (request) => {
28
28
  return E.gen(function* (_) {
29
29
  yield* _(E.logDebug('Making request'));
30
30
  const rpcClient = yield* _(RpcClient);
31
- const { principal } = yield* _(rpcClient.verifyRegistrationCredential(req));
31
+ const { principal } = yield* _(rpcClient.verifyRegistrationCredential(request));
32
32
  return principal;
33
33
  });
34
34
  };
35
- const isNewUser = (email) => {
36
- return pipe(UserService, E.flatMap(service => service.isExistingUser({ email })), E.catchTag('BadRequest', () => E.unit), E.flatMap(isExistingUser => {
37
- return isExistingUser
38
- ? new Duplicate({ message: 'User already has a passkey registered' })
39
- : E.unit;
40
- }));
41
- };
42
35
  export const registerPasskey = (request) => {
43
36
  const effect = E.gen(function* (_) {
44
37
  yield* _(E.logInfo('Checking if browser supports Passkeys'));
45
38
  const capabilities = yield* _(Capabilities);
46
39
  yield* _(capabilities.passkeySupport);
47
- yield* _(E.logInfo('Checking if already registered'));
48
- yield* _(isNewUser(request.email));
49
40
  yield* _(E.logInfo('Fetching registration options from Passlock'));
50
41
  const { options, session } = yield* _(fetchOptions(new OptionsReq(request)));
51
42
  yield* _(E.logInfo('Building new credential'));
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/registration/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/registration/register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type BadRequest, type NotSupported } from '@passlock/shared/dist/error/error.js';
2
+ import { RpcClient } from '@passlock/shared/dist/rpc/rpc.js';
3
+ import { AuthenticateOidcErrors, RegisterOidcErrors } from '@passlock/shared/dist/rpc/social.js';
4
+ import type { Principal } from '@passlock/shared/dist/schema/schema.js';
5
+ import { Context, Effect as E, Layer } from 'effect';
6
+ export type OidcRequest = {
7
+ provider: 'google';
8
+ idToken: string;
9
+ };
10
+ export type RegistrationErrors = NotSupported | BadRequest | RegisterOidcErrors;
11
+ export type AuthenticationErrors = NotSupported | BadRequest | AuthenticateOidcErrors;
12
+ export type SocialService = {
13
+ registerOidc: (data: OidcRequest) => E.Effect<Principal, RegistrationErrors>;
14
+ authenticateOidc: (data: OidcRequest) => E.Effect<Principal, AuthenticationErrors>;
15
+ };
16
+ export declare const SocialService: Context.Tag<SocialService, SocialService>;
17
+ type Dependencies = RpcClient;
18
+ export declare const registerOidc: (request: OidcRequest) => E.Effect<Principal, RegistrationErrors, Dependencies>;
19
+ export declare const authenticateOidc: (request: OidcRequest) => E.Effect<Principal, AuthenticationErrors, Dependencies>;
20
+ export declare const SocialServiceLive: Layer.Layer<SocialService, never, RpcClient>;
21
+ export {};
22
+ //# sourceMappingURL=social.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAuB,kBAAkB,EAAmB,MAAM,qCAAqC,CAAA;AACtI,OAAO,KAAK,EACV,SAAS,EACV,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAA;AAI1D,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAIjE,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,kBAAkB,CAAA;AAE/E,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,UAAU,GAAG,sBAAsB,CAAA;AAIrF,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;IAC5E,gBAAgB,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;CACnF,CAAA;AAED,eAAO,MAAM,aAAa,2CAEzB,CAAA;AAID,KAAK,YAAY,GAAG,SAAS,CAAA;AAE7B,eAAO,MAAM,YAAY,YACd,WAAW,KACnB,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,EAAE,YAAY,CAYtD,CAAA;AAED,eAAO,MAAM,gBAAgB,YAClB,WAAW,KACnB,EAAE,MAAM,CAAC,SAAS,EAAE,oBAAoB,EAAE,YAAY,CAYxD,CAAA;AAKD,eAAO,MAAM,iBAAiB,8CAU7B,CAAA"}
@@ -0,0 +1,29 @@
1
+ import {} from '@passlock/shared/dist/error/error.js';
2
+ import { RpcClient } from '@passlock/shared/dist/rpc/rpc.js';
3
+ import { AuthenticateOidcErrors, AuthenticateOidcReq, RegisterOidcErrors, RegisterOidcReq } from '@passlock/shared/dist/rpc/social.js';
4
+ import { Context, Effect as E, Layer, flow } from 'effect';
5
+ export const SocialService = Context.GenericTag('@services/SocialService');
6
+ export const registerOidc = (request) => {
7
+ return E.gen(function* (_) {
8
+ yield* _(E.logInfo('Registering social account'));
9
+ const rpcClient = yield* _(RpcClient);
10
+ const { principal } = yield* _(rpcClient.registerOidc(new RegisterOidcReq(request)));
11
+ return principal;
12
+ });
13
+ };
14
+ export const authenticateOidc = (request) => {
15
+ return E.gen(function* (_) {
16
+ yield* _(E.logInfo('Authenticating with social account'));
17
+ const rpcClient = yield* _(RpcClient);
18
+ const { principal } = yield* _(rpcClient.authenticateOidc(new AuthenticateOidcReq(request)));
19
+ return principal;
20
+ });
21
+ };
22
+ export const SocialServiceLive = Layer.effect(SocialService, E.gen(function* (_) {
23
+ const context = yield* _(E.context());
24
+ return SocialService.of({
25
+ registerOidc: flow(registerOidc, E.provide(context)),
26
+ authenticateOidc: flow(authenticateOidc, E.provide(context))
27
+ });
28
+ }));
29
+ //# sourceMappingURL=social.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"AAGA,OAAO,EAGN,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAItI,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAmB1D,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAC7C,yBAAyB,CAC1B,CAAA;AAMD,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAoB,EACmC,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,SAAS,CAAC,CAAA;QAErC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAC5B,SAAS,CAAC,YAAY,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CACrD,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAoB,EACqC,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,SAAS,CAAC,CAAA;QAErC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAC5B,SAAS,CAAC,gBAAgB,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAC7D,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAKD,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,EAAa,CAAC,CAAA;IAEhD,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"}
@@ -1,7 +1,7 @@
1
1
  import type { Principal } from '@passlock/shared/dist/schema/schema.js';
2
2
  import { Context, Effect as E, Layer, Option as O } from 'effect';
3
3
  import type { NoSuchElementException } from 'effect/Cause';
4
- export type AuthType = 'email' | 'passkey';
4
+ export type AuthType = 'email' | 'passkey' | 'google';
5
5
  export type StoredToken = {
6
6
  token: string;
7
7
  authType: AuthType;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAc,MAAM,QAAQ,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAI1D,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAE1C,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;IAC/E,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzD,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACnC,CAAA;AAID,eAAO,MAAM,cAAc,6CAAiE,CAAA;AAG5F,eAAO,MAAM,OAAO,+BAAmD,CAAA;AAEvE,eAAO,MAAM,QAAQ,aAAc,QAAQ,WAAiC,CAAA;AAG5E,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MAIpD,CAAA;AAGD,eAAO,MAAM,WAAW,aACX,QAAQ,SACf,MAAM,KAAG,EAAE,MAAM,CAAC,WAAW,CAShC,CAAA;AASH,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAY9E,CAAA;AAOD,eAAO,MAAM,QAAQ,aACT,QAAQ,KACjB,EAAE,MAAM,CAAC,WAAW,EAAE,sBAAsB,EAAE,OAAO,CAavD,CAAA;AAOD,eAAO,MAAM,UAAU,aAAc,QAAQ,KAAG,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAK5E,CAAA;AAQD,eAAO,MAAM,iBAAiB,aAAc,QAAQ,KAAG,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAqBnF,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAG5D,CAAA;AAKF,eAAO,MAAM,kBAAkB,6CAa9B,CAAA"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAc,MAAM,QAAQ,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAI1D,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;IAC/E,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzD,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACnC,CAAA;AAID,eAAO,MAAM,cAAc,6CAAiE,CAAA;AAG5F,eAAO,MAAM,OAAO,+BAAmD,CAAA;AAEvE,eAAO,MAAM,QAAQ,aAAc,QAAQ,WAAiC,CAAA;AAG5E,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MAIpD,CAAA;AAGD,eAAO,MAAM,WAAW,aACX,QAAQ,SACf,MAAM,KAAG,EAAE,MAAM,CAAC,WAAW,CAShC,CAAA;AASH,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAY9E,CAAA;AAOD,eAAO,MAAM,QAAQ,aACT,QAAQ,KACjB,EAAE,MAAM,CAAC,WAAW,EAAE,sBAAsB,EAAE,OAAO,CAavD,CAAA;AAOD,eAAO,MAAM,UAAU,aAAc,QAAQ,KAAG,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAK5E,CAAA;AAQD,eAAO,MAAM,iBAAiB,aAAc,QAAQ,KAAG,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAqBnF,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAI5D,CAAA;AAKF,eAAO,MAAM,kBAAkB,6CAa9B,CAAA"}
@@ -1,5 +1,4 @@
1
- import type { Principal } from '@passlock/shared/dist/schema/schema.js';
2
1
  import { Layer } from 'effect';
3
- export declare const principal: Principal;
4
2
  export declare const testLayers: (storage?: Layer.Layer<Storage>) => Layer.Layer<Storage | import("./storage.js").StorageService, never, never>;
3
+ export { principal } from '../test/fixtures.js';
5
4
  //# sourceMappingURL=storage.fixture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.fixture.d.ts","sourceRoot":"","sources":["../../src/storage/storage.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAe,KAAK,EAAQ,MAAM,QAAQ,CAAA;AAKjD,eAAO,MAAM,SAAS,EAAE,SAevB,CAAA;AAOD,eAAO,MAAM,UAAU,aAAa,MAAM,KAAK,CAAC,OAAO,CAAC,+EAIvD,CAAA"}
1
+ {"version":3,"file":"storage.fixture.d.ts","sourceRoot":"","sources":["../../src/storage/storage.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,EAAQ,MAAM,QAAQ,CAAA;AASjD,eAAO,MAAM,UAAU,aAAa,MAAM,KAAK,CAAC,OAAO,CAAC,+EAIvD,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,25 +1,10 @@
1
1
  import { Effect as E, Layer, pipe } from 'effect';
2
2
  import { mock } from 'vitest-mock-extended';
3
3
  import { Storage, StorageServiceLive } from './storage.js';
4
- export const principal = {
5
- token: 'token',
6
- subject: {
7
- id: '1',
8
- email: 'john.doe@gmail.com',
9
- firstName: 'john',
10
- lastName: 'doe',
11
- emailVerified: false,
12
- },
13
- authStatement: {
14
- authType: 'passkey',
15
- userVerified: false,
16
- authTimestamp: new Date(0),
17
- },
18
- expireAt: new Date(100),
19
- };
20
4
  const storageTest = Layer.effect(Storage, E.sync(() => mock()));
21
5
  export const testLayers = (storage = storageTest) => {
22
6
  const storageService = pipe(StorageServiceLive, Layer.provide(storage));
23
7
  return Layer.merge(storage, storageService);
24
8
  };
9
+ export { principal } from '../test/fixtures.js';
25
10
  //# sourceMappingURL=storage.fixture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.fixture.js","sourceRoot":"","sources":["../../src/storage/storage.fixture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAG1D,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE;QACP,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,KAAK;KACrB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;KAC3B;IACD,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC;CACxB,CAAA;AAED,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAC9B,OAAO,EACP,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAW,CAAC,CAC9B,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAgC,WAAW,EAAE,EAAE;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAEvE,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;AAC7C,CAAC,CAAA"}
1
+ {"version":3,"file":"storage.fixture.js","sourceRoot":"","sources":["../../src/storage/storage.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAE1D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAC9B,OAAO,EACP,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAW,CAAC,CAC9B,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAgC,WAAW,EAAE,EAAE;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAEvE,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA"}
@@ -23,7 +23,7 @@ export const storeToken = (principal) => {
23
23
  const compressed = compressToken(principal);
24
24
  const key = buildKey(principal.authStatement.authType);
25
25
  localStorage.setItem(key, compressed);
26
- }).pipe(E.orElse(() => E.unit));
26
+ }).pipe(E.orElse(() => E.void));
27
27
  return yield* _(storeEffect);
28
28
  });
29
29
  };
@@ -51,13 +51,14 @@ export const clearExpiredToken = (authType) => {
51
51
  }
52
52
  });
53
53
  return pipe(effect, E.match({
54
- onSuccess: () => E.unit,
55
- onFailure: () => E.unit,
54
+ onSuccess: () => E.void,
55
+ onFailure: () => E.void,
56
56
  }));
57
57
  };
58
58
  export const clearExpiredTokens = E.all([
59
59
  clearExpiredToken('passkey'),
60
60
  clearExpiredToken('email'),
61
+ clearExpiredToken('google'),
61
62
  ]);
62
63
  export const StorageServiceLive = Layer.effect(StorageService, E.gen(function* (_) {
63
64
  const context = yield* _(E.context());
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAyB7E,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAiB,0BAA0B,CAAC,CAAA;AAG5F,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAU,mBAAmB,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,YAAY,QAAQ,QAAQ,CAAA;AAG5E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAU,EAAE;IAC5D,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;IAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;IAC7B,OAAO,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAA;AAC/B,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,QAAkB,EAAE,EAAE,CACvB,CAAC,CAAS,EAAyB,EAAE;IACnC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IAExC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,MAAM,CAAA;IACtC,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,CAAA;IAEtC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;AACrE,CAAC,CAAA;AASH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAoB,EAAkC,EAAE;IACjF,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAEtC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YACtD,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACvC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAE/B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,QAAkB,EACsC,EAAE;IAC1D,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAEtC,MAAM,SAAS,GAAG,IAAI,CACpB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAC1B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,EACjE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAChC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAC5D,CAAA;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAkC,EAAE;IAC/E,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACtC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAkC,EAAE;IACtF,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAE9B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnD,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAChC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;IAGF,OAAO,IAAI,CACT,MAAM,EACN,CAAC,CAAC,KAAK,CAAC;QACN,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;QACvB,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;KACxB,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAmC,CAAC,CAAC,GAAG,CAAC;IACtE,iBAAiB,CAAC,SAAS,CAAC;IAC5B,iBAAiB,CAAC,OAAO,CAAC;IAC1B,iBAAiB,CAAC,QAAQ,CAAC;CAC5B,CAAC,CAAA;AAKF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAC5C,cAAc,EACd,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAW,CAAC,CAAA;IAE9C,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACjE,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
@@ -2,6 +2,8 @@ import type { Principal } from '@passlock/shared/dist/schema/schema.js';
2
2
  import { Layer as L } from 'effect';
3
3
  import { Capabilities } from '../capabilities/capabilities.js';
4
4
  import { StorageService, type StoredToken } from '../storage/storage.js';
5
+ import { BadRequest } from '@passlock/shared/dist/error/error.js';
6
+ import { PreConnectRes } from '@passlock/shared/dist/rpc/connection.js';
5
7
  export declare const session = "session";
6
8
  export declare const token = "token";
7
9
  export declare const code = "code";
@@ -11,4 +13,6 @@ export declare const principal: Principal;
11
13
  export declare const capabilitiesTest: L.Layer<Capabilities, never, never>;
12
14
  export declare const storedToken: StoredToken;
13
15
  export declare const storageServiceTest: L.Layer<StorageService, never, never>;
16
+ export declare const preConnectRes: PreConnectRes;
17
+ export declare const notImplemented: BadRequest;
14
18
  //# sourceMappingURL=fixtures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAe,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExE,eAAO,MAAM,OAAO,YAAY,CAAA;AAChC,eAAO,MAAM,KAAK,UAAU,CAAA;AAC5B,eAAO,MAAM,IAAI,SAAS,CAAA;AAC1B,eAAO,MAAM,QAAQ,YAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAqB,CAAA;AAE1C,eAAO,MAAM,SAAS,EAAE,SAevB,CAAA;AAED,eAAO,MAAM,gBAAgB,qCAQ5B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,WAA2C,CAAA;AAErE,eAAO,MAAM,kBAAkB,uCAS9B,CAAA"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAe,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAEvE,eAAO,MAAM,OAAO,YAAY,CAAA;AAChC,eAAO,MAAM,KAAK,UAAU,CAAA;AAC5B,eAAO,MAAM,IAAI,SAAS,CAAA;AAC1B,eAAO,MAAM,QAAQ,YAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAqB,CAAA;AAE1C,eAAO,MAAM,SAAS,EAAE,SAevB,CAAA;AAED,eAAO,MAAM,gBAAgB,qCAQ5B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,WAA2C,CAAA;AAErE,eAAO,MAAM,kBAAkB,uCAS9B,CAAA;AAED,eAAO,MAAM,aAAa,eAAsC,CAAA;AAChE,eAAO,MAAM,cAAc,YAAiD,CAAA"}
@@ -1,6 +1,8 @@
1
1
  import { Effect as E, Layer as L } from 'effect';
2
2
  import { Capabilities } from '../capabilities/capabilities.js';
3
3
  import { StorageService } from '../storage/storage.js';
4
+ import { BadRequest } from '@passlock/shared/dist/error/error.js';
5
+ import { PreConnectRes } from '@passlock/shared/dist/rpc/connection.js';
4
6
  export const session = 'session';
5
7
  export const token = 'token';
6
8
  export const code = 'code';
@@ -8,11 +10,11 @@ export const authType = 'passkey';
8
10
  export const expireAt = Date.now() + 10000;
9
11
  export const principal = {
10
12
  token: 'token',
11
- subject: {
13
+ user: {
12
14
  id: '1',
13
15
  email: 'john.doe@gmail.com',
14
- firstName: 'john',
15
- lastName: 'doe',
16
+ givenName: 'john',
17
+ familyName: 'doe',
16
18
  emailVerified: false,
17
19
  },
18
20
  authStatement: {
@@ -23,17 +25,19 @@ export const principal = {
23
25
  expireAt: new Date(0),
24
26
  };
25
27
  export const capabilitiesTest = L.succeed(Capabilities, Capabilities.of({
26
- passkeySupport: E.unit,
28
+ passkeySupport: E.void,
27
29
  isPasskeySupport: E.succeed(true),
28
- autofillSupport: E.unit,
30
+ autofillSupport: E.void,
29
31
  isAutofillSupport: E.succeed(true),
30
32
  }));
31
33
  export const storedToken = { token, authType, expireAt };
32
34
  export const storageServiceTest = L.succeed(StorageService, StorageService.of({
33
- storeToken: () => E.unit,
35
+ storeToken: () => E.void,
34
36
  getToken: () => E.succeed(storedToken),
35
- clearToken: () => E.unit,
36
- clearExpiredToken: () => E.unit,
37
- clearExpiredTokens: E.unit,
37
+ clearToken: () => E.void,
38
+ clearExpiredToken: () => E.void,
39
+ clearExpiredTokens: E.void,
38
40
  }));
41
+ export const preConnectRes = new PreConnectRes({ warmed: true });
42
+ export const notImplemented = new BadRequest({ message: 'Not implemented' });
39
43
  //# sourceMappingURL=fixtures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAoB,MAAM,uBAAuB,CAAA;AAExE,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,SAAS,GAAc;IAClC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE;QACP,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,KAAK;KACrB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;KAC3B;IACD,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;CACtB,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,OAAO,CACvC,YAAY,EACZ,YAAY,CAAC,EAAE,CAAC;IACd,cAAc,EAAE,CAAC,CAAC,IAAI;IACtB,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACjC,eAAe,EAAE,CAAC,CAAC,IAAI;IACvB,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACnC,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,OAAO,CACzC,cAAc,EACd,cAAc,CAAC,EAAE,CAAC;IAChB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACtC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IACxB,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IAC/B,kBAAkB,EAAE,CAAC,CAAC,IAAI;CAC3B,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAoB,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAEvE,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,SAAS,GAAc;IAClC,KAAK,EAAE,OAAO;IACd,IAAI,EAAE;QACJ,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,KAAK;KACrB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;KAC3B;IACD,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;CACtB,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,OAAO,CACvC,YAAY,EACZ,YAAY,CAAC,EAAE,CAAC;IACd,cAAc,EAAE,CAAC,CAAC,IAAI;IACtB,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACjC,eAAe,EAAE,CAAC,CAAC,IAAI;IACvB,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACnC,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,OAAO,CACzC,cAAc,EACd,cAAc,CAAC,EAAE,CAAC;IAChB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACtC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IACxB,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IAC/B,kBAAkB,EAAE,CAAC,CAAC,IAAI;CAC3B,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA"}
@@ -1,15 +1,22 @@
1
- import type { BadRequest } from '@passlock/shared/dist/error/error.js';
1
+ import type { BadRequest, Disabled, NotFound } from '@passlock/shared/dist/error/error.js';
2
2
  import { RpcClient } from '@passlock/shared/dist/rpc/rpc.js';
3
+ import type { VerifyEmail } from '@passlock/shared/dist/schema/schema.js';
3
4
  import { Context, Effect as E, Layer } from 'effect';
4
5
  export type Email = {
5
6
  email: string;
6
7
  };
8
+ export type ResendEmail = VerifyEmail & {
9
+ userId: string;
10
+ };
11
+ export type ResendEmailErrors = BadRequest | NotFound | Disabled;
7
12
  export type UserService = {
8
- isExistingUser: (email: Email) => E.Effect<boolean, BadRequest>;
13
+ isExistingUser: (request: Email) => E.Effect<boolean, BadRequest>;
14
+ resendVerificationEmail: (request: ResendEmail) => E.Effect<void, ResendEmailErrors>;
9
15
  };
10
16
  export declare const UserService: Context.Tag<UserService, UserService>;
11
17
  type Dependencies = RpcClient;
12
18
  export declare const isExistingUser: (request: Email) => E.Effect<boolean, BadRequest, Dependencies>;
19
+ export declare const resendVerificationEmail: (request: ResendEmail) => E.Effect<void, ResendEmailErrors, Dependencies>;
13
20
  export declare const UserServiceLive: Layer.Layer<UserService, never, RpcClient>;
14
21
  export {};
15
22
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/user/user.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAA;AAI1D,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAIrC,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;CAChE,CAAA;AAED,eAAO,MAAM,WAAW,uCAA2D,CAAA;AAInF,KAAK,YAAY,GAAG,SAAS,CAAA;AAE7B,eAAO,MAAM,cAAc,YAAa,KAAK,KAAG,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAUzF,CAAA;AAKD,eAAO,MAAM,eAAe,4CAQ3B,CAAA"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/user/user.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAA;AAI1D,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AACrC,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAI1D,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAIhE,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACjE,uBAAuB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;CACrF,CAAA;AAED,eAAO,MAAM,WAAW,uCAA2D,CAAA;AAInF,KAAK,YAAY,GAAG,SAAS,CAAA;AAE7B,eAAO,MAAM,cAAc,YAAa,KAAK,KAAG,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAUzF,CAAA;AAED,eAAO,MAAM,uBAAuB,YAAa,WAAW,KAAG,EAAE,MAAM,CAAC,IAAI,EAAE,iBAAiB,EAAE,YAAY,CAS5G,CAAA;AAKD,eAAO,MAAM,eAAe,4CAS3B,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import { RpcClient } from '@passlock/shared/dist/rpc/rpc.js';
2
- import { IsExistingUserReq, IsExistingUserRes } from '@passlock/shared/dist/rpc/user.js';
2
+ import { IsExistingUserReq, IsExistingUserRes, VerifyEmailRes } from '@passlock/shared/dist/rpc/user.js';
3
3
  import { Layer as L } from 'effect';
4
4
  export declare const email = "jdoe@gmail.com";
5
- export declare const rpcClientTest: L.Layer<RpcClient, never, never>;
6
5
  export declare const isRegisteredReq: IsExistingUserReq;
7
6
  export declare const isRegisteredRes: IsExistingUserRes;
7
+ export declare const verifyEmailRes: VerifyEmailRes;
8
+ export declare const rpcClientTest: L.Layer<RpcClient, never, never>;
8
9
  //# sourceMappingURL=user.fixture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.fixture.d.ts","sourceRoot":"","sources":["../../src/user/user.fixture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACxF,OAAO,EAAe,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,eAAO,MAAM,KAAK,mBAAmB,CAAA;AAErC,eAAO,MAAM,aAAa,kCAWzB,CAAA;AAED,eAAO,MAAM,eAAe,mBAAmC,CAAA;AAC/D,eAAO,MAAM,eAAe,mBAAiD,CAAA"}
1
+ {"version":3,"file":"user.fixture.d.ts","sourceRoot":"","sources":["../../src/user/user.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACxG,OAAO,EAAe,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAGhD,eAAO,MAAM,KAAK,mBAAmB,CAAA;AACrC,eAAO,MAAM,eAAe,mBAAmC,CAAA;AAC/D,eAAO,MAAM,eAAe,mBAAiD,CAAA;AAC7E,eAAO,MAAM,cAAc,gBAAwD,CAAA;AAEnF,eAAO,MAAM,aAAa,kCAczB,CAAA"}
@@ -1,17 +1,21 @@
1
- import { BadRequest } from '@passlock/shared/dist/error/error.js';
2
1
  import { RpcClient } from '@passlock/shared/dist/rpc/rpc.js';
3
- import { IsExistingUserReq, IsExistingUserRes } from '@passlock/shared/dist/rpc/user.js';
2
+ import { IsExistingUserReq, IsExistingUserRes, VerifyEmailRes } from '@passlock/shared/dist/rpc/user.js';
4
3
  import { Effect as E, Layer as L } from 'effect';
4
+ import * as Fixtures from '../test/fixtures.js';
5
5
  export const email = 'jdoe@gmail.com';
6
+ export const isRegisteredReq = new IsExistingUserReq({ email });
7
+ export const isRegisteredRes = new IsExistingUserRes({ existingUser: false });
8
+ export const verifyEmailRes = new VerifyEmailRes({ principal: Fixtures.principal });
6
9
  export const rpcClientTest = L.succeed(RpcClient, RpcClient.of({
7
10
  preConnect: () => E.succeed({ warmed: true }),
8
11
  isExistingUser: () => E.succeed({ existingUser: true }),
9
- verifyEmail: () => E.succeed({ verified: true }),
10
- getRegistrationOptions: () => E.fail(new BadRequest({ message: 'Not implemeneted' })),
11
- verifyRegistrationCredential: () => E.fail(new BadRequest({ message: 'Not implemeneted' })),
12
- getAuthenticationOptions: () => E.fail(new BadRequest({ message: 'Not implemeneted' })),
13
- verifyAuthenticationCredential: () => E.fail(new BadRequest({ message: 'Not implemeneted' })),
12
+ verifyEmail: () => E.succeed(verifyEmailRes),
13
+ getRegistrationOptions: () => E.fail(Fixtures.notImplemented),
14
+ verifyRegistrationCredential: () => E.fail(Fixtures.notImplemented),
15
+ getAuthenticationOptions: () => E.fail(Fixtures.notImplemented),
16
+ verifyAuthenticationCredential: () => E.fail(Fixtures.notImplemented),
17
+ registerOidc: () => E.fail(Fixtures.notImplemented),
18
+ authenticateOidc: () => E.fail(Fixtures.notImplemented),
19
+ resendVerificationEmail: () => E.fail(Fixtures.notImplemented),
14
20
  }));
15
- export const isRegisteredReq = new IsExistingUserReq({ email });
16
- export const isRegisteredRes = new IsExistingUserRes({ existingUser: false });
17
21
  //# sourceMappingURL=user.fixture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.fixture.js","sourceRoot":"","sources":["../../src/user/user.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACxF,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,MAAM,CAAC,MAAM,KAAK,GAAG,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CACpC,SAAS,EACT,SAAS,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7C,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACvD,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChD,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrF,4BAA4B,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3F,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACvF,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;CAC9F,CAAC,CACH,CAAA;AAED,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,CAAC,CAAA"}
1
+ {"version":3,"file":"user.fixture.js","sourceRoot":"","sources":["../../src/user/user.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACxG,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAE/C,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,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CACpC,SAAS,EACT,SAAS,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7C,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACvD,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC5C,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC7D,4BAA4B,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACnE,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC/D,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACrE,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;IACvD,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/D,CAAC,CACH,CAAA"}
package/dist/user/user.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RpcClient } from '@passlock/shared/dist/rpc/rpc.js';
2
- import { IsExistingUserReq } from '@passlock/shared/dist/rpc/user.js';
2
+ import { IsExistingUserReq, ResendEmailReq } from '@passlock/shared/dist/rpc/user.js';
3
3
  import { Context, Effect as E, Layer, flow } from 'effect';
4
4
  export const UserService = Context.GenericTag('@services/UserService');
5
5
  export const isExistingUser = (request) => {
@@ -11,10 +11,20 @@ export const isExistingUser = (request) => {
11
11
  return existingUser;
12
12
  });
13
13
  };
14
+ export const resendVerificationEmail = (request) => {
15
+ return E.gen(function* (_) {
16
+ yield* _(E.logInfo('Resending verification email'));
17
+ const rpcClient = yield* _(RpcClient);
18
+ yield* _(E.logDebug('Making RPC request'));
19
+ const { userId, ...verifyEmail } = request;
20
+ yield* _(rpcClient.resendVerificationEmail(new ResendEmailReq({ userId, verifyEmail })));
21
+ });
22
+ };
14
23
  export const UserServiceLive = Layer.effect(UserService, E.gen(function* (_) {
15
24
  const context = yield* _(E.context());
16
25
  return UserService.of({
17
26
  isExistingUser: flow(isExistingUser, E.provide(context)),
27
+ resendVerificationEmail: flow(resendVerificationEmail, E.provide(context))
18
28
  });
19
29
  }));
20
30
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/user/user.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAY1D,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAc,uBAAuB,CAAC,CAAA;AAMnF,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,SAAS,CAAC,CAAA;QAErC,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;AAKD,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,EAAa,CAAC,CAAA;IAChD,OAAO,WAAW,CAAC,EAAE,CAAC;QACpB,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACzD,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/user/user.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAErF,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAkB1D,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAc,uBAAuB,CAAC,CAAA;AAMnF,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,SAAS,CAAC,CAAA;QAErC,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,CAAC,OAAoB,EAAmD,EAAE;IAC/G,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,SAAS,CAAC,CAAA;QAErC,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;AAKD,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,EAAa,CAAC,CAAA;IAChD,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@passlock/client",
3
- "version": "0.9.6",
3
+ "version": "0.9.8",
4
4
  "description": "Easy WebAuthn/FIDO Passkey authentication for your web apps. This library works with pretty much any frontend/backend stack including React/Next.js, Vue, SvelteKit etc - check out the tutorial",
5
5
  "keywords": [
6
6
  "passkey",
@@ -40,17 +40,17 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "@github/webauthn-json": "^2.1.1",
43
- "effect": "2.4.18",
44
- "@passlock/shared": "0.9.6"
43
+ "effect": "3.0.3",
44
+ "@passlock/shared": "0.9.8"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@tsconfig/node18": "^18.2.4",
48
- "@types/node": "^20.12.4",
49
- "@typescript-eslint/eslint-plugin": "^7.5.0",
50
- "@typescript-eslint/parser": "^7.5.0",
51
- "@vitest/coverage-v8": "^1.4.0",
52
- "@vitest/ui": "^1.4.0",
53
- "eslint": "^8.57.0",
48
+ "@types/node": "^20.12.7",
49
+ "@typescript-eslint/eslint-plugin": "^7.7.1",
50
+ "@typescript-eslint/parser": "^7.7.1",
51
+ "@vitest/coverage-v8": "^1.5.0",
52
+ "@vitest/ui": "^1.5.0",
53
+ "eslint": "^8.56.0",
54
54
  "eslint-config-prettier": "^9.1.0",
55
55
  "eslint-import-resolver-typescript": "^3.6.1",
56
56
  "eslint-plugin-import": "^2.29.1",
@@ -58,9 +58,9 @@
58
58
  "prettier": "^3.2.5",
59
59
  "rimraf": "^5.0.5",
60
60
  "tslib": "^2.6.2",
61
- "typescript": "^5.4.4",
62
- "vite": "^5.2.8",
63
- "vitest": "^1.4.0",
61
+ "typescript": "^5.4.5",
62
+ "vite": "^5.2.10",
63
+ "vitest": "^1.5.0",
64
64
  "vitest-mock-extended": "^1.3.1"
65
65
  },
66
66
  "scripts": {
@@ -71,12 +71,13 @@
71
71
  "test:ui": "vitest --coverage.enabled=true --ui",
72
72
  "test:coverage": "vitest run --coverage",
73
73
  "build": "tsc --build",
74
+ "build:clean": "pnpm run clean && pnpm run build",
74
75
  "watch": "tsc --build --watch",
75
76
  "typecheck": "tsc --noEmit",
76
77
  "lint": "eslint --ext .ts src",
77
78
  "lint:fix": "pnpm run lint --fix",
78
79
  "format": "prettier --write \"src/**/*.+(js|ts|json)\"",
79
80
  "ncu": "ncu -x @passlock/shared",
80
- "ncu:save": "ncu -u -x @passlock/shared"
81
+ "ncu:save": "ncu -u -x @passlock/shared -x eslint"
81
82
  }
82
83
  }
@@ -1,14 +1,14 @@
1
- import { BadRequest } from '@passlock/shared/dist/error/error.js'
2
1
  import {
3
2
  OptionsRes,
4
3
  VerificationReq,
5
4
  VerificationRes,
6
5
  } from '@passlock/shared/dist/rpc/authentication.js'
7
6
  import { RpcClient } from '@passlock/shared/dist/rpc/rpc.js'
7
+ import { IsExistingUserRes, VerifyEmailRes } from '@passlock/shared/dist/rpc/user.js'
8
8
  import type { AuthenticationCredential } from '@passlock/shared/dist/schema/schema.js'
9
9
  import { Effect as E, Layer as L } from 'effect'
10
- import { type AuthenticationRequest, GetCredential } from './authenticate.js'
11
10
  import * as Fixtures from '../test/fixtures.js'
11
+ import { GetCredential, type AuthenticationRequest } from './authenticate.js'
12
12
 
13
13
  export const session = 'session'
14
14
  export const token = 'token'
@@ -48,6 +48,10 @@ export const verificationReq = new VerificationReq({ session, credential })
48
48
 
49
49
  export const verificationRes = new VerificationRes({ principal: Fixtures.principal })
50
50
 
51
+ export const isExistingUserRes = new IsExistingUserRes({ existingUser: true })
52
+
53
+ export const verifyEmailRes = new VerifyEmailRes({ principal: Fixtures.principal })
54
+
51
55
  export const getCredentialTest = L.succeed(
52
56
  GetCredential,
53
57
  GetCredential.of(() => E.succeed(credential)),
@@ -56,13 +60,16 @@ export const getCredentialTest = L.succeed(
56
60
  export const rpcClientTest = L.succeed(
57
61
  RpcClient,
58
62
  RpcClient.of({
59
- preConnect: () => E.succeed({ warmed: true }),
60
- isExistingUser: () => E.succeed({ existingUser: true }),
61
- verifyEmail: () => E.succeed({ verified: true }),
62
- getRegistrationOptions: () => E.fail(new BadRequest({ message: 'Not implemeneted' })),
63
- verifyRegistrationCredential: () => E.fail(new BadRequest({ message: 'Not implemeneted' })),
63
+ preConnect: () => E.succeed(Fixtures.preConnectRes),
64
+ isExistingUser: () => E.succeed(isExistingUserRes),
65
+ verifyEmail: () => E.succeed(verifyEmailRes),
66
+ getRegistrationOptions: () => E.fail(Fixtures.notImplemented),
67
+ verifyRegistrationCredential: () => E.fail(Fixtures.notImplemented),
64
68
  getAuthenticationOptions: () => E.succeed(optionsRes),
65
69
  verifyAuthenticationCredential: () => E.succeed(verificationRes),
70
+ registerOidc: () => E.fail(Fixtures.notImplemented),
71
+ authenticateOidc: () => E.fail(Fixtures.notImplemented),
72
+ resendVerificationEmail: () => E.fail(Fixtures.notImplemented),
66
73
  }),
67
74
  )
68
75
 
@@ -114,8 +114,8 @@ describe('authenticate should', () => {
114
114
  E.sync(() => {
115
115
  const storageMock = mock<StorageService>()
116
116
 
117
- storageMock.storeToken.mockReturnValue(E.unit)
118
- storageMock.clearExpiredToken.mockReturnValue(E.unit)
117
+ storageMock.storeToken.mockReturnValue(E.void)
118
+ storageMock.clearExpiredToken.mockReturnValue(E.void)
119
119
 
120
120
  return storageMock
121
121
  }),
@@ -149,8 +149,8 @@ describe('authenticate should', () => {
149
149
  E.sync(() => {
150
150
  const storageMock = mock<StorageService>()
151
151
 
152
- storageMock.storeToken.mockReturnValue(E.unit)
153
- storageMock.clearExpiredToken.mockReturnValue(E.unit)
152
+ storageMock.storeToken.mockReturnValue(E.void)
153
+ storageMock.clearExpiredToken.mockReturnValue(E.void)
154
154
 
155
155
  return storageMock
156
156
  }),