open-index/open-npm huggingface dataset:
npm package: @qrshark/qr
Description: A small and opinionated QR code generator that only supports 99% of usecases
Author: Kyle Zheng
Latest version: 1.0.0

# @qrshark/qr

A small and opinionated QR code generator in Javascript that only supports 99% of usecases.

This library only generates data and must be paired with a render function to create the final image.

## Features

- Only `Byte` encoding mode (aka UTF8)

- Only Versions 1 - 13 (aka does not support preposterous sizes)
  | Error correction | Low (7%) | Medium (15%) | Quartile (25%) | High (30%) |
  | ---------------- | --- | ------ | -------- | ---- |
  | Max bytes/ASCII characters | 425 | 331 | 241 | 177 |
  - `https://www.this-is-a-177-character-long-url-for.example/so-your-url-will-probably-fit?even-with=queries&and-parameters=like-this#and-you-can-even-add-a-fragment-and-it-will-fit`
- No mask scoring step (aka faster with no downsides)

## Usage

```js
import { generate } from "@qrshark/qr";
const qr = generate("hello there");
```

### Rendering

The `qr` result contains all the information needed to render a QR code. You can copy any design's render function from https://qrframe.kylezhe.ng, but here is a simple SVG example.

```js
// Simple SVG example
const width = qr.version * 4 + 17;
const margin = 2;
const size = width + 2 * margin;
let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${size} ${size}">`;
svg += `<rect width="${size}" height="${size}" fill="#fff"/>`;
svg += `<path fill="#000" d="`;
for (let y = 0; y < width; y++) {
  for (let x = 0; x < width; x++) {
    if (qr.matrix[y * width + x] & 1) {
      svg += `M${x + margin},${y + margin}h1v1h-1z`;
    }
  }
}
svg += `"/>`;
svg += `</svg>`;
```

### Misc

This library uses the `TextEncoder` API by default to encode strings into UTF8, which may not be available (e.g. React Native). You can set the encoder to `"ASCII"`, which will work for all normal URLs or pass in a custom encoder function if you have specific needs.

The code takes shortcuts only possible because of certain assumptions. These are marked with a comment like `// invariant: some assumption`. When modifying, pay attention to the invariants and the constants at the bottom of the file.
npm package: @qrsln/google-charts-angular
Description: A wrapper for the Google Charts library written with Angular
Author: Krsln
Latest version: 24.8.9-beta.3

# GoogleChartsAngular

[![Support](https://img.shields.io/badge/Patreon-whitesmoke?style=for-the-badge)](https://www.patreon.com/qrsln)
[![npm](https://img.shields.io/npm/v/@qrsln/lootstrap-angular?style=for-the-badge)](https://www.npmjs.com/package/@qrsln/google-charts-angular)
[![npm](https://img.shields.io/npm/dt/@qrsln/lootstrap-angular?style=for-the-badge)](https://npmcharts.com/compare/@qrsln/google-charts-angular?minimal=true)

> A wrapper for the [Google Charts library](https://google-developers.appspot.com/chart/) written in Angular.

[![Demo](https://img.shields.io/badge/Demo-Usage-orange?style=for-the-badge)](https://krsln.github.io/NgGoogleCharts)
![GitHub top language](https://img.shields.io/github/languages/top/krsln/NgGoogleCharts?style=for-the-badge)

## Install

With [npm](https://npmjs.org/) installed, run

```bash
npm install @qrsln/GoogleChartsAngular
```

## Usage

Import the `GoogleChartsModule` in your `app.module.ts`:

```typescript
import { GoogleChartsModule } from 'angular-google-charts';

@NgModule({
  ...
  imports: [
    ...
    GoogleChartsModule,
    ...
  ],
  ...
})
export class AppModule {}
```
> OR  

Import the `provideGoogleCharts` in your `app.config.ts`:

```typescript
import {provideGoogleCharts} from "@qrsln/google-charts-angular";

export const appConfig: ApplicationConfig = {
  providers: [
    // ...
    provideGoogleCharts({
      version: 'current',
      safeMode: true,
      mapsApiKey: 'your-api-key'
    }),
  ]
};
```

And create a `GoogleChart` component somewhere in your application:

```html
<GoogleChart
  [title]="chart.title"
  [type]="chart.type"
  [data]="chart.data"
  [columns]="chart.columns"
  [options]="chart.options"
>
</GoogleChart>
```

## Detailed Instructions

Find the full readme at [GitHub](https://github.com/krsln/NgGoogleCharts).

## License

MIT
npm package: @qrsln/highlighter
Description: Based on highlighter.js
Author: Qrsln
Latest version: 24.8.6-beta.0

## Highlighter

[![Support](https://img.shields.io/badge/Patreon-white?style=for-the-badge)](https://www.patreon.com/qrsln)
[![npm](https://img.shields.io/npm/v/@qrsln/highlighter?style=for-the-badge)](https://www.npmjs.com/package/@qrsln/highlighter)
[![npm](https://img.shields.io/npm/dm/@qrsln/highlighter?style=for-the-badge)](https://npmcharts.com/compare/@qrsln/highlighter?minimal=true)

Supported Languages: typescript, html, css/scss/less, csharp, javascript, json, php, python, markdown

> For Angular

[![Demo](https://img.shields.io/badge/Demo-blue?style=for-the-badge)](https://krsln.github.io/Showcase/NgHighlighter/Overview)

#### Properties

| Params        | desc                                                            |
|---------------|-----------------------------------------------------------------|
| [Theme]       | _highlight.js theme_ [default: 'stackoverflow-dark']            |
| [Code]        | code here or innerHTML [if code not set it will look innerHTML] |
| [LineNumbers] | Line Numbers [default: false]                                   |
| [Lang]        | code language here [necessary] Default value: `html`            |
| [Options]     | _highlight.js options_                                          |

#### app.module.ts

```typescript
import {HighlighterModule} from '@qrsln/highlighter';

@NgModule({
  imports: [HighlighterModule, /*...*/],
})
```

#### Usage

```html

<div Highlighter [theme]="selectedTheme" [lang]="'typescript'"  [lineNumbers]="lineNumbers" [innerHtml]="CODES.Typescript"></div>

<textarea Highlighter [theme]="selectedTheme" [lang]="'csharp'" [lineNumbers]="lineNumbers" [code]="CODES.Typescript"></textarea>
<textarea Highlighter [theme]="selectedTheme" [lang]="'typescript'" [lineNumbers]="lineNumbers">
class MyClass {
  public static myValue: string;
  constructor(init: string) {
    this.myValue = init;
  }
}
import fs = require("fs");
module MyModule {
  export interface MyInterface extends Other {
    myProperty: any;
  }
}
declare magicNumber number;
myArray.forEach(() => { }); // fat arrow syntax
</textarea>

```

```typescript
selectedTheme = 'stackoverflow-dark';
lineNumbers = false;

CODES = {
  Typescript: `
class MyClass {
  public static myValue: string;
  constructor(init: string) {
    this.myValue = init;
  }
}
import fs = require("fs");
module MyModule {
  export interface MyInterface extends Other {
    myProperty: any;
  }
}
declare magicNumber number;
myArray.forEach(() => { }); // fat arrow syntax
`,
};
```   

### Screenshots
![](https://github.com/krsln/Showcase/raw/master/Docs/Images/Highlighter/Highlighter_Stackoverflow_Dark_2022-01-30.png "Stackoverflow Dark")  
![](https://github.com/krsln/Showcase/raw/master/Docs/Images/Highlighter/Highlighter_Stackoverflow_Light_2022-01-30.png "Stackoverflow Light")
npm package: @qrsln/lootstrap
Description: Lootstrap is a scss library and is still in beta! There is much to improve!
Author: Qrsln
Latest version: 26.3.19

## Lootstrap

[![Support](https://img.shields.io/badge/Patreon-whitesmoke?style=for-the-badge)](https://www.patreon.com/qrsln)
[![npm](https://img.shields.io/npm/v/@qrsln/lootstrap?style=for-the-badge)](https://www.npmjs.com/package/@qrsln/lootstrap)
[![npm](https://img.shields.io/npm/dm/@qrsln/lootstrap?style=for-the-badge)](https://npmcharts.com/compare/@qrsln/lootstrap?minimal=true)

[![Demo](https://img.shields.io/badge/Demo-Usage-orange?style=for-the-badge)](https://krsln.github.io/Lootstrap)
![GitHub top language](https://img.shields.io/github/languages/top/krsln/LootStrap?style=for-the-badge)

Lootstrap is a scss library and is still in beta! There is much to improve!

#### Usage for Angular
> angular.json

````json
{
  "styles": [
    "node_modules/@qrsln/lootstrap/dist/css/lootstrap.css"
  ]
}
````
npm package: @qrt/button
Description: QRT Button
Author: QRT Brothers
Latest version: 0.0.3

# QRT Button

## Example

### From your project folder, install the component from npm.
```
npm install @qrt/button
```

### Import the component.

In an HTML page:
```html
<script type="module">
import './path-to/qrt/button.js';
</script>
```

### Add the component to your application or component:
```html
<qrt-button>Click</qrt-button>
```
npm package: @qrvey/fetch
Description: ![install size](https://packagephobia.now.sh/badge?p=%40qrvey%2Ffetch) ![coverage](https://img.shields.io/badge/unit_test_coverage-93%25-brightgreen)
Latest version: 1.2.4-782

# @qrvey/fetch

![install size](https://packagephobia.now.sh/badge?p=%40qrvey%2Ffetch)
![coverage](https://img.shields.io/badge/unit_test_coverage-93%25-brightgreen)

**@qrvey/fetch** is a lightweight and reliable library for making RESTful requests in Node.js applications. It uses the native `fetch` library (Node.js 18+), avoiding the need for external dependencies.

## Installation

You can install the **@qrvey/fetch** package via npm. Run the following command in your terminal:

```bash
npm install @qrvey/fetch
```

## API Documentation

### Available Methods

-   `get(endpoint: string, options: IHttpActionOptions): Promise<any>`: Performs an HTTP GET request.
-   `post(endpoint: string, body: unknown, options: IHttpActionOptions): Promise<any>`: Performs an HTTP POST request.
-   `put(endpoint: string, body: unknown, options: IHttpActionOptions): Promise<any>`: Performs an HTTP PUT request.
-   `patch(endpoint: string, body: unknown, options: IHttpActionOptions): Promise<any>`: Performs an HTTP PATCH request.
-   `delete(endpoint: string, body: unknown, options: IHttpActionOptions): Promise<any>`: Performs an HTTP DELETE request.


### IHttpActionOptions
-   `headers` (object): An optional object containing custom headers to include in the request. It allows you to set specific HTTP headers like Authorization, Content-Type, etc.

- `useApiKey` (boolean): If set to true, the request will include an API key in the headers. The API key is retrieved from the **process.env.API_KEY** environment variable.

- `baseDomain` (string): An optional base domain to override the default domain used in the request URL. If not provided, the value from the **process.env.DOMAIN** environment variable will be used as base domain.

- `privateDomain` (boolean):  If set to true, the request will use the private domain specified in the **process.env.PRIVATE_DOMAIN** environment variable instead of the base domain.


- `queryParameters` (Record<string, string | string[]>): An optional object representing query parameters to include in the request URL. It allows you to pass multiple query parameters as key-value pairs, with support for arrays to represent multiple values for a single key.

## Example Usage

```js
const options: IHttpActionOptions = {
    headers: {
        'Authorization': 'Bearer BEARER_TOKEN_VALUE',
    },
    useApiKey: true,
    baseDomain: 'https://api.example.com',
    privateDomain: false,
    queryParameters: {
        filter: 'active',
        page: '1'
    }
};

FetchService.get('/endpoint', options)
    .then(response => console.log(response))
    .catch(error => console.error('Error:', error));
```
npm package: @qrvey/id-generator
Description: ![install size](https://packagephobia.com/badge?p=%40qrvey%2Fid-generator) ![coverage](https://img.shields.io/badge/unit_test_coverage-100%25-brightgreen)
Latest version: 1.0.1

# @qrvey/id-generator

![install size](https://packagephobia.com/badge?p=%40qrvey%2Fid-generator)
![coverage](https://img.shields.io/badge/unit_test_coverage-100%25-brightgreen)

The `@qrvey/id-generator` package provides a simple utility function to generate unique IDs using the nanoid library, with customizable alphabet and length.

## Installation

You can install the package using npm or yarn:

```bash
npm install @qrvey/id-generator
```

Or with yarn:

```bash
yarn add @qrvey/id-generator
```

## Usage

The getId function allows you to generate unique IDs with a customizable alphabet and length.

### Default Configuration
-   **`alphabet`**: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-   **`length`**: 21

## Basic Example

```typescript
import { getId } from '@qrvey/id-generator';

const id = getId(); 
console.log(id); // Example output: 'dZ3P1o2xY9B5RgTf8UAcW'
```

## Custom Alphabet and Length

```typescript
import { getId } from '@qrvey/id-generator';

const customAlphabet = '0123456789abcdef';
const customLength = 10;

const customId = getId(customAlphabet, customLength);
console.log(customId); // Example output: '4a8b7d3e1c'
```
npm package: @qrvey/infrastructure-manager
Description: ![install size](https://packagephobia.com/badge?p=%40qrvey%2Finfrastructure-manager) ![coverage](https://img.shields.io/badge/unit_test_coverage-53%25-brightgreen)
Latest version: 1.0.5-539

# @qrvey/infrastructure-manager

![install size](https://packagephobia.com/badge?p=%40qrvey%2Finfrastructure-manager)
![coverage](https://img.shields.io/badge/unit_test_coverage-53%25-brightgreen)

The `@qrvey/infrastructure-manager` package provides ...

## Installation

You can install the package using npm or yarn:

```bash
npm install @qrvey/infrastructure-manager
```

Or with yarn:

```bash
yarn add @qrvey/infrastructure-manager
```
npm package: @qrvey/map-search
Description: **@qrvey/map-search** is a .....
Latest version: 1.0.4

# @qrvey/map-search

**@qrvey/map-search** is a .....

## Installation

You can install the **@qrvey/map-search** package via npm. Run the following command in your terminal:

```bash
npm install @qrvey/map-search
```

## API Documentation

### Available Methods

## Example Usage

```js
....
```
npm package: @qrvey/object-storage
Description: ![install size](https://packagephobia.com/badge?p=%40qrvey%2Fobject-storage) ![coverage](https://img.shields.io/badge/unit_test_coverage-8%25-brightgreen)
Latest version: 1.0.6-953

# @qrvey/object-storage

![install size](https://packagephobia.com/badge?p=%40qrvey%2Fobject-storage)
![coverage](https://img.shields.io/badge/unit_test_coverage-8%25-brightgreen)

The `@qrvey/object-storage` package provides a unified interface for ...

## Installation

You can install the package using npm or yarn:

```bash
npm install @qrvey/object-storage
```

Or with yarn:

```bash
yarn add @qrvey/object-storage
```
npm package: @qrvey/qrvey-smart-analyzer
Description: Smart Analyzer unleashes the power of artificial intelligence (AI) to acquire new insights into your data. This feature establishes a link between ChatGPT and the data in your chart, enabling you to ask ChatGPT questions in natural language about your dat
Author: Qrvey Inc
Latest version: 2.0.7

# Qrvey Smart Analyzer (`@qrvey/qrvey-smart-analyzer`)

> **🚨 Version 2.0.0 is specifically built for Qrvey Version 9.0**

---

## 📌 Description

**Qrvey Smart Analyzer** unleashes the power of artificial intelligence (AI) to acquire new insights into your data.

This feature creates a seamless integration between **ChatGPT** and the data in your Qrvey charts, allowing you to ask natural language questions and get intelligent answers — without altering or modifying your datasets in any way.

---

## 🚀 Installation & Usage

### Option 1: Use via CDN / Script Tag

1. Download the `index.js` file.  
2. Include it in your HTML:

```html
<script src="path/to/index.js"></script>
```

---

### Option 2: Use via NPM

```bash
npm install @qrvey/qrvey-smart-analyzer
```

Then import it in your JavaScript:

```js
import '@qrvey/qrvey-smart-analyzer';
```

---

## 🧩 Web Component

Once included, you can use the web component in your HTML:

```html
<q-smart-data-analyzer
  domain="YOUR_DOMAIN"
  cdn="YOUR_CDN"
  token="YOUR_TOKEN_OR"
  apikey="YOUR_APIKEY"
></q-smart-data-analyzer>
```

### Required Props

| Prop    | Required | Description                             |
|---------|----------|-----------------------------------------|
| `domain` | ✅       | Your Qrvey domain                       |
| `cdn`    | ✅       | CDN location for required assets        |
| `token`  | ⚠️       | Either `token` or `apikey` is required  |
| `apikey` | ⚠️       | Either `token` or `apikey` is required  |

---

## 💬 Triggering the Smart Analyzer

To open the Smart Analyzer modal (see screenshot in docs), trigger the `qvSmartAIOpen` event with the following payload:

```js
window.dispatchEvent(new CustomEvent('qvSmartAIOpen', {
  detail: {
    data_portion: chartData, // Your chart data
    model: {
      userid: '<QrveyUserID>', // Required
      appid: '<QrveyAppID>'   // Required
    }
  }
}));
```

---

## 🧠 AI Integration Powered by ChatGPT

The Smart Analyzer communicates with ChatGPT using your chart data, making it easy to extract meaningful insights through natural conversations.

---

## 📝 Notes

- This version (`2.0.0`) is tailored for **Qrvey v9.0** and may not be compatible with earlier versions.  
- Your data is **never modified** by this tool — it is read-only for analysis purposes.

---
npm package: @qrvey/qrveyconfig
Description: Config package for QRVEY apps
Author: Ricardo Madrid Henao
Latest version: 1.1.8

## Resumen

Package to manage the config files into the datarouter project or other projects.

## Getting Started

qrveyconfig is a package that allows you to manage the config files of the datarouter applications and other applications that are required, allowing you to store these configuration files in other sources such as AWS.S3 and AWS.DynamoDB.

## Installation

```sh
$ npm install --save @qrvey/qrveyconfig
```

## Usage

```js
var MyQConfig = require('@qrvey/qrveyconfig');
```

### AWS.S3 usage
If your config file is in AWS.S3 use the follow definition, using a object with three fields, "type": type of the config(S3 or DynamoDB), "bucketName": Name of the bucket where the file is upload and "file": Name of the file in the bucket in json format.
```js
var s3Config = {
    type: "S3",
    bucketName: "<bucketName>",
    file: "<fileName.json>"
};
var myConfig = new MyQConfig.qconfig(s3Config);
```

### AWS.DynamoDB usage
If your config file is in AWS.DynamoDB use the follow definition, using a object with four fields, "type": type of the config(S3 or DynamoDB), "table": Name of the table where the config is stored, "key" is the identification of the unique row where is the config. and "region": is the region of the dynamodb.

If your config file is in AWS.DynamoDB use the follow definition

```js
var dynamoDBConfig={
    type: "dynamodb",
    table: "<tableDynamoDB>",
    key: "<keyRow>",
    region: "<region>"
};
var myConfig = new MyQConfig.qconfig(dynamoDBConfig);
```
### Get key

To return values from the config file you must use the 'getValueKey' method.

```js
var myValue = myConfig.getValueKey('myKey');
```