New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

@rebasepro/common

Package Overview
Dependencies
Maintainers
1
Versions
258
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rebasepro/common

Rebase shared core — collection registry, data driver adapter and fluent query builder. No React dependency.

Source
npmnpm
Version
0.21.0
Version published
Maintainers
1
Created
Source

@rebasepro/common

Shared utilities, collection registry, data driver adapter, and fluent query builder used across Rebase packages.

Installation

pnpm add @rebasepro/common

ESM-only: "type": "module" with no CommonJS build, so it is loaded with import. require() of it resolves only on Node 22.12+, which supports require(esm).

What This Package Does

@rebasepro/common is the lowest-level shared logic layer in the Rebase frontend stack. It provides:

  • Collection utilities — collection registry, default collection definitions, path resolution, navigation helpers
  • Data driver adapterbuildRebaseData() bridges any DataDriver implementation into a RebaseData proxy with typed collection accessors
  • Query builder — fluent QueryBuilder class plus or(), and(), cond() helpers for composing complex queries
  • Snapshot/property utilities — snapshot resolution, enum helpers, permission checks, reference/relation helpers, storage path utils, callback utilities

This package has no React dependency — it's pure TypeScript and can be used in both client and server contexts.

Key Exports

Data

ExportDescription
buildRebaseData(driver)Wraps a DataDriver in a Proxy-based RebaseData object. Property access like data.products returns a CollectionAccessor for that collection slug (camelCase → snake_case).
QueryBuilder<M>Fluent query builder with .where(), .orderBy(), .limit(), .offset(), .search(), .include(), .find(), and .listen()
or(...conditions)Create an OR logical condition
and(...conditions)Create an AND logical condition
cond(column, op, value)Create a single filter condition

Collections

ExportDescription
CollectionRegistryRegistry for managing collection definitions
Default collectionsPre-built collection configurations

Utilities

ModuleContents
collectionsCollection config helpers
commonGeneral-purpose utilities
snapshotsSnapshot value resolution
enumsEnum type helpers
pathsPath parsing and manipulation
resolutionsProperty and collection resolution
permissionsPermission evaluation
referencesReference property helpers
relationsRelation property helpers
navigation_from_pathBuild navigation tree from a path
parent_references_from_pathExtract parent references
buildersCollection/property builder utilities
storageStorage path utilities
callbacksCallback composition utilities
conditionsConditional logic helpers
navigation_utilsNavigation tree utilities

Quick Start

import { buildRebaseData, QueryBuilder, or, cond } from "@rebasepro/common";

// Wrap a DataDriver into a proxy-based data accessor
const data = buildRebaseData(myDriver);

// Access collections by name (camelCase auto-converts to snake_case)
const { data: products } = await data.products.find({ limit: 10 });
const snapshot = await data.products.findById("abc-123");

// Fluent query builder
const { data: results } = await data.products
    .where("status", "==", "published")
    .orderBy("created_at", "desc")
    .limit(20)
    .find();

// Complex logical queries
const { data: filtered } = await data.products
    .where(or(
        cond("category", "==", "electronics"),
        cond("price", ">=", 100)
    ))
    .find();
  • @rebasepro/typesDataDriver, RebaseData, CollectionAccessor, Snapshot, FindResponse, etc.
  • @rebasepro/utils — Low-level utilities (toSnakeCase, etc.)
  • @rebasepro/app — Runtime layer that consumes @rebasepro/common
  • @rebasepro/client — HTTP client that re-exports and extends the QueryBuilder

Keywords

rebase

FAQs

Package last updated on 14 Sep 2026

Related posts