open-index/open-npm huggingface dataset:
npm package: @garrettbland/img-alt-tag-check
Description: 11ty plugin to check and validate images have alt tags
Author: Garrett Bland
Latest version: 0.0.4

# img-alt-tag-check

> 11ty plugin to check and validate images have alt tags

## Get Started

Install the package

```bash
npm install -D @garettbland/image-alt-tag-check
```

Then add the plugin to your `.eleventy.js` file

```javascript
// .eleventy.js
module.exports = (eleventyConfig) => {
    eleventyConfig.addPlugin(require('@garettbland/image-alt-tag-check'))
}
```

## Usage

No need to do anything else. The plugin will check every image for a `alt` tag. If its missing, it will throw an error in your console and let you know what file is missing the the `alt` tag.

## How does it work

This plugin uses `jsdom` to analyze the rendered `html` pages and then checks to see if the `alt` tag is present within an `<img/>` element. If it's not, then it complains, helping you avoid missing accessability tags.
npm package: @garrettbland/lazy-load-images
Description: 11ty plugin that adds lazy loading attribute to images
Author: Garrett Bland
Latest version: 0.0.6

# lazy-load-images

> 11ty plugin that adds lazy loading attribute to images

## Get Started

Install the package

```bash
npm install -D @garettbland/lazy-load-images
```

Then add the plugin to your `.eleventy.js` file

```javascript
// .eleventy.js
module.exports = (eleventyConfig) => {
    eleventyConfig.addPlugin(require('@garettbland/lazy-load-images'))
}
```

## Usage

No need to do anything else. The plugin will check every image and add the `loading="lazy"` attribute automatically.

## How does it work

This plugin uses `jsdom` to analyze the rendered `html` pages and then adds the `loading="lazy"` atrribute to every `<img/>` element.
npm package: @garrettcharliehill/layout
Description: Resolve overall document component's layout
Author: Charlie Hill
Latest version: 3.1.5

<p align="center">
  <img src="https://user-images.githubusercontent.com/5600341/27505816-c8bc37aa-587f-11e7-9a86-08a2d081a8b9.png" height="280px">
</p>

# @garrettcharliehill/layout
npm package: @garrettcharliehill/stylesheet
Description: A styles engine for Node and the browser
Author: Diego Muracciole
Latest version: 3.2.0

<p align="center">
  <img src="https://user-images.githubusercontent.com/5600341/27505816-c8bc37aa-587f-11e7-9a86-08a2d081a8b9.png" height="280px">
</p>

# @react-pdf/stylesheet

> React-pdf styles engine

## How to install

```sh
yarn add @react-pdf/stylesheet
```

## How it works

```js
const stylesheet = require('@react-pdf/stylesheet');

const container = {
  width: 400,
  height: 600,
  orientation: 'portrait',
};

const style = {
  margin: 20,
  width: '50vw',
  height: '20vh',
  borderRadius: 5,
  fontWeight: 'semibold',
  borderBottom: '2 solid yellow',
  '@media max-width: 500': {
    backgroundColor: 'rgb(255, 0, 0)',
  },
};

const computed = stylesheet(container, style);

// Computed
// {
//   width: 200,
//   height: 120,
//   marginTop: 20,
//   marginLeft: 20,
//   marginRight: 20,
//   marginBottom: 20,
//   marginBottom: 20,
//   borderTopLeftRadius: 5,
//   borderTopRightRadius: 5,
//   borderBottomLeftRadius: 5,
//   borderBottomRightRadius: 5,
//   fontWeight: 600,
//   borderBottomWidth: 2,
//   borderBottomStyle: 'solid',
//   borderBottomColor: 'yellow',
//   backgroundColor: '#FF0000'
// }
```

This library exports a `stylesheet` function that takes two arguments:

- _container_: Container where the styles are being computed into. It specifies the `width` and `height` in points (needed for media queries and unit conversions), and optionally the container `orientation` (needed for certain media queries).
- _style_: Style to be computed. JS object with raw styles that you would like to get in a normalized format.

## License

MIT © [Diego Muracciole](http://github.com/diegomura)
npm package: @garrettcharliehill/yoga
Description: Prebuilt yoga-layout package
Author: Charlie Hill
Latest version: 2.0.5

<p align="center">
  <img src="https://user-images.githubusercontent.com/5600341/27505816-c8bc37aa-587f-11e7-9a86-08a2d081a8b9.png" height="280px">
</p>

# @garrettcharliehill/yoga

> Prebuilt [yoga-layout](https://github.com/facebook/yoga) package with memory heap increase

## Acknowledges

This project is forked from the great [yoga-layout-prebuilt](https://github.com/vadimdemedes/yoga-layout-prebuilt) from @vadimdemedes.

Also thanks to @Skywalker13 for providing the post-processing script for increasing build original memory heap.

## Install

```
$ npm install @garrettcharliehill/yoga
```

## Usage

```js
import Yoga from '@garrettcharliehill/yoga';
// Same as if imported from yoga-layout
```
npm package: @garrettheking/homebridge-sunset-lamp-ble
Description: Homebridge accessory for BLE Sunset Lamp (iStrip+ app)
Author: Garrett King
Latest version: 1.0.0

I have created this fork to attempt to update it for newer homebridge version as well as understanding how the source code works. 
# homebridge-sunset-lamp-ble

Homebridge plugin for [this specific sunset lamp](https://ja.aliexpress.com/item/1005002359444838.html), though in theory it should work with any ["iStrip+"](https://apps.apple.com/us/app/istrip/id1524125189) compatible lamp. This plugin has an encryption key that is hardcoded in the device so it likely will not work with other devices.

# Installation and Configuration

Install with npm or the homebridge UI:

```
npm install homebridge-sunset-lamp-ble
```

Add an accessory and configure the `name` (anything you like!) and `ble_address` (of the lamp, must be in lowercase) like below:
```
{
    "accessory": "SunsetLamp",
    "name": "Sunset Lamp",
    "ble_address": "xx:xx:xx:xx:xx:xx"
},
```

If you need to find the address of your lamp, you can add an accessory with no `ble_address` and check your homebridge logs. It seems these particular lamps always advertise with a name in the format of `SSL-DDEEFF` where `DDEEFF` is the last 6 letters of the address.

For example, with the logs:

```
[11/6/2021, 7:29:29 AM] [Sunset Lamp] Discovered:  SSL-DDEEFF  (aa:bb:cc:dd:ee:ff)
```

You can set the `ble_address` to:

```
...
    "ble_address": "aa:bb:cc:dd:ee:ff"
...
```

# Limitations

* The lamps can only handle one connection at a time and do not automatically disconnect so you may have to turn the lamp on/off to get it to initially connect in Homebridge. I recommend installing and testing [noble](https://www.npmjs.com/package/@abandonware/noble) separately too before trying this plugin.
* The lamp does not provide any information of it's current state (or at least the "iStrip+" app I reverse engineered does not implement this) - it will always default to being off in homebridge when starting even if the lamp is already on.

# Credit

This is essentially a fork of [homebridge-led-strip-ble](https://github.com/stoner221/homebridge-led-strip-ble) modified to work with the encryption in place on this lamp, so huge credit to [stoner221](https://github.com/stoner221/) for the homebridge integration.
npm package: @garrettmorse/figjs
Description: A FIGlet driver for NodeJS.
Author: https://github.com/garrettmorse
Latest version: 0.5.0

# figjs

A FIGlet driver for JS.

### Usage

```js
import { FIGlet } from "@garrettmorse/figjs";
import { slant } from "@garrettmorse/figjs/fonts";

const figjs = new FIGlet(slant);

const coolText = figjs.write("Hello, World!");

console.log(coolText);
```

### Supported Fonts
* banner
* big
* block
* bubble
* digital
* lean
* mini
* mnemonic
* slant
* small
* standard
* term


### Warning: Bugs

There are several FIGlet fonts that I've excluded from this package because I can't get them to work with my implementation (yet?).

I'm pretty confident about the ones that are included. That being said, "thar be dragons..."
npm package: @garridinsi/react-carbonbadge
Description: React component for https://www.websitecarbon.com/badge/ forked from https://github.com/ivoba/react-carbonbadge
Author: Eneko Garrido, Ivo Bathke
Latest version: 1.3.0

# React Websitecarbon Badge component

React component for https://www.websitecarbon.com/badge/ forked from https://github.com/ivoba/react-carbonbadge

## Installation

Install via npm or yarn

```
npm install @garridinsi/react-carbonbadge --save
yarn add @garridinsi/react-carbonbadge
```

## Usage

    import CarbonBadge from "@garridinsi/react-carbonbadge"
    ...
    <CarbonBadge darkMode={true} />
npm package: @garrigarrison/datetime
Description: converter DateTime into timestamp and revert
Author: Garrison
Latest version: 1.0.9

# DateTime for convert timestamp and reverse

Converting date and time to timestamp and reverse converting

[![npm](https://img.shields.io/npm/v/%40garrigarrison%2Fdatetime?color=blue)](https://www.npmjs.com/package/@garrigarrison/datetime)
[![npm](https://img.shields.io/npm/dm/%40garrigarrison%2Fdatetime?color=green)](https://www.npmjs.com/package/@garrigarrison/datetime)
[![Coverage Status](https://coveralls.io/repos/github/GarriGarrison/datetime/badge.svg?branch=main&rand=123)](https://coveralls.io/github/GarriGarrison/datetime?branch=mainr)
![Build Status](https://github.com/GarriGarrison/datetime/actions/workflows/ci.yml/badge.svg)
[![Minified Size](https://img.shields.io/bundlephobia/minzip/%40garrigarrison%2Fdatetime)](https://bundlephobia.com/result?p=@garrigarrison/datetime)

<!-- [![License: MIT](https://img.shields.io/github/license/GarriGarrison/datetime)](https://opensource.org/licenses/MIT) -->

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## function toTimestamp

input date format: YYYY-MM-DD, DD.MM.YYYY, hh:mm, YYYY-MM-DDThh:mm, YYYY-MM-DD hh:mm, DD.MM.YYYYThh:mm, DD.MM.YYYY hh:mm
output result timestamp with timezone

## toDateString

input timestamp
output date format DD.MM.YYYY or null

## toISODateString

input timestamp
output date format YYYY-MM-DD or null

## toDateLongString

input timestamp
output date format DD month YYYY or null

## toISOString

input timestamp, withSeconds = true
withSeconds = true (default): output date format YYYY-MM-DDThh:mm:ss or null
withSeconds = false: output date format YYYY-MM-DDThh:mm or null

## toDateTimeString

input timestamp, withSeconds = true
withSeconds = true (default): output date format DD.MM.YYYY hh:mm:ss or null
withSeconds = false: output date format DD.MM.YYYY hh:mm or null

## toTimeString

input timestamp, withSeconds = true
withSeconds = true (default): output date format hh:mm:ss or null
withSeconds = false: output date format hh:mm or null
npm package: @garrigarrison/vue-ui-kit
Description: UI kit for Vue 3
Author: Garrison
Latest version: 0.5.0

# Vue UI kit

This ui-kit is designed for the framework VUE3. Contains the main components.

[![npm](https://img.shields.io/npm/v/%40garrigarrison%2Fdatetime?color=blue)](https://www.npmjs.com/package/@garrigarrison/datetime)
[![npm](https://img.shields.io/npm/dm/%40garrigarrison%2Fdatetime?color=green)](https://www.npmjs.com/package/@garrigarrison/datetime)
[![Coverage Status](https://coveralls.io/repos/github/GarriGarrison/datetime/badge.svg?branch=main&rand=123)](https://coveralls.io/github/GarriGarrison/datetime?branch=mainr)
![Build Status](https://github.com/GarriGarrison/datetime/actions/workflows/ci.yml/badge.svg)
[![Minified Size](https://img.shields.io/bundlephobia/minzip/%40garrigarrison%2Fdatetime)](https://bundlephobia.com/result?p=@garrigarrison/datetime)

<!-- [![License: MIT](https://img.shields.io/github/license/GarriGarrison/datetime)](https://opensource.org/licenses/MIT) -->

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## 📦 Installation

```sh
npm install @garrigarrison/vue-ui-kit

```

## 🌈 🎨 Storybook

Open [Storybook](https://garrigarrison.github.io/vue-ui-kit/?path=/docs/about-introduction--docs) to view components

## ⚙️ Recommended IDE Setup

- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).

## 🛡 License

This project is licensed under the terms of the
[MIT license](/LICENSE).
npm package: @garriguv/guzu
Description: Database migration manager for PosgreSQL
Author: Vincent Garrigues
Latest version: 0.0.10

# guzu

guzu is a database migration tool, inspired by [goose](https://github.com/pressly/goose) and [postgres-migrations](https://github.com/ThomWright/postgres-migrations). Guzu means goose in Japanese.

Project goals:

- No configuration files
- SQL only migrations
- Timestamped migrations
- Immutable migrations once applied

# Install

```bash
npm install @garriguv/guzu --save-dev
```

# Usage

```typescript
import { Guzu } from "@garriguv/guzu";

async function main() {
  const guzu = new Guzu({
    config: {
      host: "localhost",
      port: 5432,
      database: "application_database",
      user: "postgres",
      password: "password",
    },
    dir: "./migrations",
  });

  await guzu.migrate();
}
```

## Options

### config

The database configuration. This is passed directly to [node-postgres](https://node-postgres.com/apis/client#new-client).

### dir

The path to the directory containing all migration files.

### tableName

The name of the table used to track the migrations. Defaults to `guzu_migrations`.

### logger

A logger object. Defaults to `console.log`.

# Migrations

sqlmigrations only supports migrations written in SQL.

A sample SQL migration looks like this:

```sql
CREATE TABLE users (
	id SERIAL PRIMARY KEY,
	name text NOT NULL
);
```

By default, all migrations are run within a transaction. You can disable this by adding a `-- +guzu NO TRANSACTION` annotation anywhere in the migration file.

To create a new migration file, you can use the `createMigration` function:

```typescript
import { createMigration } from "@garriguv/guzu";

// This will create a new migration file in the ./migrations directory
// with the name XXXX_my_new_migration.sql, where XXXX is the next
// available migration number.
createMigration("My new migration", "./migrations");
```

The `createMigration` function will automatically format the migration file name using the next available migration number.

# Development

## Tests

We run PostgreSQL in a Docker container for the tests, which means that you need to have Docker installed on your machine.

Run the tests:

```bash
npm t
```

# Publishing a new release

1. Bump the package version: `npm version <major|minor|patch>`
1. Push the new version: `git push --follow-tags`
1. Create a new release: `gh release create`
npm package: @garrix82/babel-plugin-reactgenie
Description: ReactGenie Babel plugin with metadata emission and stable Genie class-name injection
Author: Omkar Mirgal
Latest version: 0.3.9

# @garrix82/babel-plugin-reactgenie

Babel plugin for ReactGenie that:
- emits decorator metadata used by ReactGenie and related TypeScript reflection flows
- preserves a stable `__genieClassName` on `@GenieClass` declarations so production minification does not break Genie class identity

## Fork Notice

This package is a fork of `babel-plugin-reactgenie`, which itself was derived from `babel-plugin-transform-typescript-metadata`.

- Original upstream: [StanfordHCI/babel-plugin-reactgenie](https://github.com/StanfordHCI/babel-plugin-reactgenie)
- Fork maintained by: [Omkar Mirgal](https://github.com/OmkarMirgal)

The fork keeps the original MIT license. See [LICENSE](./LICENSE) and [NOTICE](./NOTICE).

## What Changed In This Fork

In addition to the existing metadata emission, this fork injects:

```ts
static __genieClassName = "OriginalClassName";
```

for classes decorated with `@GenieClass(...)`.

That injection happens at build time, before minification. ReactGenie then uses `__genieClassName` instead of relying on minified runtime names like `e` or `t`.

## Installation

With npm:

```sh
npm install --save-dev @garrix82/babel-plugin-reactgenie
```

With pnpm:

```sh
pnpm add --save-dev @garrix82/babel-plugin-reactgenie
```

With Yarn:

```sh
yarn add --dev @garrix82/babel-plugin-reactgenie
```

## Usage

Place the plugin before the decorators/class-properties transforms.

```js
{
  "plugins": [
    "@garrix82/babel-plugin-reactgenie",
    ["@babel/plugin-proposal-decorators", { "legacy": true }],
    ["@babel/plugin-transform-class-properties", { "loose": true }]
  ],
  "presets": [
    "@babel/preset-typescript"
  ]
}
```

## Stable Genie Class Names

Input:

```ts
@GenieClass("Probe-specific date and time value.")
class ProbeDateTime extends HelperClass {}
```

Output includes:

```ts
ProbeDateTime.__genieClassName = "ProbeDateTime";
```

This is intended for ReactGenie environments where DSL descriptors, prompt examples, serialization, and `Current()` resolution must survive production minification.

## License

MIT.
npm package: @garron/lint
Description: <a name="readme-top"></a><div align="center">
Author: garron
Latest version: 1.0.1

<a name="readme-top"></a><div align="center">



<h1>garron Lint</h1>

ESlint 配置、Prettier 配置、Remark 配置

[Changelog](./CHANGELOG.md)



</div>

![](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)

<details>
<summary><kbd>Table of contents</kbd></summary>

#### TOC

- [📦 安装](#-installation)
- [使用方法](#-usage)
  - [.npmrc](#npmrc)
  - [ESlint](#eslint)
  - [Stylelint](#stylelint)
  - [Commitlint](#commitlint)
  - [更新日志](#changelog)
  - [Prettier](#prettier)
  - [Semantic Release](#semantic-release)
- [⌨️ 本地开发](#️-local-development)
- [🤝 贡献](#-contributing)

####

</details>

## 📦 安装

要安装  garron Lint, 请运行以下命令:


```bash
$ bun add @garron/lint -D
```


<div align="right">

[back-to-top](#readme-top)

</div>

## 用法

### .npmrc

```text
public-hoist-pattern[]=*@umijs/lint*
public-hoist-pattern[]=*changelog*
public-hoist-pattern[]=*commitlint*
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=*postcss*
public-hoist-pattern[]=*prettier*
public-hoist-pattern[]=*remark*
public-hoist-pattern[]=*semantic-release*
public-hoist-pattern[]=*stylelint*
```

### ESlint

配置可以在以下位置找到 [`.eslintrc.js`](/src/eslint/index.ts)

```js
module.exports = require('@garron/lint').eslint;
```

### Stylelint

配置可以在以下位置找到 [`.stylelintrc.js`](/src/stylelint/index.ts)

```js
module.exports = require('@garron/lint').stylelint;
```

### Commitlint

配置可以在以下位置找到 [`.commitlintrc.js`](/src/commitlint/index.ts)

```js
module.exports = require('@garron/lint').commitlint;
```

### Changelog

配置可以在以下位置找到 [`.changelogrc.js`](/src/changelog/index.ts)

```js
module.exports = require('@garron/lint').changelog;
```

### Remark

配置可以在以下位置找到 [`.remarkrc.js`](/src/remarklint/index.ts)

```js
module.exports = require('@garron/lint').remarklint;
```

### Prettier

配置可以在以下位置找到 [`.prettierrc.js`](/src/prettier/index.ts)

```js
module.exports = require('@garron/lint').prettier;
```

### Semantic Release

配置可以在以下位置找到 [`.releaserc.js`](/src/semantic-release/index.ts)

```js
module.exports = require('@garron/lint').semanticRelease;
```

<div align="right">

[back-to-top](#readme-top)

</div>

## ⌨️ 本地开发


```bash
$ git clone https://github.com/geallenboy/garron-lint.git
$ cd garron/lint
$ bun install
$ bun start
```

<div align="right">

[back-to-top](#readme-top)

</div>



#### 📝 许可证

Copyright © 2024 [garron]. <br />
This project is [MIT](./LICENSE) licensed.
npm package: @garron/tmc
Description: 项目模版脚手架
Author: garron
Latest version: 1.0.2

前端模版脚手架

# 安装

```bash
npm i @garron/tmc -g
```



# 功能

- vite
  - ✔︎ vite2-react17
  - ✔︎ vite2-vue3-jsx
- vite-template
  - ✔︎ template-react17-recoil-antd
  - ✔︎ template-vue3-jsx-pinia-antd
- webpack
  - webpack-react17
  - webpack-vue3

## Git 提交规范

- feat 增加新功能
- fix 修复问题/BUG
- style 代码风格相关无影响运行结果的
- perf 优化/性能提升
- refactor 重构
- revert 撤销修改
- test 测试相关
- docs 文档/注释
- chore 依赖更新/脚手架配置修改等
- workflow 工作流改进
- ci 持续集成
- types 类型定义文件更改
- wip 开发中
npm package: @garsaud/tabletocsv
Description: Simply convert a table into a CSV representation
Author: Cyril Garsaud
Latest version: 1.1.0

# tableToCsv
Simply convert a table into a CSV representation

## Example

```html
<table>
    <thead>
        <tr>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Age</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Eustache</td>
            <td>Beaugenoux</td>
            <td>65</td>
        </tr>
        <tr>
            <td>Aristide</td>
            <td>Rouquitourne</td>
            <td>46</td>
        </tr>
        <tr>
            <td>Gersande</td>
            <td>De Ronflefort</td>
            <td>78</td>
        </tr>
    </tbody>
</table>
```

```js
// ES module
import TableToCsv from 'tableToCsv.js';

// Common JS
const TableToCsv = require('tableToCsv.js');

const csv = new TableToCsv(document.querySelector('table'));
csv.download();
```

A csv file is downloaded, containing:

```csv
"First Name","Last Name","Age"
"Eustache","Beaugenoux","65"
"Aristide","Rouquitourne","46"
"Gersande","De Ronflefort","78"
```

A few options are available:

```js
const csv = new TableToCsv(node, {
    filename: 'table.csv',
    cellSeparator: ',',
    rowSeparator: '\n',

    // in case your cells contains UTF-8 special characters, for Excel to render
    // them correctly:
    insertBOM: true,
});
```

If the table changes after initialization, you can refresh programmatically:

```js
const csv = new TableToCsv(…);

// table changes...

csv.refresh();
csv.download('filename.csv');
```