blob: 0ee97feebfc02b86ea1a3a7a234d9a13d8d951f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# SimpleWebAuthn Project <!-- omit in toc -->

[](https://www.npmjs.com/search?q=simplewebauthn)
- [Overview](#overview)
- [Installation](#installation)
- [Example](#example)
- [Contributions](#contributions)
- [Development](#development)
## Overview
This monorepo contains two complimentary libraries to help reduce the amount of work needed to
incorporate WebAuthn into a website. The following packages are maintained here:
- [@simplewebauthn/server](https://github.com/MasterKale/SimpleWebAuthn/tree/master/packages/server)
- [@simplewebauthn/browser](https://github.com/MasterKale/SimpleWebAuthn/tree/master/packages/browser)
An additional package is also included that contains shared TypeScript definitions:
- [@simplewebauthn/types](https://github.com/MasterKale/SimpleWebAuthn/tree/master/packages/types/)
See these packages' READMEs for more specific implementation information.
**API Documentation**
In-depth documentation for all of the packages in this project is available here:
https://simplewebauthn.dev/docs/
## Installation
These packages are all available on **npm** for use in **Node LTS 20.x** projects and supports
**both CommonJS and [ECMAScript modules (ESM)](https://nodejs.org/api/esm.html#enabling)**:
```sh
npm install @simplewebauthn/browser
npm install @simplewebauthn/server
npm install @simplewebauthn/types
```
The **server** and **types** packages are also available for import into **Deno v1.33.x** projects
from **deno.land/x**:
```ts
import {...} from 'https://deno.land/x/simplewebauthn/deno/server.ts';
import type {...} from 'https://deno.land/x/simplewebauthn/deno/types.ts';
```
## Example
For a practical guide to implementing these libraries, take a look at the
[example project](https://github.com/MasterKale/SimpleWebAuthn/tree/master/example). It includes a
single-file Express server and a few HTML files that, combined with the packages in this repo, are
close to all it takes to get up and running with WebAuthn.
## Contributions
The SimpleWebAuthn project is not currently open to external contributions.
Please [submit an Issue](https://github.com/MasterKale/SimpleWebAuthn/issues/new/choose) and fill
out the provided template with as much information as possible if you have found a bug in need of
fixing.
You can also [submit an Issue](https://github.com/MasterKale/SimpleWebAuthn/issues/new/choose) to
request new features, or to suggest changes to existing features.
## Development
Install the following before proceeding:
- **Node 20.x**
- **Deno 1.41.x**
- **pnpm 8.6.x**
After pulling down the code, set up dependencies:
```sh
$> pnpm run bootstrap-monorepo
```
To run unit tests for all workspace packages, use the `test` series of scripts:
```sh
# Run All tests
$> pnpm run test
# Run an individual package's tests
$> pnpm run test:browser
$> pnpm run test:server
```
Tests can be run in watch mode with the `dev` series of scripts:
```sh
$> pnpm run dev:browser
$> pnpm run dev:server
```
|