open-index/open-npm huggingface dataset:
npm package: @ignite-ui-docs/docs
Description: This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Latest version: 1.0.0

# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

- Configure the top-level `parserOptions` property like this:

```js
   parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    project: ['./tsconfig.json', './tsconfig.node.json'],
    tsconfigRootDir: __dirname,
   },
```

- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list
npm package: @ignite-ui-papke/docs
Description: This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Latest version: 1.0.0

# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

- Configure the top-level `parserOptions` property like this:

```js
export default {
  // other rules...
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    project: ['./tsconfig.json', './tsconfig.node.json'],
    tsconfigRootDir: __dirname,
  },
}
```

- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list
npm package: @ignite/loggly-jslogger
Description: A Javascript client to send logs to Loggly.
Author: Loggly
Latest version: 2.3.0

loggly-jslogger
===============

Client-side (browser) logger to use with Loggly gen2. Check out Loggly's [Javascript logging documentation](https://www.loggly.com/docs/javascript/) to learn more. 

Installation
------------

Place the following on your page, and replace the logglyKey value with the key provided by the website:
```html
<script type="text/javascript" src="//cloudfront.loggly.com/js/loggly.tracker-latest.min.js" async></script>
<script>
  var _LTracker = _LTracker || [];
  _LTracker.push({
      'logglyKey': 'your-customer-token',
      'sendConsoleErrors' : true,
      'tag' : 'javascript-logs'
    });
</script>
```
Usage
-----
Logging text:
```javascript
_LTracker.push('my tracking string');
```

Logging JSON:
```javascript
_LTracker.push({
  'text': 'my tracking string',
  'aList': [9, 2, 5],
  'anObject': {
    'id': 1,
    'value': 'foobar'
  }
});
```

Customization
-------------

separate logging instace:
```javascript
var myBetterLogger = new LogglyTracker();
myBetterLogger.push({'logglyKey': 'your-customer-token' });  // push a loggly key to initialize
```

Send Console Errors to Loggly
----
Keeping <strong>sendConsoleErrors</strong> value to <i>true</i> will send all the unhandled errors to the Loggly with the detailed information like error message, URL, line number and column number. This script also take cares of all the previously defined window.onerror functions. 

Send Tags to Loggly
----

Send your custom tags to Loggly by setting the `tag` property.

```Javascript
_LTracker.push({
  'logglyKey': 'your-customer-token',
  'sendConsoleErrors' : true,
  'tag' : 'tag1,tag2'
});
```

Special Characters Support
----
Keeping <strong>useUtfEncoding</strong> to <i>true</i> will prevent the Special Characters to being garbled on Loggly Search. You will be able to read and understand the included Special Characters in your log events more easily.

Please see the usage  below-

```Javascript
_LTracker.push({
      'logglyKey': 'your-customer-token',
      'sendConsoleErrors' : true,
      'tag' : 'javascript-logs',
      'useUtfEncoding': true
});
```

Setup Proxy for Ad blockers
----------
You can proxy the requests from your own domain if the script or its requests are blocked by Ad blockers. To do this, you need to perform following steps

Set `useProxyDomain` property to true

```Javascript
_LTracker.push({
  'logglyKey': 'your-customer-token',
  'sendConsoleErrors' : true,
  'tag' : 'javascript-logs',
  'useDomainProxy' : true
});
```

Use the following configuration on your server to forward the requests to Loggly

```
#Proxy to Loggly
location /loggly/ {
    rewrite ^/loggly/(.*)$ /$1 break;  # remove the '/loggly' part from the path, leaving /inputs/xxxxxxxx-xxxx-.../tag/xxx
	proxy_set_header Host logs-01.loggly.com;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $remote_addr;
	proxy_pass http://logs-01.loggly.com;
}
```

Build min and map file
----------
You can build min and map file by using the command below:
```
npm install
grunt
```
npm package: @ignitech/modules-contact
Description: Ignitech Modules - Contact Form Component
Author: Ignitech
Latest version: 1.0.5

# @ignitech/modules-contact

Contact Form module cho Ignitech websites.

## Cài đặt

```bash
npm install @ignitech/modules-contact @ignitech/modules-utils
```

**Lưu ý:** `@ignitech/modules-utils` là dependency bắt buộc.

## Sử dụng

```tsx
import { ContactForm } from '@ignitech/modules-contact';
import '@ignitech/modules-utils/styles/variables.css'; // Optional

function App() {
  return (
    <ContactForm
      apiBaseUrl="https://api.example.com"
      onSuccess={(data) => console.log('Success:', data)}
      onError={(error) => console.error('Error:', error)}
    />
  );
}
```

## Components

- `ContactForm` - Contact form component với validation

## Hooks

- `useContactForm` - Hook để quản lý form state và submission

## Services

- `ContactService` - Service để gửi contact form data đến API

## Dependencies

- `@ignitech/modules-utils`: Shared utilities và types
- `zod`: ^3.22.4

## Peer Dependencies

- `react`: ^18.0.0
- `react-dom`: ^18.0.0
npm package: @ignitech/modules-payment
Description: Ignitech Modules - Payment and Checkout Components
Author: Ignitech
Latest version: 1.0.20

# @ignitech/modules-payment

Payment và Checkout module cho Ignitech websites.

## Cài đặt

```bash
npm install @ignitech/modules-payment @ignitech/modules-utils
```

**Lưu ý:** `@ignitech/modules-utils` là dependency bắt buộc.

## Sử dụng

### Payment Method

```tsx
import { PaymentMethod } from '@ignitech/modules-payment';

<PaymentMethod
  orderId="order-123"
  websiteId="website-123"
  apiBaseUrl="https://api.example.com"
  onSuccess={(paymentCode) => console.log('Success:', paymentCode)}
/>
```

### Checkout Flow

```tsx
import { CheckoutFlow } from '@ignitech/modules-payment';

<CheckoutFlow
  websiteId="website-123"
  apiBaseUrl="https://api.example.com"
  currency="VND"
  onComplete={(data) => console.log('Checkout complete:', data)}
/>
```

## Components

- `PaymentMethod` - Payment method selection và processing
- `CheckoutFlow` - Complete checkout flow (one-page)
- `ShippingAddress` - Shipping address form
- `ShippingMethod` - Shipping method selection
- `CartItemsList` - Cart items display
- `OrderSummary` - Order summary display

## Hooks

- `usePayment` - Hook để quản lý payment state
- `useVietnameseAddress` - Hook để lấy địa chỉ Việt Nam

## Services

- `PaymentService` - Service để xử lý payment
- `OrderService` - Service để quản lý orders

## Dependencies

- `@ignitech/modules-utils`: Shared utilities và types
- `zod`: ^3.22.4

## Peer Dependencies

- `react`: ^18.0.0
- `react-dom`: ^18.0.0
npm package: @ignitech/modules-seo
Description: Ignitech Modules - SEO Components and Utilities
Author: Ignitech
Latest version: 1.0.5

# @ignitech/modules-seo

SEO module cho Ignitech websites.

## Cài đặt

```bash
npm install @ignitech/modules-seo @ignitech/modules-utils
```

**Lưu ý:** `@ignitech/modules-utils` là dependency bắt buộc.

## Sử dụng

### React Components

```tsx
import { MetaTags, StructuredData, OpenGraph } from '@ignitech/modules-seo';

<MetaTags
  title="Page Title"
  description="Page description"
  keywords={['keyword1', 'keyword2']}
/>
```

### Next.js

```tsx
import { generateNextMetadata } from '@ignitech/modules-seo';

export const metadata = generateNextMetadata({
  title: 'Page Title',
  description: 'Page description',
});
```

## Components

- `MetaTags` - Meta tags component
- `StructuredData` - Structured data (JSON-LD)
- `OpenGraph` - Open Graph tags
- `TwitterCard` - Twitter Card tags

## Hooks

- `useSEO` - Hook để quản lý SEO data

## Utilities

- `generateNextMetadata` - Generate Next.js metadata
- `generateTitle` - Generate SEO title
- `validateSEOData` - Validate SEO data

## Dependencies

- `@ignitech/modules-utils`: Shared utilities và types
- `zod`: ^3.22.4

## Peer Dependencies

- `react`: ^18.0.0
- `react-dom`: ^18.0.0
npm package: @ignitech/modules-utils
Description: Ignitech Modules - Utilities and shared types
Author: Ignitech
Latest version: 1.0.5

# @ignitech/modules-utils

Utilities và shared types cho Ignitech Modules.

## Cài đặt

```bash
npm install @ignitech/modules-utils
```

## Sử dụng

### Import Types và Utilities

```tsx
import { 
  apiFetch, 
  getApiBaseUrl,
  BaseModuleProps,
  ApiResponse 
} from '@ignitech/modules-utils';

import { 
  emailSchema, 
  phoneSchema,
  contactFormSchema 
} from '@ignitech/modules-utils';
```

### Import CSS Variables

```tsx
import '@ignitech/modules-utils/styles/variables.css';
```

## Exports

- **Types**: `BaseModuleProps`, `ApiResponse`, `ApiError`
- **Fetch**: `apiFetch`, `getApiBaseUrl`
- **Validators**: `emailSchema`, `phoneSchema`, `contactFormSchema`
- **Styles**: CSS variables file

## Dependencies

- `zod`: ^3.22.4

## Peer Dependencies

- `react`: ^18.0.0
- `react-dom`: ^18.0.0
npm package: @igniteconnex/ignite-openapi
Description: Open API client for Ignite
Author: Ignite Platform Team
Latest version: 1.0.9
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# ignite-openapi

This node allows to work with APIs defined by OpenAPISpec. You can set parameters within the Node-RED-UI and trigger the flow from within your flow.

## Development
There are two ways to install it, inside node red editor.

### 1. As provided in node red Docs
Firstly you can load it in node red editor as provided in node red docs (https://nodered.org/docs/creating-nodes/first-node#lower-casespecjs).

### 2. Using docker 
you would need to mount the file or repo to the docker volumes. Then once container starts. You would go inside container terminal and "npm install {location of node module according docker volumes}". And restart the container and you're ready to go.

## Usage

### 1. Get the API-operations list
There are two ways to provide openAPISpec to the node depending on Endpoint Type you select

#### Public URL
Enter the public URL to your OpenAPI configuration (json or yaml file) and push the "Load Specification" button. That's it. You can now have hits on the created endpoints.

#### API Spec
Enter the Ignioteconnex API Key and openAPISpec resiurce ID and push the "Load Specification" button. That's it. You can now have hits on the created endpoints.

### 2. Request Validation
spec-api-router node itself handles bad requests(400) or endpoint not found (404) unautherized request (401) although it can't validate the tokens or API Keys provided but if those API Keys or Tokens isn't present in the request but is specified in openAPISpec, it'll return 401. In spec-api-router.js file there's a function "validateRequestParameters" to handle it.
npm package: @igniteconnex/ignite-openapi-router
Description: Open API client for Ignite
Author: Ignite Platform Team
Latest version: 1.0.7

# ignite-openapi

This node allows to work with APIs defined by OpenAPISpec. You can set parameters within the Node-RED-UI and trigger the flow from within your flow.

## Development
There are two ways to install it, inside node red editor.

### 1. As provided in node red Docs
Firstly you can load it in node red editor as provided in node red docs (https://nodered.org/docs/creating-nodes/first-node#lower-casespecjs).

### 2. Using docker 
you would need to mount the file or repo to the docker volumes. Then once container starts. You would go inside container terminal and "npm install {location of node module according docker volumes}". And restart the container and you're ready to go.

## Usage

### 1. Get the API-operations list
There are two ways to provide openAPISpec to the node depending on Endpoint Type you select

#### Public URL
Enter the public URL to your OpenAPI configuration (json or yaml file) and push the "Load Specification" button. That's it. You can now have hits on the created endpoints.

#### API Spec
Enter the Ignioteconnex API Key and openAPISpec resiurce ID and push the "Load Specification" button. That's it. You can now have hits on the created endpoints.

### 2. Request Validation
spec-api-router node itself handles bad requests(400) or endpoint not found (404) unautherized request (401) although it can't validate the tokens or API Keys provided but if those API Keys or Tokens isn't present in the request but is specified in openAPISpec, it'll return 401. In spec-api-router.js file there's a function "validateRequestParameters" to handle it.
npm package: @igniteconnex/ignite-openapi-viewer
Description: Open API viewer for IgniteConnex
Author: Ignite Platform Team
Latest version: 1.0.2

# ignite-openapi

This node allows to work with APIs defined by OpenAPISpec. You can set parameters within the Node-RED-UI and trigger the flow from within your flow.

## Development
There are two ways to install it, inside node red editor.

### 1. As provided in node red Docs
Firstly you can load it in node red editor as provided in node red docs (https://nodered.org/docs/creating-nodes/first-node#lower-casespecjs).

### 2. Using docker 
you would need to mount the file or repo to the docker volumes. Then once container starts. You would go inside container terminal and "npm install {location of node module according docker volumes}". And restart the container and you're ready to go.

## Usage

### 1. Get the API-operations list
There are two ways to provide openAPISpec to the node depending on Endpoint Type you select

#### Public URL
Enter the public URL to your OpenAPI configuration (json or yaml file) and push the "Load Specification" button. That's it. You can now have hits on the created endpoints.

#### API Spec
Enter the Ignioteconnex API Key and openAPISpec resiurce ID and push the "Load Specification" button. That's it. You can now have hits on the created endpoints.

### 2. Request Validation
spec-api-router node itself handles bad requests(400) or endpoint not found (404) unautherized request (401) although it can't validate the tokens or API Keys provided but if those API Keys or Tokens isn't present in the request but is specified in openAPISpec, it'll return 401. In spec-api-router.js file there's a function "validateRequestParameters" to handle it.