@passlock/node 0.9.17 → 0.9.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/principal/principal.d.ts +1 -1
- package/dist/principal/principal.d.ts.map +1 -1
- package/dist/principal/principal.fixture.d.ts +1 -1
- package/dist/principal/principal.fixture.d.ts.map +1 -1
- package/dist/principal/principal.fixture.js +1 -1
- package/dist/principal/principal.fixture.js.map +1 -1
- package/dist/principal/principal.js +2 -1
- package/dist/principal/principal.js.map +1 -1
- package/package.json +12 -11
- package/src/principal/principal.fixture.ts +6 -6
- package/src/principal/principal.ts +6 -5
- package/README.md +0 -69
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export declare class PasslockUnsafe {
|
|
|
26
26
|
readonly emailVerified: boolean;
|
|
27
27
|
};
|
|
28
28
|
readonly authStatement: {
|
|
29
|
-
readonly authType: "email" | "google" | "passkey";
|
|
29
|
+
readonly authType: "email" | "apple" | "google" | "passkey";
|
|
30
30
|
readonly userVerified: boolean;
|
|
31
31
|
readonly authTimestamp: Date;
|
|
32
32
|
};
|
|
@@ -51,7 +51,7 @@ export declare class Passlock {
|
|
|
51
51
|
readonly emailVerified: boolean;
|
|
52
52
|
};
|
|
53
53
|
readonly authStatement: {
|
|
54
|
-
readonly authType: "email" | "google" | "passkey";
|
|
54
|
+
readonly authType: "email" | "apple" | "google" | "passkey";
|
|
55
55
|
readonly userVerified: boolean;
|
|
56
56
|
readonly authTimestamp: Date;
|
|
57
57
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Forbidden, InternalServerError, NotFound, Unauthorized } from '@passlock/shared/dist/error/error.js';
|
|
2
|
-
import { Principal } from '@passlock/shared/dist/schema/
|
|
2
|
+
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';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../../src/principal/principal.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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,4 +1,4 @@
|
|
|
1
|
-
import type { Principal } from '@passlock/shared/dist/schema/
|
|
1
|
+
import type { 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
4
|
import { Config } from '../config/config.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.fixture.d.ts","sourceRoot":"","sources":["../../src/principal/principal.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.fixture.js","sourceRoot":"","sources":["../../src/principal/principal.fixture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE9F,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"principal.fixture.js","sourceRoot":"","sources":["../../src/principal/principal.fixture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Forbidden, InternalServerError, NotFound, Unauthorized, } from '@passlock/shared/dist/error/error.js';
|
|
2
|
-
import { Principal,
|
|
2
|
+
import { Principal, } from '@passlock/shared/dist/schema/principal.js';
|
|
3
|
+
import { createParser } from '@passlock/shared/dist/schema/utils.js';
|
|
3
4
|
import { Chunk, Console, Context, Effect as E, Layer, Option, Stream, flow, pipe } from 'effect';
|
|
4
5
|
import * as https from 'https';
|
|
5
6
|
import { Config } from '../config/config.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../../src/principal/principal.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../../src/principal/principal.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@passlock/node",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.21",
|
|
5
5
|
"description": "Server side passkey library for node/express",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"passkey",
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"effect": "^3.4.8",
|
|
36
|
-
"@passlock/shared": "^0.9.
|
|
36
|
+
"@passlock/shared": "^0.9.21"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@tsconfig/node18": "^18.2.4",
|
|
40
40
|
"@types/node": "^20.14.10",
|
|
41
41
|
"@typescript-eslint/eslint-plugin": "^7.15.0",
|
|
42
42
|
"@typescript-eslint/parser": "^7.15.0",
|
|
43
|
-
"@vitest/coverage-v8": "^
|
|
44
|
-
"@vitest/ui": "^
|
|
43
|
+
"@vitest/coverage-v8": "^2.0.3",
|
|
44
|
+
"@vitest/ui": "^2.0.3",
|
|
45
45
|
"eslint": "^8.57.0",
|
|
46
46
|
"eslint-config-prettier": "^9.1.0",
|
|
47
47
|
"eslint-import-resolver-typescript": "^3.6.1",
|
|
@@ -51,21 +51,22 @@
|
|
|
51
51
|
"tsx": "^4.16.2",
|
|
52
52
|
"typescript": "^5.5.3",
|
|
53
53
|
"vite": "^5.3.3",
|
|
54
|
-
"vitest": "^
|
|
54
|
+
"vitest": "^2.0.3"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"clean": "tsc --build --clean",
|
|
58
|
-
"
|
|
59
|
-
"build:clean": "pnpm run clean && pnpm run build",
|
|
58
|
+
"typecheck": "tsc --noEmit",
|
|
60
59
|
"test": "vitest run",
|
|
61
60
|
"test:watch": "vitest dev",
|
|
62
61
|
"test:ui": "vitest --coverage.enabled=true --ui",
|
|
63
62
|
"test:coverage": "vitest run --coverage",
|
|
64
|
-
"
|
|
63
|
+
"build": "tsc --build",
|
|
64
|
+
"build:clean": "pnpm run clean && pnpm run build",
|
|
65
|
+
"build:watch": "tsc --build --watch",
|
|
66
|
+
"format": "prettier --write \"src/**/*.+(js|ts|json)\"",
|
|
65
67
|
"lint": "eslint --ext .ts src",
|
|
66
68
|
"lint:fix": "pnpm run lint --fix",
|
|
67
|
-
"
|
|
68
|
-
"ncu": "ncu --peer -x @
|
|
69
|
-
"ncu:save": "ncu --peer -x @passlock/* -x effect -u"
|
|
69
|
+
"ncu": "ncu --peer -x @effect/* -x effect",
|
|
70
|
+
"ncu:save": "ncu --peer -x @effect/* -x effect -u"
|
|
70
71
|
}
|
|
71
72
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { Principal } from '@passlock/shared/dist/schema/
|
|
1
|
+
import type { Principal } from '@passlock/shared/dist/schema/principal.js'
|
|
2
2
|
import { Context, Effect as E, Layer as L, LogLevel, Logger, Ref, Stream, pipe } from 'effect'
|
|
3
3
|
import type { RequestOptions } from 'https'
|
|
4
4
|
import { Config } from '../config/config.js'
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
PrincipalServiceLive,
|
|
7
|
+
StreamResponse,
|
|
8
|
+
buildError,
|
|
9
|
+
type PrincipalService,
|
|
10
10
|
} from './principal.js'
|
|
11
11
|
|
|
12
12
|
export const principal: Principal = {
|
|
@@ -19,7 +19,7 @@ export const principal: Principal = {
|
|
|
19
19
|
emailVerified: false,
|
|
20
20
|
},
|
|
21
21
|
authStatement: {
|
|
22
|
-
authType: '
|
|
22
|
+
authType: 'passkey',
|
|
23
23
|
userVerified: false,
|
|
24
24
|
authTimestamp: new Date(0),
|
|
25
25
|
},
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
Forbidden,
|
|
3
|
+
InternalServerError,
|
|
4
|
+
NotFound,
|
|
5
|
+
Unauthorized,
|
|
6
6
|
} from '@passlock/shared/dist/error/error.js'
|
|
7
|
-
import { Principal,
|
|
7
|
+
import { Principal, } from '@passlock/shared/dist/schema/principal.js'
|
|
8
|
+
import { createParser } from '@passlock/shared/dist/schema/utils.js'
|
|
8
9
|
import type { StreamEmit } from 'effect'
|
|
9
10
|
import { Chunk, Console, Context, Effect as E, Layer, Option, Stream, flow, pipe } from 'effect'
|
|
10
11
|
import * as https from 'https'
|
package/README.md
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
<a href="https://github.com/passlock-dev/passkeys-frontend">
|
|
3
|
-
<img src="https://github.com/passlock-dev/passkeys-frontend/assets/208345/53ee00d3-8e6c-49ea-b43c-3f901450c73b" alt="Passlock logo" width="80" height="80">
|
|
4
|
-
</a>
|
|
5
|
-
</div>
|
|
6
|
-
|
|
7
|
-
<a name="readme-top"></a>
|
|
8
|
-
<h1 align="center">Serverless Passkeys</h1>
|
|
9
|
-
|
|
10
|
-
<p align="center">
|
|
11
|
-
Node SDK for passkey authentication
|
|
12
|
-
<br />
|
|
13
|
-
<a href="https://passlock.dev"><strong>Project website »</strong></a>
|
|
14
|
-
<br />
|
|
15
|
-
<a href="https://passlock.dev/#demo">Demo</a>
|
|
16
|
-
·
|
|
17
|
-
<a href="https://docs.passlock.dev">Documentation</a>
|
|
18
|
-
·
|
|
19
|
-
<a href="https://docs.passlock.dev/docs/tutorial/intro">Tutorial</a>
|
|
20
|
-
</p>
|
|
21
|
-
</div>
|
|
22
|
-
|
|
23
|
-
<br />
|
|
24
|
-
|
|
25
|
-
## See also
|
|
26
|
-
|
|
27
|
-
For frontend usage please see the accompanying [@passlock/client][client] package
|
|
28
|
-
|
|
29
|
-
## Features
|
|
30
|
-
|
|
31
|
-
Passkeys and the WebAuthn API are quite complex. We've taken an opinionated approach to the implementation and feature set to simplify things for you. Following the 80/20 principle we've tried to focus on the features most valuable to developers and users. We welcome feature requests so do [get in touch][contact].
|
|
32
|
-
|
|
33
|
-
1. **🔐 Primary or secondary authentication** - Replace password based logins with passkeys, or use passkeys alongside passwords for secondary authentication.
|
|
34
|
-
|
|
35
|
-
2. **☝🏻 Biometrics** - We've made it really easy to implement facial or fingerprint recognition in your webapps.
|
|
36
|
-
|
|
37
|
-
3. **🔐 Step up authentication** - Require biometric or PIN verification for some actions e.g. changing account details, whilst allowing frictionless authentication for others.
|
|
38
|
-
|
|
39
|
-
4. **🖥️ Full management console** - Manage all security related aspects of your userbase through a web based console.
|
|
40
|
-
|
|
41
|
-
6. **🕵️ Audit trail** - View a full audit trail for each user: when they add a new passkey, when they login, verify their email address and much more.
|
|
42
|
-
|
|
43
|
-
## Screenshot
|
|
44
|
-
|
|
45
|
-

|
|
46
|
-
<p align="center">Viewing a user's authentication activity on their profile page</p>
|
|
47
|
-
|
|
48
|
-
## Requirements
|
|
49
|
-
|
|
50
|
-
Node 16+
|
|
51
|
-
|
|
52
|
-
## Usage
|
|
53
|
-
|
|
54
|
-
Generate a secure token in your frontend then use this API to obtain the passkey registration or authentication details:
|
|
55
|
-
|
|
56
|
-
```typescript
|
|
57
|
-
import { Passlock } from '@passlock/node'
|
|
58
|
-
|
|
59
|
-
const passlock = new Passlock({ tenancyId, apiKey })
|
|
60
|
-
|
|
61
|
-
// token comes from your frontend
|
|
62
|
-
const principal = await passlock.fetchPrincipal({ token })
|
|
63
|
-
|
|
64
|
-
// get the user id
|
|
65
|
-
console.log(principal.user.id)
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
[contact]: https://passlock.dev/contact
|
|
69
|
-
[client]: https://www.npmjs.com/package/@passlock/client
|