open-index/open-npm huggingface dataset:
npm package: @shaheerkochai/ui-config
Description: This package includes shared configuration files for UI components, specifically:
Latest version: 0.4.0

# `@shaheerkochai/ui-config`

This package includes shared configuration files for UI components, specifically:

- Shadcn UI configuration
- Tailwind CSS configuration

These configurations are used across various UI components to ensure consistent styling and behavior.

## Contents

- `shadcn.config.js`: Configuration for Shadcn UI
- `tailwind.config.js`: Configuration for Tailwind CSS

## Usage

This package is being used as a dependency in other UI component packages. It provides a centralized location for managing shared UI configurations, making it easier to maintain consistency across the project.
npm package: @shaher/capacitor-sms-retriever
Description: Capacitor plugin to retrieve SMS on Android with getHashCode support
Author: Shaher
Latest version: 0.1.1

# @shaher/capacitor-sms-retriever

A comprehensive Capacitor plugin for SMS retrieval on Android with advanced hash code generation capabilities.

## Features

- ✅ **Android SMS Auto-Retrieval** - Uses Google's SMS Retriever API
- ✅ **iOS Manual PIN Input** - Beautiful PIN input dialog
- ✅ **App Signature Hash Generation** - Get the required hash for SMS messages
- ✅ **TypeScript Support** - Full TypeScript definitions included
- ✅ **No Permissions Required** - Uses official SMS Retriever API

## Installation

```bash
npm install @shaher/capacitor-sms-retriever
npx cap sync
```

## API Methods

### `startListening()` - Android Only
Starts listening for incoming SMS messages using the SMS Retriever API.

### `stopListening()` - Android Only  
Stops listening for SMS messages.

### `present(options?)` - iOS Only
Shows a PIN input dialog for manual OTP entry.

### `getHashCode()` - Android Only ⭐ NEW
Gets the app signature hash required for SMS Retriever API.

## Usage Examples

### Android - Automatic SMS Retrieval

```typescript
import { CapacitorSmsRetriever } from '@shaher/capacitor-sms-retriever';

// Get the app signature hash (needed for your backend)
const hashResult = await CapacitorSmsRetriever.getHashCode();
console.log('App Hash:', hashResult.hashCode); // e.g., "FA+9qCX9VSu"

// Start listening for SMS
CapacitorSmsRetriever.startListening().then((result) => {
  console.log('SMS received:', result.body);
  // Extract OTP from SMS body
}).catch((error) => {
  console.error('SMS retrieval failed:', error);
});

// Stop listening when done
CapacitorSmsRetriever.stopListening();
```

### iOS - Manual PIN Input

```typescript
import { CapacitorSmsRetriever } from '@shaher/capacitor-sms-retriever';

// Show PIN input dialog (4 digits by default)
CapacitorSmsRetriever.present({ numberOfCharacters: 6 }).then((result) => {
  console.log('PIN entered:', result.code);
}).catch((error) => {
  console.error('PIN input cancelled:', error);
});
```

### SMS Message Format (Android)

Your backend should send SMS messages in this format:

```
Your verification code is: 123456

<#> Your App Name
Your code: 123456
FA+9qCX9VSu
```

Where `FA+9qCX9VSu` is the hash returned by `getHashCode()`.

## Platform Support

| Method | Android | iOS | Web |
|--------|---------|-----|-----|
| `startListening()` | ✅ | ❌* | ❌* |
| `stopListening()` | ✅ | ❌* | ❌* |
| `present()` | ❌* | ✅ | ❌* |
| `getHashCode()` | ✅ | ❌* | ❌* |

*Platform returns appropriate error message

## Requirements

- **Android**: API level 14+ (SMS Retriever API requires API 14+)
- **iOS**: iOS 14.0+
- **Capacitor**: v7.0.0+

## License

MIT

## Credits

Based on @skmd87/capacitor-sms-retriever with added iOS support and getHashCode functionality.
npm package: @shahil_m/obfuscator-io-metro-plugin
Description: A metro plugin to use javascript-obfuscator library with react-native 
Author: Shahil Mangroliya
Latest version: 3.0.4

# Obfuscator.io Metro Plugin

[![npm version](https://img.shields.io/npm/v/@shahil_m/obfuscator-io-metro-plugin.svg)](https://www.npmjs.com/package/@shahil_m/obfuscator-io-metro-plugin)
[![npm](https://img.shields.io/npm/dt/@shahil_m/obfuscator-io-metro-plugin)](https://www.npmjs.com/package/@shahil_m/obfuscator-io-metro-plugin)
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs welcome!" />


This metro plugin obfuscate your **React Native** bundle using [javascript-obfuscator](https://github.com/javascript-obfuscator/javascript-obfuscator) <br/>
It only obfuscates your code not the code of `node_modules`, you can verify the obfuscated bundle by either extracting the `index.android.bundle` from generated apk
or you can find the file at `project_root\android\app\build\generated\assets\react\release` after `assembleRelease` process

## Installation

```bash
 npm i -D @shahil_m/obfuscator-io-metro-plugin

```

## Docs
[Docs](https://ShahilMangroliya.github.io/obfuscator-io-metro-plugin/)

## Usage

Include the plugin in your `metro.config.js`:

```js
const jsoMetroPlugin = require("@shahil_m/obfuscator-io-metro-plugin")(
  {
    // for these option look javascript-obfuscator library options from  above url
    compact: false,
    sourceMap: false, // source Map generated after obfuscation is not useful right now so use default value i.e. false
    controlFlowFlattening: true,
    controlFlowFlatteningThreshold: 1,
    numbersToExpressions: true,
    simplify: true,
    stringArrayShuffle: true,
    splitStrings: true,
    stringArrayThreshold: 1,
  },
  {
    runInDev: false /* optional */,
    logObfuscatedFiles: true /* optional generated files will be located at ./.jso */,
  }
);

module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: false,
      },
    }),
  },
  ...jsoMetroPlugin,
};
```

For obfuscation options configuration docs see: [https://github.com/javascript-obfuscator/javascript-obfuscator](https://github.com/javascript-obfuscator/javascript-obfuscator)
npm package: @shahin7511/laravue-form-validator
Description: Laravel errors validating in VueJS
Author: Shahin Sheikh
Latest version: 6.0.0

## Laravel error validation in VueJS

> A reactive laravel errors handling library

### To install

```
$ npm install @shahin7511/laravue-form-validator --save 
```

#### How to use


```
import {FormValidator} from '@shahin7511/laravue-form-validator'
```

#####Required dependency Vuex
```
 state: {
    ...
    errors:[]
  }
``` 


```
 mutations: {
    ...
    mute_errors(state,errors){
      state.errors = errors;
    }
  }
```


```
//in vue template

<div class="form-group" v-bind:class="{'has-error':hasError('name')}">
    <label for="name">Name</label>
    <input type="text" name="name" id="name" class="form-control">
    <p class="text-danger" v-if="hasError('name')" v-html="first('name')"></p>
</div>

```

``` 
//example component
export default {
    name: 'HelloWorld',
    data: function () {
      return {
        msg: 'Welcome to Your Vue.js App'
      }
    },
    methods: {
      submitForm: function () {
        // 'errors' is received from laravel serverside errors
        //on response received
        ...
        this.$store.commit('mute_errors', data.errors)
        ...
      }
    }
  }
```
npm package: @shahinp/sign-pdf
Description: A React component library for append signature to yor document and render it using react-pdf
Latest version: 2.0.0


# Sign-pdf



A React package that empowers you to seamlessly integrate signatures into your  PDF documents. Users can either upload a pre-existing signature image or draw their signature directly within the application



## Demo Code


```javascript
import { SignPdf } from "@shahinp/sign-pdf";
import logoM from "./images/logo.jpeg"
import "./main.css"

function App() {
	const dynamicHtml = {
		title: 'Non-Disclosure Agreement',
		listItems: ["Confidential Information means any and all information disclosed by the Disclosing Party to the Receiving Party, whether orally, in writing, or by any other means, that is not already known to the Receiving Party or generally known to the public domain, and includes, but is not limited to, [List specific types of confidential information, e.g., trade secrets, customer lists, marketing plans, etc.", 
		'The Receiving Party agrees to hold in confidence and not to disclose, use, or reproduce any Confidential Information of the Disclosing Party to any third party without the prior written consent of the Disclosing Party. The Receiving Party will use the same degree of care to protect the Confidential Information as it uses to protect its own confidential information, but in no event less than a reasonable degree of care',
		'The Receiving Party will not be obligated to keep Confidential Information confidential to the extent such information',
		'This Agreement shall be effective as of the date first written above and shall remain in full force and effect for a period of [Number] years from the date of disclosure of the Confidential Information (the "Term").'],
		independentContractorText: 'Independent Consultant',
		signatureImg: 'base64 encoded image data',
		signatureDate: '2024-05-28',
		footerText: 'Generated by React PDF',
		logo: logoM,
		class:{
		  'container':'container',
		  'subContainer': 'sub-container'
		}
	  };
      
	  return (
		  <SignPdf dynamicHtml={dynamicHtml}/>
	  );
}

export default App;

```
## Installation

```sh
npm i -S @shahinp/sign-pdf
```