open-index/open-npm huggingface dataset:
npm package: @ngqp/core
Description: Synchronizing form controls with the URL for Angular
Author: Ingo Bürk
Latest version: 14.1.0

[![Build Status](https://travis-ci.org/TNG/ngqp.svg?branch=master)](https://travis-ci.org/TNG/ngqp)
[![npm version](https://badge.fury.io/js/%40ngqp%2Fcore.svg)](https://www.npmjs.com/@ngqp/core)
[![Coverage](https://codecov.io/gh/TNG/ngqp/branch/master/graph/badge.svg)](https://codecov.io/gh/TNG/ngqp/)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-green.svg)](https://conventionalcommits.org)
[![Gitter](https://img.shields.io/gitter/room/TNG/ngqp.svg?style=flat-square)](https://gitter.im/ngqp)

<p align="center">
    <a href="https://ngqp.io">
        <img width="auto" height="72" src="https://raw.githubusercontent.com/TNG/ngqp/master/logo.svg?sanitize=true" alt="ngqp logo">
    </a>
</p>

<h3 align="center">ngqp</h3>

<p align="center">
    Declaratively synchronize form controls with the URL
    <br>
    <a href="https://ngqp.io/#/docs"><strong>Documentation</strong></a>
</p>

## Description

ngqp makes it easy to synchronize form controls with query parameters in your URL by using a declarative approach. Examples
include pagination information or the current settings of filters in a data view. ngqp is designed to resemble the Forms API
from `@angular/forms`, making it intuitive to work with.

## Quick Start

```
ng add @ngqp/core
```

Read the [Getting Started](https://www.ngqp.io/#/getting-started) page for information on how to use it.

## Contributing

See [CONTRIBUTING.md][contributing].

## Code of Conduct

Please take a moment to read the [Code of Conduct][coc].

---

[MIT License][license]

[license]: https://www.github.com/TNG/ngqp/blob/master/LICENSE
[contributing]: https://www.github.com/TNG/ngqp/blob/master/CONTRIBUTING.md
[coc]: https://www.github.com/TNG/ngqp/blob/master/CODE_OF_CONDUCT.md
npm package: @ngraveio/bc-ur-registry-crypto-coin-identity
Description: Provides BC UR type that uniquely identifies a crypto coin.
Author: Irfan Bilaloglu
Latest version: 0.3.1

# BC-UR-Registry-sync

This repository is the Crypto Coin Identity extension of [bc-ur-registry](https://github.com/KeystoneHQ/ur-registry)

Definition document: https://github.com/ngraveio/Research/blob/main/papers/nbcr-2023-001-coin-identity.md

## Installing

To install, run:

```bash
yarn add @ngraveio/bc-ur-registry-crypto-coin-identity
```

```bash
npm install --save @ngraveio/bc-ur-registry-crypto-coin-identity
```

## CDDL

The following specification of crypto-coin-identity is written in CDDL. When used embedded in another CBOR structure, this structure should be tagged #6.1401.

```
; Table should always be updated according to IANA registry 
; https://www.iana.org/assignments/cose/cose.xhtml#elliptic-curves
; https://www.rfc-editor.org/rfc/rfc9053.html#name-elliptic-curve-keys

P256=1	            ; NIST P-256 also known as secp256r1
P384=2	            ; NIST P-384 also known as secp384r1	
P521=3	            ; EC2	NIST P-521 also known as secp521r1		
X25519=4            ; X25519 for use w/ ECDH only		
X448=5              ; X448 for use w/ ECDH only		
Ed25519=6           ; Ed25519 for use w/ EdDSA only		
Ed448=7             ; Ed448 for use w/ EdDSA only		
secp256k1=8         ; SECG secp256k1 curve	IESG	

elliptic_curve = P256 / P384 / P521 / X25519 / X448 / Ed25519 / Ed448 / secp256k1

; Subtypes specific to some coins (e.g. ChainId for EVM chains)
hex_string = #6.263(bstr) ; byte string is a hexadecimal string no need for decoding
sub_type_exp = uint32 / str / hex_string

coin-identity = {
    curve: elliptic_curve,
    type: uint31, ; values from [SLIP44] with high bit turned off,
    ? subtype: [ sub_type_exp + ]  ; Compatible with the definition of several subtypes if necessary
}

curve = 1
type = 2
subtype = 3
```

## Usages Examples

### [CryptoCoinIdentity] Construct a crypto coin identity

Add additional information to a specific hdkey. It contains the following information:

1. Curve of the coin (e.g. \*_\*\* _`["secp256k1", "ed25519", "secp256r1”, “sr25519”]` ).\* This information is mandatory in the case of some blockchain (e.g. Tezos) supporting multiple elliptic curves.
2. BIP44 coin type as defined in [[SLIP44]](https://github.com/satoshilabs/slips/blob/master/slip-0044.md).
3. Subtype to define additional information to identify the coin (e.g. the chain ID for an EVM chain).

The URI format is as follows: bc-coin://{subtype2.subtype1.subtype0}.{curve}/type

Below the coinIdentity of Polygon (MATIC) as an example: "bc-coin://137.secp256k1/60"
```js
import {CryptoCoinIdentity, EllipticCurve } from from '@ngraveio/bc-ur-registry';

const curve = EllipticCurve.secp256k1 // 8
const type = 60
const chainId = '137'
const subTypes = [chainId]

const coinIdentity = new CryptoCoinIdentity(curve, type, subTypes)

console.log(coinIdentity.toCBOR().toString('hex'));
// "a3010802183c038163313337"
const ur = coinIdentity.toUREncoder().nextPart();
console.log(ur);
// :ur:crypto-coin-identity/otadayaocsfnaxlyiaeheoemaojsbajy"
```
npm package: @ngraveio/bc-ur-registry-crypto-portfolio-metadata
Description: Provides BC UR type for crypto portfolio metadata.
Author: Irfan Bilaloglu
Latest version: 0.1.1

# Crypto Portfolio Metadata

This repository is the crypto portfolio metadata [[NBCR-2023-002]](https://github.com/ngraveio/Research/blob/main/papers/nbcr-2023-002-multi-layer-sync.md) to specify additional information about the wallet, etc.

## Installing

To install, run:

```bash
yarn add @ngraveio/bc-ur-registry-crypto-portfolio-metadata
```

```bash
npm install --save @ngraveio/bc-ur-registry-crypto-portfolio-metadata
```

## Examples

Note: **Language code** must be a valid *iso-639* code.

### [CryptoPortfolioMetadata] Construct the crypto sync metadata.

```js
// Create sync id
const sync_id = Buffer.from('babe0000babe00112233445566778899', 'hex')

// Create metadata
const metadata = new CryptoPortfolioMetadata({ sync_id: sync_id, device: 'my-device', language_code: 'en', fw_version: '1.0.0' })

const cbor = metadata.toCBOR().toString('hex')
console.log(cbor)
// a40150babe0000babe001122334455667788990262656e0365312e302e3004696d792d646576696365

const ur = metadata.toUREncoder(1000).nextPart()
console.log(ur)
// ur:crypto-portfolio-metadata/oxadgdrdrnaeaerdrnaebycpeofygoiyktlonlaoidihjtaxihehdmdydmdyaainjnkkdpieihkoiniaihfrzmytvl
```

### [CryptoPortfolioMetadata] Construct the crypto sync metadata with additional properties.

```js
// Create sync id
const sync_id = Buffer.from('babe0000babe00112233445566778899', 'hex')

// Create metadata
const metadata = new CryptoPortfolioMetadata({
  sync_id: sync_id,
  device: 'my-device',
  language_code: 'en',
  fw_version: '1.0.0',
  string: 'hello world',
  number: 123,
  boolean: true,
  array: [1, 2, 3],
  object: { a: 1, b: 2 },
  null: null,
  date: new Date('2021-01-01T00:00:00.000Z'),
});

const cbor = metadata.toCBOR().toString('hex')
console.log(cbor)
// ab0150babe0000babe001122334455667788990262656e0365312e302e3004696d792d64657669636566737472696e676b68656c6c6f20776f726c64666e756d626572187b67626f6f6c65616ef565617272617983010203666f626a656374a2616101616202646e756c6cf66464617465c07818323032312d30312d30315430303a30303a30302e3030305a

const ur = metadata.toUREncoder(1000).nextPart()
console.log(ur)
````


### [CryptoPortfolioMetadata] Decode crypto sync metadata.

```js
// read ur
const ur = metadata.toUREncoder(1000).nextPart()

// decoded ur
const ur = URRegistryDecoder.decode(urData)

// get the class from the cbor data
const cryptoPortfolioMetadata = CryptoPortfolioMetadata.fromCBOR(ur.cbor)

// read its properties
cryptoPortfolioMetadata.getSyncId() // babe0000babe00112233445566778899
cryptoPortfolioMetadata.getLanguageCode() // en
cryptoPortfolioMetadata.getDevice() // my-device
cryptoPortfolioMetadata.getFirmwareVersion() // 1.0.0
```
npm package: @ngraveio/bc-ur-registry-hex-string
Description: Provides BC UR type for hex string.
Author: Irfan Bilaloglu
Latest version: 0.3.1

# Hex String CBOR type

This repository is the hex string extension of [bc-ur-registry](https://github.com/KeystoneHQ/ur-registry)

## Installing

To install, run:

```bash
yarn add @ngraveio/bc-ur-registry-hex-string
```

```bash
npm install --save @ngraveio/bc-ur-registry-hex-string
```

**Source:** https://github.com/toravir/CBOR-Tag-Specs/blob/master/hexString.md

# Hex String Tag for CBOR

This document specifies a tag for Hex String in Concise Binary Object Representation (CBOR) [1].

    Tag: 263
    Data item: byte string
    Semantics: Hexadecimal String
    Point of contact: Ravi R <ravir@employees.org>
    Description of semantics: https://github.com/toravir/CBOR-Tag-Specs/blob/master/hexString.md

# Semantics

Tag 263 can be applied to a byte string (major type 2) to indicate that the byte string is 
a hexadecimal string - any normal string is stored as hexadecimal string, but this tag means
that string is to be kept as hex format and does not mean anything to convert to ASCII or anything.

# References

[1] C. Bormann, and P. Hoffman. "Concise Binary Object Representation (CBOR)". RFC 7049, October 2013.

# Author

Ravi R <ravir@employees.org>
npm package: @ngreatorex/homie-device
Description: Homie Device for NodeJS
Author: Chris Carlson
Latest version: 0.2.1-pre

Homie Device
============

![CI](https://github.com/chrispyduck/homie-device/workflows/CI/badge.svg)

This is a (substantially rewritten) TypeScript port of a [NodeJS port](https://github.com/microclimates/homie-device) of the [Homie convention](https://github.com/marvinroger/homie) for lightweight IoT device interaction on an [MQTT](https://en.wikipedia.org/wiki/MQTT) message bus. It includes several modifications to make the API a bit easier to use.

Features
--------

* Device, Node, and Property
* Auto MQTT connect with optional username/password
* Auto MQTT re-connect
* Periodic $stats/uptime publishing
* $online will
* Device topic events
* Broadcast message events
* Periodic stats interval events
* Device/node/property announcement on connect
* Property send with retained value
* Settable properties
* Property ranges
* Lightweight

Quick Start
-----------

Maybe later...

Contributors
------------
<table id="contributors"><tr><td><img width="124" src="https://avatars2.githubusercontent.com/u/373538?v=4"><br/><a href="https://github.com/lorenwest">lorenwest</a></td><td><img width="124" src="https://avatars0.githubusercontent.com/u/7427179?v=4"><br/><a href="https://github.com/marcus-garvey">marcus-garvey</a></td><td><img width="124" src="https://avatars0.githubusercontent.com/u/7627635?v=4"><br/><a href="https://github.com/rozpuszczalny">rozpuszczalny</a></td><td><img width="124" src="https://avatars0.githubusercontent.com/u/10454636?v=4"><br/><a href="https://github.com/chrispyduck">chrispyduck</a></td><td><img width="124" src="https://avatars1.githubusercontent.com/u/35524902?v=4"><br/><a href="https://github.com/freddebacker">freddebacker</a></td><td><img width="124" src="https://avatars0.githubusercontent.com/u/52833340?v=4"><br/><a href="https://github.com/wolfgangcolsman">wolfgangcolsman</a></td></tr></table>

License
-------

May be freely distributed under the [MIT license](https://raw.githubusercontent.com/chrispyduck/homie-device/master/LICENSE).