Skip to content
This repository was archived by the owner on Sep 30, 2023. It is now read-only.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ The `Identity` object contains signatures proving possession of some external id

### Creating an identity
```js
const Identities = require('orbit-db-identity-provider')
import Identities from 'orbit-db-identity-provider'
const options = { id: 'local-id'}
const identity = await Identities.createIdentity(options)

Expand All @@ -64,9 +64,9 @@ const identity = await Identities.createIdentity({ id: 'local-id', keystore: exi
#### Creating an identity with a DID
Decentralized Identifiers (DID) is a common way to represent a digital identity. Below is an example using the `did:key` method (specifically [key-did-provider-ed25519](https://github.com/ceramicnetwork/key-did-provider-ed25519)).
```js
const { Ed25519Provider } = require('key-did-provider-ed25519')
const { default: KeyResolver } = require('key-did-resolver')
const Identities = require('orbit-db-identity-provider')
import { Ed25519Provider } from 'key-did-provider-ed25519'
import KeyResolver from 'key-did-resolver'
import Identities from 'orbit-db-identity-provider'
Identities.DIDIdentityProvider.setDIDResolver(KeyResolver.getResolver())

const seed = // 32 bytes of entropy (Uint8Array)
Expand Down Expand Up @@ -94,8 +94,8 @@ _Note: If you don't supply a `wallet`, a random one will be created for you._
To create an identity using existing keys, you need to install `localstorage-level-migration`

```js
const Identities = require('orbit-db-identity-provider')
const migrate = require('localstorage-level-migration')
import Identities from 'orbit-db-identity-provider'
import migrate from 'localstorage-level-migration'
const options = { id: 'new-id', migrate: migrate('/path/to/keys') }
const identity = await Identities.createIdentity(options)

Expand Down
67 changes: 40 additions & 27 deletions conf/webpack.config.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,46 @@
'use strict'
import path from 'path'
import webpack from 'webpack'
import { fileURLToPath } from 'url'

const path = require('path')
export default (env, argv) => {
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)

module.exports = {
entry: './index.js',
output: {
libraryTarget: 'var',
library: 'Identities',
filename: 'index-browser.min.js'
},
target: 'web',
devtool: 'source-map',
plugins: [
],
resolve: {
modules: [
'node_modules',
path.resolve(__dirname, '../node_modules')
return {
mode: 'production',
entry: './src/identities.js',
output: {
libraryTarget: 'var',
library: 'Identities',
filename: '../dist/orbit-db-identity-provider.min.js'
},
target: 'web',
devtool: 'source-map',
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
})
],
fallback: {
assert: require.resolve('assert'),
path: require.resolve('path-browserify'),
stream: require.resolve('stream-browserify')
resolve: {
modules: [
'node_modules'
],
alias: {
leveldown: 'level-js'
},
fallback: {
assert: require.resolve('assert'),
path: require.resolve('path-browserify'),
stream: require.resolve('stream-browserify')
}
},
resolveLoader: {
modules: [
'node_modules',
path.resolve(__dirname, '../node_modules')
],
extensions: ['.js', '.json'],
mainFields: ['loader', 'main']
}
},
resolveLoader: {
modules: [
'node_modules',
path.resolve(__dirname, '../node_modules')
]
}
}
130 changes: 60 additions & 70 deletions conf/webpack.tests.config.js
Original file line number Diff line number Diff line change
@@ -1,76 +1,66 @@
'use strict'
import glob from 'glob'
import webpack from 'webpack'
import { createRequire } from 'module'

const glob = require('glob')
const webpack = require('webpack')
const path = require('path')

module.exports = {
// TODO: put all tests in a .js file that webpack can use as entry point
entry: glob.sync('./test/*.spec.js'),
output: {
filename: '../test/browser/bundle.js'
},
target: 'web',
devtool: 'source-map',
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
}),
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
process: 'process/browser'
}),
new webpack.IgnorePlugin(/mongo|redis/)
],
externals: {
bindings: '{}',
leveldown: '{}',
fs: '{}',
fatfs: '{}',
runtimejs: '{}',
rimraf: '{ sync: () => {} }',
'graceful-fs': '{}',
'fs-extra': '{ copy: () => {} }',
'fs.realpath': '{}'
// dns: '{}',
// "node-gyp-build": '{}'
},
resolve: {
modules: [
'node_modules',
path.resolve(__dirname, '../node_modules')
export default (env, argv) => {
const require = createRequire(import.meta.url)
return {
// TODO: put all tests in a .js file that webpack can use as entry point
entry: glob.sync('./test/*.spec.js'),
output: {
filename: '../test/browser/bundle.js'
},
target: 'web',
mode: 'production',
devtool: 'source-map',
plugins: [
new webpack.ProvidePlugin({
process: 'process/browser',
Buffer: ['buffer', 'Buffer']
})
],
fallback: {
assert: require.resolve('assert'),
path: require.resolve('path-browserify'),
stream: require.resolve('stream-browserify')
}
},
resolveLoader: {
modules: [
'node_modules',
path.resolve(__dirname, '../node_modules')
]
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [
['@babel/preset-env', { modules: false }]
],
plugins: ['@babel/syntax-object-rest-spread', '@babel/transform-runtime', '@babel/plugin-transform-modules-commonjs']
externals: {
bindings: '{}',
leveldown: '{}',
fs: '{}',
fatfs: '{}',
runtimejs: '{}',
rimraf: '{ sync: () => {} }',
'graceful-fs': '{}',
'fs-extra': '{ copy: () => {} }',
'fs.realpath': '{}'
// dns: '{}',
// "node-gyp-build": '{}'
},
experiments: {
topLevelAwait: true
},
resolve: {
modules: [
'node_modules'
],
fallback: {
buffer: require.resolve('buffer/'),
events: require.resolve('events/'),
assert: require.resolve('assert'),
path: require.resolve('path-browserify'),
stream: require.resolve('stream-browserify')
}
},
module: {
rules: [
{
test: /\.m?js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: ['@babel/plugin-syntax-import-assertions']
}
}
}
},
{
test: /existing|QmPhnEjVkYE1Ym7F5MkRUfkD6NtuSptE7ugu1Ggr149W2X|0260baeaffa1de1e4135e5b395e0380563a622b9599d1b8e012a0f7603f516bdaa$/,
loader: 'json-loader'
}
]
]
}
}
}
4 changes: 0 additions & 4 deletions index.js

This file was deleted.

Loading