open-index/open-npm huggingface dataset:
npm package: @graduatecollege/codex
Description: Domain-specific utilities for Graduate College applications including terms and programs
Author: Mikael Arvola
Latest version: 2.0.2

# @graduatecollege/codex

Domain-specific utilities for Graduate College applications including terms and programs.

## Installation

```bash
npm install @graduatecollege/codex
```

## API Reference

### Term Types and Interfaces

#### `Term`

```typescript
interface Term {
  year: number;                        // Four digit year
  month: number;                       // 1=Spring, 5=Summer, 8=Fall
  name: "Spring" | "Summer" | "Fall" | "Unknown";
  gradMonthName: "May" | "Aug" | "Dec" | "Unknown";
  code: string;                        // Format: "1YYYYX"
  academicYear: string;                // e.g., "2023-2024"
  termName: string;                    // e.g., "Spring 2024"
  shortTermName: string;               // e.g., "SP 24"
}
```

### Term Functions

- `parseTermCode(code: string, returnDefault?: boolean): Term`
- `generateTermCode(year: number, month: number): string`
- `createTerm(year: number, monthInput: number | Term["name"] | Term["gradMonthName"]): Term`
- `getCurrentTerm(): Term`
- `getCurrentTermCode(): string`
- `monthToTermName(month: number): Term["name"]`
- `monthToGradMonthName(month: number): Term["gradMonthName"]`

## Program Functions

- `splitProgramCode(programCode: string): ProgramCodeParts`
- `formatProgramCode(programCode: string, options?: { separator?: string }): string`
- `isValidProgramCode(programCode: string): boolean`
- `buildProgramCode(parts: ProgramCodeParts): string`
npm package: @graduatecollege/vue-auth
Description: Vue 3 authentication utilities with MSAL integration for Graduate College applications
Author: Mikael Arvola
Latest version: 2.0.2
Deprecated: Moved to @illinois-grad

# @graduatecollege/vue-auth

Vue 3 authentication utilities with MSAL (Microsoft Authentication Library) integration for Graduate College applications.

## Features

- **MSAL Integration** - Complete Entra/Microsoft authentication support
- **Reactive** - Built with Vue 3 Composition API
- **Router Guards** - Protect routes with authentication
- **User Utilities** - Helper functions for user display and avatars
- **Type Safe** - Written in TypeScript with full type definitions

## Installation

```bash
npm install @graduatecollege/vue-auth
```

### Peer Dependencies

This package requires the following peer dependencies:

```json
{
  "@azure/msal-browser": "^4.0.0",
  "pinia": "^3.0.0",
  "vue": "^3.0.0",
  "vue-router": "^4.0.0"
}
```
npm package: @gradywoodruff/audio-react-recorder
Description: Audio / Voice Recorder for React
Author: gradywoodruff
Latest version: 2.0.1

# audio-react-recorder

> Audio / Voice Recorder w/ Audio Wave for React using the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API)

[![NPM](https://img.shields.io/npm/v/audio-react-recorder.svg)](https://www.npmjs.com/package/audio-react-recorder) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save @gradywoodruff/audio-react-recorder
```

## DEMO

[AudioReactRecorder demo](https://doppelgunner.github.io/audio-react-recorder/)

## Usage

```jsx
import React, { Component } from 'react'

import AudioReactRecorder, { RecordState } from 'audio-react-recorder'

class App extends Component {
  constructor(props) {
    super(props)

    this.state = {
      recordState: null
    }
  }

  start = () => {
    this.setState({
      recordState: RecordState.START
    })
  }

  stop = () => {
    this.setState({
      recordState: RecordState.STOP
    })
  }

  //audioData contains blob and blobUrl
  onStop = (audioData) => {
    console.log('audioData', audioData)
  }

  render() {
    const { recordState } = this.state

    return (
      <div>
        <AudioReactRecorder state={recordState} onStop={this.onStop} />

        <button onClick={this.start}>Start</button>
        <button onClick={this.stop}>Stop</button>
      </div>
    )
  }
}
```

## Supported props

| Property name   | Type          | Default            | Description                                          |
| --------------- | ------------- | ------------------ | ---------------------------------------------------- |
| state           | string        | RecordState.NONE   | RecordState.(NONE,START,STOP,PAUSE)                  |
| type            | string        | audio/wav          | MIME type of the audio file                          |
| backgroundColor | string        | rgb(200, 200, 200) | Background color of the audio wave / canvas          |
| foregroundColor | string        | rgb(0, 0, 0)       | Foreground color of the audio wave / canvas          |
| canvasWidth     | number,string | 500                | Canvas width (you can use css to make it responsive) |
| canvasHeight    | number,string | 300                | canvas height                                        |

## License

MIT © [noobieprogrammer](https://github.com/noobieprogrammer)

## Buy me a coffee or just follow me

[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GCJGP8MTETUYU)

- [My Blog](https://noobieprogrammer.blogspot.com/)
- [Twitter](https://twitter.com/noobieprogrmmer)
- [Youtube](https://www.youtube.com/channel/UCpzMkMzGopmft5welUr8QZg)