open-index/open-npm huggingface dataset:
npm package: @rozbehsharahi/shortcuts
Description: This package provides two main services:
Author: Rozbeh Chiryai Sharahi
Latest version: 2.0.6

# shortcuts

This package provides two main services:

- Register and unregister short cuts
- Register and unregister shortcut packs (more interesting)

## Register & unregister short cuts

```ts
import {ShortCut, shortCutter} from "@rozbehsharahi/shortcuts";

// set a short cut
shortCutter.register('my-control-save', new ShortCut({
    ctrl: true,
    key: s,
    action: () => alert('wooohooo')
}))

// Use name to unset
shortCutter.unregister('my-control-save')
```

## Register & unregister packs

In fact, we work here with stacks, and it should rather be called: Push & pop shortcut packs.

Scenario: Imagine you have an app for todos. The tool is only accessible via Login and you want to provide a shortcut
via Escape key to log out. While this sounds straightforward, imagine you have also a plus button for adding a new todo.
When clicking that plus button a modal pops up. Here you no longer want Esc to stand for "Log out" you want it rather to
be the shortcut for canceling the modal. But after closing the modal you want to go back to your default escape shortcut
again.

This scenario made me create the shortcut packs, where every modal, component, view can stack an entire new pack of
shortcuts, which can be simply removed again.

```ts
import {ShortCut, shortPacker} from "@rozbehsharahi/shortcuts";

// Set shortcuts
shortPacker.push([
    new ShortCut({
        label: 'My escape in Todo-List-View',
        key: 'Escape',
        action: () => save()
    })
])

// Temporarily replace shortcuts
shortPacker.push([
    new ShortCut({
        label: 'My escape in Todo-Add-View',
        key: 'Escape',
        action: () => cancel()
    })
])

// Jump back to initial shortcuts
shortPacker.pop();
```

## Publishing

- Program
- Commit changes
- Update npm package version
- Commit
- Push
- Create release

## Know issues

- Written in TypeScript. You need a tool like webpack, vue-cli or whatever to make this package accessible for yourself.
npm package: @rozelin/matter-tools
Description: tools for creating, testing and debugging matter.ts worlds
Author: Rozelin
Latest version: 1.0.2

# Matter Tools
This library is a TypeScript adaptation of [Matter Tools](https://github.com/liabru/matter-tools). The main usage is the same as [Matter Tools](https://github.com/liabru/matter-tools). See [the README of Matter Tools](https://github.com/liabru/matter-tools/blob/master/README.md) for details.

## install
```bash
npm install @rozelin/matter-tools
```

## Type Declaration Usage
If you want to import and use interface definitions, etc., you can write as follows.

```ts
import MatterTools, { Gui } from '@rozelin/matter-tools'

const Gui: Gui.IGui = MatterTools.Gui.create()
```

or

```ts
import * as MatterToolsTypes from '@rozelin/matter-ts'
const MatterTools = MatterToolsTypes.default

const Gui: MatterToolsTypes.Gui.IGui = MatterTools.Gui.create()
```
npm package: @rozelin/matter-ts
Description: a 2D rigid body physics engine for the web
Author: Rozelin
Latest version: 1.1.7

# Matter.ts

This library is a TypeScript adaptation of [Matter.js](https://github.com/liabru/matter-js). The main usage is the same as [Matter.js](https://github.com/liabru/matter-js). See [the README of Matter.js](https://github.com/liabru/matter-js/blob/master/README.md) for details.

You can also see [TypeDoc](https://rozelin-dc.github.io/matter-ts)

## install
```bash
npm install @rozelin/matter-ts
```

## Type Declaration Usage
If you want to import and use interface definitions, etc., you can write as follows.
```ts
import Matter, { Body } from '@rozelin/matter-ts'

const body: Body.IBody = Matter.Body.create()
```

or

```ts
import * as MatterTypes from '@rozelin/matter-ts'
const Matter = MatterTypes.default

const body: MatterTypes.Body.IBody = Matter.Body.create()
```
npm package: @rozenite/expo-atlas-plugin
Description: Expo Atlas for Rozenite.
Latest version: 1.7.0

![rozenite-banner](https://www.rozenite.dev/rozenite-banner.jpg)

### A Rozenite plugin that integrates Expo Atlas into React Native DevTools for enhanced development experience.

[![mit licence][license-badge]][license] [![npm downloads][npm-downloads-badge]][npm-downloads] [![Chat][chat-badge]][chat] [![PRs Welcome][prs-welcome-badge]][prs-welcome]

The Rozenite Expo Atlas Plugin seamlessly integrates Expo Atlas into your React Native DevTools environment. It provides a dedicated panel for accessing Expo Atlas features, including asset management, dependency analysis, and project insights, all within the familiar DevTools interface.

![Expo Atlas Plugin](https://rozenite.dev/expo-atlas-plugin.png)

## Features

- **Expo Atlas Integration**: Direct access to Expo Atlas features within DevTools
- **Asset Management**: Visual asset browser and management tools
- **Dependency Analysis**: Comprehensive dependency tree visualization
- **Project Insights**: Detailed project structure and configuration analysis

## Installation

Install the Expo Atlas plugin as a dependency:

```bash
npm install @rozenite/expo-atlas-plugin
```

## Quick Start

### 1. Install the Plugin

```bash
npm install @rozenite/expo-atlas-plugin
```

### 2. Configure Metro

Add the Expo Atlas plugin to your Metro configuration:

```javascript
// metro.config.js
import { withRozenite } from '@rozenite/metro';
import { withRozeniteExpoAtlasPlugin } from '@rozenite/expo-atlas-plugin';

export default withRozenite(
  withRozeniteExpoAtlasPlugin({
    // Your existing Metro configuration
  })
);
```

### 3. Access Expo Atlas

Start your development server and open React Native DevTools. You'll find the "Expo Atlas" panel in the DevTools interface.

## Made with ❤️ at Callstack

`rozenite` is an open source project and will always remain free to use. If you think it's cool, please star it 🌟.

[Callstack][callstack-readme-with-love] is a group of React and React Native geeks, contact us at [hello@callstack.com](mailto:hello@callstack.com) if you need any help with these or just want to say hi!

Like the project? ⚛️ [Join the team](https://callstack.com/careers/?utm_campaign=Senior_RN&utm_source=github&utm_medium=readme) who does amazing stuff for clients and drives React Native Open Source! 🔥

[callstack-readme-with-love]: https://callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=rozenite&utm_term=readme-with-love
[license-badge]: https://img.shields.io/npm/l/rozenite?style=for-the-badge
[license]: https://github.com/callstackincubator/rozenite/blob/main/LICENSE
[npm-downloads-badge]: https://img.shields.io/npm/dm/rozenite?style=for-the-badge
[npm-downloads]: https://www.npmjs.com/package/@rozenite/expo-atlas-plugin
[prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
[prs-welcome]: https://github.com/callstackincubator/rozenite/blob/main/CONTRIBUTING.md
[chat-badge]: https://img.shields.io/discord/426714625279524876.svg?style=for-the-badge
[chat]: https://discord.gg/xgGt7KAjxv
npm package: @rozenite/runtime
Description: Rozenite runtime for React Native DevTools.
Author: Szymon Chmal
Latest version: 1.7.0

![rozenite-banner](https://www.rozenite.dev/rozenite-banner.jpg)

### A runtime framework for orchestrating React Native DevTools plugins in the browser environment.

[![mit licence][license-badge]][license] [![npm downloads][npm-downloads-badge]][npm-downloads] [![Chat][chat-badge]][chat] [![PRs Welcome][prs-welcome-badge]][prs-welcome]

The Rozenite Runtime is the core framework that orchestrates React Native DevTools plugins in the browser environment. It handles plugin discovery, loading, panel creation, and integration with the React Native DevTools frontend. The runtime provides the foundation for seamless plugin execution and communication.

## Features

- **Plugin Orchestration**: Manages the lifecycle of multiple DevTools plugins
- **Panel Integration**: Seamlessly integrates plugin panels into React Native DevTools
- **Automatic Discovery**: Discovers and loads installed plugins from the global namespace
- **Development Mode**: Hot-reload support for plugin development
- **Error Handling**: Robust error handling and recovery mechanisms
- **Manifest Loading**: Dynamic loading of plugin manifests and configurations
- **Iframe Management**: Secure iframe-based plugin isolation
- **Message Routing**: Handles communication between plugins and DevTools

## Installation

The runtime is automatically included with the Rozenite Metro plugin and doesn't require separate installation. It's loaded as part of the DevTools frontend integration.

## Made with ❤️ at Callstack

`rozenite` is an open source project and will always remain free to use. If you think it's cool, please star it 🌟.

[Callstack][callstack-readme-with-love] is a group of React and React Native geeks, contact us at [hello@callstack.com](mailto:hello@callstack.com) if you need any help with these or just want to say hi!

Like the project? ⚛️ [Join the team](https://callstack.com/careers/?utm_campaign=Senior_RN&utm_source=github&utm_medium=readme) who does amazing stuff for clients and drives React Native Open Source! 🔥

[callstack-readme-with-love]: https://callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=rozenite&utm_term=readme-with-love
[license-badge]: https://img.shields.io/npm/l/rozenite?style=for-the-badge
[license]: https://github.com/callstackincubator/rozenite/blob/main/LICENSE
[npm-downloads-badge]: https://img.shields.io/npm/dm/rozenite?style=for-the-badge
[npm-downloads]: https://www.npmjs.com/package/@rozenite/runtime
[prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
[prs-welcome]: https://github.com/callstackincubator/rozenite/blob/main/CONTRIBUTING.md
[chat-badge]: https://img.shields.io/discord/426714625279524876.svg?style=for-the-badge
[chat]: https://discord.gg/xgGt7KAjxv
npm package: @rozenite/sqlite-plugin
Description: SQLite inspector for Rozenite.
Latest version: 1.7.0

![rozenite-banner](https://www.rozenite.dev/rozenite-banner.jpg)

### A Rozenite plugin for inspecting SQLite databases in React Native DevTools.

The SQLite Plugin provides a query-first inspector for registered SQLite databases. It ships with an `expo-sqlite` adapter and supports custom adapters for any SQLite-like library that can execute ordered SQL statements and return normalized metadata for each statement.

![SQLite Plugin](https://rozenite.dev/sqlite-plugin.png)

## Installation

```bash
npm install @rozenite/sqlite-plugin
```

Optional peer for the built-in Expo adapter:

```bash
npm install expo-sqlite
```

## Usage

```ts
import * as SQLite from 'expo-sqlite';
import {
  createExpoSqliteAdapter,
  useRozeniteSqlitePlugin,
} from '@rozenite/sqlite-plugin';

const adapters = __DEV__
  ? [
      createExpoSqliteAdapter({
        adapterName: 'Expo SQLite',
        databases: {
          app: {
            name: 'app.db',
            database: SQLite.openDatabaseSync('app.db'),
          },
          analytics: {
            name: 'analytics.db',
            database: SQLite.openDatabaseSync('analytics.db'),
          },
        },
      }),
    ]
  : [];

function App() {
  useRozeniteSqlitePlugin({ adapters });

  return <YourApp />;
}
```

## Custom adapters

You can support any SQLite-like library by normalizing its statement execution API:

```ts
import { createSqliteAdapter } from '@rozenite/sqlite-plugin';

const adapters = [
  createSqliteAdapter({
    adapterName: 'My SQLite Driver',
    databases: {
      main: {
        name: 'main.db',
        executeStatements: async (statements) => {
          const results = [];

          for (const statement of statements) {
            const result = await driver.query(statement.sql, statement.params);

            results.push({
              rows: result.rows,
              columns: result.columns,
              metadata: {
                statementType: result.statementType,
                rowCount: result.rows.length,
                changes: result.changes,
                lastInsertRowId: result.lastInsertRowId,
                durationMs: result.durationMs,
              },
            });
          }

          return results;
        },
      },
    },
  }),
];
```

## Notes

- Register adapters in development only. The hook no-ops in production, but your app-level database setup should still stay behind `__DEV__`.
- The SQL editor executes multi-statement scripts in order and stops on the first error.
- Custom adapters receive the full ordered statement array for scripts. To preserve per-statement failure details, throw an error enriched with `completedResults` and `failedStatementIndex`.
- Explicit `BEGIN`, `COMMIT`, and `ROLLBACK` statements are preserved as written. The plugin does not wrap scripts in an implicit transaction.
- The UI derives tables, schema, and browse views from SQL and `PRAGMA` queries.
- Database display names are shown in the panel; opaque IDs are generated internally.
npm package: @rozenite/storage-plugin
Description: Generic Storage Inspector for Rozenite.
Latest version: 1.7.0

![rozenite-banner](https://www.rozenite.dev/rozenite-banner.jpg)

### A Rozenite plugin for inspecting multiple storage backends in React Native DevTools.

The Storage Plugin provides a single inspector for sync and async storages, including MMKV, AsyncStorage and Expo SecureStore via adapters.

## Installation

```bash
npm install @rozenite/storage-plugin
```

Optional peers depending on adapters you use:

```bash
npm install react-native-mmkv @react-native-async-storage/async-storage expo-secure-store
```

## Usage

```ts
import {
  createAsyncStorageAdapter,
  createMMKVStorageAdapter,
  createExpoSecureStorageAdapter,
  useRozeniteStoragePlugin,
} from '@rozenite/storage-plugin';

const storages = [
  createMMKVStorageAdapter({
    storages: {
      user: userStorage,
      cache: cacheStorage,
    },
  }),
  createAsyncStorageAdapter({
    storage: AsyncStorage,
  }),
  createExpoSecureStorageAdapter({
    storage: SecureStore,
    keys: ['token', 'session'],
  }),
];

useRozeniteStoragePlugin({ storages });
```

### AsyncStorage v2 and v3

`createAsyncStorageAdapter` supports both:

```ts
// v2 style: single storage object
createAsyncStorageAdapter({
  storage: AsyncStorage,
});

// v3 style: named storage instances
createAsyncStorageAdapter({
  storages: {
    auth: authStorageInstance,
    cache: {
      storage: cacheStorageInstance,
      name: 'Cache Instance',
    },
  },
});
```

`createExpoAsyncStorageAdapter` is still exported as a backward-compatible alias.

## Notes

- Unsupported value types are disabled in UI create/edit flows.
- Type support is enforced in UI, runtime and Agent tools.
- Storages without subscriptions automatically use internal polling updates.
- Per-storage blacklists are supported through adapter configuration.