open-index/open-npm huggingface dataset:
npm package: @shhhplus/react-text-matcher
Description: A React component that matches text using specified rules, supporting string and regular expressions.
Author: shhhplus
Latest version: 2.0.1

# react-text-matcher

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shhhplus/react-text-matcher/blob/master/LICENSE) [![npm version](https://img.shields.io/npm/v/@shhhplus/react-text-matcher.svg?style=flat)](https://www.npmjs.com/package/@shhhplus/react-text-matcher) [![codecov](https://img.shields.io/codecov/c/github/shhhplus/react-text-matcher/main?token=C8C11XH4DN)](https://codecov.io/gh/shhhplus/react-text-matcher) [![build status](https://img.shields.io/github/actions/workflow/status/shhhplus/react-text-matcher/cd.yml)](https://github.com/shhhplus/react-text-matcher/actions)

A React component that matches text using specified rules, supporting string and regular expressions.
Developed based on [text-matcher](https://www.npmjs.com/package/@shhhplus/text-matcher).

You can receive the matching results through render-props and have full control over how it renders.
If you just want text highlighting, recommend using [react-highlight-words](https://www.npmjs.com/package/@shhhplus/react-highlight-words), because it provides a simpler API.

## Install

```sh
npm install @shhhplus/react-text-matcher --save
```

## Usage

### Basic

```jsx
import TextMatcher from '@shhhplus/react-text-matcher';

const Demo = () => {
  return (
    <TextMatcher
      rules="everyone"
      text="Welcome everyone to come and join my birthday party."
    >
      {(nodes) => {
        return (
          <>
            {nodes.map((node, idx) => {
              return (
                <Fragment key={idx}>
                  {typeof node === 'string' ? node : <span>{node.text}</span>}
                </Fragment>
              );
            })}
          </>
        );
      }}
    </TextMatcher>
  );
};
```

### RegExp

```jsx
import TextMatcher from '@shhhplus/react-text-matcher';

const Demo = () => {
  return (
    <TextMatcher
      rules={[new RegExp('food', 'gi'), 'Apple']}
      text="AppleTodayFoodAppleHappySunFood"
    >
      {(nodes) => {
        return (
          <>
            {nodes.map((node, idx) => {
              return (
                <Fragment key={idx}>
                  {typeof node === 'string' ? node : <span>{node.text}</span>}
                </Fragment>
              );
            })}
          </>
        );
      }}
    </TextMatcher>
  );
};
```
npm package: @shhhplus/react-timeout
Description: This react timeout component is very simple!
Author: shhhplus
Latest version: 1.0.1

# react-timeout

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shhhplus/react-timeout/blob/main/LICENSE) [![npm version](https://img.shields.io/npm/v/@shhhplus/react-timeout.svg?style=flat)](https://www.npmjs.com/package/@shhhplus/react-timeout) [![codecov](https://img.shields.io/codecov/c/github/shhhplus/react-timeout/main?token=FOCNEWKWBC)](https://codecov.io/gh/shhhplus/react-timeout) [![build status](https://img.shields.io/github/actions/workflow/status/shhhplus/react-timeout/cd.yml)](https://github.com/shhhplus/react-timeout/actions)

This react timeout component is very simple!

## Install

```sh
npm install @shhhplus/react-timeout --save
```

## How to use

### sync

```jsx
import Timeout from '@shhhplus/react-timeout';

const Demo = () => {
  const onElapsed = () => {
    console.log('...');
  };
  return <Timeout delay={1000} onElapsed={onElapsed} />;
};
```

### async

```jsx
import Timeout from '@shhhplus/react-timeout';

const Demo = () => {
  const onElapsed = () => {
    console.log('...');
    return new Promise((resolve) => {
      setTimeout(resolve, 100);
    });
  };
  return <Timeout delay={1000} onElapsed={onElapsed} />;
};
```
npm package: @shhhplus/react-timer
Description: This react timer component is very simple!
Author: shhhplus
Latest version: 2.0.3

# react-timer

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shhhplus/react-timer/blob/master/LICENSE) [![npm version](https://img.shields.io/npm/v/@shhhplus/react-timer.svg?style=flat)](https://www.npmjs.com/package/@shhhplus/react-timer) [![codecov](https://img.shields.io/codecov/c/github/shhhplus/react-timer/main?token=FOCNEWKWBC)](https://codecov.io/gh/shhhplus/react-timer) [![build status](https://img.shields.io/github/actions/workflow/status/shhhplus/react-timer/cd.yml)](https://github.com/shhhplus/react-timer/actions)

This react timer component is very simple!

## Install

```sh
npm install @shhhplus/react-timer --save
```

## How to use

### sync

```jsx
import Timer from '@shhhplus/react-timer';

const Demo = () => {
  const onElapsed = () => {
    console.log('...');
  };
  return <Timer interval={1000} onElapsed={onElapsed} />;
};
```

### async

```jsx
import Timer from '@shhhplus/react-timer';

const Demo = () => {
  const onElapsed = () => {
    console.log('...');
    return new Promise((resolve) => {
      setTimeout(resolve, 100);
    });
  };
  return <Timer interval={1000} onElapsed={onElapsed} />;
};
```
npm package: @shhhplus/text-matcher
Description: This tool can use specified rules to match text.
Author: shhhplus
Latest version: 1.0.3

# text-matcher

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shhhplus/text-matcher/blob/main/LICENSE) [![npm version](https://img.shields.io/npm/v/@shhhplus/text-matcher.svg?style=flat)](https://www.npmjs.com/package/@shhhplus/text-matcher) [![codecov](https://img.shields.io/codecov/c/github/shhhplus/text-matcher/main?token=MPV0GHAKL9)](https://codecov.io/gh/shhhplus/text-matcher) [![build status](https://img.shields.io/github/actions/workflow/status/shhhplus/text-matcher/cd.yml)](https://github.com/shhhplus/text-matcher/actions)

This tool can use specified rules to match text. If you want to use it in React, you can consider choosing [@shhhplus/react-text-matcher](https://www.npmjs.com/package/@shhhplus/react-text-matcher).

## Install

```sh
npm install @shhhplus/text-matcher --save
```

## Usage

### Basic

```js
import createTextMatcher from '@shhhplus/text-matcher';

const rules = ['everyone', 'birthday'];
const tm = createTextMatcher(rules);
const result = tm.exec('Welcome everyone to come and join my birthday party.');

// result:
[
  'Welcome ',
  {
    text: 'everyone',
    payload: { position: 8, ruleIndex: 0, matchIndex: 0 },
  },
  ' to come and join my ',
  {
    text: 'birthday',
    payload: { position: 37, ruleIndex: 1, matchIndex: 1 },
  },
  ' party.',
];
```

### RegExp

```js
import createTextMatcher from '@shhhplus/text-matcher';

const rules = [new RegExp('apple', 'gi'), new RegExp('food')];
const tm = createTextMatcher(rules);
const result = tm.exec('apple_sun_banana_Apple_sun_food_sun');

// result:
[
  {
    text: 'apple',
    payload: { position: 0, ruleIndex: 0, matchIndex: 0 },
  },
  '_sun_banana_',
  {
    text: 'Apple',
    payload: { position: 17, ruleIndex: 0, matchIndex: 1 },
  },
  '_sun_',
  {
    text: 'food',
    payload: { position: 27, ruleIndex: 1, matchIndex: 2 },
  },
  '_sun',
];
```

## Parameters

| name  | type                                        |
| ----- | ------------------------------------------- |
| rules | string \| RegExp \| Array<string \| RegExp> |
npm package: @shhhplus/timer.js
Description: This timer is very simple and framework independent.
Author: shhhplus
Latest version: 2.0.5

# timer.js

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shhhplus/timer.js/blob/master/LICENSE) [![npm version](https://img.shields.io/npm/v/@shhhplus/timer.js.svg?style=flat)](https://www.npmjs.com/package/@shhhplus/timer.js) [![codecov](https://img.shields.io/codecov/c/github/shhhplus/timer.js/master?token=EMW62R8Q78)](https://codecov.io/gh/shhhplus/timer.js) [![build status](https://img.shields.io/github/actions/workflow/status/shhhplus/timer.js/cd.yml)](https://github.com/shhhplus/timer.js/actions)

This timer is very simple and framework independent.

## Install

```sh
npm install @shhhplus/timer.js --save
```

## How to use

### sync

```javascript
import createTimer from '@shhhplus/timer.js';

const timer = createTimer({
  interval: 1000,
  onElapsed: () => {
    console.log('onElapsed ...');
  },
});

timer.start();

timer.stop();
```

### async

```javascript
import createTimer from '@shhhplus/timer.js';

const timer = createTimer({
  interval: 5000,
  onElapsed: () => {
    console.log('onElapsed ...');
    return new Promise((resolve) => {
      setTimeout(resolve, 500);
    });
  },
});

timer.start();

timer.stop();
```
npm package: @shhong7757/react-native-calendar-kit
Description: A customizable calendar component for React Native
Author: shhong7757
Latest version: 0.1.1

# React Native Calendar Kit

A customizable calendar component for React Native with swipe gestures and event support.

## Features

- Monthly calendar view
- Swipe gesture support
- Event counter
- Custom day components
- TypeScript support
- Consistent row count option
- Adjacent days display option

## Installation

```bash
npm install @shhong7757/react-native-calendar-kit
# or
yarn add @shhong7757/react-native-calendar-kit
```

## Basic Usage

```tsx
import {
  Calendar,
  MonthlyEventCounter,
  Navigator,
  SwipeableMonthlyCalendar,
  WeekdayList,
} from '@shhong7757/react-native-calendar-kit';

function App() {
  return (
    <Calendar initialDate={new Date()}>
      <Navigator />
      <MonthlyEventCounter component={EventCountText} />
      <WeekdayList />
      <SwipeableMonthlyCalendar
        monthlyCalendarOptions={{
          showAdjacentDays: true,
          shouldMaintainConsistentRowCount: true,
        }}
      />
    </Calendar>
  );
}
```

## Components

### Calendar

Root component that provides calendar context.

### SwipeableMonthlyCalendar

Monthly calendar view with swipe gesture support.

### Navigator

Navigation component for month traversal.

### MonthlyEventCounter

Component to display event counts for each date.

### WeekdayList

Component to display weekday headers.

## Props

### Calendar

- `initialDate`: Date - Initial date to display

### SwipeableMonthlyCalendar

- `monthlyCalendarOptions`:
  - `showAdjacentDays`: boolean - Show dates from previous/next months
  - `shouldMaintainConsistentRowCount`: boolean - Maintain consistent number of rows
- `DayComponent`: Custom day component
- `onDayPress`: Day selection event handler
- `onMonthChange`: Month change event handler

## Contributing

Contributions are welcome! Please read our contributing guidelines before submitting a pull request.

## License

MIT
npm package: @shi-corp/common-utilities
Description: Collection of configurations, settings and packages to be common across multiple products/repositories.
Author: Pasha Zayko
Latest version: 1.0.4
Deprecated: Package has been moved to @shi-corp/development-utilities

# Common Utilities [![Unit Test](https://github.com/Software-Hardware-Integration-Lab/Common-Utilities/actions/workflows/Unit-Test.yml/badge.svg)](https://github.com/Software-Hardware-Integration-Lab/Common-Utilities/actions/workflows/Unit-Test.yml) [![Lint Check](https://github.com/Software-Hardware-Integration-Lab/Common-Utilities/actions/workflows/Lint.yml/badge.svg)](https://github.com/Software-Hardware-Integration-Lab/Common-Utilities/actions/workflows/Lint.yml) [![CodeQL](https://github.com/Software-Hardware-Integration-Lab/Common-Utilities/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/Software-Hardware-Integration-Lab/Common-Utilities/actions/workflows/github-code-scanning/codeql)

This project is a collection of configurations to establish some baseline behavior for your TypeScript, linting preferences, etc.

These configurations are not exhaustive and might require bespoke changes once extended or included in your target repo (based on the configuration used).

## tsconfig configuration

Since it is not a code but just configuration file, it would require particular handling to use:

in tsconfig.json make these changes

```json
{
  "extends": "./node_modules/@shi-corp/common-utilities/config/baseTsConfig.json",
  "compilerOptions": {
    "outDir": "<location of the output folder for your project, if it is used>"
  }
  ... // any other options that need to override base behavior
}
```

## Lint configuration

This project is using flat file for eslint (best results achieved with version >=9.9.0) and the intention to be compatible with that style only:

in eslint.config.(m)js make these changes

```js
import { eslintConfig } from '@shi-corp/common-utilities';

export default [
    ...eslintConfig,
    <any other configuration that is specific to you project (excludes, different rules, etc.)>
];
```

## Next.js configuration

in next.config.(m)js make these changes

```js
import { nextConfig } from '@shi-corp/common-utilities';

export default {
  ...nextConfig,
  ... // any other options that need to override base behavior
};
```
npm package: @shi-corp/objectid-converter
Description: Converts Microsoft Object IDs to and from SIDs.
Author: Elliot Huffman
Latest version: 2.0.10

# ObjectID Converter [![Unit Test](https://github.com/Software-Hardware-Integration-Lab/ObjectID-Converter/actions/workflows/Unit-Test.yml/badge.svg)](https://github.com/Software-Hardware-Integration-Lab/ObjectID-Converter/actions/workflows/Unit-Test.yml) [![Lint Check](https://github.com/Software-Hardware-Integration-Lab/ObjectID-Converter/actions/workflows/Lint.yml/badge.svg)](https://github.com/Software-Hardware-Integration-Lab/ObjectID-Converter/actions/workflows/Lint.yml) [![CodeQL](https://github.com/Software-Hardware-Integration-Lab/ObjectID-Converter/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/Software-Hardware-Integration-Lab/ObjectID-Converter/actions/workflows/github-code-scanning/codeql) [![NPM Version](https://img.shields.io/npm/v/%40shi-corp%2Fobjectid-converter)](https://www.npmjs.com/package/@shi-corp/objectid-converter)

This project is a TypeScript native implementation of the Microsoft's cloud Object ID to Security Identifier (SID) process.

This project is not compatible with Windows Server Active Directory (AD DS) Object ID to SID, or SID to Object ID conversions.

Inspiration for this project:
<https://oliverkieselbach.com/2020/05/13/powershell-helpers-to-convert-azure-ad-object-ids-and-sids/>

## Convert Object ID to SID

To convert your Object ID to a SID, use the `convertToSid()` function. It has only one parameter, the ObjectID, it takes a UUIDv4 format string then converts it to an Entra ID (Azure AD) compatible SID.

``` TypeScript
import { convertToSid } from '@shi-corp/objectid-converter';

/** Object ID that will be converted to a SID. */
const objectId = 'f82d79af-1278-4894-ac01-d90e30875cf8';

/** SID that was converted from an Object ID */
const results = convertToSid(objectId);

// Render the results on the JavaScript Console.
console.log(results);
```

### SID Result

``` text
S-1-12-1-4163729839-1217663608-249102764-4166813488
```

## Convert SID to Object ID

To convert your SID to an Object ID, use the `convertToObjectId()` function. It has only one parameter, the SID, it takes an Entra ID (Azure AD) compatible SID string then converts it to an Object ID (UUIDv4).

``` TypeScript
import { convertToObjectId } from '@shi-corp/objectid-converter';

/** Security Identifier (SID) that will be converted to an Object ID. */
const securityId = 'S-1-12-1-4163729839-1217663608-249102764-4166813488';

/** Object ID that was converted from a SID. */
const results = convertToObjectId(securityId);

// Render the results on the JavaScript Console.
console.log(results);
```

### Object ID Result

``` text
f82d79af-1278-4894-ac01-d90e30875cf8
```