open-index/open-npm huggingface dataset:
npm package: @jrmc/adonis-attachment
Description: Turn any field on your Lucid model to an attachment data type
Author: Jeremy Chaufourier jeremy@chaufourier.fr
Latest version: 5.1.2

# AdonisJS attachment

This package is currently development and will replace [attachment-advanced](https://github.com/batosai/attachment-advanced) for AdonisJS 6.
> Ready for AdonisJS 7 🎉


## Links

[View documentation](https://adonis-attachment.jrmc.dev/)

[ChangeLog](https://adonis-attachment.jrmc.dev/changelog.html)

Project sample : [adonis-starter-kit](https://github.com/batosai/adonis-starter-kit)

## Roadmap

- [x] attachment file by file system
- [x] attachment file by buffer
- [x] attachment file by path
- [x] attachment file by url
- [x] attachment file by stream
- [x] attachment file by Base64
- [x] attachment files
- [x] save meta data
- [x] variantes
  - [x] images
    - [x] [blurhash](https://blurha.sh/)
  - [x] documents thumbnail
  - [x] videos thumbnail
- [x] command regenerate
- [x] command make:convert
- [x] adonis-drive/flydrive
- [x] jobs queue
- [x] serialize
- [x] attachments route


## Setup

Install and configure the package:

```sh
node ace add @jrmc/adonis-attachment
```

## Sample

Simple upload file

```ts
// app/models/user.ts
import { BaseModel } from '@adonisjs/lucid/orm'
import { attachment } from '@jrmc/adonis-attachment'
import type { Attachment } from '@jrmc/adonis-attachment/types/attachment'

class User extends BaseModel {
  @attachment()
  declare avatar: Attachment
}
```

---

```ts
// app/controllers/users_controller.ts
import { attachmentManager } from '@jrmc/adonis-attachment'

class UsersController {
  public store({ request }: HttpContext) {
    const avatar = request.file('avatar')!
    const user = new User()

    user.avatar = await attachmentManager.createFromFile(avatar)
    await user.save()
  }
}
```

---

```edge
<img src="{{ await user.avatar.getUrl() }}" loading="lazy" alt="" />
```

Read [documentation](https://adonis-attachment.jrmc.dev/) for advanced usage(thumbnail video/pdf/doc, create from buffer/base64...)
npm package: @jrmc/adonis-unpoly
Description: Provider and middleware unpoly for adonisjs
Author: Jeremy Chaufourier jeremy@chaufourier.fr
Latest version: 1.2.0

# Unpoly for AdonisJS 6

Easily add support for the server protocol expected by [Unpoly](http://unpoly.com).

## Installation


```bash
node ace add @jrmc/adonis-unpoly
```

Or 

```bash
npm install @jrmc/adonis-unpoly
node ace configure @jrmc/adonis-unpoly
```

## Usage in controllers

Sample close drawer or redirect

```javascript
  async store({ response, i18n, up }: HttpContext) {
    // ...

    session.flash('notification', {
      type: 'success',
      message: i18n.formatMessage('form.success.user.create'),
    })

    if (up.isDrawer()) {
      up.setDismissLayer()
    } else {
      response.redirect().toRoute('admin.users.index')
    }
  }
```

## Usage in edge view

Sample back button

```edge
@if(up.isDrawer())
  <button up-dismiss>
    @svg('tabler:arrow-left')
  <button>
@else
  <a href="{{ $props.href }}">
    @svg('tabler:arrow-left')
  </a>
@end
```
npm package: @jrmc/edge-components
Description: The most popular, free and open-source Tailwind CSS component library in edge template engine 6 with daisyUI and Alpine.js for adonisJS 6
Author: Jeremy Chaufourier jeremy@chaufourier.fr
Latest version: 3.0.0

# edge components

The most popular, free and open-source Tailwind CSS component library in edge template engine 6 with daisyUI and Alpine.js for adonisJS 6

For adonisJS 5 used version < 2.

[Documentation](https://edge-components.jrmc.dev)

[Documentation for adonisJS 5](https://v1-edge-components.jrmc.dev/docs/installation.html)

[Github](https://github.com/batosai/edge-components)


The components not shown here represent no gain over their HTML representation.

If your component becomes too complex, it may make more sense to use HTML directly as described in the daisyUI documentation.


## Setup

The first step is to install the package from the npm registry.

```sh
node ace add @jrmc/edge-components
```
npm package: @jrmc/etl
Description: Extract transform load for nodejs
Author: Jeremy Chaufourier jeremy@chaufourier.fr
Latest version: 1.0.1

# ETL for Node.js

ETL (Extract, Transform, Load) is a process used to extract information from multiple sources, transform it according to your needs, and then load it into a target system, such as a database.

**Extract (Source):**
This step involves collecting data from various sources, which may include databases, files (JSON, CSV, XLS, etc.), APIs, etc.

**Transform:**
The extracted data is often in different formats or does not meet the requirements of the target system. The transformation adjusts and formats the data to make it consistent and usable.
This may include data type conversion, data cleaning (removing duplicates, correcting errors), data enrichment, and applying business rules.

**Load (Destination):**
After transformation, the data is sent to the destination, such as a database, file, API, etc.
This step can be done incrementally (only adding new data) or by reloading the entire dataset.


## Installation

```sh
npm install @jrmc/etl
```

## Run

```ts
import etl from '@jrmc/etl'

await etl.run({
  source: UserSource,
  transform: UserTransform, // optional
  destination: UserDestination,
})
```

view [Documentation](https://etl.jrmc.dev)
npm package: @jrmc/fractal-edge-adapter
Description: Use edge templates with Fractal.
Author: Jeremy Chaufourier jeremy@chaufourier.fr
Latest version: 1.2.2

# edge Adapter

Use [edge](https://github.com/edge-js/edge) templates with [Fractal](http://github.com/frctl/fractal).

## Usage

Install via NPM:

```bash
npm i @jrmc/fractal-edge-adapter --save
```

Then configure your Fractal instance:

```js
fractal.components.set('ext', '.edge'); // look for files with a .edge file extension
fractal.components.set('edge.components.prefix', 'prefix')); // option: mount components in prefix, sample : @!prefix.button()
fractal.components.set('edge.components.path', path.join(__dirname, 'views')); // option: add specific path for edge components
fractal.components.set('edge.helpers', {
  hello: () => 'world',
}); // option: specify helpers
fractal.components.engine('@jrmc/fractal-edge-adapter'); // register the edge engine adapter for your components
```