@passlock/node 0.9.22 → 0.9.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,4 +7,3 @@ declare const Config_base: Context.TagClass<Config, "Config", {
7
7
  export declare class Config extends Config_base {
8
8
  }
9
9
  export {};
10
- //# sourceMappingURL=config.d.ts.map
package/dist/index.d.ts CHANGED
@@ -17,17 +17,31 @@ export declare class PasslockUnsafe {
17
17
  });
18
18
  private readonly runPromise;
19
19
  fetchPrincipal: (request: PrincipalRequest) => Promise<{
20
+ readonly givenName?: string;
21
+ readonly familyName?: string;
22
+ readonly email?: string;
23
+ readonly emailVerified?: boolean;
24
+ readonly iss: string;
25
+ readonly aud: string;
26
+ readonly sub: string;
27
+ readonly iat: Date;
28
+ readonly nbf: Date;
29
+ readonly exp: Date;
30
+ readonly jti: string;
20
31
  readonly token: string;
21
- readonly user: {
32
+ readonly userVerified: boolean;
33
+ readonly authType: "email" | "apple" | "google" | "passkey";
34
+ readonly authId: string;
35
+ readonly user?: {
22
36
  readonly id: string;
37
+ readonly email: string;
23
38
  readonly givenName: string;
24
39
  readonly familyName: string;
25
- readonly email: string;
26
40
  readonly emailVerified: boolean;
27
41
  };
28
42
  readonly authStatement: {
29
- readonly authType: "email" | "apple" | "google" | "passkey";
30
43
  readonly userVerified: boolean;
44
+ readonly authType: "email" | "apple" | "google" | "passkey";
31
45
  readonly authTimestamp: Date;
32
46
  };
33
47
  readonly expireAt: Date;
@@ -42,20 +56,33 @@ export declare class Passlock {
42
56
  });
43
57
  private readonly runPromise;
44
58
  fetchPrincipal: (request: PrincipalRequest) => Promise<{
59
+ readonly givenName?: string;
60
+ readonly familyName?: string;
61
+ readonly email?: string;
62
+ readonly emailVerified?: boolean;
63
+ readonly iss: string;
64
+ readonly aud: string;
65
+ readonly sub: string;
66
+ readonly iat: Date;
67
+ readonly nbf: Date;
68
+ readonly exp: Date;
69
+ readonly jti: string;
45
70
  readonly token: string;
46
- readonly user: {
71
+ readonly userVerified: boolean;
72
+ readonly authType: "email" | "apple" | "google" | "passkey";
73
+ readonly authId: string;
74
+ readonly user?: {
47
75
  readonly id: string;
76
+ readonly email: string;
48
77
  readonly givenName: string;
49
78
  readonly familyName: string;
50
- readonly email: string;
51
79
  readonly emailVerified: boolean;
52
80
  };
53
81
  readonly authStatement: {
54
- readonly authType: "email" | "apple" | "google" | "passkey";
55
82
  readonly userVerified: boolean;
83
+ readonly authType: "email" | "apple" | "google" | "passkey";
56
84
  readonly authTimestamp: Date;
57
85
  };
58
86
  readonly expireAt: Date;
59
87
  } | PasslockError>;
60
88
  }
61
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { ErrorCode, Forbidden, InternalServerError, NotFound, Unauthorized, } from '@passlock/shared/dist/error/error.js';
2
- import { Effect as E, Layer as L, Runtime, Scope, pipe } from 'effect';
1
+ import { ErrorCode } from '@passlock/shared/dist/error/error.js';
3
2
  import { Config } from './config/config.js';
3
+ import { Effect as E, Layer as L, Runtime, Scope, pipe } from 'effect';
4
4
  import { PrincipalService, PrincipalServiceLive, StreamResponseLive, } from './principal/principal.js';
5
5
  export { ErrorCode } from '@passlock/shared/dist/error/error.js';
6
6
  export class PasslockError extends Error {
@@ -38,6 +38,7 @@ const transformErrors = (effect) => {
38
38
  : E.succeed(new PasslockError('Sorry, something went wrong', ErrorCode.InternalServerError));
39
39
  },
40
40
  Interrupt: () => {
41
+ console.error("Interrupt");
41
42
  return E.succeed(new PasslockError('Operation aborted', ErrorCode.InternalBrowserError));
42
43
  },
43
44
  Sequential: errors => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,20 @@ import { Principal } from '@passlock/shared/dist/schema/principal.js';
3
3
  import { Context, Effect as E, Layer, Stream } from 'effect';
4
4
  import * as https from 'https';
5
5
  import { Config } from '../config/config.js';
6
- export type StreamResponse = (options: https.RequestOptions) => Stream.Stream<Buffer, PrincipalErrors>;
7
- export declare const StreamResponse: Context.Tag<StreamResponse, StreamResponse>;
6
+ declare const StreamResponse_base: Context.TagClass<StreamResponse, "@services/StreamResponse", {
7
+ streamResponse: (options: https.RequestOptions) => Stream.Stream<Buffer, PrincipalErrors>;
8
+ }>;
9
+ export declare class StreamResponse extends StreamResponse_base {
10
+ }
8
11
  export type PrincipalErrors = NotFound | Unauthorized | Forbidden | InternalServerError;
9
12
  export type PrincipalRequest = {
10
13
  token: string;
11
14
  };
12
- export type PrincipalService = {
15
+ declare const PrincipalService_base: Context.TagClass<PrincipalService, "@services/PrincipalService", {
13
16
  fetchPrincipal: (request: PrincipalRequest) => E.Effect<Principal, PrincipalErrors>;
14
- };
15
- export declare const PrincipalService: Context.Tag<PrincipalService, PrincipalService>;
17
+ }>;
18
+ export declare class PrincipalService extends PrincipalService_base {
19
+ }
16
20
  export declare const buildError: (res: {
17
21
  statusCode?: number | undefined;
18
22
  statusMessage?: string | undefined;
@@ -20,4 +24,4 @@ export declare const buildError: (res: {
20
24
  export declare const fetchPrincipal: (request: PrincipalRequest) => E.Effect<Principal, PrincipalErrors, StreamResponse | Config>;
21
25
  export declare const StreamResponseLive: Layer.Layer<StreamResponse, never, never>;
22
26
  export declare const PrincipalServiceLive: Layer.Layer<PrincipalService, never, Config | StreamResponse>;
23
- //# sourceMappingURL=principal.d.ts.map
27
+ export {};
@@ -1,8 +1,8 @@
1
- import type { Principal } from '@passlock/shared/dist/schema/principal.js';
1
+ import { Principal } from '@passlock/shared/dist/schema/principal.js';
2
2
  import { Context, Effect as E, Layer as L, Ref } from 'effect';
3
3
  import type { RequestOptions } from 'https';
4
- import { Config } from '../config/config.js';
5
4
  import { type PrincipalService } from './principal.js';
5
+ import { Config } from '../config/config.js';
6
6
  export declare const principal: Principal;
7
7
  export declare const tenancyId = "tenancyId";
8
8
  export declare const apiKey = "apiKey";
@@ -13,4 +13,3 @@ export declare class State extends State_base {
13
13
  export declare const buildEffect: <A, E>(assertions: E.Effect<A, E, PrincipalService | State>) => E.Effect<void, E>;
14
14
  export declare const buildErrorEffect: (statusCode: number) => <A>(assertions: E.Effect<void, A, PrincipalService>) => E.Effect<void, A>;
15
15
  export {};
16
- //# sourceMappingURL=principal.fixture.d.ts.map
@@ -1,14 +1,33 @@
1
+ import * as S from '@effect/schema/Schema';
2
+ import { Principal } from '@passlock/shared/dist/schema/principal.js';
1
3
  import { Context, Effect as E, Layer as L, LogLevel, Logger, Ref, Stream, pipe } from 'effect';
2
- import { Config } from '../config/config.js';
3
4
  import { PrincipalServiceLive, StreamResponse, buildError, } from './principal.js';
5
+ import { Config } from '../config/config.js';
4
6
  export const principal = {
7
+ jti: 'token',
5
8
  token: 'token',
9
+ sub: 'user-1',
10
+ iss: 'idp.passlock.dev',
11
+ aud: 'tenancy_id',
12
+ // must be at least 1 second
13
+ // as it's truncated to seconds
14
+ iat: new Date(60 * 1000),
15
+ nbf: new Date(120 * 100),
16
+ exp: new Date(180 * 1000),
17
+ email: 'john.doe@gmail.com',
18
+ givenName: 'john',
19
+ familyName: 'doe',
20
+ emailVerified: false,
21
+ authType: 'passkey',
22
+ authId: 'auth-1',
23
+ userVerified: true,
24
+ // legacy
6
25
  user: {
7
- id: '1',
8
- email: 'john.doe@gmail.com',
26
+ id: 'user-1',
9
27
  givenName: 'john',
10
28
  familyName: 'doe',
11
- emailVerified: false,
29
+ email: 'john.doe@gmail.com',
30
+ emailVerified: false
12
31
  },
13
32
  authStatement: {
14
33
  authType: 'passkey',
@@ -23,19 +42,24 @@ export const configTest = L.succeed(Config, Config.of({ tenancyId, apiKey }));
23
42
  export class State extends Context.Tag('State')() {
24
43
  }
25
44
  export const buildEffect = (assertions) => {
26
- const responseStreamTest = L.effect(StreamResponse, E.gen(function* (_) {
45
+ const streamResponseTest = L.effect(StreamResponse, E.gen(function* (_) {
27
46
  const ref = yield* _(State);
28
- const buff = Buffer.from(JSON.stringify(principal));
29
- return options => pipe(Stream.fromEffect(Ref.set(ref, options)), Stream.zipRight(Stream.make(buff)));
47
+ const res = S.encodeSync(Principal)(principal);
48
+ const buff = Buffer.from(JSON.stringify(res));
49
+ return {
50
+ streamResponse: options => pipe(Stream.fromEffect(Ref.set(ref, options)), Stream.zipRight(Stream.make(buff))),
51
+ };
30
52
  }));
31
- const service = pipe(PrincipalServiceLive, L.provide(responseStreamTest), L.provide(configTest));
53
+ const service = pipe(PrincipalServiceLive, L.provide(streamResponseTest), L.provide(configTest));
32
54
  const args = L.effect(State, Ref.make(undefined));
33
55
  const effect = pipe(E.provide(assertions, service), E.provide(args), Logger.withMinimumLogLevel(LogLevel.None));
34
56
  return effect;
35
57
  };
36
58
  export const buildErrorEffect = (statusCode) => (assertions) => {
37
- const responseStreamTest = L.succeed(StreamResponse, () => Stream.fail(buildError({ statusCode })));
38
- const service = pipe(PrincipalServiceLive, L.provide(responseStreamTest), L.provide(configTest));
59
+ const streamResponseTest = L.succeed(StreamResponse, StreamResponse.of({
60
+ streamResponse: () => Stream.fail(buildError({ statusCode })),
61
+ }));
62
+ const service = pipe(PrincipalServiceLive, L.provide(streamResponseTest), L.provide(configTest));
39
63
  const args = L.effect(State, Ref.make(undefined));
40
64
  const effect = pipe(E.provide(assertions, service), E.provide(args), Logger.withMinimumLogLevel(LogLevel.None));
41
65
  return effect;
@@ -1 +1 @@
1
- {"version":3,"file":"principal.fixture.js","sourceRoot":"","sources":["../../src/principal/principal.fixture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"principal.fixture.js","sourceRoot":"","sources":["../../src/principal/principal.fixture.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,18 @@
1
1
  import { Forbidden, InternalServerError, NotFound, Unauthorized, } from '@passlock/shared/dist/error/error.js';
2
- import { Principal, } from '@passlock/shared/dist/schema/principal.js';
2
+ import { Principal } from '@passlock/shared/dist/schema/principal.js';
3
3
  import { createParser } from '@passlock/shared/dist/schema/utils.js';
4
4
  import { Chunk, Console, Context, Effect as E, Layer, Option, Stream, flow, pipe } from 'effect';
5
5
  import * as https from 'https';
6
+ import { PASSLOCK_CLIENT_VERSION } from '../version.js';
6
7
  import { Config } from '../config/config.js';
7
- export const StreamResponse = Context.GenericTag('@services/ResponseStream');
8
+ /* Dependencies */
9
+ export class StreamResponse extends Context.Tag('@services/StreamResponse')() {
10
+ }
11
+ /* Service */
8
12
  const parsePrincipal = createParser(Principal);
9
- export const PrincipalService = Context.GenericTag('@services/Principal');
13
+ export class PrincipalService extends Context.Tag('@services/PrincipalService')() {
14
+ }
15
+ /* Effects */
10
16
  const buildHostname = (endpoint) => {
11
17
  return new URL(endpoint || 'https://api.passlock.dev').hostname;
12
18
  };
@@ -16,8 +22,9 @@ const buildOptions = (token) => pipe(Config, E.map(({ endpoint, tenancyId, apiKe
16
22
  path: `/${tenancyId}/token/${token}`,
17
23
  method: 'GET',
18
24
  headers: {
19
- 'Accept': 'application/json',
20
- 'Authorization': `Bearer ${apiKey}`,
25
+ Accept: 'application/json',
26
+ Authorization: `Bearer ${apiKey}`,
27
+ 'X-PASSLOCK-CLIENT-VERSION': PASSLOCK_CLIENT_VERSION
21
28
  },
22
29
  })));
23
30
  export const buildError = (res) => {
@@ -38,7 +45,7 @@ export const buildError = (res) => {
38
45
  const fail = (error) => E.fail(Option.some(error));
39
46
  const succeed = (data) => E.succeed(Chunk.of(data));
40
47
  const close = E.fail(Option.none());
41
- const buildStream = (token) => pipe(Stream.fromEffect(buildOptions(token)), Stream.zip(StreamResponse), Stream.flatMap(([options, streamResponse]) => streamResponse(options)));
48
+ const buildStream = (token) => pipe(Stream.fromEffect(buildOptions(token)), Stream.zip(StreamResponse), Stream.flatMap(([options, { streamResponse }]) => streamResponse(options)));
42
49
  export const fetchPrincipal = (request) => {
43
50
  const stream = buildStream(request.token);
44
51
  const json = pipe(Stream.runCollect(stream), E.map(Chunk.toReadonlyArray), E.map(buffers => Buffer.concat(buffers)), E.flatMap(buffer => E.try({
@@ -56,8 +63,10 @@ export const fetchPrincipal = (request) => {
56
63
  })), E.flatMap(json => pipe(parsePrincipal(json), E.tapError(error => Console.error(error.detail)), E.mapError(() => new InternalServerError({ message: 'Unable to parse response as Principal' })))));
57
64
  return json;
58
65
  };
59
- export const StreamResponseLive = Layer.succeed(StreamResponse, options => {
60
- return Stream.async((emit) => {
66
+ /* Live */
67
+ /* v8 ignore start */
68
+ export const StreamResponseLive = Layer.succeed(StreamResponse, {
69
+ streamResponse: options => Stream.async((emit) => {
61
70
  https
62
71
  .request(options, res => {
63
72
  if (200 !== res.statusCode)
@@ -67,7 +76,7 @@ export const StreamResponseLive = Layer.succeed(StreamResponse, options => {
67
76
  res.on('error', e => void emit(fail(new InternalServerError({ message: e.message }))));
68
77
  })
69
78
  .end();
70
- });
79
+ }),
71
80
  });
72
81
  export const PrincipalServiceLive = Layer.effect(PrincipalService, E.gen(function* (_) {
73
82
  const context = yield* _(E.context());
@@ -75,4 +84,5 @@ export const PrincipalServiceLive = Layer.effect(PrincipalService, E.gen(functio
75
84
  fetchPrincipal: flow(fetchPrincipal, E.provide(context)),
76
85
  });
77
86
  }));
87
+ /* v8 ignore stop */
78
88
  //# sourceMappingURL=principal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"principal.js","sourceRoot":"","sources":["../../src/principal/principal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"principal.js","sourceRoot":"","sources":["../../src/principal/principal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const PASSLOCK_CLIENT_VERSION = "0.9.23";
@@ -0,0 +1,2 @@
1
+ export const PASSLOCK_CLIENT_VERSION = '0.9.23';
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAA"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@passlock/node",
3
3
  "type": "module",
4
- "version": "0.9.22",
5
- "description": "BAckend passkey library for node/express",
4
+ "version": "0.9.23",
5
+ "description": "Passkey authentication and social login for node.js/express apps",
6
6
  "keywords": [
7
7
  "passkey",
8
8
  "passkeys",
@@ -15,7 +15,7 @@
15
15
  "email": "toby@passlock.dev"
16
16
  },
17
17
  "license": "MIT",
18
- "homepage": "https://github.com/passlock-dev/ts-clients",
18
+ "homepage": "https://passlock.dev",
19
19
  "repository": {
20
20
  "type": "git",
21
21
  "url": "git+https://github.com/passlock-dev/ts-clients.git",
@@ -38,42 +38,45 @@
38
38
  "!dist/**/*.spec.*"
39
39
  ],
40
40
  "dependencies": {
41
- "effect": "3.4.8",
42
- "@passlock/shared": "0.9.22"
41
+ "effect": "3.6.3",
42
+ "@passlock/shared": "0.9.23"
43
43
  },
44
44
  "devDependencies": {
45
- "@tsconfig/node18": "^18.2.4",
46
- "@types/node": "^20.14.10",
47
- "@typescript-eslint/eslint-plugin": "^7.15.0",
48
- "@typescript-eslint/parser": "^7.15.0",
49
- "@vitest/coverage-v8": "^2.0.3",
50
- "@vitest/ui": "^2.0.3",
51
- "eslint": "^8.57.0",
45
+ "@effect/schema": "0.70.4",
46
+ "@qetza/replacetokens": "^1.7.0",
47
+ "@total-typescript/tsconfig": "^1.0.4",
48
+ "@trivago/prettier-plugin-sort-imports": "^4.3.0",
49
+ "@tsconfig/node20": "^20.1.4",
50
+ "@types/node": "^22.2.0",
51
+ "@typescript-eslint/eslint-plugin": "^8.0.1",
52
+ "@typescript-eslint/parser": "^8.0.1",
53
+ "@vitest/coverage-v8": "^2.0.5",
54
+ "@vitest/ui": "^2.0.5",
55
+ "eslint": "^9.9.0",
52
56
  "eslint-config-prettier": "^9.1.0",
53
- "eslint-import-resolver-typescript": "^3.6.1",
54
- "eslint-plugin-import": "^2.29.1",
55
- "prettier": "^3.3.2",
56
- "publint": "^0.1.9",
57
- "rimraf": "^5.0.8",
58
- "tsx": "^4.16.2",
59
- "typescript": "^5.5.3",
60
- "vite": "^5.3.3",
61
- "vitest": "^2.0.3"
57
+ "prettier": "^3.3.3",
58
+ "publint": "^0.2.9",
59
+ "rimraf": "^6.0.1",
60
+ "tsx": "^4.17.0",
61
+ "typescript": "^5.5.4",
62
+ "vite": "^5.4.0",
63
+ "vitest": "^2.0.5"
62
64
  },
63
65
  "scripts": {
64
- "clean": "tsc --build --clean",
66
+ "clean": "rimraf ./dist",
65
67
  "typecheck": "tsc --noEmit",
66
68
  "test": "vitest run",
67
69
  "test:watch": "vitest dev",
68
70
  "test:ui": "vitest --coverage.enabled=true --ui",
69
71
  "test:coverage": "vitest run --coverage",
70
- "build": "tsc --build && publint",
72
+ "replaceTokens": "LATEST=${npm_package_version} replacetokens --sources ./dist/version.* --log-level error --missing-var-action keep --use-env > /dev/null",
73
+ "build": "tsc --build && pnpm run replaceTokens && publint",
71
74
  "build:clean": "pnpm run clean && pnpm run build",
72
75
  "build:watch": "tsc --build --watch",
73
76
  "format": "prettier --write \"src/**/*.+(js|ts|json)\"",
74
77
  "lint": "eslint --ext .ts src",
75
78
  "lint:fix": "pnpm run lint --fix",
76
- "ncu": "ncu --peer -x @effect/* -x effect",
77
- "ncu:save": "ncu --peer -x @effect/* -x effect -u"
79
+ "upgrade:deps": "ncu --peer -x effect -x @effect/* -u",
80
+ "upgrade:pnpm": "corepack use pnpm@latest"
78
81
  }
79
82
  }
package/src/index.ts CHANGED
@@ -1,17 +1,20 @@
1
- import {
2
- ErrorCode,
3
- Forbidden,
4
- InternalServerError,
5
- NotFound,
6
- Unauthorized,
1
+ import { ErrorCode } from '@passlock/shared/dist/error/error.js'
2
+ import { Config } from './config/config.js'
3
+
4
+ import type {
5
+ Forbidden,
6
+ InternalServerError,
7
+ NotFound,
8
+ Unauthorized,
7
9
  } from '@passlock/shared/dist/error/error.js'
10
+
8
11
  import { Effect as E, Layer as L, Runtime, Scope, pipe } from 'effect'
9
- import { Config } from './config/config.js'
12
+
10
13
  import {
11
- PrincipalService,
12
- PrincipalServiceLive,
13
- StreamResponseLive,
14
- type PrincipalRequest,
14
+ type PrincipalRequest,
15
+ PrincipalService,
16
+ PrincipalServiceLive,
17
+ StreamResponseLive,
15
18
  } from './principal/principal.js'
16
19
 
17
20
  export type { PrincipalRequest } from './principal/principal.js'
@@ -69,11 +72,14 @@ const transformErrors = <A, R>(
69
72
  },
70
73
 
71
74
  Interrupt: () => {
75
+ console.error("Interrupt")
76
+
72
77
  return E.succeed(new PasslockError('Operation aborted', ErrorCode.InternalBrowserError))
73
78
  },
74
79
 
75
80
  Sequential: errors => {
76
81
  console.error(errors)
82
+
77
83
  return E.succeed(
78
84
  new PasslockError('Sorry, something went wrong', ErrorCode.InternalServerError),
79
85
  )
@@ -81,6 +87,7 @@ const transformErrors = <A, R>(
81
87
 
82
88
  Parallel: errors => {
83
89
  console.error(errors)
90
+
84
91
  return E.succeed(
85
92
  new PasslockError('Sorry, something went wrong', ErrorCode.InternalServerError),
86
93
  )
@@ -1,22 +1,42 @@
1
- import type { Principal } from '@passlock/shared/dist/schema/principal.js'
1
+ import * as S from '@effect/schema/Schema'
2
+ import { Principal } from '@passlock/shared/dist/schema/principal.js'
2
3
  import { Context, Effect as E, Layer as L, LogLevel, Logger, Ref, Stream, pipe } from 'effect'
3
4
  import type { RequestOptions } from 'https'
4
- import { Config } from '../config/config.js'
5
+
5
6
  import {
7
+ type PrincipalService,
6
8
  PrincipalServiceLive,
7
9
  StreamResponse,
8
10
  buildError,
9
- type PrincipalService,
10
11
  } from './principal.js'
11
12
 
13
+ import { Config } from '../config/config.js'
14
+
12
15
  export const principal: Principal = {
16
+ jti: 'token',
13
17
  token: 'token',
18
+ sub: 'user-1',
19
+ iss: 'idp.passlock.dev',
20
+ aud: 'tenancy_id',
21
+ // must be at least 1 second
22
+ // as it's truncated to seconds
23
+ iat: new Date(60 * 1000),
24
+ nbf: new Date(120 * 100),
25
+ exp: new Date(180 * 1000),
26
+ email: 'john.doe@gmail.com',
27
+ givenName: 'john',
28
+ familyName: 'doe',
29
+ emailVerified: false,
30
+ authType: 'passkey',
31
+ authId: 'auth-1',
32
+ userVerified: true,
33
+ // legacy
14
34
  user: {
15
- id: '1',
16
- email: 'john.doe@gmail.com',
35
+ id: 'user-1',
17
36
  givenName: 'john',
18
37
  familyName: 'doe',
19
- emailVerified: false,
38
+ email: 'john.doe@gmail.com',
39
+ emailVerified: false
20
40
  },
21
41
  authStatement: {
22
42
  authType: 'passkey',
@@ -36,17 +56,21 @@ export class State extends Context.Tag('State')<State, Ref.Ref<RequestOptions |
36
56
  export const buildEffect = <A, E>(
37
57
  assertions: E.Effect<A, E, PrincipalService | State>,
38
58
  ): E.Effect<void, E> => {
39
- const responseStreamTest = L.effect(
59
+ const streamResponseTest = L.effect(
40
60
  StreamResponse,
41
61
  E.gen(function* (_) {
42
62
  const ref = yield* _(State)
43
- const buff = Buffer.from(JSON.stringify(principal))
44
- return options =>
45
- pipe(Stream.fromEffect(Ref.set(ref, options)), Stream.zipRight(Stream.make(buff)))
63
+ const res = S.encodeSync(Principal)(principal)
64
+ const buff = Buffer.from(JSON.stringify(res))
65
+
66
+ return {
67
+ streamResponse: options =>
68
+ pipe(Stream.fromEffect(Ref.set(ref, options)), Stream.zipRight(Stream.make(buff))),
69
+ }
46
70
  }),
47
71
  )
48
72
 
49
- const service = pipe(PrincipalServiceLive, L.provide(responseStreamTest), L.provide(configTest))
73
+ const service = pipe(PrincipalServiceLive, L.provide(streamResponseTest), L.provide(configTest))
50
74
 
51
75
  const args = L.effect(State, Ref.make<RequestOptions | undefined>(undefined))
52
76
 
@@ -62,11 +86,14 @@ export const buildEffect = <A, E>(
62
86
  export const buildErrorEffect =
63
87
  (statusCode: number) =>
64
88
  <A>(assertions: E.Effect<void, A, PrincipalService>): E.Effect<void, A> => {
65
- const responseStreamTest = L.succeed(StreamResponse, () =>
66
- Stream.fail(buildError({ statusCode })),
89
+ const streamResponseTest = L.succeed(
90
+ StreamResponse,
91
+ StreamResponse.of({
92
+ streamResponse: () => Stream.fail(buildError({ statusCode })),
93
+ }),
67
94
  )
68
95
 
69
- const service = pipe(PrincipalServiceLive, L.provide(responseStreamTest), L.provide(configTest))
96
+ const service = pipe(PrincipalServiceLive, L.provide(streamResponseTest), L.provide(configTest))
70
97
 
71
98
  const args = L.effect(State, Ref.make<RequestOptions | undefined>(undefined))
72
99
 
@@ -1,8 +1,8 @@
1
1
  import {
2
- Forbidden,
3
- InternalServerError,
4
- NotFound,
5
- Unauthorized,
2
+ Forbidden,
3
+ InternalServerError,
4
+ NotFound,
5
+ Unauthorized,
6
6
  } from '@passlock/shared/dist/error/error.js'
7
7
  import { Effect as E, Effect, Ref } from 'effect'
8
8
  import { describe, expect, test } from 'vitest'
@@ -4,19 +4,23 @@ import {
4
4
  NotFound,
5
5
  Unauthorized,
6
6
  } from '@passlock/shared/dist/error/error.js'
7
- import { Principal, } from '@passlock/shared/dist/schema/principal.js'
7
+ import { Principal } from '@passlock/shared/dist/schema/principal.js'
8
8
  import { createParser } from '@passlock/shared/dist/schema/utils.js'
9
9
  import type { StreamEmit } from 'effect'
10
10
  import { Chunk, Console, Context, Effect as E, Layer, Option, Stream, flow, pipe } from 'effect'
11
11
  import * as https from 'https'
12
+ import { PASSLOCK_CLIENT_VERSION } from '../version.js'
13
+
12
14
  import { Config } from '../config/config.js'
13
15
 
14
16
  /* Dependencies */
15
17
 
16
- export type StreamResponse = (
17
- options: https.RequestOptions,
18
- ) => Stream.Stream<Buffer, PrincipalErrors>
19
- export const StreamResponse = Context.GenericTag<StreamResponse>('@services/ResponseStream')
18
+ export class StreamResponse extends Context.Tag('@services/StreamResponse')<
19
+ StreamResponse,
20
+ {
21
+ streamResponse: (options: https.RequestOptions) => Stream.Stream<Buffer, PrincipalErrors>
22
+ }
23
+ >() {}
20
24
 
21
25
  /* Service */
22
26
 
@@ -25,16 +29,17 @@ const parsePrincipal = createParser(Principal)
25
29
  export type PrincipalErrors = NotFound | Unauthorized | Forbidden | InternalServerError
26
30
  export type PrincipalRequest = { token: string }
27
31
 
28
- export type PrincipalService = {
29
- fetchPrincipal: (request: PrincipalRequest) => E.Effect<Principal, PrincipalErrors>
30
- }
31
-
32
- export const PrincipalService = Context.GenericTag<PrincipalService>('@services/Principal')
32
+ export class PrincipalService extends Context.Tag('@services/PrincipalService')<
33
+ PrincipalService,
34
+ {
35
+ fetchPrincipal: (request: PrincipalRequest) => E.Effect<Principal, PrincipalErrors>
36
+ }
37
+ >() {}
33
38
 
34
39
  /* Effects */
35
40
 
36
- const buildHostname = (endpoint: string | undefined) => {
37
- return new URL(endpoint || 'https://api.passlock.dev').hostname
41
+ const buildHostname = (endpoint: string | undefined) => {
42
+ return new URL(endpoint || 'https://api.passlock.dev').hostname
38
43
  }
39
44
 
40
45
  const buildOptions = (token: string) =>
@@ -46,8 +51,9 @@ const buildOptions = (token: string) =>
46
51
  path: `/${tenancyId}/token/${token}`,
47
52
  method: 'GET',
48
53
  headers: {
49
- 'Accept': 'application/json',
50
- 'Authorization': `Bearer ${apiKey}`,
54
+ Accept: 'application/json',
55
+ Authorization: `Bearer ${apiKey}`,
56
+ 'X-PASSLOCK-CLIENT-VERSION': PASSLOCK_CLIENT_VERSION
51
57
  },
52
58
  })),
53
59
  )
@@ -62,10 +68,10 @@ export const buildError = (res: {
62
68
 
63
69
  if (res.statusCode && res.statusMessage)
64
70
  return new InternalServerError({ message: `${String(res.statusCode)} - ${res.statusMessage}` })
65
-
66
- if (res.statusCode) return new InternalServerError({ message: String(res.statusCode) })
67
-
68
- if (res.statusMessage) return new InternalServerError({ message: res.statusMessage })
71
+
72
+ if (res.statusCode) return new InternalServerError({ message: String(res.statusCode) })
73
+
74
+ if (res.statusMessage) return new InternalServerError({ message: res.statusMessage })
69
75
 
70
76
  return new InternalServerError({ message: 'Received non 200 response' })
71
77
  }
@@ -78,7 +84,7 @@ const buildStream = (token: string) =>
78
84
  pipe(
79
85
  Stream.fromEffect(buildOptions(token)),
80
86
  Stream.zip(StreamResponse),
81
- Stream.flatMap(([options, streamResponse]) => streamResponse(options)),
87
+ Stream.flatMap(([options, { streamResponse }]) => streamResponse(options)),
82
88
  )
83
89
 
84
90
  export const fetchPrincipal = (
@@ -127,17 +133,18 @@ export const fetchPrincipal = (
127
133
  /* Live */
128
134
 
129
135
  /* v8 ignore start */
130
- export const StreamResponseLive = Layer.succeed(StreamResponse, options => {
131
- return Stream.async((emit: StreamEmit.Emit<never, PrincipalErrors, Buffer, void>) => {
132
- https
133
- .request(options, res => {
134
- if (200 !== res.statusCode) void emit(fail(buildError(res)))
135
- res.on('data', (data: Buffer) => void emit(succeed(data)))
136
- res.on('close', () => void emit(close))
137
- res.on('error', e => void emit(fail(new InternalServerError({ message: e.message }))))
138
- })
139
- .end()
140
- })
136
+ export const StreamResponseLive = Layer.succeed(StreamResponse, {
137
+ streamResponse: options =>
138
+ Stream.async((emit: StreamEmit.Emit<never, PrincipalErrors, Buffer, void>) => {
139
+ https
140
+ .request(options, res => {
141
+ if (200 !== res.statusCode) void emit(fail(buildError(res)))
142
+ res.on('data', (data: Buffer) => void emit(succeed(data)))
143
+ res.on('close', () => void emit(close))
144
+ res.on('error', e => void emit(fail(new InternalServerError({ message: e.message }))))
145
+ })
146
+ .end()
147
+ }),
141
148
  })
142
149
 
143
150
  export const PrincipalServiceLive = Layer.effect(
package/src/version.ts ADDED
@@ -0,0 +1 @@
1
+ export const PASSLOCK_CLIENT_VERSION = '#{LATEST}#'
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;;wBAKR,MAAM;qBACT,MAAM;wBACH,MAAM;;AAL9B,qBAAa,MAAO,SAAQ,WAOzB;CAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAKZ,MAAM,sCAAsC,CAAA;AAG7C,OAAO,EAIH,KAAK,gBAAgB,EACxB,MAAM,0BAA0B,CAAA;AAEjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAEhE,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,mBAAkB;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;gBAEZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IAK5C,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAW,OAAO,KAAG,KAAK,IAAI,aAAa,CAOjE;CACF;AAyDD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAE3C,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAW5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAQ1B;IAED,cAAc,YAAa,gBAAgB;;;;;;;;;;;;;;;OAKxC;CACJ;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAE3C,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAW5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAI1B;IAED,cAAc,YAAa,gBAAgB;;;;;;;;;;;;;;;uBAKxC;CACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../../src/principal/principal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACb,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAG,MAAM,2CAA2C,CAAA;AAGtE,OAAO,EAAkB,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAU,MAAM,EAAc,MAAM,QAAQ,CAAA;AAChG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAI5C,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,KAAK,CAAC,cAAc,KAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAC3C,eAAO,MAAM,cAAc,6CAAiE,CAAA;AAM5F,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,mBAAmB,CAAA;AACvF,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;CACpF,CAAA;AAED,eAAO,MAAM,gBAAgB,iDAA8D,CAAA;AAuB3F,eAAO,MAAM,UAAU,QAAS;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC,8DAaA,CAAA;AAaD,eAAO,MAAM,cAAc,YAChB,gBAAgB,KACxB,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,GAAG,MAAM,CAuC9D,CAAA;AAKD,eAAO,MAAM,kBAAkB,2CAW7B,CAAA;AAEF,eAAO,MAAM,oBAAoB,+DAQhC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"principal.fixture.d.ts","sourceRoot":"","sources":["../../src/principal/principal.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAoB,GAAG,EAAgB,MAAM,QAAQ,CAAA;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAEvB,eAAO,MAAM,SAAS,EAAE,SAevB,CAAA;AAED,eAAO,MAAM,SAAS,cAAc,CAAA;AACpC,eAAO,MAAM,MAAM,WAAW,CAAA;AAE9B,eAAO,MAAM,UAAU,+BAAsD,CAAA;;AAE7E,qBAAa,KAAM,SAAQ,UAAkE;CAAG;AAEhG,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,cAClB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC,KACnD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAsBlB,CAAA;AAED,eAAO,MAAM,gBAAgB,eACd,MAAM,MAClB,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,gBAAgB,CAAC,KAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAgBrE,CAAA"}