open-index/open-npm huggingface dataset:
npm package: @mnovo323/mrandom
Description: A pythonic random library for node.
Author: Michael Novotny
Latest version: 1.0.3

# `mrandom` - Python's Random for Node.js

`mrandom` is a Node.js module inspired by Python's built-in `random` module. It's designed to bring the power and flexibility of Python's random number utilities to the TypeScrpt/JavaScript ecosystem. It is built for both ESM and CommonJS.

## Features

- **Python-inspired Interface**: If you're familiar with Python's `random`, you'll feel right at home.
- **Diverse Range of Distributions**: Easily generate numbers from uniform, normal, binomial, and more distributions.
- **Simple Usage**: All utilities accessible from a single import.
- **High Performance**: Designed to deliver random numbers swiftly, even in bulk.
- **Flexible Seed Management**: Control the randomness by setting your own seeds.

## Installation

```bash
npm install @mnovo323/mrandom
```

## Usage

### Basic Example
```typescript
import random from '@mnovo323/mrandom';

const randNumber = random.random();
const randInt = random.randint(1, 10);
const choice = random.choice([1, 2, 3, 4, 5]);

console.log(randNumber); // e.g., 0.123456789
console.log(randInt);    // e.g., 7
console.log(choice);     // e.g., 3
```

### Advanced Example
```typescript
import { randint } from '@mnovo323/mrandom/randint';
import { choice } from '@mnovo323/mrandom/choice';
import { seed } from '@mnovo323/mrandom/xoshiro128plus';
import { gauss } from '@mnovo323/mrandom/gauss';
import { expovariate } from '@mnovo323/mrandom/expovariate';

// Setting the seed
seed(42);

// Generating random numbers
const randInt = randint(1, 10);
const randChoice = choice([1, 2, 3, 4, 5]);
const randNorm = gauss(0, 1);
const randExp = expovariate(1.5);

console.log(randInt);     // e.g., 7
console.log(randChoice);  // e.g., 3
console.log(randNorm);    // e.g., 0.123456789
console.log(randExp);     // e.g., 0.789012345
```

## Available Functions
- `random()`
- `seed(value)`
- `getstate()`
- `setstate(state)`
- `betavariate(alpha, beta)`
- `choice(sequence)`
- `choices(sequence, k)`
- `expovariate(lambda)`
- `gammavariate(alpha, beta)`
- `gauss(mu, sigma)`
- `getrandbits(k)`
- `lognormvariate(mu, sigma)`
- `randbytes(n)`
- `randint(a, b)`
- `randrange(start, stop, step)`
- `sample(population, k)`
- `shuffle(sequence)`
- `triangular(low, high, mode)`
- `uniform(a, b)`
- `xoshiro128plus()`

## Coming Soon

- vonmisesvariate(mu, kappa)
- paretovariate(alpha)
- weibullvariate(alpha, beta)

## Contribution

Contributions are always welcome! If you'd like to help implement the above functions or improve the existing ones, please raise a pull request.

## License

[MIT](https://choosealicense.com/licenses/mit/)
npm package: @mnowotny/favicon-notification
Description: A small script to add notification bubble to favicon
Author: Marvin Nowotny
Latest version: 0.2.1

This repository was originally forked from [https://github.com/igorprado/favicon-notification](https://github.com/igorprado/favicon-notification).

# Favicon Notification
#### A small script (~ 1.4kB minified) to add notification bubble to favicon

## Favicon

If you don't have a nice favicon set on app, read this: [https://github.com/audreyr/favicon-cheat-sheet](https://github.com/audreyr/favicon-cheat-sheet)

## Installing

### NPM:

Run:

```
npm install favicon-notification
```

## Using

### NPM

```js
let FaviconNotification = require('favicon-notification');

// When your app loads
FaviconNotification.init({
  color: '#000000'
});

// On some event
FaviconNotification.add();

// If you want to remove the notification
FaviconNotification.remove();

```

### AMD

If you are using RequireJS, for example, load normally (remeber to set the alias in your RequireJS config):

```js
define(['FaviconNotification'], function(FaviconNotification){
  // When your app loads
  FaviconNotification.init({
    color: '#000000'
  });

  // On some event
  FaviconNotification.add();

  // If you want to remove the notification
  FaviconNotification.remove();
});
```

## Methods

## .init(options)

This script assumes that you have a `/favicon.ico` set. [See how setup your favicon](https://github.com/audreyr/favicon-cheat-sheet). If are you using another path to your favicon, you can set it by passing some options to this method. You can set a different fill and line color too (defaults are fill red and white line).

```js
FaviconNotification.init({
  url: '/path/to/favicon.ico',
  color: '#FFFFFF',
  lineColor: '#000000'
});
```

## .add()

As the name says, this add the notification bubble to the favicon. If you didn't initialized the script using `.init(options)`, this will use the default options to create and set the new favicon with the notification.

```js
FaviconNotification.add();
```
## .remove()

```js
FaviconNotification.remove();
```
npm package: @mnp/vendure-admin-ui
Description: This is the administration interface for Vendure.
Latest version: 1.7.1-custom5
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Vendure Admin UI

This is the administration interface for Vendure.

It is an Angular application built with the Angular CLI.

The UI is powered by the [Clarity Design System](https://clarity.design).

## Structure

### Library

The Admin UI is structured as an Angular library conforming to the [ng-packagr format](https://github.com/ng-packagr/ng-packagr). This library is what is published to npm as `@vendure/admin-ui`. The library consists
of a set of modules which are accessible from consuming applications as sub-packages:

* `@vendure/admin-ui/core`
* `@vendure/admin-ui/catalog`
* `@vendure/admin-ui/orders`

etc. These library packages are located at [./src/lib](./src/lib)

When built with `yarn build`, the output will be located in the `./package` sub directory. This is also the root of the published npm package.

### Application

In addition to the library, there is also a full application located at [./src/app](./src/app). This application is used both during development of the Admin UI, and also as the "default" Admin UI without any UI extensions, as provided as the default by the [admin-ui-plugin](../admin-ui-plugin).

## Localization

Localization of UI strings is handled by [ngx-translate](http://www.ngx-translate.com/). The translation strings should use the [ICU MessageFormat](http://userguide.icu-project.org/formatparse/messages).

Translation keys are automatically extracted by running:
```
yarn extract-translations
```
This scan the source files for any translation keys, and add them to each of the translation files located in [`./src/lib/static/i18n-messages/`](./src/lib/static/i18n-messages/).

A report is generated for each language detailing what percentage of the translation tokens are translated into that language:

```text
Extracting translation tokens for "src\lib\static\i18n-messages\de.json"
de: 592 of 650 tokens translated (91%)
```

This report data is also saved to the [i18n-coverage.json](./i18n-coverage.json) file.

To add support for a new language, create a new empty json file (`{}`) in the `i18n-messages` directory named `<languageCode>.json`, where `languageCode` is one of the supported codes as given in the [LanguageCode enum type](../core/src/api/schema/common/language-code.graphql), then run `yarn extract-translations`
npm package: @mnpa/ui
Description: This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.
Latest version: 1.0.0

# Ui

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @mnpcmw6444/mongoose-auto-versioning
Description: this repo and this package are deprecated in favor of @the/libs use import { versioning } from '@the-libs/mongo-backend' [or similar] see https://www.npmjs.com/settings/the-libs/packages
Author: Michael Nusair
Latest version: 4.0.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

this repo and this package are deprecated in favor of @the/libs
use import { versioning } from '@the-libs/mongo-backend' [or similar]
see https://www.npmjs.com/settings/the-libs/packages
npm package: @mnpjs/azure
Description: Azure Functions Project Structure.
Author: Anton
Latest version: 1.0.1

# @mnpjs/azure

[![npm version](https://badge.fury.io/js/%40mnpjs%2Fazure.svg)](https://npmjs.org/package/@mnpjs/azure)

Azure Functions Project Structure.

```m
structure
├── README.md
├── documentary
│   ├── 1-mnp.md
│   ├── footer.md
│   └── index.md
├── host.json
├── local.settings.json
├── mnp
│   ├── function.json
│   ├── index.js
│   └── mnp.js
├── package.json
├── proxies.json
└── yarn.lock
```



## Copyright

(c) [MNP][1] 2018

[1]: https://mnpjs.org
npm package: @mnpjs/idio
Description: The Idio Web Server MNP Structure For Easy Node.js Backend Website Building.
Author: Anton
Latest version: 1.3.1

# @mnpjs/idio

The [Idio Web Server](https://github.com/idiocc/core) [MNP](https://mnpjs.org) Structure For Easy Node.js Backend Website Building.

```js
import core from '@idio/core'
import facebook from '@idio/facebook'

(async () => {
  const { app, router, url } = await core({
    session: { use: true,
      keys: [process.env.SESSION_KEY || 'dev'],
    },
    logger: { use: process.env != 'production' },
    static: { use: true, root: 'static' },

  }, { port: process.env.PORT || 5000 })
  router.get('/', async (ctx, next) => {
    ctx.body = 'hello world'
    await next()
  })
  facebook(router, {
    client_id: process.env.CLIENT_ID,
    client_secret: process.env.SECRET,
  })
  app.use(router.routes())
  console.log('Started on %s', url)
})()
```

## Structure

The project will have the minimal structure to start the webserver.

```m
structure
├── CHANGELOG.md
├── Dockerfile
├── README.md
├── build
│   └── bin
│       └── app.js
├── documentary
│   ├── 1-dokku.md
│   ├── 2-facebook.md
│   ├── 3-env.md
│   ├── footer.md
│   └── index.md
├── package.json
├── src
│   └── bin
│       ├── app.js
│       └── index.js
├── static
└── yarn.lock
```

## Using With MNP

This structure is cloned with appropriate parameters (i.e., copyright links and license placeholders) using the `mnp` package bootstrapper.

```sh
mnp new-website -s idio
```

## Dockerfile

The webserver is meant to be deployed on a docker conatiner (e.g., on a Dokku host is optimal). The following `Dockerfile` based off `node:alpine` is used.

```
FROM node:10-alpine

COPY package*.json .
COPY yarn.lock .
RUN yarn

COPY build build
COPY static static

ENV NODE_ENV production

ENTRYPOINT ["node", "build/bin/app.js"]
```

## Copyright

(c) [Art Deco][1] 2018

[1]: https://artd.eco
npm package: @mnpjs/package
Description: A package structure for mnp.
Author: Anton
Latest version: 1.11.3

# @mnpjs/package

[![npm version](https://badge.fury.io/js/%40mnpjs%2Fpackage.svg)](https://npmjs.org/package/@mnpjs/package)

A package structure for `mnp`.

```m
structure
├── CHANGELOG.md
├── LICENSE
├── README.md
├── build
│   └── index.js
├── documentary
│   ├── 1-API
│   ├── footer.md
│   └── index.md
├── example
│   └── index.js
├── node_modules
│   ├── @zoroaster
│   ├── alamode
│   ├── catchment
│   ├── documentary
│   ├── eslint-config-artdeco
│   ├── preact
│   ├── spawncommand
│   ├── typal
│   ├── yarn-s
│   └── zoroaster
├── package.json
├── src
│   └── index.js
├── test
│   ├── context
│   ├── fixture
│   ├── mask
│   ├── result
│   └── spec
├── types
│   ├── externs.js
│   ├── index.js
│   └── index.xml
└── yarn.lock
```

[Read more about `mnp`][2]

<p align="center"><a href="#table-of-contents">
  <img src="/.documentary/section-breaks/0.svg?sanitize=true">
</a></p>

## Copyright

(c) [Art Deco][1] 2018

[1]: https://artdeco.bz
[2]: https://mnpjs.org

<p align="center"><a href="#table-of-contents">
  <img src="/.documentary/section-breaks/-1.svg?sanitize=true">
</a></p>
npm package: @mnpjs/structure
Description: A structure for mnp to create new structures.
Author: Anton
Latest version: 1.1.1

# @mnp/structure

`@mnp/structure` is a structure for [`mnp`][2] to create new structures.

---

(c) [Art Deco][1] 2018

[1]: https://artdeco.bz
[2]: https://mnpjs.org
npm package: @mnrendra/chalk-supports-color
Description: Refactored supports-color code to support both CommonJS (CJS) and ES Modules (ESM) with mixed exports.
Author: Muhammad Rendra
Latest version: 2.1.0

# @mnrendra/chalk-supports-color
Refactored [supports-color](https://github.com/chalk/supports-color) code to support both **CommonJS (CJS)** and **ES Modules (ESM)** with mixed exports. This allows users to `import` or `require` the module without needing to access the `.default` property.

## Benefits
- ✅ Auto-detection for `browser` and `node` platforms
- ✅ Supports both **CommonJS (CJS)** and **ES Modules (ESM)**
- ✅ Mixed exports (no need to access `.default` for default value)
- ✅ Minified distribution package
- ✅ Well-tested (100% code coverage)
- ✅ **TypeScript** source code for easier development

## Reference
Refactored from the [original source code](https://github.com/chalk/supports-color) since version [v9.4.0](https://github.com/chalk/supports-color/releases/tag/v9.4.0), commit [c214314](https://github.com/chalk/supports-color/commit/c214314a14bcb174b12b3014b2b0a8de375029ae).<br/>
*This module will be kept updated with the original source code; contributions are welcome. 🙏*

## Install
```bash
npm i @mnrendra/chalk-supports-color
```

## Usage
Using `CommonJS`:
```javascript
const supportsColor = require('@mnrendra/chalk-supports-color')

const {
  stdout,
  stderr,
  createSupportsColor
} = require('@mnrendra/chalk-supports-color')

// from default export
console.log(supportsColor)
console.log(supportsColor.default)
console.log(supportsColor.stdout)
console.log(supportsColor.stderr)
// from named exports
console.log(stdout)
console.log(stderr)
console.log(createSupportsColor({ isTTY: true }))
```

Using `ES Modules`:
```javascript
import supportsColor, {
  stdout,
  stderr,
  createSupportsColor
} from '@mnrendra/chalk-supports-color'

// from default export
console.log(supportsColor)
console.log(supportsColor.default)
console.log(supportsColor.stdout)
console.log(supportsColor.stderr)
// from named exports
console.log(stdout)
console.log(stderr)
console.log(createSupportsColor({ isTTY: true }))
```

For more details, refer to the original source code: [https://github.com/chalk/supports-color](https://github.com/chalk/supports-color).

## Types
```typescript
import type {
  ColorSupportLevel,
  ColorSupport,
  ColorInfo,
  SupportsColor,
  Options
} from '@mnrendra/chalk-supports-color'
```

## Contribute
Contributions are always welcome! Please open discussions [here](https://github.com/mnrendra/chalk-supports-color/discussions).

## Special Thanks 🙇
- [sindresorhus](https://github.com/sindresorhus) for creating the [original source code](https://github.com/chalk/supports-color).
- [Qix-](https://github.com/Qix-) for being the active maintainer of the [original source code](https://github.com/chalk/supports-color).
- and all [contributors](https://github.com/chalk/supports-color/graphs/contributors) who contributed to the original source code.

## License
[MIT](https://github.com/mnrendra/chalk-supports-color/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/find-up
Description: A lightweight utility to find a file or directory by searching upward from a specific directory.
Author: Muhammad Rendra
Latest version: 1.0.1

# @mnrendra/find-up

![version](https://img.shields.io/npm/v/@mnrendra/find-up)
![types](https://img.shields.io/npm/types/@mnrendra/find-up)
![size](https://img.shields.io/npm/unpacked-size/@mnrendra/find-up)
![downloads](https://img.shields.io/npm/dm/@mnrendra/find-up)
![license](https://img.shields.io/npm/l/@mnrendra/find-up)

A lightweight utility to find a file or directory by searching upward from a specific directory.

## Install
```bash
npm i @mnrendra/find-up
```

## API Reference

### `findUp`
Finds a file or directory by searching upward from a specific directory.<br/>
*If no initial directory is provided, it will start from the current working directory (`process.cwd()`).*

#### Type
```typescript
(target: string, initDir?: string) => string | null
```

#### Parameters
| Name      | Type     | Description                                                              |
|-----------|----------|--------------------------------------------------------------------------|
| `target`  | `string` | The name of the file or directory to find.                               |
| `initDir` | `string` | Optional directory to start searching from. Defaults to `process.cwd()`. |

#### Return
```typescript
string | null
```
The absolute path of the file or directory if found, or `null` if not found.

## Usage

### CommonJS
Let's say your package directory is `/foo/package-directory`, where the `package.json` file is located.<br/>
Then, you want to find the `package.json` from `/foo/package-directory/src/index.cjs`:
```javascript
const { findUp } = require('@mnrendra/find-up')

const pkgPath1 = findUp('package.json') // Searches from `process.cwd()`: '/foo/package-directory'.
const pkgPath2 = findUp('package.json', __dirname) // Searches from `__dirname`: '/foo/package-directory/src'.

console.log(pkgPath1 === pkgPath2) // Output: true
console.log(pkgPath1) // Output: /foo/package-directory/package.json
console.log(pkgPath2) // Output: /foo/package-directory/package.json
```

### ES Modules
Let's say your package directory is `/foo/package-directory`, where the `package.json` file is located.<br/>
Then, you want to find the `package.json` from `/foo/package-directory/src/index.mjs`:
```javascript
import { dirname } from 'node:path'
import { fileURLToPath } from 'node:url'

import { findUp } from '@mnrendra/find-up'

const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)

const pkgPath1 = findUp('package.json') // Searches from `process.cwd()`: '/foo/package-directory'.
const pkgPath2 = findUp('package.json', __dirname) // Searches from `__dirname`: '/foo/package-directory/src'.

console.log(pkgPath1 === pkgPath2) // Output: true
console.log(pkgPath1) // Output: /foo/package-directory/package.json
console.log(pkgPath2) // Output: /foo/package-directory/package.json
```

## License
[MIT](https://github.com/mnrendra/find-up/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/obtain-tsconfig-paths
Description: Obtain a valid baseUrl and paths from the compilerOptions in the tsconfig.json file
Author: Muhammad Rendra
Latest version: 1.2.2

# @mnrendra/obtain-tsconfig-paths
Obtain a valid `baseUrl` and `paths` from the `compilerOptions` in the `tsconfig.json` file so you don't need to import and validate the `tsconfig.json` file manually.

## Install
```bash
npm i @mnrendra/obtain-tsconfig-paths
```

## Usage

Using `CommonJS`:
```javascript
const { obtainTSConfigPaths, obtainTSConfigPathsSync } = require('@mnrendra/obtain-tsconfig-paths')

// Asynchronously
obtainTSConfigPaths()
  .then(({ baseUrl, paths }) => {
    console.log('asynchronously:', baseUrl, paths)
  })

// Synchronously
const { baseUrl, paths } = obtainTSConfigPathsSync()
console.log('synchronously:', baseUrl, paths)
```

Using `ES Module`:
```javascript
import { obtainTSConfigPaths, obtainTSConfigPathsSync } from '@mnrendra/obtain-tsconfig-paths'

// Asynchronously
obtainTSConfigPaths()
  .then(({ baseUrl, paths }) => {
    console.log('asynchronously:', baseUrl, paths)
  })

// Synchronously
const { baseUrl, paths } = obtainTSConfigPathsSync()
console.log('synchronously:', baseUrl, paths)
```

## Options
### • `baseUrl`
*type: `BaseURL|null|undefined`*<br/>
*default: `undefined`*<br/>
`tsconfig.json`'s `compilerOptons.baseUrl`.
### • `paths`
*type: `Paths|null|undefined`*<br/>
*default: `undefined`*<br/>
`tsconfig.json`'s `compilerOptons.paths`.

## Types
```typescript
import type {
  // @mnrendra/types-tsconfig
  TSConfig,
  CompilerOptions,
  BaseURL,
  Paths,
  // @mnrendra/obtain-tsconfig-paths
  TSConfigPaths
} from '@mnrendra/obtain-tsconfig-paths'
```

## License
[MIT](https://github.com/mnrendra/obtain-tsconfig-paths/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/read-tsconfig
Description: Read tsconfig.json file in your project.
Author: Muhammad Rendra
Latest version: 1.3.2

# @mnrendra/read-tsconfig
Read `tsconfig.json` file in your project.

## Install
```bash
npm i @mnrendra/read-tsconfig
```

## Usage

Using `CommonJS`:
```javascript
const { readTSConfig, readTSConfigSync } = require('@mnrendra/read-tsconfig')

// Asynchronously
readTSConfig()
  .then(({ compilerOptions }) => {
    console.log('asynchronously:', compilerOptions)
  })

// Synchronously
const { compilerOptions } = readTSConfigSync()
console.log('synchronously:', compilerOptions)
```

Using `ES Module`:
```javascript
import { readTSConfig, readTSConfigSync } from '@mnrendra/read-tsconfig'

// Asynchronously
readTSConfig()
  .then(({ compilerOptions }) => {
    console.log('asynchronously:', compilerOptions)
  })

// Synchronously
const { compilerOptions } = readTSConfigSync()
console.log('synchronously:', compilerOptions)
```

## Types
```typescript
import type {
  TSConfig,
  BuildOptions,
  CompileOnSave,
  CompilerOptions,
  BaseURL,
  Paths,
  Exclude,
  Extends,
  Files,
  Include,
  MDX,
  References,
  TSNode,
  WatchOptions,
  TypeAcquisition
} from '@mnrendra/read-tsconfig'
```

## License
[MIT](https://github.com/mnrendra/read-tsconfig/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/rollup-plugin-chmod
Description: A Rollup plugin to change file permission modes.
Author: Muhammad Rendra
Latest version: 2.0.0

# @mnrendra/rollup-plugin-chmod
🍣 A [Rollup](https://rollupjs.org/) plugin to change file permission modes.

## Install
```bash
npm i -D @mnrendra/rollup-plugin-chmod
```

## Usage
For **ES modules** (`rollup.config.mjs`):
```javascript
import chmod from '@mnrendra/rollup-plugin-chmod'

export default {
  external: (id) => !/^[./]/.test(id),
  input: 'your_input_file.(js|cjs|mjs|ts|cts|mts)',
  output: {
    file: 'bin/your_output_file.js',
    format: 'cjs',
    sourcemap: true
  },
  plugins: chmod({
    mode: '755' // <-- Will change the 'bin/your_output_file.js' permission mode to '-rwxr-xr-x'
  })
}
```
For **CommonJS** (`rollup.config.js`):
```javascript
const chmod = require('@mnrendra/rollup-plugin-chmod')

module.exports = {
  external: (id) => !/^[./]/.test(id),
  input: 'your_input_file.(js|cjs|mjs|ts|cts|mts)',
  output: {
    file: 'bin/your_output_file.js',
    format: 'cjs',
    sourcemap: true
  },
  plugins: chmod({
    mode: '755' // <-- Will change the 'bin/your_output_file.js' permission mode to '-rwxr-xr-x'
  })
}
```

## Options
```javascript
const chmod = require('@mnrendra/rollup-plugin-chmod')

module.exports = [
  {
    plugins: [
      chmod({
        /**
         * The three rightmost digits define permissions for the file **owner**, **group**, and **others**.
         *
         * - 7: read, write, and execute
         * - 6: read and write
         * - 5: read and execute
         * - 4: read only
         * - 3: write and execute
         * - 2: write only
         * - 1: execute only
         * - 0: no permission
         *
         * example, `"755"`, means:
         * - The owner may read, write, and execute the file.
         * - The group may read and execute the file.
         * - Others may read and execute the file.
         *
         * @see https://nodejs.org/api/fs.html#file-modes
         * */
        mode: '755'
      })
    ]
  }
]
```

### • `mode`
The three rightmost digits define permissions for the file **owner**, **group**, and **others**.<br/>
*type: `Mode`*<br/>
*default: `'644'`*

## Types
```typescript
import type {
  Mode,
  Options,
  Plugin
} from '@mnrendra/rollup-plugin-chmod'
```

## License
[MIT](https://github.com/mnrendra/rollup-plugin-chmod/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/rollup-plugin-dts
Description: A "rollup-plugin-dts" with dual exports, allowing consumers to `import` or `require` it without needing to access the `.default` export in both CommonJS and ES Module formats.
Author: Muhammad Rendra
Latest version: 1.0.0

# @mnrendra/rollup-plugin-dts
A [rollup-plugin-dts](https://www.npmjs.com/package/rollup-plugin-dts) with dual exports, allowing consumers to `import` or `require` it without needing to access the `.default` export in both **CommonJS** and **ES Module** formats.

*This 🍣 [Rollup](https://rollupjs.org/) plugin is only linked to [rollup-plugin-dts](https://www.npmjs.com/package/rollup-plugin-dts) version [^6.1.1](https://www.npmjs.com/package/rollup-plugin-dts/v/6.1.1), so it doesn’t modify any original code except for how it is exported and packaged.*

*Thank you to [@Swatinem](https://github.com/Swatinem) for creating [rollup-plugin-dts](https://www.npmjs.com/package/rollup-plugin-dts).*

## Install
```bash
npm i -D @mnrendra/rollup-plugin-dts
```

## Usage
For **ES modules** (`rollup.config.mjs`):
```javascript
import dts from '@mnrendra/rollup-plugin-dts'

export default {
  // ... any Rollup options
  plugins: dts({
    // rollup-plugin-dts's options
  })
}
```
For **CommonJS** (`rollup.config.js`):
```javascript
const dts = require('@mnrendra/rollup-plugin-dts')

module.exports = {
  // ... any Rollup options
  plugins: dts({
    // rollup-plugin-dts's options
  })
}
```

## Contribute
Contributions are always welcome! Feel free to start a discussion [here](https://github.com/mnrendra/rollup-plugin-dts/discussions).<br/>
*Or, if you find any issues with this package, please open an issue [here](https://github.com/mnrendra/rollup-plugin-dts/issues).*

## License
[MIT](https://github.com/mnrendra/rollup-plugin-dts/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/rollup-plugin-esbuild
Description: A "rollup-plugin-esbuild" with dual exports, allowing consumers to `import` or `require` it without needing to access the `.default` export in both CommonJS and ES Module formats.
Author: Muhammad Rendra
Latest version: 1.0.0

# @mnrendra/rollup-plugin-esbuild
A [rollup-plugin-esbuild](https://www.npmjs.com/package/rollup-plugin-esbuild) with dual exports, allowing consumers to `import` or `require` it without needing to access the `.default` export in both **CommonJS** and **ES Module** formats.

*This 🍣 [Rollup](https://rollupjs.org/) plugin is only linked to [rollup-plugin-esbuild](https://www.npmjs.com/package/rollup-plugin-esbuild) version [^6.2.1](https://www.npmjs.com/package/rollup-plugin-esbuild/v/6.2.1), so it doesn’t modify any original code except for how it is exported and packaged.*

*Thank you to [@egoist](https://github.com/egoist) for creating [rollup-plugin-esbuild](https://www.npmjs.com/package/rollup-plugin-esbuild).*

## Install
```bash
npm i -D @mnrendra/rollup-plugin-esbuild
```

## Usage
For **ES modules** (`rollup.config.mjs`):
```javascript
import esbuild from '@mnrendra/rollup-plugin-esbuild'

export default {
  // ... any Rollup options
  plugins: esbuild({
    // rollup-plugin-esbuild's options
  })
}
```
For **CommonJS** (`rollup.config.js`):
```javascript
const esbuild = require('@mnrendra/rollup-plugin-esbuild')

module.exports = {
  // ... any Rollup options
  plugins: esbuild({
    // rollup-plugin-esbuild's options
  })
}
```

## Contribute
Contributions are always welcome! Feel free to start a discussion [here](https://github.com/mnrendra/rollup-plugin-esbuild/discussions).<br/>
*Or, if you find any issues with this package, please open an issue [here](https://github.com/mnrendra/rollup-plugin-esbuild/issues).*

## License
[MIT](https://github.com/mnrendra/rollup-plugin-esbuild/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/rollup-utils
Description: Rollup plugin utilities.
Author: Muhammad Rendra
Latest version: 1.2.0

# @mnrendra/rollup-utils
🍣 [Rollup](https://rollupjs.org/) plugin utilities.

## Install
```bash
npm i @mnrendra/rollup-utils
```

## Usage

### Use in your plugin development:

`yourPlugin/store.ts`
```typescript
import type { Store } from '@mnrendra/rollup-utils'

const store: Store = {
  pluginName: '', // `Rollup` plugin name
  name: '', // `package.json` name
  version: '', // `package.json` version
  homepage: '', // `package.json` homepage
}

export default store
```

`yourPlugin/index.ts`
```typescript
import type { Plugin } from 'rollup'

import {
  initStore,
  printInfo
} from '@mnrendra/rollup-utils'

import store from './store'

/**
 * Rollup plugin.
 *
 * @returns {Promise<Plugin>} Rollup plugin object.
 */
const main = async (): Promise<Plugin> => {
  // Initialize store.
  await initStore(store, { any: null })

  // Print info.
  printInfo(store)

  // Return Rollup plugin object.
  return {
    /**
     * Rollup properties
     */
    name: store.pluginName,
    version: store.version
  }
}

export default main
```

## Utilities

### • initStore
To initialize the `store` to save the expensive data (e.g., `package.json` values).
```typescript
import type { Store } from '@mnrendra/rollup-utils'

type InitStore = <T extends Record<string, any> = Record<string, any>>(store: Store, additional?: T) => Promise<void>
```
It automatically read `package.json` and store the required properties in the `store`.

### • printInfo
To print `Rollup` plugin information from the `store`.
```typescript
import type { Store } from '@mnrendra/rollup-utils'

type PrintInfo = (store: Store) => void
```
The current format is: `• pluginName: version`. If you wish to change the format, please request it [here](https://github.com/mnrendra/rollup-utils/issues).

## Types
```typescript
import type {
  Store
} from '@mnrendra/rollup-utils'
```

## License
[MIT](https://github.com/mnrendra/rollup-utils/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/tsconfig-alias-parser
Description: Parse the baseUrl and paths from tsconfig.json into aliases.
Author: Muhammad Rendra
Latest version: 1.3.2

# @mnrendra/tsconfig-alias-parser
Parse the `baseUrl` and `paths` from `tsconfig.json` into [aliases](https://www.npmjs.com/package/@mnrendra/types-aliases). This will automatically read `baseUrl` and `paths` from `tsconfig.json` and convert them into [aliases](https://www.npmjs.com/package/@mnrendra/types-aliases) that can be used by [@mnrendra/alias-resolver](https://www.npmjs.com/package/@mnrendra/alias-resolver) to resolve all alias paths.

## Install
```bash
npm i @mnrendra/tsconfig-alias-parser
```

## Usage

Using `CommonJS`:
```javascript
const { parseTSConfigAlias, parseTSConfigAliasSync } = require('@mnrendra/tsconfig-alias-parser')

// Asynchronously
parseTSConfigAlias()
  .then((aliases) => {
    console.log('asynchronously:', aliases)
  })

// Synchronously
const aliases = parseTSConfigAliasSync()
console.log('synchronously:', aliases)
```

Using `ES Module`:
```javascript
import { parseTSConfigAlias, parseTSConfigAliasSync } from '@mnrendra/tsconfig-alias-parser'

// Asynchronously
parseTSConfigAlias()
  .then((aliases) => {
    console.log('asynchronously:', aliases)
  })

// Synchronously
const aliases = parseTSConfigAliasSync()
console.log('synchronously:', aliases)
```

## Options
### • `baseUrl`
*type: `BaseURL|null|undefined`*<br/>
*default: `undefined`*<br/>
`tsconfig.json`'s `compilerOptons.baseUrl`.
### • `paths`
*type: `Paths|null|undefined`*<br/>
*default: `undefined`*<br/>
`tsconfig.json`'s `compilerOptons.paths`.

## Types
```typescript
import type {
  // @mnrendra/types-aliases
  Aliases,
  Alias,
  // @mnrendra/types-tsconfig
  TSConfig,
  CompilerOptions,
  BaseURL,
  Paths
} from '@mnrendra/tsconfig-alias-parser'
```

## License
[MIT](https://github.com/mnrendra/tsconfig-alias-parser/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/types-aliases
Description: A TypeScript type to validate the input of @mnrendra/alias-resolver or the output of @mnrendra/tsconfig-alias-parser.
Author: Muhammad Rendra
Latest version: 1.1.1

# @mnrendra/types-aliases
A TypeScript type to validate the input of [@mnrendra/alias-resolver](https://www.npmjs.com/package/@mnrendra/alias-resolver) or the output of [@mnrendra/tsconfig-alias-parser](https://www.npmjs.com/package/@mnrendra/tsconfig-alias-parser).

## Install
```bash
npm i -D @mnrendra/types-aliases
```

## Usage
```typescript
import type { Aliases, Alias } from '@mnrendra/types-aliases'

// Alias
const alias: Alias = {
  alias: '@',
  path: './src'
}

console.log('alias:', alias)

// Aliases
const aliases: Aliases = [
  {
    alias: '@',
    path: './src'
  },
  {
    alias: '@tests',
    path: './tests'
  }
]

console.log('aliases:', aliases)
```

## Types
```typescript
import type {
  Aliases, // A TypeScript type to validate the input of `@mnrendra/alias-resolver` or the output of `@mnrendra/tsconfig-alias-parser`.
  Alias // A TypeScript type to validate an alias for input of `@mnrendra/alias-resolver` or output of `@mnrendra/tsconfig-alias-parser`.
} from '@mnrendra/types-aliases'
```

## License
[MIT](https://github.com/mnrendra/types-aliases/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/types-camelcase
Description: TypeScript utility type for converting a string type to camel case.
Author: Muhammad Rendra
Latest version: 1.0.1

# @mnrendra/types-camelcase
TypeScript utility type for converting a string type to camel case.

## Install
```bash
npm i -D @mnrendra/types-camelcase
```

## Usage
```typescript
import type { CamelCase } from '@mnrendra/types-camelcase'

type Uppercase = 'UpperCase'

type Camelcase = CamelCase<Uppercase>

const camelcase: Camelcase = 'upperCase'

console.log(camelcase)
```

## Types
```typescript
import type {
  CamelCase // A utility type for converting a string type to camel case.
} from '@mnrendra/types-camelcase'
```

## License
[MIT](https://github.com/mnrendra/types-camelcase/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/types-package
Description: package.json interface extended from the official and unofficial fields.
Author: Muhammad Rendra
Latest version: 1.0.1

# @mnrendra/types-package
`package.json` interface extended from the official and unofficial fields.

## Install
```bash
npm i -D @mnrendra/types-package
```

## Usage
```typescript
import type { Package } from '@mnrendra/types-package'

import { readFileSync } from 'fs'
import { resolve } from 'path'
import { cwd } from 'process'

const { name, version }: Package = JSON.parse(readFileSync(resolve(cwd(), 'package.json'), 'utf-8'))

console.log(name, version)
```

## Types
```typescript
import type {
  Package // `package.json` interface extended from the official and unofficial fields.
} from '@mnrendra/types-package'
```

## License
[MIT](https://github.com/mnrendra/types-package/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/types-tsconfig
Description: TSConfig interface to validate tsconfig.json value.
Author: Muhammad Rendra
Latest version: 1.1.1

# @mnrendra/types-tsconfig
`tsconfig.json` interface extended from the [official](https://www.typescriptlang.org/tsconfig/) and [unofficial](https://json.schemastore.org/tsconfig.json) fields.

## Install
```bash
npm i -D @mnrendra/types-tsconfig
```

## Usage
```typescript
import type { TSConfig } from '@mnrendra/types-tsconfig'

import { readFileSync } from 'fs'
import { resolve } from 'path'
import { cwd } from 'process'

import * as JSON5 from 'json5'

const { compilerOptions }: TSConfig = JSON5.parse(readFileSync(resolve(cwd(), 'tsconfig.json'), 'utf-8'))

console.log(compilerOptions)
```

## Types
```typescript
import type {
  TSConfig // `tsconfig.json` interface extended from the official and unofficial fields.
  // Interfaces
  BuildOptions,
  CompileOnSave,
  CompilerOptions,
  BaseURL,
  Paths,
  Exclude,
  Extends,
  Files,
  Include,
  MDX,
  References,
  TSNode,
  WatchOptions,
  TypeAcquisition
} from '@mnrendra/types-tsconfig'
```

## License
[MIT](https://github.com/mnrendra/types-tsconfig/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/use-package
Description: A utility to provide package.json data.
Author: Muhammad Rendra
Latest version: 1.0.0

# @mnrendra/use-package
A utility to provide `package.json` data. Because [@mnrendra/read-package](https://www.npmjs.com/package/@mnrendra/read-package) is expensive, this utility is used to save it.

## Install
```bash
npm i @mnrendra/use-package
```

## Usage

Using `CommonJS`:

`index.js`
```javascript
const { clonePackage } = require('@mnrendra/use-package')
const submodule = require('./submodule')

const main = async () => {
  await clonePackage()
  submodule()
}
```
`submodule.js`
```javascript
const { pack } = require('@mnrendra/use-package')

const main = () => {
  pack.customField = 'customField'

  console.log(pack.name) // Will print your package.json name.
  console.log(pack.version) // Will print your package.json version.
  console.log(pack.customField) // Will print your package.json customField.
}
```

Using `ES Module`:

`index.js`
```javascript
import { clonePackage } from '@mnrendra/use-package'
import submodule from './submodule'

const main = async () => {
  await clonePackage()
  submodule()
}
```
`submodule.js`
```javascript
import { pack } from '@mnrendra/use-package'

const main = () => {
  pack.customField = 'customField'

  console.log(pack.name) // Will print your package.json name.
  console.log(pack.version) // Will print your package.json version.
  console.log(pack.customField) // Will print your package.json customField.
}
```

# Types
```typescript
import type {
  Package // @mnrendra/types-package
} from '@mnrendra/use-package'
```

## License
[MIT](https://github.com/mnrendra/read-packag/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/util-readable-list
Description: A utility to convert an array into readable text.
Author: Muhammad Rendra
Latest version: 1.0.0

# @mnrendra/util-readable-list
A utility to convert an array into readable text.

## Install
```bash
npm i @mnrendra/util-readable-list
```

## Usage
```javascript
import { readableList } from '@mnrendra/util-readable-list'

console.log(readableList(['a'])) // Will print: a
console.log(readableList(['a'], { quote: '"' })) // Will print: "a"
console.log(readableList(['a', 'b'])) // Will print: a and b
console.log(readableList(['a', 'b'], { conj: 'or' })) // Will print: a or b
console.log(readableList(['a', 'b'], { quote: '`' })) // Will print: `a` and `b`
console.log(readableList(['a', 'b'], { quote: '\'', conj: 'or' })) // Will print: 'a' or 'b'
console.log(readableList(['a', 'b', 'c'], { quote: '"', conj: 'or' })) // Will print: "a", "b", or "c"
console.log(readableList(['a', 'b', 'c'], { quote: '"', conj: 'or', comma: ';' })) // Will print: "a"; "b"; or "c"
console.log(readableList(['a', 'b', 'c']. { comma: ';' })) // Will print: a; b; and c
```

## Types
```typescript
import type {
  Options
} from '@mnrendra/util-readable-list'
```

## License
[MIT](https://github.com/mnrendra/util-readable-list/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)
npm package: @mnrendra/validate-skipped-stacks
Description: Validate a name or a list of names of stack traces that need to be skipped.
Author: Muhammad Rendra
Latest version: 2.0.4

# @mnrendra/validate-skipped-stacks
Validate a name or a list of names of stack traces that need to be skipped. These valid skipped stacks are used to bypass a stack or multiple stacks when calling [@mnrendra/stack-trace](https://www.npmjs.com/package/@mnrendra/stack-trace) or [@mnrendra/read-stacked-file](https://www.npmjs.com/package/@mnrendra/read-stacked-file), allowing you to obtain the stack trace(s) of your consumer target file.

## Install
```bash
npm i @mnrendra/validate-skipped-stacks
```

## Usage

Using `CommonJS`:
```javascript
const { validateSkippedStacks } = require('@mnrendra/validate-skipped-stacks')

const validSkippedStacks = validateSkippedStacks('skipped-stack')
console.log(validSkippedStacks)
// Output: ['skipped-stack']

const validSkippedStacks = validateSkippedStacks('skipped-stack', 'additional-skipped-stack')
console.log(validSkippedStacks)
// Output: ['skipped-stack', 'additional-skipped-stack']

const validSkippedStacks = validateSkippedStacks('skipped-stack', ['additional-skipped-stack'])
console.log(validSkippedStacks)
// Output: ['skipped-stack', 'additional-skipped-stack']
```

Using `ES Module`:
```javascript
import { validateSkippedStacks } from '@mnrendra/validate-skipped-stacks'

const validSkippedStacks = validateSkippedStacks('skipped-stack')
console.log(validSkippedStacks)
// Output: ['skipped-stack']

const validSkippedStacks = validateSkippedStacks('skipped-stack', 'additional-skipped-stack')
console.log(validSkippedStacks)
// Output: ['skipped-stack', 'additional-skipped-stack']

const validSkippedStacks = validateSkippedStacks('skipped-stack', ['additional-skipped-stack'])
console.log(validSkippedStacks)
// Output: ['skipped-stack', 'additional-skipped-stack']
```

## Types
```typescript
import type {
  SkippedStacks, // Skipped stacks argument. It can be a string or a list of strings. Make sure the string(s) is/are the name(s) of the stack trace(s) that need to be skipped.
  ValidSkippedStacks // A list of stack names to be skipped.
} from '@mnrendra/validate-skipped-stacks'
```

## License
[MIT](https://github.com/mnrendra/validate-skipped-stacks/blob/HEAD/LICENSE)

## Author
[@mnrendra](https://github.com/mnrendra)