open-index/open-npm huggingface dataset:
npm package: @skidrow/clack-fork-core
Description: Clack contains low-level primitives for implementing your own command-line applications.
Author: Nate Moore
Latest version: 1.0.0-alpha.7

# `@clack/core`

Clack contains low-level primitives for implementing your own command-line applications.

Currently, `TextPrompt`, `SelectPrompt`, and `ConfirmPrompt` are exposed as well as the base `Prompt` class.

Each `Prompt` accepts a `render` function.

```js
import { TextPrompt, isCancel } from '@clack/core';

const p = new TextPrompt({
  render() {
    return `What's your name?\n${this.valueWithCursor}`;
  },
});

const name = await p.prompt();
if (isCancel(name)) {
  process.exit(0);
}
```
npm package: @skidy89/lang
Description: language loader for node.js using rust!
Author: skidy89
Latest version: 0.1.18

# @skidy89/lang - simple language loader (SLL)

![npm](https://img.shields.io/npm/v/@skidy89/lang) ![License](https://img.shields.io/npm/l/@skidy89/lang) ![Build Status](https://img.shields.io/badge/build-passing-brightgreen)

A lightweight Node.js package that provides a native N-API addon built with Rust and TypeScript type definitions for loading and parsing `.lang` files.

This module enables developers to manage multilingual applications by loading key-value pairs from `.lang` files stored in a specified directory.

---

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
  - [Node.js](#nodejs)
  - [TypeScript](#typescript)
- [Example .lang File](#example-lang-file)
- [Building the Package](#building-the-package)
- [Publishing to npm](#publishing-to-npm)
- [Package Contents](#package-contents)
- [Troubleshooting](#troubleshooting)
- [License](#license)
- [Notes](#notes)

---

## Installation

Install the package via npm:

```bash
npm install @skidy89/lang
```

Ensure you have Node.js (version 12 or higher) installed, as this package relies on N-API for native module support.

## usage
Load and parse .lang files using the native SSL class:
```typescript
import { SSL } from '@skidy89/lang';

const cli = new SSL('./languages');
async function loadLanguages() {
  try {
    const langData = await cli.load();
    console.log(langData['es']['hello-world']); // Outputs: "hello world!!"
  } catch (err) {
    console.error('Error loading languages:', err);
  }
}
loadLanguages();
```

## example lang file! 
Create .lang files in your specified directory (e.g., ./languages/es.lang). The format supports key-value pairs with # for comments!
```lang
# this is ignored, write whatever you want!!
hello-world = "¡Hola mundo!"
welcome = "Bienvenido"
```
Files must have the .lang extension.
Keys and values are separated by =.
Comments start with #.

## Building the Package and benchmarks
> [!WARNING]
> *work in progress*
npm package: @skidy89/ssl.js
Description: simple language loader - A high-performance language loader for internationalization (i18n) using Rust and N-API, supporting multiline strings, arrays, comments, and caching.
Latest version: 1.1.7

<h1 align="center" id="title">Simple Language Loader</h1> <p align="center"> <img src="https://socialify.git.ci/Skidy89/simple-language-loader/image?custom_description=a+simple+language+loader+addon+for+nodejs&custom_language=Rust&description=1&forks=1&issues=1&language=1&name=1&owner=1&pulls=1&stargazers=1&theme=Light" alt="simple-language-loader" width="640" height="320" /></p> <p align="center">


Simple Language Loader is a fast and lightweight Rust + N-API addon for Node.js that provides a simple yet powerful way to load `.lang` files with support for arrays, multiline strings, and comments.
It’s designed for multilingual projects that need high performance and easy js/ts integration

## features
- Full TypeScript support
- Automatic caching for repeated loads
- Simple and readable api
- Cross-platform Napi bindings
- Comment support (#)

## Installation
```bash
npm i @skidy89/ssl.js
```

## Example
```ts
import { loadChdlang, generateTypescriptDefs, clearLangCache, load_lang_dsk } from "@skidy89/ssl.js"

// create map cached langs
const langs = loadChdlang("./languages")
// or if you prefer, without any cached langs
const uncachlangs = load_lang_dsk("./languages")

console.log(langs.en.HELLO)
console.log(langs.es.GOODBYE)

// generate typescript files, will throw an error if the path doesnt exist
generateTypescriptDefs("./languages", "./types/langs.d.ts")

// clean the cached languages
clearLangCache()
```

> [!WARNING]
> this project is still on development, if you encounter an error, let me know or make a pull request
npm package: @skidy89/ssl.js-linux-arm64-gnu
Description: simple language loader - A high-performance language loader for internationalization (i18n) using Rust and N-API, supporting multiline strings, arrays, comments, and caching.
Latest version: 1.1.7

# `@skidy89/ssl.js-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@skidy89/ssl.js`
npm package: @skidy89/ssl.js-linux-arm64-musl
Description: simple language loader - A high-performance language loader for internationalization (i18n) using Rust and N-API, supporting multiline strings, arrays, comments, and caching.
Latest version: 1.1.7

# `@skidy89/ssl.js-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@skidy89/ssl.js`
npm package: @skidy89/ssl.js-linux-x64-gnu
Description: simple language loader - A high-performance language loader for internationalization (i18n) using Rust and N-API, supporting multiline strings, arrays, comments, and caching.
Latest version: 1.1.7

# `@skidy89/ssl.js-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@skidy89/ssl.js`
npm package: @skidy89/ssl.js-linux-x64-musl
Description: simple language loader - A high-performance language loader for internationalization (i18n) using Rust and N-API, supporting multiline strings, arrays, comments, and caching.
Latest version: 1.1.7

# `@skidy89/ssl.js-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@skidy89/ssl.js`
npm package: @skidy89/ssl.js-win32-arm64-msvc
Description: simple language loader - A high-performance language loader for internationalization (i18n) using Rust and N-API, supporting multiline strings, arrays, comments, and caching.
Latest version: 1.1.7

# `@skidy89/ssl.js-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@skidy89/ssl.js`
npm package: @skidy89/ssl.js-win32-ia32-msvc
Description: simple language loader - A high-performance language loader for internationalization (i18n) using Rust and N-API, supporting multiline strings, arrays, comments, and caching.
Latest version: 1.1.7

# `@skidy89/ssl.js-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@skidy89/ssl.js`
npm package: @skidy89/ssl.js-win32-x64-msvc
Description: simple language loader - A high-performance language loader for internationalization (i18n) using Rust and N-API, supporting multiline strings, arrays, comments, and caching.
Latest version: 1.1.7

# `@skidy89/ssl.js-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@skidy89/ssl.js`
npm package: @skiff-org/skiff-ui
Description: ![Logo](https://raw.githubusercontent.com/skiff-org/skiff-org.github.io/main/assets/updates/skiff-ui-og.png)
Author: Skiff World Inc.
Latest version: 1.2.5


![Logo](https://raw.githubusercontent.com/skiff-org/skiff-org.github.io/main/assets/updates/skiff-ui-og.png)


# Skiff UI – Design System

Skiff UI is an open-source React component library based on a collection of reusable interface elements used in Skiff. It offers a wide range of customizable components for web apps, empowering you to create beautiful and user-friendly interfaces.

[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/skiff-org/skiff-ui/blob/main/LICENSE)
[![npm latest package](https://img.shields.io/npm/v/@skiff-org/skiff-ui/latest.svg)](https://www.npmjs.com/package/@skiff-org/skiff-ui)
[![Average time to resolve an issue](https://isitmaintained.com/badge/resolution/skiff-org/skiff-ui.svg)](https://isitmaintained.com/project/skiff-org/skiff-ui 'Average time to resolve an issue')
[![Open Collective backers and sponsors](https://img.shields.io/opencollective/all/skiff)](https://opencollective.com/skiff)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](code_of_conduct.md)
[![Follow on Twitter](https://img.shields.io/twitter/follow/Skiff_hq.svg?label=follow+Skiff)](https://twitter.com/skiffprivacy)

## Documentation

[Skiff UI Documentation](https://skiff.com/ui)


## Installation

Inside your project, run either of the commands below to add Skiff UI:

```bash
  # Install Skiff UI with npm
  npm install @skiff-org/skiff-ui --save
```

```bash
  # Install Skiff UI with yarn
  yarn add @skiff-org/skiff-ui
```
    
## Using Skiff UI inside your app

Integrate Skiff components into your project easily, as shown below:

```typescript
  import { Button, Type } from '@skiff-org/skiff-ui';
  <Button onClick={onClick} type={Type.SECONDARY}>
    Click me
  </Button>
```

[![Edit Button](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/button-example-rfp4jn)


## ThemeProvider
To display Skiff UI components correctly, add the ThemeProvider at the root of your app.


```typescript
  import * as React from 'react';
  import { ThemeProvider } from '@skiff-org/skiff-ui';

  function App({ Component }) {
    return (
      <ThemeProvider>
        <Component />
      </ThemeProvider>
    );
  }
```


## Feedback

If you have any feedback, please reach out to us at support@skiff.org


## Contributing

Contributions are always welcome! See [contributing.md](/CONTRIBUTING.md) for ways to get started.

Please adhere to this project's [code_of_conduct.md](/CODE_OF_CONDUCT.md).


## Related

Our open source repositories and libraries

[Skiff Mail](https://github.com/skiff-org/skiff-mail)

[Skiff Windows App](https://github.com/skiff-org/skiff-windows-app)

[AEAD Library](https://www.npmjs.com/package/@skiff-org/typed-envelopes)

[Prosemirror Tables](https://github.com/skiff-org/prosemirror-tables)

## License

[MIT](https://choosealicense.com/licenses/mit/)
npm package: @skiftle/eslint-config
Description: Shared ESLint configuration for Skiftle projects
Author: Skiftle
Latest version: 0.1.1

# @skiftle/eslint-config

Shared ESLint configuration for Skiftle projects. Flat config only (ESLint 9+).

## Install

```bash
npm install -D @skiftle/eslint-config
```

## Usage

### Base (TypeScript)

```js
import { base } from '@skiftle/eslint-config';

export default base({ tsconfigRootDir: import.meta.dirname });
```

### React

```js
import { react } from '@skiftle/eslint-config';

export default react({ tsconfigRootDir: import.meta.dirname });
```

The `react` config extends `base` with React, JSX a11y, and React Refresh plugins.

## Options

| Option | Description |
| --- | --- |
| `tsconfigRootDir` | Root directory for TypeScript project resolution (required) |
| `ignores` | Additional glob patterns to ignore |

## What's included

**Base:** ESLint recommended, typescript-eslint strict, import-x, perfectionist, Prettier.

**React:** Everything in base, plus React, React Hooks, JSX a11y, React Refresh.

## License

MIT
npm package: @skil3e/gatsby-source-firestore
Description: Gatsby source plugin for Firestore
Author: Skil3e
Latest version: 1.0.7

# gatsby-source-firestore
Gatsby source plugin for Firestore

## Usage
1. ```npm install @Skil3e/gatsby-source-firestore```
2. Generate credentials from Firebase > Settings > Service accounts > "Generate new private key".
3. Configure settings at ```gatsby-config.js```, for example:
```js
module.exports = {
    {
        resolve: `skil3e-source-firestore`,
        options: {
            credential: require(`./credentials.json`),
            collections: [
                {
                    type: "Collection", // Graphql name
                    name: "collection", // Firebase name (can also be a path for a specific subcollection  eg: "collection/documentID/subCollection")
                    // Use map if you want to rename data or load only partial data
                    map?: doc => {
                            value: doc.value
                        }
                    subCollections?: [
                        {
                            type: "Subcollection", // Graphql name
                            name: "subcollection", // Firebase name
                            makeNode?: false // if true will create top level node
                        }
                    ]
                }
            ]
        },
    }
}
```

```graphql
{
  allCollection {
    edges {
      node {
        value
        childrenSubcollection  {
          value
        }
      }
    }
  }

  """ Will also make this """
  allSubcollection {
    edges {
      node {
        value 
      }
    }
  }
}
```

## Acknowledgement

- [ryanflorence/gatsby-source-firebase](https://github.com/ryanflorence/gatsby-source-firebase)

- [taessina/gatsby-source-firestore](https://github.com/taessina/gatsby-source-firestore)
npm package: @skilbourn/streak-counter
Description: This is a basic streak counter - inspired by Duolingo - written in TypeScript and meant for the browser (uses `localStorage`).
Author: stephen kilbourn
Latest version: 0.0.2

# `@skilbourn/streak-counter` - a basic streak counter

This is a basic streak counter - inspired by Duolingo - written in TypeScript and meant for the browser (uses `localStorage`).

## Install

```shell
yarn add @skilbourn/streak-counter
```


## Usage

import {streakCounter} from '@skilbourn/streak-counter'

const today = new Date()
const streak = streakCounter(localStorage, today)
// streak returns an object:
// {
//    currentCount: 1,
//    lastLoginDate: "11/05/2022",
//    startDate: "11/05/2022",
// }

[![Edit streak-counter (ts-course) (forked)](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/streak-counter-ts-course-forked-dsp0ow?fontsize=14&hidenavigation=1&theme=dark)
npm package: @skilitics-public/two-fingers
Description: Normalize two fingers gestures on the web.
Author: Skilitics
Latest version: 2.1.0

# two-fingers

A package to help you with two fingers gestures on the web.

### Original research and code
This is an adaptation of the research, article and code by @danburzo:
- [Article](https://dev.to/danburzo/pinch-me-i-m-zooming-gestures-in-the-dom-a0e)
- [Github repo](https://github.com/danburzo/ok-zoomer)

### TL;DR   
Two fingers gestures have become very common on the web, mostly to enable zooming and panning.
But they are passed to browsers as different events depending on:
- the hardware on which they are performed (trackpad OR touchscreen)
- the OS and browser that interprets them

This package tries to unify these interactions and inconsistencies to expose a single `Gesture` object.

### Installation
```
npm i @skilitics-public/two-fingers
```
OR
```
yarn add @skilitics-public/two-fingers
```
OR
```
pnpm add @skilitics-public/two-fingers
```

### API
The API takes inspiration from Apple's [`GestureEvent` specification](https://developer.apple.com/documentation/webkitjs/gestureevent).

##### Usage
```javascript
import { twoFingers } from "@skilitics-public/two-fingers";

const myDiv = document.querySelector('#myDiv');
const unregister = twoFingers(myDiv, {
  onGestureStart: (g) => console.log(`Gesture start. Gesture: ${g.toString()}`),
  onGestureChange: (g) => console.log(`Gesture change. Gesture: ${g.toString()}`),
  onGestureEnd: (g) => console.log(`Gesture end. Gesture: ${g.toString()}`),
}, (wheelEvent) => ({dx, dy}));
```

The callbacks are passed a `Gesture` argument of the following TS type:
```typescript
type Gesture = {
  origin: Coords;
  translation: Coords;
  scale: number;
  rotation?: number;
};

type Coords = {
  x: number;
  y: number;
};
```

Which means you can use the callback as in this example:
```javascript
const gestureChange = (g) => {
  console.log(g.origin) // { x: number; y: number }
  console.log(g.translation) // { x: number; y: number }
  console.log(g.scale) // number
  console.log(g.rotation) // number
}
```
npm package: @skilitics/two-fingers
Description: Normalize two fingers gestures on the web.
Author: Skilitics
Latest version: 0.0.2

# two-fingers

A package to help you with two fingers gestures on the web.

### Original research and code
This is an adaptation of the research, article and code by @danburzo:
- [Article](https://dev.to/danburzo/pinch-me-i-m-zooming-gestures-in-the-dom-a0e)
- [Github repo](https://github.com/danburzo/ok-zoomer)

### TL;DR   
Two fingers gestures have become very common on the web, mostly to enable zooming and panning.
But they are passed as different events depending on:
- the hardware on which they are performed (trackpad OR touchscreen)
- the OS and browser that interprets them

This package tries to unify these interactions and inconsistencies to expose a single `Gesture` object.

### Installation
```
npm i @skilitics/two-fingers
```
OR
```
yarn add @skilitics/two-fingers
```

### API
The API takes inspiration from Apple's [`GestureEvent` specification](https://developer.apple.com/documentation/webkitjs/gestureevent).

##### Usage
```javascript
const myDiv = document.querySelector('#myDiv');
const unregister = twoFingers(myDiv, {
  gestureStart: (g) => console.log(`Gesture start. Event: ${g.toString()}`),
  gestureChange: (g) => console.log(`Gesture change. Event: ${g.toString()}`),
  gestureEnd: (g) => console.log(`Gesture end. Event: ${g.toString()}`),
});
```

The callbacks are passed an object as argument, that is of the `Gesture` TS type:
```typescript
type Gesture = {
  origin: Coords;
  translation: Coords;
  scale: number;
  rotation?: number;
};

type Coords = {
  x: number;
  y: number;
};
```

Which means you can use the callback as in this example:
```javascript
const gestureChange = (g) => {
  console.log(g.origin) // { x: number; y: number }
  console.log(g.translation) // { x: number; y: number }
  console.log(g.scale) // number
  console.log(g.rotation) // number
}
```