open-index/open-npm huggingface dataset:
npm package: @geodatahub/sdk
Description: Official JavaScript SDK for GeoDataHub API
Author: Vasileios Pasparas
Latest version: 1.0.0

# @geodatahub/sdk

Official JavaScript/TypeScript SDK for the GeoDataHub API - Access comprehensive geographic data including cities, airports, ports, and more.

## Installation

```bash
npm install @geodatahub/sdk
Quick Start
import { GeoDataHub } from '@geodatahub/sdk';

const client = new GeoDataHub({
  apiKey: 'YOUR_API_KEY'
});

// Search for locations
const results = await client.search('London', { type: 'city' });
console.log(results);
Features
🔍 Search - Full-text search across all geographic entities
🌍 Areas - List and filter geographic areas by type, country, population
📍 Nearby - Find locations within a radius of coordinates
📤 Export - Export data in CSV, JSON, GeoJSON, KML formats
API Reference
Initialize Client
const client = new GeoDataHub({
  apiKey: 'YOUR_API_KEY',
  baseUrl: 'https://api.geodatahub.com/v1' // optional
});
Search Locations
const results = await client.search('Paris', {
  type: 'city',      // optional: city, airport, port, island
  country: 'FR',     // optional: ISO country code
  limit: 20          // optional: max results (default: 20)
});
List Areas
const areas = await client.areas({
  type: 'airport',
  country: 'US',
  min_population: 100000,
  limit: 50,
  offset: 0
});
Get Area by ID
const area = await client.getArea('abc123');
Find Nearby Locations
const nearby = await client.nearby(51.5074, -0.1278, {
  radius: 50,        // km (default: 50)
  type: 'airport'    // optional filter
});
Export Data
const exportUrl = await client.export({
  format: 'geojson', // csv, json, geojson, kml
  filters: {
    country: 'GB',
    type: 'city'
  }
});
Response Format
All methods return promises with the following structure:

{
  data: [...],      // Array of results or single object
  total: 100,       // Total matching records
  limit: 20,        // Current page size
  offset: 0         // Current offset
}
Error Handling
try {
  const results = await client.search('London');
} catch (error) {
  if (error.status === 401) {
    console.error('Invalid API key');
  } else if (error.status === 429) {
    console.error('Rate limit exceeded');
  } else {
    console.error('API error:', error.message);
  }
}
TypeScript Support
Full TypeScript definitions are included:

import { GeoDataHub, GeographicArea, SearchOptions } from '@geodatahub/sdk';

const client = new GeoDataHub({ apiKey: 'YOUR_KEY' });

const options: SearchOptions = { type: 'city', limit: 10 };
const results: GeographicArea[] = await client.search('Tokyo', options);
Rate Limits
Free tier: 1,000 requests/hour
Pro tier: 10,000 requests/hour
Enterprise: Unlimited
License
MIT

Support
Documentation: https://geodatahub.app/developerhub
Issues: https://geodatahub.app/developerhub
Email: support@geodatahub.app
npm package: @geode/genepi-template
Description: Template for creating your Genepi addon
Author: Geode-solutions
Latest version: 1.0.1

<h1 align="center">Genepi-Template<sup><i>by Geode-solutions</i></sup></h1>
<h3 align="center">Template for creating your Genepi addon</h3>

<p align="center">
  <img src="https://github.com/Geode-solutions/genepi-template/workflows/CI/badge.svg" alt="Build Status">
  <img src="https://img.shields.io/github/release/Geode-solutions/genepi-template.svg" alt="Version">
</p>

<p align="center">
  <img src="https://img.shields.io/static/v1?label=Windows&logo=windows&logoColor=white&message=support&color=success" alt="Windows support">
  <img src="https://img.shields.io/static/v1?label=Linux&logo=linux&logoColor=white&message=support&color=success" alt="Linux support">
  <img src="https://img.shields.io/static/v1?label=macOS&logo=apple&logoColor=white&message=support&color=success" alt="macOS support">
</p>


<p align="center">
  <img src="https://img.shields.io/badge/C%2B%2B-11-blue.svg" alt="Language">
  <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
  <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
  <a href="https://slackin-opengeode.herokuapp.com"><img src="https://slackin-opengeode.herokuapp.com/badge.svg" alt="Slack invite"></a>
</p>

---

## Introduction

Genepi-Template provides a template for creating an [Genepi] addon.

[Genepi]: https://github.com/Geode-solutions/Genepi

## Questions
For questions and support please use the official [slack](https://slackin-opengeode.herokuapp.com) and go to the channel #genepi. The issue list of this repo is exclusively for bug reports and feature requests. 


## License

[MIT](https://opensource.org/licenses/MIT)

Copyright (c) 2019-present, Geode-solutions
npm package: @geode/geode-tools
Description: Tools and Component to extend Geode
Author: Geode-solutions
Latest version: 1.1.33

<h1 align="center">OpenGeode.geode<sup><i>by Geode-solutions</i></sup></h1>
<h3 align="center">Geode extension for OpenGeode</h3>

<p align="center">
  <img src="https://github.com/Geode-solutions/OpenGeode.geode/workflows/CI/badge.svg" alt="Build Status">
  <img src="https://codecov.io/gh/Geode-solutions/OpenGeode.geode/branch/master/graph/badge.svg" alt="Coverage Status">
  <img src="https://img.shields.io/github/release/Geode-solutions/OpenGeode.geode.svg" alt="Version">
</p>

<p align="center">
  <img src="https://img.shields.io/static/v1?label=Windows&logo=windows&logoColor=white&message=support&color=success" alt="Windows support">
  <img src="https://img.shields.io/static/v1?label=Ubuntu&logo=Ubuntu&logoColor=white&message=support&color=success" alt="Ubuntu support">
  <img src="https://img.shields.io/static/v1?label=Red%20Hat&logo=Red-Hat&logoColor=white&message=support&color=success" alt="Red Hat support">
  <img src="https://img.shields.io/static/v1?label=macOS&logo=apple&logoColor=white&message=support&color=success" alt="macOS support">
</p>

<p align="center">
  <img src="https://img.shields.io/badge/C%2B%2B-11-blue.svg" alt="Language">
  <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
  <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
  <a href="https://slackin-opengeode.herokuapp.com">
    <img src="https://slackin-opengeode.herokuapp.com/badge.svg" alt="Slack invite">
  </a>
  <a href="https://doi.org/10.5281/zenodo.3610370">
    <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3610370.svg" alt="DOI">
  </a>
</p>

---

## Introduction

OpenGeode.geode provides Geode extension for [OpenGeode] models and meshes.

[OpenGeode]: https://github.com/Geode-solutions/OpenGeode


## Documentation

To check out our live documentation, visit [docs.geode-solutions.com](https://docs.geode-solutions.com).


## Questions
For questions and support please use the official [slack](https://slackin-opengeode.herokuapp.com) and go to the channel #opengeode. The issue list of this repo is exclusively for bug reports and feature requests. 


## Changelog

Detailed changes for each release are documented in the [release notes](https://github.com/Geode-solutions/OpenGeode.geode/releases).


## License

[MIT](https://opensource.org/licenses/MIT)

Copyright (c) 2019 - 2022, Geode-solutions
npm package: @geode/opengeode
Description: OpenGeode extension for Geode application
Author: Geode-solutions
Latest version: 1.7.27

<h1 align="center">OpenGeode.geode<sup><i>by Geode-solutions</i></sup></h1>
<h3 align="center">Geode extension for OpenGeode</h3>

<p align="center">
  <img src="https://github.com/Geode-solutions/OpenGeode.geode/workflows/CI/badge.svg" alt="Build Status">
  <img src="https://github.com/Geode-solutions/OpenGeode.geode/workflows/CD/badge.svg" alt="Deploy Status">
  <img src="https://img.shields.io/github/release/Geode-solutions/OpenGeode.geode.svg" alt="Version">
</p>

<p align="center">
  <img src="https://img.shields.io/static/v1?label=Windows&logo=windows&logoColor=white&message=support&color=success" alt="Windows support">
  <img src="https://img.shields.io/static/v1?label=Ubuntu&logo=Ubuntu&logoColor=white&message=support&color=success" alt="Ubuntu support">
  <img src="https://img.shields.io/static/v1?label=Red%20Hat&logo=Red-Hat&logoColor=white&message=support&color=success" alt="Red Hat support">
</p>

<p align="center">
  <img src="https://img.shields.io/badge/C%2B%2B-11-blue.svg" alt="Language">
  <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
  <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
  <a href="https://opengeode-slack-invite.herokuapp.com">
    <img src="https://opengeode-slack-invite.herokuapp.com/badge.svg" alt="Slack invite">
  </a>
  <a href="https://doi.org/10.5281/zenodo.3610370">
    <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3610370.svg" alt="DOI">
  </a>
</p>

---

## Introduction

OpenGeode.geode provides Geode extension for [OpenGeode] models and meshes.

[OpenGeode]: https://github.com/Geode-solutions/OpenGeode

## Documentation

To check out our live documentation, visit [docs.geode-solutions.com](https://docs.geode-solutions.com).

## Questions
For questions and support please use the official [slack](https://slackin-opengeode.herokuapp.com) and go to the channel #opengeode. The issue list of this repo is exclusively for bug reports and feature requests. 

## Changelog

Detailed changes for each release are documented in the [release notes](https://github.com/Geode-solutions/OpenGeode.geode/releases).


## License

[MIT](https://opensource.org/licenses/MIT)

Copyright (c) 2019 - 2023, Geode-solutions
npm package: @geode/opengeode-geosciences
Description: OpenGeode extension for Geode application
Author: Geode-solutions
Latest version: 1.4.9

<h1 align="center">OpenGeode-Geosciences.geode<sup><i>by Geode-solutions</i></sup></h1>
<h3 align="center">Geode extension for OpenGeode</h3>

<p align="center">
  <img src="https://github.com/Geode-solutions/OpenGeode-Geosciences.geode/workflows/CI/badge.svg" alt="Build Status">
  <!-- <img src="https://github.com/Geode-solutions/OpenGeode-Geosciences.geode/workflows/CD/badge.svg" alt="Deploy Status"> -->
  <img src="https://codecov.io/gh/Geode-solutions/OpenGeode-Geosciences.geode/branch/master/graph/badge.svg" alt="Coverage Status">
  <img src="https://img.shields.io/github/release/Geode-solutions/OpenGeode-Geosciences.geode.svg" alt="Version">
</p>

<p align="center">
  <img src="https://img.shields.io/static/v1?label=Windows&logo=windows&logoColor=white&message=support&color=success" alt="Windows support">
  <img src="https://img.shields.io/static/v1?label=Ubuntu&logo=Ubuntu&logoColor=white&message=support&color=success" alt="Ubuntu support">
  <img src="https://img.shields.io/static/v1?label=Red%20Hat&logo=Red-Hat&logoColor=white&message=support&color=success" alt="Red Hat support">
  <img src="https://img.shields.io/static/v1?label=macOS&logo=apple&logoColor=white&message=support&color=success" alt="macOS support">
</p>

<p align="center">
  <img src="https://img.shields.io/badge/C%2B%2B-11-blue.svg" alt="Language">
  <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
  <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
  <a href="https://slackin-opengeode.herokuapp.com">
    <img src="https://slackin-opengeode.herokuapp.com/badge.svg" alt="Slack invite">
  </a>
  <a href="https://doi.org/10.5281/zenodo.3610370">
    <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3610370.svg" alt="DOI">
  </a>
</p>

---

## Introduction

OpenGeode-Geosciences.geode provides Geode extension for [OpenGeode] models and meshes.

[OpenGeode]: https://github.com/Geode-solutions/OpenGeode


## Documentation

To check out our live documentation, visit [docs.geode-solutions.com](https://docs.geode-solutions.com).


## Questions
For questions and support please use the official [slack](https://slackin-opengeode.herokuapp.com) and go to the channel #opengeode. The issue list of this repo is exclusively for bug reports and feature requests. 


## Changelog

Detailed changes for each release are documented in the [release notes](https://github.com/Geode-solutions/OpenGeode-Geosciences.geode/releases).


## License

[MIT](https://opensource.org/licenses/MIT)

Copyright (c) 2019 - 2022, Geode-solutions
npm package: @geode/opengeodeweb-back
Description: <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1> <h3 align="center">OpenSource Python framework based on OpenGeode</h3>
Author: Geode-solutions
Latest version: 6.5.2

<h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
<h3 align="center">OpenSource Python framework based on OpenGeode</h3>

<p align="center">
  <img src="https://github.com/Geode-solutions/OpenGeodeWeb-Back/workflows/CI/badge.svg" alt="Build Status">
  <img src="https://github.com/Geode-solutions/OpenGeodeWeb-Back/workflows/CD/badge.svg" alt="Deploy Status">
  <img src="https://codecov.io/gh/Geode-solutions/OpenGeodeWeb-Back/branch/master/graph/badge.svg" alt="Coverage Status">
  <img src="https://img.shields.io/github/release/Geode-solutions/OpenGeodeWeb-Back.svg" alt="Version">
  <img src="https://img.shields.io/pypi/v/opengeode-core" alt="PyPI" >
</p>

<p align="center">
  <img src="https://img.shields.io/badge/Python-3-blue.svg" alt="Language">
  <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
  <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
</p>

---

## Introduction

OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem

## Changelog

Detailed changes for each release are documented in the [release notes](https://github.com/Geode-solutions/OpenGeodeWeb-Back/releases).

## License

[MIT](https://opensource.org/licenses/MIT)

Copyright (c) 2019 - 2025, Geode-solutions
npm package: @geode/opengeodeweb-microservice
Description: Shared utilities and schema generator for OpenGeodeWeb ecosystem
Author: Geode-solutions
Latest version: 1.1.1

<h1 align="center">OpenGeodeWeb-Microservice<sup><i>by Geode-solutions</i></sup></h1>
<h3 align="center">OpenSource Python framework based on OpenGeode</h3>

<p align="center">
  <img src="https://github.com/Geode-solutions/OpenGeodeWeb-Back/workflows/CI/badge.svg" alt="Build Status">
  <img src="https://github.com/Geode-solutions/OpenGeodeWeb-Back/workflows/CD/badge.svg" alt="Deploy Status">
  <img src="https://codecov.io/gh/Geode-solutions/OpenGeodeWeb-Back/branch/master/graph/badge.svg" alt="Coverage Status">
  <img src="https://img.shields.io/github/release/Geode-solutions/OpenGeodeWeb-Back.svg" alt="Version">
  <img src="https://img.shields.io/pypi/v/opengeode-core" alt="PyPI" >
</p>

<p align="center">
  <img src="https://img.shields.io/badge/Python-3-blue.svg" alt="Language">
  <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
  <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
</p>

---

## Introduction

Database model and ORM layer for the OpenGeodeWeb ecosystem.

## Changelog

Detailed changes for each release are documented in the [release notes](https://github.com/Geode-solutions/OpenGeodeWeb-Microservice/releases).

## License

[MIT](https://opensource.org/licenses/MIT)

Copyright (c) 2019 - 2025, Geode-solutions
npm package: @geode/vease
Description: Desktop and cloud software for data visualization
Author: Geode-solutions
Latest version: 1.12.0-rc.7

<h1 align="center">Vease<sup><i>by Geode-solutions</i></sup></h1>
<h3 align="center">Open-source geoscience viewer built to ease subsurface data visualization.</h3>

![App Screenshot](./docs/model_from_implicitation.png)

# What is Vease?

- **Desktop**: Easily installable on your computer
- **Web-native**: Built with modern web technologies for accessibility
- **Simple**: Light UI focusing on usability
- **Extensible**: Designed for easy integration and customization

🔧 Vease is powered by a combination of:

- [OpenGeode](https://github.com/Geode-solutions/OpenGeode): for structured geoscience data handling
- [VTK](https://vtk.org/): for high-performance 3D rendering

# ⚡ Features

Here is a list of what to expect inside Vease. Click on each title to see a demo.

<details>
  <summary>Import file using drag&drog or import dialog</summary>
  <img src="./docs/import.gif" width="500">
</details>
<details>
  <summary>Mesh graphics options with points/edges visibility, constant and variable coloring</summary>
  <img src="./docs/mesh_graphics.gif" width="500">
</details>
<details>
  <summary>Smart 3D Grid for Spatial Awareness</summary>
  <img src="./docs/grid.gif" width="500">
</details>
<details>
  <summary>Adding Texture to Your Meshes</summary>
  <img src="./docs/textures.gif" width="500">
</details>

# 📀 Installation

Get the [latest](https://github.com/Geode-solutions/Vease/releases/latest) version

> [!NOTE]
> The app comes with auto updates with the windows exe & linux AppImage versions

## 🪟 Windows

### Option 1: Using executable

- Run the executable version
  ```powershell
  vease_win32.exe
  ```

### Option 2: Using zip archive

1. Unzip the vease_win32.zip archive
2. Run the app
   ```powershell
   vease.exe
   ```

## 🐧 Linux

### Option 1: Using AppImage

1. Install <a href="https://github.com/appimage/appimagekit/wiki/fuse">fuse</a>
2. Make the AppImage executable
   ```shell
   chmod +x vease_linux.AppImage
   ```
3. Run the AppImage version
   ```shell
   ./vease_linux.AppImage --no-sandbox
   ```

### Option 2: Using zip archive

1. Unzip the vease_linux.zip archive
2. Run the app
   ```shell
   ./vease
   ```

# ⚖️ License

[LGPL-2.1](https://opensource.org/license/lgpl-2-1)

Copyright (c) 2019 - 2025, Geode-solutions
npm package: @geodir/builder-api
Description: Cliente de Builder - API
Author: Geodir
Latest version: 0.1.0

# builder-api

> Cliente de Builder - API

## Build Setup

``` bash
# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report

# run unit tests
npm run unit

# run all tests
npm test
```

For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
npm package: @geodocs/n8n-nodes-geodocs
Description: Official n8n node for Geodocs — GIS project management platform
Latest version: 1.0.7

# @geodocs/n8n-nodes-geodocs

[n8n](https://n8n.io/) Official node for [Geodocs](https://geodocs.io/) — GIS project management platform.

This package provides two nodes:

- **Geodocs Trigger** — starts a workflow when Geodocs events occur (folder, assignment, expense, budget lifecycle events)
- **Geodocs Fetch** — search and lookup folders, assignments, expenses, and budgets

## Installation

In your n8n instance, go to **Settings > Community Nodes > Install** and enter:

```
@geodocs/n8n-nodes-geodocs
```

## Credentials

You need a Geodocs Personal Access Token (PAT) to use these nodes. More info at [Geodocs Integrations](https://geodocs.io/integrations).

1. In Geodocs, go to **Settings > API Tokens**
2. Create a new token with the required scopes (see below)
3. In n8n, create a new **Geodocs API** credential with your API URL and token

## Required PAT Scopes

| Node            | Required Scope                                                                             |
| --------------- | ------------------------------------------------------------------------------------------ |
| Geodocs Trigger | `webhooks:manage`                                                                          |
| Geodocs Fetch   | `folders:read`, `assignments:read`, `expenses:read`, or `budgets:read` (matching resource) |

## Trigger Events

| Event                | Description        |
| -------------------- | ------------------ |
| `folder.created`     | Folder created     |
| `folder.updated`     | Folder updated     |
| `folder.deleted`     | Folder deleted     |
| `folder.archived`    | Folder archived    |
| `assignment.created` | Assignment created |
| `assignment.updated` | Assignment updated |
| `assignment.deleted` | Assignment deleted |
| `expense.created`    | Expense created    |
| `expense.updated`    | Expense updated    |
| `expense.deleted`    | Expense deleted    |
| `budget.created`     | Budget created     |
| `budget.updated`     | Budget updated     |
| `budget.deleted`     | Budget deleted     |

## Webhook Signature Verification

The trigger node automatically verifies the `X-Geodocs-Signature` header using HMAC-SHA256 with `timingSafeEqual`. Invalid signatures are rejected.

## Development

```bash
npm install
npm run build
```

## License

MIT
npm package: @geoffai/elements
Description: Reusable UI components for building AI chat interfaces
Latest version: 0.1.0

# @geoffai/elements

Reusable UI components for building AI chat interfaces. Framework-agnostic components with no AI SDK dependencies.

## Installation

```bash
pnpm add @geoffai/elements
```

## Components

### Chat Components

- `ChatContainer` - Main chat container with flex layout
- `ChatMessages` - Scrollable messages container with auto-scroll
- `ChatScrollButton` - Floating scroll-to-bottom button
- `ChatInputArea` - Container for the chat input area
- `ChatEmptyState` - Empty state when no messages

### Prompt Input

- `PromptInput` - Form wrapper for input
- `PromptInputTextarea` - Auto-resizing textarea with IME support
- `PromptInputToolbar` - Toolbar container
- `PromptInputTools` - Tool buttons group
- `PromptInputButton` - Action button
- `PromptInputSubmit` - Submit button with status icons
- `PromptInputModelSelect` - Model selector dropdown

### Message Components

- `MessageContainer` - Message wrapper with role-based alignment
- `MessageContent` - Content box with role-based styling
- `MessageAvatar` - Avatar component
- `MessageText` - Prose-styled text wrapper
- `MessageGroup` - Groups multiple messages
- `MessageTimestamp` - Timestamp display

### Chain of Thought

- `ChainOfThought` - Collapsible container
- `ChainOfThoughtHeader` - Toggle header
- `ChainOfThoughtContent` - Animated content
- `ChainOfThoughtStep` - Step with status icon
- `ChainOfThoughtSearchResults` - Results container
- `ChainOfThoughtSearchResult` - Individual result

### Thinking/Loading

- `Shimmer` - Gradient text animation
- `GeoffThinking` - Animated fibonacci spiral dots

### Media

- `ImageCard` - Image display for generated images
- `ImageGrid` - Grid layout for multiple images
- `MusicPlayer` - Audio player with waveform

### UI Primitives

- `Button` - Button with variants
- `Textarea` - Text input
- `Select` - Dropdown select
- `Collapsible` - Collapsible container
- `Avatar` - User avatar

## Hooks

- `useScrollToBottom` - Scroll management for chat

## Types

The package provides its own types that replace ai-sdk dependencies:

- `ChatStatus` - 'idle' | 'submitted' | 'streaming' | 'error'
- `Message` - Base message interface
- `ChatHelpers` - Chat state and methods
- `ToolInvocation` - Tool call data
- `GeneratedImage` - Image generation result
- `LanguageModelUsage` - Token usage stats
npm package: @geoffcodesthings/forge-js
Description: A complete, asynchronous Javascript SDK for the Laravel Forge API
Author: Geoff Selby
Latest version: 1.2.1

# Laravel Forge JavaScript SDK

![Travis (.com)](https://img.shields.io/travis/com/GeoffSelby/laravel-forge-javascript-sdk?&style=for-the-badge)
![npm](https://img.shields.io/npm/v/@geoffcodesthings/forge-js?&style=for-the-badge)

A complete, asynchronous Javascript SDK for the Laravel Forge API

## Installation

With yarn (_recommended_):

```bash
yarn add @geoffcodesthings/forge-js
```

With npm:

```bash
npm install @geoffcodesthings/forge-js
```

## Basic Usage

```js
import Forge from '@geoffcodesthings/forge-js';

// Instantiate the SDK
const forge = new Forge('API_TOKEN_HERE');

// List all servers
try {
  const servers = await forge.servers.list();
  console.log(servers);
} catch (error) {
  console.log(error);
}
```

## Documentation

Full documentation can be found [here](https://laravel-forge-js-sdk.netlify.app).

## License

This project is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT).
npm package: @geoffcodesthings/nyan
Description: A tool that unifies NPM and Yarn
Author: Geoff Selby
Latest version: 1.0.2

# nyan

`nyan` is a CLI, inspired by [narn](https://github.com/joeldenning/narn), that detects what package manager your current project is using. If `package-lock.json` exists, it will spawn `npm` commands. If `yarn.lock` exists, `yarn` is used. Unlike [narn](https://github.com/joeldenning/narn), `nyan` allows you to use whichever syntax you prefer. Prefer `npm`? Use `npm` commands and arguments. Yarn user? Use `yarn` commands and arguments. It's up to you, all commands will be translated to the correct syntax automatically.

## Getting Started

### Installation

```sh
# Using npm
npm intsall -g @geoffcodesthings/nyan

# Using yarn
yarn global add @geoffcodesthings/nyan
```

### Configuration

There is only one configuration option, `preferredManager`. By default, it is set to `yarn`.

> This option is used when no package-lock.json or yarn.lock is found. This means you can use `nyan` to initialize a project.

To change this, run:

```sh
nyan config set preferredManager npm
```

> Available options for `preferredManager` are `yarn` and `npm`.

## Usage

### Yarn-like syntax

```sh
# Install from package.json
nyan

# Add a new dependency
nyan add lodash

# Add a dev dependency
nyan add --dev jest
nyan add -D jest

# To remove a dependency
nyan remove lodash

# Run a script from the package.json
nyan test
nyan dev --watch

# Apply version bump
nyan version <newversion>

# Publish to registry
nyan publish

# Upgrade dependencies
nyan upgrade
nyan upgrade --latest

# Initialize a project
nyan init
nyan init -y

# View the installed version of nyan
nyan -v
nyan --version
```

### NPM-like syntax

```sh
# Install from package.json
nyan install

# Add a new dependency
nyan install lodash
nyan install --save lodash

# Add a dev dependency
nyan install --save-dev jest
nyan install -D jest

# To remove a dependency
nyan uninstall lodash

# Run a script from the package.json
nyan run test
nyan run dev --watch

# Apply version bump
nyan version <newversion>

# Publish to registry
nyan publish

# Upgrade dependencies
nyan update

# Initialize a project
nyan init
nyan init -y

# View the installed version of nyan
nyan -v
nyan --version
```

## Contributing

There is plenty of room for improvement (support for more commands, global installation support, .etc). Contributions are open. If you have an idea for improvement, please submit an issue with a feature proposal first for discussion. Bug fixes can be PR'd directly. Be sure to write tests for any new features and make sure all tests pass before submitting any PR.
npm package: @geoffcodesthings/react-scripts
Description: Configuration and scripts for Create React App that allows a cusotm postcss.config.js file.
Latest version: 4.0.1

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebook/create-react-app).<br>
Please refer to its documentation:

- [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.
- [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.
npm package: @geoffcox/binary-search
Description: A modern binary search algorithm in Typscript.
Author: Geoff Cox
Latest version: 1.0.0

# @geoffcox/binary-search

This library contains a binary search algorithm written in Typescript.

## Features

* The search method supports any time of items in the array.
* The comparison function is injected into the algorithm.
* When the value is not found, the search provides the nearest range where the value should have been found.

This package ships in ES and CommonJS module formats along with DTS for typing.

## Installation and Usage

```
npm install @geoffcox/binary-search
```

```ts
    const values = [1,2,3,4,5];
    const nearestRange: NearestRange = {};

    const compare = (a: number, b: number) => a-b;
    const result = binarySearch(4, values, compare, nearestRange);

    //expect result to be index of 3 and nearestRange to be [2,4]
```

## Demo

Enjoy it at http://geoffcox.github.io/demos/binary-search
npm package: @geoffcox/sterling-svelte
Description: A modern, accessible, and lightweight component library for Svelte.
Author: Geoff Cox
Latest version: 2.0.16

# sterling-svelte

A modern, accessible, and lightweight component library for Svelte.

## Installation

```
npm install @geoffcox/sterling-svelte
```

## Documentation

The project builds the documentation for the library as a SvelteKit application.
See the published version of the [documentation](https://geoffcox.github.io/docs/sterling-svelte/).

## Repository

https://github.com/GeoffCox/sterling-svelte
npm package: @geoffdavis92/eleventy-plugin-webpack
Description: Eleventy webpack plugin utilizing Webpack v5
Author: Geoff Davis
Latest version: 2.1.1

# Eleventy Plugin - Webpack

Install:

```
npm install @geoffdavis92/eleventy-plugin-webpack
```

## Usage

In you main config `.eleventy.js`: 
```js
const pluginWebpack = require("@geoffdavis92/eleventy-plugin-webpack");

module.exports = (eleventyConfig) => {
  eleventyConfig.addPlugin(pluginWebpack, {
    entryPoints: {
      main: "src/index.js"
    }
    output: "_site/js",
    configFunction, // A function that recieves a webpack config to modify and return
  });
  // and the rest of your config
};
```

This will transpile JavaScript in`src/index.js` to `_site/js/main.js`. 

Their are 3 main options, `entryPoints` which is required and should contain a set of key/value pairs. The key represents the output file name (without extensions) and the value is the path to the source file. 

The second option `output` is optional although required in most situations. This is the output directory for the transpiled JavaScript. The generated file path will be a combination of the key and the `output`.

The third option `configFunction` allows you to modify the webpack config.

## Known Bugs

- ~~When the `eleventyConfig.addCachedGlobalData` property is truthy, the plugin will attempt to extract files and use the `.source()` method, which does not exist on the `assets` constructor: `SizeOnlySource` (ref [#1](https://github.com/geoffdavis92/eleventy-plugin-webpack/issues/1))~~
  - Addressed by [PR #8](https://github.com/geoffdavis92/eleventy-plugin-webpack/pull/8)
npm package: @geoffjamieson/react-toolkit
Description: Reusable React components for building clean, flexible, and modern UIs
Author: Geoff Jamieson
Latest version: 0.1.0

# 🧰 @geoffjamieson/react-toolkit

![React](https://img.shields.io/badge/react-18.x-blue.svg)

Reusable React components for building clean, flexible, and modern UIs.  
All tools are lightweight, customizable, and Tailwind-friendly by design.

This toolkit currently includes unstyled UI components, with plans to expand into animations, utilities, and more.

---

## 📦 Installation

```bash
npm install @geoffjamieson/react-toolkit
```

---

## 🎨 Import Styles

To use built-in styles like transitions and utility classes, manually import the toolkit's CSS in your app's entry file:

```tsx
// main.tsx or App.tsx
import '@geoffjamieson/react-toolkit/dist/react-toolkit.css'
``` 

---

## 🚀 Quick Usage

Import and use any component:

```tsx
import { RotatingWords } from '@geoffjamieson/react-toolkit'
```

```tsx
<RotatingWords
  staticTextBefore="I'm a"
  words={['Developer', 'Designer', 'Creator']}
  staticTextAfter="and I love it."
  animation="slide-left"
/>
```

---

## 📚 Documentation

Full documentation is available for each component.

- [All Components](https://github.com/UnionPAC/toolkit/blob/main/react-toolkit/lib/docs/index.md)
  - [RotatingWords](https://github.com/UnionPAC/toolkit/blob/main/react-toolkit/lib/docs/components/RotatingWords.md)
  - [Modal](https://github.com/UnionPAC/toolkit/blob/main/react-toolkit/lib/docs/components/Modal.md)

---

## 🧪 Local Development

This repo includes a `/src` playground to test and iterate on components locally.  

⚠️ The /src playground is for local development only and is not included in the published npm package.

```bash
npm install
npm run dev
```

---

## 🙌 Contributing

Feel free to submit issues or pull requests if you'd like to improve or add new components!