open-index/open-npm huggingface dataset:
npm package: @shard-dev/forge
Description: Forge - Command line tools for Shard game developers
Author: Shard
Latest version: 1.0.0

# Shard CLI

Command line tools for game developers integrating with the Shard platform.

## Installation

### Using npx (recommended)

```bash
npx @shard/cli recording init
```

### Global installation

```bash
npm install -g @shard/cli
```

## Quick Start

```bash
# 1. Initialize for your game
npx @shard/cli recording init
# Enter: Everplast

# 2. Add recording events
npx @shard/cli recording add
# Enter: Boss Defeated → everplast_a1b2c3d4

# 3. Export for distribution
npx @shard/cli recording export
# Creates: game_events.json
```

## Commands

### `shard recording init`

Create a new `shard.recording.json` configuration file.

### `shard recording add`

Add a new recording event with an auto-generated unique ID.

```
? Event name (e.g., "Boss Defeated"): First Chicken Kill
✓ Added event: First Chicken Kill
  Event ID: everplast_a1b2c3d4

Copy this ID to use in your game code:
  "everplast_a1b2c3d4"
```

### `shard recording list`

View all configured events.

### `shard recording remove`

Remove an event from your configuration.

### `shard recording export`

Export events to `game_events.json` for distribution.

```bash
shard recording export
shard recording export -o ./build/game_events.json
```

### `shard recording validate`

Check your configuration for errors.

## Event ID Format

Event IDs follow the format: `{camelCaseGameName}_{8hexChars}`

| Game Title | Generated Event ID |
|------------|-------------------|
| Everplast | `everplast_a1b2c3d4` |
| Dark Souls 3 | `darkSouls3_e5f6g7h8` |
| My Cool Game | `myCoolGame_i9j0k1l2` |

## Configuration Files

### shard.recording.json

Your local development configuration (don't distribute):

```json
{
  "$schema": "https://shard.gg/schemas/recording-config.json",
  "gameName": "Everplast",
  "events": [
    {
      "id": "everplast_a1b2c3d4",
      "name": "Boss Defeated",
      "createdAt": "2024-01-15T10:30:00.000Z"
    }
  ]
}
```

### game_events.json

Include this file with your game distribution:

```json
{
  "everplast_a1b2c3d4": "Boss Defeated",
  "everplast_e5f6g7h8": "First Blood"
}
```

## Using Events in Your Game

### Godot 3.x

```gdscript
# Start recording when boss fight begins
RecordingSDK.start_recording("everplast_a1b2c3d4")

# Stop recording 3 seconds after boss dies
yield(RecordingSDK.stop_recording(recording_id, 3.0), "completed")
```

### Godot 4.x

```gdscript
# Start recording
var id = await RecordingSDK.start_recording("everplast_a1b2c3d4")

# Stop with delay
await RecordingSDK.stop_recording(id, 3.0)
```

## Development

```bash
# Install dependencies
npm install

# Build
npm run build

# Run locally
npm start recording init

# Run tests
npm test
```

## License

MIT
npm package: @shard-for-obsidian/lib
Description: Core library for Shard plugin management
Author: Andrew Gillis
Latest version: 0.3.3

# shard-lib

OCI-compatible container registry client library for TypeScript/JavaScript.

## Features

- Parse and validate Docker/OCI repository references
- Interact with OCI registries (Docker Hub, GHCR, etc.)
- Support for Docker v2 and OCI manifest formats
- Bearer token and basic authentication
- Link header parsing for pagination

## Installation

```bash
pnpm add shard-lib
```

## Usage

```typescript
import { OciRegistryClient, parseRepoAndRef } from "shard-lib";

// Parse a repository reference
const repo = parseRepoAndRef("ghcr.io/owner/repo:latest");
console.log(repo.index.name); // 'ghcr.io'
console.log(repo.tag); // 'latest'

// Create a registry client
const client = new OciRegistryClient({
  repo: repo,
  adapter: { fetch },
  username: "user",
  password: "token",
});

// List tags
const tags = await client.listTags();

// Get manifest
const manifest = await client.getManifest("latest");
```

## Project Structure

```
src/
  client/          # OCI registry client and adapters
  errors/          # Custom error classes
  ghcr/            # GitHub Container Registry constants
  parsing/         # Repository and index parsing
  types/           # TypeScript type definitions
  utils/           # Utility functions
  __tests__/       # Test files
```

## API

### Parsing

- `parseIndex(arg?: string): RegistryIndex` - Parse registry index/URL
- `parseRepo(arg: string, defaultIndex?: string | RegistryIndex): RegistryRepo` - Parse repository
- `parseRepoAndRef(arg: string, defaultIndex?: string | RegistryIndex): RegistryImage` - Parse repository with tag/digest
- `urlFromIndex(index: RegistryIndex, scheme?: 'http' | 'https'): string` - Generate URL from index

### Client

- `OciRegistryClient` - Main registry client class
  - `listTags()` - List repository tags
  - `getManifest(ref: string)` - Get image manifest
  - `getBlob(digest: string)` - Download blob by digest

### Types

See TypeScript definitions for complete type information.
npm package: @shardbook/antd
Description: Collection of reusable antd components. Used by Shardbook.
Author: Shardbook
Latest version: 0.8.0

# antd &middot; [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shardbook/react-components/blob/main/antd/LICENSE) [![Published on NPM](https://img.shields.io/npm/v/@shardbook/antd.svg)](https://www.npmjs.com/package/@shardbook/antd) [![Minified size](https://img.shields.io/bundlephobia/min/@shardbook/antd.svg)](https://bundlephobia.com/package/@shardbook/antd) [![Tree-shakeable](https://badgen.net/bundlephobia/tree-shaking/@shardbook/antd)](https://github.com/shardbook/react-components/tree/main/antd)

Collection of reusable antd components.
Used by Shardbook.
npm package: @shardbook/react-hooks
Description: Collection of react hooks for state and UI management.
Author: Shardbook
Latest version: 1.4.2

# react-hooks &middot; [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shardbook/react-components/blob/main/hooks/LICENSE) [![Published on NPM](https://img.shields.io/npm/v/@shardbook/react-hooks.svg)](https://www.npmjs.com/package/@shardbook/react-hooks) [![Minified size](https://img.shields.io/bundlephobia/min/@shardbook/react-hooks.svg)](https://bundlephobia.com/package/@shardbook/react-hooks) [![Tree-shakeable](https://badgen.net/bundlephobia/tree-shaking/@shardbook/react-hooks)](https://github.com/shardbook/react-components/tree/main/hooks)

Collection of react hooks for state and UI management.
npm package: @shardbook/utils
Description: Collection of reusable javascript functions.
Author: Shardbook
Latest version: 1.2.0

# utils &middot; [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shardbook/react-components/blob/main/utils/LICENSE) [![Published on NPM](https://img.shields.io/npm/v/@shardbook/utils.svg)](https://www.npmjs.com/package/@shardbook/utils) [![Minified size](https://img.shields.io/bundlephobia/min/@shardbook/utils.svg)](https://bundlephobia.com/package/@shardbook/utils) [![Tree-shakeable](https://badgen.net/bundlephobia/tree-shaking/@shardbook/utils)](https://github.com/shardbook/react-components/tree/main/utils)

Collection of reusable javascript functions.