@passlock/client 0.9.21 → 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/README.md +125 -0
- 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 +39 -33
- 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/authentication/authenticate.test.d.ts +0 -2
- package/dist/authentication/authenticate.test.d.ts.map +0 -1
- package/dist/authentication/authenticate.test.js +0 -111
- package/dist/authentication/authenticate.test.js.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/connection/connection.test.d.ts +0 -2
- package/dist/connection/connection.test.d.ts.map +0 -1
- package/dist/connection/connection.test.js +0 -36
- package/dist/connection/connection.test.js.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/email/email.test.d.ts +0 -2
- package/dist/email/email.test.d.ts.map +0 -1
- package/dist/email/email.test.js +0 -99
- package/dist/email/email.test.js.map +0 -1
- package/dist/event/event.d.ts.map +0 -1
- package/dist/event/event.node.test.d.ts +0 -2
- package/dist/event/event.node.test.d.ts.map +0 -1
- package/dist/event/event.node.test.js +0 -13
- package/dist/event/event.node.test.js.map +0 -1
- package/dist/event/event.test.d.ts +0 -2
- package/dist/event/event.test.d.ts.map +0 -1
- package/dist/event/event.test.js +0 -30
- package/dist/event/event.test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/logging/eventLogger.d.ts.map +0 -1
- package/dist/logging/eventLogger.test.d.ts +0 -2
- package/dist/logging/eventLogger.test.d.ts.map +0 -1
- package/dist/logging/eventLogger.test.js +0 -67
- package/dist/logging/eventLogger.test.js.map +0 -1
- package/dist/registration/register.d.ts.map +0 -1
- package/dist/registration/register.fixture.d.ts.map +0 -1
- package/dist/registration/register.test.d.ts +0 -2
- package/dist/registration/register.test.d.ts.map +0 -1
- package/dist/registration/register.test.js +0 -104
- package/dist/registration/register.test.js.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/social/social.test.d.ts +0 -2
- package/dist/social/social.test.d.ts.map +0 -1
- package/dist/social/social.test.js +0 -110
- package/dist/social/social.test.js.map +0 -1
- package/dist/storage/storage.d.ts.map +0 -1
- package/dist/storage/storage.fixture.d.ts.map +0 -1
- package/dist/storage/storage.test.d.ts +0 -2
- package/dist/storage/storage.test.d.ts.map +0 -1
- package/dist/storage/storage.test.js +0 -120
- package/dist/storage/storage.test.js.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/user/user.test.d.ts +0 -2
- package/dist/user/user.test.d.ts.map +0 -1
- package/dist/user/user.test.js +0 -56
- package/dist/user/user.test.js.map +0 -1
- package/dist/version.d.ts.map +0 -1
- package/src/config.ts +0 -42
|
@@ -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 }),
|
package/dist/rpc/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/rpc/client.ts"],"names":[],"mappings":"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"}
|
package/dist/rpc/config.d.ts
CHANGED
package/dist/rpc/connection.d.ts
CHANGED
package/dist/rpc/connection.js
CHANGED
|
@@ -2,6 +2,7 @@ import * as S from '@effect/schema/Schema';
|
|
|
2
2
|
import { CONNECT_ENDPOINT, ConnectRes } from '@passlock/shared/dist/rpc/connection.js';
|
|
3
3
|
import { Context, Effect as E, Layer } from 'effect';
|
|
4
4
|
import { Dispatcher, makeGetRequest } from './client.js';
|
|
5
|
+
/* Client */
|
|
5
6
|
export class ConnectionClient extends Context.Tag('@connection/client')() {
|
|
6
7
|
}
|
|
7
8
|
export const ConnectionClientLive = Layer.effect(ConnectionClient, E.gen(function* (_) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/rpc/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAA0B,MAAM,yCAAyC,CAAA;AAC9G,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/rpc/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAA0B,MAAM,yCAAyC,CAAA;AAC9G,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAExD,YAAY;AAEZ,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAGpE;CAAG;AAEN,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAC9C,gBAAgB,EAChB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAEvC,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAE1E,OAAO;QACL,UAAU,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;KACvD,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
|
package/dist/rpc/registration.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OptionsErrors, OptionsReq, OptionsRes, VerificationErrors, VerificationReq, VerificationRes } from '@passlock/shared/dist/rpc/registration.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 RegistrationClient extends Context.Tag('@passkey/register/client')() {
|
|
5
6
|
}
|
|
6
7
|
export const RegistrationClientLive = Layer.effect(RegistrationClient, E.gen(function* (_) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/rpc/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAA4B,MAAM,2CAA2C,CAAA;AACjL,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":"registration.js","sourceRoot":"","sources":["../../src/rpc/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAA4B,MAAM,2CAA2C,CAAA;AACjL,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,kBAAmB,SAAQ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAG5E;CAAG;AAEN,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAChD,kBAAkB,EAClB,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,sBAAsB,EAAE,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,2BAA2B,EAAE,GAAG,CAAC;QAChF,4BAA4B,EAAE,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,0BAA0B,EAAE,GAAG,CAAC;KACrF,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
|
package/dist/rpc/social.d.ts
CHANGED
package/dist/rpc/social.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AuthOidcErrors, AuthOidcReq, PrincipalRes, RegisterOidcErrors, RegisterOidcReq } from '@passlock/shared/dist/rpc/social.js';
|
|
2
2
|
import { Context, Effect as E, Layer } from 'effect';
|
|
3
3
|
import { Dispatcher, makePostRequest } from './client.js';
|
|
4
|
+
/* Client */
|
|
4
5
|
export const OIDC_REGISTER_ENDPOINT = '/social/oidc/register';
|
|
5
6
|
export const OIDC_AUTH_ENDPOINT = '/social/oidc/auth';
|
|
6
7
|
export class SocialClient extends Context.Tag('@social/client')() {
|
package/dist/rpc/social.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/rpc/social.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAsB,MAAM,qCAAqC,CAAA;AACxJ,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":"social.js","sourceRoot":"","sources":["../../src/rpc/social.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAsB,MAAM,qCAAqC,CAAA;AACxJ,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,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAA;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAErD,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAA+B;CAAG;AAEjG,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAC1C,YAAY,EACZ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAEvC,MAAM,gBAAgB,GAAG,eAAe,CACtC,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,UAAU,CACX,CAAA;IAED,MAAM,oBAAoB,GAAG,eAAe,CAC1C,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,CACX,CAAA;IAED,OAAO;QACL,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,GAAG,CAAC;QAClE,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,GAAG,CAAC;KACvE,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
|
package/dist/rpc/user.d.ts
CHANGED
package/dist/rpc/user.js
CHANGED
|
@@ -2,6 +2,7 @@ import * as S from '@effect/schema/Schema';
|
|
|
2
2
|
import { IsExistingUserReq, IsExistingUserRes, RESEND_EMAIL_ENDPOINT, ResendEmailErrors, ResendEmailReq, ResendEmailRes, USER_STATUS_ENDPOINT, VERIFY_EMAIL_ENDPOINT, VerifyEmailErrors, VerifyEmailReq, VerifyEmailRes } from '@passlock/shared/dist/rpc/user.js';
|
|
3
3
|
import { Context, Effect as E, Layer } from 'effect';
|
|
4
4
|
import { Dispatcher, makePostRequest } from './client.js';
|
|
5
|
+
/* Client */
|
|
5
6
|
export class UserClient extends Context.Tag('@user/client')() {
|
|
6
7
|
}
|
|
7
8
|
export const UserClientLive = Layer.effect(UserClient, E.gen(function* (_) {
|
package/dist/rpc/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/rpc/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAoB,MAAM,mCAAmC,CAAA;AACpR,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":"user.js","sourceRoot":"","sources":["../../src/rpc/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAoB,MAAM,mCAAmC,CAAA;AACpR,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,UAAW,SAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAA2B;CAAG;AAEzF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACxC,UAAU,EACV,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAEvC,MAAM,sBAAsB,GAAG,eAAe,CAC5C,iBAAiB,EACjB,iBAAiB,EACjB,CAAC,CAAC,KAAK,EACP,UAAU,CACX,CAAA;IAED,MAAM,mBAAmB,GAAG,eAAe,CACzC,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,UAAU,CACX,CAAA;IAED,MAAM,mBAAmB,GAAG,eAAe,CACzC,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,UAAU,CACX,CAAA;IAED,OAAO;QACL,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,GAAG,CAAC;QACxE,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,GAAG,CAAC;QACnE,uBAAuB,EAAE,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,GAAG,CAAC;KAChF,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
|
package/dist/social/social.d.ts
CHANGED
|
@@ -1,31 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passkey authentication effects
|
|
3
|
+
*/
|
|
1
4
|
import { type BadRequest, type NotSupported } from '@passlock/shared/dist/error/error.js';
|
|
2
|
-
import * as
|
|
3
|
-
import { SocialClient } from '@passlock/shared/dist/rpc/social.js';
|
|
5
|
+
import * as RPC from '@passlock/shared/dist/rpc/social.js';
|
|
4
6
|
import type { Principal } from '@passlock/shared/dist/schema/principal.js';
|
|
5
7
|
import { Context, Effect as E, Layer } from 'effect';
|
|
8
|
+
import { SocialClient } from '../rpc/social.js';
|
|
6
9
|
export type Provider = 'apple' | 'google';
|
|
7
|
-
export type RegisterOidcReq =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
nonce: string;
|
|
18
|
-
};
|
|
19
|
-
export type RegistrationErrors = NotSupported | BadRequest | Shared.RegisterOidcErrors;
|
|
20
|
-
export type AuthenticationErrors = NotSupported | BadRequest | Shared.AuthOidcErrors;
|
|
21
|
-
export type SocialService = {
|
|
22
|
-
registerOidc: (data: RegisterOidcReq) => E.Effect<Principal, RegistrationErrors>;
|
|
23
|
-
authenticateOidc: (data: AuthenticateOidcReq) => E.Effect<Principal, AuthenticationErrors>;
|
|
24
|
-
};
|
|
25
|
-
export declare const SocialService: Context.Tag<SocialService, SocialService>;
|
|
10
|
+
export type RegisterOidcReq = RPC.RegisterOidcReq;
|
|
11
|
+
export type AuthenticateOidcReq = RPC.AuthOidcReq;
|
|
12
|
+
export type RegistrationErrors = NotSupported | BadRequest | RPC.RegisterOidcErrors;
|
|
13
|
+
export type AuthenticationErrors = NotSupported | BadRequest | RPC.AuthOidcErrors;
|
|
14
|
+
declare const SocialService_base: Context.TagClass<SocialService, "@services/SocialService", {
|
|
15
|
+
registerOidc: (req: RegisterOidcReq) => E.Effect<Principal, RegistrationErrors>;
|
|
16
|
+
authenticateOidc: (req: AuthenticateOidcReq) => E.Effect<Principal, AuthenticationErrors>;
|
|
17
|
+
}>;
|
|
18
|
+
export declare class SocialService extends SocialService_base {
|
|
19
|
+
}
|
|
26
20
|
type Dependencies = SocialClient;
|
|
27
21
|
export declare const registerOidc: (request: RegisterOidcReq) => E.Effect<Principal, RegistrationErrors, Dependencies>;
|
|
28
22
|
export declare const authenticateOidc: (request: AuthenticateOidcReq) => E.Effect<Principal, AuthenticationErrors, Dependencies>;
|
|
29
|
-
export declare const SocialServiceLive: Layer.Layer<SocialService, never,
|
|
23
|
+
export declare const SocialServiceLive: Layer.Layer<SocialService, never, SocialClient>;
|
|
30
24
|
export {};
|
|
31
|
-
//# sourceMappingURL=social.d.ts.map
|
|
@@ -1,34 +1,46 @@
|
|
|
1
1
|
import * as Shared from '@passlock/shared/dist/rpc/social.js';
|
|
2
2
|
import { Layer as L } from 'effect';
|
|
3
|
-
import
|
|
3
|
+
import { SocialClient } from '../rpc/social.js';
|
|
4
|
+
import type { AuthenticateOidcReq } from './social.js';
|
|
4
5
|
export declare const session = "session";
|
|
5
6
|
export declare const token = "token";
|
|
6
7
|
export declare const code = "code";
|
|
7
8
|
export declare const authType = "passkey";
|
|
8
9
|
export declare const expireAt: number;
|
|
9
|
-
export declare const registerOidcReq: RegisterOidcReq;
|
|
10
|
+
export declare const registerOidcReq: Shared.RegisterOidcReq;
|
|
10
11
|
export declare const authOidcReq: AuthenticateOidcReq;
|
|
11
|
-
export declare const rpcRegisterReq: Shared.RegisterOidcReq;
|
|
12
12
|
export declare const rpcRegisterRes: Shared.PrincipalRes;
|
|
13
|
-
export declare const rpcAuthenticateReq: Shared.AuthOidcReq;
|
|
14
13
|
export declare const rpcAuthenticateRes: Shared.PrincipalRes;
|
|
15
|
-
export declare const rpcClientTest: L.Layer<
|
|
14
|
+
export declare const rpcClientTest: L.Layer<SocialClient, never, never>;
|
|
16
15
|
export declare const principal: {
|
|
16
|
+
readonly email?: string;
|
|
17
|
+
readonly givenName?: string;
|
|
18
|
+
readonly familyName?: string;
|
|
19
|
+
readonly emailVerified?: boolean;
|
|
20
|
+
readonly iss: string;
|
|
21
|
+
readonly aud: string;
|
|
22
|
+
readonly sub: string;
|
|
23
|
+
readonly iat: Date;
|
|
24
|
+
readonly nbf: Date;
|
|
25
|
+
readonly exp: Date;
|
|
26
|
+
readonly jti: string;
|
|
17
27
|
readonly token: string;
|
|
18
|
-
readonly
|
|
19
|
-
|
|
28
|
+
readonly userVerified: boolean;
|
|
29
|
+
readonly authType: "email" | "apple" | "google" | "passkey";
|
|
30
|
+
readonly authId: string;
|
|
31
|
+
readonly user?: {
|
|
20
32
|
readonly id: string;
|
|
33
|
+
readonly email: string;
|
|
21
34
|
readonly givenName: string;
|
|
22
35
|
readonly familyName: string;
|
|
23
36
|
readonly emailVerified: boolean;
|
|
24
37
|
};
|
|
25
38
|
readonly authStatement: {
|
|
26
|
-
readonly authType: "email" | "passkey" | "apple" | "google";
|
|
27
39
|
readonly userVerified: boolean;
|
|
40
|
+
readonly authType: "email" | "apple" | "google" | "passkey";
|
|
28
41
|
readonly authTimestamp: Date;
|
|
29
42
|
};
|
|
30
43
|
readonly expireAt: Date;
|
|
31
44
|
};
|
|
32
45
|
export declare const capabilitiesTest: L.Layer<import("../capabilities/capabilities.js").Capabilities, never, never>;
|
|
33
46
|
export declare const storageServiceTest: L.Layer<import("../storage/storage.js").StorageService, never, never>;
|
|
34
|
-
//# sourceMappingURL=social.fixture.d.ts.map
|
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
import * as Shared from '@passlock/shared/dist/rpc/social.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { Effect as E, Layer as L, Option as O } from 'effect';
|
|
3
|
+
import { SocialClient } from '../rpc/social.js';
|
|
4
4
|
import * as Fixtures from '../test/fixtures.js';
|
|
5
5
|
export const session = 'session';
|
|
6
6
|
export const token = 'token';
|
|
7
7
|
export const code = 'code';
|
|
8
8
|
export const authType = 'passkey';
|
|
9
9
|
export const expireAt = Date.now() + 10000;
|
|
10
|
-
export const registerOidcReq = {
|
|
10
|
+
export const registerOidcReq = new Shared.RegisterOidcReq({
|
|
11
11
|
provider: 'google',
|
|
12
12
|
idToken: 'google-token',
|
|
13
13
|
nonce: 'nonce',
|
|
14
|
-
givenName: 'john',
|
|
15
|
-
familyName: 'doe'
|
|
16
|
-
};
|
|
17
|
-
export const authOidcReq = {
|
|
14
|
+
givenName: O.some('john'),
|
|
15
|
+
familyName: O.some('doe'),
|
|
16
|
+
});
|
|
17
|
+
export const authOidcReq = new Shared.AuthOidcReq({
|
|
18
18
|
provider: 'google',
|
|
19
19
|
idToken: 'google-token',
|
|
20
|
-
nonce: 'nonce'
|
|
21
|
-
};
|
|
22
|
-
export const rpcRegisterReq = new Shared.RegisterOidcReq({
|
|
23
|
-
...registerOidcReq,
|
|
24
|
-
...(registerOidcReq.givenName ? { givenName: registerOidcReq.givenName } : {}),
|
|
25
|
-
...(registerOidcReq.familyName ? { familyName: registerOidcReq.familyName } : {})
|
|
20
|
+
nonce: 'nonce',
|
|
26
21
|
});
|
|
27
22
|
export const rpcRegisterRes = new Shared.PrincipalRes({ principal: Fixtures.principal });
|
|
28
|
-
export const rpcAuthenticateReq = new Shared.AuthOidcReq({ ...authOidcReq });
|
|
29
23
|
export const rpcAuthenticateRes = new Shared.PrincipalRes({ principal: Fixtures.principal });
|
|
30
24
|
export const rpcClientTest = L.succeed(SocialClient, SocialClient.of({
|
|
31
25
|
registerOidc: () => E.fail(Fixtures.notImplemented),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social.fixture.js","sourceRoot":"","sources":["../../src/social/social.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAA;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"social.fixture.js","sourceRoot":"","sources":["../../src/social/social.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAA;AAC7D,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAG/C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAA;AAChC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAA;AAC5B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAA;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC;IACxD,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAwB,IAAI,MAAM,CAAC,WAAW,CAAC;IACrE,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,OAAO;CACf,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAExF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAE5F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CACpC,YAAY,EACZ,YAAY,CAAC,EAAE,CAAC;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACnD,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;CACxD,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAA;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAA"}
|
package/dist/social/social.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passkey authentication effects
|
|
3
|
+
*/
|
|
1
4
|
import {} from '@passlock/shared/dist/error/error.js';
|
|
2
|
-
import * as
|
|
3
|
-
import { SocialClient } from '@passlock/shared/dist/rpc/social.js';
|
|
5
|
+
import * as RPC from '@passlock/shared/dist/rpc/social.js';
|
|
4
6
|
import { Context, Effect as E, Layer, flow } from 'effect';
|
|
5
|
-
|
|
7
|
+
import { SocialClient } from '../rpc/social.js';
|
|
8
|
+
/* Service */
|
|
9
|
+
export class SocialService extends Context.Tag('@services/SocialService')() {
|
|
10
|
+
}
|
|
6
11
|
export const registerOidc = (request) => {
|
|
7
12
|
return E.gen(function* (_) {
|
|
8
13
|
yield* _(E.logInfo('Registering social account'));
|
|
9
14
|
const rpcClient = yield* _(SocialClient);
|
|
10
|
-
const rpcRequest = new
|
|
11
|
-
...request,
|
|
12
|
-
...(request.givenName ? { givenName: request.givenName } : {}),
|
|
13
|
-
...(request.familyName ? { familyName: request.familyName } : {})
|
|
14
|
-
});
|
|
15
|
+
const rpcRequest = new RPC.RegisterOidcReq(request);
|
|
15
16
|
const { principal } = yield* _(rpcClient.registerOidc(rpcRequest));
|
|
16
17
|
return principal;
|
|
17
18
|
});
|
|
@@ -20,16 +21,19 @@ export const authenticateOidc = (request) => {
|
|
|
20
21
|
return E.gen(function* (_) {
|
|
21
22
|
yield* _(E.logInfo('Authenticating with social account'));
|
|
22
23
|
const rpcClient = yield* _(SocialClient);
|
|
23
|
-
const rpcRequest = new
|
|
24
|
+
const rpcRequest = new RPC.AuthOidcReq(request);
|
|
24
25
|
const { principal } = yield* _(rpcClient.authenticateOidc(rpcRequest));
|
|
25
26
|
return principal;
|
|
26
27
|
});
|
|
27
28
|
};
|
|
29
|
+
/* Live */
|
|
30
|
+
/* v8 ignore start */
|
|
28
31
|
export const SocialServiceLive = Layer.effect(SocialService, E.gen(function* (_) {
|
|
29
32
|
const context = yield* _(E.context());
|
|
30
33
|
return SocialService.of({
|
|
31
34
|
registerOidc: flow(registerOidc, E.provide(context)),
|
|
32
|
-
authenticateOidc: flow(authenticateOidc, E.provide(context))
|
|
35
|
+
authenticateOidc: flow(authenticateOidc, E.provide(context)),
|
|
33
36
|
});
|
|
34
37
|
}));
|
|
38
|
+
/* v8 ignore stop */
|
|
35
39
|
//# sourceMappingURL=social.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAsC,MAAM,sCAAsC,CAAA;AACzF,OAAO,KAAK,GAAG,MAAM,qCAAqC,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAgB/C,aAAa;AAEb,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAMtE;CAAG;AAMN,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAwB,EAC+B,EAAE;IACzD,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAA;QAEjD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QACxC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAA;QAElE,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAA4B,EAC6B,EAAE;IAC3D,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,CAAA;QAEzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QACxC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAA;QAEtE,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,UAAU;AAEV,qBAAqB;AACrB,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAC3C,aAAa,EACb,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAgB,CAAC,CAAA;IAEnD,OAAO,aAAa,CAAC,EAAE,CAAC;QACtB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC7D,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA;AACD,oBAAoB"}
|