open-index/open-npm huggingface dataset:
npm package: @oauth2-cli/canvas
Description: Acquire Instructure Canvas access tokens via OAuth 2.0 within CLI tools
Author: Seth Battis
Latest version: 0.6.3

# @oauth2-cli/canvas

Acquire Instructure Canvas access tokens via OAuth 2.0 within CLI tools

[Known Issues](https://github.com/groton-school/canvas-cli/issues?q=is%3Aissue%20state%3Aopen%20label%3A%40oauth2-cli%2Fcanvas)

## Install

```sh
npm i @oauth2-cli/canvas @qui-cli/core
```

## Usage

```ts
import { Canvas } from '@oauth2-cli/canvas';
import { Core } from '@qui-cli/core';

await Core.run();
console.log(await Canvas.v1.Users.Profile.get({ path: { user_id: 'self' } }));
```
npm package: @oauth2-cli/canvas-studio
Description: Acquire Instructure Canvas access tokens via OAuth 2.0 within CLI tools
Author: Seth Battis
Latest version: 0.1.2

# @oauth2-cli/canvas

Acquire Instructure Canvas access tokens via OAuth 2.0 within CLI tools

[Known Issues](https://github.com/groton-school/canvas-cli/issues?q=is%3Aissue%20state%3Aopen%20label%3A%40oauth2-cli%2Fcanvas)

## Install

```sh
npm i @oauth2-cli/canvas @qui-cli/core
```

## Usage

```ts
import { Canvas } from '@oauth2-cli/canvas';
import { Core } from '@qui-cli/core';

await Core.run();
console.log(await Canvas.v1.Users.Profile.get({ path: { user_id: 'self' } }));
```
npm package: @oauth2-cli/qui-cli
Description: @qui-cli/plugin wrapper for oauth2-cli
Author: Seth Battis
Latest version: 2.0.5

# @oauth2-cli/qui-cli

@qui-cli/plugin wrapper for oauth2-cli

[![npm version](https://badge.fury.io/js/@oauth2-cli%2Fqui-cli.svg)](https://badge.fury.io/js/@oauth2-cli%2Fqui-cli)
[![Module type: ESM](https://img.shields.io/badge/module%20type-esm-brightgreen)](https://nodejs.org/api/esm.html)

## Install

```sh
npm install @qui-cli/core @oauth2-cli/qui-cli
```

## Usage

`index.ts`

```ts
import { OAuth2 } from '@oauth2-cli/qui-cli';
import { Core } from '@qui-cli/core';

// configure a client name and a reason for authorizing access (recommended)
OAuth2.configure({
  name: 'Example',
  reason: 'the README example'
});

// initialize the `qui-cli` framework, loading credentials from the environment
await Core.run();

// request an endpoint, triggering interactive authorization if necessary
console.log(await OAuth2.requestJSON('https://example.com/api/endpoint'));
```

Without additional configuration, `OAuth2` will look for `ISSUER`, `CLIENT_ID`, `CLIENT_SECRET`, `REDIRECT_URI`, `AUTHORIZATION_ENDPOINT`, and `TOKEN_ENDPOINT` values in the environment and will attempt to configure the client using whichever subset of those values are present.

#### `name` and `reason`

It is strongly recommended that you provide a human-readable `name` for the client that will be used in user messages explaining _what_ is being accessed (e.g. the name of the API or service) and a human-readable `reason` for the user to provide this access (e.g. the name of your app or script). Messages are structured in the manner:

> ...to authorize access to `name` for `reason`, do this...

## Extending `OAuth2Plugin`

The default export of the package includes an instance of `OAuth2` which is self-registered within the [qui-cli](https://github.com/battis/qui-cli#readme) framework. This is convenient and normal, to facilitate rapidly agglomerating CLI apps out a a collection of plugins.

But if you are creating a custom extension of the plugin to pre-configure it to connect to a particular service, you may want to avoid that self-registration by importing from the `extendable` namespace:

```ts
import { OAuth2Plugin } from '@oauth2-cli/qui-cli/extendable';

export class MyService extends OAuth2Plugin {
  // ...
}
```

A detailed example of this strategy is found in the examples (see below): [api-plugin](https://github.com/battis/oauth2-cli/tree/main/examples/qui-cli/06%20api-plugin#readme).

## Examples

Refer to [`oauth2-cli`](https://www.npmjs.com/package/oauth2-cli) for more information about configuring that tool in more nuanced ways.

Refer to [`qui-cli`](https://github.com/battis/qui-cli#readme) for more information about using those tools to build command line apps.

Specific examples of usage of this plugin are available in the [examples](https://github.com/battis/oauth2-cli/tree/main/examples/qui-cli#readme) directory of the repo.
npm package: @oauth2-cli/qui-cli-plugin
Description: @battis/qui-cli.plugin wrapper for oauth2-cli
Author: Seth Battis
Latest version: 0.3.4
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @oauth2-cli/qui-cli-plugin

@battis/qui-cli.plugin wrapper for oauth2-cli

[![npm version](https://badge.fury.io/js/@oauth2-cli%2Fqui-cli-plugin.svg)](https://badge.fury.io/js/@oauth2-cli%2Fqui-cli-plugin)
[![Module type: ESM](https://img.shields.io/badge/module%20type-esm-brightgreen)](https://nodejs.org/api/esm.html)

## Install

```sh
npm install @qui-cli/core @oauth2-cli/qui-cli-plugin
```

## Usage

See [@qui-cli](https://github.com/battis/qui-cli#readme) for more information about quickly building CLI apps.

See [examples/qui-cli-plugin](../../examples/qui-cli-plugin) for a sample use of this plugin with an arbitrary API.

See [@oauth2-cli/canvas](https://github.com/groton-school/canvas-cli/tree/main/packages/oauth2-cli/canvas#readme) for an example of extending this plugin for a specific API.
npm package: @oauth2-cli/sky-api
Description: Acquire SKY API access tokens via OAuth 2.0 within CLI tools
Author: Seth Battis
Latest version: 0.5.3

# @oauth2-cli/sky-api

Acquire SKY API access tokens via OAuth 2.0 within CLI tools

## Install

```sh
npm i @oauth2-cli/sky-api @qui-cli/core
```

## Usage

Configure your SKY API app credentials somewhere relatively secure (e.g. your environment) and then...

```ts
import { SkyAPI } from '@oauth2-cli/sky-api';
import { Core } from '@qui-cli/core';

await Core.run();
console.log(
  await sky.fetchJSON('https://api.sky.blackbaud.com/school/v1/users/me')
);
```