open-index/open-npm huggingface dataset:
npm package: @neilunderwood/e25sbl
Description: CLI to install prebuilt website sections for Next.js projects
Author: Neil Underwood
Latest version: 0.3.1

# @neilunderwood/e25sbl

CLI to install prebuilt website sections for Next.js projects.

## Installation

No installation required! Use with `npx`:

```bash
npx @neilunderwood/e25sbl init
```

## How It Works

This CLI fetches components from a remote registry hosted on GitHub:
- **Registry Repository**: [github.com/neilunderwood-e25/e25sbl-registry](https://github.com/neilunderwood-e25/e25sbl-registry)
- **Browse Sections**: [e25sbl-registry.vercel.app](https://e25sbl-registry.vercel.app) (coming soon)

Components are always up-to-date - no need to reinstall the CLI to get new sections!

## Usage

### List available sections

See all sections in the registry:

```bash
npx @neilunderwood/e25sbl list
```

### Initialize your project

Create a `components.json` configuration file and install base styles:

```bash
npx @neilunderwood/e25sbl init
```

This will:
- Create `components.json` with default configuration
- Install all style files from the registry to `app/styles/`
- Set up component path: `components/ui`
- Configure import alias: `@/components`
- Link to registry: GitHub repository

### Install a section

Install a section using either syntax:

```bash
npx @neilunderwood/e25sbl <section-id>
```

or

```bash
npx @neilunderwood/e25sbl add <section-id>
```

The section will be:
1. Fetched from GitHub
2. Transformed based on your config
3. Installed to the configured path
4. Assets (if any) copied to `public/assets/`

### Update styles

Re-download the latest styles from the registry:

```bash
npx @neilunderwood/e25sbl update-styles
```

This will:
- Fetch all style files from the registry
- Update existing files with the latest versions
- Add any new style files that were added to the registry
- Show which files were updated vs newly added

## Available Sections

Run `npx @neilunderwood/e25sbl list` to see all available sections from the registry.

## Configuration

The `components.json` file controls where sections are installed and how imports are transformed:

```json
{
  "componentPath": "components/ui",
  "aliases": {
    "components": "@/components"
  },
  "registry": {
    "url": "https://raw.githubusercontent.com/neilunderwood-e25/e25sbl-registry",
    "branch": "main"
  }
}
```

You can manually edit this file to customize:
- `componentPath` - Where to install sections (relative to project root)
- `aliases.components` - Import alias for component paths
- `registry.url` - Custom registry URL (for forks or private registries)
- `registry.branch` - Branch to fetch from (main, dev, etc.)

## Caching

The CLI caches fetched components in `.cache/e25sbl/` to work offline. The cache is automatically used if GitHub is unreachable.

## Development

```bash
# Install dependencies
npm install

# Build the CLI
npm run build

# Test locally
node dist/cli.js init
node dist/cli.js add <section-id>
```

## License

MIT
npm package: @neimadvn/aicli
Description: AI-powered CLI tool that converts natural language to shell commands
Latest version: 1.1.1

# AICLI

A command-line tool that converts natural language instructions into shell commands using OpenAI's GPT-4o-mini.

## Installation

```bash
npm install -g @neimadvn/aicli
```

After installation, you'll need to set up your OpenAI API key:

```bash
aicli config --set-api-key YOUR_API_KEY
```

### Troubleshooting

If you encounter permissions issues, particularly on Unix-based systems (macOS, Linux), you may need to:

1. Make sure the CLI is executable:
   ```bash
   chmod +x $(which aicli)
   ```

2. If you're using npm with root/sudo privileges:
   ```bash
   sudo chmod +x $(npm root -g)/aicli/dist/index.js
   ```

## Usage

### Convert natural language to shell commands

```bash
aicli "copy file dist into folder ~"
```

The tool will generate a shell command (e.g., `cp ./dist ~`), show it to you, and ask for confirmation before executing.

### Multi-command processing

For complex requests, the tool can generate multiple commands:

```bash
aicli "setup a new nodejs project, initialize git, create a README with hello world"
```

Each command will be presented individually for confirmation before execution. You can:
- Approve each command individually
- Skip commands you don't want to execute
- Use chained commands (with &&) when they should execute as a unit

### Interactive mode

You can run the tool without arguments to be prompted for your instruction:

```bash
aicli
```

### Configuration

View current configuration:

```bash
aicli config --view
```

Set OpenAI API key:

```bash
aicli config --set-api-key YOUR_API_KEY
```

Change the model (default is gpt-4o-mini):

```bash
aicli config --set-model gpt-4o
```

## Features

- Convert natural language to shell commands
- Support for multi-command sequences with individual confirmation
- Provides OS context to the AI model
- Confirmation before command execution
- Configurable OpenAI API key and model
- Simple and direct interface

## Development

### Building from source

```bash
git clone https://github.com/neimadvn/aicli.git
cd aicli
npm install
npm run build
```

### Run in development mode

```bash
npm run dev
```

## License

MIT
npm package: @neiro21/solid-client-authn-webext
Description: Solid client auth library for web browser extensions
Latest version: 0.2.0

# Solid authentication for web browser extensions

`solid-client-authn-webext` is a fork of Inrupt's [Solid client authentication libraries](https://github.com/inrupt/solid-client-authn-js) adapted for web browser extensions. This library implementation is mostly based on `@inrupt/solid-client-authn-browser`, and is inspired by [WebClip Chrome extension](https://github.com/codecentric/web-clip).

`solid-client-authn-webext` uses browser's [Identity API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/identity) to perform the first part of OAuth2 flow and obtain an authorization code - the rest is the same as in `@inrupt/solid-client-authn-browser`. See [Browser compatibility table](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/identity#browser_compatibility) for the list of supported browsers.

## Usage

`solid-client-authn-webext`'s interface is almost identical to the ones of Inrupt's `solid-client-authn` libraries: the main difference is that redirects during the login process are handled internally by the library, so `Session.handleIncomingRedirect()` method is absent. Besides that, `IDP` logout isn't supported at the moment.

See [Inrupt JS SDK documentation](https://docs.inrupt.com/sdk/javascript-sdk) for information on using client libraries and building Solid applications.

### Installation

```sh
npm install @neiro21/solid-client-authn-webext
```

### Code example

```typescript
const solidSession = new Session();
solidSession
  .login({
    oidcIssuer: "https://solidcommunity.net",
    clientName: "TestWebExt",
  })
  .then(() => {
    if (solidSession.info.isLoggedIn) {
      // access a Solid pod e.g.
      const myDataset = await getSolidDataset(
        "https://somepod.solidcommunity.net/somepath",
        { fetch: solidSession.fetch },
      );
    } else {
      // shouldn't ever happen
      log.error("Login did not succeed for an unknown reason");
    }
  })
  .catch((err) => {
    console.error(err);
  });
```

### Required polyfills

The library requires `events` Node.js module, so if you do not use Webpack or use version 5+, you'll need to install `events` npm package.  
[webextension-polyfill](https://www.npmjs.com/package/webextension-polyfill) is also required on Chrome / Opera / Edge.

### node-solid-server compatibility

[node-solid-server 5.3.0](https://github.com/solid/node-solid-server/releases/tag/v5.3.0) or higher.

## See also

- [Inrupt documentation home](https://docs.inrupt.com/)
- [Solid community forum](https://forum.solidproject.org/)
npm package: @neisven/double.js
Description: Library for creating Discord bots using scripted Aoi syntax
Author: neisven
Latest version: 0.0.2-extends

```sh
npm i @neisven/double.js
```
- How to start?
create `index.js`
execute terminal: `npm init -y`
execute terminal: `npm i @neisven/double.js`

**after..**

put in file:
```js
const { DClient } = require("@neisven/double.js");
const bot = new DClient({
  token: "your token",
  prefix: "!" // replace on your prefix!
});

bot.readyCommand({
  code: `$print[Bot login as $userTag]`
});

bot.command({
  name: "ping",
  code: `
  $sendMessage[Hey! My delay is.. $ping]
  `
});

bot.connect();
```
great!
npm package: @neiwad/svelte-calendar
Description: A simple Svelte calendar that can act as a date picker. # Props *Please note that all dates are on the **YYYY-MM-DD** format.*
Author: neiwad
Latest version: 0.0.4

# 🗓️ Svelte Calendar
A simple Svelte calendar that can act as a date picker.
# Props
*Please note that all dates are on the **YYYY-MM-DD** format.*

| Name               | Description                                            | Type     | Default | isReactive |
| ------------------ | ------------------------------------------------------ | -------- | ------- | ---------- |
| mode               | The mode of the calendar : display, single or multiple | String   | single  | False      |
| locale             | The locale of the calendar (FR / EN)                   | String   | en      | False      |
| minDate            | The minimun allowed date of the calendar               | String   | null    | False      |
| maxDate            | The maximum allowed date of the calendar               | String   | null    | False      |
| disabledDates      | Array of disabled dates                                | String[] | []      | False      |
| maxSelectableDates | Maximum of date selectable in multiple mode            | Number   | 2       | False      |
| selectedDate       | Date selected on single mode                           | String   | null    | True       |
| selectedDates      | Array of selected dates on multiple mode               | String[] | []      | True       |
# Behavior
- selectedDate and selectedDates are reset when mode is updated.
npm package: @neiwad/svelte-i18n-slots
Description: > A simple Svelte component that transform i18n variables into Slots. # Installation ``` pnpm install @neiwad/svelte-i18n-slots ``` # Requirements 🌍 svelte-i18n installed # Example ### I18n Configuration ```json { 	"string": "This is example of how to us
Author: neiwad
Latest version: 0.0.3

# Svelte-i18n-slots
> A simple Svelte component that transform i18n variables into Slots.
# Installation
```
pnpm install @neiwad/svelte-i18n-slots
```
# Requirements
🌍 svelte-i18n installed
# Example
### I18n Configuration
```json
{
	"string": "This is example of how to use {slot1} as i18n {slot2}.",
	"slot1Text": "slot",
    "slort2Text": "variable"
}
```
### Svelte Component
```js
import { I18nSlots } from "@neiwad/svelte-i18n-slots"
```
```js
<p>
    <I18nSlots key="string">
        <a data-i18n-key="slot1" href="http://github.com/neiwad">
            {$_('slot1Text')}
        </a>
        <a data-i18n-key="slot2" href="http://github.com/neiwad">
            {$_('slort2Text')}
        </a>
    </I18nSlots>
</p>
```
### Result
```html
<p>
    This is example of how to use 
    <a  href="http://github.com/neiwad">slot</a>
    as i18n
    <a  href="http://github.com/neiwad">variable</a>
</p>
```
# Known issues
### Cannot read properties of null (reading 'removeChild')
Appears when **<I18nSlots>** is wrapped directly inside an **if** statement.
```js
{#if !$user.isAuthenticated}
    <I18nSlots key="string">
        ...
    </I18nSlots>
{/if}
```
To fix that issue, put your **<I18nSlots>** inside another tag as a <span> or a <div>
```js
{#if !$user.isAuthenticated}
    <span>
         <I18nSlots key="string">
            ...
        </I18nSlots>
    </span>
{/if}
```