@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,15 +1,15 @@
1
1
  import { Effect as E, Layer as L, Option as O } from 'effect'
2
2
 
3
3
  import {
4
- OptionsReq,
5
- OptionsRes,
6
- VerificationReq,
7
- VerificationRes,
8
- } from '@passlock/shared/dist/rpc/registration.js'
4
+ OptionsRequest,
5
+ OptionsResponse,
6
+ VerificationRequest,
7
+ VerificationResponse,
8
+ } from '@passlock/shared/dist/rpc/passkey/registration.js'
9
9
  import type { RegistrationCredential } from '@passlock/shared/dist/schema/passkey.js'
10
10
 
11
11
  import * as Fixtures from '../test/fixtures.js'
12
- import { RegistrationClient } from '../rpc/registration.js'
12
+ import { RegistrationClient } from '../rpc/passkey/registration.js'
13
13
  import { UserService } from '../user/user.js'
14
14
  import { CreateCredential, type RegistrationRequest } from './register.js'
15
15
 
@@ -27,9 +27,9 @@ export const registrationRequest: RegistrationRequest = {
27
27
  verifyEmail: O.none(),
28
28
  }
29
29
 
30
- export const rpcOptionsReq = new OptionsReq(registrationRequest)
30
+ export const rpcOptionsReq = new OptionsRequest(registrationRequest)
31
31
 
32
- export const registrationOptions: OptionsRes = {
32
+ export const registrationOptions: OptionsResponse = {
33
33
  session,
34
34
  publicKey: {
35
35
  rp: {
@@ -46,7 +46,7 @@ export const registrationOptions: OptionsRes = {
46
46
  },
47
47
  }
48
48
 
49
- export const rpcOptionsRes = new OptionsRes(registrationOptions)
49
+ export const rpcOptionsRes = new OptionsResponse(registrationOptions)
50
50
 
51
51
  export const credential: RegistrationCredential = {
52
52
  type: 'public-key',
@@ -60,13 +60,13 @@ export const credential: RegistrationCredential = {
60
60
  clientExtensionResults: {},
61
61
  }
62
62
 
63
- export const rpcVerificationReq = new VerificationReq({
63
+ export const rpcVerificationReq = new VerificationRequest({
64
64
  session,
65
65
  credential,
66
66
  verifyEmail: O.none(),
67
67
  })
68
68
 
69
- export const rpcVerificationRes = new VerificationRes({ principal: Fixtures.principal })
69
+ export const rpcVerificationRes = new VerificationResponse({ principal: Fixtures.principal })
70
70
 
71
71
  export const createCredentialTest = L.succeed(
72
72
  CreateCredential,
@@ -5,7 +5,7 @@ import { mock } from 'vitest-mock-extended'
5
5
  import { Duplicate, InternalBrowserError } from '@passlock/shared/dist/error/error.js'
6
6
 
7
7
  import * as Fixture from './register.fixture.js'
8
- import { RegistrationClient } from '../rpc/registration.js'
8
+ import { RegistrationClient } from '../rpc/passkey/registration.js'
9
9
  import { CreateCredential, RegistrationService, RegistrationServiceLive } from './register.js'
10
10
 
11
11
  describe('register should', () => {
@@ -9,19 +9,17 @@ import { Context, Effect as E, Layer, flow, pipe } from 'effect'
9
9
 
10
10
  import type { Duplicate, NotSupported } from '@passlock/shared/dist/error/error.js'
11
11
  import { InternalBrowserError } from '@passlock/shared/dist/error/error.js'
12
- import type { OptionsErrors, VerificationErrors } from '@passlock/shared/dist/rpc/registration.js'
13
- import { OptionsReq, VerificationReq } from '@passlock/shared/dist/rpc/registration.js'
12
+ import * as RPC from '../rpc/passkey/registration.js'
14
13
  import type { RegistrationCredential } from '@passlock/shared/dist/schema/passkey.js'
15
14
  import type { Principal } from '@passlock/shared/dist/schema/principal.js'
16
15
 
17
16
  import { Capabilities } from '../capabilities/capabilities.js'
18
- import { RegistrationClient } from '../rpc/registration.js'
19
17
  import { StorageService } from '../storage/storage.js'
20
18
  import type { UserService } from '../user/user.js'
21
19
 
22
20
  /* Requests */
23
21
 
24
- export type RegistrationRequest = OptionsReq
22
+ export type RegistrationRequest = RPC.OptionsRequest
25
23
 
26
24
  /* Dependencies */
27
25
 
@@ -36,7 +34,7 @@ export class CreateCredential extends Context.Tag('@services/CreateCredential')<
36
34
 
37
35
  /* Errors */
38
36
 
39
- export type RegistrationErrors = NotSupported | OptionsErrors | VerificationErrors
37
+ export type RegistrationErrors = NotSupported | RPC.OptionsErrors | RPC.VerificationErrors
40
38
 
41
39
  /* Service */
42
40
 
@@ -49,11 +47,11 @@ export class RegistrationService extends Context.Tag('@services/RegistrationServ
49
47
 
50
48
  /* Utilities */
51
49
 
52
- const fetchOptions = (request: OptionsReq) => {
50
+ const fetchOptions = (request: RPC.OptionsRequest) => {
53
51
  return E.gen(function* (_) {
54
52
  yield* _(E.logDebug('Making request'))
55
53
 
56
- const rpcClient = yield* _(RegistrationClient)
54
+ const rpcClient = yield* _(RPC.RegistrationClient)
57
55
  const { publicKey, session } = yield* _(rpcClient.getRegistrationOptions(request))
58
56
 
59
57
  yield* _(E.logDebug('Converting Passlock options to CredentialCreationOptions'))
@@ -76,11 +74,11 @@ const toCreationOptions = (jsonOptions: CredentialCreationOptionsJSON) => {
76
74
  )
77
75
  }
78
76
 
79
- const verifyCredential = (request: VerificationReq) => {
77
+ const verifyCredential = (request: RPC.VerificationRequest) => {
80
78
  return E.gen(function* (_) {
81
79
  yield* _(E.logDebug('Making request'))
82
80
 
83
- const rpcClient = yield* _(RegistrationClient)
81
+ const rpcClient = yield* _(RPC.RegistrationClient)
84
82
  const { principal } = yield* _(rpcClient.verifyRegistrationCredential(request))
85
83
 
86
84
  return principal
@@ -94,7 +92,7 @@ type Dependencies =
94
92
  | CreateCredential
95
93
  | StorageService
96
94
  | UserService
97
- | RegistrationClient
95
+ | RPC.RegistrationClient
98
96
 
99
97
  export const registerPasskey = (
100
98
  request: RegistrationRequest,
@@ -105,14 +103,14 @@ export const registerPasskey = (
105
103
  yield* _(capabilities.passkeySupport)
106
104
 
107
105
  yield* _(E.logInfo('Fetching registration options from Passlock'))
108
- const { options, session } = yield* fetchOptions(new OptionsReq(request))
106
+ const { options, session } = yield* fetchOptions(new RPC.OptionsRequest(request))
109
107
 
110
108
  yield* _(E.logInfo('Building new credential'))
111
109
  const { createCredential } = yield* _(CreateCredential)
112
110
  const credential = yield* _(createCredential(options))
113
111
 
114
112
  yield* _(E.logInfo('Storing credential public key in Passlock'))
115
- const verificationRequest = new VerificationReq({
113
+ const verificationRequest = new RPC.VerificationRequest({
116
114
  ...request,
117
115
  credential,
118
116
  session,
@@ -146,7 +144,7 @@ export const RegistrationServiceLive = Layer.effect(
146
144
  E.gen(function* (_) {
147
145
  const context = yield* _(
148
146
  E.context<
149
- CreateCredential | RegistrationClient | Capabilities | StorageService | UserService
147
+ CreateCredential | RPC.RegistrationClient | Capabilities | StorageService | UserService
150
148
  >(),
151
149
  )
152
150
 
package/src/rpc/client.ts CHANGED
@@ -62,7 +62,7 @@ export const DispatcherLive = Layer.effect(
62
62
  }
63
63
 
64
64
  const buildUrl = (_path: string) => {
65
- const endpoint = maybeEndpoint || 'https://api.passlock.dev'
65
+ const endpoint = maybeEndpoint || 'https://api.v1.passlock.dev'
66
66
  // drop leading /
67
67
  const path = _path.replace(/^\//, '')
68
68
  return `${endpoint}/${tenancyId}/${path}`
@@ -3,7 +3,7 @@ import { Context, Effect as E, Layer } from 'effect'
3
3
 
4
4
  import {
5
5
  CONNECT_ENDPOINT,
6
- ConnectRes,
6
+ ConnectResponse,
7
7
  type ConnectionService,
8
8
  } from '@passlock/shared/dist/rpc/connection.js'
9
9
 
@@ -21,10 +21,12 @@ export const ConnectionClientLive = Layer.effect(
21
21
  E.gen(function* (_) {
22
22
  const dispatcher = yield* _(Dispatcher)
23
23
 
24
- const preConnectResolver = makeGetRequest(ConnectRes, S.Never, dispatcher)
24
+ const preConnectResolver = makeGetRequest(ConnectResponse, S.Never, dispatcher)
25
25
 
26
26
  return {
27
27
  preConnect: () => preConnectResolver(CONNECT_ENDPOINT),
28
28
  }
29
29
  }),
30
30
  )
31
+
32
+ export { ConnectResponse } from '@passlock/shared/dist/rpc/connection.js'
@@ -4,40 +4,49 @@ import {
4
4
  type AuthenticationService,
5
5
  OPTIONS_ENDPOINT,
6
6
  OptionsErrors,
7
- OptionsReq,
8
- OptionsRes,
9
- VERIFY_ENDPOINT,
7
+ OptionsRequest,
8
+ OptionsResponse,
9
+ VERIFICATION_ENDPOINT,
10
10
  VerificationErrors,
11
- VerificationReq,
12
- VerificationRes,
13
- } from '@passlock/shared/dist/rpc/authentication.js'
11
+ VerificationRequest,
12
+ VerificationResponse,
13
+ } from '@passlock/shared/dist/rpc/passkey/authentication.js'
14
14
 
15
- import { Dispatcher, makePostRequest } from './client.js'
15
+ import { Dispatcher, makePostRequest } from '../client.js'
16
16
 
17
17
  /* Client */
18
18
 
19
- export class AuthenticationClient extends Context.Tag('@passkey/auth/client')<
19
+ export class AuthenticationClient extends Context.Tag('@passkey/authentication/client')<
20
20
  AuthenticationClient,
21
21
  AuthenticationService
22
- >() {}
22
+ >() { }
23
23
 
24
24
  export const AuthenticationClientLive = Layer.effect(
25
25
  AuthenticationClient,
26
26
  E.gen(function* (_) {
27
27
  const dispatcher = yield* _(Dispatcher)
28
28
 
29
- const optionsResolver = makePostRequest(OptionsReq, OptionsRes, OptionsErrors, dispatcher)
29
+ const optionsResolver = makePostRequest(OptionsRequest, OptionsResponse, OptionsErrors, dispatcher)
30
30
 
31
31
  const verifyResolver = makePostRequest(
32
- VerificationReq,
33
- VerificationRes,
32
+ VerificationRequest,
33
+ VerificationResponse,
34
34
  VerificationErrors,
35
35
  dispatcher,
36
36
  )
37
37
 
38
38
  return {
39
39
  getAuthenticationOptions: req => optionsResolver(OPTIONS_ENDPOINT, req),
40
- verifyAuthenticationCredential: req => verifyResolver(VERIFY_ENDPOINT, req),
40
+ verifyAuthenticationCredential: req => verifyResolver(VERIFICATION_ENDPOINT, req),
41
41
  }
42
42
  }),
43
43
  )
44
+
45
+ export {
46
+ OptionsErrors,
47
+ OptionsRequest,
48
+ OptionsResponse,
49
+ VerificationErrors,
50
+ VerificationRequest,
51
+ VerificationResponse,
52
+ } from '@passlock/shared/dist/rpc/passkey/authentication.js'
@@ -0,0 +1,52 @@
1
+ import { Context, Effect as E, Layer } from 'effect'
2
+
3
+ import {
4
+ OptionsErrors,
5
+ OptionsRequest,
6
+ OptionsResponse,
7
+ type RegistrationService,
8
+ VerificationErrors,
9
+ VerificationRequest,
10
+ VerificationResponse,
11
+ OPTIONS_ENDPOINT,
12
+ VERIFICATION_ENDPOINT
13
+ } from '@passlock/shared/dist/rpc/passkey/registration.js'
14
+
15
+ import { Dispatcher, makePostRequest } from '../client.js'
16
+
17
+ /* Client */
18
+
19
+ export class RegistrationClient extends Context.Tag('@passkey/register/client')<
20
+ RegistrationClient,
21
+ RegistrationService
22
+ >() {}
23
+
24
+ export const RegistrationClientLive = Layer.effect(
25
+ RegistrationClient,
26
+ E.gen(function* (_) {
27
+ const dispatcher = yield* _(Dispatcher)
28
+
29
+ const optionsResolver = makePostRequest(OptionsRequest, OptionsResponse, OptionsErrors, dispatcher)
30
+
31
+ const verifyResolver = makePostRequest(
32
+ VerificationRequest,
33
+ VerificationResponse,
34
+ VerificationErrors,
35
+ dispatcher,
36
+ )
37
+
38
+ return {
39
+ getRegistrationOptions: req => optionsResolver(OPTIONS_ENDPOINT, req),
40
+ verifyRegistrationCredential: req => verifyResolver(VERIFICATION_ENDPOINT, req),
41
+ }
42
+ }),
43
+ )
44
+
45
+ export {
46
+ OptionsErrors,
47
+ OptionsRequest,
48
+ OptionsResponse,
49
+ VerificationErrors,
50
+ VerificationRequest,
51
+ VerificationResponse,
52
+ } from '@passlock/shared/dist/rpc/passkey/registration.js'
package/src/rpc/social.ts CHANGED
@@ -1,12 +1,14 @@
1
1
  import { Context, Effect as E, Layer } from 'effect'
2
2
 
3
3
  import {
4
- AuthOidcErrors,
5
- AuthOidcReq,
6
- PrincipalRes,
7
- RegisterOidcErrors,
8
- RegisterOidcReq,
9
- type SocialService,
4
+ OIDCRegistrationRequest,
5
+ OIDCRegistrationErrors,
6
+ OIDCAuthenticationRequest,
7
+ OIDCAuthenticationErrors,
8
+ OIDC_REGISTRATION_ENDPOINT,
9
+ OIDC_AUTHENTICATION_ENDPOINT,
10
+ PrincipalResponse,
11
+ type SocialService
10
12
  } from '@passlock/shared/dist/rpc/social.js'
11
13
 
12
14
  import { Dispatcher, makePostRequest } from './client.js'
@@ -24,22 +26,30 @@ export const SocialClientLive = Layer.effect(
24
26
  const dispatcher = yield* _(Dispatcher)
25
27
 
26
28
  const registerResolver = makePostRequest(
27
- RegisterOidcReq,
28
- PrincipalRes,
29
- RegisterOidcErrors,
29
+ OIDCRegistrationRequest,
30
+ PrincipalResponse,
31
+ OIDCRegistrationErrors,
30
32
  dispatcher,
31
33
  )
32
34
 
33
35
  const authenticateResolver = makePostRequest(
34
- AuthOidcReq,
35
- PrincipalRes,
36
- AuthOidcErrors,
36
+ OIDCAuthenticationRequest,
37
+ PrincipalResponse,
38
+ OIDCAuthenticationErrors,
37
39
  dispatcher,
38
40
  )
39
41
 
40
42
  return {
41
- registerOidc: req => registerResolver(OIDC_REGISTER_ENDPOINT, req),
42
- authenticateOidc: req => authenticateResolver(OIDC_AUTH_ENDPOINT, req),
43
+ oidcRegistration: req => registerResolver(OIDC_REGISTRATION_ENDPOINT, req),
44
+ oidcAuthentication: req => authenticateResolver(OIDC_AUTHENTICATION_ENDPOINT, req),
43
45
  }
44
46
  }),
45
47
  )
48
+
49
+ export {
50
+ OIDCRegistrationRequest,
51
+ OIDCRegistrationErrors,
52
+ OIDCAuthenticationRequest,
53
+ OIDCAuthenticationErrors,
54
+ PrincipalResponse,
55
+ } from '@passlock/shared/dist/rpc/social.js'
package/src/rpc/user.ts CHANGED
@@ -2,18 +2,18 @@ import * as S from '@effect/schema/Schema'
2
2
  import { Context, Effect as E, Layer } from 'effect'
3
3
 
4
4
  import {
5
- IsExistingUserReq,
6
- IsExistingUserRes,
5
+ IsExistingUserRequest,
6
+ IsExistingUserResponse,
7
7
  RESEND_EMAIL_ENDPOINT,
8
8
  ResendEmailErrors,
9
- ResendEmailReq,
10
- ResendEmailRes,
9
+ ResendEmailRequest,
10
+ ResendEmailResponse,
11
11
  USER_STATUS_ENDPOINT,
12
12
  type UserService,
13
13
  VERIFY_EMAIL_ENDPOINT,
14
14
  VerifyEmailErrors,
15
- VerifyEmailReq,
16
- VerifyEmailRes,
15
+ VerifyEmailRequest,
16
+ VerifyEmailResponse,
17
17
  } from '@passlock/shared/dist/rpc/user.js'
18
18
 
19
19
  import { Dispatcher, makePostRequest } from './client.js'
@@ -28,22 +28,22 @@ export const UserClientLive = Layer.effect(
28
28
  const dispatcher = yield* _(Dispatcher)
29
29
 
30
30
  const isExistingUserResolver = makePostRequest(
31
- IsExistingUserReq,
32
- IsExistingUserRes,
31
+ IsExistingUserRequest,
32
+ IsExistingUserResponse,
33
33
  S.Never,
34
34
  dispatcher,
35
35
  )
36
36
 
37
37
  const verifyEmailResolver = makePostRequest(
38
- VerifyEmailReq,
39
- VerifyEmailRes,
38
+ VerifyEmailRequest,
39
+ VerifyEmailResponse,
40
40
  VerifyEmailErrors,
41
41
  dispatcher,
42
42
  )
43
43
 
44
44
  const resendEmailResolver = makePostRequest(
45
- ResendEmailReq,
46
- ResendEmailRes,
45
+ ResendEmailRequest,
46
+ ResendEmailResponse,
47
47
  ResendEmailErrors,
48
48
  dispatcher,
49
49
  )
@@ -55,3 +55,14 @@ export const UserClientLive = Layer.effect(
55
55
  }
56
56
  }),
57
57
  )
58
+
59
+ export {
60
+ IsExistingUserRequest,
61
+ IsExistingUserResponse,
62
+ ResendEmailErrors,
63
+ ResendEmailRequest,
64
+ ResendEmailResponse,
65
+ VerifyEmailErrors,
66
+ VerifyEmailRequest,
67
+ VerifyEmailResponse,
68
+ } from '@passlock/shared/dist/rpc/user.js'
@@ -1,10 +1,9 @@
1
1
  import { Effect as E, Layer as L, Option as O } from 'effect'
2
2
 
3
- import * as Shared from '@passlock/shared/dist/rpc/social.js'
4
-
5
3
  import * as Fixtures from '../test/fixtures.js'
6
4
  import { SocialClient } from '../rpc/social.js'
7
5
  import type { AuthenticateOidcReq } from './social.js'
6
+ import { OIDCAuthenticationRequest, OIDCRegistrationRequest, PrincipalResponse } from '@passlock/shared/dist/rpc/social.js'
8
7
 
9
8
  export const session = 'session'
10
9
  export const token = 'token'
@@ -12,7 +11,7 @@ export const code = 'code'
12
11
  export const authType = 'passkey'
13
12
  export const expireAt = Date.now() + 10000
14
13
 
15
- export const registerOidcReq = new Shared.RegisterOidcReq({
14
+ export const registerOidcReq = new OIDCRegistrationRequest({
16
15
  provider: 'google',
17
16
  idToken: 'google-token',
18
17
  nonce: 'nonce',
@@ -20,21 +19,21 @@ export const registerOidcReq = new Shared.RegisterOidcReq({
20
19
  familyName: O.some('doe'),
21
20
  })
22
21
 
23
- export const authOidcReq: AuthenticateOidcReq = new Shared.AuthOidcReq({
22
+ export const authOidcReq: AuthenticateOidcReq = new OIDCAuthenticationRequest({
24
23
  provider: 'google',
25
24
  idToken: 'google-token',
26
25
  nonce: 'nonce',
27
26
  })
28
27
 
29
- export const rpcRegisterRes = new Shared.PrincipalRes({ principal: Fixtures.principal })
28
+ export const rpcRegisterRes = new PrincipalResponse({ principal: Fixtures.principal })
30
29
 
31
- export const rpcAuthenticateRes = new Shared.PrincipalRes({ principal: Fixtures.principal })
30
+ export const rpcAuthenticateRes = new PrincipalResponse({ principal: Fixtures.principal })
32
31
 
33
32
  export const rpcClientTest = L.succeed(
34
33
  SocialClient,
35
34
  SocialClient.of({
36
- registerOidc: () => E.fail(Fixtures.notImplemented),
37
- authenticateOidc: () => E.fail(Fixtures.notImplemented),
35
+ oidcRegistration: () => E.fail(Fixtures.notImplemented),
36
+ oidcAuthentication: () => E.fail(Fixtures.notImplemented),
38
37
  }),
39
38
  )
40
39
 
@@ -21,7 +21,7 @@ describe('registerOidc should', () => {
21
21
  E.sync(() => {
22
22
  const rpcMock = mock<SocialClient['Type']>()
23
23
 
24
- rpcMock.registerOidc.mockReturnValue(E.succeed(Fixture.rpcRegisterRes))
24
+ rpcMock.oidcRegistration.mockReturnValue(E.succeed(Fixture.rpcRegisterRes))
25
25
 
26
26
  return rpcMock
27
27
  }),
@@ -41,7 +41,7 @@ describe('registerOidc should', () => {
41
41
  yield* _(service.registerOidc(Fixture.registerOidcReq))
42
42
 
43
43
  const rpcClient = yield* _(SocialClient)
44
- expect(rpcClient.registerOidc).toHaveBeenCalledWith(Fixture.registerOidcReq)
44
+ expect(rpcClient.oidcRegistration).toHaveBeenCalledWith(Fixture.registerOidcReq)
45
45
  })
46
46
 
47
47
  const rpcClientTest = L.effect(
@@ -49,7 +49,7 @@ describe('registerOidc should', () => {
49
49
  E.sync(() => {
50
50
  const rpcMock = mock<SocialClient['Type']>()
51
51
 
52
- rpcMock.registerOidc.mockReturnValue(E.succeed(Fixture.rpcRegisterRes))
52
+ rpcMock.oidcRegistration.mockReturnValue(E.succeed(Fixture.rpcRegisterRes))
53
53
 
54
54
  return rpcMock
55
55
  }),
@@ -77,7 +77,7 @@ describe('registerOidc should', () => {
77
77
  E.sync(() => {
78
78
  const rpcMock = mock<SocialClient['Type']>()
79
79
 
80
- rpcMock.registerOidc.mockReturnValue(E.fail(new Duplicate({ message: 'Duplicate user' })))
80
+ rpcMock.oidcRegistration.mockReturnValue(E.fail(new Duplicate({ message: 'Duplicate user' })))
81
81
 
82
82
  return rpcMock
83
83
  }),
@@ -105,7 +105,7 @@ describe('authenticateIodc should', () => {
105
105
  E.sync(() => {
106
106
  const rpcMock = mock<SocialClient['Type']>()
107
107
 
108
- rpcMock.authenticateOidc.mockReturnValue(E.succeed(Fixture.rpcRegisterRes))
108
+ rpcMock.oidcAuthentication.mockReturnValue(E.succeed(Fixture.rpcRegisterRes))
109
109
 
110
110
  return rpcMock
111
111
  }),
@@ -125,7 +125,7 @@ describe('authenticateIodc should', () => {
125
125
  yield* _(service.authenticateOidc(Fixture.authOidcReq))
126
126
 
127
127
  const rpcClient = yield* _(SocialClient)
128
- expect(rpcClient.authenticateOidc).toHaveBeenCalledWith(Fixture.authOidcReq)
128
+ expect(rpcClient.oidcAuthentication).toHaveBeenCalledWith(Fixture.authOidcReq)
129
129
  })
130
130
 
131
131
  const rpcClientTest = L.effect(
@@ -133,7 +133,7 @@ describe('authenticateIodc should', () => {
133
133
  E.sync(() => {
134
134
  const rpcMock = mock<SocialClient['Type']>()
135
135
 
136
- rpcMock.authenticateOidc.mockReturnValue(E.succeed(Fixture.rpcAuthenticateRes))
136
+ rpcMock.oidcAuthentication.mockReturnValue(E.succeed(Fixture.rpcAuthenticateRes))
137
137
 
138
138
  return rpcMock
139
139
  }),
@@ -161,7 +161,7 @@ describe('authenticateIodc should', () => {
161
161
  E.sync(() => {
162
162
  const rpcMock = mock<SocialClient['Type']>()
163
163
 
164
- rpcMock.authenticateOidc.mockReturnValue(
164
+ rpcMock.oidcAuthentication.mockReturnValue(
165
165
  E.fail(new NotFound({ message: 'User not found' })),
166
166
  )
167
167
 
@@ -2,26 +2,23 @@
2
2
  * Passkey authentication effects
3
3
  */
4
4
  import { Context, Effect as E, Layer, flow } from 'effect'
5
-
6
- import * as RPC from '@passlock/shared/dist/rpc/social.js'
5
+ import * as RPC from '../rpc/social.js'
7
6
  import { type BadRequest, type NotSupported } from '@passlock/shared/dist/error/error.js'
8
7
  import type { Principal } from '@passlock/shared/dist/schema/principal.js'
9
8
 
10
- import { SocialClient } from '../rpc/social.js'
11
-
12
9
  /* Requests */
13
10
 
14
11
  export type Provider = 'apple' | 'google'
15
12
 
16
- export type RegisterOidcReq = RPC.RegisterOidcReq
13
+ export type RegisterOidcReq = RPC.OIDCRegistrationRequest
17
14
 
18
- export type AuthenticateOidcReq = RPC.AuthOidcReq
15
+ export type AuthenticateOidcReq = RPC.OIDCAuthenticationRequest
19
16
 
20
17
  /* Errors */
21
18
 
22
- export type RegistrationErrors = NotSupported | BadRequest | RPC.RegisterOidcErrors
19
+ export type RegistrationErrors = NotSupported | BadRequest | RPC.OIDCRegistrationErrors
23
20
 
24
- export type AuthenticationErrors = NotSupported | BadRequest | RPC.AuthOidcErrors
21
+ export type AuthenticationErrors = NotSupported | BadRequest | RPC.OIDCAuthenticationErrors
25
22
 
26
23
  /* Service */
27
24
 
@@ -35,7 +32,7 @@ export class SocialService extends Context.Tag('@services/SocialService')<
35
32
 
36
33
  /* Effects */
37
34
 
38
- type Dependencies = SocialClient
35
+ type Dependencies = RPC.SocialClient
39
36
 
40
37
  export const registerOidc = (
41
38
  request: RegisterOidcReq,
@@ -43,9 +40,9 @@ export const registerOidc = (
43
40
  return E.gen(function* (_) {
44
41
  yield* _(E.logInfo('Registering social account'))
45
42
 
46
- const rpcClient = yield* _(SocialClient)
47
- const rpcRequest = new RPC.RegisterOidcReq(request)
48
- const { principal } = yield* _(rpcClient.registerOidc(rpcRequest))
43
+ const rpcClient = yield* _(RPC.SocialClient)
44
+ const rpcRequest = new RPC.OIDCRegistrationRequest(request)
45
+ const { principal } = yield* _(rpcClient.oidcRegistration(rpcRequest))
49
46
 
50
47
  return principal
51
48
  })
@@ -57,9 +54,9 @@ export const authenticateOidc = (
57
54
  return E.gen(function* (_) {
58
55
  yield* _(E.logInfo('Authenticating with social account'))
59
56
 
60
- const rpcClient = yield* _(SocialClient)
61
- const rpcRequest = new RPC.AuthOidcReq(request)
62
- const { principal } = yield* _(rpcClient.authenticateOidc(rpcRequest))
57
+ const rpcClient = yield* _(RPC.SocialClient)
58
+ const rpcRequest = new RPC.OIDCAuthenticationRequest(request)
59
+ const { principal } = yield* _(rpcClient.oidcAuthentication(rpcRequest))
63
60
 
64
61
  return principal
65
62
  })
@@ -71,7 +68,7 @@ export const authenticateOidc = (
71
68
  export const SocialServiceLive = Layer.effect(
72
69
  SocialService,
73
70
  E.gen(function* (_) {
74
- const context = yield* _(E.context<SocialClient>())
71
+ const context = yield* _(E.context<RPC.SocialClient>())
75
72
 
76
73
  return SocialService.of({
77
74
  registerOidc: flow(registerOidc, E.provide(context)),
@@ -1,11 +1,11 @@
1
1
  import { Effect as E, Layer as L, Option as O } from 'effect'
2
2
 
3
3
  import {
4
- IsExistingUserReq,
5
- IsExistingUserRes,
6
- ResendEmailReq,
7
- ResendEmailRes,
8
- VerifyEmailRes,
4
+ IsExistingUserRequest,
5
+ IsExistingUserResponse,
6
+ ResendEmailRequest,
7
+ ResendEmailResponse,
8
+ VerifyEmailResponse,
9
9
  } from '@passlock/shared/dist/rpc/user.js'
10
10
 
11
11
  import * as Fixtures from '../test/fixtures.js'
@@ -13,15 +13,15 @@ import { UserClient } from '../rpc/user.js'
13
13
  import type { ResendEmail } from './user.js'
14
14
 
15
15
  export const email = 'jdoe@gmail.com'
16
- export const isRegisteredReq = new IsExistingUserReq({ email })
17
- export const isRegisteredRes = new IsExistingUserRes({ existingUser: false, detail: O.none() })
18
- export const verifyEmailRes = new VerifyEmailRes({ principal: Fixtures.principal })
16
+ export const isRegisteredReq = new IsExistingUserRequest({ email })
17
+ export const isRegisteredRes = new IsExistingUserResponse({ existingUser: false, detail: O.none() })
18
+ export const verifyEmailRes = new VerifyEmailResponse({ principal: Fixtures.principal })
19
19
  export const resendEmailReq: ResendEmail = { userId: '123', method: 'code' }
20
- export const rpcResendEmailReq = new ResendEmailReq({
20
+ export const rpcResendEmailReq = new ResendEmailRequest({
21
21
  userId: '123',
22
22
  verifyEmail: { method: 'code' },
23
23
  })
24
- export const rpcResendEmailRes = new ResendEmailRes({})
24
+ export const rpcResendEmailRes = new ResendEmailResponse({})
25
25
 
26
26
  export const rpcClientTest = L.succeed(
27
27
  UserClient,