open-index/open-npm huggingface dataset:
npm package: @kentr/starterkit-twig-bootstrap4
Description: Twig-based Bootstrap 4 StarterKit for Pattern Lab.
Author: Kent Richards
Latest version: 1.0.0-alpha
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

![license](https://img.shields.io/github/license/kentr/pattern-lab-starterkit-twig-bootstrap4.svg)

# Bootstrap 4 StarterKit for Twig

This is a work-in-progress twig-based Pattern Lab starterkit for Bootstrap 4.

## Requirements

The Bootstrap 4 StarterKit for Twig requires the following PatternEngine:

* `pattern-lab/patternengine-twig`: [documentation](https://github.com/pattern-lab/patternengine-php-twig#twig-patternengine-for-pattern-lab), [GitHub](https://github.com/pattern-lab/patternengine-php-twig), [Packagist](https://packagist.org/packages/pattern-lab/patternengine-twig)

## Install

This StarterKit can be installed using the following command:

    php core/console --starterkit --install kentr/pattern-lab-starterkit-twig-bootstrap4

It is recommended that you **do not** install this StarterKit as a dependency for your Pattern Lab project via Composer.

## Edit Files

After installation the files for this StarterKit can be found in
`source/`.
npm package: @kentriboe/zod-val
Description: Reusable Zod validation schemas for common fields like email, password, and username.
Author: kentriboe
Latest version: 1.0.1

# zod-validation-library

Reusable, opinionated Zod schemas for common validation needs.

## Overview

This library provides a set of ready-to-use Zod validation schemas and helpers for common use cases like passwords, emails, usernames, and more. Designed to help teams standardize validation logic across frontend, backend, and mobile apps—especially those already using [Zod](https://github.com/colinhacks/zod).

## Why?

- **Consistency**: Avoid duplicating and re-inventing validation rules in each project.
- **Type Safety**: Full TypeScript support with Zod.
- **Composable**: Use these schemas as building blocks in your own Zod objects.
- **Parit(y) Across Stack**: Use the same validation logic on frontend, backend, and anywhere you use JavaScript/TypeScript.

## Features

- 🔒 Password validation (configurable strength)
- ✉️ Email validation (RFC-ish, with options)
- 🧑 Username validation (length, charset, etc.)
- 📱 Phone number, URL, and other common patterns (*coming soon*)
- 🧩 Easy to extend and compose

## Quick Start

```bash
npm install zod @kentriboe/zod-val
```

```typescript
import { emailSchema, passwordSchema, usernameSchema } from "@kentriboe/zod-val";

// Example usage:
emailSchema.parse("user@example.com");
passwordSchema.parse("StrongP4ssword!");
usernameSchema.parse("user_123");
```

## Examples

### Password

```typescript
import { passwordSchema } from "@kentriboe/zod-val";

passwordSchema.parse("Secret123!"); // ✅ Passes
passwordSchema.parse("123");        // ❌ Throws error
```

### Email

```typescript
import { emailSchema } from "@kentriboe/zod-val";

emailSchema.parse("test@example.com"); // ✅
emailSchema.parse("invalid-email");    // ❌
```

## Roadmap

- More schemas (URLs, phone numbers, etc.)
- Configurable options for stricter/looser rules
- Documentation and real-world usage examples

## Contributing

Contributions, suggestions, and issues are welcome! Please open an issue or a pull request.

---

MIT License | Inspired by the [Zod](https://github.com/colinhacks/zod) ecosystem.
npm package: @kenuhn/modal_form
Description: Made with create-react-library
Author: kenuhn
Latest version: 1.5.1

# semect_input

> Made with create-react-library

[![NPM](https://img.shields.io/npm/v/semect_input.svg)](https://www.npmjs.com/package/semect_input) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save semect_input
```

## Usage

```jsx
import React, { Component } from 'react'

import MyComponent from 'semect_input'
import 'semect_input/dist/index.css'

class Example extends Component {
  render() {
    return <MyComponent />
  }
}
```

<!-- Fonctionnalités :

    Le composant utilise la fonction "useNavigate" de react-router-dom pour obtenir une fonction de navigation.
    Lorsque la prop "isOpen" est vraie, le composant affiche la fenêtre modale.
    Lorsque la fenêtre modale est ouverte, le message "salut" est affiché dans la console.
    La fenêtre modale contient un élément "div" avec la classe "modal" qui est affiché ou masqué en fonction de la prop "isOpen".
    À l'intérieur de la fenêtre modale, il y a un élément "div" avec la classe "modal-content" qui contient le contenu de la fenêtre.
    Le contenu de la fenêtre modale comprend un titre avec la classe "modal-header" et le texte "HRNET".
    Il y a également un paragraphe avec le texte "Nouvelle utilisateur crée !!".
    Enfin, il y a un bouton avec la classe "modal-button" qui, lorsqu'il est cliqué, déclenche la fonction de navigation pour rediriger vers la page "./Employe". -->

## License

MIT © [kenuhn](https://github.com/kenuhn)
npm package: @kenuhn/select_input
Description: Made with create-react-library
Author: kenuhn
Latest version: 1.5.0

# semect_input

> Made with create-react-library

[![NPM](https://img.shields.io/npm/v/semect_input.svg)](https://www.npmjs.com/package/semect_input) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save semect_input
```

## Usage

```jsx
import React, { Component } from 'react'

import MyComponent from 'semect_input'
import 'semect_input/dist/index.css'

class Example extends Component {
  render() {
    return <MyComponent />
  }
}
```

## License

MIT © [kenuhn](https://github.com/kenuhn)
npm package: @kenvunz/copy-webpack-plugin
Description: Copy files and directories in webpack
Author: Len Boyette
Latest version: 4.1.1

This fork of [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) exists solely to mitigate issue as describe [here](https://github.com/mattandrews/webpack-manifest-copy-images-bug)
npm package: @kenvunz/shoelace
Description: A little utility that allow you to do this
Author: Ken Vu
Latest version: 1.0.2

# Shoelace

A little utility that allow you to do this

**Input:**

```js
import { parse } from "@kenvunz/shoelace";

const value = parse({
    foo: {
        baz: "baz",
        complex: ["1", "2"],
    },
    baz: "@{foo.baz}",
    complex: "@{foo.complex}"
});
```

**Output:**
```js
{
    foo: {
        baz: 'baz',
        complex: ['1', '2']
    },
    baz: 'baz',
    complex: ['1', '2']
}
```

**Features**

- Support complex but serialisable, e.g Array, Object
- Support filters

## Usage

Install:

```bash
yarn add @kenvunz/shoelace
```

## Filters

Similar to other view template engine, filters are essentially functions that can be applied to variables. They are called with a pipe operator `(|)`

```js
import { parser } from "@kenvunz/shoelace";

const parse = parser({
    lowercase(value) {
        return value.toLowerCase()
    }
});

const value = parse({
    foo: "Foo",
    baz: "@{foo | lowercase}"
});
```

## License

MIT
npm package: @kenxirwin/alma-search
Description: Search ExLibris's Alma API for bibliographic records
Author: Ken Irwin
Latest version: 0.2.0

## Alma Search (npm package)

This is intended to be an importable npm package for searching Alma APIs from ExLibris.

### Requirements

You will need an Alma API key with bib read permissions to use this.

### Installation

```
npm install @kenxirwin/alma-search
```

### SearchBibs

The first (only so far) module is SearchBibs. It allows searching by barcode, mms_id, holdings_id, ie_id, representation_id, nz_mms_id, cz_mms_id, or other_system_id.

Import the package with

```
import {SearchBibs} from @kenxirwin/alma-search
```

Instantiate the search object with:

```
const searchBibs = new SearchBibs({
baseUrl: 'https://api-na.hosted.exlibrisgroup.com', // or other regional url
apiKey: 'your-api-key',
});
```

For barcode searching use:

```
searchBibs.barcodeLookup('123456789');
```

For other ids, use something like:

```
const response = await searchBibs.bibById({
mms_id: '99939650000541,99939680000541', // supports multiple ids
});
```

Once you receive the bib item record by a lookup process, you can view holdings details looking up by mms_id, e.g.:

```
const response = await searchBibs.holdingsByMmsId('99939650000541');
```

You can get item-level data from an MmsId with:

```
const response = await searchBibs.holdingsItemsByMmsId('99939650000541');
```

or

```
const response = await searchBibs.holdingsItemsByMmsId('99939650000541', {limit: 20, offset: 20});
```

The holdingsItemsByMmsId functions supports all queryString params as well as the holding_id param described in the [documentation](https://developers.exlibrisgroup.com/alma/apis/docs/bibs/R0VUIC9hbG1hd3MvdjEvYmlicy97bW1zX2lkfS9ob2xkaW5ncy97aG9sZGluZ19pZH0vaXRlbXM=/)

You can also follow any of the links returned to you by earlier searches with the `followLink` method. As with other methods, the API key will be added to the search by by the `followLink` method. Example:

```
const response = await searchBibs.followLink(
'https://api-na.hosted.exlibrisgroup.com/almaws/v1/bibs/99939680000541/holdings'
);
```
npm package: @kenxirwin/primo-search-api
Description: Query the ExLibris Primo Search API
Author: Ken Irwin
Latest version: 0.1.1

# Primo Search API

This is a basic implementation of the ExLibris Primo Search API.

Usage:
`npm install @kenxirwin/primo-search-api`

`import SearchApi from '@kenxirwin/primo-search-api';`

Initialize with your local settings:

```
const searchApi = new SearchApi({
  baseUrl,
  vid,
  scope,
  tab,
  apiKey,
});
```

Query Primo with the main query, plus any additional params, e.g.:

```
const searchQuery = 'any,contains,quixote';
let res = await searchApi.search(searchQuery);
// or
let res = await searchApi.search(searchQuery, { limit: 2, lang: 'es' });
```
npm package: @kenyani/react-emoji-reaction-bar
Description: `react-emoji-reaction-bar` is a simple and flexible React component that lets you add emoji reactions to your app. It supports multiple reaction types, easy customization, and works seamlessly with modern React (18+). Ideal for social apps, blogs, messagi
Author: Rachel Kenyani
Latest version: 0.0.3

# React-emoji-reaction-bar
`react-emoji-reaction-bar` is a simple and flexible React component that lets you add emoji reactions to your app. It supports multiple reaction types, easy customization, and works seamlessly with modern React (18+). Ideal for social apps, blogs, messaging platforms, or anywhere you want to add interactive emoji feedback.
npm package: @kenyerman/i18lint
Description: Linter for multiple translation files
Author: Balázs Simó
Latest version: 1.1.1

# ![i18lint](https://user-images.githubusercontent.com/20663815/203164266-8a0aa236-bdfa-448f-92f0-771186a82fad.png)

This script lints your translation files and rewrites them in a way that keys are sorted.
Compatible with `@ngx-translate`

## Installation

The script is npm available. You can install via:

```
npm i @kenyerman/i18lint -g
```

## Usage

### Simple example

```
i18lint path/to/translations/root --rewrite
```

### Help output

```
$ i18lint --help
Positionals:
  dir  The path to the translation files                                [string]

Options:
      --help         Show help                                         [boolean]
      --version      Show version number                               [boolean]
  -r, --rewrite      Rewrite the translation files with pretty printing and orde
                     red keys                                          [boolean]
  -i, --indent       Force indentation of written files. Default is 4 spaces.
                                                                        [number]
      --projectRoot  Root directory of the project. Default is the current worki
                     ng directory.                                      [string]
```

## Features (planned)

- [x] Check directory structure
- [x] Check files validity
- [x] Enforce ISO 639-1 language codes
- [x] Enforce commitment between namespacing or nesting
- [x] Check for missing translations between languages
- [x] Sort translation keys (rewrite files)
- [ ] Config file
- [ ] Enforce configured key separator (e.g. `dash` or `underscore`)

## Changelog

[Learn about the latest improvements](CHANGELOG.md).

## Contributing

### Contributing Guidelines

Read through our [contributing guidelines](CONTRIBUTING.md) to learn about our submission process, coding rules and more.

### Want to Help?

Want to report a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for [contributing](CONTRIBUTING.md) and then check out one of our issues labeled as <kbd>[help wanted](https://github.com/kenyerman/i18lint/labels/help%20wanted)</kbd> or <kbd>[good first issue](https://github.com/kenyerman/i18lint/labels/good%20first%20issue)</kbd>.

## License

The project is licensed under MIT License. Read more [here](LICENSE).
npm package: @kenyip/backoff-strategies
Description: Javascript Library for Backoff/Retry Strategies with zero dependencies
Author: ken.yip
Latest version: 1.0.4

# Backoff Strategies
Javascript Library for Backoff/Retry Strategies with zero dependencies

## Install
```
$ npm install --save @kenyip/backoff-strategies
```

## Usage
```js
const backoffStrategies = require("@kenyip/backoff-strategies");

const backoff = backoffStrategies({
	delay: 1000,
	strategy: "fibonacci",
	jitter: false,
	minimumDelay: 1000,
	scaleFactor: 1
});

console.log(backoff(1));
// 1000

console.log(backoff(2));
// 1000

console.log(backoff(3));
// 1000

console.log(backoff(4));
// 3000
```

## API

### backoffStrategies(options?)
Returns a function that accepts number of attempt as argument and returns the milliseconds you should wait before next retry.

#### options

Type: `object`

##### delay
Type: `number`
Default: 1000

The base number of delay applied for multiply.

##### strategy
Type: `string`
Default: `fixed`

The backoff strategy applied. The default strategies include `fixed`, `exponential`, `fibonacci`, `linear` and `polynomial`.

##### jitter
Type: `boolean`
Default: false

Apply random jitter which add 0 ~ 1 seconds to the output.

##### minimumDelay
Type: `number`
Default: 0

While each strategy calculates its delay based on its own logic, you can ensure that the delay returned is always a certain minimum number of seconds. You can apply a minimum by instantiating a strategy with the minimum argument. 

##### scaleFactor
Type: `number`
Default: 1

Certain strategies - like the Polynomial strategy - can rapidly lead to very long delays between retry attempts. To offset this, while still retaining the shape of the curve between retry attempts, each strategy has a scale_factor property which is multiplied by the "“unadjusted”" delay. This can be used to reduce (or increase) the size (technically the magnitude) of the delay.

## Related
- [delay](https://www.npmjs.com/package/delay) - Delay a promise a specified amount of time