@passlock/client 0.9.22 → 0.9.23

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 (151) hide show
  1. package/dist/authentication/authenticate.d.ts +15 -15
  2. package/dist/authentication/authenticate.fixture.d.ts +20 -6
  3. package/dist/authentication/authenticate.fixture.js +7 -5
  4. package/dist/authentication/authenticate.fixture.js.map +1 -1
  5. package/dist/authentication/authenticate.js +19 -8
  6. package/dist/authentication/authenticate.js.map +1 -1
  7. package/dist/capabilities/capabilities.d.ts +8 -4
  8. package/dist/capabilities/capabilities.js +10 -1
  9. package/dist/capabilities/capabilities.js.map +1 -1
  10. package/dist/connection/connection.d.ts +11 -7
  11. package/dist/connection/connection.fixture.d.ts +2 -2
  12. package/dist/connection/connection.fixture.js +2 -1
  13. package/dist/connection/connection.fixture.js.map +1 -1
  14. package/dist/connection/connection.js +12 -3
  15. package/dist/connection/connection.js.map +1 -1
  16. package/dist/effect.d.ts +22 -45
  17. package/dist/effect.js +55 -51
  18. package/dist/effect.js.map +1 -1
  19. package/dist/email/email.d.ts +38 -11
  20. package/dist/email/email.fixture.d.ts +19 -5
  21. package/dist/email/email.fixture.js +4 -3
  22. package/dist/email/email.fixture.js.map +1 -1
  23. package/dist/email/email.js +43 -7
  24. package/dist/email/email.js.map +1 -1
  25. package/dist/event/event.d.ts +3 -1
  26. package/dist/event/event.js +3 -0
  27. package/dist/event/event.js.map +1 -1
  28. package/dist/index.d.ts +105 -27
  29. package/dist/index.js +101 -50
  30. package/dist/index.js.map +1 -1
  31. package/dist/logging/eventLogger.d.ts +13 -1
  32. package/dist/logging/eventLogger.js +13 -0
  33. package/dist/logging/eventLogger.js.map +1 -1
  34. package/dist/registration/register.d.ts +18 -21
  35. package/dist/registration/register.fixture.d.ts +19 -5
  36. package/dist/registration/register.fixture.js +14 -7
  37. package/dist/registration/register.fixture.js.map +1 -1
  38. package/dist/registration/register.js +18 -9
  39. package/dist/registration/register.js.map +1 -1
  40. package/dist/rpc/authentication.d.ts +0 -1
  41. package/dist/rpc/authentication.js +1 -0
  42. package/dist/rpc/authentication.js.map +1 -1
  43. package/dist/rpc/client.d.ts +4 -1
  44. package/dist/rpc/client.js +12 -2
  45. package/dist/rpc/client.js.map +1 -1
  46. package/dist/rpc/config.d.ts +0 -1
  47. package/dist/rpc/connection.d.ts +0 -1
  48. package/dist/rpc/connection.js +1 -0
  49. package/dist/rpc/connection.js.map +1 -1
  50. package/dist/rpc/registration.d.ts +0 -1
  51. package/dist/rpc/registration.js +1 -0
  52. package/dist/rpc/registration.js.map +1 -1
  53. package/dist/rpc/social.d.ts +0 -1
  54. package/dist/rpc/social.js +1 -0
  55. package/dist/rpc/social.js.map +1 -1
  56. package/dist/rpc/user.d.ts +0 -1
  57. package/dist/rpc/user.js +1 -0
  58. package/dist/rpc/user.js.map +1 -1
  59. package/dist/social/social.d.ts +16 -23
  60. package/dist/social/social.fixture.d.ts +21 -9
  61. package/dist/social/social.fixture.js +8 -14
  62. package/dist/social/social.fixture.js.map +1 -1
  63. package/dist/social/social.js +14 -10
  64. package/dist/social/social.js.map +1 -1
  65. package/dist/storage/storage.d.ts +40 -12
  66. package/dist/storage/storage.fixture.d.ts +2 -2
  67. package/dist/storage/storage.fixture.js +2 -2
  68. package/dist/storage/storage.fixture.js.map +1 -1
  69. package/dist/storage/storage.js +48 -15
  70. package/dist/storage/storage.js.map +1 -1
  71. package/dist/test/fixtures.d.ts +1 -2
  72. package/dist/test/fixtures.js +20 -5
  73. package/dist/test/fixtures.js.map +1 -1
  74. package/dist/user/user.d.ts +8 -5
  75. package/dist/user/user.fixture.d.ts +2 -2
  76. package/dist/user/user.fixture.js +9 -5
  77. package/dist/user/user.fixture.js.map +1 -1
  78. package/dist/user/user.js +9 -3
  79. package/dist/user/user.js.map +1 -1
  80. package/dist/version.d.ts +1 -2
  81. package/dist/version.js +1 -1
  82. package/dist/version.js.map +1 -1
  83. package/package.json +30 -26
  84. package/src/authentication/authenticate.fixture.ts +8 -7
  85. package/src/authentication/authenticate.test.ts +59 -17
  86. package/src/authentication/authenticate.ts +34 -32
  87. package/src/capabilities/capabilities.ts +9 -8
  88. package/src/connection/connection.fixture.ts +2 -1
  89. package/src/connection/connection.test.ts +3 -3
  90. package/src/connection/connection.ts +9 -8
  91. package/src/effect.ts +129 -128
  92. package/src/email/email.fixture.ts +4 -3
  93. package/src/email/email.test.ts +4 -4
  94. package/src/email/email.ts +24 -16
  95. package/src/index.ts +225 -169
  96. package/src/logging/eventLogger.test.ts +1 -1
  97. package/src/logging/eventLogger.ts +2 -2
  98. package/src/registration/register.fixture.ts +14 -8
  99. package/src/registration/register.test.ts +13 -9
  100. package/src/registration/register.ts +37 -34
  101. package/src/rpc/authentication.ts +31 -0
  102. package/src/rpc/client.ts +173 -0
  103. package/src/rpc/config.ts +18 -0
  104. package/src/rpc/connection.ts +24 -0
  105. package/src/rpc/registration.ts +31 -0
  106. package/src/rpc/social.ts +36 -0
  107. package/src/rpc/user.ts +42 -0
  108. package/src/social/social.fixture.ts +10 -18
  109. package/src/social/social.test.ts +13 -29
  110. package/src/social/social.ts +20 -47
  111. package/src/storage/storage.fixture.ts +3 -4
  112. package/src/storage/storage.test.ts +28 -19
  113. package/src/storage/storage.ts +36 -36
  114. package/src/test/fixtures.ts +21 -6
  115. package/src/user/user.fixture.ts +17 -7
  116. package/src/user/user.test.ts +2 -5
  117. package/src/user/user.ts +13 -9
  118. package/src/version.ts +1 -0
  119. package/dist/authentication/authenticate.d.ts.map +0 -1
  120. package/dist/authentication/authenticate.fixture.d.ts.map +0 -1
  121. package/dist/capabilities/capabilities.d.ts.map +0 -1
  122. package/dist/config.d.ts +0 -18
  123. package/dist/config.d.ts.map +0 -1
  124. package/dist/config.js +0 -20
  125. package/dist/config.js.map +0 -1
  126. package/dist/connection/connection.d.ts.map +0 -1
  127. package/dist/connection/connection.fixture.d.ts.map +0 -1
  128. package/dist/effect.d.ts.map +0 -1
  129. package/dist/email/email.d.ts.map +0 -1
  130. package/dist/email/email.fixture.d.ts.map +0 -1
  131. package/dist/event/event.d.ts.map +0 -1
  132. package/dist/index.d.ts.map +0 -1
  133. package/dist/logging/eventLogger.d.ts.map +0 -1
  134. package/dist/registration/register.d.ts.map +0 -1
  135. package/dist/registration/register.fixture.d.ts.map +0 -1
  136. package/dist/rpc/authentication.d.ts.map +0 -1
  137. package/dist/rpc/client.d.ts.map +0 -1
  138. package/dist/rpc/config.d.ts.map +0 -1
  139. package/dist/rpc/connection.d.ts.map +0 -1
  140. package/dist/rpc/registration.d.ts.map +0 -1
  141. package/dist/rpc/social.d.ts.map +0 -1
  142. package/dist/rpc/user.d.ts.map +0 -1
  143. package/dist/social/social.d.ts.map +0 -1
  144. package/dist/social/social.fixture.d.ts.map +0 -1
  145. package/dist/storage/storage.d.ts.map +0 -1
  146. package/dist/storage/storage.fixture.d.ts.map +0 -1
  147. package/dist/test/fixtures.d.ts.map +0 -1
  148. package/dist/user/user.d.ts.map +0 -1
  149. package/dist/user/user.fixture.d.ts.map +0 -1
  150. package/dist/version.d.ts.map +0 -1
  151. package/src/config.ts +0 -42
package/dist/index.js CHANGED
@@ -1,15 +1,47 @@
1
1
  import { ErrorCode } from '@passlock/shared/dist/error/error.js';
2
- import { RpcConfig } from '@passlock/shared/dist/rpc/config.js';
3
- import { Effect as E, Layer as L, Layer, Option, Runtime, Scope, pipe } from 'effect';
4
- import { AuthenticationService } from './authentication/authenticate.js';
5
- import { Capabilities } from './capabilities/capabilities.js';
6
- import { ConnectionService } from './connection/connection.js';
7
- import { allRequirements } from './effect.js';
8
- import { EmailService } from './email/email.js';
9
- import { RegistrationService } from './registration/register.js';
10
- import { SocialService } from './social/social.js';
11
- import { Storage, StorageService } from './storage/storage.js';
12
- import { UserService } from './user/user.js';
2
+ import { RpcConfig } from './rpc/config.js';
3
+ import { Effect as E, Layer as L, Layer, Option as O, Runtime, Scope, pipe } from 'effect';
4
+ import { dual } from 'effect/Function';
5
+ import { allRequirements, authenticateOidc, authenticatePasskey, clearExpiredTokens, getSessionToken, isExistingUser, isPasskeySupport, preConnect, registerOidc, registerPasskey, resendVerificationEmail, verifyEmailCode, verifyEmailLink, } from './effect.js';
6
+ import { BrowserStorage, StorageService, } from './storage/storage.js';
7
+ import { PASSLOCK_CLIENT_VERSION } from './version.js';
8
+ const nonEmpty = (text) => {
9
+ const trimmed = text.trim();
10
+ if (trimmed.length > 0)
11
+ return O.some(trimmed);
12
+ return O.none();
13
+ };
14
+ const toRpcRegistrationRequest = (request) => {
15
+ return {
16
+ email: request.email,
17
+ givenName: pipe(O.fromNullable(request.givenName), O.flatMap(nonEmpty)),
18
+ familyName: pipe(O.fromNullable(request.familyName), O.flatMap(nonEmpty)),
19
+ userVerification: O.fromNullable(request.userVerification),
20
+ verifyEmail: O.fromNullable(request.verifyEmail),
21
+ };
22
+ };
23
+ const toRpcAuthenticationRequest = (request) => {
24
+ return {
25
+ email: O.fromNullable(request.email),
26
+ userVerification: O.fromNullable(request.userVerification),
27
+ };
28
+ };
29
+ const toRpcRegisterOidcReq = (request) => {
30
+ return {
31
+ provider: request.provider,
32
+ idToken: request.idToken,
33
+ givenName: pipe(O.fromNullable(request.givenName), O.flatMap(nonEmpty)),
34
+ familyName: pipe(O.fromNullable(request.familyName), O.flatMap(nonEmpty)),
35
+ nonce: request.nonce,
36
+ };
37
+ };
38
+ const toRpcAuthenticateOidcReq = (request) => {
39
+ return {
40
+ provider: request.provider,
41
+ idToken: request.idToken,
42
+ nonce: request.nonce,
43
+ };
44
+ };
13
45
  export { ErrorCode } from '@passlock/shared/dist/error/error.js';
14
46
  export class PasslockError extends Error {
15
47
  code;
@@ -20,9 +52,7 @@ export class PasslockError extends Error {
20
52
  this.detail = detail;
21
53
  }
22
54
  static isError = (error) => {
23
- return (typeof error === 'object' &&
24
- error !== null &&
25
- error instanceof PasslockError);
55
+ return typeof error === 'object' && error !== null && error instanceof PasslockError;
26
56
  };
27
57
  }
28
58
  const hasMessage = (defect) => {
@@ -49,6 +79,7 @@ const transformErrors = (effect) => {
49
79
  : E.succeed(new PasslockError('Sorry, something went wrong', ErrorCode.InternalServerError));
50
80
  },
51
81
  Interrupt: () => {
82
+ console.error("Interrupt");
52
83
  return E.succeed(new PasslockError('Operation aborted', ErrorCode.InternalBrowserError));
53
84
  },
54
85
  Sequential: errors => {
@@ -64,52 +95,72 @@ const transformErrors = (effect) => {
64
95
  };
65
96
  export class PasslockUnsafe {
66
97
  runtime;
67
- constructor(config) {
68
- const rpcConfig = Layer.succeed(RpcConfig, RpcConfig.of(config));
69
- const storage = Layer.succeed(Storage, Storage.of(globalThis.localStorage));
70
- const allLayers = pipe(allRequirements, L.provide(rpcConfig), L.provide(storage));
98
+ constructor(props) {
99
+ const config = Layer.succeed(RpcConfig, RpcConfig.of(props));
100
+ const storage = Layer.succeed(BrowserStorage, BrowserStorage.of(globalThis.localStorage));
101
+ const allLayers = pipe(allRequirements, L.provide(config), L.provide(storage), L.merge(config));
71
102
  const scope = E.runSync(Scope.make());
72
103
  this.runtime = E.runSync(Layer.toRuntime(allLayers).pipe(Scope.extend(scope)));
104
+ E.runSync(E.logDebug(`Passlock version: ${PASSLOCK_CLIENT_VERSION}`));
73
105
  }
74
- runPromise = (effect, options = undefined) => {
75
- return pipe(transformErrors(effect), E.flatMap(result => (PasslockError.isError(result) ? E.fail(result) : E.succeed(result))), effect => Runtime.runPromise(this.runtime)(effect, options));
106
+ static isUserPrincipal = (principal) => {
107
+ return (principal.givenName !== undefined &&
108
+ principal.familyName !== undefined &&
109
+ principal.email !== undefined &&
110
+ principal.emailVerified !== undefined);
111
+ };
112
+ runPromise = dual(2, (effect, options) => pipe(transformErrors(effect), E.flatMap(result => (PasslockError.isError(result) ? E.fail(result) : E.succeed(result))), effect => Runtime.runPromise(this.runtime)(effect, options)));
113
+ preConnect = (options) => pipe(preConnect(), this.runPromise(options));
114
+ isPasskeySupport = () => pipe(isPasskeySupport, effect => Runtime.runPromise(this.runtime)(effect));
115
+ isExistingUser = (email, options) => pipe(isExistingUser(email), this.runPromise(options));
116
+ registerPasskey = (request, options) => pipe(registerPasskey(toRpcRegistrationRequest(request)), this.runPromise(options));
117
+ authenticatePasskey = (request, options) => pipe(authenticatePasskey(toRpcAuthenticationRequest(request)), this.runPromise(options));
118
+ registerOidc = (request, options) => pipe(registerOidc(toRpcRegisterOidcReq(request)), this.runPromise(options));
119
+ authenticateOidc = (request, options) => pipe(authenticateOidc(toRpcAuthenticateOidcReq(request)), this.runPromise(options));
120
+ verifyEmailCode = (request, options) => pipe(verifyEmailCode(request), this.runPromise(options));
121
+ resendVerificationEmail = (request, options) => pipe(resendVerificationEmail(request), this.runPromise(options));
122
+ verifyEmailLink = (options) => pipe(verifyEmailLink, this.runPromise(options));
123
+ getSessionToken = (authType) => pipe(getSessionToken(authType), E.orElseSucceed(() => undefined), effect => Runtime.runSync(this.runtime)(effect));
124
+ clearExpiredTokens = () => {
125
+ pipe(clearExpiredTokens, effect => {
126
+ Runtime.runSync(this.runtime)(effect);
127
+ });
76
128
  };
77
- preConnect = (options) => pipe(ConnectionService, E.flatMap(service => service.preConnect()), effect => Runtime.runPromise(this.runtime)(effect, options));
78
- isPasskeySupport = () => pipe(Capabilities, E.flatMap(service => service.isPasskeySupport), effect => Runtime.runPromise(this.runtime)(effect));
79
- isExistingUser = (email, options) => pipe(UserService, E.flatMap(service => service.isExistingUser(email)), effect => this.runPromise(effect, options));
80
- registerPasskey = (request, options) => pipe(RegistrationService, E.flatMap(service => service.registerPasskey(request)), effect => this.runPromise(effect, options));
81
- authenticatePasskey = (request, options) => pipe(AuthenticationService, E.flatMap(service => service.authenticatePasskey(request)), effect => this.runPromise(effect, options));
82
- registerOidc = (request, options) => pipe(SocialService, E.flatMap(service => service.registerOidc(request)), effect => this.runPromise(effect, options));
83
- authenticateOidc = (request, options) => pipe(SocialService, E.flatMap(service => service.authenticateOidc(request)), effect => this.runPromise(effect, options));
84
- verifyEmailCode = (request, options) => pipe(EmailService, E.flatMap(service => service.verifyEmailCode(request)), effect => this.runPromise(effect, options));
85
- resendVerificationEmail = (request, options) => pipe(UserService, E.flatMap(service => service.resendVerificationEmail(request)), effect => this.runPromise(effect, options));
86
- verifyEmailLink = (options) => pipe(EmailService, E.flatMap(service => service.verifyEmailLink()), effect => this.runPromise(effect, options));
87
- getSessionToken = (authType) => pipe(StorageService, E.flatMap(service => service.getToken(authType).pipe(effect => E.option(effect))), E.map(Option.getOrUndefined), effect => Runtime.runSync(this.runtime)(effect));
88
- clearExpiredTokens = () => pipe(StorageService, E.flatMap(service => service.clearExpiredTokens), effect => Runtime.runSync(this.runtime)(effect));
89
129
  }
90
130
  export class Passlock {
91
131
  runtime;
92
- constructor(config) {
93
- const rpcConfig = Layer.succeed(RpcConfig, RpcConfig.of(config));
94
- const storage = Layer.succeed(Storage, Storage.of(globalThis.localStorage));
95
- const allLayers = pipe(allRequirements, L.provide(rpcConfig), L.provide(storage));
132
+ constructor(props) {
133
+ const config = Layer.succeed(RpcConfig, RpcConfig.of(props));
134
+ const storage = Layer.succeed(BrowserStorage, BrowserStorage.of(globalThis.localStorage));
135
+ const allLayers = pipe(allRequirements, L.provide(config), L.provide(storage), L.merge(config));
96
136
  const scope = E.runSync(Scope.make());
97
137
  this.runtime = E.runSync(Layer.toRuntime(allLayers).pipe(Scope.extend(scope)));
138
+ E.runSync(E.logDebug(`Passlock version: ${PASSLOCK_CLIENT_VERSION}`));
98
139
  }
99
- runPromise = (effect, options = undefined) => {
100
- return pipe(transformErrors(effect), effect => Runtime.runPromise(this.runtime)(effect, options));
140
+ static isUserPrincipal = (principal) => {
141
+ return (principal.givenName !== undefined &&
142
+ principal.familyName !== undefined &&
143
+ principal.email !== undefined &&
144
+ principal.emailVerified !== undefined);
145
+ };
146
+ runPromise = dual(2, (effect, options) => pipe(transformErrors(effect), effect => Runtime.runPromise(this.runtime)(effect, options)));
147
+ preConnect = async (options) => {
148
+ return pipe(preConnect(), E.as(true), this.runPromise(options));
149
+ };
150
+ isPasskeySupport = () => pipe(isPasskeySupport, effect => Runtime.runPromise(this.runtime)(effect));
151
+ isExistingUser = (email, options) => pipe(isExistingUser(email), this.runPromise(options));
152
+ registerPasskey = (request, options) => pipe(registerPasskey(toRpcRegistrationRequest(request)), this.runPromise(options));
153
+ authenticatePasskey = (request = {}, options) => pipe(toRpcAuthenticationRequest(request), authenticatePasskey, this.runPromise(options));
154
+ registerOidc = (request, options) => pipe(registerOidc(toRpcRegisterOidcReq(request)), this.runPromise(options));
155
+ authenticateOidc = (request, options) => pipe(authenticateOidc(request), this.runPromise(options));
156
+ verifyEmailCode = (request, options) => pipe(verifyEmailCode(request), this.runPromise(options));
157
+ verifyEmailLink = (options) => pipe(verifyEmailLink, this.runPromise(options));
158
+ resendVerificationEmail = (request, options) => pipe(resendVerificationEmail(request), E.as(true), this.runPromise(options));
159
+ getSessionToken = (authType) => pipe(getSessionToken(authType), E.orElseSucceed(() => undefined), effect => E.runPromise(effect));
160
+ clearExpiredTokens = () => {
161
+ pipe(StorageService, E.flatMap(service => service.clearExpiredTokens), effect => {
162
+ Runtime.runSync(this.runtime)(effect);
163
+ });
101
164
  };
102
- preConnect = (options) => pipe(ConnectionService, E.flatMap(service => service.preConnect()), effect => this.runPromise(effect, options));
103
- isPasskeySupport = () => pipe(Capabilities, E.flatMap(service => service.isPasskeySupport), effect => Runtime.runPromise(this.runtime)(effect));
104
- isExistingUser = (email, options) => pipe(UserService, E.flatMap(service => service.isExistingUser(email)), effect => this.runPromise(effect, options));
105
- registerPasskey = (request, options) => pipe(RegistrationService, E.flatMap(service => service.registerPasskey(request)), effect => this.runPromise(effect, options));
106
- authenticatePasskey = (request = {}, options) => pipe(AuthenticationService, E.flatMap(service => service.authenticatePasskey(request)), effect => this.runPromise(effect, options));
107
- registerOidc = (request, options) => pipe(SocialService, E.flatMap(service => service.registerOidc(request)), effect => this.runPromise(effect, options));
108
- authenticateOidc = (request, options) => pipe(SocialService, E.flatMap(service => service.authenticateOidc(request)), effect => this.runPromise(effect, options));
109
- verifyEmailCode = (request, options) => pipe(EmailService, E.flatMap(service => service.verifyEmailCode(request)), effect => this.runPromise(effect, options));
110
- verifyEmailLink = (options) => pipe(EmailService, E.flatMap(service => service.verifyEmailLink()), effect => this.runPromise(effect, options));
111
- resendVerificationEmail = (request, options) => pipe(UserService, E.flatMap(service => service.resendVerificationEmail(request)), effect => this.runPromise(effect, options));
112
- getSessionToken = (authType) => pipe(StorageService, E.flatMap(service => service.getToken(authType).pipe(effect => E.option(effect))), E.map(maybeToken => Option.getOrUndefined(maybeToken)), effect => Runtime.runSync(this.runtime)(effect));
113
- clearExpiredTokens = () => pipe(StorageService, E.flatMap(service => service.clearExpiredTokens), effect => Runtime.runSync(this.runtime)(effect));
114
165
  }
115
166
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
+ /**
2
+ * Logger implementation that also fires DOM events.
3
+ * This is useful to allow external code to plug into the logging
4
+ * mechanism. E.g. the Passlock demo subscribes to events to generate
5
+ * a typewriter style effect
6
+ */
1
7
  import { Effect as E } from 'effect';
8
+ /**
9
+ * Some log messages span multiple lines/include json etc which is
10
+ * better output without being formatted by Effect's logging framework
11
+ *
12
+ * @param message
13
+ * @returns
14
+ */
2
15
  export declare const logRaw: <T>(message: T) => E.Effect<void, never, never>;
3
16
  export declare const DebugMessage = "PasslogDebugMessage";
4
17
  export declare const eventLoggerLive: import("effect/Layer").Layer<never, never, never>;
5
- //# sourceMappingURL=eventLogger.d.ts.map
@@ -1,4 +1,17 @@
1
+ /**
2
+ * Logger implementation that also fires DOM events.
3
+ * This is useful to allow external code to plug into the logging
4
+ * mechanism. E.g. the Passlock demo subscribes to events to generate
5
+ * a typewriter style effect
6
+ */
1
7
  import { Effect as E, LogLevel, Logger } from 'effect';
8
+ /**
9
+ * Some log messages span multiple lines/include json etc which is
10
+ * better output without being formatted by Effect's logging framework
11
+ *
12
+ * @param message
13
+ * @returns
14
+ */
2
15
  export const logRaw = (message) => {
3
16
  return E.sync(() => {
4
17
  console.log(message);
@@ -1 +1 @@
1
- {"version":3,"file":"eventLogger.js","sourceRoot":"","sources":["../../src/logging/eventLogger.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAStD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,OAAU,EAAE,EAAE;IACtC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAA;AAEjD,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QAC9D,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;IACvD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CACvC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/D,QAAQ,CAAC,OAAO,CAAC,CAAA;IACnB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"eventLogger.js","sourceRoot":"","sources":["../../src/logging/eventLogger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,OAAU,EAAE,EAAE;IACtC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAA;AAEjD,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QAC9D,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;IACvD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CACvC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/D,QAAQ,CAAC,OAAO,CAAC,CAAA;IACnB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC,CAAC,CACH,CAAA"}
@@ -1,30 +1,27 @@
1
- import type { NotSupported } from '@passlock/shared/dist/error/error.js';
2
- import { Duplicate, InternalBrowserError } from '@passlock/shared/dist/error/error.js';
1
+ import type { Duplicate, NotSupported } from '@passlock/shared/dist/error/error.js';
2
+ import { InternalBrowserError } from '@passlock/shared/dist/error/error.js';
3
3
  import type { OptionsErrors, VerificationErrors } from '@passlock/shared/dist/rpc/registration.js';
4
- import { RegistrationClient } from '@passlock/shared/dist/rpc/registration.js';
5
- import { VerifyEmail } from '@passlock/shared/dist/schema/email.js';
6
- import type { RegistrationCredential, UserVerification } from '@passlock/shared/dist/schema/passkey.js';
7
- import { Principal } from '@passlock/shared/dist/schema/principal.js';
4
+ import { OptionsReq } from '@passlock/shared/dist/rpc/registration.js';
5
+ import type { RegistrationCredential } from '@passlock/shared/dist/schema/passkey.js';
6
+ import type { Principal } from '@passlock/shared/dist/schema/principal.js';
8
7
  import { Context, Effect as E, Layer } from 'effect';
9
8
  import { Capabilities } from '../capabilities/capabilities.js';
9
+ import { RegistrationClient } from '../rpc/registration.js';
10
10
  import { StorageService } from '../storage/storage.js';
11
- import { UserService } from '../user/user.js';
12
- export type RegistrationRequest = {
13
- email: string;
14
- givenName: string;
15
- familyName: string;
16
- userVerification?: UserVerification;
17
- verifyEmail?: VerifyEmail;
18
- };
19
- export type CreateCredential = (request: CredentialCreationOptions) => E.Effect<RegistrationCredential, InternalBrowserError | Duplicate>;
20
- export declare const CreateCredential: Context.Tag<CreateCredential, CreateCredential>;
11
+ import type { UserService } from '../user/user.js';
12
+ export type RegistrationRequest = OptionsReq;
13
+ declare const CreateCredential_base: Context.TagClass<CreateCredential, "@services/CreateCredential", {
14
+ createCredential: (request: CredentialCreationOptions) => E.Effect<RegistrationCredential, InternalBrowserError | Duplicate>;
15
+ }>;
16
+ export declare class CreateCredential extends CreateCredential_base {
17
+ }
21
18
  export type RegistrationErrors = NotSupported | OptionsErrors | VerificationErrors;
22
- export type RegistrationService = {
19
+ declare const RegistrationService_base: Context.TagClass<RegistrationService, "@services/RegistrationService", {
23
20
  registerPasskey: (request: RegistrationRequest) => E.Effect<Principal, RegistrationErrors>;
24
- };
25
- export declare const RegistrationService: Context.Tag<RegistrationService, RegistrationService>;
21
+ }>;
22
+ export declare class RegistrationService extends RegistrationService_base {
23
+ }
26
24
  type Dependencies = Capabilities | CreateCredential | StorageService | UserService | RegistrationClient;
27
25
  export declare const registerPasskey: (request: RegistrationRequest) => E.Effect<Principal, RegistrationErrors, Dependencies>;
28
- export declare const RegistrationServiceLive: Layer.Layer<RegistrationService, never, Capabilities | StorageService | UserService | CreateCredential | RegistrationClient>;
26
+ export declare const RegistrationServiceLive: Layer.Layer<RegistrationService, never, RegistrationClient | Capabilities | StorageService | UserService | CreateCredential>;
29
27
  export {};
30
- //# sourceMappingURL=register.d.ts.map
@@ -1,6 +1,7 @@
1
- import { OptionsReq, OptionsRes, RegistrationClient, VerificationReq, VerificationRes } from '@passlock/shared/dist/rpc/registration.js';
1
+ import { OptionsReq, OptionsRes, VerificationReq, VerificationRes } from '@passlock/shared/dist/rpc/registration.js';
2
2
  import type { RegistrationCredential } from '@passlock/shared/dist/schema/passkey.js';
3
3
  import { Layer as L } from 'effect';
4
+ import { RegistrationClient } from '../rpc/registration.js';
4
5
  import { UserService } from '../user/user.js';
5
6
  import { CreateCredential, type RegistrationRequest } from './register.js';
6
7
  export declare const session = "session";
@@ -19,21 +20,34 @@ export declare const createCredentialTest: L.Layer<CreateCredential, never, neve
19
20
  export declare const userServiceTest: L.Layer<UserService, never, never>;
20
21
  export declare const rpcClientTest: L.Layer<RegistrationClient, never, never>;
21
22
  export declare const principal: {
23
+ readonly email?: string;
24
+ readonly givenName?: string;
25
+ readonly familyName?: string;
26
+ readonly emailVerified?: boolean;
27
+ readonly iss: string;
28
+ readonly aud: string;
29
+ readonly sub: string;
30
+ readonly iat: Date;
31
+ readonly nbf: Date;
32
+ readonly exp: Date;
33
+ readonly jti: string;
22
34
  readonly token: string;
23
- readonly user: {
24
- readonly email: string;
35
+ readonly userVerified: boolean;
36
+ readonly authType: "email" | "apple" | "google" | "passkey";
37
+ readonly authId: string;
38
+ readonly user?: {
25
39
  readonly id: string;
40
+ readonly email: string;
26
41
  readonly givenName: string;
27
42
  readonly familyName: string;
28
43
  readonly emailVerified: boolean;
29
44
  };
30
45
  readonly authStatement: {
31
- readonly authType: "email" | "passkey" | "apple" | "google";
32
46
  readonly userVerified: boolean;
47
+ readonly authType: "email" | "apple" | "google" | "passkey";
33
48
  readonly authTimestamp: Date;
34
49
  };
35
50
  readonly expireAt: Date;
36
51
  };
37
52
  export declare const capabilitiesTest: L.Layer<import("../capabilities/capabilities.js").Capabilities, never, never>;
38
53
  export declare const storageServiceTest: L.Layer<import("../storage/storage.js").StorageService, never, never>;
39
- //# sourceMappingURL=register.fixture.d.ts.map
@@ -1,5 +1,6 @@
1
- import { OptionsReq, OptionsRes, RegistrationClient, VerificationReq, VerificationRes, } from '@passlock/shared/dist/rpc/registration.js';
2
- import { Effect as E, Layer as L } from 'effect';
1
+ import { OptionsReq, OptionsRes, VerificationReq, VerificationRes, } from '@passlock/shared/dist/rpc/registration.js';
2
+ import { Effect as E, Layer as L, Option as O } from 'effect';
3
+ import { RegistrationClient } from '../rpc/registration.js';
3
4
  import * as Fixtures from '../test/fixtures.js';
4
5
  import { UserService } from '../user/user.js';
5
6
  import { CreateCredential } from './register.js';
@@ -10,8 +11,10 @@ export const authType = 'passkey';
10
11
  export const expireAt = Date.now() + 10000;
11
12
  export const registrationRequest = {
12
13
  email: 'jdoe@gmail.com',
13
- givenName: 'john',
14
- familyName: 'doe',
14
+ givenName: O.some('john'),
15
+ familyName: O.some('doe'),
16
+ userVerification: O.none(),
17
+ verifyEmail: O.none(),
15
18
  };
16
19
  export const rpcOptionsReq = new OptionsReq(registrationRequest);
17
20
  export const registrationOptions = {
@@ -42,12 +45,16 @@ export const credential = {
42
45
  },
43
46
  clientExtensionResults: {},
44
47
  };
45
- export const rpcVerificationReq = new VerificationReq({ session, credential });
48
+ export const rpcVerificationReq = new VerificationReq({
49
+ session,
50
+ credential,
51
+ verifyEmail: O.none(),
52
+ });
46
53
  export const rpcVerificationRes = new VerificationRes({ principal: Fixtures.principal });
47
- export const createCredentialTest = L.succeed(CreateCredential, CreateCredential.of(() => E.succeed(credential)));
54
+ export const createCredentialTest = L.succeed(CreateCredential, CreateCredential.of({ createCredential: () => E.succeed(credential) }));
48
55
  export const userServiceTest = L.succeed(UserService, UserService.of({
49
56
  isExistingUser: () => E.succeed(false),
50
- resendVerificationEmail: () => E.succeed(true)
57
+ resendVerificationEmail: () => E.succeed(true),
51
58
  }));
52
59
  export const rpcClientTest = L.succeed(RegistrationClient, RegistrationClient.of({
53
60
  getRegistrationOptions: () => E.succeed(rpcOptionsRes),
@@ -1 +1 @@
1
- {"version":3,"file":"register.fixture.js","sourceRoot":"","sources":["../../src/registration/register.fixture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.fixture.js","sourceRoot":"","sources":["../../src/registration/register.fixture.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,20 @@
1
+ /**
2
+ * User & passkey registration effects
3
+ */
1
4
  import { parseCreationOptionsFromJSON, } from '@github/webauthn-json/browser-ponyfill';
2
- import { Duplicate, InternalBrowserError } from '@passlock/shared/dist/error/error.js';
3
- import { OptionsReq, RegistrationClient, VerificationReq } from '@passlock/shared/dist/rpc/registration.js';
4
- import { VerifyEmail } from '@passlock/shared/dist/schema/email.js';
5
- import { Principal } from '@passlock/shared/dist/schema/principal.js';
5
+ import { InternalBrowserError } from '@passlock/shared/dist/error/error.js';
6
+ import { OptionsReq, VerificationReq, } from '@passlock/shared/dist/rpc/registration.js';
6
7
  import { Context, Effect as E, Layer, flow, pipe } from 'effect';
7
8
  import { Capabilities } from '../capabilities/capabilities.js';
9
+ import { RegistrationClient } from '../rpc/registration.js';
8
10
  import { StorageService } from '../storage/storage.js';
9
- import { UserService } from '../user/user.js';
10
- export const CreateCredential = Context.GenericTag('@services/Create');
11
- export const RegistrationService = Context.GenericTag('@services/RegistrationService');
11
+ /* Dependencies */
12
+ export class CreateCredential extends Context.Tag('@services/CreateCredential')() {
13
+ }
14
+ /* Service */
15
+ export class RegistrationService extends Context.Tag('@services/RegistrationService')() {
16
+ }
17
+ /* Utilities */
12
18
  const fetchOptions = (request) => {
13
19
  return E.gen(function* (_) {
14
20
  yield* _(E.logDebug('Making request'));
@@ -39,9 +45,9 @@ export const registerPasskey = (request) => {
39
45
  const capabilities = yield* _(Capabilities);
40
46
  yield* _(capabilities.passkeySupport);
41
47
  yield* _(E.logInfo('Fetching registration options from Passlock'));
42
- const { options, session } = yield* _(fetchOptions(new OptionsReq(request)));
48
+ const { options, session } = yield* fetchOptions(new OptionsReq(request));
43
49
  yield* _(E.logInfo('Building new credential'));
44
- const createCredential = yield* _(CreateCredential);
50
+ const { createCredential } = yield* _(CreateCredential);
45
51
  const credential = yield* _(createCredential(options));
46
52
  yield* _(E.logInfo('Storing credential public key in Passlock'));
47
53
  const verificationRequest = new VerificationReq({
@@ -60,10 +66,13 @@ export const registerPasskey = (request) => {
60
66
  });
61
67
  return E.catchTag(effect, 'InternalBrowserError', e => E.die(e));
62
68
  };
69
+ /* Live */
70
+ /* v8 ignore start */
63
71
  export const RegistrationServiceLive = Layer.effect(RegistrationService, E.gen(function* (_) {
64
72
  const context = yield* _(E.context());
65
73
  return RegistrationService.of({
66
74
  registerPasskey: flow(registerPasskey, E.provide(context)),
67
75
  });
68
76
  }));
77
+ /* v8 ignore stop */
69
78
  //# sourceMappingURL=register.js.map
@@ -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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"}
@@ -6,4 +6,3 @@ export declare class AuthenticationClient extends AuthenticationClient_base {
6
6
  }
7
7
  export declare const AuthenticationClientLive: Layer.Layer<AuthenticationClient, never, Dispatcher>;
8
8
  export {};
9
- //# sourceMappingURL=authentication.d.ts.map
@@ -1,6 +1,7 @@
1
1
  import { OPTIONS_ENDPOINT, OptionsErrors, OptionsReq, OptionsRes, VerificationErrors, VerificationReq, VerificationRes, VERIFY_ENDPOINT } from '@passlock/shared/dist/rpc/authentication.js';
2
2
  import { Context, Effect as E, Layer } from 'effect';
3
3
  import { Dispatcher, makePostRequest } from './client.js';
4
+ /* Client */
4
5
  export class AuthenticationClient extends Context.Tag('@passkey/auth/client')() {
5
6
  }
6
7
  export const AuthenticationClientLive = Layer.effect(AuthenticationClient, E.gen(function* (_) {
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/rpc/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAA8B,MAAM,6CAA6C,CAAA;AACxN,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAIzD,MAAM,OAAO,oBAAqB,SAAQ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAG1E;CAAG;AAEN,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAClD,oBAAoB,EACpB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAEvC,MAAM,eAAe,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;IAE1F,MAAM,cAAc,GAAG,eAAe,CACpC,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,UAAU,CACX,CAAA;IAED,OAAO;QACL,wBAAwB,EAAE,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC;QACvE,8BAA8B,EAAE,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC;KAC5E,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/rpc/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAA8B,MAAM,6CAA6C,CAAA;AACxN,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEzD,YAAY;AAEZ,MAAM,OAAO,oBAAqB,SAAQ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAG1E;CAAG;AAEN,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAClD,oBAAoB,EACpB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAEvC,MAAM,eAAe,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;IAE1F,MAAM,cAAc,GAAG,eAAe,CACpC,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,UAAU,CACX,CAAA;IAED,OAAO;QACL,wBAAwB,EAAE,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC;QACvE,8BAA8B,EAAE,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC;KAC5E,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
@@ -10,8 +10,12 @@ declare const Dispatcher_base: Context.TagClass<Dispatcher, "@rpc/Dispatcher", {
10
10
  get: (path: string) => E.Effect<DispatcherResponse, NetworkError>;
11
11
  post: (path: string, body: string) => E.Effect<DispatcherResponse, NetworkError>;
12
12
  }>;
13
+ /** To send the JSON to the backend */
13
14
  export declare class Dispatcher extends Dispatcher_base {
14
15
  }
16
+ /** Fires off client requests using fetch */
17
+ /** TODO: Write tests */
18
+ /** TODO: Evaluate platform/http client (if now stable) */
15
19
  export declare const DispatcherLive: Layer.Layer<Dispatcher, never, RpcConfig | RetrySchedule>;
16
20
  export declare const makeGetRequest: <Res, ResEnc, Err, ErrEnc>(responseSchema: S.Schema<Res, ResEnc, never>, errorSchema: S.Schema<Err, ErrEnc, never>, dispatcher: Dispatcher["Type"]) => (path: string) => E.Effect<Res, Exclude<Exclude<Err, {
17
21
  _tag: "ParseError";
@@ -24,4 +28,3 @@ export declare const makePostRequest: <Req, ReqEnc, Res, ResEnc, Err, ErrEnc>(re
24
28
  _tag: "NetworkError";
25
29
  }>, never>;
26
30
  export {};
27
- //# sourceMappingURL=client.d.ts.map
@@ -1,12 +1,18 @@
1
1
  import * as S from '@effect/schema/Schema';
2
2
  import { NetworkError } from '@passlock/shared/dist/error/error.js';
3
3
  import { Context, Effect as E, Layer, pipe } from 'effect';
4
+ import { PASSLOCK_CLIENT_VERSION } from '../version.js';
4
5
  import { RetrySchedule, RpcConfig } from './config.js';
6
+ /** To send the JSON to the backend */
5
7
  export class Dispatcher extends Context.Tag('@rpc/Dispatcher')() {
6
8
  }
9
+ /** Fires off client requests using fetch */
10
+ /** TODO: Write tests */
11
+ /** TODO: Evaluate platform/http client (if now stable) */
7
12
  export const DispatcherLive = Layer.effect(Dispatcher, E.gen(function* (_) {
8
13
  const { schedule } = yield* _(RetrySchedule);
9
14
  const { tenancyId, clientId, endpoint: maybeEndpoint } = yield* _(RpcConfig);
15
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
10
16
  const parseJson = (res, url) => E.tryPromise({
11
17
  try: () => res.json(),
12
18
  catch: e => new NetworkError({
@@ -14,6 +20,8 @@ export const DispatcherLive = Layer.effect(Dispatcher, E.gen(function* (_) {
14
20
  detail: String(e),
15
21
  }),
16
22
  });
23
+ // 400 errors are reflected in the RPC response error channel
24
+ // so in network terms they're still "ok"
17
25
  const assertNo500s = (res, url) => {
18
26
  if (res.status >= 500) {
19
27
  return E.fail(new NetworkError({
@@ -32,6 +40,7 @@ export const DispatcherLive = Layer.effect(Dispatcher, E.gen(function* (_) {
32
40
  };
33
41
  const buildUrl = (_path) => {
34
42
  const endpoint = maybeEndpoint || 'https://api.passlock.dev';
43
+ // drop leading /
35
44
  const path = _path.replace(/^\//, '');
36
45
  return `${endpoint}/${tenancyId}/${path}`;
37
46
  };
@@ -41,7 +50,7 @@ export const DispatcherLive = Layer.effect(Dispatcher, E.gen(function* (_) {
41
50
  const headers = {
42
51
  'Accept': 'application/json',
43
52
  'X-CLIENT-ID': clientId,
44
- 'X-PASSLOCK-VERSION': '#{LATEST}#'
53
+ 'X-PASSLOCK-CLIENT-VERSION': PASSLOCK_CLIENT_VERSION
45
54
  };
46
55
  const url = buildUrl(path);
47
56
  const res = yield* _(E.tryPromise({
@@ -61,8 +70,9 @@ export const DispatcherLive = Layer.effect(Dispatcher, E.gen(function* (_) {
61
70
  'Content-Type': 'application/json',
62
71
  'Accept': 'application/json',
63
72
  'X-CLIENT-ID': clientId,
64
- 'X-PASSLOCK-VERSION': '#{LATEST}#'
73
+ 'X-PASSLOCK-CLIENT-VERSION': PASSLOCK_CLIENT_VERSION
65
74
  };
75
+ // drop leading /
66
76
  const url = buildUrl(_path);
67
77
  const res = yield* _(E.tryPromise({
68
78
  try: () => fetch(url, { method: 'POST', headers, body }),