@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.
- package/dist/authentication/authenticate.d.ts +15 -15
- package/dist/authentication/authenticate.fixture.d.ts +20 -6
- package/dist/authentication/authenticate.fixture.js +7 -5
- package/dist/authentication/authenticate.fixture.js.map +1 -1
- package/dist/authentication/authenticate.js +19 -8
- package/dist/authentication/authenticate.js.map +1 -1
- package/dist/capabilities/capabilities.d.ts +8 -4
- package/dist/capabilities/capabilities.js +10 -1
- package/dist/capabilities/capabilities.js.map +1 -1
- package/dist/connection/connection.d.ts +11 -7
- package/dist/connection/connection.fixture.d.ts +2 -2
- package/dist/connection/connection.fixture.js +2 -1
- package/dist/connection/connection.fixture.js.map +1 -1
- package/dist/connection/connection.js +12 -3
- package/dist/connection/connection.js.map +1 -1
- package/dist/effect.d.ts +22 -45
- package/dist/effect.js +55 -51
- package/dist/effect.js.map +1 -1
- package/dist/email/email.d.ts +38 -11
- package/dist/email/email.fixture.d.ts +19 -5
- package/dist/email/email.fixture.js +4 -3
- package/dist/email/email.fixture.js.map +1 -1
- package/dist/email/email.js +43 -7
- package/dist/email/email.js.map +1 -1
- package/dist/event/event.d.ts +3 -1
- package/dist/event/event.js +3 -0
- package/dist/event/event.js.map +1 -1
- package/dist/index.d.ts +105 -27
- package/dist/index.js +101 -50
- package/dist/index.js.map +1 -1
- package/dist/logging/eventLogger.d.ts +13 -1
- package/dist/logging/eventLogger.js +13 -0
- package/dist/logging/eventLogger.js.map +1 -1
- package/dist/registration/register.d.ts +18 -21
- package/dist/registration/register.fixture.d.ts +19 -5
- package/dist/registration/register.fixture.js +14 -7
- package/dist/registration/register.fixture.js.map +1 -1
- package/dist/registration/register.js +18 -9
- package/dist/registration/register.js.map +1 -1
- package/dist/rpc/authentication.d.ts +0 -1
- package/dist/rpc/authentication.js +1 -0
- package/dist/rpc/authentication.js.map +1 -1
- package/dist/rpc/client.d.ts +4 -1
- package/dist/rpc/client.js +12 -2
- package/dist/rpc/client.js.map +1 -1
- package/dist/rpc/config.d.ts +0 -1
- package/dist/rpc/connection.d.ts +0 -1
- package/dist/rpc/connection.js +1 -0
- package/dist/rpc/connection.js.map +1 -1
- package/dist/rpc/registration.d.ts +0 -1
- package/dist/rpc/registration.js +1 -0
- package/dist/rpc/registration.js.map +1 -1
- package/dist/rpc/social.d.ts +0 -1
- package/dist/rpc/social.js +1 -0
- package/dist/rpc/social.js.map +1 -1
- package/dist/rpc/user.d.ts +0 -1
- package/dist/rpc/user.js +1 -0
- package/dist/rpc/user.js.map +1 -1
- package/dist/social/social.d.ts +16 -23
- package/dist/social/social.fixture.d.ts +21 -9
- package/dist/social/social.fixture.js +8 -14
- package/dist/social/social.fixture.js.map +1 -1
- package/dist/social/social.js +14 -10
- package/dist/social/social.js.map +1 -1
- package/dist/storage/storage.d.ts +40 -12
- package/dist/storage/storage.fixture.d.ts +2 -2
- package/dist/storage/storage.fixture.js +2 -2
- package/dist/storage/storage.fixture.js.map +1 -1
- package/dist/storage/storage.js +48 -15
- package/dist/storage/storage.js.map +1 -1
- package/dist/test/fixtures.d.ts +1 -2
- package/dist/test/fixtures.js +20 -5
- package/dist/test/fixtures.js.map +1 -1
- package/dist/user/user.d.ts +8 -5
- package/dist/user/user.fixture.d.ts +2 -2
- package/dist/user/user.fixture.js +9 -5
- package/dist/user/user.fixture.js.map +1 -1
- package/dist/user/user.js +9 -3
- package/dist/user/user.js.map +1 -1
- package/dist/version.d.ts +1 -2
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +30 -26
- package/src/authentication/authenticate.fixture.ts +8 -7
- package/src/authentication/authenticate.test.ts +59 -17
- package/src/authentication/authenticate.ts +34 -32
- package/src/capabilities/capabilities.ts +9 -8
- package/src/connection/connection.fixture.ts +2 -1
- package/src/connection/connection.test.ts +3 -3
- package/src/connection/connection.ts +9 -8
- package/src/effect.ts +129 -128
- package/src/email/email.fixture.ts +4 -3
- package/src/email/email.test.ts +4 -4
- package/src/email/email.ts +24 -16
- package/src/index.ts +225 -169
- package/src/logging/eventLogger.test.ts +1 -1
- package/src/logging/eventLogger.ts +2 -2
- package/src/registration/register.fixture.ts +14 -8
- package/src/registration/register.test.ts +13 -9
- package/src/registration/register.ts +37 -34
- package/src/rpc/authentication.ts +31 -0
- package/src/rpc/client.ts +173 -0
- package/src/rpc/config.ts +18 -0
- package/src/rpc/connection.ts +24 -0
- package/src/rpc/registration.ts +31 -0
- package/src/rpc/social.ts +36 -0
- package/src/rpc/user.ts +42 -0
- package/src/social/social.fixture.ts +10 -18
- package/src/social/social.test.ts +13 -29
- package/src/social/social.ts +20 -47
- package/src/storage/storage.fixture.ts +3 -4
- package/src/storage/storage.test.ts +28 -19
- package/src/storage/storage.ts +36 -36
- package/src/test/fixtures.ts +21 -6
- package/src/user/user.fixture.ts +17 -7
- package/src/user/user.test.ts +2 -5
- package/src/user/user.ts +13 -9
- package/src/version.ts +1 -0
- package/dist/authentication/authenticate.d.ts.map +0 -1
- package/dist/authentication/authenticate.fixture.d.ts.map +0 -1
- package/dist/capabilities/capabilities.d.ts.map +0 -1
- package/dist/config.d.ts +0 -18
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -20
- package/dist/config.js.map +0 -1
- package/dist/connection/connection.d.ts.map +0 -1
- package/dist/connection/connection.fixture.d.ts.map +0 -1
- package/dist/effect.d.ts.map +0 -1
- package/dist/email/email.d.ts.map +0 -1
- package/dist/email/email.fixture.d.ts.map +0 -1
- package/dist/event/event.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/logging/eventLogger.d.ts.map +0 -1
- package/dist/registration/register.d.ts.map +0 -1
- package/dist/registration/register.fixture.d.ts.map +0 -1
- package/dist/rpc/authentication.d.ts.map +0 -1
- package/dist/rpc/client.d.ts.map +0 -1
- package/dist/rpc/config.d.ts.map +0 -1
- package/dist/rpc/connection.d.ts.map +0 -1
- package/dist/rpc/registration.d.ts.map +0 -1
- package/dist/rpc/social.d.ts.map +0 -1
- package/dist/rpc/user.d.ts.map +0 -1
- package/dist/social/social.d.ts.map +0 -1
- package/dist/social/social.fixture.d.ts.map +0 -1
- package/dist/storage/storage.d.ts.map +0 -1
- package/dist/storage/storage.fixture.d.ts.map +0 -1
- package/dist/test/fixtures.d.ts.map +0 -1
- package/dist/user/user.d.ts.map +0 -1
- package/dist/user/user.fixture.d.ts.map +0 -1
- package/dist/version.d.ts.map +0 -1
- 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 '
|
|
3
|
-
import { Effect as E, Layer as L, Layer, Option, Runtime, Scope, pipe } from 'effect';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
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(
|
|
68
|
-
const
|
|
69
|
-
const storage = Layer.succeed(
|
|
70
|
-
const allLayers = pipe(allRequirements, L.provide(
|
|
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
|
-
|
|
75
|
-
return
|
|
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(
|
|
93
|
-
const
|
|
94
|
-
const storage = Layer.succeed(
|
|
95
|
-
const allLayers = pipe(allRequirements, L.provide(
|
|
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
|
-
|
|
100
|
-
return
|
|
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":"
|
|
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 {
|
|
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 {
|
|
5
|
-
import {
|
|
6
|
-
import type {
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
19
|
+
declare const RegistrationService_base: Context.TagClass<RegistrationService, "@services/RegistrationService", {
|
|
23
20
|
registerPasskey: (request: RegistrationRequest) => E.Effect<Principal, RegistrationErrors>;
|
|
24
|
-
}
|
|
25
|
-
export declare
|
|
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
|
|
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,
|
|
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
|
|
24
|
-
|
|
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,
|
|
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({
|
|
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":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,
|
|
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 {
|
|
3
|
-
import { OptionsReq,
|
|
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
|
-
|
|
10
|
-
export
|
|
11
|
-
|
|
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*
|
|
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":"
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/registration/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/rpc/client.d.ts
CHANGED
|
@@ -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
|
package/dist/rpc/client.js
CHANGED
|
@@ -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':
|
|
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':
|
|
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 }),
|