open-index/open-npm huggingface dataset:
npm package: @hoast/base-package
Description: Base package for other packages.
Author: Ron Dekker
Latest version: 3.1.0

# @hoast/base-package

Provides basic functionality like receiving the library's reference and setting up a logger. Meant for developers to be used as a base for a [hoast](https://hoast.js.org) source or process package.

## Install

```ZSH
npm install @hoast/base-package
```

## Usage

### Constructor

- `constructor` Create package instance.
  - `@param {Object} ...Options` Options objects which can contain the following key.
    - `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).

### Functions

- `getOptions` Get merged options.
  - `@returns {Object}` options.
- `getLibrary` Get the `hoast` instance that the module is part of.
  - `@returns {Hoast}` hoast instance.
- `setLibrary` Set library reference. This will be called by `hoast` itself before the next function is called.
  - `@params {Hoast} library` hoast instance.
- `getLogger` Get the logger instance.
  - `@returns {Logger}` logger instance.

### Example

```JavaScript
// Import base modules.
import BasePackage from '@hoast/base-package'

class NewPackage extends BasePackage {
  constructor(options) {
    super({
      // Default options.
    }, options)
  }
}

export default NewPackage
```

See the [@hoast/process-log](https://github.com/hoast/hoast/tree/main/packages/process-log#readme) package for another example.
npm package: @hoast/base-process
Description: Base package for process packages.
Author: Ron Dekker
Latest version: 3.1.0

# @hoast/base-process

Provides basic functionality for process package like an initialization function, sequentially running of certain code, and filtering out running the process based of the data. Meant for developers to be used as a base for a [hoast](https://hoast.js.org) process package.

## Install

```ZSH
npm install @hoast/base-process
```

## Usage

> Extends [BasePackage](https://github.com/hoast/hoast/tree/main/packages/base-package#readme).

### Constructor

- `constructor` Create package instance.
  - `@param {Object} ...Options` Options objects which can contain the following keys.
    - `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

    - `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).

### Functions

- `async next` Will be called by hoast itself to process the given item.
  - `@param {Any} data` Data to process.
  - `@returns {Any}` Item to be processed.

### Abstract functions

The following functions can be implemented by the derived class and will automatically called if present. All functions are optional and don't have to be asynchronous.

- `async initialize` Called only once before sequential and concurrent.
- `async sequential` Called sequentially for each iteration call. Meaning while this method is running it won't be called until the ongoing call is finished.
  - `@params {Any}` Item.
  - `@returns {Any}` Item.
- `async concurrent` Called concurrently for each iteration call after the sequential call. Meaning this will run after the sequential call and in contrast to the sequential function will be called before a previous call has finished.
  - `@params {Any}` Item.
  - `@returns {Any}` Item.
- `async final` Called after the processor has iterated over all data.

### Example

```JavaScript
// Import base modules.
import BaseProcess from '@hoast/base-process'

class NewProcess extends BaseProcess {
  constructor(options) {
    super({
      // Default options.
    }, options)
  }

  async initialize() {
    // Initialize.
  }

  async sequential(data) {
    // Sequential.
    return data
  }

  async concurrent(data) {
    // Concurrent.
    return data
  }

  async final() {
    // Final.
  }
}

export default NewProcess
```

See the [@hoast/process-writefiles](https://github.com/hoast/hoast/tree/main/packages/process-writefiles#readme) package for another example.
npm package: @hoast/base-source
Description: Base package for source packages.
Author: Ron Dekker
Latest version: 3.1.1

# @hoast/base-source

Provides basic functionality for source package like an initialization function, sequentially running of certain code, and a finallize function called after the source is done iterating. Meant for developers to be used as a base for a [hoast](https://hoast.js.org) source package.

## Install

```ZSH
npm install @hoast/base-source
```

## Usage

> Extends [BasePackage](https://github.com/hoast/hoast/tree/main/packages/base-package#readme).

### Constructor

- `constructor` Create package instance.
  - `@param {Object} ...Options` Options objects which can contain the following keys.
    - `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).

### Variables

- `{Boolean} done` Is set to true if all items are returned.
- `{Boolean} exhausted` Set `exhausted` to true if the source has ran out of items to return.

### Functions

- `async next` Will be called by hoast itself to retrieve the next item.
  - `@returns {Any}` Retrieved data.

### Abstract functions

The following functions can be implemented by the derived class and will automatically called if present. All functions are optional and don't have to be asynchronous.

- `async initialize` Called only once before sequential and concurrent.
- `async sequential` Called sequentially for each iteration call. Meaning while this method is running it won't be called until the ongoing call is finished. Useful for processes that have to happen in order. Useful for iterating over the items in the filesystem.
  - `@returns {Any}` Item.
- `async concurrent` Called concurrently for each iteration call after the sequential call. Meaning this will run after the sequential call and in contrast to the sequential function will be called before a previous call has finished. Useful for reading file contents from the filesystem.
  - `@params {Any}` Data returned by the sequential method.
  - `@returns {Any}` Item.
- `async final` Called after the source has been exhausted and is finished.

### Example

```JavaScript
// Import base modules.
import BaseSource from '@hoast/base-source'

class NewSource extends BaseSource {
  constructor(options) {
    super({
      // Default options.
    }, options)
  }

  async initialize() {
    // Initialize.
  }

  async sequential() {
    // Sequential.
    this.exhausted = true
    return {}
  }

  async concurrent(data) {
    // Concurrent.
    return data
  }

  async final() {
    // Final.
  }
}

export default NewSource
```

See the [@hoast/source-readfiles](https://github.com/hoast/hoast/tree/main/packages/source-readfiles#readme) package for another example.
npm package: @hoast/process-custom
Description: Allows you to provide your own custom process functions.
Author: Ron Dekker
Latest version: 3.1.0

# @hoast/process-custom

Allows you to provide your own custom process functions. Extends base-process where the overridable functions can be provided via the options. Helps you from having to create a package for simple one-off behaviour.

## Install

```ZSH
npm install @hoast/process-custom
```

## Options

This package extends the [@hoast/base-process](https://github.com/hoast/hoast/tree/main/packages/base-process#readme) package. For more information on how to use this package see the options below as well as the base package.

- `{Function} initialize = null` Initialize function.
- `{Function} sequential = null` Sequential function.
- `{Function} concurrent = null` Concurrent function.
- `{Function} final = null` Final function.

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/process-frontmatter
Description: Extract frontmatter from text.
Author: Ron Dekker
Latest version: 3.1.0

# @hoast/process-frontmatter

Extract frontmatter from text.

## Install

```ZSH
npm install @hoast/process-frontmatter
```

## Options

- `{String} property = 'contents'` Dot notation path to the data property from which frontmatter should be read.
- `{String} frontmatterProperty = 'frontmatter'` Dot notation path to the data property to which the extracted frontmatter should be written.
- `{String} fence = '---'` The text which marks the start and end of the frontmatter portion.
- `{Function} parser = JSON.parse` Function which parses the extracted frontmatter text.

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/process-handlebars
Description: Template using Handlebars
Author: Ron Dekker
Latest version: 3.2.1

# @hoast/process-handlebars

Template using [Handlebars](https://github.com/handlebars-lang/handlebars.js#readme).

## Install

```ZSH
npm install @hoast/process-handlebars
```

## Options

- `{String} property = 'contents'` Dot notation path to the data property which should be used processed by handlebars.
- `{String} templateDirectory = null` Template directory path, either absolute or relative to the working directory.
- `{String} templatePath = null` Default template path relative to the template directory.
- `{String} templateProperty = null` Dot notation path to the data property where the template path can be written.
- `{Object} handlebarsOptions = {}` [Handlebars options](https://github.com/handlebars-lang/handlebars.js#readme).
- `{Object} helpers = null` Object of Handlebars helpers whereby the key is the name of the helper and the value the helper function.
- `{String} helpersDirectory = null` Handlebars helpers directory path, either absolute or relative to the working directory. All items in the directory will be read where the path relative to the given directory is the name of the helper and the default export of the file the helper.
- `{Object} partials = null` Object of Handlebars parials whereby the key is the name of the parial and the value the partial contents.
- `{String} partialsDirectory = null` Handlebars partials directory path, either absolute or relative to the working directory. All items in the directory will be read where the path relative to the given directory is the name of the partial and the contents of the file the partial.

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/process-javascript
Description: Retrieve and execute JavaScript.
Author: Ron Dekker
Latest version: 3.2.0

# @hoast/process-javascript

Retrieve and execute JavaScript.

## Install

```ZSH
npm install @hoast/process-javascript
```

## Example

### Input

File located at `components/h1.js`.

```JS
export default function({ contents }) {
  return '<h1>' . contents . '</h1>';
}
```

File located at `pages/index.html`.

```HTML
Hello world!
```

### Config

```JS
export default {
  collections: [{
    source: ['@hoast/source-readfiles', {
      directory: 'pages',
    }],
    processes: [
      ['@hoast/process-javascript', {
        importPath: 'components/h1.js',
      }],
      '@hoast/process-log',
    ],
  }],
}
```

### Output

```HTML
<h1>Hello world!</h1>
```

## Options

- `{String} setProperty = 'contents'` Dot notation path to the data property to which the result should be written.
- `{String} executeProperty = 'default'` Dot notation of property on imported object to execute.
- `{String} importProperty = 'default'` Dot notation of property path of script's file path.
- `{String} importPath = 'default'` File path of the script to execute, if know file path on data is found.
- `{Array<String>} watchIgnore = [ '**/node_modules/**' ]` Paths of files to ignore marking as dependencies when watching for changes.

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/process-log
Description: Log data to the terminal, useful for developing other process and source packages.
Author: Ron Dekker
Latest version: 3.2.0

# @hoast/process-log

Log data to the terminal, useful for developing other process and source packages.

## Install

```ZSH
npm install @hoast/process-log
```

## Options

- `{String} property = null` Dot notation path to the data property which should be logged.
- `{String} format = 'js'` In what format to log the data. Either `js` or `json`.
- `{String} level = 'info'` What console command to output the data with. Either `info`, `warn`, or `error`.
- `{String} prepend = null` Text to prepend to the message.
- `{String} append = null` Text to append to the message.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/process-markdown
Description: Convert markdown to HTML using Unified
Author: Ron Dekker
Latest version: 3.3.1

# @hoast/process-markdown

Convert markdown to HTML using [Unified](https://github.com/unifiedjs/unified#readme).

## Install

```ZSH
npm install @hoast/process-markdown
```

## Options

- `{String} property = 'contents'` Dot notation path to the data property which should be processed as markdown.
- `{Array} remarkPlugins = []` Remark plugins. If the value in the array is an array the first will be instantiated if not already an instance, the subsequent values will be used as the plugin's options.
- `{Array} remarkParseOptions = {}` Options for `remark-parse` plugin.
- `{Array} remarkRehypeOptions = {}` Options for `remark-rehype` plugin.
- `{Array} rehypeRawOptions = {}` Options for `remark-raw` plugin.
- `{Array} rehypePlugins = []` Rehype plugins. If the value in the array is an array the first will be instantiated if not already an instance, the subsequent values will be used as the plugin's options.
- `{Array} rehypeSanitizeOptions = {}` Options for `rehype-sanitize` plugin.
- `{Array} rehypeStringifyOptions = {}` Options for `rehype-stringify` plugin.

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/process-mithril
Description: Template using Mithril
Author: Ron Dekker
Latest version: 2.0.0
Deprecated: No longer maintained

# @hoast/process-mithril

Template using [Mithril](https://github.com/MithrilJS/mithril.js#readme).

## Install

```
% yarn add @hoast/process-mithril
```

OR

```
% npm install @hoast/process-mithril --save
```

## Options

- `{String} property = 'contents'` Dot notation path to the data property which should be processed by Mithril.
- `{String} componentDirectory = null` Component directory path, either absolute or relative to the working directory.
- `{String} componentPath = null` Default component path relative to the component directory.
- `{String} componentProperty = null` Dot notation path to the data property where the component path can be written.
- `{String} prefix = null` Text to prepend to the result. For instance `<!DOCTYPE html>` if you are generating an entire webpage using mithril.
- `{String} suffix = null` Text to append to the result.

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/master/packages/utils#logger.js).
npm package: @hoast/process-parse
Description: Parse a text value using a function or package.
Author: Ron Dekker
Latest version: 3.2.0

# @hoast/process-parse

Parse a text value using a function or package.

## Install

```ZSH
npm install @hoast/process-parse
```

## Options

- `{String} property = 'contents'` Dot notation path to the data property which should be used processed by the parser.
- `{Function} parser = JSON.parse` Function which parse the value at the property path.
npm package: @hoast/process-pdf
Description: Converts HTML to PDF using puppeteer.
Author: Ron Dekker
Latest version: 3.2.0

# @hoast/process-pdf

Converts HTML to PDF using [Puppeteer](https://github.com/puppeteer/puppeteer#readme).

## Install

```ZSH
npm install @hoast/process-pdf
```

## Options

- `{String} property = 'contents'` Dot notation path to the data property which should be processed.
- `{String} setProperty = 'contents'` Dot notation path to the data property to which the result should be written.
- `{String} optionsProperty = false` Optional dot notation path to [Puppeteer PDF options](https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagepdfoptions) property on the data. Will override the `pdfOptions` option.
- `{String} mediaType = false` Set to either `print` or `screen` to [change the pages media type](https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pageemulatemediatypetype).
- `{Object} pdfOptions = {}` [Puppeteer PDF options](https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagepdfoptions). Will be overwritten by data at the `optionsProperty` path.
- `{Object} serveOptions = {}` Options for local server handling HTML requests from puppeteer.
  - `{String} directory = null` Directory to server from, can be relative to process directory or an absolute directory.
  - `{Number} port = 3000` Port to serve from and link to.
- `{String} wrap = '<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>{0}</body></html>'` The string to wrap the content with where `{0}` indicates the place for the content. Set to `false` to disable wrapping.

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).

## Security risk

Note this module serves the `directory` options of hoast or `serveOptions.directory` directory to the local network whilst it is processing files. This can be a potential security risk and expose information to the network you might not want to make available.
npm package: @hoast/process-postprocess
Description: Process CSS, HTML, and JS data using PostCSS, Unified's rehype, and Babel plugins and minify using CleanCSS, Unified's rehype, and Terser.
Author: Ron Dekker
Latest version: 3.3.2

# @hoast/process-postprocess

Process CSS, HTML, and JS data using [PostCSS](https://github.com/postcss/postcss#readme), [Unified's rehype](https://github.com/rehypejs/rehype#readme), and [Babel](https://github.com/babel/babel#readme) plugins and minify using [CleanCSS](https://github.com/cssnano/cssnano#readme), [Unified's rehype](https://github.com/rehypejs/rehype#readme), and [Terser](https://github.com/terser/terser#readme).

## Install

```ZSH
npm install @hoast/process-postprocess
```

## Options

- `{String} property = 'contents'` Dot notation path to the data property which should be used processed by Mithril.
- `{String} mode = 'html'` Whether to process the data as either `css`, `cjs`, `html`, or `js`, `mjs`, `ts`. Set to either of those options. The `cjs`, `mjs`, and `ts` modes do not process the data differently and only influence how the dependencies are read when watching for changes.
- `{Boolean} minify = true` Whether to minify.
- `{Array} documentPlugins = []` [`unified rehype` plugins](https://github.com/rehypejs/rehype#readme).
- `{String} scriptProcessor = 'babel'` What processor to use for the javascript, if bundling is needed use the value `'rollup'`. The babel and terser configurations are still used.
- `{Object} scriptMinifyOptions = {}` [`terser` options](https://github.com/terser/terser#readme). Set to `false` to disable JS minification.
- `{Object} scriptOptions = {}` [`babel` options](https://github.com/babel/babel#readme).
- `{Object} styleMinifyOptions = {}` [`cssnano` options](https://github.com/cssnano/cssnano#readme). Set to `false` to disable CSS minification.
- `{Object} styleOptions = {}` [`postcss` options](https://github.com/postcss/postcss#readme).
- `{Array} stylePlugins = []` [`postcss` plugins](https://github.com/postcss/postcss#readme).

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/process-writefiles
Description: Write data to the filesystem.
Author: Ron Dekker
Latest version: 3.2.0

# @hoast/process-writefiles

Write data to the filesystem.

## Install

```ZSH
npm install @hoast/process-writefiles
```

## Options

- `{String} directory = 'dst'` Directory path, either absolute or relative to the working directory.
- `{Object} directoryOptions = {}` [fs.mkdir options](https://nodejs.org/api/fs.html#fs_fs_mkdir_path_options_callback).
- `{String} property = 'contents'` Dot notation path to the data property which should be used as the file's contents.
- `{Object} writeOptions = { encoding: 'utf8' }` [fs.writeFile](https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback).

- `{Function} filter = null` Custom filter function. The item data is given as the parameter. Return `true` if it should be processed, return `false` if this processor should be skipped.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/source-airtable
Description: Read data via the Airtable API.
Author: Ron Dekker
Latest version: 3.3.0

# @hoast/source-airtable

Read data from Airtable bases.

> Not actively supported due to API changes on Airtable's end.

## Install

```ZSH
npm install @hoast/source-airtable
```

## Options

- `{Boolean} cache = true` Whether the Airtable API responses should be cached, useful in development mode to prevent waiting for request responses.
- `{Boolean} token` Authorization token for the Airtable API.
- `{Boolean} baseId` ID of the Airtable base to source from.
- `{String} mode = 'table'` When the mode is set to `table` it will iterate over all tables in the base. When the mode is set to `row` it will iterate over all rows in a table.
- `{String} tableIdOrName = null` The name of the table to read the rows from. Only applicable when mode is set to `'rows'`.
- `{Boolean} tableWithRows = true` Whether to retrieve all the rows of the table. Only applicable when mode is set to `'table'`.
- `{Array} filterPatterns = null` Glob patterns used to filter the file paths relative to the set directory with.
- `{Object} filterOptions` Pattern matching options.
  - `{Boolean} all = false` Whether all patterns have to match, or any match is sufficient.
  - `{Boolean} extended = false` Enable all advanced features from extglob.
  - `{String} flags = ''` RegExp flags (e.g. 'i' ) to pass to the RegExp constructor.
  - `{Boolean} globstar = false` If false the pattern 'path/*' will match any string beginning with 'path/', for example it will match 'path/file.txt' and 'path/to/file.txt'. If true the same 'path/*' will match any string beginning with 'path/' that does not have a '/' to the right of it, for example it will match 'path/file.txt' but not 'path/to/file.txt'. If true the pattern 'path/**' will match any string beginning with 'path/', which is equal to the 'path/*' with globstar set to false.
  - `{Boolean} strict = false` Be forgiving about multiple slashes, such as /// and make everything after the first / optional. Like how bash glob works.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/source-custom
Description: Allows you to provide your own custom source functions.
Author: Ron Dekker
Latest version: 3.1.0

# @hoast/source-custom

Allows you to provide your own custom source functions. Extends base-source where the overridable functions can be provided via the options. Helps you from having to create a package for simple one-off behaviour.

## Install

```ZSH
npm install @hoast/source-custom
```

## Options

This package extends the [@hoast/base-source](https://github.com/hoast/hoast/tree/main/packages/base-source#readme) package. For more information on how to use this package see the options below as well as the base package.

- `{Function} initialize = null` Initialize function.
- `{Function} sequential = null` Sequential function.
- `{Function} concurrent = null` Concurrent function.
- `{Function} final = null` Final function.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/source-javascript
Description: Read and execute scripts from the filesystem.
Author: Ron Dekker
Latest version: 3.2.0

# Source Javascript

Read and execute scripts from the filesystem.

## Install

```ZSH
npm install @hoast/source-javascript
```

## Options

- `{String} directory = 'src'` Directory path, either absolute or relative to the working directory.
- `{String} executeProperty = 'default'` Dot notation of property on imported object to execute.
- `{Array} filterPatterns = null` Glob patterns used to filter the file paths relative to the set directory with.
- `{Object} filterOptions` Pattern matching options.
  - `{Boolean} all = false` Whether all patterns have to match, or any match is sufficient.
  - `{Boolean} extended = false` Enable all advanced features from extglob.
  - `{String} flags = ''` RegExp flags (e.g. 'i' ) to pass to the RegExp constructor.
  - `{Boolean} globstar = false` If false the pattern 'path/*' will match any string beginning with 'path/', for example it will match 'path/file.txt' and 'path/to/file.txt'. If true the same 'path/*' will match any string beginning with 'path/' that does not have a '/' to the right of it, for example it will match 'path/file.txt' but not 'path/to/file.txt'. If true the pattern 'path/**' will match any string beginning with 'path/', which is equal to the 'path/*' with globstar set to false.
  - `{Boolean} strict = false` Be forgiving about multiple slashes, such as /// and make everything after the first / optional. Like how bash glob works.
- `{Array<String>} watchIgnore = [ '**/node_modules/**' ]` Paths of files to ignore marking as dependencies when watching for changes.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hoast/source-readfiles
Description: Read files from the filesystem.
Author: Ron Dekker
Latest version: 3.1.0

# @hoast/source-readfiles

Read files from the filesystem.

## Install

```ZSH
npm install @hoast/source-readfiles
```

## Options

- `{String} directory = 'src'` Directory path, either absolute or relative to the working directory.
- `{Array} filterPatterns = null` Glob patterns used to filter the file paths relative to the set directory with.
- `{Object} filterOptions` Pattern matching options.
  - `{Boolean} all = false` Whether all patterns have to match, or any match is sufficient.
  - `{Boolean} extended = false` Enable all advanced features from extglob.
  - `{String} flags = ''` RegExp flags (e.g. 'i' ) to pass to the RegExp constructor.
  - `{Boolean} globstar = false` If false the pattern 'path/*' will match any string beginning with 'path/', for example it will match 'path/file.txt' and 'path/to/file.txt'. If true the same 'path/*' will match any string beginning with 'path/' that does not have a '/' to the right of it, for example it will match 'path/file.txt' but not 'path/to/file.txt'. If true the pattern 'path/**' will match any string beginning with 'path/', which is equal to the 'path/*' with globstar set to false.
  - `{Boolean} strict = false` Be forgiving about multiple slashes, such as /// and make everything after the first / optional. Like how bash glob works.
- `{Object} readOptions = { encoding: 'utf8' }` [fs.readfile options](https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback). Set to false to disable retrieving the file contents.
- `{Object} statOptions = {}` [fs.stat options](https://nodejs.org/api/fs.html#fs_fs_stat_path_options_callback) Set to false to disable retrieving the file metadata.

- `{Number} logLevel = 2` Log level given to the [logger](https://github.com/hoast/hoast/tree/main/packages/utils#logger.js).
npm package: @hobadams/swift-labels
Description: Convert iso20022Schema keys to labels (en language)
Author: Hob Adams
Latest version: 0.0.2

# Swift Labels

Convert iso20022Schema keys to labels (en language)

## Usage

```ts
import {getSwiftIsoLabel} from '@hobadams/getSwiftIsoLabel'

const label = getSwiftIsoLabel(key)
```
npm package: @hobbes7878/eslint-config
Description: ### Quickstart
Author: Jon McClure
Latest version: 0.0.2

# @hobbes7878/eslint-config

### Quickstart

1.  Install the package:

        $ yarn add -D @hobbes7878/eslint-config eslint

2.  Create a `eslintrc.json` in the root of your project:

        {
          "root": true,
          "extends": "@hobbes7878/eslint-config"
        }
npm package: @hobbescodes/tigris-ui
Description: a reusable design system and composible component library
Author: hobbescodes
Latest version: 0.2.0

# Tigris Design System & UI Kit

Universal design system and component library built by [hobbescodes](https://github.com/hobbescodes), powered by [Panda](https://panda-css.com/) and [Ark](https://ark-ui.com/).

## Quick Start

Follow the [prerequisities](docs/usage.md#prerequisites) to install Panda in your project, then follow the [package install instructions](docs/usage.md#from-published-package).

## Local Development

1. Install dependencies: `bun install`
2. Start development stack: `bun dev`
   - This will launch the following:
     - [Panda CSS](https://panda-css.com/) in watch mode
     - [Storybook](https://storybook.js.org/) in development mode (default port: `6006`, e.g. http://localhost:6006)

If you'd like to develop outside of Storybook, as in a dedicated app, follow the [prerequisities](docs/usage.md#prerequisites), then follow the [local usage instructions](docs/usage.md#local).

## License

The code in this repository is licensed under MIT, &copy; hobbescodes. See <a href="LICENSE.md">LICENSE.md</a> for more information.
npm package: @hobbica98/translate-json
Description: Tool to translate strings in a JSON document.
Author: Luke Channings ||Forked by Hobbica
Latest version: 1.1.1

translate-json
=====


Tool to translate strings in a JSON document.

## Install

    npm i -g @hobbica98/translate-json

## Usage

    Usage:
      translate-json [options] -from <language> -to <language> (- | <input>) [<output>]
      translate-json [options] --from=<language> --to=<language> (- | <input>) [<output>]

    Options:
      -t, --translator              The translation service to use: google (default), yandex, bing.
      -k, --api-key                 The API key to be used with the translation service.
      -p, --preserve-html-entities  Preserve HTML entities in translated text. (False by default.)
      -e, --exclude                 Regular expression to exclude key paths. e.g. '^(notThis|this|not.this.either)$'
      -d, --dry-run                 Do not actually translate any values, prefix strings with 'zz_' to mark them.
      -h, --help                    Show this screen.
      -v, --version                 Show version.
      -ff, --file-format            File formats supported JSON (default), js with export default (only one export per file) for i18n.
      --verbose                     Log more.

    Examples:
      translate-json --from=en --to=ru ./labels.json ./labels-ru.json
      translate-json -d --from=en --to=ru ./labels.json ./labels-ru.json
      translate-json --preserve-html-entities --from=en --to=ru ./labels.json ./labels-ru.json
      cat input.json | translate-json --from en -to ru - > output.json
npm package: @hobbiej/aws-secrets
Description: Downloads .env files from AWS Secret Manager
Author: Jacob Hobbie
Latest version: 1.0.4

# AWS Secrets
Made with ❤️ by Jacob Hobbie

### About
Basically, I wanted to create an easier and safer system for grabbing `.env` credentials for projects my team used. I only later figured out how many of these clients already existed out in the internet after I started, so here's another one, and I hope you like it.
> This tool is **extremely** opinonated. It downloads `key: value` pairs from AWS Secret Manger and saves them to a .env file in the directory where this program is called. It formats the pairs like so:
```
key='value'

```

### Install
```zsh
npm install -g @hobbiej/aws-secrets
```

### Setup
You will need to have the AWS CLI installed on your machine for this program to work. You can find the instructions on how to install the CLI for your specific operating system [here](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

You will also need to set up the CLI so that you are logged into your AWS instance through the CLI. You can find the instructions on how to set up the CLI [here](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html).

### Usage
```zsh
aws-secrets -p [project]
// Example
aws-secrets -p test-project
```
npm package: @hobbyfarm-org/angular-bootstrap-datetimepicker
Description: **Note**: This npm package is a fork of dalelotts/angular-bootstrap-datetimepicker, to provide an Ivy-compiled build of the current master branch. The fork was necessary because the official npm package did not release a new version with ivy support, yet.
Author: https://github.com/hobbyfarm/angular-bootstrap-datetimepicker/graphs/contributors
Latest version: 17.0.0
npm package: @hobbyquaker/mqtt-connection
Description: Polymer Element that connects to a MQTT broker
Latest version: 3.0.8
Deprecated: false

# mqtt-connection

[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/hobbyquaker/mqtt-connection)
![alt text][shield-polymer] 
![alt text][shield-license]

Polymer Element that connects to a MQTT broker. Automatically (re)connects and handles subscriptions with callbacks. 
Uses the Eclipse Paho JavaScript client.


## Documentation

see https://www.webcomponents.org/element/@hobbyquaker/mqtt-connection/elements/mqtt-connection


## License

MIT (c) Sebastian Raff

[shield-license]: https://img.shields.io/badge/license-MIT-blue.svg "License: MIT"
[shield-polymer]: https://img.shields.io/badge/polymer%20version-3.0-blue.svg "Polymer Version: 3.0"
npm package: @hobbyquaker/mqtt-wrapper
Description: Polymer Element that wraps other Elements and links them to MQTT topics
Latest version: 3.0.6

# &lt;mqtt-wrapper&gt;

[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/hobbyquaker/mqtt-wrapper)
![alt text][shield-polymer] 
![alt text][shield-license]

Polymer Element that wraps other Elements and links them to MQTT topics. Needs a 
[mqtt-connection](https://www.webcomponents.org/element/@hobbyquaker/mqtt-connection/elements/mqtt-connection) element.


## Documentation

see https://www.webcomponents.org/element/@hobbyquaker/mqtt-wrapper/elements/mqtt-wrapper

## License

MIT (c) Sebastian Raff

[shield-license]: https://img.shields.io/badge/license-MIT-blue.svg "License: MIT"
[shield-polymer]: https://img.shields.io/badge/polymer%20version-3.0-blue.svg "Polymer Version: 3.0"
npm package: @hobbytraceorg/azure-storage-browser
Description: Bundled (browserify) azure-storage JS client library that can be used in the browser environment.
Author: Han Lin
Latest version: 2.10.2

# azure-storage-browser
Bundled (browserify) azure-storage JS client library that can be directly used in the browser environment, allowing you to import the azure-storage module like any other node module.

Built directly from the azure-storage project source file without any modification. The typing file was changed to make the continuation token parameters nullable to pass strict Typescript null check.

The version number is set to track the version of `azure-storage` from which this package is built.

# Install

```bash
npm install --save @hobbytraceorg/azure-storage-browser
```

# Usage
```javascript
import * as azure from '@hobbytraceorg/azure-storage-browser';
// Now you can use `azure` as documented in the azure-storage project.
```
The original type definitions are included in this project so Typescript is supported out of the box.
npm package: @hobeeliu/ccline-yescc
Description: ccline-yescc - High-performance Claude Code StatusLine tool with API quota monitoring
Author: Hobee Liu
Latest version: 1.0.11

# @hobeeliu/ccline-yescc

ccline-yescc - High-performance Claude Code StatusLine tool

## Installation

```bash
npm install -g @hobeeliu/ccline-yescc
```

## Features

- 🚀 **Fast**: Written in Rust for maximum performance
- 🌍 **Cross-platform**: Works on Windows, macOS, and Linux
- 📦 **Easy installation**: One command via npm
- 🔄 **Auto-update**: Built-in update notifications
- 📊 **API quota monitoring**: Monitor your API quota usage
- 🎨 **Beautiful**: Nerd Font icons and colors

## Usage

After installation, ccline-yescc is automatically configured for Claude Code at `~/.claude/ccline/ccline-yescc`.

You can also use it directly:

```bash
ccline-yescc --help
ccline-yescc --version
```

## For Users in China

Use npm mirror for faster installation:

```bash
npm install -g @hobeeliu/ccline-yescc --registry https://registry.npmmirror.com
```

## More Information

- GitHub: https://github.com/HoBeedzc/ccline-yescc
- Issues: https://github.com/HoBeedzc/ccline-yescc/issues
- License: MIT
npm package: @hobeenkim/agmo-opencode-plugin
Description: OpenCode plugin that provides a tool to generate AGENTS.md (used by /agmo command template)
Latest version: 0.1.2

# AGMO OpenCode Plugin

목표: OpenCode에서 `/agmo`를 실행하면 몇 가지 값을 입력받고, 워크스페이스 루트에 `AGENTS.md`를 생성/덮어쓰기.

이 레포는 두 가지 방식 모두 지원합니다.

1) 로컬 설정으로 바로 쓰기: `.opencode/`
2) npm 패키지로 배포/설치해서 쓰기: `@hobeenkim/agmo-opencode-plugin`

## npm 배포용(이 레포 루트)

- 플러그인 엔트리: `src/index.ts` (빌드 결과: `dist/`)
- 커맨드 템플릿: `templates/commands/agmo.md`

### 설치/사용

1. npm에 배포한 뒤, 프로젝트의 `opencode.json`에 플러그인을 추가합니다.

```json
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["@hobeenkim/agmo-opencode-plugin"]
}
```

2. OpenCode에서 `/agmo` 실행

이 플러그인은 `config` hook에서 `command.agmo`를 자동 등록하므로, 별도의 `.opencode/commands/agmo.md` 추가/복사 없이 바로 사용할 수 있습니다.

### 커맨드 커스터마이즈(선택)

- 프로젝트에서 `command.agmo`를 직접 정의하면(=이미 존재하면), 플러그인은 덮어쓰지 않습니다.
- 로컬 개발/테스트 목적으로만 `.opencode/commands/agmo.md`를 둘 수도 있습니다.

## 로컬 설정(개발/테스트용)

- `.opencode/plugins/agmo.js`: tool `agmo_generate_agents_md` 등록
- `.opencode/commands/agmo.md`: (선택) `/agmo` 커맨드 템플릿
- `.opencode/package.json`: 로컬 플러그인 의존성

## 빌드

```bash
npm install
npm run build
```

## npm 배포

이 레포는 npm 2FA/토큰 정책 때문에, 퍼블리시용 인증이 필요합니다.

1) 2FA(OTP)로 퍼블리시

```bash
npm publish --access public --otp=123456
```

2) Granular token(2FA bypass)로 퍼블리시

```bash
export NPM_TOKEN=YOUR_TOKEN
npm run publish:public
```

배포 확인:

```bash
npm view @hobeenkim/agmo-opencode-plugin version
```
npm package: @hobiri/rollup-preset
Description: Tiny rollup preset for typescript libraries
Author: Filippo Bovo
Latest version: 1.0.1

# Rollup Preset

A tiny preset for rollup to bundle our libraries.

Features out of the box:

- Automatic TypeScript
- Minimal - two lines config
- No lock-in - DEVs still have total control of the rollup config
- Publishing libraries by compiling for `esm`, `cjs`, `jsx`, `umd` and `tsc`
- Automatically clean `dist` folder on build

## Usage

1. Install with your favorite package manager:

```sh
npm install -D @hobiri/rollup-preset rollup
pnpm add -D @hobiri/rollup-preset rollup
yarn add -D @hobiri/rollup-preset rollup
```

2. Import `withConfig` in your `rollup.config.js`. The first and only argument is (optionally) your rollup config:

```js
// rollup.config.js
import withConfig from "@hobiri/rollup-preset";

export default withConfig();
```

3. Configure your package.json

```json
{
  "name": "my-lib",

  "// This is optional but this removes the need to manually configure the source input for rollup": "",
  "source": "src/my-lib.ts",

  "// All the following properties will be hinted during build": "",
  "// You will just have to copy-paste them": "",

  "main": "dist/cjs/my-lib.js",
  "module": "dist/esm/my-lib.js",
  "types": "dist/types/my-lib.d.ts",
  "files": ["dist"],
  "exports": {
    ".": {
      "import": "./dist/esm/my-lib.js",
      "browser": "./dist/esm/my-lib.js",
      "require": "./dist/cjs/my-lib.js",
      "node": "./dist/cjs/my-lib.js"
    }
  }
}
```

## API

### withConfig(options?: Options | Options[]): RollupOptions | RollupOptions[]

The default export. A wrapper function that accepts all of the rollup options and a few extra to configure what to generate.

### Options

The options are the same as Rollup with a few extras that are specific to the wrapper.

```ts
export interface Options extends RollupOptions {
    /**
     * Defines which target you want.
     * Accepted values are: `cjs`, `esm`, and `umd`.
     * @default ['esm']
     */
    targets?: ModuleFormat[];
    /**
     * This can be used to override the default babel options.
     * The targets can be set in the "browserslist" field in your `package.json`.
     * Beware the options are only merged at the top level.
     * If you add babel presets you'll need to add the default one back (as you see fit).
     * @default {
     *   extensions,
     *   babelHelpers: "bundled",
     *   presets: ["@babel/preset-typescript", ['@babel/preset-env', { bugfixes: true, targets: "last 2 years" }]],
     * }
     */
    babelOptions?: RollupBabelInputPluginOptions;
    /**
     * This can be used to override the name defined in your `package.json`.
     */
    mappingName?: string;
}
```
npm package: @hobnail/result
Description: Better error handling in TypeScript.
Author: Victor Ferreira Menge
Latest version: 2.0.2

# @hobnail/result

## What is @hobnail/result?
`@hobnail/result` is a *TypeScript* library for what I perceive to be a better way to handle errors than throwing exceptions. It favours using *JavaScript*'s generator functions to mimick the effect of the `?` operator in *Rust*, computation expressions in *F#* and do notation in *Haskell*.

## What's wrong with exceptions?
I don't want to get too much into it, as this is IMO very subjective. Some people are happy to work with exceptions. [This article by Oscar Ablinger](https://medium.com/codex/the-error-of-exceptions-3aed074c40dc) gets the point across pretty well. 

## Read the docs!
[Read them!](https://hobnail-dev.github.io/overture/#/result/index)

## Example
```ts
import { Result, result, Ok, Err } from "@hobnail/result";

const getId = (query: string): Result<string, string> => {
    const val = new URLSearchParams(query).get("id");
    if (!val) {
        return Err("'id' query param is missing.");
    }

    return Ok(val);
};

const parseNumber = (str: string): Result<number, string> => {
    const num = Number(str);
    return Number.isNaN(num) ? Err(`'${str}' is not a number.`) : Ok(num);
};

type User = { id: number; name: string };
const findUser = (id: number): Result<User, string> => {
    if (id === 5) return Ok({ id, name: "fakeUser" });

    return Err(`User not found for id ${id}.`);
};

const queryUser = (queryString: string) =>
    result(function* () {
        const rawId = yield* getId(queryString);
        const parsedId = yield* parseNumber(rawId);
        const user = yield* findUser(parsedId);

        return user;
    });

queryUser("bla=5").unwrapErr(); // 'id' query param is missing.
queryUser("id=something").unwrapErr(); // 'something' is not a number.
queryUser("id=6").unwrapErr(); // User not found for id 6.
queryUser("id=5").unwrap(); // { id: 5, name: "fakeUser" }
```
npm package: @hobom-grid/core
Description: Headless, framework-agnostic data grid engine — virtualization, interaction, editing
Author: HoBom
Latest version: 0.2.0

# @hobom-grid/core

Headless, framework-agnostic data grid engine.

Handles virtualization, viewport querying, interaction state, editing, and data pipeline — with zero DOM or framework dependencies.

**[Documentation](https://hobom-s.github.io/hobom-grid/)** | [React Adapter](https://www.npmjs.com/package/@hobom-grid/react)

## Install

```bash
npm install @hobom-grid/core
```

## Quick Start

```ts
import { createGridKernel, createMeasuredAxis, px } from "@hobom-grid/core";

const rowAxis = createMeasuredAxis({ kind: "row", count: 10000, estimateSizePx: 32 });
const colAxis = createMeasuredAxis({ kind: "col", count: 20, estimateSizePx: 120 });

const kernel = createGridKernel({
  rowAxis,
  colAxis,
  headerRowCount: 1,
  pinnedColStartCount: 0,
  pinnedColEndCount: 0,
});

const { viewport, viewModel } = kernel.queryViewport({
  scrollLeftPx: px(0),
  scrollTopPx: px(0),
  viewportWidthPx: px(800),
  viewportHeightPx: px(600),
  overscan: { type: "px", value: px(150) },
});

// viewModel.cells — flat array of CellVM with viewport-space coordinates
viewModel.cells.forEach((cell) => {
  console.log(cell.rowIndex, cell.colIndex, cell.x, cell.y, cell.width, cell.height);
});
```

## Key Concepts

- **MeasuredAxis** — Fenwick-tree-backed variable-size virtualization primitive. O(log N) offset/index lookups.
- **GridKernel** — Stateless function: `queryViewport(query) → { viewport, viewModel }`. No side effects.
- **InteractionKernel** — Pure reducer for selection, focus, drag. `dispatch(action) → nextState`.
- **ClientRowModel** — Client-side sort/filter pipeline: `createClientRowModel({ rows, sort, filter }) → RowModel`.
- **EditingReducer** — Cell editing state machine: begin → validate → commit/cancel.

## Architecture

```
MeasuredAxis (row) ─┐
                    ├─ createGridKernel() ─ queryViewport() ─→ ViewportModel + ViewModel
MeasuredAxis (col) ─┘

InteractionKernelReducer ─ dispatch(action) ─→ InteractionKernelState

createClientRowModel({ rows, sort, filter }) ─→ RowModel { rowCount, getRow, getRowId }

editingReducer(state, action) ─→ EditingState
```

## License

MIT
npm package: @hobox/core
Description: Framework-independent, lightweight, progressive, immutable data management
Author: keylenn
Latest version: 1.1.0

# @hobox/core

[![npm](https://img.shields.io/npm/v/@hobox/core.svg)](https://www.npmjs.com/package/@hobox/core) [![node](https://img.shields.io/node/v/@hobox/core.svg)](https://keylenn.github.io/boxjs) [![](https://img.shields.io/badge/document-v1-red.svg)](https://keylenn.github.io/boxjs)


> 框架无关、轻量级、渐进式的不可变数据管理方案

☞ 前往[文档](https://keylenn.github.io/boxjs)了解更多信息~

## 📦 安装
```sh
yarn add @hobox/core
```

```sh
npm i @hobox/core
```
npm package: @hobox/plugin-react-use-box-state
Description: A hook, make react support hobox data stateful
Author: keylenn
Latest version: 1.2.0

# @hobox/plugin-react-use-box-state

[![npm](https://img.shields.io/npm/v/@hobox/plugin-react-use-box-state.svg)](https://www.npmjs.com/package/@hobox/plugin-react-use-box-state) [![node](https://img.shields.io/node/v/@hobox/plugin-react-use-box-state.svg)](https://keylenn.github.io/boxjs) [![](https://img.shields.io/badge/document-v1-red.svg)](https://keylenn.github.io/boxjs)

> 一个hobox插件（React Hook），支持在React中状态化box数据

☞ 快速前往[文档](https://keylenn.github.io/boxjs/#/plugins?id=%f0%9f%9b%a0useboxstate)了解具体使用~


## 📦 安装
```sh
yarn add @hobox/plugin-react-use-box-state
```

```sh
npm i @hobox/plugin-react-use-box-state
```