npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mereb/app-messaging

v1.0.3

Published

Messaging experience primitives for Mereb applications

Readme

@mereb/app-messaging

Messaging experience primitives for Mereb applications.

This package exposes a small set of surfaces for shared messaging logic, GraphQL documents, in-memory test helpers, and React Native UI screens.

Package Surfaces

  • @mereb/app-messaging - root export with the headless API and GraphQL aliases
  • @mereb/app-messaging/headless - GraphQL documents, pure helpers, and shared messaging types
  • @mereb/app-messaging/store - in-memory messaging store for local development and tests
  • @mereb/app-messaging/native - React Native messaging screens and native-only types
  • @mereb/app-messaging/gql - uppercase GraphQL document aliases

Installation

pnpm add @mereb/app-messaging

The native screens expect these peer dependencies to be present in the consuming app:

  • react
  • react-native
  • react-native-safe-area-context
  • expo-router
  • @apollo/client
  • graphql

Usage

Headless helpers

import {
  ConversationsDocument,
  deriveConversationTitle,
  formatMessagingTimestamp,
  summarizeMessagingBody
} from '@mereb/app-messaging/headless'

GraphQL aliases

import {CONVERSATIONS, SEND_MESSAGE} from '@mereb/app-messaging/gql'

In-memory store

import {createInMemoryMessagingStore} from '@mereb/app-messaging/store'

const store = createInMemoryMessagingStore()

React Native screens

import {MessagesScreen} from '@mereb/app-messaging/native'

Scripts

Run these from packages/app-messaging/:

  • pnpm run typecheck - TypeScript check
  • pnpm run test - Vitest unit tests
  • pnpm run coverage - Vitest coverage check
  • pnpm run build - clean and emit the published package
  • pnpm run smoke:dist - verify built package imports
  • pnpm run version:bump - bump package version using the script default
  • pnpm run version:bump:major - bump major version
  • pnpm run version:bump:minor - bump minor version
  • pnpm run version:bump:patch - bump patch version

To change the version bump used by the pre-commit hook, set VERSION_BUMP before committing, for example VERSION_BUMP=major git commit.

Project Layout

  • src/headless.ts - GraphQL documents and pure helpers
  • src/store.ts - in-memory store
  • src/native/ - React Native UI and native helpers
  • src/gql.ts - uppercase GraphQL aliases
  • src/index.tsx - root package export
  • docs/testing-plan.md - test coverage plan
  • docs/testing-implementation-dag.md - phased implementation DAG

Testing

The package uses Vitest with Node as the default environment. Coverage is configured in vitest.config.ts and is enforced through pnpm run coverage.

Build Output

The published package is emitted to dist/ and should be treated as generated code. Package export paths are validated by the smoke:dist script after build.