From 6c55c6433b3dd35c324b2edebcfbe0776d363d54 Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Sun, 21 Apr 2024 16:38:51 -0700 Subject: [PATCH] FEATURE: better docs --- .github/workflows/gh-pages.yml | 52 ---------- README.md | 176 ++++++++++++++++++++++++++++++++- example/index.ts | 6 +- image.png | Bin 0 -> 107232 bytes package.json | 57 ++++++++--- src/util.ts | 33 ------- 6 files changed, 217 insertions(+), 107 deletions(-) delete mode 100644 .github/workflows/gh-pages.yml create mode 100644 image.png delete mode 100644 src/util.ts diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml deleted file mode 100644 index 07896bf..0000000 --- a/.github/workflows/gh-pages.yml +++ /dev/null @@ -1,52 +0,0 @@ -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: GitHub Pages deploy - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Pages - uses: actions/configure-pages@v5 - - name: Install - run: npm install - - name: Build - run: npm run build-example - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: public/ - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/README.md b/README.md index 0732d62..65e8a6b 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # link ![tests](https://github.com/bicycle-codes/link/actions/workflows/nodejs.yml/badge.svg) [![types](https://img.shields.io/npm/types/@bicycle-codes/link?style=flat-square)](README.md) -[![module](https://img.shields.io/badge/module-ESM-blue?style=flat-square)](README.md) +[![module](https://img.shields.io/badge/module-ESM%2FCJS-blue?style=flat-square)](README.md) [![semantic versioning](https://img.shields.io/badge/semver-2.0.0-blue?logo=semver&style=flat-square)](https://semver.org/) [![license](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE) Link multiple devices via websocket. -This depends on each device having a [keystore](https://github.com/fission-codes/keystore-idb) that holds its private keys. +This depends on each device having a [keystore](https://github.com/fission-codes/keystore-idb) which stores the private keys. ## install @@ -16,3 +16,175 @@ npm i -S @bicycle-codes/link ``` ## use + +## example +Connect two devices, a phone and computer, for example. They must both know `code`, which by default is a 6 digit numberic code that should be transmitted out of band. + +```js +import { program as Program } from '@oddjs/odd' +import { create as createID } from '@bicycle-codes/identity' + +const program = await Program({ + namespace: { + name: 'link-example', + creator: 'bicycle-computing' + } +}) +const { crypto } = program.components + +const myId = await createID(crypto, { + humanName: 'alice', + humanReadableDeviceName: 'phone' +}) + +/** + * 'phone' is the parent device. The parent should connect first. + * The resolved promise is for a new `Identity`, which is a new ID, including + * the child device + */ +const newIdentity = await Parent(myId, crypto, { + host: 'localhost:1999', + code: '1234' +}) +``` + +...On a different machine... + +```js +const program = await Program({ + namespace: { + name: 'link-example', + creator: 'bicycle-computing' + } +}) +const { crypto } = program.components + +const { identity, certificate } = await Child(crypto, { + host: PARTY_URL, + code: '1234', + humanReadableDeviceName: 'computer' +}) +``` + +Both machines now have an ID that looks like this: + +![Screenshot of identity](image.png) + +### serverside +This depends on a websocket server existing. We provide the export +`server` to help with this. + +This should be ergonomic to use with [partykit](https://www.partykit.io/). + +#### server example + +```js +import type * as Party from 'partykit/server' +import { onConnect, onMessage } from '@bicycle-codes/link/server' + +export default class Server implements Party.Server { + existingDevice:string|undefined + + constructor (readonly room: Party.Room) { + this.room = room + } + + /** + * Parent device must connect first + */ + onConnect (conn:Party.Connection) { + onConnect(this, conn) + } + + onMessage (message:string, sender:Party.Connection) { + onMessage(this, message, sender) + } +} + +Server satisfies Party.Worker +``` + +## API + +### Parent +Call this from the "parent" device. It returns a promise that will resolve with a new identity, that includes the child devices. + +```ts +import type { Crypto, Identity } from '@bicycle-codes/identity' + +async function Parent (identity:Identity, oddCrypto:Crypto, { + host, + code, + query +}:{ + host:string; + code:string; + query?:string; +}):Promise +``` + +### Child +Call this from the "child" device. It returns a promise that will resolve with +`{ identity, certificate }`, where `certificate` is a signed message from the +parent device, serving as proof that the child is authorized. + +```ts +import type { Crypto, Identity } from '@bicycle-codes/identity' + +async function Child (oddCrypto:Crypto, { + host, + code, + query, + humanReadableDeviceName +}:{ + host:string; + code:string; + query?:string; + humanReadableDeviceName:string; +}):Promise<{ identity:Identity, certificate:Certificate }> +``` + +### Code +Need to create a code before connecting the parent device. The code should be transmitted out-of-band; it serves as verification that the two devices want to connect. + +By default this will create a random 6 digit numeric code; see the source code +for how to use a different alphabet. + +```ts +function Code (alphabet?:string, length?:number):string { + return customAlphabet(alphabet || numbers, length ?? 6)() +} +``` + +#### `Code` example +```js +import { Code } from '@bicycle-codes/link' +const code = Code() +// => 942814 +``` + +## types + +### Certificate + +The certificate is a signed message from the "parent" device, +saying that the new device is authorized. + +```ts +import { create as createMessage } from '@bicycle-codes/message' + +type Certificate = Awaited< + ReturnType> +> +``` + +The certificate will also have keys `author` and `signature`, via the +[message module](https://github.com/bicycle-codes/message), with the DID and +signature for this data. diff --git a/example/index.ts b/example/index.ts index f6dc3f0..6d5b68d 100644 --- a/example/index.ts +++ b/example/index.ts @@ -7,9 +7,7 @@ import { program as Program } from '@oddjs/odd' import { Button } from '@nichoth/components/htm/button' import Debug from '@nichoth/debug' import { TextInput } from '@nichoth/components/htm/text-input' -import { customAlphabet } from '@nichoth/nanoid' -import { numbers } from '@nichoth/nanoid-dictionary' -import { Parent, Child, Certificate } from '../src/index.js' +import { Parent, Child, Certificate, Code } from '../src/index.js' import '@nichoth/components/button-outline.css' import '@nichoth/components/text-input.css' import '@nichoth/components/button.css' @@ -46,7 +44,7 @@ const Example:FunctionComponent = function Example () { ev.preventDefault() debug('add a child device', ev) // the parent needs to create a random ID for websocket connection - const code = customAlphabet(numbers, 6)() + const code = Code() batch(() => { state.linkState.value = 'parent' diff --git a/image.png b/image.png new file mode 100644 index 0000000000000000000000000000000000000000..405108da7709c1aa619e1b9bc738971a357f81ca GIT binary patch literal 107232 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

Gd?3cuhL-=`a4SA3zy+BgdETLWvFP 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 (https://nichoth.com)", "license": "MIT" } diff --git a/src/util.ts b/src/util.ts deleted file mode 100644 index da7aebe..0000000 --- a/src/util.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { DID, Crypto } from '@bicycle-codes/identity' -import { concat, toString } from 'uint8arrays' - -const BASE58_DID_PREFIX = 'did:key:z' - -export async function writeKeyToDid ( - crypto:Crypto -):Promise { - const [pubKey, ksAlg] = await Promise.all([ - crypto.keystore.publicWriteKey(), - crypto.keystore.getAlgorithm() - ]) - - return publicKeyToDid(crypto, pubKey, ksAlg) -} - -export function publicKeyToDid ( - crypto:Crypto, - publicKey:Uint8Array, - keyType:string -):DID { - // Prefix public-write key - const prefix = crypto.did.keyTypes[keyType]?.magicBytes - if (prefix === null) { - throw new Error(`Key type '${keyType}' not supported, ` + - `available types: ${Object.keys(crypto.did.keyTypes).join(', ')}`) - } - - const prefixedBuf = concat([prefix, publicKey]) - - // Encode prefixed - return (BASE58_DID_PREFIX + toString(prefixedBuf, 'base58btc')) as DID -}