open-index/open-npm huggingface dataset:
npm package: @miscord/facebook
Description: facebook-chat-api fork, customized for Miscord
Author: Avery, David, Maude, Benjamin, Bjornskjald
Latest version: 1.9.0

# facebook-chat-api for Miscord

**Full readme: [Schmavery/facebook-chat-api](https://github.com/Schmavery/facebook-chat-api)**

### Changes in this version:
- Changed callbacks into promises
- Removed pages support
- Added plans support
npm package: @mise-en-place/tools.conditional-respond-to
Description: Conditional Respond To Tool
Author: Kind
Latest version: 3.0.0

# tools.conditional.respond.to

# Development notes

- [Trello development board](https://trello.com/b/TbbnXZIc/mise-en-place-development)
- [Github organisation](https://github.com/mise-en-place)
npm package: @mise-en-place/tools.map-deep-get-set
Description: Deep get/set a Sass map in one operation
Author: Kind
Latest version: 3.0.0

# tools.map.deep.get.set

# Development notes

- [Trello development board](https://trello.com/b/TbbnXZIc/mise-en-place-development)
- [Github organisation](https://github.com/mise-en-place)
npm package: @mise-en-place/tools.map-get-if-exists
Description: Map Get If Exists Tool
Author: Kind
Latest version: 3.0.0

# tools.map.get.if.exists

# Development notes

- [Trello development board](https://trello.com/b/TbbnXZIc/mise-en-place-development)
- [Github organisation](https://github.com/mise-en-place)
npm package: @mise/core
Description: a small, no-frills library to build complex client-side applications and easily manage state
Author: dan b.
Latest version: 3.5.0

# Mise (_en place_)

[![Build Status](https://travis-ci.org/blueseph/mise.svg?branch=develop)](https://travis-ci.org/blueseph/mise) [![codebeat badge](https://codebeat.co/badges/e3012ee9-f823-423a-a40b-ca759768952c)](https://codebeat.co/projects/github-com-blueseph-mise-develop) [![codecov](https://codecov.io/gh/blueseph/mise/branch/develop/graph/badge.svg)](https://codecov.io/gh/blueseph/mise)



[Mise](https://en.wikipedia.org/wiki/Mise_en_place) is a fully-featured front-end application library with built-in state management. Mise uses component-based architecture to promote [constructing elegant hierarchies for maximum code reuse and extensibility](http://siliconvalleyism.com/silicon-valley-quote.php?id=206). By explicitly manipulating your state _only_ via actions, code paths are clearly defined and change in predictable ways. Applications lend themselves to being highly and rigorously testable.

Mise has zero dependencies and strives for performance.

* VDOM managed updates for fast, efficient rendering.
* Easy state management.
* Highly testable.
* Asynchronous rendering.
* Small file size (13kb~ minified, 4kb~ gzipped).

#### Installation
```
npm i @mise/core
```

In your actual project

```javascript
import { dom, component } from '@mise/core';
```

Or, if you prefer to use umd

```javascript
<script async src="https://unpkg.com/@mise/core"></script>
<script type="javascript">
  const { dom, component } = mise;
</script>
```

Mise doesn't require compilation to run, but you won't be able to use JSX until you do.

##### Example
```javascript
/** @jsx dom */

import { dom, component } from '@mise/core';

component({
  template: state => actions => (
    <div>
      <span>{state.counter}</span>
      <button onclick={actions.increment}>+</button>
      <button onclick={actions.decrement}>-</button>
    </div>
  ),
  state: {
    counter: 0,
  },
  actions: {
    increment: state => ({ counter: state.counter + 1 }),
    decrement: state => ({ counter: state.counter - 1 }),
  },
  root: document.querySelector('#app'),
});
```

### FAQs

**Do I have to use `/** @jsx dom */` on every file?**

You can add the the `transform-react-jsx` plugin to your .babelrc.

```javascript
{
  "plugins": {
    [
      "transform-react-jsx", {
        "pragma": "dom",
      }
    ]
  }
}
```

You'll still have to `import dom` just like you would `import React`, though.
npm package: @mise/router
Description: router templates for for @mise/core
Author: dan b.
Latest version: 0.0.11

# Mise Routing

Declarative routing for [Mise](https://github.com/blueseph/mise)

### Installation

> npm i --save @mise/router

In your actual project

```js
import { dom, component } from '@mise/core';
import { Route, Link } from '@mise/router';
```

You can also use the UMD version

```js
<script async src="https://unpkg.com/@mise/core"></script>
<script async src="https://unpkg.com/@mise/router"></script>
<script type="javascript">
  const { dom, component } = mise;
  const { Route, Link } = miseRouter;
</script>
```

Neither Mise nor the router require compilation to run, but you won't be able to use JSX until you do.

### Examples

```js
import { dom, component } from '@mise/core';
import { Route, Switch } from '@mise/router';

import { template as HomeTemplate } from './components/home/home.template';
import { template as LoginTemplate } from './component/login/login.template';
import { template as RegisterTemplate } from './component/register/register.template';

import { template as TracksTemplate } from './components/tracks/tracks.template';
import { template as TrackTemplate } from './component/track/track.template';

import { state } from './state.js';
import { actions } from './actions.js';

component({
    template: state => actions => (
        <Switch>
            <Route path="/" template={HomeTemplate} />
            <Route path="/login" template={LoginTemplate} />
            <Route path="/register" template={RegisterTemplate} />
            
            <Route path="/tracks" template={TracksTemplate} />
            <Route path="/tracks/:id" template={TrackTemplate} />
        </Switch>
    ),
    state,
    actions,
    root: document.querySelector('#app');
})
```

More details can be found in the docs.
npm package: @mise/test
Description: testing suite for mise
Author: dan b
Latest version: 1.0.3

# Commis (@mise/test)

[Commis](https://en.wiktionary.org/wiki/commis) is a testing suite for Mise that makes it easy to test Mise components. Commis properly sets up your environment to handle components and simplify renders.

We strongly suggest using Commis with [Jest](https://www.npmjs.com/package/jest).

#### Installation
```
npm i --save-dev @mise/test
```

In your actual project

```javascript
import { commis } from '@mise/test';
```

##### Example
```javascript
import { dom, component } from '@mise/core';
import { commis } from '@mise/test';

import { template, state, actions, middleware } from './component/index';

const { render } = commis();

describe('component test', () => {
  beforeEach(async () => {
    component({
      template,
      state,
      actions,
      middleware, 
    });

    await render();
  });

  it('should render a div', () => {
    expect(document.querySelectorAll('div').length).toBe(1);
  });

  it('should render after an action', async () => {
    document.querySelector('button').click();

    /* optionally, render takes in a millisecond parameter to wait for a render to occur */
    await render(100);
    expect(document.querySelector('span').textContent).toEqual('success');
  });
})
```
npm package: @misenkashari/excalidraw
Description: Excalidraw as a React component
Latest version: 1.11.13

# Excalidraw

**Excalidraw** is exported as a component to be directly embedded in your project.

## Installation

Use `npm` or `yarn` to install the package.

```bash
npm install react react-dom @excalidraw/excalidraw
# or
yarn add react react-dom @excalidraw/excalidraw
```

> **Note**: If you don't want to wait for the next stable release and try out the unreleased changes, use `@excalidraw/excalidraw@next`.

#### Self-hosting fonts

By default, Excalidraw will try to download all the used fonts from the [CDN](https://esm.run/@excalidraw/excalidraw/dist/prod).

For self-hosting purposes, you'll have to copy the content of the folder `node_modules/@excalidraw/excalidraw/dist/prod/fonts` to the path where your assets should be served from (i.e. `public/` directory in your project). In that case, you should also set `window.EXCALIDRAW_ASSET_PATH` to the very same path, i.e. `/` in case it's in the root:

```js
<script>window.EXCALIDRAW_ASSET_PATH = "/";</script>
```

### Dimensions of Excalidraw

Excalidraw takes _100%_ of `width` and `height` of the containing block so make sure the container in which you render Excalidraw has non zero dimensions.

## Demo

Go to [CodeSandbox](https://codesandbox.io/p/sandbox/github/excalidraw/excalidraw/tree/master/examples/with-script-in-browser) example.

## Integration

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/integration).

## API

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api).

## Contributing

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/contributing).
npm package: @misenkashari/excalidraw-common
Description: Excalidraw common functions, constants, etc.
Latest version: 1.11.13

# @excalidraw/common

## Install

```bash
npm install @excalidraw/common
```

If you prefer Yarn over npm, use this command to install the Excalidraw utils package:

```bash
yarn add @excalidraw/common
```

With PNPM, similarly install the package with this command:

```bash
pnpm add @excalidraw/common
```
npm package: @misenkashari/excalidraw-element
Description: Excalidraw elements-related logic
Latest version: 1.11.13

# @excalidraw/element

## Install

```bash
npm install @excalidraw/element
```

If you prefer Yarn over npm, use this command to install the Excalidraw utils package:

```bash
yarn add @excalidraw/element
```

With PNPM, similarly install the package with this command:

```bash
pnpm add @excalidraw/element
```
npm package: @misenkashari/excalidraw-math
Description: Excalidraw math functions
Latest version: 1.11.13

# @excalidraw/math

## Install

```bash
npm install @excalidraw/math
```

If you prefer Yarn over npm, use this command to install the Excalidraw utils package:

```bash
yarn add @excalidraw/math
```

With PNPM, similarly install the package with this command:

```bash
pnpm add @excalidraw/math
```
npm package: @misenkashari/excalidraw-utils
Description: Excalidraw utility functions
Latest version: 1.11.13

# @excalidraw/utils

## Install

```bash
npm install @excalidraw/utils
```

If you prefer Yarn over npm, use this command to install the Excalidraw utils package:

```bash
yarn add @excalidraw/utils
```

## API

### `serializeAsJSON`

See [`serializeAsJSON`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#serializeAsJSON) for API and description.

### `exportToBlob` (async)

Export an Excalidraw diagram to a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob).

### `exportToSvg`

Export an Excalidraw diagram to a [SVGElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGElement).

## Usage

Excalidraw utils is published as a UMD (Universal Module Definition). If you are using a module bundler (for instance, Webpack), you can import it as an ES6 module:

```js
import { exportToSvg, exportToBlob } from "@excalidraw/utils";
```

To use it in a browser directly:

```html
<script src="https://unpkg.com/@excalidraw/utils@0.1.0/dist/excalidraw-utils.min.js"></script>
<script>
  // ExcalidrawUtils is a global variable defined by excalidraw.min.js
  const { exportToSvg, exportToBlob } = ExcalidrawUtils;
</script>
```

Here's the `exportToBlob` and `exportToSvg` functions in action:

```js
const excalidrawDiagram = {
  type: "excalidraw",
  version: 2,
  source: "https://excalidraw.com",
  elements: [
    {
      id: "vWrqOAfkind2qcm7LDAGZ",
      type: "ellipse",
      x: 414,
      y: 237,
      width: 214,
      height: 214,
      angle: 0,
      strokeColor: "#000000",
      backgroundColor: "#15aabf",
      fillStyle: "hachure",
      strokeWidth: 1,
      strokeStyle: "solid",
      roughness: 1,
      opacity: 100,
      groupIds: [],
      roundness: null,
      seed: 1041657908,
      version: 120,
      versionNonce: 1188004276,
      isDeleted: false,
      boundElementIds: null,
    },
  ],
  appState: {
    viewBackgroundColor: "#ffffff",
    gridSize: null,
  },
};

// Export the Excalidraw diagram as SVG string
const svg = exportToSvg(excalidrawDiagram);
console.log(svg.outerHTML);

// Export the Excalidraw diagram as PNG Blob URL
(async () => {
  const blob = await exportToBlob({
    ...excalidrawDiagram,
    mimeType: "image/png",
  });

  const urlCreator = window.URL || window.webkitURL;
  console.log(urlCreator.createObjectURL(blob));
})();
```
npm package: @miserylee/react-scripts
Description: Configuration and scripts for Create React App.
Latest version: 0.2.0

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebookincubator/create-react-app).<br>
Please refer to its documentation:

* [Getting Started](https://github.com/facebookincubator/create-react-app/blob/master/README.md#getting-started) – How to create a new app.
* [User Guide](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md) – How to develop apps bootstrapped with Create React App.
npm package: @misfitpixel/learnstorybook-design-system-template
Description: testing
Author: misfitpixel
Latest version: 0.1.0

# Storybook design system tutorial

The Storybook design system tutorial is a subset of the full [Storybook design system](https://github.com/storybookjs/design-system/), created as a learning resource for those interested in learning how to write and publish a design system using best in practice techniques.

Learn more in [Storybook tutorials](https://storybook.js.org/tutorials/).
npm package: @misfitpixel/pel
Description: A design system based on TailwindUI's Catalyst component library
Latest version: 0.1.1

# Pel Design System

Pel: _(noun)  the smallest discrete component of an image or picture on a CRT screen (usually a colored dot)_

A design system based on [TailwindUI's](https://tailwindui.com/templates/catalyst) Catalyst component library.
npm package: @mish-tv/cache
Description: A simple cache library with support for exclusion control.
Author: Koji Murata
Latest version: 1.0.2

<h1 align="center">@mish-tv/cache</h1>

<div align="center">
<a href="https://www.npmjs.com/package/@mish-tv/cache"><img src="https://img.shields.io/npm/v/@mish-tv/cache.svg" alt="npm"></a>
<a href="https://github.com/mish-tv/cache/actions/workflows/build-and-test.yml"><img src="https://github.com/mish-tv/cache/actions/workflows/build-and-test.yml/badge.svg" alt="Build and test"></a>
<a href="https://codecov.io/gh/mish-tv/cache"><img src="https://img.shields.io/codecov/c/github/mish-tv/cache.svg" alt="coverage"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/github/license/mish-tv/cache.svg?style=flat" alt="license"></a>
</div>

<h4 align="center">`@mish-tv/cache` is a simple cache library that holds a single value in a single instance.</h4>


## Installation
```
npm install --save @mish-tv/cache
```

## Simple Usage
```typescript
import { Cache } from "@mish-tv/cache";

// By default, it caches for 1hour + rand()*6min.
const entityCache = new Cache<Entity>();

// Only at the beginning and when it expires,
// it calls an anonymous function passed as an argument and
// caches the returned value.
const getEntity = () =>
  entityCache.get(async () => {
    const entity: Entity = await fetch();

    return entity;
  });

(async () => {
  const entity = await getEntity();
})();
```

## Other Usage
```typescript
// You can configure ttl, jitter and initial value.
const entityCache = new Cache(60000, 1000, entity);

// You can create a cache that will never expire.
const entityCache = new Cache("infinity");
```
npm package: @mish-tv/distributed-counter
Description: <h1 align="center">@mish-tv/distributed-counter</h1>
Author: Koji Murata
Latest version: 1.2.0

<h1 align="center">@mish-tv/distributed-counter</h1>

<div align="center">
<a href="https://www.npmjs.com/package/@mish-tv/distributed-counter"><img src="https://img.shields.io/npm/v/@mish-tv/distributed-counter.svg" alt="npm"></a>
<a href="https://github.com/mish-tv/distributed-counter/actions/workflows/build-and-test.yml"><img src="https://github.com/mish-tv/distributed-counter/actions/workflows/build-and-test.yml/badge.svg" alt="Build and test"></a>
<a href="https://codecov.io/gh/mish-tv/distributed-counter"><img src="https://img.shields.io/codecov/c/github/mish-tv/distributed-counter.svg" alt="coverage"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/github/license/mish-tv/distributed-counter.svg?style=flat" alt="license"></a>
</div>

<h4 align="center">`@mish-tv/distributed-counter is a library for creating distributed counters using CloudDatastore, CloudTasks, and CloudRun.</h4>

## Installation

```
npm install --save @mish-tv/distributed-counter
```

## Usage

### Preparation

- Enable Datastore / CloudRun / CloudTasks.
- Create a Queue with an arbitrary name in CloudTasks.
  In the following example, you will need a queue named distributed-counter-counter.
- Create a service account to run CloudRun from CloudTasks.
  Please refer to [this document](https://cloud.google.com/tasks/docs/creating-http-target-tasks#sa).

### Deploy aggregate server

Deploy a server application to CloudRun.
You can use the [image](https://hub.docker.com/repository/docker/malt03/aggregate-server) I have created.

The deployment to CloudRun is complete, note the URL to request.
Apply the URL you have note to the constant named url in the following sample code.

```sh
TAG=v1.2.0
REGION=${your_region}
IMAGE=us-east4-docker.pkg.dev/${YOUR_PROJECT_ID}/distributed-counter/aggregate-server:${TAG}

docker pull malt03/aggregate-server:${TAG}
docker tag malt03/aggregate-server:${TAG} ${IMAGE}
docker push ${IMAGE}

gcloud run deploy aggregate-distributed-counter --image ${IMAGE} --platform managed --region ${REGION} --no-allow-unauthenticated
```

### Implementation

```typescript
import { Datastore } from "@google-cloud/datastore";
import { createIncrementor } from "@mish-tv/distributed-counter";

const datastore = new Datastore();
const projectId = "";
const location = "us-east4";
// const url = `https://aggregate-distributed-counter-${dummy}-uk.a.run.app`;
// const serviceAccount = `cloud-tasks@${projectId}.iam.gserviceaccount.com`;
const increment = createIncrementor(url, serviceAccount, (key, client) =>
  client.queuePath(projectId, location, `distributed-counter-${key.kind}`)
);

export const incrementCounter = async (id: string, value: number) => {
  const key = datastore.key(["counter", id]);
  const initialEntity = { foo: "bar" };
  await increment(key, "value", value, {
    type: "INITIALIZE",
    properties: () => initialEntity,
  });
};
```
npm package: @mish-tv/esbuild-jest
Description: Very simple transformer to use esbuild for jest.
Author: Koji Murata
Latest version: 0.0.1

<h1 align="center">@mish-tv/esbuild-jest</h1>

<div align="center">
<a href="https://www.npmjs.com/package/@mish-tv/esbuild-jest"><img src="https://img.shields.io/npm/v/@mish-tv/esbuild-jest.svg" alt="npm"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/github/license/mish-tv/esbuild-jest.svg?style=flat" alt="license"></a>
</div>

<h4 align="center">`@mish-tv/esbuild-jest` is a very simple transformer to use esbuild for jest.</h4>


## Installation
```
npm install --save-dev @mish-tv/esbuild-jest esbuild
```

## Usage
```js:jest.config.js
module.exports = {
  transform: { "^.+\\.tsx?$": "@mish-tv/esbuild-jest" },
};
```
npm package: @mish-tv/fix-image-orientation
Description: When this function receives a Blob of an image file as an argument, it returns the dataURL with orientation applied and exif removed.
Author: Koji Murata
Latest version: 0.0.1

<h1 align="center">@mish-tv/fix-image-orientation</h1>

<div align="center">
<a href="https://www.npmjs.com/package/@mish-tv/fix-image-orientation"><img src="https://img.shields.io/npm/v/@mish-tv/fix-image-orientation.svg" alt="npm"></a>
<a href="https://github.com/mish-tv/fix-image-orientation/actions/workflows/build-and-test.yml"><img src="https://github.com/mish-tv/fix-image-orientation/actions/workflows/build-and-test.yml/badge.svg" alt="Build and test"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/github/license/mish-tv/fix-image-orientation.svg?style=flat" alt="license"></a>
</div>

<h4 align="center">
When this function receives a Blob of an image file as an argument, it returns the dataURL with orientation applied and exif removed.
</h4>

## Features

- Zero Dependency
- Lightweight

## Usage

```html
<input id="file" type="file" />
<img id="preview" />

<script>
  const preview = document.getElementById("preview");
  const input = document.getElementById("file");

  input.addEventListener("change", (event) => {
    const file = event.target.files[0];

    imageFileToOrientationFixedDataURL(file).then((url) => {
      preview.src = url; // data:image/png;base64,iVBORw0K...
    });
  });
</script>
```

## Supported Format

- jpeg
- png

If an unsupported format is received, it returns dataURL without processing.

## Installation

```
npm install --save @mish-tv/fix-image-orientation
```
npm package: @mish-tv/m3u8-query-proxy
Description: m3u8-query-proxy is a proxy server that adds a query to the value of a URI.
Author: Koji Murata
Latest version: 0.0.5

<h1 align="center">@mish-tv/m3u8-query-proxy</h1>

<div align="center">
<a href="https://www.npmjs.com/package/@mish-tv/m3u8-query-proxy"><img src="https://img.shields.io/npm/v/@mish-tv/m3u8-query-proxy.svg" alt="npm"></a>
<a href="https://github.com/mish-tv/m3u8-query-proxy/actions/workflows/build-and-test.yml"><img src="https://github.com/mish-tv/m3u8-query-proxy/actions/workflows/build-and-test.yml/badge.svg" alt="Build and test"></a>
<a href="https://codecov.io/gh/mish-tv/m3u8-query-proxy"><img src="https://img.shields.io/codecov/c/github/mish-tv/m3u8-query-proxy.svg" alt="coverage"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/github/license/mish-tv/m3u8-query-proxy.svg?style=flat" alt="license"></a>
</div>

<h4 align="center">`@mish-tv/m3u8-query-proxy` is a proxy server that adds a query to the value of a URI.</h4>
<p>This is designed to be used to give CDN authentication tokens when playing hls in iOS browsers.</p>

## Usage
```
npm install -g @mish-tv/m3u8-query-proxy@0.0.5
M3U8_ORIGIN="https://cdn.example.com" REMOVE_PATH="/foo" m3u8-query-proxy
curl http://localhost:8080/foo/bar.m3u8?token=baz
```

If you make a request as shown above, the proxy will request to https://cdn.example.com/bar.m3u8?token=baz.  
It will rewrite the response as needed.  
Refer to [the test](https://github.com/mish-tv/m3u8-query-proxy/blob/main/src/convert-playlist.spec.ts) to see how to rewrite the response.
npm package: @mish-tv/sortable-list
Description: React component for creating a vertical list UI that can be reordered by drag and drop
Author: Koji Murata
Latest version: 1.1.0

<h1 align="center">
  @mish-tv/sortable-list
  <div align="center">
    <a href="https://www.npmjs.com/package/@mish-tv/sortable-list"><img src="https://img.shields.io/npm/v/@mish-tv/sortable-list.svg" alt="npm"></a>
    <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/github/license/mish-tv/sortable-list.svg?style=flat" alt="license"></a>
  </div>
</h1>

<div align="center"><img width="139" height="300" src="https://user-images.githubusercontent.com/1439961/166896857-69bbfbf9-b847-4502-9714-ba9d74c1a97a.gif" /></div>
<h4 align="center">`@mish-tv/sortable-list` is a React component for creating a vertical list UI that can be sorted by drag and drop.</h4>

## Usage

```tsx
import React from "react";
import { RowCreator, SortableList } from "@mish-tv/sortable-list";

type Item = { id: number; body: string };

export const Component = (props: { initialIds: number[]; items: Record<number, Item> }) => {
  const [ids, setIds] = React.useState(props.initialIds);

  const row: RowCreator<HTMLLIElement, number> = React.useCallback(
    (id, rowAttributes, handleAttributes, options) => {
      const item = props.items[id];
      let className = "row";
      if (options.isDraggingThis) className += " draggingThis";
      if (options.isDraggingOthers) className += " draggingOthers";

      return (
        <li className={className} {...rowAttributes}>
          <button type="button" {...handleAttributes}>
            ⣿
          </button>
          <span>{item.body}</span>
        </li>
      );
    },
    [props.items],
  );

  return (
    <ul className="list">
      <SortableList ids={ids} setIds={setIds} row={row} />
    </ul>
  );
};
```

## Installation

```
npm install --save @mish-tv/sortable-list
```
npm package: @mish-tv/stackdriver-logger
Description: <h1 align="center">@mish-tv/stackdriver-logger</h1>
Author: Koji Murata
Latest version: 0.0.1

<h1 align="center">@mish-tv/stackdriver-logger</h1>

<div align="center">
<a href="https://www.npmjs.com/package/@mish-tv/stackdriver-logger"><img src="https://img.shields.io/npm/v/@mish-tv/stackdriver-logger.svg" alt="npm"></a>
<a href="https://github.com/mish-tv/stackdriver-logger/actions/workflows/build-and-test.yml"><img src="https://github.com/mish-tv/stackdriver-logger/actions/workflows/build-and-test.yml/badge.svg" alt="Build and test"></a>
<a href="https://codecov.io/gh/mish-tv/stackdriver-logger"><img src="https://img.shields.io/codecov/c/github/mish-tv/stackdriver-logger.svg" alt="coverage"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/github/license/mish-tv/stackdriver-logger.svg?style=flat" alt="license"></a>
</div>

<h4 align="center">
`@mish-tv/stackdriver-logger` a package to output logs to stackdriver logging through standard output.
I assume it will be used in applications running on CloudRun. 
</h4>


## Installation
```
npm install --save @mish-tv/stackdriver-logger
```

## Usage
```typescript
import { logger } from "@mish-tv/stackdriver-logger";

logger.debug("log message", payload);
logger.info("log message", payload);
logger.warning("log message", payload);
logger.error("log message", payload);
```

## Todo
- Make sure we know the file name and line number of the code that was logged.
npm package: @misha98857/react-native-k4l-video-trimmer
Description: Whatsapp like trimmer for react native android
Author: Harshal Bhandari
Latest version: 0.2.10

# @misha98857/react-native-k4l-video-trimmer

Whatsapp like trimmer for react native android. Uses https://github.com/a914-gowtham/android-video-trimmer internally. Thanks to https://github.com/a914-gowtham for creating this awesome android package:

## Installation

```sh
npm install @misha98857/react-native-k4l-video-trimmer
```

## Usage

```js
import { navigateToTrimmer } from "@misha98857/react-native-k4l-video-trimmer";

// ...

navigateToTrimmer(this.state.video.uri, this.state.duration).then(trimmedUrl => {
        if (trimmedUrl == null) {
          return;
        }
        this.props.onTrim(trimmedUrl);
      }).catch(error => console.log('trimmed url error', error))
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
npm package: @mishani0x0ef/react-day-picker
Description: Flexible date picker component for React
Author: Giampaolo Bellavite
Latest version: 7.4.11

> It's a fork of v7 of original [react-day-picker](https://www.npmjs.com/package/react-day-picker) which enabled `React 18` support
<p align="center">
<a href="http://react-day-picker.js.org"><img width="80" style="margin: 0 auto" alt="title" src="https://user-images.githubusercontent.com/120693/33364057-0d4a962a-d4e3-11e7-8506-0f9aede2b345.png"></a>
</p>
<h1 align="center">react-day-picker</h1>
<p align="center">
  Flexible date picker component for <a href="https://facebook.github.io/react/">React</a>.
  <br />
  Highly customizable, localizable, with ARIA support, no external dependencies, 9KB gzipped
</p>
<p align="center">
  <a href="http://react-day-picker.js.org"><img width="266" alt="screen shot 2017-11-29 at 08 53 17" src="https://user-images.githubusercontent.com/120693/33363979-cb60fb5a-d4e2-11e7-8d21-f4779b8b9105.png">
</a>
</p>
<p align="center">
  <a href="http://react-day-picker.js.org">Documentation</a> | <a href="http://react-day-picker.js.org/examples/basic">Examples</a> | <a href="http://react-day-picker.js.org/api/DayPicker">API</a> | <a href="http://react-day-picker.js.org/changelog">Changelog</a>
</p>
<p align="center">
  <a href="https://www.npmjs.com/package/react-day-picker">
    <img src="https://img.shields.io/npm/v/react-day-picker.svg?style=flat-square" alt="npm version">
  </a>
  <a href="http://npm-stat.com/charts.html?package=react-day-picker">
    <img src="https://img.shields.io/npm/dm/react-day-picker.svg?style=flat-square" alt="npm downloads">
  </a>
  <a href="https://circleci.com/gh/gpbl/react-day-picker">
    <img src="https://img.shields.io/circleci/project/github/gpbl/react-day-picker/master.svg?style=flat-square" alt="circleci">
  </a>
  <a href="https://codecov.io/gh/gpbl/react-day-picker">
    <img src="https://img.shields.io/codecov/c/github/gpbl/react-day-picker/master.svg?style=flat-square" alt="npm downloads">
  </a>
</p>

## Get support

Please fork and use [https://codesandbox.io/s/XDAE3x0W8](https://codesandbox.io/s/XDAE3x0W8) to reproduce your problem.

* Ask on on [Stack Overflow](http://stackoverflow.com/questions/tagged/react-day-picker?sort=newest) tagging your question with `react-day-picker`.
* Open a [new issue](https://github.com/gpbl/react-day-picker/issues/new) on GitHub.
* Join the [Gitter room](https://gitter.im/gpbl/react-day-picker) to chat with other developers.
npm package: @mishguru/flacutono
Description: Server status monitor
Author: George Czabania
Latest version: 8.0.0

# Foreman Flacutono

> Complains loudly about orphans.

This library is useful when you are trying to find out the cause in a series of
unfortunate events.

You use it by creating a job, and then at some point in the future, marking
that job as complete (or possibly failed).

Every 3 seconds, Foreman Flacutono will let you know which jobs are currently
running and how long they have been running for.

This library was invaluable in solving the mysterious case of the infinitely
hanging AVA tests.

## Todo
  - Hook into the Bluebird promise monitoring events 
  - Use `setTimeout` so that if all jobs are completed there are no timers left

## Installation

```shell
$ npm install --save @mishguru/flacutono
```

## Usage

```javascript
import Foreman from '@mishguru/flacutono'

const foreman = new Foreman()

const job = foreman.monitor({
  section: 'Lumbermill',
  name: 'debark-1042'
})

...

job.resolve()
```

![](./the_miserable_mill.jpg)
npm package: @mishguru/geniuslink
Description: > GeniusLink API wrapper for Node.js
Author: Mish Guru
Latest version: 4.0.0

# geniuslink

> GeniusLink API wrapper for Node.js

## Installation

```shell
npm install @mishguru/geniuslink
```

## Usage

```javascript
import { initGeniusLink, getTotalLinkClicks } from '@mishguru/geniuslink'

initGeniusLink({
  key: process.env.GENIUSLINK_API_KEY,
  secret: process.env.GENIUSLINK_API_SECRET,
})

getTotalLinkClicks('vCHktm')
  .then(console.log)
```

## Documentation

All of the following functions can be imported from `@mishguru/geniuslink`.

### initGeniusLink

> This must be called to declare the API key/secret and initiate the library.

```javascript
import { initGeniusLink } from '@mishguru/geniuslink'

initGeniusLink({
  key: process.env.GENIUSLINK_API_KEY,
  secret: process.env.GENIUSLINK_API_SECRET,
})
```

### addGroup

> Create a new group

```javascript
import { addGroup } from '@mishguru/geniuslink'

const groupName = 'best-links-ever'

addGroup(groupName)
  .then((groupId) => {
    // groupId === 33118
    ...
  })
```

### addLinkToGroup

> Create a new tracked link with a specific group

```javascript
import { addLinkToGroup } from '@mishguru/geniuslink'

const url = 'https://mish.guru'
const groupId = 12345

addLinkToGroup(url, groupId)
  .then((result) => {
    // result: { id: 'vCHktm', code: 'h4o0n' }
  })
```

### getTotalLinkClicks

> Get the total number of clicks on a specific link

```javascript
import { getTotalLinkClicks } from '@mishguru/geniuslink'

const id = 'vCHktm'

getTotalLinkClicks(id)
  .then((count) => {
    // count === 472
    ...
  })
```

### getGroupDetailsByName

> Get details of a group based on the group name

```javascript
import { getGroupDetailsByName } from '@mishguru/geniuslink'

const name = 'default'

getGroupDetailsByName(name)
  .then((group) => {
    // group.id === '1234'
    ...
  })
```

### getGroupDetailsById

> Get details of a group based on the group id

```javascript
import { getGroupDetailsByName } from '@mishguru/geniuslink'

const id = '1234'

getGroupDetailsBId(id)
  .then((group) => {
    // group.name === 'default'
    ...
  })
```
npm package: @mishguru/logview-cli
Description: Logview CLi
Author: Mish Guru
Latest version: 4.6.0

# Log View CLI

## Installation

```
npm install -g @mishguru/logview-cli
```

## Usage

```
logv

Display a list of logs

Commands:
  logv edit-config    Open the server config in your editor
  logv filter         Display a list of logs                                               [default]
  logv read [ids...]  Display details about selected logs
  logv use [server]   Set which server to use by default

Options:
  --version             Show version number                                                [boolean]
  --server              Which server to use from the config      [choices: "internal", "production"]
  --disable-selfupdate  Prevents the app from automatically updating itself                [boolean]
  --help                Show help                                                          [boolean]
  --follow, -f          Append new logs as they are created               [boolean] [default: false]
  --lines, -n           Number of logs to retrieve                            [number] [default: 20]
  --format                                                              [string] [default: "pretty"]
  --user, -u            A list of user IDs to filter logs by                                 [array]
  --sentFrom, -s        A list of service names to filter logs by                            [array]
  --type, -t            A list of topic type to filter logs by                               [array]
  --payload, -p         Filter logs by payload using SQL LIKE                               [string]
  --before, -b          Only display logs with an ID before the specified ID                [string]
  --after, -a           Only display logs with an ID after the specified ID                 [string]
  --sent-before         Only display logs created before the specified date                 [string]
  --sent-after          Only display logs created after the specified date                  [string]
```
npm package: @mishguru/package
Description: Utils for creating, building and testing NPM packages
Author: George Czabania
Latest version: 9.6.0

# Package

## Installation

```
npm install --save-dev @mishguru/package
```

## Recommended Scripts

Copy the following into your `package.json`.

```json
"scripts": {
  "build": "pkg-build",
  "lint": "pkg-lint",
  "tidy": "pkg-tidy",
  "test": "NODE_ENV=test pkg-test",
  "coverage": "NODE_ENV=test pkg-coverage",
  "precommit": "pkg-precommit"
}
```

## Using Typescript

To enable typescipt support, set the `types` property in your `package.json`.

```json
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
```

### Type declarations

If you need to use a 3rd party library that doesn't have typescript support,
you can provide your own type declarations.

There are some strict rules you need to follow for this to work:

1. You must only mock one dependency per file.
1. You must place the file inside the `./src/types/` folder.
2. The filename must be the same as the dependency name.
3. The extension must be `.d.ts`.

For example, if you are providing types for `file-exists`, the types must be
saved in `./src/types/file-exists.d.ts.`

### Providing Typescript types for a project written in JS

If you are manually adding types for a non-typescript project, you must keep
your types in the root of your project, in a file named `types.d.ts`.

`@mishguru/package` will not use the typescript compiler if your package.json
contains the value: `"types": "types.d.ts"`.

## Lifecycle Test Helpers

AVA does not support "before all" or "after all" functions, because it runs
everything in parallel.

Package has got your back though. If you need to setup/teardown a database,
then this is for you.

Please note, that if you run AVA in watch mode, the "after all" function will
not be called until you exit AVA.

### Before All

Create a file called `testHelpers/beforeAll.js` in the root of your project,
and it will be executed before the tests begin.

### After All

Create a file called `testHelpers/afterAll.js` in the root of your project,
and it will be executed after the tests finish.

It will be called regardless of whether the tests passed or failed.

## Different Folder Structure

### srcPath

If your code is kept in a folder that isn't `src` then you can change the path
by adding the following to your `package.json`

```
"srcPath": "lib",
```

### distPath

Would you like your compiled code to be in a folder that isn't named `dist`?

```
"distPath": "public"
```

### testsPath

Tests must be defined inside the `srcPath`, and by default match any files that
end in `.spec.js`.

```
"testsPath": "**/*.test.js",
```
npm package: @mishguru/timmy
Description: Find out which files take the longest to require
Author: George Czabania
Latest version: 1.5.0

# Timmy

> Find out how long it takes to require a file or node module

![Timmy](./timmy.png)

## Installation

```shell
$ yarn global add @mishguru/timmy
```

## CLI Usage

### --file [path to file]

Time a file

```shell
$ timmy --file ./index.js
```

### --package [name of package]

Time a package from `node_modules`

```shell
$ timmy --package bluebird
```

### --quiet

Don't time individual require's, just print out the total time it took to load
the file/package.

This is more accurate, as it does not include the overhead Timmy adds when
collecting statistics.

```shell
$ timmy --package bluebird --quiet
```

### --min [time = 100]

Set the minimum amount of time (in ms) that a `require` must take for it to
show up in the results. This is to improve performance  - the lower the time, the
more stats that need collecting - the longer it takes to run.

This defaults to 100ms.

```shell
$ timmy --file ./index.js --min 50
```

## JS Usage

You can also use Timmy via a JS api

### printStats (cwd)

Print out all the times for required files up to this point.

You should call it once, immediately after you have finished requiring all your
files.

```javascript
import timmy from '@mishguru/timmy'

import 'allthethings'

timmy.printStats()
```

### restoreRequire

This restores `require()` to it's default behaviour.

```javascript
import timmy from '@mishguru/timmy'

// this require will be timed
require('thing-one')

timmy.restoreRequire()

// this require will not be timed
require('thing-two')
```

### resetTimer
import timmy from '@mishguru/timmy'

This resets the total timer to the current time.

```javascript
import timmy from '@mishguru/timmy'

// do a bunch of stuff that you don't want to time ...

timmy.resetTimer()

// require the files you want to time

timmy.printStats()
```

### setMinDuration

This sets the min duration to record. You should set this before you start
requiring files.

```javascript
import timmy from '@mishguru/timmy'
timmy.setMinDuration(0)
```
npm package: @mishguru/turbine-driver-local
Description: An in-memory driver for running a single service
Author: Mish Guru
Latest version: 6.35.0

# @mishguru/turbine-driver-local

> A single service in-memory driver

```typescript
import createService from '@mishguru/turbine'
import createDriver from '@mishguru/turbine-driver-local'

const service = createService({
  serviceName: 'my-service',
  driver: createDriver()
})

service.handle('greet', async (message) => {
  const { payload } = message
  const { name, text } = payload
  console.log(`Received greeting "${text}" from ${name}`)
})

void async function main () {
  await service.start()

  await service.dispatch({
    type: 'greet',
    payload: {
      name: 'george',
      text: 'hi there!'
    }
  })

  // prints: Received greeting "hi there!" from george
}()
```
npm package: @mishguru/turbine-driver-switch
Description: Select which turbine driver to use at runtime.
Author: Mish Guru
Latest version: 6.35.1

# Turbine Driver: Switch

> Switch between different turbine drivers using an environment variable.

```javascript
import createDriver from '@mishguru/turbine-driver-switch'
import createService from '@mishguru/turbine'

const service = createService({
  name: 'myService',
  driver: createDriver({
    defaultDriver: '@mishguru/turbine-driver-fanservice'
  })
})

...
```


```shell
TURBINE_DRIVER=@mishguru/turbine-driver-fanservice-polling npm start
TURBINE_DRIVER_ARGS_JSON='{"url":"amqp://localhost"}'
```