open-index/open-npm huggingface dataset:
npm package: @matteoh2o1999/github-actions-jest-reporter
Description: A Github Actions reporter for Jest supporting log folding
Author: MatteoH2O1999
Latest version: 4.0.0

# Github Actions Jest reporter

[![Tests](https://github.com/MatteoH2O1999/github-actions-jest-reporter/actions/workflows/test.yml/badge.svg)](https://github.com/MatteoH2O1999/github-actions-jest-reporter/actions/workflows/test.yml)
![Downloads](https://img.shields.io/npm/dw/@matteoh2o1999/github-actions-jest-reporter)
![License](https://img.shields.io/npm/l/@matteoh2o1999/github-actions-jest-reporter)
[![Version](https://img.shields.io/npm/v/@matteoh2o1999/github-actions-jest-reporter)](https://www.npmjs.com/package/@matteoh2o1999/github-actions-jest-reporter)
![Node](https://img.shields.io/node/v/@matteoh2o1999/github-actions-jest-reporter)

A fast and easy way of navigating through the logs produced by Jest in the Github Actions UI.

![reporter demo](./demos/demo.gif)

## Motivation

Jest's default reporter omits all of the datails of the passed and outputs a continuous log of the failed ones.
While this is useful in a local development environment, it becomes cumbersome to read as a github action log.
The aim of this reporter is to log all the results (including passed tests), but folding them neatly as groups leveraging Github Actions builtin group function.
Logs of failures are grouped and folded by test file so they can be opened and read in a more organized way.

![reporter error log demo](./demos/error_log_demo.gif)

## Dependencies

The package depends on `jest` (obviously), `chalk` and the `@actions/core` package.

## Installation

The reporter can be installed directly from npm:

```bash
npm install --save-dev @matteoh2o1999/github-actions-jest-reporter
```

## Usage

There are two ways to use the reporter in your Jest testing.

### Create CI test script (recommended)

In your `package.json` just add a line in your script section:

```diff
{
    ...
    "scripts": {
        ...
        "test": "jest",
+       "test-ci": "jest --reporters='@matteoh2o1999/github-actions-jest-reporter'"
    }
}
```

Then in your `test.yml` use the new script instead of the old one:

```diff
steps:
  - name: Checkout code
  ...
  - name: Run tests
-   run: npm run test
+   run: npm run test-ci
```

### Add as reporter in `jest.config`

Add the reporter to the `reporters` array in your configuration file:

```diff
module.exports: {
    ...
-   reporters: [...],
+   reporters: [..., '@matteoh2o1999/github-actions-jest-reporter'],
}
```

> :warning: **Warning:** adding this reporter in your `jest.config` file will also impact local testing.

## Troubleshooting

### My logs are not colored

This is a known problem related to `chalk` not recognizing Github Actions terminal as capable of writing colors.

Until this is fixed on their end a workaround is to force color output with an environment variable:

```diff
steps:
  - name: Checkout code
  ...
  - name: Run tests
    run: npm run test-ci
+   env:
+     FORCE_COLOR: 1
```
npm package: @matteopolak/framecord
Description: A modular and extensible framework for Discord bot development
Author: Matthew Polak
Latest version: 1.6.1

# Framecord 🤖

![Build Status](https://github.com/matteopolak/framecord/actions/workflows/ci.yml/badge.svg)
![Docs Status](https://github.com/matteopolak/framecord/actions/workflows/docs.yml/badge.svg)
![NPM Package Status](https://github.com/matteopolak/framecord/actions/workflows/npm.yml/badge.svg)

[framecord](https://github.com/matteopolak/framecord) is a modular and extensible framework for creating Discord bots, created with [discord.js](https://github.com/discordjs/discord.js).

## Documentation

Check out the documentation at **[matteopolak.com/docs/framecord](https://matteopolak.com/docs/framecord)**.

## "Hello, world!"

The setup below will do the following:
1. Create a slash command called `/helloworld` that outputs the message `Hello {user}!`
2. Print `I just logged in as {username}!` to the console when the `ready` event is fired

`src/index.ts`
```typescript
import { join } from 'node:path';

import { IntentsBitField } from 'discord.js';
import { Client, Command } from '@matteopolak/framecord';

const client = new Client({
  intents: [
    IntentsBitField.Flags.Guilds
  ]
});

// Client#compileCommandDirectory takes an *absolute path* to the
// command directory, and will construct a tree of commands.
//
// Commands in nested folders will be grouped under the command by the
// same name as the folder (which *must* exist)
//
// By default, commands are added relative to the root command node,
// but you can provide the subcommand Collection of any command to start
// there instead.
await client.compileCommandDirectory(join(__dirname, 'commands'));

// Client#init must complete (i.e. await it) *before* the client is logged in.
await client.init();

client.login(process.env.TOKEN);
```

`src/commands/helloworld.ts`
```typescript
import {
  Command,
  CommandOptions,
  CommandResponse,
  CommandSource,
  EventHandler
} from '@matteopolak/framecord';

// *Must* be a default export in order to work properly when
// adding an entire command directory
export default class HelloWorld extends Command {
  // *Must* be an asynchronous function
  public async run(source: CommandSource): CommandResponse {
    return `Hello, ${source.user.username}!`;
  }

  // The @EventHandler decorator is used to define when
  // a method should be treated as an event listener
  //
  // It currently only has the `once` option, which (when true)
  // will stop listening to the event after it is fired once
  @EventHandler({ once: true })
  public async ready() {
    // `client` is a reference to the Client
    console.log(`I just logged in as ${this.client.user.username}!`);
  }
}
```
npm package: @matteopolak/minecraft-auth
Description: ```powershell # Install with yarn yarn add @matteopolak/minecraft-auth
Author: Matthew Polak
Latest version: 0.4.2

# Minecraft Auth

```powershell
# Install with yarn
yarn add @matteopolak/minecraft-auth

# Install with npm
npm install @matteopolak/minecraft-auth
```

## Usage

```typescript
import { MicrosoftAuth } from '@matteopolak/minecraft-auth';

const auth = new MicrosoftAuth('username', 'password');
const java = await auth.getJavaToken();

console.log(java.token); // eyJhbG...
```