open-index/open-npm huggingface dataset:
npm package: @ravel/ravel-steam-auth-provider
Description: Steam Auth Provider for Ravel Rapid Application Development Framework
Author: Michael Laccetti
Latest version: 0.24.3

# ravel-steam-auth-provider

> Ravel Authorization Provider for Steam

## Example usage:

*app.js*
```javascript
const Ravel = require('ravel');
const RavelSteamOpenIdProvider = require('@ravel\ravel-steam-auh-provider');

const app = new Ravel();
new RavelSteamOpenIdProvider(app); // eslint-disable-line no-new

// ... other providers and parameters

app.start();

// ... the rest of your Ravel app
```

## Configuration

Requiring the `ravel-steam-openid-provider` module will register configuration parameters with Ravel which must be supplied via `.ravelrc.json` or `app.set()`:

*.ravelrc.json*
```json
{
  "steam openid web return url" : "http://localhost:8080/auth/steam/callback",
  "steam openid web realm": "http://localhost:8080/",
  "steam openid api key": "YOUR_STEAM_API_KEY"
}
```

Note that `steam openid web return url` should be the external url for your application.

You'll also need to implement an `@authconfig` module like this:

*modules/authconfig.js*
```js
'use strict';

const Ravel = require('ravel');
const inject = Ravel.inject;
const Module = Ravel.Module;
const authconfig = Module.authconfig;

@authconfig
@inject('service.user-service')
class AuthConfig extends Module {
  constructor (userProvider) {
    super();
    this.userProvider = userProvider;
  }

  serializeUser (profile) {
    // serialize profile to session using the id field
    this.log.debug(`Serializing ${JSON.stringify(profile)} to session.`);
    return Promise.resolve(profile);
  }

  deserializeUser (profile) {
    // retrieve profile from database using id from session
    this.log.debug(`Retrieving user from DB using ${profile.id}`);
    return this.userProvider.getProfile(profile.id);
  }

  async verify (providerName, ...args) {
    this.log.debug(`Steam verify invoked for ${providerName}.`);
    if (providerName === 'steam-auth-web') {
      const profile = args[1];

      this.log.debug(`Verifying user with profile ${JSON.stringify(profile)}`);

      let user = null;
      const userExists = await this.userProvider.profileExists(profile.id);
      if (userExists === false) {
        this.log.debug('User does not exist, creating.');
        user = await this.userProvider.createProfile(profile);
      } else {
        this.log.debug('User exists, retrieving from DB.');
        user = await this.userProvider.getProfileBySteamId(profile.id);
      }

      this.log.debug(`User from DB: ${JSON.stringify(user)}`);
      return Promise.resolve(user);
    }
    return Promise.reject(new Error(`Unsupported authentication provider (${providerName}) used.`));
  }
}

module.exports = AuthConfig;
```
npm package: @ravelo-systematic-solutions-inc/ravelo
Description: Ravelo Content Management System
Author: Jesus Rodriguez
Latest version: 0.0.3

# Ravelo - Content Management System

# How to run for development

1. Clone repo

    ```
    $ git clone git@github.com:ravelo-systematic-solutions/ravelo.git
    ```

1. Install dependencies

    ```
    $ cd ravelo
    $ npm install
    $ cd admin
    $ npm install
    ```

1. Link repo for global scope

    ```
    npm link
    ```

1. Run CMS

    ```
    ravelo run
    ```

1. To terminate server hit <kbd>Command</kbd> + <kbd>c</kbd>
npm package: @raven-js/hatch
Description: Zero-dependency app bootstrapping and tutorial CLI for modern JavaScript
Author: Anonyfox
Latest version: 0.4.48

# @raven-js/hatch 🦅

[![Website](https://img.shields.io/badge/Website-ravenjs.dev-blue.svg)](https://ravenjs.dev)
[![npm](https://img.shields.io/npm/v/@raven-js/hatch.svg)](https://www.npmjs.com/package/@raven-js/hatch)
[![Node.js](https://img.shields.io/badge/Node.js-22.5+-green.svg)](https://nodejs.org/)

<div align="center">
  <img src="./media/logo.webp" alt="Hatch Logo" width="200" height="200" />
</div>

> **Raven's nest builder** - Zero-dependency app bootstrapping and tutorial CLI for modern JavaScript

Hatch provides surgical precision for project creation and developer guidance. Built with zero dependencies and modern JavaScript, it offers the sharp tools needed to bootstrap new applications and guide developers through the RavenJS ecosystem with the intelligence and efficiency ravens are known for.

## Installation

```bash
npm install -g @raven-js/hatch
```

## Usage

```bash
# Create new application
hatch create my-app

# Start interactive tutorial
hatch tutorial

# Get recommendations for next steps
hatch guide
```

```javascript
import { create, tutorial } from "@raven-js/hatch";

// Programmatic app creation
await create({
  name: "my-app",
  template: "minimal",
  features: ["wings", "beak"],
});

// Interactive tutorial system
await tutorial.start("getting-started");
```

## Philosophy

Hatch embodies the Raven philosophy of surgical precision in project bootstrapping:

- **Zero dependencies** - No supply chain vulnerabilities
- **Modern JavaScript** - ESNext features, no transpilation
- **Platform-native** - Built on Node.js built-ins and native APIs
- **Intelligent guidance** - Smart recommendations for RavenJS ecosystem

---

<div align="center">

## 🦅 Support RavenJS Development

If you find RavenJS helpful, consider supporting its development:

[![GitHub Sponsors](https://img.shields.io/badge/Sponsor%20on%20GitHub-%23EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/Anonyfox)

Your sponsorship helps keep RavenJS **zero-dependency**, **modern**, and **developer-friendly**.

---

**Built with ❤️ by [Anonyfox](https://anonyfox.com)**

</div>
npm package: @raven-js/talons
Description: Zero-dependency data interaction library for modern JavaScript - databases, APIs, and data sources
Author: Anonyfox
Latest version: 0.4.48

# @raven-js/talons 🦅

[![Website](https://img.shields.io/badge/Website-ravenjs.dev-blue.svg)](https://ravenjs.dev)
[![npm](https://img.shields.io/npm/v/@raven-js/talons.svg)](https://www.npmjs.com/package/@raven-js/talons)
[![Node.js](https://img.shields.io/badge/Node.js-22.5+-green.svg)](https://nodejs.org/)

<div align="center">
  <img src="./media/logo.webp" alt="Talons Logo" width="200" height="200" />
</div>

> **Raven's grip on data** - Zero-dependency data interaction library for modern JavaScript

Talons provides surgical precision for data interaction patterns - databases, APIs, and data sources. Built with zero dependencies and modern JavaScript, it offers the sharp tools needed to handle data with the intelligence and efficiency ravens are known for.

## Installation

```bash
npm install @raven-js/talons
```

## Usage

```javascript
import { hello } from "@raven-js/talons";

console.log(hello()); // "Hello, world!"
```

## Philosophy

Talons embodies the Raven philosophy of surgical precision in data interaction:

- **Zero dependencies** - No supply chain vulnerabilities
- **Modern JavaScript** - ESNext features, no transpilation
- **Platform-native** - Built on Node.js and browser APIs
- **Surgical focus** - Each function does one thing exceptionally well

---

<div align="center">

## 🦅 Support RavenJS Development

If you find RavenJS helpful, consider supporting its development:

[![GitHub Sponsors](https://img.shields.io/badge/Sponsor%20on%20GitHub-%23EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/Anonyfox)

Your sponsorship helps keep RavenJS **zero-dependency**, **modern**, and **developer-friendly**.

---

**Built with ❤️ by [Anonyfox](https://anonyfox.com)**

</div>
npm package: @raven-studio/blu
Description: Random project.
Author: ArtieFuzzz
Latest version: 1.5.1
Deprecated: This is being continued at https://www.npmjs.com/package/ati.js

# Blü

Sort of a random project I started
![NPM](https://img.shields.io/npm/l/@raven-studio/blu)
![Visual Studio Code](https://badges.aleen42.com/src/visual_studio_code.svg)
![ESLint](https://badges.aleen42.com/src/eslint.svg)
![JavaScript](https://badges.aleen42.com/src/javascript.svg)
![GitLab](https://badges.aleen42.com/src/gitlab.svg)

## Usage
Discord Snowflake
```javascript
const blu = require('@raven-studio/blu'); // Require the package

console.log(blu.discordSnowflake()); // Will return a sort of discord snowflake
```

Twitter Snowflake
```javascript
const blu = require('@raven-studio/blu'); // Require the package

console.log(blu.twitterSnowflake()); // Will return a sort of twitter snowflake
```

Custom Snowflake
```javascript
const blu = require('@raven-studio/blu'); // Require the package

console.log(blu.snowflake('epoch here')) // Epoch example: 2000-01-01T00:00:00.000Z
```

# Deconstruction

Discord Snowflake
```javascript
const blu = require('@raven-studio/blu'); // Require the package

console.log(blu.discordSnowflake.deconstruct("Your snowflake here")); // Will deconstruct a discord type snowflake.
```
or

```javascript
const blu = require('@raven-studio/blu'); // Require the package

const snowflake = blu.discordSnowflake();

console.log(blu.discordSnowflake.deconstruct(snowflake)); // Will deconstruct a discord snowflake.
```

Twitter Snowflake
```javascript
const blu = require('@raven-studio/blu'); // Require the package

const snowflake = blu.twitterSnowflake();

console.log(blu.twitterSnowflake.deconstruct(snowflake));
```

# Docs

[Docs Here](https://raven-studio.gitlab.io/random/blu/docs/)

For any issues or questions feel free to open up an issue on the [GitLab Repo](https://gitlab.com/raven-studio/random/blu)


# Notice

Some functions may not be documented. Reasons:

- It could be that I'm unsure about something
- It still needs work
- I don't really want to document it
npm package: @raven-studio/logs
Description: Light weight logger
Author: ArtieFuzzz
Latest version: 1.1.4
Deprecated: Use @raven-studio/acrio instead

# Raven logs

[Original Here](https://www.npmjs.com/package/txt-logs) Licensed under the MIT License

# Usage
require the package first:
```javascript
const { createLog } = require('@raven-studio/logs')
```
Now we can create logs:
```javascript
createLog('name', 'content')
```
# Example

```javascript
createLog('blah', 'blah blah logs') //  logs to blah.logs
```
npm package: @raven99p/path-list-to-tree
Description: Converts a list of file paths into a tree structure.
Author: Patt-tom McDonnell
Latest version: 1.1.3

# path-list-to-tree

Converts a list of file paths into a tree structure.

This is a forked npm package from here https://www.npmjs.com/package/path-list-to-tree.
I modified it, so the output tree has "label" instead of "name". 

## Example

```javascript
import pathListToTree from 'path-list-to-tree';

const filePaths = [
  '.gitignore',
  'README.md',
  'package.json',
  'src/index.ts',
  'tsconfig.json',
  'yarn-error.log',
  'yarn.lock'
];

console.log(pathListToTree(filePaths))
```
```json
[
   {
      "label":".gitignore",
      "children":[

      ]
   },
   {
      "label":"README.md",
      "children":[

      ]
   },
   {
      "label":"package.json",
      "children":[

      ]
   },
   {
      "label":"src",
      "children":[
         {
            "label":"index.ts",
            "children":[

            ]
         }
      ]
   },
   {
      "label":"tsconfig.json",
      "children":[

      ]
   },
   {
      "label":"yarn-error.log",
      "children":[

      ]
   },
   {
      "label":"yarn.lock",
      "children":[

      ]
   }
```