open-index/open-npm huggingface dataset:
npm package: @storix-js/core
Description: Framework-agnostic state management core for Storix.
Latest version: 0.1.1

# @storix-js/core

Framework-agnostic state management core for Storix.

## Install

```bash
npm install @storix-js/core
```

## What it includes

- `createStorix()` for isolated store instances
- `defineStore()` with `state`, `getters`, `actions`, and `modules`
- `definePlugin()` for lifecycle plugins
- `createStoreManagerUI()` for the in-page visual inspector
- `createExternalStoreBridge()` for integrating external stores

## Quick start

```ts
import { createStorix } from '@storix-js/core';

const storix = createStorix({ namespace: 'app' });

export const useCounterStore = storix.defineStore('counter', {
  state: () => ({ count: 0 }),
  getters: {
    doubled: (state) => state.count * 2
  },
  actions: {
    increment() {
      this.count = this.count + 1;
    }
  }
});
```

Add plugins and adapters from the other `@storix-js/*` packages as needed.
npm package: @storix-js/devtools
Description: Mutation event buffer plugin for Storix.
Latest version: 0.1.2

# @storix-js/devtools

Mutation event buffer plugin for Storix.

## Install

```bash
npm install @storix-js/core @storix-js/devtools
```

## Usage

```ts
import { createStorix } from '@storix-js/core';
import { devtoolsPlugin } from '@storix-js/devtools';

const storix = createStorix({
  plugins: [devtoolsPlugin()]
});
```

When enabled in the browser, events are exposed on `window.__STORIX_DEVTOOLS__`.

A richer serializable bridge state is also exposed on `window.__STORIX_DEVTOOLS_STATE__`:

- `stores`: current store registry with `id`, `scopeId`, `namespace`, and `snapshot`
- `events`: mutation buffer with timestamps and payloads
npm package: @storix-js/mfe
Description: Same-page micro frontend bridge plugin for Storix.
Latest version: 0.1.1

# @storix-js/mfe

Same-page micro frontend bridge plugin for Storix.

## Install

```bash
npm install @storix-js/core @storix-js/mfe
```

## Usage

```ts
import { createStorix } from '@storix-js/core';
import { mfePlugin } from '@storix-js/mfe';

const storix = createStorix({
  plugins: [
    mfePlugin({ mfeId: 'checkout-mfe', namespaces: ['shell-app'] })
  ]
});
```

This plugin uses `CustomEvent` so separately loaded bundles on the same page can exchange store mutations.
npm package: @storix-js/persist
Description: Persistence plugin for Storix with `localStorage` and `indexedDB` backends.
Latest version: 0.1.1

# @storix-js/persist

Persistence plugin for Storix with `localStorage` and `indexedDB` backends.

## Install

```bash
npm install @storix-js/core @storix-js/persist
```

## Usage

```ts
import { createStorix } from '@storix-js/core';
import { persistPlugin } from '@storix-js/persist';

const storix = createStorix({
  plugins: [
    persistPlugin({ storage: 'localStorage', debounce: 100 })
  ]
});
```

Use `storage: 'indexedDB'` for larger or more durable client-side state.
npm package: @storix-js/react
Description: React adapter for Storix using `useSyncExternalStore`.
Latest version: 0.1.1

# @storix-js/react

React adapter for Storix using `useSyncExternalStore`.

## Install

```bash
npm install @storix-js/core @storix-js/react react
```

## Usage

```tsx
import { useStore } from '@storix-js/react';
import { useCounterStore } from './store';

export function Counter() {
  const counter = useStore(useCounterStore);
  return <button onClick={() => counter.increment()}>{counter.count}</button>;
}
```

This adapter subscribes React components to Storix updates with React 18-compatible semantics.
npm package: @storix-js/svelte
Description: Svelte adapter for Storix.
Latest version: 0.1.1

# @storix-js/svelte

Svelte adapter for Storix.

## Install

```bash
npm install @storix-js/core @storix-js/svelte
```

## Usage

```ts
import { toSvelteStore } from '@storix-js/svelte';
import { useCounterStore } from './store';

export const counter = toSvelteStore(useCounterStore);
```

`toSvelteStore()` exposes a Svelte-readable store wrapper so you can use `$counter` in components.
npm package: @storix-js/sync
Description: Cross-tab synchronization plugin for Storix.
Latest version: 0.1.2

# @storix-js/sync

Cross-tab synchronization plugin for Storix.

## Install

```bash
npm install @storix-js/core @storix-js/sync
```

## Usage

```ts
import { createStorix } from '@storix-js/core';
import { syncPlugin } from '@storix-js/sync';

const storix = createStorix({
  plugins: [syncPlugin({ debounce: 16, namespaces: ['shell-app'] })]
});
```

The plugin uses `BroadcastChannel` when available and falls back to the `storage` event.
npm package: @storix-js/vanilla
Description: Vanilla JavaScript helpers for Storix.
Latest version: 0.1.1

# @storix-js/vanilla

Vanilla JavaScript helpers for Storix.

## Install

```bash
npm install @storix-js/core @storix-js/vanilla
```

## Usage

```ts
import { subscribe } from '@storix-js/vanilla';
import { useCounterStore } from './store';

const counter = useCounterStore();
const stop = subscribe(counter, () => {
  console.log(counter.count);
});
```

Use this package when you want a tiny helper layer over direct `$subscribe()` access.
npm package: @storix-js/vue
Description: Vue 3 adapter for Storix.
Latest version: 0.1.1

# @storix-js/vue

Vue 3 adapter for Storix.

## Install

```bash
npm install @storix-js/core @storix-js/vue vue
```

## Usage

```ts
import { useStore } from '@storix-js/vue';
import { useCounterStore } from './store';

const counter = useStore(useCounterStore);
```

The adapter subscribes inside the active Vue effect scope and invalidates through internal version tracking.
npm package: @storix-js/vuex
Description: Vuex bridge helpers for Storix.
Latest version: 0.1.3

# @storix-js/vuex

Vuex bridge helpers for Storix.

## Install

```bash
npm install @storix-js/core @storix-js/vuex
```

## Usage

```ts
import { createVuexBridge, applyVuexPatchMutation } from '@storix-js/vuex';

const bridge = createVuexBridge({
  store: useAppStore(),
  vuex: vuexStore,
  mutationType: 'storix/APPLY_PATCH',
  immutable: true,
  outboundRoutes: {
    todos: {
      mode: 'dispatch',
      type: 'syncTodosFromStorix',
      mapPayload: ({ storixSnapshot }) => storixSnapshot.todos
    },
    selectedId: {
      mode: 'commit',
      type: 'SET_SELECTED_ID',
      mapPayload: ({ storixSnapshot }) => storixSnapshot.selectedId
    }
  }
});
```

## v1 routing support

`createVuexBridge()` supports a minimal v1 routing model for Storix -> Vuex writes:

- default patch mode via `mutationType`
- per-key outbound routes with `patch`, `commit`, `dispatch`, or `custom`
- optional bridge-echo suppression via `suppressBridgeEcho`

This keeps simple integrations patch-based while allowing special keys to flow through Vuex business logic.

Use `applyVuexPatchMutation()` inside your Vuex mutation to apply the incoming patch payload.