open-index/open-npm huggingface dataset:
npm package: @iron-stack/crud
Description: Zero-boilerplate CRUD routers for tRPC + Drizzle
Latest version: 1.0.0

# @iron-stack/crud

Zero-boilerplate CRUD routers for tRPC + Drizzle. One function call replaces 60+ lines of repetitive router code.

## Install

```bash
npm install @iron-stack/crud
```

## Before & After

**Before** (60+ lines per entity):
```ts
export const mealRouter = router({
  list: protectedProcedure.input(ListSchema).query(async ({ input, ctx }) => {
    const conditions = [];
    if (input.cursor) conditions.push(lt(meals.createdAt, new Date(input.cursor)));
    const result = await ctx.db.select()
      .from(meals).where(and(...conditions))
      .orderBy(desc(meals.createdAt)).limit(input.limit + 1);
    const hasMore = result.length > input.limit;
    // ... 50 more lines of pagination, ownership, serialization
  }),
  create: protectedProcedure.input(CreateMealSchema).mutation(async ({ input, ctx }) => { /* ... */ }),
  update: protectedProcedure.input(/* ... */).mutation(async ({ input, ctx }) => { /* ... */ }),
  delete: protectedProcedure.input(/* ... */).mutation(async ({ input, ctx }) => { /* ... */ }),
});
```

**After** (10 lines):
```ts
import { createCrudRouter } from "@iron-stack/crud";

export const mealRouter = createCrudRouter({
  router,
  protectedProcedure,
  db,
  table: meals,
  createSchema: CreateMealSchema,
  ownerField: "userId",
  softDelete: true,
});
```

**Same result.** 5 fully-typed endpoints, cursor pagination, ownership checks, soft delete.

## API

### `createCrudRouter(config)`

Returns a tRPC router with these procedures:

| Procedure | Type | Description |
|-----------|------|-------------|
| `list` | query | Cursor-paginated list, newest first |
| `getById` | query | Single item by UUID |
| `create` | mutation | Create with auto owner assignment |
| `update` | mutation | Update with ownership verification |
| `delete` | mutation | Delete (soft or hard) with ownership check |

### Config

| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `table` | Drizzle table | required | The database table |
| `createSchema` | Zod schema | required | Input validation for create |
| `updateSchema` | Zod schema | `createSchema.partial()` | Input validation for update |
| `ownerField` | string | `"userId"` | Column for ownership filtering |
| `cursorField` | string | `"createdAt"` | Column for cursor pagination |
| `defaultLimit` | number | `20` | Default page size |
| `softDelete` | boolean | `false` | Soft delete (set deletedAt) vs hard delete |

### Hooks

```ts
createCrudRouter({
  // ...
  hooks: {
    beforeCreate: async (data, ctx) => {
      // Modify data before insert
      return { ...data, slug: slugify(data.title) };
    },
    afterCreate: async (result, ctx) => {
      // Broadcast, send notification, etc.
      syncServer.broadcast("meal:new", result);
    },
    beforeDelete: async (id, ctx) => {
      // Clean up related data
    },
  },
});
```

## License

MIT
npm package: @ironarachne/word-generator
Description: A library for generation of fictional words
Author: Ben Overmyer
Latest version: 2.3.1

# Word Generator

This is a library for generating random fictional words based on phonetic patterns.

Documentation is available [here](https://word-generator.ironarachne.com/docs).

## Symbol Reference

When constructing a pattern string for word generation, the following symbols (non-terminals) representing phonological categories are available. 

Uppercase alphabetical characters and any characters not in this list will be treated as terminals (output verbatim, though transformed to lowercase).

### Standard Characters

| Symbol | Category | Elements |
| --- | --- | --- |
| `#` | Digits | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
| `a` | Affricates | ch, j |
| `b` | Voiced Dental Plosive | d, dh |
| `c` | Consonants | b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, y, z |
| `d` | Bilabials | p, b, m |
| `e` | Dentals | d, n, t, l |
| `f` | Fricatives | f, v, th, dh, s, z, sh, zh, h |
| `g` | Labiodentals | f, v |
| `h` | Voiceless Dental Plosives | t, th |
| `i` | Voiceless | h, f |
| `j` | Alveolars | t, d, s, z, n, l |
| `k` | Velar Plosives | c, k |
| `l` | Liquids | l, r |
| `m` | Close Mid Vowels | i, ö, eu, oe, e |
| `n` | Nasals | m, n, ng |
| `o` | Stops | t, d, p |
| `p` | Plosives | g, k, p, b, t, d, q |
| `q` | Palatals/Post-alveolars | sh, zh, ch, j, y |
| `r` | Glottals | h, ' |
| `s` | Sibilants | s, sh, z, zh |
| `t` | Stridents | f, v, s, sh, z, zh |
| `u` | Approximants/Glides | w, y |
| `v` | Vowels | a, e, i, o, u |
| `w` | Velars | w, wh, g |
| `x` | Accented Vowels | á, é, í, ó, ú |
| `y` | Open Vowels | e, ee, i, oo, y, ie |
| `z` | Trills/Flaps | r, rr |

### Greek Characters

| Symbol | Category | Elements |
| --- | --- | --- |
| `α` | Diphthongs | oi, ou, ai, ei, au |
| `β` | Front Vowels | i, e, ae |
| `γ` | Back Vowels | u, o, au, aa |
| `δ` | Rounded Vowels | o, u |
| `ε` | Unrounded Vowels | a, e, i |
| `ζ` | Voiceless Fricatives | f, th, s, sh, h |
| `η` | Voiced Fricatives | v, dh, z, zh |
| `θ` | Voiceless Stops | p, t, k, c, q |
| `ι` | Voiced Stops | b, d, g |
| `κ` | Retroflex Consonants | ṭ, ḍ, ṇ, ṛ, ṣ, ẓ |
| `λ` | Uvular and Pharyngeal Consonants | q, gh, x, ħ, ʕ |
| `μ` | Ejectives | p', t', k', q', s', ts', ch' |
| `ν` | Implosives | bh, dh, gh |
| `ξ` | Clicks | \|, \|\|, \|! |
| `π` | Lateral Fricatives and Affricates | ll, tl, dl, hl |
| `ρ` | Nasalized Vowels | ã, ẽ, ĩ, õ, ũ, an, on, in |
| `σ` | Long Vowels | aa, ee, ii, oo, uu |
| `τ` | Tonal Vowels | á, à, â, ǎ, ā, é, è, ê, ě, ē, í, ì, î, ǐ, ī |
npm package: @ironars/ngx-datatable
Description: ngx-datatable is a Angular2+ table grid component for presenting large and complex data.
Latest version: 15.0.2

# ngx-datatable

`ngx-datatable` is an Angular component for presenting large and complex data.  It has all the features you would expect from any other table but in a light package with _no external dependencies_. The table was designed to be extremely flexible and light; it doesn't make any assumptions about your data or how you: filter, sort or page it.

It was built for modern browsers using _TypeScript, CSS3 and HTML5_ and Angular `>=4.0.0`. This is the sister project of the [angular-data-table](https://github.com/swimlane/angular-data-table) that is designed for Angular 1.x.

Check out the [documentation](https://swimlane.gitbook.io/ngx-datatable/) & [demos](http://swimlane.github.io/ngx-datatable/) for more information!

See the [changelog](https://github.com/swimlane/ngx-datatable/blob/master/docs/changelog.md) for recent changes.

## Features
- Handle large data sets ( Virtual DOM )
- Expressive Header and Cell Templates
- Horizontal & Vertical Scrolling
- Column Reordering & Resizing
- Client/Server side Pagination & Sorting
- Intelligent Column Width Algorithms ( Force-fill & Flex-grow )
- Integrated Pager
- Cell & Row Selection ( Single, Multi, Keyboard, Checkbox )
- Fixed AND Fluid height
- Left and Right Column Pinning
- Row Detail View
- Decoupled theme'ing with included Google Material theme
- Light codebase / No external dependencies
- AoT Compilation Support
- Universal Support

## Installation
To use ngx-datatable in your project install it via [npm](https://www.npmjs.com/package/@ironars/ngx-datatable):
```
npm i @ironars/ngx-datatable --save
```

## Credits
`ngx-datatable` is a [Swimlane](http://swimlane.com) open-source project; we believe in giving back to the open-source community by sharing some of the projects we build for our application. Swimlane is an automated cyber security operations and incident response platform that enables cyber security teams to leverage threat intelligence, speed up incident response and automate security operations.

[SecOps Hub](http://secopshub.com) is an open, product-agnostic, online community for security professionals to share ideas, use cases, best practices, and incident response strategies.
npm package: @ironbay/anchor
Description: Anchor is a code generation tool for `JSON:API`. It allows you to define your schema once and generate code for all the places where you need to reference it.
Latest version: 0.0.68

# Anchor
Anchor is a code generation tool for `JSON:API`. It allows you to define your schema once and generate code for all the places where you need to reference it.

It currently supports

- **JSON Schema** - Generate validators for different create/read/update operations
- **Typescript** - Generate types for different create/read/update operations
- **OrbitJS** - Generate a schema that can be loaded into [orbitjs](https://orbitjs.com/)

### Installation
```bash
# npm
npm install --save-dev @ironbay/anchor

# yarn
yarn add --dev @ironbay/anchor
``` 

### Config
Anchor works by referencing a config file defined in typescript.

#### Example
```typescript
import { Config } from "@ironbay/anchor"

export default Config.define({
  outputs: {
    typescript: ["api/src/anchor.ts"],
    jsonschema: ["api/src/anchor.json"],
    orbit: ["react/src/models.ts"],
  },
  
  resources: [
    {
      type: "user",
      attributes: {
        name: {
          type: "string",
        },
      },
      relationships: {
        posts: {
          type: "many",
          resource: "article",
          inverse: "author",
        },
      },
    },
    {
      type: "post",
      attributes: {
        title: {
          type: "string",
          ops: {
            create: "required"
          }
        },
      },
      relationships: {
        author: {
          type: "one",
          resource: "user",
          inverse: "articles",
        },
      },
    },
  ]
})
```
Documentation on the format of this is a work in progress but for now Typescript can help you define this correcty so you should be able to use intellisense to explore the structure.  The attribute type definition follows jsonschema and has an additional `ops` field to define what actions can be taken on the attribute.

### Generate
Generating code is done by calling `anchor gen ./anchor.config.ts`. It's useful to add this as a script to your `package.json`
```json
"scripts": {
  "anchor:gen": "anchor gen ./anchor.config.ts"
}
```
npm package: @ironblood/node-test-reporter
Description: > Note: only supports v22.x and later versions
Author: Yang Shen
Latest version: 0.2.0

# node-test-reporter

> Note: only supports v22.x and later versions

This is a lightweight custom reporter for Node's built-in test runner, which was introduced in v18.0.0 and v16.17.0. This reporter adaptes the Jest-style, which is shown in the snapshot below. However this is a hobby project, lots of features, like snapshots, diff highlighter are not implemented. For serious projects, use Mocha, Jest, or Vitest, or even the built-in reporters from `node:test`.

![snapshot.png](./assets/snapshot.png)

## How to Use

First install it as a dependency to a project:

```bash
npm i -D @ironblood/node-test-reporter
```

Then pass it to [`--test-reporter`](https://nodejs.org/api/cli.html#--test-reporter), which was introduced in v19.6.0 and v18.15.0:

```bash
node --test --test-reporter=@ironblood/node-test-reporter path/to/foo.test.js
```
npm package: @ironbow/prettier-config
Description: Prettier Config
Latest version: 1.0.0

# @ironbow/prettier-config
Iron Bow's Prettier config.

## Install
```bash
$ npm install --save-dev @ironbow/prettier-config
```

## Usage
Edit your `package.json`:

```jsonc
{
  // ...
  "prettier": "@ironbow/prettier-config"
}
```
npm package: @ironcalc/nodejs
Latest version: 0.7.1

# IronCalc nodejs bindings


Example usage:

```javascript
import { Model } from '@ironcalc/nodejs';
 
const model = new Model("Workbook1", "en", "UTC", "en");

model.setUserInput(0, 1, 1, "=1+1");

const result1 = model.getFormattedCellValue(0, 1, 1);
console.log('Cell value', result1); // "#ERROR"

model.evaluate();

const resultAfterEvaluate = model.getFormattedCellValue(0, 1, 1);
console.log('Cell value', resultAfterEvaluate); // 2

let result2 = model.getCellStyle(0, 1, 1);
console.log('Cell style', result2);
```
npm package: @ironcalc/nodejs-linux-arm-gnueabihf
Description: This is the **armv7-unknown-linux-gnueabihf** binary for `@ironcalc/nodejs`
Latest version: 0.7.1

# `@ironcalc/nodejs-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@ironcalc/nodejs`
npm package: @ironcalc/nodejs-linux-arm-musleabihf
Description: This is the **armv7-unknown-linux-musleabihf** binary for `@ironcalc/nodejs`
Latest version: 0.5.1

# `@ironcalc/nodejs-linux-arm-musleabihf`

This is the **armv7-unknown-linux-musleabihf** binary for `@ironcalc/nodejs`
npm package: @ironcalc/nodejs-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@ironcalc/nodejs`
Latest version: 0.5.1

# `@ironcalc/nodejs-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@ironcalc/nodejs`
npm package: @ironcalc/nodejs-linux-riscv64-gnu
Description: This is the **riscv64gc-unknown-linux-gnu** binary for `@ironcalc/nodejs`
Latest version: 0.7.1

# `@ironcalc/nodejs-linux-riscv64-gnu`

This is the **riscv64gc-unknown-linux-gnu** binary for `@ironcalc/nodejs`
npm package: @ironcalc/nodejs-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@ironcalc/nodejs`
Latest version: 0.7.1

# `@ironcalc/nodejs-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@ironcalc/nodejs`
npm package: @ironcalc/nodejs-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@ironcalc/nodejs`
Latest version: 0.5.1

# `@ironcalc/nodejs-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@ironcalc/nodejs`
npm package: @ironcalc/nodejs-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@ironcalc/nodejs`
Latest version: 0.7.1

# `@ironcalc/nodejs-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@ironcalc/nodejs`
npm package: @ironcalc/nodejs-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@ironcalc/nodejs`
Latest version: 0.7.1

# `@ironcalc/nodejs-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@ironcalc/nodejs`