open-index/open-npm huggingface dataset:
npm package: @richex/git-last-commit
Description: Read details of the last commit including tags
Author: Ozan Seymen
Latest version: 2.1.1

# git-last-commit
Node.js module to read last git commit information including tags and branch - mostly to be used by continuous integration and build systems for build tagging purposes.

## Usage

```sh
$ npm i -D @richex/git-last-commit
```

```javascript
var git = require('git-last-commit');

git.getLastCommit(function(err, commit) {
  // read commit object properties
  console.log(commit);
});
```

Function returns an object like this:
```javascript
{
  "shortHash": "d2346fa",
  "hash": "d2346faac31de5e954ef5f6baf31babcd3e899f2",
  "subject": "initial commit",
  "sanitizedSubject": "initial-commit",
  "body": "this is the body of the commit message",
  "authoredOn": "1437988060",
  "committedOn": "1437988060",
  "author": {
    "name": "Ozan Seymen",
    "email": "oseymen@gmail.com"
  },
  "committer": {
    "name": "Ozan Seymen",
    "email": "oseymen@gmail.com"
  },
  "notes": "commit notes",
  "branch": "master",
  "tags": ['R1', 'R2']
}
```

You can add path destination if you want to get git last commit information on another repository:
```javascript
var git = require('git-last-commit');

git.getLastCommit(function(err, commit) {
  // read commit object properties
  console.log(commit);
}, {dst: 'some/other/path'});
```

## Notes

This repo forked from [git-last-commit](https://github.com/seymen/git-last-commit).
npm package: @richex/prettier-config
Description: A Prettier config for anyone.
Author: Richex
Latest version: 2.0.0

# @richex/prettier-config

A Prettier config for anyone.

## Usage

```sh
$ cd path/to/your-project/
$ npm i -D @richex/prettier-config
```

And update the prettier configuration file (e.g. `.prettierrc.js`) in your project:

```js
/** @type {import('prettier').Options} */
module.exports = {
  ...require("@richex/prettier-config"),
}
```

## `.editorconfig`

There is also an editorconfig configuration file that you can download to your project when you need it:

```sh
$ cd path/to/your-project/
$ wget https://raw.githubusercontent.com/richex-cn/prettier-config/main/.editorconfig
```
npm package: @richfield/fizzbuzz
Description: A JavaScript implementation of FizzBuzz.
Author: Qianer Richfield Fengtian
Latest version: 1.0.0

# fizzbuzz

A JavaScript implementation of FizzBuzz.

## Installation

```sh
$ npm install @richfield/fizzbuzz
```

## Usage

### In JavaScript code

```js
const fizzbuzz = require("@richfield/fizzbuzz")

fizzbuzz(1) // "1"
fizzbuzz(2) // "2"
fizzbuzz(3) // "Fizz"
fizzbuzz(5) // "Buzz"
fizzbuzz(15) // "FizzBuzz"
```

### From the command line

```sh
$ npx fizzbuzz 1
1
$ npx fizzbuzz 2
2
$ npx fizzbuzz 3
Fizz
$ npx fizzbuzz 5
Buzz
$ npx fizzbuzz 15
FizzBuzz
```
npm package: @richgoblinlabs/gadgetgpt-sdk
Description: GadgetGPT API SDK
Author: Rich Goblin Labs
Latest version: 0.1.4

# GadgetGPT SDK

Official TypeScript SDK for interacting with the GadgetGPT API..

## Installation

```bash
npm install @richgoblinlabs/gadgetgpt-sdk
```

## Usage

```typescript
import GadgetGPTClient from "@richgoblinlabs/gadgetgpt-sdk";

const client = new GadgetGPTClient({
  apiKey: "your_api_key",
  userId: "your_user_id",
  baseUrl: "https://your-deployment-url.vercel.app", // Optional
});

// Send a message and return the response
const responseMessage = await client.sendMessage({
  conversationId: "conversation_id",
  message: "Hello, world!",
});
```

## API Reference

### Configuration

The `GadgetGPTClient` constructor accepts the following configuration options:

- `apiKey` (required): Your GadgetGPT API key
- `userId` (required): Your GadgetGPT user ID
- `baseUrl` (optional): The base URL for API requests. Defaults to 'https://api.gadgetgpt.com'

### Methods

#### sendMessage

Sends a message to a conversation and returns the updated chat history.

```typescript
sendMessage(params: {
  conversationId: string;
  message: string;
}): Promise<ChatMessage[]>
```

## License

MIT
npm package: @richgoblinlabs/goblinagent-sdk
Description: GoblinAgent API SDK
Author: Rich Goblin Labs
Latest version: 0.1.8

# GoblinAgent SDK

Official TypeScript SDK for interacting with the GoblinAgent API..

## Installation

```bash
npm install @richgoblinlabs/goblinagent-sdk
```

## Usage

```typescript
import { GoblinAgentClient } from "@richgoblinlabs/goblinagent-sdk";

const client = new GoblinAgentClient({
  apiKey: "your_api_key",
  userId: "your_user_id",
  baseUrl: "https://your-deployment-url.vercel.app", // Optional
});

// Send a message and return the response
const responseMessage = await client.sendMessage({
  conversationId: "conversation_id",
  message: "Hello, world!",
});
```

## API Reference

### Configuration

The `GoblinAgentClient` constructor accepts the following configuration options:

- `apiKey` (required): Your GoblinAgent API key
- `userId` (required): Your GoblinAgent user ID
- `baseUrl` (optional): The base URL for API requests. Defaults to 'https://goblin-agent.vercel.app'

### Methods

#### sendPrompt

Sends a prompt to a conversation and returns the updated chat history.

```typescript
sendPrompt(params: {
  conversationId: string;
  prompt: string;
}): Promise<string>
```

## License

MIT
npm package: @richgoblinlabs/goblinllm-sdk
Description: GoblinLLM API SDK
Author: Rich Goblin Labs
Latest version: 0.1.5

# GoblinLLM SDK

Official TypeScript SDK for interacting with the GoblinLLM API.

## Installation

```bash
npm install @richgoblinlabs/goblinllm-sdk
```

## Usage

```typescript
import GoblinLLMClient from "@richgoblinlabs/goblinllm-sdk";

const client = new GoblinLLMClient({
  apiKey: "your_api_key",
  userId: "your_user_id",
  baseUrl: "https://your-deployment-url.vercel.app", // Optional
});

// Send a message and return the response
const responseMessage = await client.sendMessage({
  conversationId: "conversation_id",
  message: "Hello, world!",
});
```

## API Reference

### Configuration

The `GoblinLLMClient` constructor accepts the following configuration options:

- `apiKey` (required): Your GoblinLLM API key
- `userId` (required): Your GoblinLLM user ID
- `baseUrl` (optional): The base URL for API requests. Defaults to 'https://api.goblinllm.com'

### Methods

#### sendMessage

Sends a message to a conversation and returns the updated chat history.

```typescript
sendMessage(params: {
  conversationId: string;
  message: string;
}): Promise<ChatMessage[]>
```

## License

MIT
npm package: @richhaase/c2
Description: CLI tool for syncing and analyzing Concept2 rowing data
Author: Rich Haase
Latest version: 0.2.2

# c2 — Concept2 Logbook CLI

A CLI tool for syncing and analyzing rowing data from your [Concept2 Logbook](https://log.concept2.com). Built with [Bun](https://bun.sh).

## Install

Requires [Bun](https://bun.sh) v1.0+.

```bash
# Install globally
bun install -g @richhaase/c2

# Or install from source
git clone https://github.com/richhaase/c2.git
cd c2
bun install
bun link
```

## Quick Start

```bash
# Configure token and goals
bun src/index.ts setup

# Sync workouts
bun src/index.ts sync

# Check your progress
bun src/index.ts status
```

## Usage

### Setup

Configure your token and goal settings:

```bash
c2 setup
```

Get your personal access token from [log.concept2.com](https://log.concept2.com) under Settings → Developer. The setup wizard will prompt for your token, goal target, and date range.

### Sync Workouts

Pull new workouts from the Concept2 API:

```bash
c2 sync
```

### View Workouts

```bash
# Show last 10 workouts
c2 log

# Show last 25 workouts
c2 log -n 25
```

### Goal Progress

Track progress toward your distance goal:

```bash
c2 status
```

### Training Trends

View weekly trends for pace, volume, stroke rate, and heart rate:

```bash
# Last 8 weeks (default)
c2 trend

# Last 12 weeks
c2 trend -w 12
```

### HTML Report

Generate a self-contained HTML progress report:

```bash
# Generate report.html in current directory
c2 report

# Custom output path
c2 report -o ~/Desktop/rowing.html

# Generate and open in browser
c2 report --open

# Show more weeks of history
c2 report -w 16
```

### Export Data

Export workouts to CSV, JSON, or JSONL:

```bash
# CSV to stdout
c2 export

# JSON format
c2 export -f json

# Filter by date range
c2 export --from 2026-01-01 --to 2026-03-01

# Pipe to file
c2 export -f jsonl > workouts.jsonl
```

## Configuration

Config lives at `~/.config/c2/config.json`. Created automatically on `c2 setup`.

```json
{
  "api": {
    "base_url": "https://log.concept2.com",
    "token": "YOUR_TOKEN"
  },
  "sync": {
    "machine_type": "rower"
  },
  "goal": {
    "target_meters": 1000000,
    "start_date": "2026-01-01",
    "end_date": "2026-12-31"
  },
  "display": {
    "date_format": "%m/%d"
  }
}
```

## Development

```bash
# Install dependencies
bun install

# Type check
bun run check

# Run tests
bun test

# Run directly
bun src/index.ts <command>
```

## License

MIT — see [LICENSE](LICENSE)
npm package: @richi1717/easter-eggs
Description: cheat code easter eggs
Author: Richi Jeffery
Latest version: 1.1.0

# `Easter Eggs`

<p align="center">
    <a href="https://www.npmjs.com/package/@richi1717/easter-eggs">
      <img alt="npm" src="https://img.shields.io/npm/v/@richi1717/easter-eggs" />
    </a>
    <img alt="npm bundle size" src="https://img.shields.io/bundlephobia/min/@richi1717/easter-eggs" />
    <a href="https://github.com/richi1717/easter-eggs">
      <img src="https://img.shields.io/david/expressjs/express.svg?style=plastic" alt="Gitter">
    </a>
    <a href="https://github.com/richi1717/easter-eggs">
      <img src="https://img.shields.io/david/dev/expressjs/express.svg?style=plastic" alt="Gitter">
    </a>
</p>

### Installation

```javascript
$ yarn add @richi1717/easter-eggs
```

Then inside of your client entry point (E.G. `index.js`, `main.js`, `app.js`), add 

```
import '@richi1717/easter-eggs';
```

That's it!

Now whenever someone enters the code in your app it will (I believe) have an entertaining thing happen. 
Don't worry, I added cleanup so it will remove itself from your app once the animation is over.

### Available Codes

Currently the only available codes are the [konami code](https://contra.fandom.com/wiki/Konami_Code) and the 
[Sonic config code](https://www.gamespot.com/sonic-the-hedgehog/cheats/).

Konami: (`Start` would actually just be return/enter instead)  
<img src="https://vignette.wikia.nocookie.net/contra/images/4/49/Konami_Code_-_01.jpg/revision/latest/scale-to-width-down/300?cb=20171125105020" alt="Konami Code" />

When you enter the Konami code, velociryan will bounce in and out of the bottom of your app. 
A DELIGHT if I may say so myself. 

Sonic: `UP, c, DOWN, c, LEFT, c, RIGHT, c, a, Return`

When you enter the Sonic code, the original sonic screen will scroll up from the bottom.

### Enjoy

This was written to mainly enter into the world of open source and npm. 
I've always thought this would be a fun project to do even though it's "silly". 
People used to hold the 80s and 90s easter eggs in such high esteem and nostalgia 
and I wanted to give an easy way to honor that. In the future I'll add more codes
and a way to add your own images or gifs. My next addition is adding sonic since
that's the code I have remembered all these years from the original Sonic. I have
only tested these on Chrome, Firefox, and Safari. It obviously doesn't work on mobile
since you have to enter the codes.

### Demo

This is a taste of what you could see on your own site.

#### Konami Code
![](velociryan.gif)

#### Sonic
![](sonic.gif)
npm package: @richicoder/cdk-ecs-s3volume
Description: A helper library for copying from s3 at ECS startup.
Author: Richard Simpson
Latest version: 0.6.0

# `@richicoder/cdk-ecs-s3volume`

An ECS Task Extension that mounts a volume to ECS container(s) and either copies a local file or files from a bucket into that volume.

Useful as a replacement for `ConfigMap` in EKS since there is (currently) no native ECS equivalent.

## Usage

Install:

```bash
npm i @richicoder/cdk-ecs-s3volume
```

### Adding a file

```typescript
taskDefinition.addExtension(S3Volume.fromAsset('stacks/config-prod.yml', '/etc/config/config-prod.yaml'/*, options */));
```

This will result in `stacks/config-prod.yml` being available read-only in the container at `/etc/config/config-prod.yaml`.

_Important: `fromAsset` only supports a single file. To copy multiple files, use your own bucket with [s3-deployment](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3_deployment-readme.html) and the steps below._

### Adding a bucket's contents

```typescript
const bucket: Bucket
taskDefinition.addExtension(S3Volume.fromBucket(bucket/*, options */));
/* or */
taskDefinition.addExtension(new S3Volume('ConfigVolume', {
  bucket: 'my-config-bucket',
}));
```

Assuming a bucket with name `my-config-bucket` and objects `config.yml` and `config-prod.yml`, this will result in a `readOnly` volume at `/etc/s3/my-config-bucket/` containing the files `config.yml` and `config-prod.yml`.

Results in a `readOnly` volume at `/etc/config/` with file `config-prod.yml`.

#### Overriding container path

The path in the container defaults to `/etc/s3/${bucketName}/*` but can be overidden by passing `containerPath` to options.

```typescript
taskDefinition.addExtension(new S3Volume('ConfigVolume', {
  bucket: 'my-data-bucket',
  containerPath: `/data/my-data/`
}));
```

#### Copying multiple local files

Sometimes you might want to copy multiple files from local source into a container. To do this, you can combine bucket volumes with CDK's Bucket Deployment construct.

```typescript
const configBucket = new s3.Bucket(this, 'ConfigBucket');

new s3deploy.BucketDeployment(this, 'Configs', {
  sources: [s3deploy.Source.asset('./configs')],
  destinationBucket: configBucket,
});

taskDefinition.addExtension(S3Volume.fromBucket(configBucket));
```

or when using a shared bucket, you might want to use a specific key path:

```typescript
const configBucket: Bucket;

new s3deploy.BucketDeployment(this, 'Configs', {
  sources: [s3deploy.Source.asset('./configs')],
  destinationBucket: configBucket,
  destinationKeyPrefix: 'my/service',
});

taskDefinition.addExtension(S3Volume.fromBucket(configBucket, {
  // See https://docs.aws.amazon.com/cli/latest/reference/s3/index.html#use-of-exclude-and-include-filters for more details
  extraOptions: [`--exclude="*"`, `--include="my/service/*"`]
}));
```

## API

[API](./packages/ecs-s3volume/API.md)