open-index/open-npm huggingface dataset:
npm package: @openarchitex/gatsby-theme-academic-portfolio
Description: Portfolio theme tailored for profs, grad-students
Author: OpenArchitex
Latest version: 1.0.0-alpha

# Academic Portfolio

## Description

A basic portfolio for grad students, professors and academics. 

### Learning Resources

Please refer to [Gatsby themes](https://www.gatsbyjs.org/docs/themes/) for more information 
about themes and how to use them. Also the [shadowing section](https://www.gatsbyjs.org/docs/themes/shadowing/)
explains how you can override the sections of the theme and customize it. 

## How to install

You can install the theme simply by executing the following command within your Gatsby project.

```shell script
npm i @openarchitex/gatsby-theme-academic-portfolio
```

## When do I use this theme?

This can be used if you are a graduate student or a professor/lecturer
at a college or university. Includes some basic sections to highlight
teaching and research achievements.

## Examples of usage

#### Example Usage

```js
// gatsby-config.js
module.exports = {
  plugins: [
    {
      resolve: `@openarchitex/gatsby-theme-academic-portfolio`,
      options: {},
    },
  ],
};
```

You can use [theme shadowing](https://www.gatsbyjs.org/docs/themes/shadowing/) to override the sections in the theme. 
All the files relevant to the theme should go under `@opanarchitex/gatsby-theme-academic-portfolio`. 
For example `banner.mdx` and `profile-pic.jpg` is overridden in the [example site](https://github.com/OpenArchitex/gatsby-themes/tree/master/examples/academic-portfolio). 

## How to develop locally

From the root of the theme folder (i.e: `gatsby-theme-academic-portfolio`) you can run the theme in development mode using,

```shell
yarn gatsby develop
```

The structure of the repo is as follows: 

- `src/components`: This contains all components

- `src/templates`: This is the entry point to all the other components

- `src/sections`: The mdx documents that is used by the theme

- `src/images`: All images used by the theme

- `gatsby-plugin-theme-ui`: The styles related to [Theme UI](https://theme-ui.com/home)

## How to contribute

If you have any suggestions for improvement do not hesitate to  open an [issue](https://github.com/OpenArchitex/gatsby-themes/issues/new/choose) 
or [pull request](https://github.com/OpenArchitex/gatsby-themes/pulls). 

---

`We are grateful for JetBrains for generously providing Open Source licenses to help us with our development effort.`

[![JetBrains Logo](https://raw.githubusercontent.com/OpenArchitex/CommonAssets/master/images/jetbrains-logo.svg)](https://www.jetbrains.com/?from=CherishCakes)
npm package: @openarchitex/gatsby-theme-minimal-portfolio
Description: Minimal portfolio with About, Projects and Contact sections
Author: OpenArchitex
Latest version: 1.0.3

# Minimal Portfolio

## Description

A simple portfolio with `About Us`, `Projects` and `Contact Us` sections created using
[Theme UI](https://theme-ui.com) and [MDX](https://mdxjs.com/)

### Learning Resources

Please refer to [Gatsby themes](https://www.gatsbyjs.org/docs/themes/) for more information 
about themes and how to use them. Also the [shadowing section](https://www.gatsbyjs.org/docs/themes/shadowing/)
explains how you can override the sections of the theme and customize it. 

## How to install

You can install the theme simply by executing the following command within your Gatsby project.

```shell script
npm i @openarchitex/gatsby-theme-minimal-portfolio
```

## When do I use this theme?

If you'd want to set up a simple portfolio web page this is a great theme to use. 
It has three sections `About Us`, `Projects` and `Contact Us`. 

## Examples of usage

#### Example Usage

```js
// gatsby-config.js
module.exports = {
  plugins: [
    {
      resolve: `@openarchitex/gatsby-theme-minimal-portfolio`,
      options: {},
    },
  ],
};
```

You can use [theme shadowing](https://www.gatsbyjs.org/docs/themes/shadowing/) to override the sections in the theme. 
All the files relevant to the theme should go under `@opanarchitex/gatsby-theme-minimal-portfolio`. 
For example `banner.mdx` and `logo.svg` is overridden in the [example site](https://github.com/OpenArchitex/gatsby-themes/tree/master/examples/minimal-portfolio). 

## How to develop locally

From the root of the theme folder (i.e: `gatsby-theme-minimal-portfolio`) you can run the theme in development mode using,

```shell
yarn gatsby develop
```

The structure of the repo is as follows: 

- `src/components`: This contains all components

- `src/templates`: This is the entry point to all the other components

- `src/sections`: The mdx documents that is used by the theme

- `src/images`: All images used by the theme

- `gatsby-plugin-theme-ui`: The styles related to [Theme UI](https://theme-ui.com/home)

## How to contribute

If you have any suggestions for improvement do not hesitate to  open an [issue](https://github.com/OpenArchitex/gatsby-themes/issues/new/choose) 
or [pull request](https://github.com/OpenArchitex/gatsby-themes/pulls).
npm package: @openart/realtime-sdk
Description: An HTTP-based realtime client powered by Redis Streams.
Author: OpenArt
Latest version: 1.0.3

# Realtime

The easiest way to add realtime features to any Next.js project.

![Project Image](public/thumbnail.png)

## Features

- ⏰ Setup takes 60 seconds
- 🧨 Clean APIs & first-class TypeScript support
- ⚡ Extremely fast, zero dependencies, 1.9kB gzipped
- 💻 Deploy anywhere: Vercel, Netlify, etc.
- 💎 100% type-safe with zod 4 or zod mini
- ⏱️ Built-in message histories
- 🔌 Automatic connection management w/ delivery guarantee
- 🔋 Built-in middleware and authentication helpers
- 📶 100% HTTP-based: Redis streams & SSE

---

## Quickstart

Check out the examples in the repository to get started.
npm package: @openauth/core
Description: OAuth core library.
Author: Changwan Jun
Latest version: 0.4.0

# Open Auth - Core

<p align="left">
  <a href="https://npmcharts.com/compare/@openauth/core?minimal=true"><img alt="Downloads" src="https://img.shields.io/npm/dt/@openauth/core.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@openauth/core"><img alt="Version" src="https://img.shields.io/npm/v/@openauth/core.svg?style=flat-square" /></a>
  <img alt="License" src="https://img.shields.io/npm/l/@openauth/core.svg?style=flat-square" />
  <img alt="Typescript" src="https://img.shields.io/badge/language-Typescript-007acc.svg?style=flat-square" />
  <a href="https://david-dm.org/wan2land/openauth?path=packages/core"><img alt="dependencies Status" src="https://img.shields.io/david/wan2land/openauth.svg?style=flat-square&path=packages/core" /></a>
</p>

**@openauth/core** is an OAuth implementation on which other libraries are based.

## Installation

```bash
npm i @openauth/core
```
npm package: @openauth/facebook
Description: OAuth facebook library.
Author: Changwan Jun
Latest version: 0.4.0

# Open Auth - Facebook

<p align="left">
  <a href="https://npmcharts.com/compare/@openauth/facebook?minimal=true"><img alt="Downloads" src="https://img.shields.io/npm/dt/@openauth/facebook.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@openauth/facebook"><img alt="Version" src="https://img.shields.io/npm/v/@openauth/facebook.svg?style=flat-square" /></a>
  <img alt="License" src="https://img.shields.io/npm/l/@openauth/facebook.svg?style=flat-square" />
  <img alt="Typescript" src="https://img.shields.io/badge/language-Typescript-007acc.svg?style=flat-square" />
  <a href="https://david-dm.org/wan2land/openauth?path=packages/facebook"><img alt="dependencies Status" src="https://img.shields.io/david/wan2land/openauth.svg?style=flat-square&path=packages/facebook" /></a>
</p>

**@openauth/facebook** is an implementation of Facebook OAuth.

## Installation

```bash
npm i @openauth/facebook
```

## Usage

```typescript
import { FacebookOAuth } from '@openauth/facebook'

const oauth = new FacebookOAuth({
  clientId: 'client_id',
  clientSecret: 'client_secret',
  redirectUri: 'https://wani.kr/auth/facebook/callback',
  scope: [
    'public_profile',
  ],
})
```

OAuth login link.

```typescript
oauth.getAuthRequestUri() // print https://www.facebook.com/v7.0/dialog/oauth?response_type=code&client_id=client_id&redirect_uri=https%3A%2F%2Fwani.kr%2Fauth%2Ffacebook%2Fcallback&scope=public_profile
```

After logging in, you will be redirected to the `redirectUri` page with the `code` value.

```typescript
const code = 'AQAO3q3...'

const response = await oauth.getAccessTokenResponse(code)
console.log(response) // { accessToken: 'EAAD...', tokenType: 'bearer', expiresIn: 5165353 }
```

Save `accessToken` and use it when requesting API.

```typescript
const user = await oauth.getAuthUser(response.accessToken)
console.log(user) // { id: '3000000', name: 'Cris Jun' }
```
npm package: @openauth/github
Description: OAuth github library.
Author: Changwan Jun
Latest version: 0.4.0

# Open Auth - Github

<p align="left">
  <a href="https://npmcharts.com/compare/@openauth/github?minimal=true"><img alt="Downloads" src="https://img.shields.io/npm/dt/@openauth/github.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@openauth/github"><img alt="Version" src="https://img.shields.io/npm/v/@openauth/github.svg?style=flat-square" /></a>
  <img alt="License" src="https://img.shields.io/npm/l/@openauth/github.svg?style=flat-square" />
  <img alt="Typescript" src="https://img.shields.io/badge/language-Typescript-007acc.svg?style=flat-square" />
  <a href="https://david-dm.org/wan2land/openauth?path=packages/github"><img alt="dependencies Status" src="https://img.shields.io/david/wan2land/openauth.svg?style=flat-square&path=packages/github" /></a>
</p>

**@openauth/github** is an implementation of Github OAuth.

## Installation

```bash
npm i @openauth/github
```

## Usage

```typescript
import { GithubOAuth } from '@openauth/github'

const oauth = new GithubOAuth({
  clientId: 'client_id',
  clientSecret: 'client_secret',
  redirectUri: 'https://wani.kr/auth/github/callback',
  scope: [
    'read:user',
    'user:email',
    'user:follow',
  ],
})

// 1. After getting auth request uri, connect.
const redirectUri = await oauth.getAuthRequestUri()

// 2. It redirects with the code, and replaces the access token with this code value.
const { accessToken } = await oauth.getAccessTokenResponse(code)

// 3. Get user profile.
await oauth.getAuthUser(accessToken)

// 4. Other API
await oauth.getClient(accessToken).get('user')

```
npm package: @openauth/google
Description: OAuth google library.
Author: Changwan Jun
Latest version: 0.4.0

# Open Auth - Google

<p align="left">
  <a href="https://npmcharts.com/compare/@openauth/google?minimal=true"><img alt="Downloads" src="https://img.shields.io/npm/dt/@openauth/google.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@openauth/google"><img alt="Version" src="https://img.shields.io/npm/v/@openauth/google.svg?style=flat-square" /></a>
  <img alt="License" src="https://img.shields.io/npm/l/@openauth/google.svg?style=flat-square" />
  <img alt="Typescript" src="https://img.shields.io/badge/language-Typescript-007acc.svg?style=flat-square" />
  <a href="https://david-dm.org/wan2land/openauth?path=packages/google"><img alt="dependencies Status" src="https://img.shields.io/david/wan2land/openauth.svg?style=flat-square&path=packages/google" /></a>
</p>

**@openauth/google** is an implementation of Google OAuth.

## Installation

```bash
npm i @openauth/google
```

## Usage

```typescript
import { GoogleOAuth } from '@openauth/google'

const oauth = new GoogleOAuth({
  clientId: 'client_id',
  clientSecret: 'client_secret',
  redirectUri: 'https://wani.kr/auth/google/callback',
  scope: [
    'email',
    'profile',
    'openid',
  ],
})

// 1. After getting auth request uri, connect.
const redirectUri = await oauth.getAuthRequestUri()

// 2. It redirects with the code, and replaces the access token with this code value.
const { accessToken } = await oauth.getAccessTokenResponse(code)

// 3. Get user profile.
await oauth.getAuthUser(accessToken)

// 4. Other API
await oauth.getClient(accessToken).get('oauth2/v3/userinfo')
```
npm package: @openauth/instagram
Description: Instagram OAuth library
Latest version: 0.5.0-alpha.2

# Open Auth - Instagram

<p align="left">
  <a href="https://npmcharts.com/compare/@openauth/instagram?minimal=true"><img alt="Downloads" src="https://img.shields.io/npm/dt/@openauth/instagram.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@openauth/instagram"><img alt="Version" src="https://img.shields.io/npm/v/@openauth/instagram.svg?style=flat-square" /></a>
  <img alt="License" src="https://img.shields.io/npm/l/@openauth/instagram.svg?style=flat-square" />
  <img alt="Typescript" src="https://img.shields.io/badge/language-Typescript-007acc.svg?style=flat-square" />
  <a href="https://david-dm.org/wan2land/openauth?path=packages/instagram"><img alt="dependencies Status" src="https://img.shields.io/david/wan2land/openauth.svg?style=flat-square&path=packages/instagram" /></a>
</p>

**@openauth/instagram** is an implementation of Instagram OAuth.

See [Instagram Basic Display API Document](https://developers.facebook.com/docs/instagram-basic-display-api).

## Installation

```bash
npm i @openauth/instagram
```

## Usage

```typescript
import { InstagramOAuth } from '@openauth/instagram'

const oauth = new InstagramOAuth({
  clientId: 'client_id',
  clientSecret: 'client_secret',
  redirectUri: 'https://wani.kr/auth/instagram/callback',
  scope: [
    'user_profile',
    'user_media',
  ],
})

// 1. After getting auth request uri, connect.
const redirectUri = await oauth.getAuthRequestUri()

// 2. It redirects with the code, and replaces the access token with this code value.
const { accessToken } = await oauth.getAccessTokenResponse(code)

// 3. Get user profile.
await oauth.getAuthUser(accessToken)

// 4. Other API
await oauth.getClient(accessToken).get({
  path: 'me',
  query: {
    fields: [
      'id',
      'username',
      'account_type',
      'media_count',
    ].join(','),
  },
})
```
npm package: @openauth/kakao
Description: OAuth kakao library.
Author: Changwan Jun
Latest version: 0.4.0

# Open Auth - Kakao

<p align="left">
  <a href="https://npmcharts.com/compare/@openauth/kakao?minimal=true"><img alt="Downloads" src="https://img.shields.io/npm/dt/@openauth/kakao.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@openauth/kakao"><img alt="Version" src="https://img.shields.io/npm/v/@openauth/kakao.svg?style=flat-square" /></a>
  <img alt="License" src="https://img.shields.io/npm/l/@openauth/kakao.svg?style=flat-square" />
  <img alt="Typescript" src="https://img.shields.io/badge/language-Typescript-007acc.svg?style=flat-square" />
  <a href="https://david-dm.org/wan2land/openauth?path=packages/kakao"><img alt="dependencies Status" src="https://img.shields.io/david/wan2land/openauth.svg?style=flat-square&path=packages/kakao" /></a>
</p>

**@openauth/kakao** is an implementation of Kakao OAuth.

## Installation

```bash
npm i @openauth/kakao
```

## Usage

```typescript
import { KakaoOAuth } from '@openauth/kakao'

const oauth = new KakaoOAuth({
  clientId: 'client_id',
  clientSecret: 'client_secret',
  redirectUri: 'https://wani.kr/auth/kakao/callback',
})
```

OAuth login link.

```typescript
oauth.getAuthRequestUri() // print https://kauth.kakao.com/oauth/authorize?...
```

After logging in, you will be redirected to the `redirectUri` page with the `code` value.

```typescript
const code = 'AQAO3q3...'

const response = await oauth.getAccessTokenResponse(code)
console.log(response) // { accessToken: '...', refreshToken: '...', tokenType: 'bearer', expiresIn: 21599, refreshTokenExpiresIn: 5183999 }
```

Save `accessToken` and use it when requesting API.

```typescript
const user = await oauth.getAuthUser(response.accessToken)
console.log(user) // { id: '3000000', email: '...', nickname: '...' }
```
npm package: @openauth/naver
Description: OAuth naver library.
Author: Changwan Jun
Latest version: 0.4.0

# Open Auth - Naver

<p align="left">
  <a href="https://npmcharts.com/compare/@openauth/naver?minimal=true"><img alt="Downloads" src="https://img.shields.io/npm/dt/@openauth/naver.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@openauth/naver"><img alt="Version" src="https://img.shields.io/npm/v/@openauth/naver.svg?style=flat-square" /></a>
  <img alt="License" src="https://img.shields.io/npm/l/@openauth/naver.svg?style=flat-square" />
  <img alt="Typescript" src="https://img.shields.io/badge/language-Typescript-007acc.svg?style=flat-square" />
  <a href="https://david-dm.org/wan2land/openauth?path=packages/naver"><img alt="dependencies Status" src="https://img.shields.io/david/wan2land/openauth.svg?style=flat-square&path=packages/naver" /></a>
</p>

**@openauth/naver** is an implementation of Naver OAuth.

## Installation

```bash
npm i @openauth/naver
```

## Usage

```typescript
import { NaverOAuth } from '@openauth/naver'

const oauth = new NaverOAuth({
  clientId: 'client_id',
  clientSecret: 'client_secret',
  redirectUri: 'https://wani.kr/auth/naver/callback',
})
```

OAuth login link.

```typescript
oauth.getAuthRequestUri() // print https://nid.naver.com/oauth2.0/authorize?...
```

After logging in, you will be redirected to the `redirectUri` page with the `code` value.

```typescript
const code = 'AQAO3q3...'

const response = await oauth.getAccessTokenResponse(code)
console.log(response) // { accessToken: '...', refreshToken: '...', tokenType: 'bearer', expiresIn: 3600 }
```

Save `accessToken` and use it when requesting API.

```typescript
const user = await oauth.getAuthUser(response.accessToken)
console.log(user) // { id: '3000000', email: '...', name: '...' }
```
npm package: @openauth/youtube
Description: OAuth youtube library.
Author: Changwan Jun
Latest version: 0.3.1

# Open Auth - Youtube

<p align="left">
  <a href="https://npmcharts.com/compare/@openauth/youtube?minimal=true"><img alt="Downloads" src="https://img.shields.io/npm/dt/@openauth/youtube.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@openauth/youtube"><img alt="Version" src="https://img.shields.io/npm/v/@openauth/youtube.svg?style=flat-square" /></a>
  <img alt="License" src="https://img.shields.io/npm/l/@openauth/youtube.svg?style=flat-square" />
  <img alt="Typescript" src="https://img.shields.io/badge/language-Typescript-007acc.svg?style=flat-square" />
  <a href="https://david-dm.org/wan2land/openauth?path=packages/youtube"><img alt="dependencies Status" src="https://img.shields.io/david/wan2land/openauth.svg?style=flat-square&path=packages/youtube" /></a>
</p>

**@openauth/youtube** is an implementation of Youtube OAuth.

## Installation

```bash
npm i @openauth/youtube
```

## Usage

```typescript
import { YoutubeOAuth } from '@openauth/youtube'

const oauth = new YoutubeOAuth({
  clientId: 'client_id',
  clientSecret: 'client_secret',
  redirectUri: 'https://wani.kr/auth/youtube/callback',
})


// 1. After getting auth request uri, connect.
const redirectUri = await oauth.getAuthRequestUri()

// 2. It redirects with the code, and replaces the access token with this code value.
const { accessToken } = await oauth.getAccessTokenResponse(code)

// 3. Get user profile.
await oauth.getAuthUser(accessToken)

// 4. Other API
await oauth.getClient(accessToken).get({
  path: 'youtube/v3/channels',
  query: {
    part: 'snippet',
    mine: 'true',
  },
})
```