open-index/open-npm huggingface dataset:
npm package: @nordicsemiconductor/asset-tracker-cloud-aws
Description: A reference implementation of a serverless backend for an IoT product developed using AWS CDK in TypeScript.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 44.1.93

# nRF Asset Tracker for AWS [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/asset-tracker-cloud-aws.svg)](https://www.npmjs.com/package/@nordicsemiconductor/asset-tracker-cloud-aws)

[![GitHub Actions](https://github.com/NordicSemiconductor/asset-tracker-cloud-aws-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-aws-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

A reference implementation of a serverless backend for an IoT product developed
using [AWS CDK](https://aws.amazon.com/cdk) in
[TypeScript](https://www.typescriptlang.org/).

> :information_source:
> [Read the complete nRF Asset Tracker documentation](https://docs.nordicsemi.com/bundle/nrf-asset-tracker-saga/).
npm package: @nordicsemiconductor/asset-tracker-cloud-azure
Description: A reference implementation of a serverless backend for an IoT product developed using in TypeScript.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 15.0.15

# nRF Asset Tracker for Azure

[![GitHub Actions](https://github.com/NordicSemiconductor/asset-tracker-cloud-azure-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-azure-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

A reference implementation of a serverless backend for an IoT product developed
in [TypeScript](https://www.typescriptlang.org/).

> :construction: **The nRF Asset Tracker for Azure
> [is incomplete](https://github.com/NordicSemiconductor/asset-tracker-cloud-docs/issues/339)!**

> :information_source:
> [Read the complete nRF Asset Tracker documentation](https://nordicsemiconductor.github.io/asset-tracker-cloud-docs/).
npm package: @nordicsemiconductor/asset-tracker-cloud-device-simulator-aws
Description: Simulates an nRF9160-based device for the nRF Asset Tracker for AWS.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 8.0.24

# Simulates an nRF9160-based device [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/asset-tracker-cloud-device-simulator-aws.svg)](https://www.npmjs.com/package/@nordicsemiconductor/asset-tracker-cloud-device-simulator-aws)

[![GitHub Actions](https://github.com/NordicSemiconductor/asset-tracker-cloud-device-simulator-aws-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-device-simulator-aws-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Simulates an nRF9160-based device for the
[nRF Asset Tracker for AWS](https://github.com/NordicSemiconductor/asset-tracker-cloud-aws-js).

## Standalone usage

    npm exec -- @nordicsemiconductor/asset-tracker-cloud-device-simulator-aws <path to certificate.json>

> :information_source:
> [Read the complete nRF Asset Tracker documentation](https://docs.nordicsemi.com/bundle/nrf-asset-tracker-saga/).
npm package: @nordicsemiconductor/asset-tracker-cloud-device-simulator-azure
Description: Simulates an nRF9160-based device for the nRF Asset Tracker for Azure.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 10.0.23

# Simulates an nRF9160-based device [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/asset-tracker-cloud-device-simulator-azure.svg)](https://www.npmjs.com/package/@nordicsemiconductor/asset-tracker-cloud-device-simulator-azure)

[![GitHub Actions](https://github.com/NordicSemiconductor/asset-tracker-cloud-device-simulator-azure-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-device-simulator-azure-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Simulates an nRF9160-based device for the
[nRF Asset Tracker for Azure](https://github.com/NordicSemiconductor/asset-tracker-cloud-azure-js).

## Standalone usage

    npm exec -- @nordicsemiconductor/asset-tracker-cloud-device-simulator-azure <path to certificate.json>

> :information_source:
> [Read the complete nRF Asset Tracker documentation](https://docs.nordicsemi.com/bundle/nrf-asset-tracker-saga/).
npm package: @nordicsemiconductor/asset-tracker-cloud-device-ui-server
Description: Provides the server for device-ui to interact with the simulated device
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 7.0.0

# Device Simulator UI Server [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/asset-tracker-cloud-device-ui-server.svg)](https://www.npmjs.com/package/@nordicsemiconductor/asset-tracker-cloud-device-ui-server)

[![GitHub Actions](https://github.com/NordicSemiconductor/asset-tracker-cloud-device-ui-server-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-device-ui-server-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/NordicSemiconductor/asset-tracker-cloud-device-ui-server-js)](https://mergify.io)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Provides the server for
[device-ui](https://github.com/NordicSemiconductor/asset-tracker-cloud-device-ui-js)
to interact with the simulated device.

## Installation

    npm i --save --save-exact @nordicsemiconductor/asset-tracker-cloud-device-ui-server
npm package: @nordicsemiconductor/asset-tracker-cloud-docs
Description: The nRF Asset Tracker aims to provide a concrete end-to-end example for an IoT product in the asset tracker space.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 36.0.21

# nRF Asset Tracker documentation [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/asset-tracker-cloud-docs.svg)](https://www.npmjs.com/package/@nordicsemiconductor/asset-tracker-cloud-docs)

[![GitHub Actions](https://github.com/NordicSemiconductor/asset-tracker-cloud-docs/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-docs/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

The nRF Asset Tracker aims to provide a concrete end-to-end example for an
ultra-low power cellular IoT product in the asset tracker space.

> [Read the complete nRF Asset Tracker documentation](https://docs.nordicsemi.com/bundle/nrf-asset-tracker-saga/).

## Building the docs locally

Build the Docker image:

    docker build -t nordicsemiconductor/asset-tracker-cloud-docs/builder ./

Then build the docs:

    make html

The result will be placed in `./build/html`.

You can use `node-static` to serve it from this folder:

    npx node-static build/html

## Extending the documentation

The documentation is written in reStructuredText, following the
[nRF Connect SDK guidelines](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/doc_styleguide.html#rst-gl).

## Publishing the documentation

This documentation is built using [Sphinx](https://www.sphinx-doc.org/), and is
available for the `saga` branch and for the major
[nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html)
release versions in sub-directories in the `gh-pages` branch of this repository.

A deployment is triggered by pushing commits to the respective branch and is
automated using GitHub actions. See `./github/workflows/test-and-release.yaml`.
npm package: @nordicsemiconductor/asset-tracker-cloud-eslint-config-typescript
Description: ESLint config for all Asset Tracker Cloud Example projects.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 6.0.0

# TypeScript ESLint Config [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/asset-tracker-cloud-eslint-config-typescript.svg)](https://www.npmjs.com/package/@nordicsemiconductor/asset-tracker-cloud-eslint-config-typescript)

[![GitHub Actions](https://github.com/NordicSemiconductor/asset-tracker-cloud-eslint-config-typescript/workflows/Semantic%20Release/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-eslint-config-typescript/actions)
[![Known Vulnerabilities](https://snyk.io/test/asset-tracker-cloud/bifravst/eslint-config-typescript/badge.svg)](https://snyk.io/test/asset-tracker-cloud/bifravst/eslint-config-typescript)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://dashboard.mergify.io/badges/nordicsemiconductor/eslint-config-typescript&style=flat)](https://mergify.io)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

ESLint configuration (with
[TypeScript support](https://github.com/typescript-eslint/typescript-eslint))
for all Asset Tracker Cloud Example projects.

See
[@nordicsemiconductor/code-style](https://github.com/NordicSemiconductor/code-style)
for usage.

## Installation

    npm i --save-dev @nordicsemiconductor/asset-tracker-cloud-eslint-config-typescript
npm package: @nordicsemiconductor/cell-geolocation-helpers
Description: Helper functions for the cell geolocation feature
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 6.0.0

# Cell Geolocation Helpers [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/cell-geolocation-helpers.svg)](https://www.npmjs.com/package/@nordicsemiconductor/cell-geolocation-helpers)

[![GitHub Actions](https://github.com/NordicSemiconductor/cell-geolocation-helpers-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/cell-geolocation-helpers-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/NordicSemiconductor/cell-geolocation-helpers-js)](https://mergify.io)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Helper functions for the cell geolocation feature.

## Installation

    npm i --save-dev --save-exact @nordicsemiconductor/cell-geolocation-helpers

## `cellId`

Simple formatter to create identifier strings from cell information. This is
used to unify the way these ids are generated between frontend and backend.

## `cellFromGeolocations`

![Demo of cellFromGeolocations results](./map.gif)

_(Demo and above GIF are using 5km min cell radius and P=0.9.)_

Calculates a cell geo location based on a list of geo locations:

- the center is the average of all given locations (within a configurable
  percentile)
- the diameter returned is a circle that includes all given locations (within a
  configurable percentile), but at least `minCellDiameterInMeters`.

Check out the live demo on
<https://nordicsemiconductor.github.io/cell-geolocation-helpers-js>.
npm package: @nordicsemiconductor/cloudformation-helpers
Description: Helper functions which simplify working with AWS CloudFormation stacks
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 9.1.0
Deprecated: Moved to @bifravst/cloudformation-helpers

# CloudFormation Helpers [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/cloudformation-helpers.svg)](https://www.npmjs.com/package/@nordicsemiconductor/cloudformation-helpers)

[![GitHub Actions](https://github.com/NordicSemiconductor/cloud-aws-cloudformation-helpers-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/cloud-aws-cloudformation-helpers-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Helper functions which simplify working with AWS CloudFormation stacks.

## Installation

    npm i --save-dev --save-exact @nordicsemiconductor/cloudformation-helpers

## Usage

### `cfnResponse`

`cfnResponse` implements sending custom resource responses.

```typescript
import {
  cfnResponse,
  ResponseStatus,
} from "@nordicsemiconductor/cloudformation-helpers";
import { CloudFormationCustomResourceEvent } from "aws-lambda";

/**
 * Lambda creating a custom resource
 */
export const handler = async (
  event: CloudFormationCustomResourceEvent,
): Promise<void> => {
  // Create custom resource ...

  await cfnResponse({
    Status: ResponseStatus.SUCCESS,
    event,
    PhysicalResourceId: "MyCustomResource",
  });
};
```
npm package: @nordicsemiconductor/coiote-aws-converter-js
Description: Convert the LwM2M JSON encoding written by AVSystem's Coiote AWS integration to nRF Asset Tracker's LwM2M JSON encoding.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 2.0.1

# Coiote LwM2M JSON encoding to nRF Asset Tracker LwM2M JSON encoding [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/coiote-aws-converter-js.svg)](https://www.npmjs.com/package/@nordicsemiconductor/coiote-aws-converter-js)

[![Test and Release](https://github.com/NordicSemiconductor/asset-tracker-cloud-coiote-aws-converter-js/actions/workflows/test-and-release.yaml/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-coiote-aws-converter-js/actions/workflows/test-and-release.yaml)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Convert the LwM2M JSON encoding written by
[AVSystem's Coiote AWS integration](https://iotdevzone.avsystem.com/docs/Cloud_integrations/AWS_IoT_Core/Configuring_AWS_integration/)
to
[nRF Asset Tracker's LwM2M JSON encoding](https://github.com/NordicSemiconductor/lwm2m-types-js).

## Installation

```bash
npm ci
npm test
```

## Example

See [./example.ts](./example.ts)
npm package: @nordicsemiconductor/device-helpers
Description: Helper functions for interacting with the nRF9160 used during end-to-end tests
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 17.0.155

# Device helpers [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/device-helpers.svg)](https://www.npmjs.com/package/@nordicsemiconductor/device-helpers)

[![GitHub Actions](https://github.com/NordicSemiconductor/cloud-device-helpers-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/cloud-device-helpers-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Contains helper functions for interacting with the nRF9160:

[`connect`](./device/connect.ts) opens a serial connection to a device and
flashes the AT host, so cloud credentials can be provisioned using  
[`flashCredentials`](./device/flashCredentials.ts).

This is used by the nRF Asset Tracker
[AWS](https://github.com/NordicSemiconductor/asset-tracker-cloud-aws-js) and
[Azure](https://github.com/NordicSemiconductor/asset-tracker-cloud-azure-js) CLI
for flashing credentials to connected devices.

> :information_source:
> [Read the complete nRF Asset Tracker documentation](https://docs.nordicsemi.com/bundle/nrf-asset-tracker-saga/).

## Installation

    npm i --save --save-exact @nordicsemiconductor/device-helpers
npm package: @nordicsemiconductor/eslint-config-asset-tracker-cloud-typescript
Description: ESLint config for all nRF Asset Tracker projects.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 17.0.0

# TypeScript ESLint Config [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/eslint-config-asset-tracker-cloud-typescript.svg)](https://www.npmjs.com/package/@nordicsemiconductor/eslint-config-asset-tracker-cloud-typescript)

[![GitHub Actions](https://github.com/NordicSemiconductor/asset-tracker-cloud-eslint-config-typescript/workflows/Semantic%20Release/badge.svg)](https://github.com/NordicSemiconductor/asset-tracker-cloud-eslint-config-typescript/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/NordicSemiconductor/asset-tracker-cloud-eslint-config-typescript)](https://mergify.io)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

ESLint configuration (with
[TypeScript support](https://github.com/typescript-eslint/typescript-eslint))
for all nRF Asset Tracker projects.

See
[@nordicsemiconductor/asset-tracker-cloud-code-style](https://github.com/NordicSemiconductor/asset-tracker-cloud-code-style-js#readme)
for usage.

## Installation

    npm i --save-dev --save-exact @nordicsemiconductor/eslint-config-asset-tracker-cloud-typescript

## Usage

    echo '{"extends": "@nordicsemiconductor/eslint-config-asset-tracker-cloud-typescript"}' > .eslintrc
npm package: @nordicsemiconductor/firmware-ci-device-helpers
Description: Helper functions for interacting with the nRF9160 used during end-to-end tests
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 14.0.201

# Firmware CI runner device helpers [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/firmware-ci-device-helpers.svg)](https://www.npmjs.com/package/@nordicsemiconductor/firmware-ci-device-helpers)

[![GitHub Actions](https://github.com/NordicSemiconductor/cloud-firmware-ci-device-helpers-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/cloud-firmware-ci-device-helpers-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/NordicSemiconductor/cloud-firmware-ci-device-helpers-js)](https://mergify.io)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Contains helper functions for interacting with the nRF9160 used during
end-to-end tests:

[`connect`](./device/connect.ts) opens a serial connection to a device and
flashes the AT host, so cloud credentials can be provisioned using  
[`flashCredentials`](./device/flashCredentials.ts).

This is used by the
[AWS](https://github.com/NordicSemiconductor/cloud-aws-firmware-ci-runner-js)
and
[Azure](https://github.com/NordicSemiconductor/cloud-azure-firmware-ci-runner-js)
Firmware CI runners.

> :information_source:
> [Read the complete nRF Asset Tracker documentation](https://nordicsemiconductor.github.io/asset-tracker-cloud-docs/).

## Installation

    npm i --save --save-exact @nordicsemiconductor/firmware-ci-device-helpers
npm package: @nordicsemiconductor/firmware-ci-runner-aws
Description: Exposes real nRF9160 hardware to be used for end-to-end tests. Runs on AWS.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 8.0.297

# Firmware CI runner for AWS [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/firmware-ci-runner-aws.svg)](https://www.npmjs.com/package/@nordicsemiconductor/firmware-ci-runner-aws)

[![GitHub Actions](https://github.com/NordicSemiconductor/cloud-aws-firmware-ci-runner-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/cloud-aws-firmware-ci-runner-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/NordicSemiconductor/cloud-aws-firmware-ci-runner-js)](https://mergify.io)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Exposes real nRF9160 hardware to be used for end-to-end tests. Runs on AWS.

> :information_source:
> [Read the complete nRF Asset Tracker documentation](https://nordicsemiconductor.github.io/asset-tracker-cloud-docs/).
npm package: @nordicsemiconductor/firmware-ci-runner-azure
Description: Runs firmware on a real device connected to Azure IoT hub.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 4.0.215

# Firmware CI runner for Azure [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/firmware-ci-runner-azure.svg)](https://www.npmjs.com/package/@nordicsemiconductor/firmware-ci-runner-azure)

[![GitHub Actions](https://github.com/NordicSemiconductor/cloud-azure-firmware-ci-runner-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/cloud-azure-firmware-ci-runner-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/NordicSemiconductor/cloud-azure-firmware-ci-runner-js)](https://mergify.io)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Exposes real nRF9160 hardware to be used for end-to-end tests. Runs on Azure.

> :information_source:
> [Read the complete nRF Asset Tracker documentation](https://nordicsemiconductor.github.io/asset-tracker-cloud-docs/).
npm package: @nordicsemiconductor/from-env
Description: Helper function which ensures that required environment variables are set.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 3.0.1
Deprecated: Moved to @bifravst/from-env

# fromEnv [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/from-env.svg)](https://www.npmjs.com/package/@nordicsemiconductor/from-env)

[![GitHub Actions](https://github.com/NordicSemiconductor/from-env-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/from-env-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Helper function which ensures that required environment variables are set.

## Example

```typescript
import { fromEnv } from "@nordicsemiconductor/from-env";

const { env } = fromEnv({
  env: "MY_ENV",
})(process.env);
```

This will throw an exception if `MY_ENV` is not set on `process.env`. Otherwise,
`env` will not contain the value of `process.env.MY_ENV`.

## Installation

    npm i --save-dev --save-exact @nordicsemiconductor/from-env

## Usage

See [`fromEnv.spec.ts`](./src/fromEnv.spec.ts).
npm package: @nordicsemiconductor/lwm2m-types
Description: TypeScript type definitions and JSON schema for the objects defined in the LwM2M Object Registry.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 2.7.0

# LwM2M TypeScript type definitions and JSON schema [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/lwm2m-types.svg)](https://www.npmjs.com/package/@nordicsemiconductor/lwm2m-types)

[![Test and Release](https://github.com/NordicSemiconductor/lwm2m-types-js/actions/workflows/test-and-release.yaml/badge.svg)](https://github.com/NordicSemiconductor/lwm2m-types-js/actions/workflows/test-and-release.yaml)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/NordicSemiconductor/lwm2m-types-js)](https://mergify.io)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

TypeScript type definitions and JSON schema for the objects defined in the
[LwM2M Object Registry](https://github.com/OpenMobileAlliance/lwm2m-registry).

This is useful if you need to validate a _JSON_ representation of those objects.

## Installation

```bash
npm ci
// Clone LwM2M object registry
git clone https://github.com/OpenMobileAlliance/lwm2m-registry.git --depth 1
npm test
```

## Usage

See [example.ts](./example.ts)

## JSON document structure

LwM2M values are encoded as a JSON document, where the key is an extended
version of the LwM2M URN: `<ObjectID>:<ObjectVersion>@<LwM2MVersion>` (where
`ObjectVersion` and/or `LwM2MVersion` can be omitted if it is `1.0`).

[Example](./known-good-shadow.json)

## Building the types

```bash
git clone https://github.com/OpenMobileAlliance/lwm2m-registry.git --depth 1
npx tsx cli/generate-types.ts
npx tsx cli/generate-json-schema.ts
# Format the source
npx prettier --write ./
# Make sure result compiles
npx tsc
# Compile JS exports
npx swc -d types-dist ./types
# Make sure example runs
npx tsx ./example.ts
```
npm package: @nordicsemiconductor/nrfcloud-location-services-tests
Description: Verifies the nRF Cloud Location Services REST API.
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 7.0.1

# nRF Cloud Location Services tests [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/nrfcloud-location-services-tests.svg)](https://www.npmjs.com/package/@nordicsemiconductor/nrfcloud-location-services-tests)

[![GitHub Actions](https://github.com/NordicSemiconductor/nrfcloud-location-services-tests-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/nrfcloud-location-services-tests-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)

Tests the nRF Cloud Location services

- [Assisted GPS](https://api.nrfcloud.com/v1#tag/Assisted-GPS/operation/GetAssistanceData)
- [Predicted GPS](https://api.nrfcloud.com/v1#tag/Predicted-GPS/operation/GetPredictedAssistanceData)
- [Ground fix](https://api.nrfcloud.com/v1#tag/Ground-Fix/operation/GetLocationFromCellTowersOrWifiNetworks)

Configure these environment variables:

- `API_HOST` (optional, endpoint to run the tests against)
- `TEAM_ID`
- `LOCATION_SERVICES_SERVICE_KEY`

Then run:

    npm ci
    npm run test

## Authentication using Evaluation Token

For evaluation purposes, users can generate an evaluation token (see the
[nRF Cloud Location Services documentation](https://docs.nrfcloud.com/AccountAndTeamManagement/AuthenticationAndAuthorization/TokensAndKeys/#evaluation-token)
for further information.)

[evaluation-token-authentication.spec.ts](./api-verification/evaluation-token-authentication.spec.ts)
demonstrates the usage of an evaluation token to authenticate requests.

For this test you need to configure the environment variable `EVALUATION_TOKEN`,
which contains your nRF Cloud Location Service Evaluation Token.

## Device Token Authentication

> :warning: Using REST with JWT on a cellular device is not recommended because
> this protocol (REST using TLS with JWT authentication) has a very large
> overhead. MQTT is recommended for cellular devices.

[device-token-authentication.spec.ts](./api-verification/device-token-authentication.spec.ts)
demonstrates the usage of per-device tokens to authenticate requests.

The tests register a private key for a virtual device and use that key to sign a
JWT.

For this test you need to configure the environment variable `API_KEY`, which
contains your nRF Cloud REST API key.
npm package: @nordicsemiconductor/object-to-env
Description: Helper functions which converts an object to environment variable definitions
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 7.0.7
Deprecated: Moved to @bifravst/object-to-env

# objectToEnv [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/object-to-env.svg)](https://www.npmjs.com/package/@nordicsemiconductor/object-to-env)

[![GitHub Actions](https://github.com/NordicSemiconductor/object-to-env-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/object-to-env-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Convert an object to environment variable definitions.

## Installation

    npm i --save-dev --save-exact @nordicsemiconductor/object-to-env

## Usage

See [`objectToEnv.spec.ts`](./src/objectToEnv.spec.ts).
npm package: @nordicsemiconductor/package-layered-lambdas
Description: Packages lambda functions and layers for AWS lambda
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 12.0.10

# Package Layered Lambdas [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/package-layered-lambdas.svg)](https://www.npmjs.com/package/@nordicsemiconductor/package-layered-lambdas)

[![GitHub Actions](https://github.com/NordicSemiconductor/cloud-aws-package-layered-lambdas-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/cloud-aws-package-layered-lambdas-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![Mergify Status](https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/NordicSemiconductor/cloud-aws-package-layered-lambdas-js)](https://mergify.io)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)

Packages lambdas with intra-project dependencies using Webpack and a base layer
with the dependencies defined in `package.json`.

Checksums are created for dependencies per lambda so that rebuild only happens
when files are changed.

Packaged lambdas are published to S3 so they can be picked up from
CloudFormation and shared also cached for other developers.

## Installation

    npm i --save-dev --save-exact @nordicsemiconductor/package-layered-lambdas

## Usage

More background information on this project and usage instructions can be found
in
[this blog post](https://coderbyheart.com/how-i-package-typescript-lambdas-for-aws/).

Also, have a look at the [test stack](./cdk/cloudformation.ts), which uses this
library to publish a lambda and especially the
[`cdk/prepareResources.ts`](./cdk/prepareResources.ts) which shows how to
package a lambda and a layer.

## Use with Yarn

The lockfile name and the command used to install the dependencies of
`packBaseLayer` are configureable. For use with Yarn use these settings:

```typescript
packBaseLayer({
  lockFileName: "yarn.lock",
  installCommand: [
    "yarn",
    "install",
    "--frozen-lockfile",
    "--ignore-scripts",
    "--production",
  ],
});
```
npm package: @nordicsemiconductor/random-words
Description: Returns random 8-letter words from the Webster's Unabridged Dictionary
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 8.0.1
Deprecated: Moved to @bifravst/random-words

# Generate random 8 letter words [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/random-words.svg)](https://www.npmjs.com/package/@nordicsemiconductor/random-words)

[![GitHub Actions](https://github.com/NordicSemiconductor/random-words-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/random-words-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: standard](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/standard/standard)

Returns random 8-letter words from the
[Webster's Unabridged Dictionary](http://www.gutenberg.org/ebooks/29765).

## Installation

    npm i --save-dev --save-exact @nordicsemiconductor/random-words

## Usage

    npm i --save --save-exact @nordicsemiconductor/random-words

```javascript
import { randomWords } from "@nordicsemiconductor/random-words";

console.log(randomWords()); // [ 'scoparin', 'prowling', 'priedieu', 'gantline' ]
```

## CLI Usage

    npx @nordicsemiconductor/random-words
    # npx: installed 4 in 1.216s
    # catopron allodium registry misalter
npm package: @nordicsemiconductor/rsrp-bar
Description: React component to render an RSRP bar or a failover icon in case the reported value is not valid
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 8.0.4
Deprecated: Moved to @bifravst/rsrp-bar

# RSRP Bar [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/rsrp-bar.svg)](https://www.npmjs.com/package/@nordicsemiconductor/rsrp-bar)

![Test, Build and Release](https://github.com/NordicSemiconductor/rsrp-bar-js/workflows/Test,%20Build%20and%20Release/badge.svg)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

React component to render an RSRP bar or a failover icon in case the reported
value is not valid.

![Demo](./screenshot.png)

## Installation

    npm i --save-dev --save-exact @nordicsemiconductor/rsrp-bar

## Usage

See [`./src/demo.tsx`](./src/demo.tsx) for an example.

## Demo

    npm start
npm package: @nordicsemiconductor/timestream-helpers
Description: Helper functions which simplify working with AWS Timestream
Author: Nordic Semiconductor ASA | nordicsemi.no
Latest version: 6.0.2
Deprecated: Moved to @bifravst/timestream-helpers

# Timestream Helpers [![npm version](https://img.shields.io/npm/v/@nordicsemiconductor/timestream-helpers.svg)](https://www.npmjs.com/package/@nordicsemiconductor/timestream-helpers)

[![GitHub Actions](https://github.com/NordicSemiconductor/cloud-aws-timestream-helpers-js/workflows/Test%20and%20Release/badge.svg)](https://github.com/NordicSemiconductor/cloud-aws-timestream-helpers-js/actions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)
[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)
[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)

Helper functions which simplify working with AWS Timestream.

## Installation

    npm i --save --save-exact @nordicsemiconductor/timestream-helpers