open-index/open-npm huggingface dataset:
npm package: @fukict/babel-preset
Description: Zero-config Babel preset for Fukict with automatic component wrapping
Author: Fukict Team
Latest version: 0.1.14

# @fukict/babel-preset

Zero-config Babel preset for Fukict with automatic component wrapping and JSX compilation.

## Features

- **Zero Configuration**: Just add the preset, no extra setup needed
- **Auto Component Wrapping**: Automatically wraps function components with `defineFukict`
- **Built-in JSX Transform**: Compiles JSX to hyperscript calls
- **Development Mode**: Injects `displayName` for better debugging

## Installation

```bash
pnpm add -D @fukict/babel-preset @babel/core
pnpm add @fukict/basic
```

## Usage

### babel.config.js

```javascript
module.exports = {
  presets: ['@fukict/babel-preset'],
};
```

### .babelrc.json

```json
{
  "presets": ["@fukict/babel-preset"]
}
```

## What it does

### Auto Component Wrapping

Automatically wraps uppercase-named arrow functions that return JSX:

```tsx
// Input
const Greeting = ({ name }) => <div>Hello {name}</div>;

// Output
import { defineFukict } from '@fukict/basic';
const Greeting = defineFukict(({ name }) => <div>Hello {name}</div>);
```

### JSX Transform

Transforms JSX to hyperscript calls with proper children arrays:

```tsx
// Input
<div class="container" on:click={handleClick}>
  Hello {name}
</div>;

// Output
hyperscript('div', { class: 'container', 'on:click': handleClick }, [
  'Hello ',
  name,
]);
```

**Component Type Detection:**

The preset generates simple `hyperscript()` calls. Component type detection (`__type__` field) is handled automatically at runtime by the `hyperscript` function:

- **Class components** (extends `Fukict`) → detected as `'class'`
- **Function components** → detected as `'function'`
- **DOM elements** (string tags) → detected as `'element'`
- **Fragment** → detected as `'fragment'`

This runtime detection ensures accurate type identification without compile-time analysis.

### Development Mode

In development mode (`NODE_ENV=development`), automatically injects `displayName`:

```tsx
// Input
const Greeting = ({ name }) => <div>Hello {name}</div>;

// Output (development)
const Greeting = defineFukict(({ name }) => <div>Hello {name}</div>);
Greeting.displayName = 'Greeting';
```

## Opt-out

Use `@nofukict` comment to prevent auto-wrapping:

```tsx
/** @nofukict */
const helper = () => <div>Not a component</div>;
```

## Documentation

See [docs](./docs) for detailed documentation:

- [DESIGN.md](./docs/DESIGN.md) - Design decisions and architecture
- [API.md](./docs/API.md) - API reference
- [EXAMPLES.md](./docs/EXAMPLES.md) - Usage examples

## License

MIT
npm package: @fuknando/crc8-maxim
Description: A JavaScript CRC-8 MAXIM node module.
Author: Fernando Lopes
Latest version: 1.0.2


A **cyclic redundancy check** (CRC) node module.  
It supports crc8 MAXIM algorithm.

## Acknowledgement

This a library was cloned from [easy-crc](https://github.com/Fabio286/easy-crc) library. It was modified for a specific use of one of the CRC-8 Algorithm.

## Installation

```bash
npm install @fuknando/crc8-maxim
```
```
yarn add @fuknando/crc8-maxim
```


## Usage

```js
import { crc8 } from '@fuknando/crc8-maxim';

// CRC8
let data = 'AA5503005012';
let checksum = crc8(data);

console.log(checksum);// "0A"
```

## Available algorithms

### CRC8

- MAXIM
npm package: @fuknando/easy-crc
Description: A JavaScript CRC-8 MAXIM node module.
Author: Fernando Lopes
Latest version: 0.0.1

# EASY-CRC

![npm](https://img.shields.io/npm/v/easy-crc) ![npm](https://img.shields.io/npm/dt/easy-crc) [![Build Status](https://travis-ci.com/Fabio286/easy-crc.svg?branch=master)](https://travis-ci.com/Fabio286/easy-crc) ![GitHub](https://img.shields.io/github/license/fabio286/easy-crc)

A pure JavaScript and zero dependencies **cyclic redundancy check** (CRC) node module.  
It supports crc8, crc16 and crc32.

## Installation

```bash
npm install --save easy-crc
```

## Usage

There are three functions available respectively named `crc8()`, `crc16()` and `crc32()`. These functions take two arguments.  
The first argument is a string with the name of the desired algorithm (below the list), and the second is the data on which you want to calculate crc. Data can be a string or a buffer.

```js
const { crc8, crc16, crc32 } = require('easy-crc');

// CRC8
let data = '12345';
let checksum = crc8('CRC-8', data);

console.log(checksum.toString(16));// "cb"

// CRC16
data = Buffer.from([0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39]);
checksum = crc16('CCITT-FALSE', data);

console.log(checksum.toString(16));// "7d61"

// CRC32
data = 'Hello!';
checksum = crc32('CRC-32', data);

console.log(checksum.toString(16));// "9d2acc56"
```

## Available algorithms

The follow algorithm names **can be passed as first argument** of respective `crc8()`, `crc16()` and `crc32()` methods.

### CRC8

- CRC-8
- CDMA2000
- DARC
- DVB-S2
- EBU
- I-CODE
- ITU
- MAXIM
- ROHC
- WCDMA

### CRC16

- BUYPASS
- CCITT-FALSE
- ~~AUG-CCITT~~ not working at moment.
- ARC
- CDMA2000
- DDS-110
- DECT-R
- DECT-X
- DNP
- EN-13757
- GENIBUS
- MAXIM
- KERMIT
- MCRF4XX
- MODBUS
- RIELLO
- T10-DIF
- TELEDISK
- TMS37157
- USB
- X-25
- XMODEM
- CRC-A

### CRC32

- CRC-32
- CRC-32C
- CRC-32D
- CRC-32Q
- BZIP2
- JAMCRC
- MPEG-2
- POSIX
- XFER

## Running tests

```bash
npm test
```