open-index/open-npm huggingface dataset:
npm package: @invsqr/auth
Description: Using npm:
Latest version: 1.1.4

# Installation

Using npm:

```
npm install @invsqr/auth --save
```

# Setup

In your root module (e.g. `AppModule`):

```javascript
import { AuthModule, AuthService } from "auth";

@NgModule({
	declarations: [
		...
	],
	imports: [
		...
		AuthModule.forRoot({ apiUrl: "...", passwordResetRoute: "...", emailConfirmRoute: "..." })
	],
	providers: [
		...
		AuthService
	],
	bootstrap: [...]
})
export class AppModule { }
```

`AuthModule.forRoot` could, for instance, accept the application's environment file, assuming the environment file contains `apiUrl`, `passwordResetRoute` and `emailConfirmRoute` properties

# Usage

## Login

In your login template:

```html
...
	<input type="email" fdnUsername>

	<input type="password" fdnPassword>

	<button type="submit" fdnSubmit [submitMode]="SubmitMode.Login" (complete)="submitComplete($event)">Submit</button>
...
```

`fdnUsername` binds the email input's value to the `AuthService`, while `fdnPassword` binds to the password input, which get submitted for login when `click` is detected on the `fdnSubmit` button

## Other

See `SubmitMode` enum for all available submit operations, and the corresponding `AuthService` public methods for usage guidelines

```javascript
enum SubmitMode {
	/** POST username and password for login */
	Login,
	/** POST username, email and password for new account */
	Register,
	/** GET password reset email */
	GetReset,
	/** PUT reset token and password for new password */
	PutReset,
	/** PUT password for new password */
	ChangePassword
}
```

## Configuration

The `AuthModule.forRoot` should accept an object with project-specific configuration settings

* `apiUrl` - the root URL of the application API
* `passwordResetRoute` - the route that the password reset email will direct the user to and should accept the following path parameters:
	* `email` - the user's email address, to pre-populate and prevent them from having to enter themselves
	* `code` - the password reset token that should be included in the PUT request to submit the new password
* `emailConfirmRoute` - the route that the email confirmation will direct the user to and should accept the following path parameters:
	* `userId` - the user's id; pass this to the AuthService's parameter of the same name
	* `code` - the email confirmation token that should be included in the GET request to confirm the user's email address

## Notes

While input validation is left to the devices of the consumer (at least for now), [Angular's Reactive Forms](https://angular.io/guide/reactive-forms) are stongly encouraged.
npm package: @invsqr/logging
Description: Using npm:
Latest version: 1.0.0

# Installation

Using npm:

```
npm install @invsqr/logging --save
```

# Setup

In your root module (e.g. `AppModule`):

```js
import { LoggingModule, LoggingService, LogLevel } from "auth";

@NgModule({
	declarations: [
		...
	],
	imports: [
		...
		LoggingModule.forRoot({ apiUrl: "..." }, LogLevel.error, LogLevel.info)
	],
	providers: [
		...
		LoggingService
	],
	bootstrap: [...]
})
export class AppModule { }
```

`LoggingModule.forRoot` could, for instance, accept the application's environment file, assuming the environment file contains an `apiUrl` property.

A second, optional parameter can be passed in to `forRoot` in order to specify the log upload threshold, which determines at what level of severity a log will be *uploaded* (defaults to `LogLevel.error` if not specified).

A third, optional parameter can be passed in to `forRoot` in order to specify the log intercept threshold, which determines at what level of severity a log will be *intercepted* (defaults to `LogLevel.info` if not specified).

# Usage

Any `console.info`, `console.log`, `console.warn` or `console.error` will be intercepted (severity dependent on configuration) by the `LoggingService` and uploaded to the server (severity dependent on configuration).

There's no need to directly interface with the LoggingService unless the intent is to upload a log to the server while bypassing the `console` class or the current upload severity configuration. To do so:

```js
import { LogLevel, LoggingService } from "@invsqr/logging";

class ExampleClassPossiblyAComponentOrServiceDoesntMatterJustDontMakeYourClassNamesTooLong {

	constructor(private loggingService: LoggingService) {

		this.loggingService.log(LogLevel.info, "test message");

	}

}
```

# Notes

To use the `console` object and bypass the LoggingService's interceptor, pass `"_"` as the first argument:

```js
console.log("_", "this message will be ignored by the LoggingService interceptor");
```
npm package: @invx-ui/dropdown
Description: Dropdown for creating new Innovixx UI modules
Author: Innovixx
Latest version: 0.0.1

[![NPM](https://img.shields.io/npm/v/@invx-ui/dropdown)](https://www.npmjs.com/@invx-ui/dropdown)
![Bundle Size](https://img.shields.io/bundlephobia/minzip/@invx-ui/dropdown?label=zipped)

# React Dropdown

Read the full documentation [here](https://invx-ui.com/docs/dropdown).

### Installation

```bash
$ npm i @invx-ui/dropdown
$ # or
$ yarn add @invx-ui/dropdown
$ # or
$ pnpm add @invx-ui/dropdown
```

## Development

To develop this module locally, spin up the [demo app](./demo/App.demo.js):

```bash
$ git clone git@github.com:invx-ui/dropdown.git
$ pnpm
$ pnpm dev
$ open http://localhost:3000
```

## License

[MIT](https://github.com/invx-ui/dropdown/blob/master/LICENSE) Copyright (c) Invx UI