open-index/open-npm huggingface dataset:
npm package: @interop-alliance/oidc-op
Description: OpenID Connect Provider
Latest version: 0.8.0

# OpenID Connect Provider for Nodejs _(@interop-alliance/oidc-op)_

[![Build Status](https://travis-ci.org/interop-alliance/oidc-op.svg?branch=master)](https://travis-ci.org/interop-alliance/oidc-op)
[![npm version](https://badge.fury.io/js/%40interop-alliance%2Foidc-op.svg)](https://badge.fury.io/js/%40interop-alliance%2Foidc-op)

> Embeddable OpenID Connect Provider for Nodejs

This library aims to implement a minimal OpenID Connect Provider for
Nodejs. It is not intended to be used directly by most developers, but rather
via a complete self-contained server such as 
[Life Server](https://github.com/interop-alliance/life-server). 
Some applications require an embedded identity provider, such as entertainment 
or IoT appliances. This package can be used directly in these cases.

The module should make available an OIDCProvider class which can be
instantiated multiple times to support multitenancy use cases. It should also
have a method that provides a mountable router or app for widely used frameworks
like Express.

## Table of Contents

* [Security](#security)
* [Background](#background)
* [Install](#install)
* [Develop](#develop)
* [Maintainers](#maintainers)
* [Contribute](#contribute)
* [MIT License](#mit-license)

## Security

...

## Background

### Internal Interface

OpenID Connect makes no provisions for how a user is initially authenticated
by the IdP. It's up to the implementer to determine whether to use passwords,
LDAP, SAML, OAuth, or some other means. The host system is responsible for
other dependencies of the OIDC authentication flows as well, such as
persistence, managing user attributes, multi-factor auth and so on.

In addition to implementing OpenID Connect Provider functions, this library
defines an interface between OpenID Connect and the host application.

The goal of the interface is to manage the flow of responsibility between the
OpenID Connect implementation and functions provided by the host application,
such as local user authentication, persistence, and domain specific event
handing.

## Install

```bash
$ npm install @interop-alliance/oidc-op --save
```

## Develop

### Test

```bash
npm test
```

## Maintainers

* Dmitri Zagidulin

## Contribute

### Style guide

* ES6
* Standard JavaScript
* jsdocs

### Code of conduct

* @interop-alliance/oidc-op follows the [Contributor Covenant](http://contributor-covenant.org/version/1/3/0/) Code of Conduct.

## MIT License

[The MIT License](LICENSE.md)

Copyright (c) 2016 [Anvil Research, Inc.](http://anvil.io)<br/>
Copyright (c) 2017-2019 Dmitri Zagidulin and The Solid Project
npm package: @interop-alliance/oidc-rp
Description: OpenID Connect Relying Party client library
Latest version: 0.13.0

# OpenID Connect Relying Party _(@interop-alliance/oidc-rp)_

[![Build Status](https://travis-ci.org/interop-alliance/oidc-rp.svg?branch=master&style=flat-square)](https://travis-ci.org/interop-alliance/oidc-rp)
[![npm version](https://badge.fury.io/js/%40interop-alliance%2Foidc-rp.svg)](https://badge.fury.io/js/%40interop-alliance%2Foidc-rp)

> OpenID Connect Relying Party for Node.js and the browser.

- [x] Dynamic Configuration and Client Registration
- [x] Authorization Code, Implicit, and Hybrid grants
- [x] Relying Party initiated logout
- [ ] Refresh grant
- [X] Client Credentials grant
- [ ] Key rotation using JWK `kid` value
- [ ] Session management
- [ ] front- and back-channel logout
- [X] Request parameters as JWT
- [ ] Claims request parameter
- [ ] Claims language tags
- [ ] OAuth 2.0 Bearer Token requests

## Table of Contents

* [Security](#security)
* [Background](#background)
* [Install](#install)
* [Usage](#usage)
  * [Node.js](#nodejs)
  * [Browser](#browser)
* [Develop](#develop)
* [Maintainers](#maintainers)
* [Contribute](#contribute)
* [MIT License](#mit-license)

## Security

...

## Background

...

## Install

```bash
$ npm install @interop-alliance/oidc-rp --save
```

## Usage

### Node.js

```
const RelyingParty = require('@interop-alliance/oidc-rp')
```

### Browser

When loaded into an HTML page via `<script src="./dist/oidc.rp.min.js"></script>`,
the library is exposed as a global var, `OIDC`.


## Develop

### Install

```bash
$ git clone https://github.com/interop-alliance/oidc-rp.git
$ cd oidc-rp
$ npm install
```

### Build

**Important:**
If you're using this library as a dependency and you plan to use Webpack, don't
forget to add the following lines to your `webpack.config.js` `externals:` 
section:

```js
  externals: {
    'node-fetch': 'fetch',
    '@sinonjs/text-encoding': 'TextEncoder',
    'isomorphic-webcrypto': 'crypto'
  }
```

To build a Webpack-generated bundle:

```bash
npm run dist
```

### Test

```bash
npm test
```

## Maintainers

* Dmitri Zagidulin

## Contribute

#### Style guide

* ES6
* Standard JavaScript
* jsdocs

### Code of conduct

* @interop/oidc-rp follows the [Contributor Covenant](http://contributor-covenant.org/version/1/3/0/) Code of Conduct.

## MIT License

[The MIT License](LICENSE.md)

Copyright (c) 2016 Anvil Research, Inc.
Copyright (c) 2017-2019 The Solid Project
npm package: @interop/oauth2-errors
Description: Errors and handler for Oauth 2.0 spec errors.
Author: R.A. Lucas
Latest version: 2.1.0

# OAuth 2.0 Javascript Errors Library _(@interop/oauth2-errors)_

[![Build status](https://img.shields.io/github/workflow/status/interop-alliance/oauth2-errors/Node.js%20CI)](https://github.com/interop-alliance/oauth2-errors/actions?query=workflow%3A%22Node.js+CI%22)
[![NPM Version](https://img.shields.io/npm/v/@interop/oauth2-errors.svg)](https://npm.im/@interop/oauth2-errors)

> Error classes and handler for Oauth 2.0 spec errors, patterned after the well-known [http-errors](https://npmjs.com/http-errors) lib.

## Getting Started
Install the module with: `npm install @interop/oauth2-errors`

```js
import {InvalidClient} from '@interop/oauth2-errors';
// or
const OauthErrors = require('@interop/oauth2-errors');
```

## Errors
Follows the [Oauth 2.0 Spec](https://tools.ietf.org/html/rfc6749) for errors, see [here](https://tools.ietf.org/html/rfc6749#section-5.2).
All errors have HTTP response status code of 400, except as noted.

- `InvalidClient` - invalid_client (HTTP 401)
- `InvalidGrant` - invalid_grant
- `InvalidRequest` - invalid_request
- `InvalidScope` - invalid_scope
- `UnauthorizedClient` - unauthorized_client
- `UnauthorizedGrantType` - unauthorized_grant_type

And Authorization Errors:

- `AccessDenied` - access_denied (HTTP 403)
- `UnsupportedResponseType` - unsupported_response_type
- `ServerError` - server_error (HTTP 500)
- `TemporarilyUnavailable` - temporarily_unavailable (HTTP 503)

Extension errors from [(RFC6750) OAuth 2.0 Bearer Token Usage](https://datatracker.ietf.org/doc/html/rfc6750)

- `InvalidToken` - invalid_token (HTTP 401)
- `InsufficientScope` - insufficient_scope (HTTP 403)

## Usage
Each error is a class, so can be instantiated by calling `new`.

```js
const invalidGrantError = new OauthErrors.InvalidGrant()
``` 

Each class can optionally take a `params` argument with 2 optional properties:
- `description` - error_description
- `uri` - error_uri

```js
const invalidRequestError = new OauthErrors.InvalidRequest({
  description: 'more description this bad request', 
  uri: 'https://mydomain.com/invalid_request'
})
```

## Methods

- `toString`
  - Creates a JSON string with the following properties:
    - `error`
    - `error_description` - [optional]
    - `error_uri` - [optional]

- `respond`
  - ExpressJS convenience response handler
  - Takes the ExpressJS `response` as the sole argument

## Examples

```js
const OauthErrors = require('@interop/oauth2-errors');
...

// Using the respond convenience fn
function authorize(req, res, next) {

  if (invalidClient()) {
    const invalidClientErr = new OauthErrors.InvalidClient()
    return invalidClientErr.respond(res)
  }
}
```

## Release History
* v2.0.0 - Expand `statusCode` of various errors beyond 400 - Sep 23, 2020
* v1.0.0 - Initial Release - April 13, 2018
* v1.0.1 - Update compilation - April 13, 2018
* v1.0.2 - Improve tests - April 13, 2018
* v1.0.3 - Add authorization errors - April 14, 2018

## License
Copyright (c) 2018 Richard Lucas. Licensed under the MIT license.
npm package: @interop/oidc-op
Description: OpenID Connect Provider
Latest version: 1.0.0

# OpenID Connect Provider for Nodejs _(@interop/oidc-op)_

[![Build status](https://img.shields.io/github/workflow/status/interop-alliance/oidc-op/Node.js%20CI)](https://github.com/interop-alliance/oidc-op/actions?query=workflow%3A%22Node.js+CI%22)
[![NPM Version](https://img.shields.io/npm/v/@interop/oidc-op.svg?style=flat-square)](https://npm.im/@interop/oidc-op)

> Embeddable OpenID Connect Provider for Nodejs

This library aims to implement a minimal OpenID Connect Provider for
Nodejs. It is not intended to be used directly by most developers, but rather
via a complete self-contained server such as 
[Life Server](https://github.com/interop-alliance/life-server). 
Some applications require an embedded identity provider, such as entertainment 
or IoT appliances. This package can be used directly in these cases.

The module should make available an OIDCProvider class which can be
instantiated multiple times to support multitenancy use cases. It should also
have a method that provides a mountable router or app for widely used frameworks
like Express.

## Table of Contents

* [Security](#security)
* [Background](#background)
* [Install](#install)
* [Develop](#develop)
* [Maintainers](#maintainers)
* [Contribute](#contribute)
* [MIT License](#mit-license)

## Security

...

## Background

### Internal Interface

OpenID Connect makes no provisions for how a user is initially authenticated
by the IdP. It's up to the implementer to determine whether to use passwords,
LDAP, SAML, OAuth, or some other means. The host system is responsible for
other dependencies of the OIDC authentication flows as well, such as
persistence, managing user attributes, multi-factor auth and so on.

In addition to implementing OpenID Connect Provider functions, this library
defines an interface between OpenID Connect and the host application.

The goal of the interface is to manage the flow of responsibility between the
OpenID Connect implementation and functions provided by the host application,
such as local user authentication, persistence, and domain specific event
handing.

## Install

```bash
$ npm install @interop/oidc-op --save
```

## Develop

### Test

```bash
npm test
```

## Maintainers

* Dmitri Zagidulin

## Contribute

### Style guide

* ES6
* Standard JavaScript
* jsdocs

### Code of conduct

* @interop/oidc-op follows the [Contributor Covenant](http://contributor-covenant.org/version/1/3/0/) Code of Conduct.

## MIT License

[The MIT License](LICENSE.md)

Copyright (c) 2016 [Anvil Research, Inc.](http://anvil.io)<br/>
Copyright (c) 2017-2019 Dmitri Zagidulin and The Solid Project
npm package: @interop/solid-permissions
Description: Web Access Control based permissions library
Author: Dmitri Zagidulin
Latest version: 0.10.0

# solid-permissions

[![](https://img.shields.io/badge/project-Solid-7C4DFF.svg?style=flat)](https://github.com/solid/solid)

Javascript library for managing [Web Access Control](https://github.com/solid/web-access-control-spec) 
permissions.

This is an alternative to the [`acl-check`](https://github.com/solid/acl-check)
library, and is mostly meant for the server-side (to be used in 
[`life-server`](https://github.com/interop-alliance/life-server)).
npm package: @interop/wallet-export-ts
Description: A Javascript/Typescript library for exporting Universal Wallet Backup Containers.
Author: Interop Alliance
Latest version: 0.1.6

# Universal Wallet Backup Container Export _(@interop/wallet-export-ts)_

[![Build status](https://img.shields.io/github/actions/workflow/status/interop-alliance/wallet-export-ts/main.yml?branch=main)](https://github.com/interop-alliance/wallet-export-ts/actions?query=workflow%3A%22Node.js+CI%22)
[![NPM Version](https://img.shields.io/npm/v/@interop/wallet-export-ts.svg)](https://npm.im/@interop/wallet-export-ts)

> A Javascript/Typescript library for exporting Universal Wallet Backup Containers.

## Table of Contents

- [Background](#background)
- [Security](#security)
- [Install](#install)
- [Usage](#usage)
- [Contribute](#contribute)
- [License](#license)

## Background

TBD

## Security

TBD

## Install

- Node.js 14+ is recommended.

### NPM

To install via NPM:

```
npm install @interop/wallet-export-ts
```

### Development

To install locally (for development):

```
git clone https://github.com/interop-alliance/wallet-export-ts.git
cd wallet-export-ts
npm install
```

## Usage

### Export an empty wallet.

```ts
export() // no wallet passed in, generates an empty Universal Wallet Backup TAR file
```

...

```
$ tar -vtf wallet-export-2024-01-01.tar

drwxr-xr-x 0/0               0 2024-06-11 15:58 app
drwxr-xr-x 0/0               0 2024-06-11 15:58 keys
-rw-r--r-- 0/0              21 2024-06-11 15:58 manifest.yaml

$ cat manifest.yaml
---
ubc-version: 0.1
meta:
  created: 2024-01-01
  createdBy:
    client:
      url: https://github.com/interop-alliance/wallet-export-ts
```

### Export an ActivityPub Actor Profile

```js
import * as fs from 'node:fs'
import { exportActorProfile } from '@interop/wallet-export-ts'

const filename = 'out/test-export-2024-01-01.tar'
const tarball = fs.createWriteStream(filename)

// Each of the arguments passed in is Optional
const packStream = exportActorProfile({
  actorProfile, outbox, followers, followingAccounts, lists, bookmarks, likes,
  blockedAccounts, blockedDomains, mutedAccounts
})

packStream.pipe(tarball)
```

then

```
cd out
tar -vtf test-export-2024-01-01.tar
 
drwxr-xr-x  0 0      0           0 Oct  9 20:19 activitypub
-rw-r--r--  0 0      0        3526 Oct  9 20:19 activitypub/actor.json
-rw-r--r--  0 0      0        4367 Oct  9 20:19 activitypub/outbox.json
-rw-r--r--  0 0      0         386 Oct  9 20:19 manifest.yaml
```

see https://codeberg.org/fediverse/fep/src/branch/main/fep/6fcd/fep-6fcd.md#activitypub-export-example 
for contents

## Contribute

PRs accepted.

If editing the Readme, please conform to the
[standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

[MIT License](LICENSE.md) © 2024 Interop Alliance and Dmitri Zagidulin.
npm package: @interopio/browser
Description: IOConnect Browser client application package
Author: Interop.IO
Latest version: 4.3.0

# @interopio/browser

## Overview

The [`@interopio/browser`](https://www.npmjs.com/package/@interopio/browser) library provides access to the io.Connect APIs for Browser Client apps that are part of **io.Connect Browser** projects.

## Installation

To install the library, execute the following command:

```cmd
npm install @interopio/browser
```

## Usage

The following example demonstrates basic initialization of the `@interopio/browser` library in a Browser Client app.

> ℹ️ *For more details on using the `@interopio/browser` library, see the **io.Connect Browser** [official documentation](https://docs.interop.io/browser/developers/browser-client/javascript/index.html).*

```javascript
import IOBrowser from "@interopio/browser";

// Use the initialized API object returned by the factory function to access the io.Connect APIs.
const io = await IOBrowser();

// Using the io.Connect APIs.
await io.interop.register("myApp", () => {
  console.log("Hello from myApp!");
});
```
npm package: @interopio/browser-worker
Description: IO Connect Browser service worker module
Author: Interop.IO
Latest version: 4.3.0

# @interopio/browser-worker

## Overview

The [`@interopio/browser-worker`](https://www.npmjs.com/package/@interopio/browser-worker) library is designed to be imported into the Service Worker file of your Browser Client app. The library enables your **io.Connect Browser** project to correctly process notification actions and their respective click logic.

## Installation

To install the library, execute the following command:

```cmd
npm install @interopio/browser-worker
```

## Usage

The following examples demonstrate basic initialization of the `@interopio/browser-worker` library in your Service Worker file.

> ℹ️ *For more details on using the `@interopio/browser-worker` library, see the **io.Connect Browser** [official documentation](https://docs.interop.io/browser/capabilities/notifications/setup/index.html#ioconnect_browser_worker).*

Importing the package in a dedicated Service Worker project the output of which will be a ready Service Worker script:

```javascript
const IOWorker = require("@interopio/browser-worker");

IOWorker();
```

Using the `importScripts()` function to add the io.Connect Browser Worker to the Service Worker scope. This is suitable for basic Service Worker scripts:

```javascript
importScripts("/web.worker.umd.js");

self.IOWorker();
```