open-index/open-npm huggingface dataset:
npm package: @qbcart/utils
Description: Utilities common across the QBCart javascript ecosystem.
Author: QbCart Inc.
Latest version: 1.1.0

# <img align="center" src="https://avatars2.githubusercontent.com/u/45455933" width="96" height="96" /> Utils

Utilities common across the QBCart javascript ecosystem.

| Continuos Integration | Release |
| --- | --- |
| ![CI](https://github.com/QBCart/Utils/workflows/CI/badge.svg) | ![Release](https://github.com/QBCart/Utils/workflows/Release/badge.svg) ![npm](https://img.shields.io/npm/v/@qbcart/utils?style=flat) |

###### Licensed under MIT - Copyright (c) 2021 QBCart Inc. All rights reserved.
npm package: @qbit-tech/libs-react
Description: ``` useTrackerIndexedDB({   appName: "PROJECT_NAME",   userId: user.userId,   userData: user,   processUpload: (activities: IActivity[], onSuccess: (ids: number[]) => void) => {     httpRequest       .post(process.env.REACT_APP_API_URL_TRACKME || '', { bu
Author: QBIT Developer
Latest version: 1.4.6


## How to use TrackMe
```
useTrackerIndexedDB({
  appName: "PROJECT_NAME",
  userId: user.userId,
  userData: user,
  processUpload: (activities: IActivity[], onSuccess: (ids: number[]) => void) => {
    httpRequest
      .post(process.env.REACT_APP_API_URL_TRACKME || '', { bulk: activities })
      .then((res: any) => {
        onSuccess((res.data.payload || []).map((item: any) => item.activityId));
      })
      .catch((err) => {
        message.error(getErrorMessage(err));
      });
  },
});
```
npm package: @qbjs/core
Description: An agnostic ORM query builder for building queries for your API Requests
Author: @asofdevlab
Latest version: 0.1.5

# @qbjs/core

[![npm version](https://img.shields.io/npm/v/@qbjs/core.svg)](https://www.npmjs.com/package/@qbjs/core)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![CI](https://github.com/asofdevlab/qbjs/actions/workflows/ci.yml/badge.svg)](https://github.com/asofdevlab/qbjs/actions/workflows/ci.yml)

An ORM-agnostic query builder for building type-safe queries from API request query strings.

## Features

- **Parser → AST → Compiler Architecture**: Clean separation of concerns with a well-defined Abstract Syntax Tree
- **Type-Safe**: Full TypeScript support with comprehensive type definitions
- **ORM-Agnostic**: Works with Drizzle ORM (PostgreSQL, MySQL, SQLite)
- **Security-First**: Built-in security configuration for field allowlisting and operator restrictions
- **Framework Integration**: First-class support for Hono with middleware included
- **Flexible Filtering**: Support for comparison, string, and logical operators
- **Pagination & Sorting**: Built-in support for pagination and multi-field sorting

## Installation

```bash
# npm
npm install @qbjs/core

# pnpm
pnpm add @qbjs/core

# yarn
yarn add @qbjs/core
```

### Peer Dependencies

```bash
npm install zod
```

### Optional Dependencies
```bash
npm install drizzle-orm
```

## Quick Start

```typescript
import { Hono } from "hono";
import { createQueryBuilder, createDrizzlePgCompiler } from "@qbjs/core";
import { db } from "./db";
import { users } from "./db/schema";

const app = new Hono();

const queryBuilder = createQueryBuilder({
  config: {
    allowedFields: ["id", "name", "email", "createdAt"],
    maxLimit: 100,
    defaultLimit: 10,
  },
  compiler: createDrizzlePgCompiler(),
});

app.get("/users", async (c) => {
  const result = queryBuilder.executeFromUrl(c.req.url, users);

  if (result.errors.length > 0) {
    return c.json({ errors: result.errors }, 400);
  }

  const data = await db.query.users.findMany({
    where: result.query?.where,
    columns: result.query?.columns,
    limit: result.query?.limit,
    offset: result.query?.offset,
    orderBy: result.query?.orderBy,
  });

  return c.json(data);
});
```

### Example Query Strings

```
GET /users?filter[status][eq]=active
GET /users?sort=-createdAt&page=1&limit=10
GET /users?fields=id,name,email
```

## Documentation

For comprehensive documentation, guides, and API reference:

**[📚 Full Documentation](https://qbjs.asof.dev)**

- [Getting Started](https://qbjs.asof.dev/docs/getting-started)
- [Core Concepts](https://qbjs.asof.dev/docs/core-concepts)
- [API Reference](https://qbjs.asof.dev/docs/api-reference)

## License

MIT © [Asofdev](https://github.com/asofdevlab)