open-index/open-npm huggingface dataset:
npm package: @meese-os/event-emitter
Description: A simple event emitter
Latest version: 1.0.4

# MeeseOS EventEmitter

This is a EventEmitter implementation for MeeseOS.

## API

```javascript
on("event-name", () => {}); // Fired every time event is emitted
once("event-name", () => {}); // Fires only once and is forgotten
off("event-name", () => {}); // Removes listener
off("event-name"); // Removes all listeners of this type
off(); // Removes all listeners

on("event-name", () => {}, { persist: true }); // Will not be removed unless forced
off("event-name", () => {}, true); // Force removal
```
npm package: @meese-os/google-api-provider
Description: Google API Service Provider for meeseOS
Latest version: 1.2.0

# meeseOS Google API Provider

This is the Google API Provider for meeseOS.

## Installation

```bash
npm install @meese-os/google-api-provider
```

In your client bootstrap file (`src/client/index.js`):

```javascript
import { GapiServiceProvider } from "@meese-os/google-api-provider";

meeseOS.register(GapiServiceProvider, {
  args: {
    enabled: true,
    src: "https://accounts.google.com/gsi/client",

    // You have to define these
    client: {
      api_key: "",
      client_id: "",
      scope: []
    }
  }
});
```

## Usage

For example in an application:

```javascript
const meeseOSgapi = core.make("meeseOS/gapi").create();
meeseOSgapi.on("signed-in", () => console.log("You were signed in"));
meeseOSgapi.on("signed-out", () => console.log("You were signed out"));

meeseOSgapi.login().then(gapi => {
  // Do whatever
});

proc.on("destroy", () => meeseOSgapi.destroy());
```
npm package: @meese-os/gui
Description: meeseOS GUI
Latest version: 1.0.6

# MeeseOS GUI Module

This is the main client GUI component module of MeeseOS.

Contains all components and adapters for the default UIs.

## Development

This package has two build targets: `UMD` and `ES`.

UMD is built with Webpack via `npm run build` (or `npm run watch`), and ES via `npm run build:esm` (or `npm run watch:esm`).

The MeeseOS distribution uses the UMD build to load _stylesheets_, and everything else uses ES modules to load components, service providers etc.

So effectively you need to run both in order for this to work while developing.

_The UMD javascript bundle is currently only used for environments like Codepen._

## TODO
- Add GUI testing
npm package: @meese-os/server
Description: meeseOS Server
Latest version: 1.2.0

# MeeseOS Server

This is the main node server module for MeeseOS.

Contains all services and interfaces required to run a node server for MeeseOS.

## VFS Chain

<!-- https://mermaid-js.github.io/mermaid/#/flowchart -->
```mermaid
flowchart TD
	subgraph Client
		direction LR
		A1["Application"] --> B1["VFS function call"] --> C1["VFS Client Adapter"] --> D1["HTTP Request"]
	end
	subgraph Server
		direction LR
		A2["HTTP endpoint matching VFS function name"] --> B2["VFS Server Adapter"] --> C2["Actual Filesystem"]
	end

	Client --> Server
```

The client always represents stuff with virtual paths, wihch the VFS server adapter is able to resolve to access a physical filesystem.

The APIs are not limited to the MeeseOS server. A VFS client adapter can theoretically connect to anything as long as the file objects have the correct shape.
npm package: @meese-os/sounds
Description: meeseOS Sounds
Latest version: 1.0.5

# MeeseOS Sound Theme

This is the Sound theme for MeeseOS

## Installation

```bash
npm install @aaronmeese.com/sounds
npm run package:discover
```

## TODO

Make this emit directly to the `sounds` directory, instead of the subdirectory `sounds/Sounds`