open-index/open-npm huggingface dataset:
npm package: @gammastream/qrcode-poly-reader
Description: Finds multiple QR Codes in an image utilizing jsQR under the hood.
Author: Michael Sacket
Latest version: 1.0.2

# QRCode Poly-reader

Finds multiple QR Codes in an image utilizing [jsQR][jsqr] under the hood.

## Why?

The main purpose of this poly-reader is find QR codes in multiple regions of a scanned document.

![logo GammaStream](assets/sample.png)

## Getting Started

To install, execute the following command from the root of your project:

```bash
npm install @gammastream/qrcode-poly-reader --save
```

Then, use it like this in Typescript:

```ts
import * as fs from "fs-extra";
import * as UPNG from "upng-js";
import {polyReader} from '@gammastream/qrcode-poly-reader';


loadPng('./tests/artifacts/test-0.png').then((img) => {
    const results = polyReader(img.data, img.width, img.height);
    console.log( results );
});

async function loadPng(path) {
    const data = UPNG.decode(await fs.readFile(path));
    const out: {
      data: Uint8ClampedArray,
      width: number,
      height: number,
    } = {
      data: new Uint8ClampedArray(UPNG.toRGBA8(data)[0]),
      width: data.width,
      height: data.height,
    };
    return out;
  }
```

Or like this, in Javascript:

```javascript
const fs = require('fs-extra');
const UPNG = require('upng-js');
const reader = require('@gammastream/qrcode-poly-reader');


loadPng('./test-0.png').then((img) => {
    const results = reader.polyReader(img.data, img.width, img.height);
    console.log( results );
});

async function loadPng(path) {
    const data = UPNG.decode(await fs.readFile(path));
    return {
        data: new Uint8ClampedArray(UPNG.toRGBA8(data)[0]),
        width: data.width,
        height: data.height,
      };
  }
```

----

#### Created by

![logo GammaStream](assets/gammastream-logo-100x100.png)

[**_GAMMASTREAM_**][gammastream]



[gammastream]: http://www.gammastream.com
[jsqr]: https://github.com/cozmo/jsQR
npm package: @gammastream/scully-plugin-http404
Description: A Scully plugin for generating a 404.html file at the root level.
Author: Michael Sacket
Latest version: 1.0.4

# scully-plugin-http404

This `postRenderer` plugin for [Scully](http://scully.io/) will create a `/404.html` page for the configured `/404` route.  This is handy for generating custom 404 error pages within your Angular application while maintaining compatibility with the [firebase hosting requirements](https://firebase.google.com/docs/hosting/full-config#404) for 404s.

*Version 1.0.0 introduces breaking changes in the way the plugin is registered and configured. Please update your configurations*

## Installation

To install this library with `npm` run

```
$ npm install @gammastream/scully-plugin-http404 --save-dev
```

## Usage

Create a 404 route in the root router:

```typescript
RouterModule.forRoot([{
      path: 'a',
      component: PageComponent
    }, {
      path: 'b',
      component: PageComponent
    }, {
      path: 'c',
      component: PageComponent
    }, {
      path: '',
      component: PageComponent
    }, {
      path: '404',
      component: Http404Component
    }, {
      path: '**',
      component: Http404Component
    }])
```

Add the plugin to the `defaultPostRenderers` to execute it on the /404 route:

```typescript
import { ScullyConfig, setPluginConfig } from '@scullyio/scully';
import { getHttp404Plugin } from '@gammastream/scully-plugin-http404';


const Http404Plugin = getHttp404Plugin();

export const config: ScullyConfig = {
  projectRoot: './src',
  projectName: 'scully-plugins',
  outDir: './dist/static',
  defaultPostRenderers: [Http404Plugin],
  routes: {
    '/products/:productId': {
        type: 'json',
        productId: {
            url: 'http://localhost:4200/assets/products.json',
            property: 'id',
        }
    }
  }
};

```

Build app and run scully like normal.

```shell script
npm run build
npm run scully
```

## Questions or Issues

If you have any issues you can raise them here or contact me at: [GammaStream](https://gamma.stream)
npm package: @gammastream/scully-plugin-regex
Description: A Scully postRender plugin for performing regex transformations on the generated html.
Author: Michael Sacket
Latest version: 2.0.3

# scully-plugin-regex

This `postRenderer` plugin for [Scully](http://scully.io/) will apply the configured regex replacements to your Scully rendered HTML.

*Version 2.0.0 introduces breaking changes in the way the plugin is configured.  It allows for a bit of decoupling from the main ScullyConfig*

## Installation

To install this library with `npm` run:

```
$ npm install @gammastream/scully-plugin-regex --save-dev
```

## Usage

Add the plugin to the `defaultPostRenderers` to execute it on all rendered pages:

```typescript
import { ScullyConfig, setPluginConfig } from '@scullyio/scully';
import { getRegexPlugin } from '@gammastream/scully-plugin-regex';

const RegexPlugin = getRegexPlugin();
setPluginConfig(RegexPlugin, {
    replacements: [{
        from: 'foo',
        to: 'foobar'
    }, {
        from: new RegExp('([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)', 'gi'),
        to: '<a href="mailto:$1">$1</a>'
    }],
    routes: {
        '/products/:productId': {
            replacements: [{
                from: 'foo',
                to: 'foofoo'
            }]
        },
    }
});

export const config: ScullyConfig = {
  projectRoot: './src',
  projectName: 'scully-plugins',
  outDir: './dist/static',
  defaultPostRenderers: [RegexPlugin],
  routes: {
    '/products/:productId': {
        type: 'json',
        productId: {
            url: 'http://localhost:4200/assets/products.json',
            property: 'id',
        }
    }
  }
};
```

Build app and run scully like normal.

```shell script
npm run build
npm run scully
```

## Questions or Issues

If you have any issues you can raise them here or contact me at: [GammaStream](https://gamma.stream)
npm package: @gammastream/scully-plugin-shopify
Description: A Scully router plugin for fetching products and collections from Shopify.
Author: Michael Sacket
Latest version: 0.0.5

# scully-plugin-shopify

This `route` plugin for [Scully](http://scully.io/) fetches collection and product ids/handles from Shopify for pre-rendering routes within an Angular application.  It includes two plugins, one for fetch collections and another for fetching products.

## Installation

To install this library with `npm` run:

```
$ npm install @gammastream/scully-plugin-shopify --save-dev
```

## Usage

* Create a `.env` file in the root of your project. (Make sure this is ignored by git)
* Include your Shopify domain and access token.

```
SHOPIFY_DOMAIN=xample-store.myshopify.com
SHOPIFY_STOREFRONT_ACCESS_TOKEN=djskjck3jskjdkjskjdkjf
```
	
* Import and configure the plugin as required. (See example below)
* Refer to the [Shopify Buy SDK](https://shopify.github.io/js-buy-sdk) for query options.


```typescript
import { ScullyConfig, setPluginConfig } from '@scullyio/scully';
import { getShopifyCollectionsPlugin , getShopifyProductsPlugin} from './dist/scully-plugin-shopify';
import * as dotenv from 'dotenv';
dotenv.config();

const shopifyConfig = {
    domain: process.env.SHOPIFY_DOMAIN,
    storefrontAccessToken: process.env.SHOPIFY_STOREFRONT_ACCESS_TOKEN
};
const ShopifyCollectionsPlugin = getShopifyCollectionsPlugin();
setPluginConfig(ShopifyCollectionsPlugin, shopifyConfig);
const ShopifyProductsPlugin = getShopifyProductsPlugin();
setPluginConfig(ShopifyProductsPlugin, shopifyConfig);

export const config: ScullyConfig = {
  projectRoot: './src',
  projectName: 'scully-plugins',
  outDir: './dist/static',
  routes: {
    '/shopify-collections/:collectionHandle': {
        type: ShopifyCollectionsPlugin,
        query: {},
        collectionHandle: {
            property: 'handle'
        }
    },
    '/shopify-collections/:collectionHandle/:id': {
        type: ShopifyCollectionsPlugin,
        query: {
            first: 10
        },
        collectionHandle: {
            property: 'handle'
        },
        id: {
            property: 'id'
        }
    },
    '/shopify-product/:productHandle': {
        type: ShopifyProductsPlugin,
        query: {},
        productHandle: {
            property: 'handle'
        }
    }
  }
};

```

Build app and run scully like normal.

```shell script
npm run build
npm run scully
```

## Questions or Issues

If you have any issues you can raise them here or contact me at: [GammaStream](https://gamma.stream)
npm package: @gammastream/scully-regex
Description: A Scully postRender plugin for performing regex transformations on the generated html.
Author: Michael Sacket
Latest version: 1.0.1
Deprecated: plugin moved to @gammastream/scully-plugin-regex

# scully-regex

This `postRenderer` plugin for [Scully](http://scully.io/) will apply the configured regex replacements to your Scully rendered HTML.

## Installation

To install this library with `npm` run

```
$ npm install @gammastream/scully-regex --save-dev
```

## Usage

Add the plugin to the `defaultPostRenderers` to execute it on all rendered pages:

```js
const {RouteTypes} = require('@scullyio/scully');
const {RegexHtml} = require('@gammastream/scully-regex');

const defaultPostRenderers = [RegexHtml];

const regexOptions = {
    replacements: [{
        from: 'http://www.googletagmanager.com',
        to: 'https://www.googletagmanager.com'
    }, {
        from: 'foo',
        to: 'bar'
    }, {
        from: new RegExp('([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)', 'gi'),
        to: '<a href="mailto:$1">$1</a>'
    }]
};


exports.config = {
  projectRoot: './src/app',
  regexOptions,
  defaultPostRenderers,
  routes: {}
};
```

Build app and run scully like normal.

```shell script
npm run build
npm run scully
```

## Questions or Issues

If you have any issues you can raise them here or contact me at: [GammaStream](https://gamma.stream)
npm package: @gammeo/gammeo-mq
Description: Software agnostic message queue
Author: Gammeo | Robin Bressan
Latest version: 1.0.0

# GammeoMQ

GammeoMQ is a distributed message queue. It uses custom store and transport to be software agnostic.

## Setup

```sh
npm install @gammeo/gammeo-mq
```

## Usage

```js
import { MessageQueue, InMemoryStore, InMemoryTransport } from '@studiomagnetique/gammeo-mq';

// the queue can take options as third argument but this one is optional
const queue = new MessageQueue('MyAwesomeQueue', new InMemoryStore(), new InMemoryTransport(), {
    retryInterval: 100,
    maxRetryAttempts: 3,
});

const unsubscribe = queue.subscribe(['foo', 'bar'], function consumer(messages) => {
    // this consumer is now subscribed to foo and bar channels
    // messages is an array
    // when you want to cancel the subscription, you can call the unsubscribe callback returned by queue.subscribe()
});

queue.publish('foo', [{ hello: 'world' }]);
// when you subscribe to a channel, you also subscribe to all channels prefixed with the same name
queue.publish('foo:1', [{ hello: 'world' }]);
```

If you're intend to use the message queue accross several processes like workers, you must use a distributed store and transport, like the mongodb store and the redis transport:

```js
import { MessageQueue, MongoDBStore, RedisTransport } from '@studiomagnetique/gammeo-mq';

// the MongoDBStore takes the same arguments than the mongodb node client
const store = new MongoDBStore('mongodb://root:password@mongo:27017', {
    useUnifiedTopology: true,
});

// the RedisTransport takes the same arguments than the redis node client
const transport = new RedisTransport();
const queue = new MessageQueue(`MyAwesomeQueue ${process.pid}`, store, transport, {
    retryInterval: 100,
    maxRetryAttempts: 3,
});
```

## Development

To work on this module, just run `npm install` first.

### Tests

The test env uses docker to get a running mongodb and redis to test the MongoDBStore and RedisStore. To run them accross the provided docker-compose file run:

```sh
npm run docker test
```

### Publish

First, you must be login at npm by running `npm login` command

Then just run: `npm publish`
npm package: @gamos/components
Description: This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
Latest version: 1.3.0

# Getting Started with Create React App

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).

## Available Scripts

In the project directory, you can run:

### `npm start`

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.\
You will also see any lint errors in the console.

### `npm test`

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

### `npm run build`

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

### `npm run eject`

**Note: this is a one-way operation. Once you `eject`, you can’t go back!**

If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).
npm package: @gampang-pkg/mongodb-adapter
Description: Auth Session MongoDB Adapter for Gampang
Author: Hanif Dwy Putra S
Latest version: 1.0.25

# Gampang MongoDB Adapter

Simple gampang auth adapter in MongoDB version.

## Usage

It's very simple:

```ts
import {useMongoDBAdapter} from '@gampang-pkg/mongodb-adapter';

// session is SessionManager, you can use 'client.session' also
await session.registerAdapter(useMongoDBAdapter, {
    uri: 'your mongodb connection uri',
    dbName: 'gampang-sessions',
});
```

If you want use your mongodb client, just add the `db` in the options ^\_

## License

MIT