# node-radius-utils

> Utilities for working with radius in node. For use with libraries such as [node-radius](https://www.npmjs.com/package/radius#dictionaries).

Latest version **1.2.0** (published 2019-02-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install node-radius-utils
pnpm add node-radius-utils
yarn add node-radius-utils
bun add node-radius-utils
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.0 |
| Published | 2019-02-15 |
| First published | 2019-02-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 3 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | w3cj |
| Maintainers | w3cj |
| Keywords | radius, freeradius, dictionary, dictionaries, node-radius, attributes, packetTypes |

## Links

- npm: https://www.npmjs.com/package/node-radius-utils
- Repository: https://github.com/w3cj/node-radius-utils
- Homepage: https://github.com/w3cj/node-radius-utils#readme
- Issues: https://github.com/w3cj/node-radius-utils/issues
- npm.io page: https://npm.io/package/node-radius-utils

## Recent versions

- 1.2.0 (latest) — 2019-02-15
- 1.1.3 — 2019-02-12
- 1.1.2 — 2019-02-12
- 1.1.1 — 2019-02-12
- 1.1.0 — 2019-02-12

## README

# Node Radius Utils

Utilities for working with radius in node. For use with libraries such as [node-radius](https://www.npmjs.com/package/radius#dictionaries).

* Includes all dictionary files from freeradius-server
* Typed locations of dictionary files
* Typed attributes for each dictionary
* Typed values for each dictionary
* Utility function to convert an object of attributes into an array of arrays

![example](radius-utils-example.gif)

## Install

```sh
npm i node-radius-utils
```

## Usage

Usage with node-radius:

```js
const radius = require('radius'); // npm i radius
const {
  dictionaries: {
    all,
    rfc2865,
    nokia,
    freeradius_internal,
  },
  attributesToArray,
} = require('node-radius-utils');

// Use the default dictionary which includes all dictionary files.
// Resolves to node_modules/radius-utils/dictionaries/default
radius.add_dictionary(all.file);

// Use a specific dictionary
// Resolves to node_modules/radius-utils/dictionaries/dictionary.rfc2865
radius.add_dictionary(rfc2865.file);

// Use a specific dictionary
// Resolves to node_modules/radius-utils/dictionaries/dictionary.nokia
radius.add_dictionary(nokia.file);

const {
  values: {
    PACKET_TYPE,
  },
} = freeradius_internal;

radius.encode({
  code: PACKET_TYPE.ACCESS_REQUEST, // resolves to Access-Request
  secret: 'super-secret',
  attributes: attributesToArray({
    // resolves to Nas-Ip-Address
    [rfc2865.attributes.NAS_IP_ADDRESS]: '192,168.1.123',
    // resolves to User-Name
    [rfc2865.attributes.USER_NAME]: 'bob',
    // resolves to User-Password
    [rfc2865.attributes.USER_PASSWORD]: 'hunter2',
    // resolves to Calling-Station-Id
    [rfc2865.attributes.CALLING_STATION_ID]: 'AA:BB:CC:DD:EE:FF',
    // resloves to Nokia-Service-Name
    [nokia.attributes.NOKIA_SERVICE_NAME]: 'SuperService',
  }),
});
```

---
_Source: https://npm.io/package/node-radius-utils · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
