open-index/open-npm huggingface dataset:
npm package: @nowtech/nestjs-prisma
Description: ![integration logo](https://raw.githubusercontent.com/MichalLytek/typegraphql-prisma/main/img/integration.png)
Latest version: 4.0.3

![integration logo](https://raw.githubusercontent.com/MichalLytek/typegraphql-prisma/main/img/integration.png)

# TypeGraphQL & Prisma integration

Prisma generator to emit TypeGraphQL types and CRUD resolvers from your Prisma schema.

[**https://prisma.typegraphql.com/**](https://prisma.typegraphql.com/)

## Documentation

The documentation, installation guide, detailed description of the API and all of its features is [available on the website](https://prisma.typegraphql.com/).

## Examples

You can check out some usage examples on this repo:

https://github.com/MichalLytek/typegraphql-prisma/blob/main/examples/Readme.md

## Feedback

Currently released version `0.x` is just a preview of the upcoming integration. For now it lacks some customization option - picking models or fields of object types to expose in the schema, hiding input fields as well as picking exposed args fields. However, the base functionality is working well, so I strongly encourage you to give it a try and play with it.

Any feedback about the developers experience or ideas about new features or enhancements are very welcome - please feel free to put your two cents by using the [GitHub Discussions feature](https://github.com/MichalLytek/typegraphql-prisma/discussions/new):

<img src="https://raw.githubusercontent.com/MichalLytek/typegraphql-prisma/main/img/feedback.png" width="327"/>

## Future plans

In some far feature, when Prisma SDK will be ready, the `typegraphql-prisma` integration will also allow to use a code-first approach to build a `schema.prisma` and GraphQL schema at once, using classes with decorators as a single source of truth.

Stay tuned! :muscle:
npm package: @nowtech/nestjs-prisma-4
Description: ![integration logo](https://raw.githubusercontent.com/MichalLytek/typegraphql-prisma/main/img/integration.png)
Latest version: 4.14.0

![integration logo](https://raw.githubusercontent.com/MichalLytek/typegraphql-prisma/main/img/integration.png)

# TypeGraphQL & Prisma integration

Prisma generator to emit TypeGraphQL types and CRUD resolvers from your Prisma schema.

[**https://prisma.typegraphql.com/**](https://prisma.typegraphql.com/)

## Documentation

The documentation, installation guide, detailed description of the API and all of its features is [available on the website](https://prisma.typegraphql.com/).

## Examples

You can check out some usage examples on this repo:

https://github.com/MichalLytek/typegraphql-prisma/blob/main/examples/Readme.md

## Feedback

Currently released version `0.x` is just a preview of the upcoming integration. For now it lacks some customization option - picking models or fields of object types to expose in the schema, hiding input fields as well as picking exposed args fields. However, the base functionality is working well, so I strongly encourage you to give it a try and play with it.

Any feedback about the developers experience or ideas about new features or enhancements are very welcome - please feel free to put your two cents by using the [GitHub Discussions feature](https://github.com/MichalLytek/typegraphql-prisma/discussions/new):

<img src="https://raw.githubusercontent.com/MichalLytek/typegraphql-prisma/main/img/feedback.png" width="327"/>

## Future plans

In some far feature, when Prisma SDK will be ready, the `typegraphql-prisma` integration will also allow to use a code-first approach to build a `schema.prisma` and GraphQL schema at once, using classes with decorators as a single source of truth.

Stay tuned! :muscle:
npm package: @nowtilus/akamai-purger
Description: Purge files on akamai
Author: Ingo Eichhorst
Latest version: 0.0.3

# Akamai-Purger

Purge your urls on the akamai origin using the edgegrid ccu/v3 API.

## Install

```bash
  # you probably need sudo or admin rights to install globally
  npm i -g @nowtilus/akamai-purger
```

## Configure

Put your Akamai credentials in an `.edgerc` file at the directory root

## Usage

Purge a single url

```bash
  akamai-purger [url]
```

Purge multiple urls

```bash
  akamai-purger [url1] [url2] [url3]
```

If you have multiple section in .edgerc you can select one (defaults to `default`)

```bash
  akamai-purger --section default [url1] [url2] [url3]
```

Note that you have to escape some characters on the commandline. Your URLs will look like:

```bash
akamai-purger https://talktalk-image-stage.nowtilus.tv/27947f4b-24bf-4ef9-9205-41fc5f45d037/27947f4b24bf4ef9920541fc5f45d037_AtFirstLight_Film_L_wot.jpg\?product\=season\&type\=image\&imbypass\=true https://talktalk-image-stage.nowtilus.tv/27947f4b-24bf-4ef9-9205-41fc5f45d037/27947f4b24bf4ef9920541fc5f45d037_AtFirstLight_Film_L_wot.jpg\?product\=film\&type\=image
```
npm package: @nowtilus/azure-blob-archiver
Description: Archive your unused Azure blobs and save money
Author: Ingo Eichhorst
Latest version: 0.0.4

# Azure Blob Archiver

[![coverage report](https://gitlab.com/nowtilus_public/azure-blob-archiver/badges/master/coverage.svg)](https://gitlab.com/nowtilus_public/azure-blob-archiver/commits/master) [![pipeline status](https://gitlab.com/nowtilus_public/azure-blob-archiver/badges/master/pipeline.svg)](https://gitlab.com/nowtilus_public/azure-blob-archiver/commits/master) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com)

Archive your unused Azure blobs and save money.

## Introduction

To store files in Azure the blob-storage([b]inary-[l]arge-[ob]ject) can be a good option. But if you do not need to access this files on a regular bases you are probably paing more than you shoud. This tool helps you to move blobs in the archive storage, save money and make those files available again when you need them.

## Install

Prerequisites: `node.js v10+`

```bash
  npm i -g @nowtilus/azure-blob-archiver
```

## Usage

```bash
  STORAGE_ACCOUNT_KEY="<your-azure-storage-account-key>" azure-blob-archiver [options] <your-azure-storage-account-key>
```

Note the OS differences when setting environment variables:

- Linux/Mac: export STORAGE_ACCOUNT_KEY="<your-azure-storage-account-key>"
- Windows: SET STORAGE_ACCOUNT_KEY="<your-azure-storage-account-key>"
- PowerShell: \$env:STORAGE_ACCOUNT_KEY="<your-azure-storage-account-key>"

### Options

```bash
  --container, -c  Container name. Default: Load all containers in the storage account.
  --tier, -t  Target access tier. Defaults to 'Archive' - Possible: 'Hot', 'Cool', 'Archive', 'Check'
  --before, -b  Only change files created before this date. - example: 2019-10-01
```

### Examples

#### Check the current status without changes

This can be usefull if you restored your blobs to `Hot` storage and want to check if your changes got applied already.

```bash
  azure-blob-archiver --tier Check my-storage-account
```

#### Archive all blobs in a container before 2019

```bash
  azure-blob-archiver --tier Archive --before 2019-01-01 --container my-container my-storage-account
```

### Restore all blobs in a storage account from archive to Hot

Note: Changes will take several hours to be applied.

```bash
  azure-blob-archiver --tier Hot my-storage-account
```

## Report

At the end of a run the tool will output you the result.
Current: Shows how much blobs are currently in which access tier
Scheduled: Shows how much blobs have been scheduled to be moved to another tier

In the example below one blob was scheduled to be moved from Archive to Hot

```bash
REPORT

Duration: 4m 47.5s
┌───────────┬──────┬──────┬─────────┬──────┐
│           │ Hot  │ Cool │ Archive │ Sum  │
├───────────┼──────┼──────┼─────────┼──────┤
│ Current   │ 1331 │ 0    │ 1       │ 1332 │
├───────────┼──────┼──────┼─────────┼──────┤
│ Scheduled │ 1    │ 0    │ 0       │ 1    │
└───────────┴──────┴──────┴─────────┴──────┘
```
npm package: @nowtilus/azure-blob-storage-partitioner
Description: Module to distribute your textual data to multiple Azure blob storages to overcome the limits. Espacially usefull as distributed cache.
Author: Ingo Eichhorst
Latest version: 1.0.1

# azure-blob-storage-partitioner

[![Build Status](https://travis-ci.com/Nowtilus/azure-blob-storage-partitioner.svg?branch=master)](https://travis-ci.com/Nowtilus/azure-blob-storage-partitioner) [![Coverage Status](https://coveralls.io/repos/github/Nowtilus/azure-blob-storage-partitioner/badge.svg?branch=master)](https://coveralls.io/github/Nowtilus/azure-blob-storage-partitioner?branch=master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/dde63d0a3429443389d8cabe8e3cab1a)](https://www.codacy.com/gh/Nowtilus/azure-blob-storage-partitioner?utm_source=github.com&utm_medium=referral&utm_content=Nowtilus/azure-blob-storage-partitioner&utm_campaign=Badge_Grade)

This module can be a good fit if you have millions of items to cache in Azure that eceed the limits of a single azure blob storage account.

<https://docs.microsoft.com/de-de/azure/azure-resource-manager/management/azure-subscription-service-limits#storage-limits>

e.g.

- Maximum request rate per storage account - 20,000 requests per second
- Maximum ingress per storage account (US, Europe regions) - 25 Gbps
- Maximum storage account capacity 5 PiB

Note: The numbers are copied from azure at 2020-04-24

Please also note that you need a unique id that you can refer to later. Preferably uuid/v4 to partion the files on multiple storage accounts.

## Getting Started

Imagine you have a webservice that allows users to track their bycicle route. You now save all the tracking data for every section of the track to a distributed blob storage cache store. After the user has finished the ride, you take the route files and calculate the distance and persist it to database.

```js
const BlobStoragePartioner = require("./BlobStoragePartioner");
const uuid = require("uuid/v4");

async function test() {
  /* INIT */
  const storages = "mystorageaccount0:accessKey0;mystorageaccount1:accessKey1"; // you can specify a virtually endless amount of storage accounts

  const storageCluster = new BlobStoragePartitioner(storages);
  await storageCluster.init();

  /* CACHE */
  const sessionId = uuid(); // this should be persisted somewhere

  // will save the files and content always to the same storage account for the same sessionId
  await storageCluster.saveToCache("data 1", "section_a.txt", sessionId);
  await storageCluster.saveToCache("data 2", "section_b.txt", sessionId);

  // load from cache
  const a = await storageCluster.loadFromCache("section_a.txt", sessionId);
  const b = await storageCluster.loadFromCache("section_b.txt", sessionId);

  // ... work with the data you cached

  // delete everything when the session is no longer active
  await storageCluster.deleteCache(sessionId);
}

test();
```
npm package: @nowtilus/nemo-api-key-generator
Description: Generate an API-Key for the Nemo API
Author: Ingo Eichhorst
Latest version: 1.0.4

# NEMO API-Key Generator

This comman line utility let's you create a api-key that you can use to access the Nowtilus Backend.

## How-To

### 1. Install NodeJS > v8.0.0 on your machine (if not done already)

### 2. Install the tool from the command line

```bash
npm i -g @nowtilus/nemo-api-key-generator
```

### 3. Run the tool on the command line

```bash
nemo-api-key-generator
```

### 4. Follow the instructions on the screen

the output should be similar to

```text
Your secret and Nowtilus API-Key have been successfully created:
  API-Key: ee152031-1f80-4733-b292-f531335f1954
  Hash: f7a8757d9b2d20b3e3de1ce761456e50f637584a435b28097ae87ded9bead606

What's next:
- Save the API-Key on a secure place and never hand it over to
  anyone outside your company. Espacially not to Nowtilus.
- Send the Hash to Nowtilus: 'tech-contact@nowtilus.tv' or your
  contact person. It'll be added to the system and you receive
  a notification shortly.
- To login with your api-key send it with every request to
  the Nowtilus APIs in the header as 'X-Api-Key' like:
    X-Api-Key: <your-api-key>
- Please keep your api-key up to date. If for any reason the
  api-key is no longer secure (compromised, person left the
  company, ...) create a new one and send the hash to Nowtilus
```
npm package: @nowtovow/nowtovow-scripts
Description: Fork of facebookincubator/create-react-app@3.4.4 with some additional features.
Latest version: 4.0.1

# sharetribe-scripts

This is a fork of the
[react-scripts](https://github.com/facebook/create-react-app/tree/master/packages/react-scripts)
package from the
[facebook/create-react-app](https://github.com/facebook/create-react-app)
monorepo.
You can refer to its documentation:

- [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.
- [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.

This package is published as
[sharetribe-scripts](https://www.npmjs.com/package/sharetribe-scripts)
in NPM.

See the `description` field in [package.json](package.json) to see
which version of `react-scripts` this fork is built from.

## Differences to `react-scripts`

- Use [CSS Modules](https://github.com/css-modules/css-modules) on every css file
- Use [postcss-preset-env](https://github.com/csstools/postcss-preset-env)
- Use [postcss-import](https://github.com/postcss/postcss-import)
- Use [postcss-apply](https://github.com/pascalduez/postcss-apply)
- Build an UMD module in production mode to support server side rendering

## Development

### Setup

To update the fork to use a new version of the upstream repository:

1. If you haven't already, configure the upstream repository as a remote:

   ```
   git remote add upstream https://github.com/facebookincubator/create-react-app
   ```

1. [Sync the fork](https://help.github.com/articles/syncing-a-fork/)
   to a branch, making sure you merge from a specific version/tag that
   you want to base your changes on

   ```
   git fetch upstream
   git checkout master
   git checkout -b update-from-upstream
   git merge <tag_to_be_merged_here_eg_v1.1.2>
   ```

1. Make your changes, test them (see below), make a PR, release

### Making changes and testing

To test your local changes, link the local repository to the application:

1. In the `create-react-app/packages/react-scripts` directory, install
   dependencies and make a link of the package:

   ```
   yarn install # ignore the yarn.lock file
   yarn link
   ```

   **NOTE:** if other packages have changed too, you might need to run
   `yarn install # ignore the yarn.lock file` on the root folder too.

1. In the application remove the old `sharetribe-scripts` package and
   use the linked version ([read more](https://yarnpkg.com/lang/en/docs/cli/link/)):

   ```
   yarn remove sharetribe-scripts
   yarn link sharetribe-scripts
   ```

1. Now you changes to the fork are usable as a symlicked dependency in
   the application

### Publishing

1. Make sure you have updated the version also in the `description`
   field in [package.json](package.json). Try to sync the package
   version with the original package, if possible.

1. Publish to NPM:

   ```
   npm login
   # Check credentials from password manager
   npm publish
   ```

1. Tag the commit with released version: `sharetribe-scripts@x.x`
npm package: @nowts/core
Description: _This work is in progress_
Author: Timo van Balen
Latest version: 0.1.0

# NowTS

_This work is in progress_

## Installation

yarn

```ts
yarn add @nowts/core
```

npm

```ts
npm install --save @nowts
```

## Get Started

```ts
import * as bodyParser from 'body-parser';
import * as express from 'express';
import {
  NowModule,
  Injectable,
  newExpressDecorator,
  RestController,
} from '@nowts/core';

@Injectable()
class User implements RestController {
  constructor() {}

  async create(id, data, params) {
    console.log(params.query);
    data.createdAt = Date.now();
    return data;
  }
}

const app = express();
const now = new NowModule({
  services: [User],
  controllerBindings: [rest.bindController('/users', User)],
  sharedControllerDecorators: [
    newExpressDecorator(bodyParser.urlencoded({ extended: false })),
    newExpressDecorator(bodyParser.json()),
  ],
});
app.use(now.expressRouter());
app.listen(3000, () => console.log('Listening ...'));
```

## Documentation

Find docs [here]().

## Contributing

There are several way to contribute.

- Submit a PR to fix typos/grammatical errors.
- Open an issue to report a bug.
- Open an issue to suggest a new feature.
- Improve the docs.

## Packages

- [@nowts/cli]()
- [@nowts/common]()
- [@nowts/sequelize]()

## License

MIT
npm package: @nowzoo/ngx-app-msg
Description: Message service and component for Angular 6 apps
Latest version: 2.0.1

# @nowzoo/ngx-app-msg

Message service and component for Angular 6 apps

[Demo Site](https://nowzoo.github.io/ngx/ngx-app-msg) | [Demo Code](https://github.com/nowzoo/ngx/tree/master/src/app/ngx-app-msg)

## Install
```bash
npm i @nowzoo/ngx-app-msg --save
```



## Quick Start

### Import the module
Import the module into your app, calling `NgxAppMsgModule.forRoot()`.

```ts
// app.module.ts...
import { NgxAppMsgModule } from '@nowzoo/ngx-app-msg';
// ...
@NgModule({
  imports: [
    //...
    NgxAppMsgModule.forRoot()
  ]
})
export class AppModule { }
```

### Place the `NgxAppMsgComponent` in your app component
Put `<ngx-app-msg></ngx-app-msg>` somewhere.
```html
<!-- app.component.html -->
<router-outlet></router-outlet>
<ngx-app-msg></ngx-app-msg>
```

### Use `NgxAppMsgService` to show messages
```ts
import { NgxAppMsgService } from '@nowzoo/ngx-app-msg';
//...
export class SomeComponent {
  constructor(
    private msg: NgxAppMsgService
  ) { }

  show() {
    this.msg.wait('Doing something time consuming...');
    setTimeout(() => {
      this.msg.success('Done!');
    }, 2000);
  }

}
```

## API

### Type: `NgxAppMsgContext`

````ts
'wait' | 'warn' | 'success'
````

### Interface: `INgxAppMsg`

```ts
  - `context: NgxAppMsgContext`
  - `message: string`
  - `autohide: boolean`
```

### Component: `NgxAppMsgComponent`
selector: `ngx-app-msg`

#### Inputs
  - `autohideAfter: number` How long to wait, in ms, to hide success and warning messages. 

### Service: `NgxAppMsgService`

#### Properties
  - `messages$: Observable<INgxAppMsg>`

#### Methods
 - `wait(message: string)`
 - `warn(message: string)`
 - `success(message: string)`

## Contributing
Contributions and suggestions are welcome.

Get started...
```bash
git clone git@github.com:nowzoo/ngx.git
cd ngx
npm i
ng build ngx-app-msg --prod
```

The library code is found in `projects/ngx-app-msg`.

The demo site code is in `src/app/ngx-app-msg`.

This library was built with the Angular CLI, so...

```bash
# test the library...
ng test ngx-app-msg

# build the library...
ng build ngx-app-msg --prod

# serve the demo site locally...
ng serve
```

Note that changes to the library code **are not** automatically reflected in the locally-served demo site. You must run `ng build ngx-app-msg` whenever you make changes to the library. But the local server does watch for changes to the built library -- so you don't need to restart the server.

If you use [Wallaby](https://wallabyjs.com/) to run unit tests, select the `projects/ngx-app-msg/wallaby.js` as your config file.

## License
[MIT](https://github.com/nowzoo/ngx/projects/ngx-app-msg/blob/master/LICENSE)
npm package: @nowzoo/ngx-bootstrap-navbar
Description: Angular library for...
Latest version: 0.0.6

# @nowzoo/ngx-bootstrap-navbar


```bash
npm i --save @nowzoo/ngx-bootstrap-navbar
```

Import the module with `forRoot()`...
```typescript

import { NgxBootstrapNavbarModule } from '@nowzoo/ngx-bootstrap-navbar';

@NgModule({
  imports: [
    NgxBootstrapNavbarModule.forRoot()
  ]
})
export class AppModule { }

```
npm package: @nowzoo/ngx-crumbs
Description: Router-based breadcrumb and window title components for Angular.
Latest version: 1.1.0

# @nowzoo/ngx-crumbs

Router-based breadcrumb and window title components.

[Project & README](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-crumbs)
|
[Demo](https://nowzoo.github.io/ngx-libs/ngx-crumbs/)
|
[Demo Source Code](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-crumbs-demo/src/app)
|
[Documentation](https://nowzoo.github.io/ngx-libs/ngx-crumbs/docs/)


## Quick start

```bash
npm i @nowzoo/ngx-crumbs --save
```

Import the module...
```typescript
import { NgxCrumbsModule } from '@nowzoo/ngx-crumbs';
@NgModule({
  imports: [
    NgxCrumbsModule.forRoot()
  ],
})
export class AppModule { }
```

Add breadcrumbs to your route components using `ng-template` and the `ngxCrumb` directive. The content of the crumb can be dynamic...
```html
<ng-template ngxCrumb>Dynamic: {{counter}}</ng-template>
```

To have the crumbs automatically update the window title, add the `NgxCrumbsWindowTitleComponent` to your app component...

```html
<ngx-crumbs-window-title></ngx-crumbs-window-title>
```

By default the window title component displays breadcrumbs in reverse order and limited to the first and last ones. You can change this with the `showAll` and `reverse` inputs.

```html
<ngx-crumbs-window-title [showAll]="true" [reverse]="false"></ngx-crumbs-window-title>
```

To display Bootstrap-style breadcrumbs, use `NgxCrumbsComponent`...

```html
<ngx-crumbs></ngx-crumbs>
```



### Contributing

Clone the main repo and npm install...
```bash
git clone https://github.com/nowzoo/ngx-libs.git
cd ngx-libs
npm i
```

The library files are in `projects/ngx-crumbs`.

The demo code is in `projects/ngx-crumbs-demo`.

Building the library...
```bash
ng build ngx-crumbs
```

Testing the library...
```bash
ng test ngx-crumbs
```
To test with Wallaby, use the `wallaby.js` config at the root of the project directory.

Serving the demo...
```bash
# make sure you've built the library locally first with ng build ngx-crumbs
ng serve ngx-crumbs-demo
```

### Issues
Please submit issues to the main repo [here](https://github.com/nowzoo/ngx-libs/issues).

### License
[MIT](https://github.com/nowzoo/ngx-libs/blob/master/projects/ngx-crumbs/LICENSE)
npm package: @nowzoo/ngx-date-time-inputs
Description: Simple date and time inputs. No calendars or fancy controls or polyfills. They just guess the date or time the user means. Forgiving and (more or less) locale-aware.
Latest version: 8.0.0

# @nowzoo/ngx-date-time-inputs

Simple date and time inputs. No calendars or fancy controls or polyfills. They just guess the date or time the user means. Forgiving and (more or less) locale-aware.


## Installation

Install the library and its dependencies (moment and lodash).

```bash
npm i --save @nowzoo/ngx-date-time-inputs moment lodash
```

## Usage

Import the library module...

```typescript
import { NgxDateTimeInputsModule } from '@nowzoo/ngx-date-time-inputs';
@NgModule({
  imports: [
    NgxDateTimeInputsModule
  ]
})
export class MyModule { }
```

The `ngx-date-input` and `ngx-time-input` components are
now available for you to use:

```html
<ngx-date-input
  [inputId]="formId + 'date'"
  inputClass="form-control"
  [(ngModel)]="date"></ngx-date-input>
<ngx-time-input
  [inputId]="formId + 'time'"
  inputClass="form-control"
  [(ngModel)]="time"></ngx-time-input>
```

## Date Input API
The component implements `ControlValueAccessor`. The model is a string in the format `YYYY-MM-DD`.

Selector: `ngx-date-input`

Inputs
- `displayFormat: string` The format for displaying the date in the input. See Moment's [formatting docs](https://momentjs.com/docs/#/displaying/format/).
  Default: `'LL'` (e.g., September 4, 1986).
- `inputPlaceholder: string` A string to be used as the input's placeholder attribute. Default: `'Enter a date'`
- `inputId: string` A string to be used as the input's id.
- `inputClass: string` A string to be used as the input's class. Pass any error classes here.

## Time Input API
The component implements `ControlValueAccessor`. The model is a string in the format `HH:mm` (24-hour time).

Selector: `ngx-time-input`

Inputs

- `displayFormat: string` The format for displaying the date in the input. See Moment's [formatting docs](https://momentjs.com/docs/#/displaying/format/). Default: `'LT'` (time in the locale).
- `inputPlaceholder: string` A string to be used as the input's placeholder attribute. Default: `'Enter a time'`
- `inputId: string` A string to be used as the input's id.
- `inputClass: string` A string to be used as the input's class. Pass any error classes here.



## Development

See the [README](https://github.com/nowzoo/ngx) at the root of the repo for info on installation and testing.
npm package: @nowzoo/ngx-firebase-oob
Description: A service for handling Firebase out-of-band actions
Latest version: 0.0.1-alpha

# @nowzoo/ngx-firebase-oob

A service for handling Firebase out-of-band actions

[Project & README](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-firebase-oob)
|
[Demo](https://nowzoo.github.io/ngx-libs/ngx-firebase-oob/)
|
[Demo Source Code](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-firebase-oob-demo/src/app)
|
[Documentation](https://nowzoo.github.io/ngx-libs/ngx-firebase-oob/docs/)


## Quick start

```bash
npm i @nowzoo/ngx-firebase-oob --save
```



### Contributing

Clone the main repo and npm install...
```bash
git clone https://github.com/nowzoo/ngx-libs.git
cd ngx-libs
npm i
```

The library files are in `projects/ngx-firebase-oob`.

The demo code is in `projects/ngx-firebase-oob-demo`.

Building the library...
```bash
ng build ngx-firebase-oob
```

Testing the library...
```bash
ng test ngx-firebase-oob
```
To test with Wallaby, use the `wallaby.js` config at the root of the project directory.

Serving the demo...
```bash
# make sure you've built the library locally first with ng build ngx-firebase-oob
ng serve ngx-firebase-oob-demo
```

### Issues
Please submit issues to the main repo [here](https://github.com/nowzoo/ngx-libs/issues).

### License
[MIT](https://github.com/nowzoo/ngx-libs/blob/master/projects/ngx-firebase-oob/LICENSE)
npm package: @nowzoo/ngx-form-helpers
Description: Static helpers for Angular reactive forms
Latest version: 0.0.2

# @nowzoo/ngx-form-helpers

Static helpers for Angular reactive forms

[Project & README](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-form-helpers)
|
[Demo](https://nowzoo.github.io/ngx-libs/ngx-form-helpers/)
|
[Demo Source Code](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-form-helpers-demo/src/app)
|
[Documentation](https://nowzoo.github.io/ngx-libs/ngx-form-helpers/docs/)


## Quick start

```bash
npm i @nowzoo/ngx-form-helpers --save
```



### Contributing

Clone the main repo and npm install...
```bash
git clone https://github.com/nowzoo/ngx-libs.git
cd ngx-libs
npm i
```

The library files are in `projects/ngx-form-helpers`.

The demo code is in `projects/ngx-form-helpers-demo`.

Building the library...
```bash
ng build ngx-form-helpers
```

Testing the library...
```bash
ng test ngx-form-helpers
```
To test with Wallaby, use the `wallaby.js` config at the root of the project directory.

Serving the demo...
```bash
# make sure you've built the library locally first with ng build ngx-form-helpers
ng serve ngx-form-helpers-demo
```

### Issues
Please submit issues to the main repo [here](https://github.com/nowzoo/ngx-libs/issues).

### License
[MIT](https://github.com/nowzoo/ngx-libs/blob/master/projects/ngx-form-helpers/LICENSE)
npm package: @nowzoo/ngx-list
Description: Paginated, sorted and filtered lists from observables for Angular. The base library is agnostic as to styling and controls; a  set of Bootstrap 4 controls is available as a separately imported module.
Latest version: 1.1.5

# NgxList

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14.

## Code scaffolding

Run `ng generate component component-name --project ngx-list` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-list`.
> Note: Don't forget to add `--project ngx-list` or else it will be added to the default project in your `angular.json` file. 

## Build

Run `ng build ngx-list` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build ngx-list`, go to the dist folder `cd dist/ngx-list` and run `npm publish`.

## Running unit tests

Run `ng test ngx-list` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @nowzoo/ngx-message
Description: A service and component for displaying app messages.
Latest version: 1.0.3

# @nowzoo/ngx-message

A service and component for displaying app messages.

[Demo](https://nowzoo.github.io/ngx-libs/ngx-message/)
|
[Demo Source Code](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-message-demo/src/app)

[Documentation](https://nowzoo.github.io/ngx-libs/ngx-message/docs/)

## Quick start

```bash
npm i @nowzoo/ngx-message --save
```

Import the module...
```typescript
import { NgxMessageModule } from '@nowzoo/ngx-message';
@NgModule({
  imports: [
    NgxMessageModule.forRoot()
  ],
})
export class AppModule { }
```

Insert the component at a high level in your app...

```html
<!-- app.component.html -->
<router-outlet></router-outlet>
<ngx-message></ngx-message>
```

Use the service to display messages...
```typescript
import { NgxMessageService } from '@nowzoo/ngx-message';

export class MyComponent {

  constructor(
    private msgService: NgxMessageService
  ) { }

  showSuccess() {
    this.msgService.success('Hey, you are great!')
  }

  showWarning() {
    this.msgService.warn('Woops!')
  }

  showWait() {
    this.msgService.wait('Waiting...')
  }

}

```

### API

#### const NGX_MESSAGE_HIDE_DELAY
```ts
const NGX_MESSAGE_HIDE_DELAY: InjectionToken<number>
```

How long in milliseconds success and warn messages stay visible before being automatically hidden. Default: `3000`. You can provide a different value:

```ts
{provide: NGX_MESSAGE_HIDE_DELAY, useValue: 5000}
```

#### enum NgxMessageContext

```ts
enum NgxMessageContext  {
  warn = 'warn',
  success = 'success',
  wait = 'wait'
}
```

#### interface INgxMessage

```ts
interface INgxMessage {
  message: string;
  context: NgxMessageContext;
}
```

#### NgxMessageService

##### Properties
- `message$: Observable<INgxMessage>`

##### Methods
- `show(message: string, context: NgxMessageContext, hide: boolean)`
- `hide()`
- `wait(message: string)`
- `success(message: string)`
- `warn(message: string)`

#### NgxMessageComponent

### Contributing

See the [repo README](https://github.com/nowzoo/ngx-libs) for how to test and build this library.
npm package: @nowzoo/ngx-password-toggle
Description: A password toggle component for Angular.
Latest version: 0.0.1

# @nowzoo/ngx-password-toggle

A password toggle component for Angular.

[Project & README](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-password-toggle)
|
[Demo](https://nowzoo.github.io/ngx-libs/ngx-password-toggle/)
|
[Demo Source Code](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-password-toggle-demo/src/app)
|
[Documentation](https://nowzoo.github.io/ngx-libs/ngx-password-toggle/docs/)


## Quick start

```bash
npm i @nowzoo/ngx-password-toggle --save
```

Import the module...
```ts
import { NgxPasswordToggleModule } from '@nowzoo/ngx-password-toggle';

@NgModule({
  imports: [
    NgxPasswordToggleModule
  ],
})
export class AppModule { }
```
Use the component...

```html
<p>
  <input
    type="password"
    name="password"
    value="Super Secret"
    #passwordInput
    class="form-control">
</p>
<p>
  <ngx-password-toggle [input]="passwordInput"></ngx-password-toggle>
</p>

<p>
  Change the labels...
</p>

<p>
  <input
    type="password"
    name="password"
    value="Super Secret Something"
    #passwordInput2
    class="form-control">
</p>
<p>
  <ngx-password-toggle
    [input]="passwordInput2"
    hideLabel="Hide the password"
    showLabel="Show the password"></ngx-password-toggle>
</p>
```



### Contributing

Clone the main repo and npm install...
```bash
git clone https://github.com/nowzoo/ngx-libs.git
cd ngx-libs
npm i
```

The library files are in `projects/ngx-password-toggle`.

The demo code is in `projects/ngx-password-toggle-demo`.

Building the library...
```bash
ng build ngx-password-toggle
```

Testing the library...
```bash
ng test ngx-password-toggle
```
To test with Wallaby, use the `wallaby.js` config at the root of the project directory.

Serving the demo...
```bash
# make sure you've built the library locally first with ng build ngx-password-toggle
ng serve ngx-password-toggle-demo
```

### Issues
Please submit issues to the main repo [here](https://github.com/nowzoo/ngx-libs/issues).

### License
[MIT](https://github.com/nowzoo/ngx-libs/blob/master/projects/ngx-password-toggle/LICENSE)
npm package: @nowzoo/ngx-sign-in-redirect
Description: A service for handling sign in redirects.
Latest version: 1.0.0

# @nowzoo/ngx-sign-in-redirect

A service for handling sign in redirects.

[Project & README](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-sign-in-redirect)
|
[Demo](https://nowzoo.github.io/ngx-libs/ngx-sign-in-redirect/)
|
[Demo Source Code](https://github.com/nowzoo/ngx-libs/tree/master/projects/ngx-sign-in-redirect-demo/src/app)
|
[Documentation](https://nowzoo.github.io/ngx-libs/ngx-sign-in-redirect/docs/)


## Quick start

```bash
npm i @nowzoo/ngx-sign-in-redirect --save
```

Import the module...
```typescript
import { NgxSignInRedirectModule } from '@nowzoo/ngx-sign-in-redirect';
@NgModule({
  imports: [
    NgxSignInRedirectModule.forRoot()
  ],
})
export class AppModule { }
```



Use the service in your components...
```typescript
import { NgxSignInRedirectService } from '@nowzoo/ngx-sign-in-redirect';

export class MyGatedComponent implements OnInit {

  constructor(
    private svc: NgxSignInRedirectService,
    private auth: SomeAuthService,
    private router: Router
  ) { }

  ngOnInit() {
    if (! this.auth.signedIn) {
      this.svc.redirect = '/my/gated/path';
      this.router.navigate(['/sign-in']);
    }
  }

}

export class MySignInComponent implements OnInit {

  constructor(
    private svc: NgxSignInRedirectService,
    private auth: SomeAuthService,
  ) { }

  signIn(creds: any) {
    this.auth.signIn(creds)
      .then(() => {
        this.svc.redirectOnSignIn();
      })
  }

}

```


### Contributing

Clone the main repo and npm install...
```bash
git clone https://github.com/nowzoo/ngx-libs.git
cd ngx-libs
npm i
```

The library files are in `projects/ngx-sign-in-redirect`.

The demo code is in `projects/ngx-sign-in-redirect-demo`.

Building the library...
```bash
ng build ngx-sign-in-redirect
```

Testing the library...
```bash
ng test ngx-sign-in-redirect
```
To test with Wallaby, use the `wallaby.js` config at the root of the project directory.

Serving the demo...
```bash
# make sure you've built the library locally first with ng build ngx-sign-in-redirect
ng serve ngx-sign-in-redirect-demo
```

### Issues
Please submit issues to the main repo [here](https://github.com/nowzoo/ngx-libs/issues).

### License
[MIT](https://github.com/nowzoo/ngx-libs/blob/master/projects/ngx-sign-in-redirect/LICENSE)
npm package: @nowzoo/ngx-window-title
Description: Need to put a description
Latest version: 0.0.2
Deprecated: This package has been deprecated. Use @nowzoo/ngx-route-utils.

# @nowzoo/ngx-window-title


[Demo Site](https://nowzoo.github.io/ngx/ngx-window-title) | [Demo Code](https://github.com/nowzoo/ngx/tree/master/src/app/ngx-window-title)

## Install
```bash
npm i @nowzoo/ngx-window-title --save
```



## Quick Start

TKTK

## API

TKTK

## Contributing
Contributions and suggestions are welcome.

Get started...
```bash
git clone git@github.com:nowzoo/ngx.git
cd ngx
npm i
ng build ngx-window-title --prod
```

The library code is found in `projects/ngx-window-title`.

The demo site code is in `src/app/ngx-window-title`.

This library was built with the Angular CLI, so...

```bash
# test the library...
ng test ngx-window-title

# build the library...
ng build ngx-window-title --prod

# serve the demo site locally...
ng serve
```

Note that changes to the library code **are not** automatically reflected in the locally-served demo site. You must run `ng build ngx-window-title` whenever you make changes to the library. But the local server does watch for changes to the built library -- so you don't need to restart the server.

If you use [Wallaby](https://wallabyjs.com/) to run unit tests, select the `projects/ngx-window-title/wallaby.js` as your config file.

## License
[MIT](https://github.com/nowzoo/ngx/projects/ngx-window-title/blob/master/LICENSE)