@passlock/client 0.9.32 → 2.0.0-beta.1
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 +14 -86
- package/README.template.md +16 -88
- package/dist/index.d.ts +4 -206
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -158
- package/dist/index.js.map +1 -1
- package/dist/logger/index.d.ts +24 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +47 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/network.d.ts +39 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +83 -0
- package/dist/network.js.map +1 -0
- package/dist/passkey/authentication/index.d.ts +21 -0
- package/dist/passkey/authentication/index.d.ts.map +1 -0
- package/dist/passkey/authentication/index.js +22 -0
- package/dist/passkey/authentication/index.js.map +1 -0
- package/dist/passkey/authentication/micro.d.ts +71 -0
- package/dist/passkey/authentication/micro.d.ts.map +1 -0
- package/dist/passkey/authentication/micro.js +107 -0
- package/dist/passkey/authentication/micro.js.map +1 -0
- package/dist/passkey/index.d.ts +7 -0
- package/dist/passkey/index.d.ts.map +1 -0
- package/dist/passkey/index.js +5 -0
- package/dist/passkey/index.js.map +1 -0
- package/dist/passkey/registration/index.d.ts +19 -0
- package/dist/passkey/registration/index.d.ts.map +1 -0
- package/dist/passkey/registration/index.js +20 -0
- package/dist/passkey/registration/index.js.map +1 -0
- package/dist/passkey/registration/micro.d.ts +101 -0
- package/dist/passkey/registration/micro.d.ts.map +1 -0
- package/dist/passkey/registration/micro.js +126 -0
- package/dist/passkey/registration/micro.js.map +1 -0
- package/dist/passkey/shared.d.ts +24 -0
- package/dist/passkey/shared.d.ts.map +1 -0
- package/dist/passkey/shared.js +10 -0
- package/dist/passkey/shared.js.map +1 -0
- package/dist/passkey/support.d.ts +3 -0
- package/dist/passkey/support.d.ts.map +1 -0
- package/dist/passkey/support.js +4 -0
- package/dist/passkey/support.js.map +1 -0
- package/dist/passkey/types.d.ts +26 -0
- package/dist/passkey/types.d.ts.map +1 -0
- package/dist/passkey/types.js +2 -0
- package/dist/passkey/types.js.map +1 -0
- package/dist/promise.d.ts +15 -0
- package/dist/promise.d.ts.map +1 -0
- package/dist/promise.js +46 -0
- package/dist/promise.js.map +1 -0
- package/dist/shared.d.ts +15 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +2 -0
- package/dist/shared.js.map +1 -0
- package/dist/tenancy.d.ts +8 -0
- package/dist/tenancy.d.ts.map +1 -0
- package/dist/tenancy.js +4 -0
- package/dist/tenancy.js.map +1 -0
- package/package.json +52 -58
- package/LICENSE +0 -21
- package/dist/authentication/authenticate.d.ts +0 -23
- package/dist/authentication/authenticate.fixture.d.ts +0 -52
- package/dist/authentication/authenticate.fixture.js +0 -50
- package/dist/authentication/authenticate.fixture.js.map +0 -1
- package/dist/authentication/authenticate.js +0 -72
- package/dist/authentication/authenticate.js.map +0 -1
- package/dist/capabilities/capabilities.d.ts +0 -19
- package/dist/capabilities/capabilities.js +0 -37
- package/dist/capabilities/capabilities.js.map +0 -1
- package/dist/connection/connection.d.ts +0 -15
- package/dist/connection/connection.fixture.d.ts +0 -10
- package/dist/connection/connection.fixture.js +0 -13
- package/dist/connection/connection.fixture.js.map +0 -1
- package/dist/connection/connection.js +0 -23
- package/dist/connection/connection.js.map +0 -1
- package/dist/effect.d.ts +0 -26
- package/dist/effect.js +0 -78
- package/dist/effect.js.map +0 -1
- package/dist/email/email.d.ts +0 -70
- package/dist/email/email.fixture.d.ts +0 -46
- package/dist/email/email.fixture.js +0 -25
- package/dist/email/email.fixture.js.map +0 -1
- package/dist/email/email.js +0 -83
- package/dist/email/email.js.map +0 -1
- package/dist/event/event.d.ts +0 -8
- package/dist/event/event.js +0 -23
- package/dist/event/event.js.map +0 -1
- package/dist/logging/eventLogger.d.ts +0 -17
- package/dist/logging/eventLogger.js +0 -38
- package/dist/logging/eventLogger.js.map +0 -1
- package/dist/registration/register.d.ts +0 -25
- package/dist/registration/register.fixture.d.ts +0 -53
- package/dist/registration/register.fixture.js +0 -66
- package/dist/registration/register.fixture.js.map +0 -1
- package/dist/registration/register.js +0 -77
- package/dist/registration/register.js.map +0 -1
- package/dist/rpc/client.d.ts +0 -30
- package/dist/rpc/client.js +0 -101
- package/dist/rpc/client.js.map +0 -1
- package/dist/rpc/config.d.ts +0 -15
- package/dist/rpc/config.js +0 -6
- package/dist/rpc/config.js.map +0 -1
- package/dist/rpc/connection.d.ts +0 -8
- package/dist/rpc/connection.js +0 -16
- package/dist/rpc/connection.js.map +0 -1
- package/dist/rpc/passkey/authentication.d.ts +0 -8
- package/dist/rpc/passkey/authentication.js +0 -17
- package/dist/rpc/passkey/authentication.js.map +0 -1
- package/dist/rpc/passkey/registration.d.ts +0 -8
- package/dist/rpc/passkey/registration.js +0 -17
- package/dist/rpc/passkey/registration.js.map +0 -1
- package/dist/rpc/social.d.ts +0 -10
- package/dist/rpc/social.js +0 -19
- package/dist/rpc/social.js.map +0 -1
- package/dist/rpc/user.d.ts +0 -8
- package/dist/rpc/user.js +0 -20
- package/dist/rpc/user.js.map +0 -1
- package/dist/social/social.d.ts +0 -23
- package/dist/social/social.fixture.d.ts +0 -46
- package/dist/social/social.fixture.js +0 -31
- package/dist/social/social.fixture.js.map +0 -1
- package/dist/social/social.js +0 -38
- package/dist/social/social.js.map +0 -1
- package/dist/storage/storage.d.ts +0 -56
- package/dist/storage/storage.fixture.d.ts +0 -4
- package/dist/storage/storage.fixture.js +0 -10
- package/dist/storage/storage.fixture.js.map +0 -1
- package/dist/storage/storage.js +0 -111
- package/dist/storage/storage.js.map +0 -1
- package/dist/test/fixtures.d.ts +0 -15
- package/dist/test/fixtures.js +0 -56
- package/dist/test/fixtures.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/user/user.d.ts +0 -25
- package/dist/user/user.fixture.d.ts +0 -12
- package/dist/user/user.fixture.js +0 -20
- package/dist/user/user.fixture.js.map +0 -1
- package/dist/user/user.js +0 -37
- package/dist/user/user.js.map +0 -1
- package/dist/version.d.ts +0 -1
- package/dist/version.js +0 -2
- package/dist/version.js.map +0 -1
- package/src/authentication/authenticate.fixture.ts +0 -73
- package/src/authentication/authenticate.test.ts +0 -249
- package/src/authentication/authenticate.ts +0 -143
- package/src/capabilities/capabilities.ts +0 -83
- package/src/connection/connection.fixture.ts +0 -20
- package/src/connection/connection.test.ts +0 -60
- package/src/connection/connection.ts +0 -51
- package/src/effect.ts +0 -280
- package/src/email/email.fixture.ts +0 -44
- package/src/email/email.test.ts +0 -186
- package/src/email/email.ts +0 -148
- package/src/event/event.node.test.ts +0 -21
- package/src/event/event.test.ts +0 -37
- package/src/event/event.ts +0 -25
- package/src/index.ts +0 -407
- package/src/logging/eventLogger.test.ts +0 -104
- package/src/logging/eventLogger.ts +0 -41
- package/src/registration/register.fixture.ts +0 -96
- package/src/registration/register.test.ts +0 -216
- package/src/registration/register.ts +0 -156
- package/src/rpc/client.ts +0 -174
- package/src/rpc/config.ts +0 -18
- package/src/rpc/connection.ts +0 -32
- package/src/rpc/passkey/authentication.ts +0 -52
- package/src/rpc/passkey/registration.ts +0 -52
- package/src/rpc/social.ts +0 -55
- package/src/rpc/user.ts +0 -68
- package/src/social/social.fixture.ts +0 -44
- package/src/social/social.test.ts +0 -179
- package/src/social/social.ts +0 -79
- package/src/storage/storage.fixture.ts +0 -16
- package/src/storage/storage.test.ts +0 -206
- package/src/storage/storage.ts +0 -168
- package/src/test/fixtures.ts +0 -70
- package/src/user/user.fixture.ts +0 -33
- package/src/user/user.test.ts +0 -84
- package/src/user/user.ts +0 -71
- package/src/version.ts +0 -1
package/dist/rpc/connection.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from 'effect';
|
|
2
|
-
import { type ConnectionService } from '@passlock/shared/dist/rpc/connection.js';
|
|
3
|
-
import { Dispatcher } from './client.js';
|
|
4
|
-
declare const ConnectionClient_base: Context.TagClass<ConnectionClient, "@connection/client", ConnectionService>;
|
|
5
|
-
export declare class ConnectionClient extends ConnectionClient_base {
|
|
6
|
-
}
|
|
7
|
-
export declare const ConnectionClientLive: Layer.Layer<ConnectionClient, never, Dispatcher>;
|
|
8
|
-
export { ConnectResponse } from '@passlock/shared/dist/rpc/connection.js';
|
package/dist/rpc/connection.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as S from '@effect/schema/Schema';
|
|
2
|
-
import { Context, Effect as E, Layer } from 'effect';
|
|
3
|
-
import { CONNECT_ENDPOINT, ConnectResponse, } from '@passlock/shared/dist/rpc/connection.js';
|
|
4
|
-
import { Dispatcher, makeGetRequest } from './client.js';
|
|
5
|
-
/* Client */
|
|
6
|
-
export class ConnectionClient extends Context.Tag('@connection/client')() {
|
|
7
|
-
}
|
|
8
|
-
export const ConnectionClientLive = Layer.effect(ConnectionClient, E.gen(function* (_) {
|
|
9
|
-
const dispatcher = yield* _(Dispatcher);
|
|
10
|
-
const preConnectResolver = makeGetRequest(ConnectResponse, S.Never, dispatcher);
|
|
11
|
-
return {
|
|
12
|
-
preConnect: () => preConnectResolver(CONNECT_ENDPOINT),
|
|
13
|
-
};
|
|
14
|
-
}));
|
|
15
|
-
export { ConnectResponse } from '@passlock/shared/dist/rpc/connection.js';
|
|
16
|
-
//# sourceMappingURL=connection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/rpc/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEpD,OAAO,EACL,gBAAgB,EAChB,eAAe,GAEhB,MAAM,yCAAyC,CAAA;AAEhD,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,eAAe,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAE/E,OAAO;QACL,UAAU,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;KACvD,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from 'effect';
|
|
2
|
-
import { type AuthenticationService } from '@passlock/shared/dist/rpc/passkey/authentication.js';
|
|
3
|
-
import { Dispatcher } from '../client.js';
|
|
4
|
-
declare const AuthenticationClient_base: Context.TagClass<AuthenticationClient, "@passkey/authentication/client", AuthenticationService>;
|
|
5
|
-
export declare class AuthenticationClient extends AuthenticationClient_base {
|
|
6
|
-
}
|
|
7
|
-
export declare const AuthenticationClientLive: Layer.Layer<AuthenticationClient, never, Dispatcher>;
|
|
8
|
-
export { OptionsErrors, OptionsRequest, OptionsResponse, VerificationErrors, VerificationRequest, VerificationResponse, } from '@passlock/shared/dist/rpc/passkey/authentication.js';
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Context, Effect as E, Layer } from 'effect';
|
|
2
|
-
import { OPTIONS_ENDPOINT, OptionsErrors, OptionsRequest, OptionsResponse, VERIFICATION_ENDPOINT, VerificationErrors, VerificationRequest, VerificationResponse, } from '@passlock/shared/dist/rpc/passkey/authentication.js';
|
|
3
|
-
import { Dispatcher, makePostRequest } from '../client.js';
|
|
4
|
-
/* Client */
|
|
5
|
-
export class AuthenticationClient extends Context.Tag('@passkey/authentication/client')() {
|
|
6
|
-
}
|
|
7
|
-
export const AuthenticationClientLive = Layer.effect(AuthenticationClient, E.gen(function* (_) {
|
|
8
|
-
const dispatcher = yield* _(Dispatcher);
|
|
9
|
-
const optionsResolver = makePostRequest(OptionsRequest, OptionsResponse, OptionsErrors, dispatcher);
|
|
10
|
-
const verifyResolver = makePostRequest(VerificationRequest, VerificationResponse, VerificationErrors, dispatcher);
|
|
11
|
-
return {
|
|
12
|
-
getAuthenticationOptions: req => optionsResolver(OPTIONS_ENDPOINT, req),
|
|
13
|
-
verifyAuthenticationCredential: req => verifyResolver(VERIFICATION_ENDPOINT, req),
|
|
14
|
-
};
|
|
15
|
-
}));
|
|
16
|
-
export { OptionsErrors, OptionsRequest, OptionsResponse, VerificationErrors, VerificationRequest, VerificationResponse, } from '@passlock/shared/dist/rpc/passkey/authentication.js';
|
|
17
|
-
//# sourceMappingURL=authentication.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../../src/rpc/passkey/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEpD,OAAO,EAEL,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,qDAAqD,CAAA;AAE5D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE1D,YAAY;AAEZ,MAAM,OAAO,oBAAqB,SAAQ,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAGpF;CAAI;AAEP,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,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;IAEnG,MAAM,cAAc,GAAG,eAAe,CACpC,mBAAmB,EACnB,oBAAoB,EACpB,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,qBAAqB,EAAE,GAAG,CAAC;KAClF,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAED,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,qDAAqD,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from 'effect';
|
|
2
|
-
import { type RegistrationService } from '@passlock/shared/dist/rpc/passkey/registration.js';
|
|
3
|
-
import { Dispatcher } from '../client.js';
|
|
4
|
-
declare const RegistrationClient_base: Context.TagClass<RegistrationClient, "@passkey/register/client", RegistrationService>;
|
|
5
|
-
export declare class RegistrationClient extends RegistrationClient_base {
|
|
6
|
-
}
|
|
7
|
-
export declare const RegistrationClientLive: Layer.Layer<RegistrationClient, never, Dispatcher>;
|
|
8
|
-
export { OptionsErrors, OptionsRequest, OptionsResponse, VerificationErrors, VerificationRequest, VerificationResponse, } from '@passlock/shared/dist/rpc/passkey/registration.js';
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Context, Effect as E, Layer } from 'effect';
|
|
2
|
-
import { OptionsErrors, OptionsRequest, OptionsResponse, VerificationErrors, VerificationRequest, VerificationResponse, OPTIONS_ENDPOINT, VERIFICATION_ENDPOINT } from '@passlock/shared/dist/rpc/passkey/registration.js';
|
|
3
|
-
import { Dispatcher, makePostRequest } from '../client.js';
|
|
4
|
-
/* Client */
|
|
5
|
-
export class RegistrationClient extends Context.Tag('@passkey/register/client')() {
|
|
6
|
-
}
|
|
7
|
-
export const RegistrationClientLive = Layer.effect(RegistrationClient, E.gen(function* (_) {
|
|
8
|
-
const dispatcher = yield* _(Dispatcher);
|
|
9
|
-
const optionsResolver = makePostRequest(OptionsRequest, OptionsResponse, OptionsErrors, dispatcher);
|
|
10
|
-
const verifyResolver = makePostRequest(VerificationRequest, VerificationResponse, VerificationErrors, dispatcher);
|
|
11
|
-
return {
|
|
12
|
-
getRegistrationOptions: req => optionsResolver(OPTIONS_ENDPOINT, req),
|
|
13
|
-
verifyRegistrationCredential: req => verifyResolver(VERIFICATION_ENDPOINT, req),
|
|
14
|
-
};
|
|
15
|
-
}));
|
|
16
|
-
export { OptionsErrors, OptionsRequest, OptionsResponse, VerificationErrors, VerificationRequest, VerificationResponse, } from '@passlock/shared/dist/rpc/passkey/registration.js';
|
|
17
|
-
//# sourceMappingURL=registration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/rpc/passkey/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEpD,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EAEf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mDAAmD,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE1D,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,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;IAEnG,MAAM,cAAc,GAAG,eAAe,CACpC,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,CACX,CAAA;IAED,OAAO;QACL,sBAAsB,EAAE,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC;QACrE,4BAA4B,EAAE,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,qBAAqB,EAAE,GAAG,CAAC;KAChF,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAED,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mDAAmD,CAAA"}
|
package/dist/rpc/social.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from 'effect';
|
|
2
|
-
import { type SocialService } from '@passlock/shared/dist/rpc/social.js';
|
|
3
|
-
import { Dispatcher } from './client.js';
|
|
4
|
-
export declare const OIDC_REGISTER_ENDPOINT = "/social/oidc/register";
|
|
5
|
-
export declare const OIDC_AUTH_ENDPOINT = "/social/oidc/auth";
|
|
6
|
-
declare const SocialClient_base: Context.TagClass<SocialClient, "@social/client", SocialService>;
|
|
7
|
-
export declare class SocialClient extends SocialClient_base {
|
|
8
|
-
}
|
|
9
|
-
export declare const SocialClientLive: Layer.Layer<SocialClient, never, Dispatcher>;
|
|
10
|
-
export { OIDCRegistrationRequest, OIDCRegistrationErrors, OIDCAuthenticationRequest, OIDCAuthenticationErrors, PrincipalResponse, } from '@passlock/shared/dist/rpc/social.js';
|
package/dist/rpc/social.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Context, Effect as E, Layer } from 'effect';
|
|
2
|
-
import { OIDCRegistrationRequest, OIDCRegistrationErrors, OIDCAuthenticationRequest, OIDCAuthenticationErrors, OIDC_REGISTRATION_ENDPOINT, OIDC_AUTHENTICATION_ENDPOINT, PrincipalResponse } from '@passlock/shared/dist/rpc/social.js';
|
|
3
|
-
import { Dispatcher, makePostRequest } from './client.js';
|
|
4
|
-
/* Client */
|
|
5
|
-
export const OIDC_REGISTER_ENDPOINT = '/social/oidc/register';
|
|
6
|
-
export const OIDC_AUTH_ENDPOINT = '/social/oidc/auth';
|
|
7
|
-
export class SocialClient extends Context.Tag('@social/client')() {
|
|
8
|
-
}
|
|
9
|
-
export const SocialClientLive = Layer.effect(SocialClient, E.gen(function* (_) {
|
|
10
|
-
const dispatcher = yield* _(Dispatcher);
|
|
11
|
-
const registerResolver = makePostRequest(OIDCRegistrationRequest, PrincipalResponse, OIDCRegistrationErrors, dispatcher);
|
|
12
|
-
const authenticateResolver = makePostRequest(OIDCAuthenticationRequest, PrincipalResponse, OIDCAuthenticationErrors, dispatcher);
|
|
13
|
-
return {
|
|
14
|
-
oidcRegistration: req => registerResolver(OIDC_REGISTRATION_ENDPOINT, req),
|
|
15
|
-
oidcAuthentication: req => authenticateResolver(OIDC_AUTHENTICATION_ENDPOINT, req),
|
|
16
|
-
};
|
|
17
|
-
}));
|
|
18
|
-
export { OIDCRegistrationRequest, OIDCRegistrationErrors, OIDCAuthenticationRequest, OIDCAuthenticationErrors, PrincipalResponse, } from '@passlock/shared/dist/rpc/social.js';
|
|
19
|
-
//# sourceMappingURL=social.js.map
|
package/dist/rpc/social.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/rpc/social.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEpD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,iBAAiB,EAElB,MAAM,qCAAqC,CAAA;AAE5C,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,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,UAAU,CACX,CAAA;IAED,MAAM,oBAAoB,GAAG,eAAe,CAC1C,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,CACX,CAAA;IAED,OAAO;QACL,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,GAAG,CAAC;QAC1E,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC,4BAA4B,EAAE,GAAG,CAAC;KACnF,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAED,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qCAAqC,CAAA"}
|
package/dist/rpc/user.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from 'effect';
|
|
2
|
-
import { type UserService } from '@passlock/shared/dist/rpc/user.js';
|
|
3
|
-
import { Dispatcher } from './client.js';
|
|
4
|
-
declare const UserClient_base: Context.TagClass<UserClient, "@user/client", UserService>;
|
|
5
|
-
export declare class UserClient extends UserClient_base {
|
|
6
|
-
}
|
|
7
|
-
export declare const UserClientLive: Layer.Layer<UserClient, never, Dispatcher>;
|
|
8
|
-
export { IsExistingUserRequest, IsExistingUserResponse, ResendEmailErrors, ResendEmailRequest, ResendEmailResponse, VerifyEmailErrors, VerifyEmailRequest, VerifyEmailResponse, } from '@passlock/shared/dist/rpc/user.js';
|
package/dist/rpc/user.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as S from '@effect/schema/Schema';
|
|
2
|
-
import { Context, Effect as E, Layer } from 'effect';
|
|
3
|
-
import { IsExistingUserRequest, IsExistingUserResponse, RESEND_EMAIL_ENDPOINT, ResendEmailErrors, ResendEmailRequest, ResendEmailResponse, USER_STATUS_ENDPOINT, VERIFY_EMAIL_ENDPOINT, VerifyEmailErrors, VerifyEmailRequest, VerifyEmailResponse, } from '@passlock/shared/dist/rpc/user.js';
|
|
4
|
-
import { Dispatcher, makePostRequest } from './client.js';
|
|
5
|
-
/* Client */
|
|
6
|
-
export class UserClient extends Context.Tag('@user/client')() {
|
|
7
|
-
}
|
|
8
|
-
export const UserClientLive = Layer.effect(UserClient, E.gen(function* (_) {
|
|
9
|
-
const dispatcher = yield* _(Dispatcher);
|
|
10
|
-
const isExistingUserResolver = makePostRequest(IsExistingUserRequest, IsExistingUserResponse, S.Never, dispatcher);
|
|
11
|
-
const verifyEmailResolver = makePostRequest(VerifyEmailRequest, VerifyEmailResponse, VerifyEmailErrors, dispatcher);
|
|
12
|
-
const resendEmailResolver = makePostRequest(ResendEmailRequest, ResendEmailResponse, ResendEmailErrors, dispatcher);
|
|
13
|
-
return {
|
|
14
|
-
isExistingUser: req => isExistingUserResolver(USER_STATUS_ENDPOINT, req),
|
|
15
|
-
verifyEmail: req => verifyEmailResolver(VERIFY_EMAIL_ENDPOINT, req),
|
|
16
|
-
resendVerificationEmail: req => resendEmailResolver(RESEND_EMAIL_ENDPOINT, req),
|
|
17
|
-
};
|
|
18
|
-
}));
|
|
19
|
-
export { IsExistingUserRequest, IsExistingUserResponse, ResendEmailErrors, ResendEmailRequest, ResendEmailResponse, VerifyEmailErrors, VerifyEmailRequest, VerifyEmailResponse, } from '@passlock/shared/dist/rpc/user.js';
|
|
20
|
-
//# sourceMappingURL=user.js.map
|
package/dist/rpc/user.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/rpc/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEpD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EAEpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAE1C,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,qBAAqB,EACrB,sBAAsB,EACtB,CAAC,CAAC,KAAK,EACP,UAAU,CACX,CAAA;IAED,MAAM,mBAAmB,GAAG,eAAe,CACzC,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,CACX,CAAA;IAED,MAAM,mBAAmB,GAAG,eAAe,CACzC,kBAAkB,EAClB,mBAAmB,EACnB,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;AAED,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mCAAmC,CAAA"}
|
package/dist/social/social.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Passkey authentication effects
|
|
3
|
-
*/
|
|
4
|
-
import { Context, Effect as E, Layer } from 'effect';
|
|
5
|
-
import * as RPC from '../rpc/social.js';
|
|
6
|
-
import { type BadRequest, type NotSupported } from '@passlock/shared/dist/error/error.js';
|
|
7
|
-
import type { Principal } from '@passlock/shared/dist/schema/principal.js';
|
|
8
|
-
export type Provider = 'apple' | 'google';
|
|
9
|
-
export type RegisterOidcReq = RPC.OIDCRegistrationRequest;
|
|
10
|
-
export type AuthenticateOidcReq = RPC.OIDCAuthenticationRequest;
|
|
11
|
-
export type RegistrationErrors = NotSupported | BadRequest | RPC.OIDCRegistrationErrors;
|
|
12
|
-
export type AuthenticationErrors = NotSupported | BadRequest | RPC.OIDCAuthenticationErrors;
|
|
13
|
-
declare const SocialService_base: Context.TagClass<SocialService, "@services/SocialService", {
|
|
14
|
-
registerOidc: (req: RegisterOidcReq) => E.Effect<Principal, RegistrationErrors>;
|
|
15
|
-
authenticateOidc: (req: AuthenticateOidcReq) => E.Effect<Principal, AuthenticationErrors>;
|
|
16
|
-
}>;
|
|
17
|
-
export declare class SocialService extends SocialService_base {
|
|
18
|
-
}
|
|
19
|
-
type Dependencies = RPC.SocialClient;
|
|
20
|
-
export declare const registerOidc: (request: RegisterOidcReq) => E.Effect<Principal, RegistrationErrors, Dependencies>;
|
|
21
|
-
export declare const authenticateOidc: (request: AuthenticateOidcReq) => E.Effect<Principal, AuthenticationErrors, Dependencies>;
|
|
22
|
-
export declare const SocialServiceLive: Layer.Layer<SocialService, never, RPC.SocialClient>;
|
|
23
|
-
export {};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Layer as L } from 'effect';
|
|
2
|
-
import { SocialClient } from '../rpc/social.js';
|
|
3
|
-
import type { AuthenticateOidcReq } from './social.js';
|
|
4
|
-
import { OIDCRegistrationRequest, PrincipalResponse } from '@passlock/shared/dist/rpc/social.js';
|
|
5
|
-
export declare const session = "session";
|
|
6
|
-
export declare const token = "token";
|
|
7
|
-
export declare const code = "code";
|
|
8
|
-
export declare const authType = "passkey";
|
|
9
|
-
export declare const expireAt: number;
|
|
10
|
-
export declare const registerOidcReq: OIDCRegistrationRequest;
|
|
11
|
-
export declare const authOidcReq: AuthenticateOidcReq;
|
|
12
|
-
export declare const rpcRegisterRes: PrincipalResponse;
|
|
13
|
-
export declare const rpcAuthenticateRes: PrincipalResponse;
|
|
14
|
-
export declare const rpcClientTest: L.Layer<SocialClient, never, never>;
|
|
15
|
-
export declare const principal: {
|
|
16
|
-
readonly email?: string;
|
|
17
|
-
readonly givenName?: string;
|
|
18
|
-
readonly familyName?: string;
|
|
19
|
-
readonly emailVerified?: boolean;
|
|
20
|
-
readonly user?: {
|
|
21
|
-
readonly email: string;
|
|
22
|
-
readonly id: string;
|
|
23
|
-
readonly givenName: string;
|
|
24
|
-
readonly familyName: string;
|
|
25
|
-
readonly emailVerified: boolean;
|
|
26
|
-
};
|
|
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;
|
|
34
|
-
readonly token: string;
|
|
35
|
-
readonly userVerified: boolean;
|
|
36
|
-
readonly authType: "email" | "apple" | "google" | "passkey";
|
|
37
|
-
readonly authId: string;
|
|
38
|
-
readonly authStatement: {
|
|
39
|
-
readonly userVerified: boolean;
|
|
40
|
-
readonly authType: "email" | "apple" | "google" | "passkey";
|
|
41
|
-
readonly authTimestamp: Date;
|
|
42
|
-
};
|
|
43
|
-
readonly expireAt: Date;
|
|
44
|
-
};
|
|
45
|
-
export declare const capabilitiesTest: L.Layer<import("../capabilities/capabilities.js").Capabilities, never, never>;
|
|
46
|
-
export declare const storageServiceTest: L.Layer<import("../storage/storage.js").StorageService, never, never>;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Effect as E, Layer as L, Option as O } from 'effect';
|
|
2
|
-
import * as Fixtures from '../test/fixtures.js';
|
|
3
|
-
import { SocialClient } from '../rpc/social.js';
|
|
4
|
-
import { OIDCAuthenticationRequest, OIDCRegistrationRequest, PrincipalResponse } from '@passlock/shared/dist/rpc/social.js';
|
|
5
|
-
export const session = 'session';
|
|
6
|
-
export const token = 'token';
|
|
7
|
-
export const code = 'code';
|
|
8
|
-
export const authType = 'passkey';
|
|
9
|
-
export const expireAt = Date.now() + 10000;
|
|
10
|
-
export const registerOidcReq = new OIDCRegistrationRequest({
|
|
11
|
-
provider: 'google',
|
|
12
|
-
idToken: 'google-token',
|
|
13
|
-
nonce: 'nonce',
|
|
14
|
-
givenName: O.some('john'),
|
|
15
|
-
familyName: O.some('doe'),
|
|
16
|
-
});
|
|
17
|
-
export const authOidcReq = new OIDCAuthenticationRequest({
|
|
18
|
-
provider: 'google',
|
|
19
|
-
idToken: 'google-token',
|
|
20
|
-
nonce: 'nonce',
|
|
21
|
-
});
|
|
22
|
-
export const rpcRegisterRes = new PrincipalResponse({ principal: Fixtures.principal });
|
|
23
|
-
export const rpcAuthenticateRes = new PrincipalResponse({ principal: Fixtures.principal });
|
|
24
|
-
export const rpcClientTest = L.succeed(SocialClient, SocialClient.of({
|
|
25
|
-
oidcRegistration: () => E.fail(Fixtures.notImplemented),
|
|
26
|
-
oidcAuthentication: () => E.fail(Fixtures.notImplemented),
|
|
27
|
-
}));
|
|
28
|
-
export const principal = Fixtures.principal;
|
|
29
|
-
export const capabilitiesTest = Fixtures.capabilitiesTest;
|
|
30
|
-
export const storageServiceTest = Fixtures.storageServiceTest;
|
|
31
|
-
//# sourceMappingURL=social.fixture.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"social.fixture.js","sourceRoot":"","sources":["../../src/social/social.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE3H,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,uBAAuB,CAAC;IACzD,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,yBAAyB,CAAC;IAC5E,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,OAAO;CACf,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAEtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;AAE1F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CACpC,YAAY,EACZ,YAAY,CAAC,EAAE,CAAC;IACd,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;IACvD,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC1D,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
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Passkey authentication effects
|
|
3
|
-
*/
|
|
4
|
-
import { Context, Effect as E, Layer, flow } from 'effect';
|
|
5
|
-
import * as RPC from '../rpc/social.js';
|
|
6
|
-
import {} from '@passlock/shared/dist/error/error.js';
|
|
7
|
-
/* Service */
|
|
8
|
-
export class SocialService extends Context.Tag('@services/SocialService')() {
|
|
9
|
-
}
|
|
10
|
-
export const registerOidc = (request) => {
|
|
11
|
-
return E.gen(function* (_) {
|
|
12
|
-
yield* _(E.logInfo('Registering social account'));
|
|
13
|
-
const rpcClient = yield* _(RPC.SocialClient);
|
|
14
|
-
const rpcRequest = new RPC.OIDCRegistrationRequest(request);
|
|
15
|
-
const { principal } = yield* _(rpcClient.oidcRegistration(rpcRequest));
|
|
16
|
-
return principal;
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
export const authenticateOidc = (request) => {
|
|
20
|
-
return E.gen(function* (_) {
|
|
21
|
-
yield* _(E.logInfo('Authenticating with social account'));
|
|
22
|
-
const rpcClient = yield* _(RPC.SocialClient);
|
|
23
|
-
const rpcRequest = new RPC.OIDCAuthenticationRequest(request);
|
|
24
|
-
const { principal } = yield* _(rpcClient.oidcAuthentication(rpcRequest));
|
|
25
|
-
return principal;
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
/* Live */
|
|
29
|
-
/* v8 ignore start */
|
|
30
|
-
export const SocialServiceLive = Layer.effect(SocialService, E.gen(function* (_) {
|
|
31
|
-
const context = yield* _(E.context());
|
|
32
|
-
return SocialService.of({
|
|
33
|
-
registerOidc: flow(registerOidc, E.provide(context)),
|
|
34
|
-
authenticateOidc: flow(authenticateOidc, E.provide(context)),
|
|
35
|
-
});
|
|
36
|
-
}));
|
|
37
|
-
/* v8 ignore stop */
|
|
38
|
-
//# sourceMappingURL=social.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAsC,MAAM,sCAAsC,CAAA;AAiBzF,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,GAAG,CAAC,YAAY,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAC3D,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,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,GAAG,CAAC,YAAY,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;QAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAA;QAExE,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,EAAoB,CAAC,CAAA;IAEvD,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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wrapper around local storage that allows us to store
|
|
3
|
-
* authentication tokens in local storage for a short period.
|
|
4
|
-
*/
|
|
5
|
-
import { Context, Effect as E, Layer, Option as O } from 'effect';
|
|
6
|
-
import type { NoSuchElementException } from 'effect/Cause';
|
|
7
|
-
import type { Principal } from '@passlock/shared/dist/schema/principal.js';
|
|
8
|
-
export type AuthType = 'email' | 'passkey' | 'apple' | 'google';
|
|
9
|
-
export type StoredToken = {
|
|
10
|
-
token: string;
|
|
11
|
-
authType: AuthType;
|
|
12
|
-
expiry: number;
|
|
13
|
-
};
|
|
14
|
-
declare const StorageService_base: Context.TagClass<StorageService, "@services/StorageService", {
|
|
15
|
-
storeToken: (principal: Principal) => E.Effect<void>;
|
|
16
|
-
getToken: (authType: AuthType) => E.Effect<StoredToken, NoSuchElementException>;
|
|
17
|
-
clearToken: (authType: AuthType) => E.Effect<void>;
|
|
18
|
-
clearExpiredToken: (authType: AuthType) => E.Effect<void>;
|
|
19
|
-
clearExpiredTokens: E.Effect<void>;
|
|
20
|
-
}>;
|
|
21
|
-
export declare class StorageService extends StorageService_base {
|
|
22
|
-
}
|
|
23
|
-
declare const BrowserStorage_base: Context.TagClass<BrowserStorage, "@services/Storage", Storage>;
|
|
24
|
-
export declare class BrowserStorage extends BrowserStorage_base {
|
|
25
|
-
}
|
|
26
|
-
export declare const buildKey: (authType: AuthType) => string;
|
|
27
|
-
export declare const compressToken: (principal: Principal) => string;
|
|
28
|
-
export declare const expandToken: (authType: AuthType) => (s: string) => O.Option<StoredToken>;
|
|
29
|
-
/**
|
|
30
|
-
* Store compressed token in local storage
|
|
31
|
-
* @param principal
|
|
32
|
-
* @returns
|
|
33
|
-
*/
|
|
34
|
-
export declare const storeToken: (principal: Principal) => E.Effect<void, never, BrowserStorage>;
|
|
35
|
-
/**
|
|
36
|
-
* Get stored token from local storage
|
|
37
|
-
* @param authenticator
|
|
38
|
-
* @returns
|
|
39
|
-
*/
|
|
40
|
-
export declare const getToken: (authenticator: AuthType) => E.Effect<StoredToken, NoSuchElementException, BrowserStorage>;
|
|
41
|
-
/**
|
|
42
|
-
* Remove token from local storage
|
|
43
|
-
* @param authType
|
|
44
|
-
* @returns
|
|
45
|
-
*/
|
|
46
|
-
export declare const clearToken: (authType: AuthType) => E.Effect<void, never, BrowserStorage>;
|
|
47
|
-
/**
|
|
48
|
-
* Only clear if now > token.expireAt
|
|
49
|
-
* @param authType
|
|
50
|
-
* @param defer
|
|
51
|
-
* @returns
|
|
52
|
-
*/
|
|
53
|
-
export declare const clearExpiredToken: (authType: AuthType) => E.Effect<void, never, BrowserStorage>;
|
|
54
|
-
export declare const clearExpiredTokens: E.Effect<void, never, BrowserStorage>;
|
|
55
|
-
export declare const StorageServiceLive: Layer.Layer<StorageService, never, BrowserStorage>;
|
|
56
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Layer } from 'effect';
|
|
2
|
-
import { BrowserStorage } from './storage.js';
|
|
3
|
-
export declare const testLayers: (storage?: Layer.Layer<BrowserStorage>) => Layer.Layer<import("./storage.js").StorageService | BrowserStorage, never, never>;
|
|
4
|
-
export { principal } from '../test/fixtures.js';
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Effect as E, Layer, pipe } from 'effect';
|
|
2
|
-
import { mock } from 'vitest-mock-extended';
|
|
3
|
-
import { BrowserStorage, StorageServiceLive } from './storage.js';
|
|
4
|
-
const storageTest = Layer.effect(BrowserStorage, E.sync(() => mock()));
|
|
5
|
-
export const testLayers = (storage = storageTest) => {
|
|
6
|
-
const storageService = pipe(StorageServiceLive, Layer.provide(storage));
|
|
7
|
-
return Layer.merge(storage, storageService);
|
|
8
|
-
};
|
|
9
|
-
export { principal } from '../test/fixtures.js';
|
|
10
|
-
//# sourceMappingURL=storage.fixture.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.fixture.js","sourceRoot":"","sources":["../../src/storage/storage.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAC9B,cAAc,EACd,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAW,CAAC,CAC9B,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAuC,WAAW,EAAE,EAAE;IAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACvE,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/storage/storage.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wrapper around local storage that allows us to store
|
|
3
|
-
* authentication tokens in local storage for a short period.
|
|
4
|
-
*/
|
|
5
|
-
import { Context, Effect as E, Layer, Option as O, flow, pipe } from 'effect';
|
|
6
|
-
/* Service */
|
|
7
|
-
export class StorageService extends Context.Tag('@services/StorageService')() {
|
|
8
|
-
}
|
|
9
|
-
export class BrowserStorage extends Context.Tag('@services/Storage')() {
|
|
10
|
-
}
|
|
11
|
-
export const buildKey = (authType) => `passlock:${authType}:token`;
|
|
12
|
-
// principal => token:expireAt
|
|
13
|
-
export const compressToken = (principal) => {
|
|
14
|
-
const expireAt = principal.exp.getTime();
|
|
15
|
-
const token = principal.jti;
|
|
16
|
-
return `${token}:${expireAt.toFixed(0)}`;
|
|
17
|
-
};
|
|
18
|
-
// token:expireAt => { authType, token, expireAt }
|
|
19
|
-
export const expandToken = (authType) => (s) => {
|
|
20
|
-
const tokens = s.split(':');
|
|
21
|
-
if (tokens.length !== 2)
|
|
22
|
-
return O.none();
|
|
23
|
-
const [token, expireAtString] = tokens;
|
|
24
|
-
if (token === undefined || expireAtString === undefined)
|
|
25
|
-
return O.none();
|
|
26
|
-
const parse = O.liftThrowable(Number.parseInt);
|
|
27
|
-
const expireAt = parse(expireAtString);
|
|
28
|
-
return O.map(expireAt, expiry => ({ authType, token, expiry }));
|
|
29
|
-
};
|
|
30
|
-
/* Effects */
|
|
31
|
-
/**
|
|
32
|
-
* Store compressed token in local storage
|
|
33
|
-
* @param principal
|
|
34
|
-
* @returns
|
|
35
|
-
*/
|
|
36
|
-
export const storeToken = (principal) => {
|
|
37
|
-
return E.gen(function* (_) {
|
|
38
|
-
const localStorage = yield* _(BrowserStorage);
|
|
39
|
-
const storeEffect = E.try(() => {
|
|
40
|
-
const compressed = compressToken(principal);
|
|
41
|
-
const key = buildKey(principal.authType);
|
|
42
|
-
localStorage.setItem(key, compressed);
|
|
43
|
-
}).pipe(E.orElse(() => E.void)); // We dont care if it fails
|
|
44
|
-
return yield* _(storeEffect);
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Get stored token from local storage
|
|
49
|
-
* @param authenticator
|
|
50
|
-
* @returns
|
|
51
|
-
*/
|
|
52
|
-
export const getToken = (authenticator) => {
|
|
53
|
-
return E.gen(function* (_) {
|
|
54
|
-
const localStorage = yield* _(BrowserStorage);
|
|
55
|
-
const getEffect = pipe(O.some(buildKey(authenticator)), O.flatMap(key => pipe(localStorage.getItem(key), O.fromNullable)), O.flatMap(expandToken(authenticator)), O.filter(({ expiry }) => expiry > Date.now()));
|
|
56
|
-
return yield* _(getEffect);
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Remove token from local storage
|
|
61
|
-
* @param authType
|
|
62
|
-
* @returns
|
|
63
|
-
*/
|
|
64
|
-
export const clearToken = (authType) => {
|
|
65
|
-
return E.gen(function* (_) {
|
|
66
|
-
const localStorage = yield* _(BrowserStorage);
|
|
67
|
-
localStorage.removeItem(buildKey(authType));
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Only clear if now > token.expireAt
|
|
72
|
-
* @param authType
|
|
73
|
-
* @param defer
|
|
74
|
-
* @returns
|
|
75
|
-
*/
|
|
76
|
-
export const clearExpiredToken = (authType) => {
|
|
77
|
-
const key = buildKey(authType);
|
|
78
|
-
const effect = E.gen(function* (_) {
|
|
79
|
-
const storage = yield* _(BrowserStorage);
|
|
80
|
-
const item = yield* _(O.fromNullable(storage.getItem(key)));
|
|
81
|
-
const token = yield* _(expandToken(authType)(item));
|
|
82
|
-
if (token.expiry < Date.now()) {
|
|
83
|
-
storage.removeItem(key);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
// we don't care if it fails
|
|
87
|
-
return pipe(effect, E.match({
|
|
88
|
-
onSuccess: () => E.void,
|
|
89
|
-
onFailure: () => E.void,
|
|
90
|
-
}));
|
|
91
|
-
};
|
|
92
|
-
export const clearExpiredTokens = E.all([
|
|
93
|
-
clearExpiredToken('passkey'),
|
|
94
|
-
clearExpiredToken('email'),
|
|
95
|
-
clearExpiredToken('google'),
|
|
96
|
-
clearExpiredToken('apple'),
|
|
97
|
-
]);
|
|
98
|
-
/* Live */
|
|
99
|
-
/* v8 ignore start */
|
|
100
|
-
export const StorageServiceLive = Layer.effect(StorageService, E.gen(function* (_) {
|
|
101
|
-
const context = yield* _(E.context());
|
|
102
|
-
return {
|
|
103
|
-
storeToken: flow(storeToken, E.provide(context)),
|
|
104
|
-
getToken: flow(getToken, E.provide(context)),
|
|
105
|
-
clearToken: flow(clearToken, E.provide(context)),
|
|
106
|
-
clearExpiredToken: flow(clearExpiredToken, E.provide(context)),
|
|
107
|
-
clearExpiredTokens: pipe(clearExpiredTokens, E.provide(context)),
|
|
108
|
-
};
|
|
109
|
-
}));
|
|
110
|
-
/* v8 ignore stop */
|
|
111
|
-
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAe7E,aAAa;AAEb,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EASxE;CAAG;AAEN,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAA2B;CAAG;AAElG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,YAAY,QAAQ,QAAQ,CAAA;AAE5E,8BAA8B;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAU,EAAE;IAC5D,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAA;IAC3B,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1C,CAAC,CAAA;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,QAAkB,EAAE,EAAE,CACvB,CAAC,CAAS,EAAyB,EAAE;IACnC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IAExC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,MAAM,CAAA;IACtC,IAAI,KAAK,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IAExE,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,CAAA;IAEtC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC,CAAA;AAEH,aAAa;AAEb;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAoB,EAAyC,EAAE;IACxF,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;QAE7C,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACxC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACvC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,2BAA2B;QAE3D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,aAAuB,EACwC,EAAE;IACjE,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;QAE7C,MAAM,SAAS,GAAG,IAAI,CACpB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAC/B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,EACjE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,EACrC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAC9C,CAAA;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAyC,EAAE;IACtF,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;QAC7C,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAyC,EAAE;IAC7F,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAE9B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnD,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,4BAA4B;IAC5B,OAAO,IAAI,CACT,MAAM,EACN,CAAC,CAAC,KAAK,CAAC;QACN,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;QACvB,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;KACxB,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA0C,CAAC,CAAC,GAAG,CAAC;IAC7E,iBAAiB,CAAC,SAAS,CAAC;IAC5B,iBAAiB,CAAC,OAAO,CAAC;IAC1B,iBAAiB,CAAC,QAAQ,CAAC;IAC3B,iBAAiB,CAAC,OAAO,CAAC;CAC3B,CAAC,CAAA;AAEF,UAAU;AAEV,qBAAqB;AACrB,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAC5C,cAAc,EACd,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAkB,CAAC,CAAA;IAErD,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACjE,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AACD,oBAAoB"}
|
package/dist/test/fixtures.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Layer as L } from 'effect';
|
|
2
|
-
import { BadRequest } from '@passlock/shared/dist/error/error.js';
|
|
3
|
-
import type { Principal } from '@passlock/shared/dist/schema/principal.js';
|
|
4
|
-
import { Capabilities } from '../capabilities/capabilities.js';
|
|
5
|
-
import { StorageService, type StoredToken } from '../storage/storage.js';
|
|
6
|
-
export declare const session = "session";
|
|
7
|
-
export declare const token = "token";
|
|
8
|
-
export declare const code = "code";
|
|
9
|
-
export declare const authType = "passkey";
|
|
10
|
-
export declare const expiry: number;
|
|
11
|
-
export declare const principal: Principal;
|
|
12
|
-
export declare const capabilitiesTest: L.Layer<Capabilities, never, never>;
|
|
13
|
-
export declare const storedToken: StoredToken;
|
|
14
|
-
export declare const storageServiceTest: L.Layer<StorageService, never, never>;
|
|
15
|
-
export declare const notImplemented: BadRequest;
|
package/dist/test/fixtures.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Effect as E, Layer as L } from 'effect';
|
|
2
|
-
import { BadRequest } from '@passlock/shared/dist/error/error.js';
|
|
3
|
-
import { Capabilities } from '../capabilities/capabilities.js';
|
|
4
|
-
import { StorageService } from '../storage/storage.js';
|
|
5
|
-
export const session = 'session';
|
|
6
|
-
export const token = 'token';
|
|
7
|
-
export const code = 'code';
|
|
8
|
-
export const authType = 'passkey';
|
|
9
|
-
export const expiry = Date.now() + 10000;
|
|
10
|
-
export const principal = {
|
|
11
|
-
jti: 'token',
|
|
12
|
-
token: 'token',
|
|
13
|
-
sub: 'user-1',
|
|
14
|
-
iss: 'idp.passlock.dev',
|
|
15
|
-
aud: 'tenancy_id',
|
|
16
|
-
iat: new Date(),
|
|
17
|
-
nbf: new Date(),
|
|
18
|
-
exp: new Date(Date.now() + 5 * 60 * 1000),
|
|
19
|
-
email: 'john.doe@gmail.com',
|
|
20
|
-
givenName: 'john',
|
|
21
|
-
familyName: 'doe',
|
|
22
|
-
emailVerified: false,
|
|
23
|
-
authType: 'passkey',
|
|
24
|
-
authId: 'auth-1',
|
|
25
|
-
userVerified: true,
|
|
26
|
-
// legacy
|
|
27
|
-
user: {
|
|
28
|
-
id: 'user-1',
|
|
29
|
-
givenName: 'john',
|
|
30
|
-
familyName: 'doe',
|
|
31
|
-
email: 'john.doe@gmail.com',
|
|
32
|
-
emailVerified: false,
|
|
33
|
-
},
|
|
34
|
-
authStatement: {
|
|
35
|
-
authType: 'passkey',
|
|
36
|
-
userVerified: false,
|
|
37
|
-
authTimestamp: new Date(0),
|
|
38
|
-
},
|
|
39
|
-
expireAt: new Date(0),
|
|
40
|
-
};
|
|
41
|
-
export const capabilitiesTest = L.succeed(Capabilities, Capabilities.of({
|
|
42
|
-
passkeySupport: E.void,
|
|
43
|
-
isPasskeySupport: E.succeed(true),
|
|
44
|
-
autofillSupport: E.void,
|
|
45
|
-
isAutofillSupport: E.succeed(true),
|
|
46
|
-
}));
|
|
47
|
-
export const storedToken = { token, authType, expiry };
|
|
48
|
-
export const storageServiceTest = L.succeed(StorageService, StorageService.of({
|
|
49
|
-
storeToken: () => E.void,
|
|
50
|
-
getToken: () => E.succeed(storedToken),
|
|
51
|
-
clearToken: () => E.void,
|
|
52
|
-
clearExpiredToken: () => E.void,
|
|
53
|
-
clearExpiredTokens: E.void,
|
|
54
|
-
}));
|
|
55
|
-
export const notImplemented = new BadRequest({ message: 'Not implemented' });
|
|
56
|
-
//# sourceMappingURL=fixtures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAoB,MAAM,uBAAuB,CAAA;AAExE,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAA;AAChC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAA;AAC5B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAA;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;AAExC,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,IAAI,IAAI,EAAE;IACf,GAAG,EAAE,IAAI,IAAI,EAAE;IACf,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,IAAI;IAClB,SAAS;IACT,IAAI,EAAE;QACJ,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,oBAAoB;QAC3B,aAAa,EAAE,KAAK;KACrB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;KAC3B;IACD,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;CACtB,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,OAAO,CACvC,YAAY,EACZ,YAAY,CAAC,EAAE,CAAC;IACd,cAAc,EAAE,CAAC,CAAC,IAAI;IACtB,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACjC,eAAe,EAAE,CAAC,CAAC,IAAI;IACvB,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACnC,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;AAEnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,OAAO,CACzC,cAAc,EACd,cAAc,CAAC,EAAE,CAAC;IAChB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACtC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IACxB,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;IAC/B,kBAAkB,EAAE,CAAC,CAAC,IAAI;CAC3B,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"root":["../src/effect.ts","../src/index.ts","../src/version.ts","../src/authentication/authenticate.fixture.ts","../src/authentication/authenticate.test.ts","../src/authentication/authenticate.ts","../src/capabilities/capabilities.ts","../src/connection/connection.fixture.ts","../src/connection/connection.test.ts","../src/connection/connection.ts","../src/email/email.fixture.ts","../src/email/email.test.ts","../src/email/email.ts","../src/event/event.node.test.ts","../src/event/event.test.ts","../src/event/event.ts","../src/logging/eventlogger.test.ts","../src/logging/eventlogger.ts","../src/registration/register.fixture.ts","../src/registration/register.test.ts","../src/registration/register.ts","../src/rpc/client.ts","../src/rpc/config.ts","../src/rpc/connection.ts","../src/rpc/social.ts","../src/rpc/user.ts","../src/rpc/passkey/authentication.ts","../src/rpc/passkey/registration.ts","../src/social/social.fixture.ts","../src/social/social.test.ts","../src/social/social.ts","../src/storage/storage.fixture.ts","../src/storage/storage.test.ts","../src/storage/storage.ts","../src/test/fixtures.ts","../src/user/user.fixture.ts","../src/user/user.test.ts","../src/user/user.ts"],"version":"5.6.2"}
|