open-index/open-npm huggingface dataset:
npm package: @jcbinet/ts-inject
Description: Basic dependency injection for TypeScript
Author: Jean-Christophe Binet
Latest version: 0.1.2

# @jcbinet/ts-inject
[![npm version](https://badge.fury.io/js/%40jcbinet%2Fts-inject.svg)](https://badge.fury.io/js/%40jcbinet%2Fts-inject)

Basic dependency injection for TypeScript.

## Getting Started
Install the package using npm:

```
npm i @jcbinet/ts-inject
```
### Example

To automatically inject dependency into your classes, you need to mark them with the `@Injectable()` decorator. 

By example, here the `WebSocketService, HttpService` will be automatically injected into `API`.
```typescript
import { Injectable, Injector } from '@jcbinet/ts-inject';

const api = Injector.resolve<API>(API);

@Injectable()
export class API {
  constructor(private http: HttpService,
              private ws: WebSocketService) { }
  
  /** ... */
}
```
npm package: @jcblw/astro-site-integration
Description: A way to leverage Vercel's Image Optimization API in Astro
Author: Jacob Lowe
Latest version: 1.4.2

# jcbl.ws Astro integration

This is an integration for [Astro](https://astro.build), and more specifically my blog. Some things in this package can be reused but the primary use case is for my blog. 

#### Features

- Support for Vercel Image Optimization
- Support for Vercel Edge Middleware

Reach out if you are planning to use this, I really am pushing this up just to tinker with Astro and Vercel.
## License

[MIT](LICENSE)
npm package: @jcblw/grove
Description: A CLI tool for managing Claude Code sessions with git worktrees
Latest version: 0.1.1

# Grove

A CLI tool for managing Claude Code sessions with git worktrees, built with TypeScript and NodeJS.

## Features

- 🌳 Automatic git worktree creation for feature development
- 🤖 Integrated Claude Code sessions
- 📁 Configurable project structure

## Installation

```bash
npm install -g @jcblw/grove
```

Or for development:

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

## Usage

### Create a new feature worktree
```bash
grove user-authentication
```

### Continue working on existing worktree
```bash
grove user-authentication --continue
```

### Custom options
```bash
grove feature-name --location ../worktrees --project my-app
```

## Configuration

Create a `.groverc.json` file in your project root:

```json
{
  "worktreeLocation": "../",
  "projectName": "my-custom-project",
  "quickCommands": {
    "test": "npm test",
    "lint": "npm run lint", 
    "build": "npm run build",
    "dev": "npm run dev"
  },
  "autoStart": {
    "claudeCode": true
  }
}
```

## Keyboard Shortcuts

- `Ctrl+C` - Force quit


## Requirements

- Node.js >= 18.0.0
- Git
- Claude Code CLI tool

## License

MIT
npm package: @jcbontemps/cpp-xml2js
Description: In-place replacement for xml2js parseString. This is about 20x-30x faster and makes use of the rapidxml C++ library.
Author: Cody Rigney
Latest version: 1.0.11

# Forked and updated from https://github.com/codyrigney92/fast-xml2js

# fast-xml2js

**UPDATE: I'm no longer maintaining this project. If you would like to take it over or you know of a solid fork, please reach out!**

In-place replacement for xml2js parseString. This is about 20x-30x faster and makes use of the rapidxml C++ library.

### Install
Run ```npm install fast-xml2js```

### Using
Simply replace

```var parseString = require('xml2js').parseString;```

with

```var parseString = require('fast-xml2js').parseString;```

Then call it like so:

```
parseString('<some_xml>', function(err, result) {
    console.log(result);
});
```
npm package: @jcbrouwer/itunes-music-library-tracks
Description: Creates a stream of tracks from an iTunes Library XML file
Author: Hans Brouwer
Latest version: 1.0.8

# iTunes Music Library Tracks
This module loops through iTunes Music Library XML and spits out a stream of JSON objects for each track.

## Motivation
There are similar npm modules that do this, however when trying to utilize them in an electron application they all failed in one way or another.
I created my module using minimal dependencies so that it works without issue.

This version works with stricter tslinting than versions by @johnpaulvaughan or @alexanderallen

## Installation
```bash
$ npm install @jcbrouwer/itunes-music-library-tracks --save
```

## Code Example
Supply the module with a path to your xml file. It returns a node readStream of tracks. <br>
It throws an error if something goes wrong.


```javascript
let getItunesTracks = require('itunes-music-library-tracks').getItunesTracks;
let validXMLpath = '/home/hans/Music/iTunes/iTunes Music Library.xml'

let trackStream = getItunesTracks(validXMLpath)

trackStream.on('data', function(track) {
    console.log(JSON.parse(track))
})

trackStream.on('error', function(err) {
    console.log(err)
})

trackStream.on('end', () => {
console.log('finished parsing xml stream')
})


```
npm package: @jcbuisson/readlinesync
Description: Read a text file, line by line, synchronously
Author: Joe Bloggs
Latest version: 1.0.2


Generator reading a text file, line by line, synchronously

Requires node >= 10

# Install
```
npm install @jcbuisson/readlinesync
```

# Usage example

```
const readlineSync = require('@jcbuisson/readlinesync')
const lineGenerator = readlineSync(filePath)
for (let line of lineGenerator) {
   console.info(line)
}
```

# Options

```
const readlineSync = require('@jcbuisson/readlinesync')
const lineReader = readlineSync(path, options)
```

- `path` is the path of the file to read
- `options` is an optional object with the following optional attributes:
   - options.eol: end-of-line string, usually '\n' (LF, unix/macosx) or '\r\n' (CRLF, windows); default=os.EOL
   - options.encoding: encoding used to read / write lines from file stream bytes; default='utf8'