open-index/open-npm huggingface dataset:
npm package: @mixpeek/grafana
Description: Grafana integration for Mixpeek — dashboard provisioning, annotations, and Prometheus metric export
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/grafana

Grafana integration for Mixpeek — dashboard provisioning, annotations, and Prometheus metric export

## Installation

```bash
npm install @mixpeek/grafana
```

## Quick Start

```js
import prometheusExporter from '@mixpeek/grafana';

const instance = prometheusExporter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### PrometheusExporter

Exports Mixpeek metrics in Prometheus format for Grafana consumption

```js
import { createPrometheusExporter } from '@mixpeek/grafana';

const prometheusExporter = createPrometheusExporter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### DashboardProvisioner

Generates and provisions Grafana dashboards for Mixpeek monitoring

```js
import { createDashboardProvisioner } from '@mixpeek/grafana';

const dashboardProvisioner = createDashboardProvisioner({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### AnnotationProvider

Provides Grafana annotations for Mixpeek enrichment events

```js
import { createAnnotationProvider } from '@mixpeek/grafana';

const annotationProvider = createAnnotationProvider({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/huggingface
Description: Hugging Face integration for Mixpeek — model bridging, dataset sync, and pipeline adaptation
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/huggingface

Hugging Face integration for Mixpeek — model bridging, dataset sync, and pipeline adaptation

## Installation

```bash
npm install @mixpeek/huggingface @huggingface/inference
```

## Quick Start

```js
import modelBridge from '@mixpeek/huggingface';

const instance = modelBridge({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### ModelBridge

Bridges Hugging Face model inference with Mixpeek enrichment pipelines

```js
import { createModelBridge } from '@mixpeek/huggingface';

const modelBridge = createModelBridge({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### DatasetSync

Syncs Mixpeek collections with Hugging Face datasets for training/evaluation

```js
import { createDatasetSync } from '@mixpeek/huggingface';

const datasetSync = createDatasetSync({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### PipelineAdapter

Adapts Hugging Face pipeline outputs into Mixpeek enrichment format

```js
import { createPipelineAdapter } from '@mixpeek/huggingface';

const pipelineAdapter = createPipelineAdapter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/kafka
Description: Apache Kafka integration for Mixpeek — consume events, produce enrichment results, and transform messages
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/kafka

Apache Kafka integration for Mixpeek — consume events, produce enrichment results, and transform messages

## Installation

```bash
npm install @mixpeek/kafka kafkajs
```

## Quick Start

```js
import kafkaConsumer from '@mixpeek/kafka';

const instance = kafkaConsumer({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### KafkaConsumer

Consumes Kafka messages and triggers Mixpeek enrichment for each event

```js
import { createKafkaConsumer } from '@mixpeek/kafka';

const kafkaConsumer = createKafkaConsumer({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### KafkaProducer

Produces Mixpeek enrichment results to Kafka output topics

```js
import { createKafkaProducer } from '@mixpeek/kafka';

const kafkaProducer = createKafkaProducer({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### MessageTransformer

Transforms Kafka messages to/from Mixpeek enrichment format with schema support

```js
import { createMessageTransformer } from '@mixpeek/kafka';

const messageTransformer = createMessageTransformer({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/langchain
Description: LangChain integration for Mixpeek — retriever, tool, and document loader for LLM-powered applications
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/langchain

LangChain integration for Mixpeek — retriever, tool, and document loader for LLM-powered applications

## Installation

```bash
npm install @mixpeek/langchain langchain
```

## Quick Start

```js
import mixpeekRetriever from '@mixpeek/langchain';

const instance = mixpeekRetriever({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### MixpeekRetriever

LangChain BaseRetriever implementation backed by Mixpeek multimodal search

```js
import { createMixpeekRetriever } from '@mixpeek/langchain';

const mixpeekRetriever = createMixpeekRetriever({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### MixpeekTool

LangChain Tool for agents to search and enrich content via Mixpeek

```js
import { createMixpeekTool } from '@mixpeek/langchain';

const mixpeekTool = createMixpeekTool({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### MixpeekDocumentLoader

LangChain DocumentLoader that loads and enriches documents from Mixpeek collections

```js
import { createMixpeekDocumentLoader } from '@mixpeek/langchain';

const mixpeekDocumentLoader = createMixpeekDocumentLoader({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/linear-cli
Description: A CLI tool for Linear
Latest version: 0.1.1

![npm](https://img.shields.io/npm/v/@mixpeek/linear-cli)
![downloads](https://img.shields.io/npm/dm/@mixpeek/linear-cli)
![node](https://img.shields.io/node/v/@mixpeek/linear-cli)

WIP

# Linear CLI

A modern, user-friendly CLI client for [Linear](https://linear.app/) built with TypeScript. Uses Linear's [Typescript SDK](https://github.com/linear/linear/tree/master/packages/sdk). This CLI provides an improved developer experience for interacting with Linear's API.

![Screenshot of @mixpeek/linear-cli running the 'issues list' command](./assets/screenshot.png)

## Features

- Modern TypeScript implementation
- Interactive CLI with beautiful UI using Ink
- Linear API support via @linear/sdk
- Type-safe command handling
- Modern development tooling

## Prerequisites

- Node.js >= 18.0.0
- npm or yarn
- Linear API key

## Installation

```bash
npm install -g @mixpeek/linear-cli
# or
yarn global add @mixpeek/linear-cli
```

## Setup

To use, you must set up a 'Personal API Key' in your Linear account, here: https://linear.app/mixpeek/settings/account/security

```bash
# Initialize the CLI with an API key
linear-cli init
```

## Usage

```bash
# List all issues
linear-cli issues list

# Create a new issue interactively
linear-cli issues create -i 

# View issue details
linear-cli issues view ISSUE-123

```

## Development Setup

1. Clone the repository:
```bash
git clone https://github.com/mixpeek/linear-cli.git
cd linear-cli
```

2. Install dependencies:
```bash
npm install
# or
yarn install
```

3. Build the project:
```bash
npm run build
# or
yarn build
```

4. Link the package for development:
```bash
npm link
# or
yarn link
```

## Available Scripts

- `npm run build` - Build the project
- `npm run dev` - Run in development mode with watch
- `npm run dev:run` - Run in development mode with watch and execute
- `npm run test` - Run tests
- `npm run test:coverage` - Run tests with coverage
- `npm run lint` - Run ESLint


## Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License.
npm package: @mixpeek/llamaindex
Description: LlamaIndex integration for Mixpeek — reader, retriever, and tool spec for RAG applications
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/llamaindex

LlamaIndex integration for Mixpeek — reader, retriever, and tool spec for RAG applications

## Installation

```bash
npm install @mixpeek/llamaindex llamaindex
```

## Quick Start

```js
import mixpeekReader from '@mixpeek/llamaindex';

const instance = mixpeekReader({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### MixpeekReader

LlamaIndex BaseReader that reads documents from Mixpeek collections

```js
import { createMixpeekReader } from '@mixpeek/llamaindex';

const mixpeekReader = createMixpeekReader({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### MixpeekRetriever

LlamaIndex BaseRetriever backed by Mixpeek multimodal search

```js
import { createMixpeekRetriever } from '@mixpeek/llamaindex';

const mixpeekRetriever = createMixpeekRetriever({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### MixpeekToolSpec

LlamaIndex ToolSpec providing Mixpeek search and enrichment capabilities to agents

```js
import { createMixpeekToolSpec } from '@mixpeek/llamaindex';

const mixpeekToolSpec = createMixpeekToolSpec({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/mcp
Description: Mixpeek MCP server launcher (Node wrapper for Python stdio server)
Latest version: 0.1.0

## Mixpeek MCP Server (Python)

A lightweight, production-friendly Model Context Protocol (MCP) server for Mixpeek that:

- Auto-loads Mixpeek's OpenAPI spec and exposes endpoints as MCP tools
- Supports local and hosted use (bring-your-own API key)
- Injects `Authorization` and `X-Namespace` headers
- Includes rate limits, timeouts, and redacted logs
- Ships with Docker and simple configuration

### Quickstart

1) Install

```bash
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
```

2) Configure (env or your MCP client secret store)

```bash
cp env.sample .env
# edit as needed
```

Env vars:

- `MIXPEEK_API_KEY`: Your Mixpeek API key (optional if endpoints don't require auth)
- `MIXPEEK_API_BASE`: Default `https://api.mixpeek.com` (or `https://server-xb24.onrender.com` for testing)
- `MIXPEEK_OPENAPI_URL`: Defaults to `<API_BASE>/openapi.json` (or `/docs/openapi.json`)
- `MIXPEEK_NAMESPACE`: Optional namespace value to send via `X-Namespace`
- `MCP_RATE_MAX_CALLS`: Default `20` per `MCP_RATE_PER_SECONDS`
- `MCP_RATE_PER_SECONDS`: Default `10`
- `MCP_CONNECT_TIMEOUT`: Default `5`
- `MCP_READ_TIMEOUT`: Default `30`

3) Run locally (stdio)

```bash
python server.py
```

Your MCP client (e.g., Claude Desktop) can attach to this server via stdio.

### Docker

```bash
docker build -t mixpeek-mcp:latest .
docker run --rm -it \
  -e MIXPEEK_API_KEY=sk_... \
  -e MIXPEEK_NAMESPACE=your_namespace \
  mixpeek-mcp:latest
```

### How it works

- Loads OpenAPI spec and maps GET/POST JSON endpoints to tools using `operationId`
- Tool arguments accept top-level query parameters or a `query`/`body` envelope
- Forwards requests to Mixpeek with configured headers
- Provides small allowlist (configurable) and redacts secrets in logs

### References

- Mixpeek docs: `https://docs.mixpeek.com/overview/introduction`
- Mixpeek OpenAPI: `https://server-xb24.onrender.com/docs/openapi.json`

### Notes

- For production hosting, front with HTTPS, add SSO/session issuance, per-tenant rate limits, and audit logs without bodies/headers. Keep the local stdio server as the default, hosted as optional.
npm package: @mixpeek/openai
Description: OpenAI integration for Mixpeek — embedding bridge, function calling adapter, and assistant tools
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/openai

OpenAI integration for Mixpeek — embedding bridge, function calling adapter, and assistant tools

## Installation

```bash
npm install @mixpeek/openai openai
```

## Quick Start

```js
import embeddingBridge from '@mixpeek/openai';

const instance = embeddingBridge({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### EmbeddingBridge

Bridges OpenAI embeddings with Mixpeek vector storage for hybrid search

```js
import { createEmbeddingBridge } from '@mixpeek/openai';

const embeddingBridge = createEmbeddingBridge({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### FunctionCallingAdapter

Provides Mixpeek search/enrichment as OpenAI function calling tools

```js
import { createFunctionCallingAdapter } from '@mixpeek/openai';

const functionCallingAdapter = createFunctionCallingAdapter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### AssistantTool

OpenAI Assistants API tool that provides Mixpeek multimodal search capabilities

```js
import { createAssistantTool } from '@mixpeek/openai';

const assistantTool = createAssistantTool({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/pagerduty
Description: PagerDuty integration for Mixpeek — incident management, alert routing, and health monitoring
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/pagerduty

PagerDuty integration for Mixpeek — incident management, alert routing, and health monitoring

## Installation

```bash
npm install @mixpeek/pagerduty
```

## Quick Start

```js
import alertManager from '@mixpeek/pagerduty';

const instance = alertManager({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### AlertManager

Manages PagerDuty alerts based on Mixpeek enrichment pipeline status

```js
import { createAlertManager } from '@mixpeek/pagerduty';

const alertManager = createAlertManager({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### IncidentFormatter

Formats Mixpeek errors and degradations into PagerDuty incident payloads

```js
import { createIncidentFormatter } from '@mixpeek/pagerduty';

const incidentFormatter = createIncidentFormatter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### HealthChecker

Periodic health checks of Mixpeek API with PagerDuty alerting

```js
import { createHealthChecker } from '@mixpeek/pagerduty';

const healthChecker = createHealthChecker({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/prometheus
Description: Prometheus metrics exporter for Mixpeek — expose enrichment metrics, latency histograms, and custom collectors
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/prometheus

Prometheus metrics exporter for Mixpeek — expose enrichment metrics, latency histograms, and custom collectors

## Installation

```bash
npm install @mixpeek/prometheus prom-client
```

## Quick Start

```js
import metricsExporter from '@mixpeek/prometheus';

const instance = metricsExporter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### MetricsExporter

Exports Mixpeek enrichment metrics as Prometheus metrics (counters, histograms, gauges)

```js
import { createMetricsExporter } from '@mixpeek/prometheus';

const metricsExporter = createMetricsExporter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### CollectorRegistry

Manages custom Prometheus collectors for Mixpeek pipeline metrics

```js
import { createCollectorRegistry } from '@mixpeek/prometheus';

const collectorRegistry = createCollectorRegistry({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### AlertRules

Generates Prometheus alerting rules based on Mixpeek SLOs

```js
import { createAlertRules } from '@mixpeek/prometheus';

const alertRules = createAlertRules({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/sanity
Description: Sanity.io integration for Mixpeek — webhook handling, document enrichment, and GROQ-powered queries
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/sanity

Sanity.io integration for Mixpeek — webhook handling, document enrichment, and GROQ-powered queries

## Installation

```bash
npm install @mixpeek/sanity @sanity/client
```

## Quick Start

```js
import webhookHandler from '@mixpeek/sanity';

const instance = webhookHandler({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### WebhookHandler

Handles Sanity GROQ-powered webhooks and triggers Mixpeek enrichment

```js
import { createWebhookHandler } from '@mixpeek/sanity';

const webhookHandler = createWebhookHandler({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### DocumentEnricher

Enriches Sanity documents with Mixpeek multimodal analysis stored in custom fields

```js
import { createDocumentEnricher } from '@mixpeek/sanity';

const documentEnricher = createDocumentEnricher({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### SanityClient

Sanity client wrapper for reading/writing enrichment data via GROQ and mutations

```js
import { createSanityClient } from '@mixpeek/sanity';

const sanityClient = createSanityClient({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/sentry
Description: Sentry integration for Mixpeek — error tracking, performance monitoring, and enrichment pipeline observability
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/sentry

Sentry integration for Mixpeek — error tracking, performance monitoring, and enrichment pipeline observability

## Installation

```bash
npm install @mixpeek/sentry @sentry/node
```

## Quick Start

```js
import errorReporter from '@mixpeek/sentry';

const instance = errorReporter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### ErrorReporter

Reports Mixpeek enrichment errors to Sentry with full context

```js
import { createErrorReporter } from '@mixpeek/sentry';

const errorReporter = createErrorReporter({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### PerformanceMonitor

Monitors Mixpeek enrichment performance and reports to Sentry

```js
import { createPerformanceMonitor } from '@mixpeek/sentry';

const performanceMonitor = createPerformanceMonitor({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### MixpeekIntegration

Sentry SDK integration class for automatic Mixpeek instrumentation

```js
import { createMixpeekIntegration } from '@mixpeek/sentry';

const mixpeekIntegration = createMixpeekIntegration({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/shopify
Description: Shopify integration for Mixpeek — webhook handling, product enrichment, and Admin API integration
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/shopify

Shopify integration for Mixpeek — webhook handling, product enrichment, and Admin API integration

## Installation

```bash
npm install @mixpeek/shopify @shopify/shopify-api
```

## Quick Start

```js
import shopifyWebhook from '@mixpeek/shopify';

const instance = shopifyWebhook({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### ShopifyWebhook

Handles Shopify webhooks (product create/update/delete) and triggers Mixpeek enrichment

```js
import { createShopifyWebhook } from '@mixpeek/shopify';

const shopifyWebhook = createShopifyWebhook({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### ProductEnricher

Enriches Shopify products with Mixpeek multimodal analysis (images, descriptions, metafields)

```js
import { createProductEnricher } from '@mixpeek/shopify';

const productEnricher = createProductEnricher({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### ShopifyAdmin

Shopify Admin API client for fetching products, collections, and writing enrichment results

```js
import { createShopifyAdmin } from '@mixpeek/shopify';

const shopifyAdmin = createShopifyAdmin({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/snowflake
Description: Snowflake integration for Mixpeek — external functions, stream processing, and data enrichment
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/snowflake

Snowflake integration for Mixpeek — external functions, stream processing, and data enrichment

## Installation

```bash
npm install @mixpeek/snowflake snowflake-sdk
```

## Quick Start

```js
import snowflakeClient from '@mixpeek/snowflake';

const instance = snowflakeClient({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### SnowflakeClient

Snowflake client that reads data for Mixpeek enrichment and writes results back

```js
import { createSnowflakeClient } from '@mixpeek/snowflake';

const snowflakeClient = createSnowflakeClient({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### ExternalFunction

Implements Snowflake external function interface for calling Mixpeek from SQL

```js
import { createExternalFunction } from '@mixpeek/snowflake';

const externalFunction = createExternalFunction({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### StreamProcessor

Processes Snowflake streams/tasks to enrich new and changed data via Mixpeek

```js
import { createStreamProcessor } from '@mixpeek/snowflake';

const streamProcessor = createStreamProcessor({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/spark
Description: Apache Spark integration for Mixpeek — UDF transformers, batch processing, and schema mapping
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/spark

Apache Spark integration for Mixpeek — UDF transformers, batch processing, and schema mapping

## Installation

```bash
npm install @mixpeek/spark
```

## Quick Start

```js
import sparkTransformer from '@mixpeek/spark';

const instance = sparkTransformer({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### SparkTransformer

Spark UDF/transformer that applies Mixpeek enrichment to DataFrame columns

```js
import { createSparkTransformer } from '@mixpeek/spark';

const sparkTransformer = createSparkTransformer({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### BatchProcessor

Batch processes Spark DataFrames through Mixpeek with rate limiting and retries

```js
import { createBatchProcessor } from '@mixpeek/spark';

const batchProcessor = createBatchProcessor({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### SchemaMapper

Maps Spark schemas to/from Mixpeek document schemas for seamless data flow

```js
import { createSchemaMapper } from '@mixpeek/spark';

const schemaMapper = createSchemaMapper({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/strapi
Description: Strapi integration for Mixpeek — lifecycle hooks, content enrichment, and plugin configuration
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/strapi

Strapi integration for Mixpeek — lifecycle hooks, content enrichment, and plugin configuration

## Installation

```bash
npm install @mixpeek/strapi
```

## Quick Start

```js
import strapiLifecycle from '@mixpeek/strapi';

const instance = strapiLifecycle({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### StrapiLifecycle

Hooks into Strapi content lifecycle events (beforeCreate, afterUpdate) for enrichment

```js
import { createStrapiLifecycle } from '@mixpeek/strapi';

const strapiLifecycle = createStrapiLifecycle({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### ContentEnricher

Enriches Strapi content types with Mixpeek multimodal analysis

```js
import { createContentEnricher } from '@mixpeek/strapi';

const contentEnricher = createContentEnricher({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### PluginConfig

Strapi plugin configuration and registration for Mixpeek integration

```js
import { createPluginConfig } from '@mixpeek/strapi';

const pluginConfig = createPluginConfig({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixpeek/wordpress
Description: WordPress integration for Mixpeek — REST API handlers, post enrichment, and hook management
Author: Mixpeek
Latest version: 1.0.0

# @mixpeek/wordpress

WordPress integration for Mixpeek — REST API handlers, post enrichment, and hook management

## Installation

```bash
npm install @mixpeek/wordpress
```

## Quick Start

```js
import restApiHandler from '@mixpeek/wordpress';

const instance = restApiHandler({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Modules

### RestApiHandler

Handles WordPress REST API events and triggers Mixpeek enrichment on content changes

```js
import { createRestApiHandler } from '@mixpeek/wordpress';

const restApiHandler = createRestApiHandler({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### PostEnricher

Enriches WordPress posts/pages with Mixpeek analysis and stores as custom fields

```js
import { createPostEnricher } from '@mixpeek/wordpress';

const postEnricher = createPostEnricher({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

### HookManager

Manages WordPress action/filter hooks for automatic Mixpeek enrichment on publish

```js
import { createHookManager } from '@mixpeek/wordpress';

const hookManager = createHookManager({
  apiKey: process.env.MIXPEEK_API_KEY
});
```

## Testing

```bash
npm test              # Unit tests
npm run test:e2e      # End-to-end tests
npm run test:live     # Live API tests (requires MIXPEEK_API_KEY)
npm run test:coverage # Coverage report
```

## License

MIT
npm package: @mixspa/app
Description: This is a library for create multi-spa in one app
Author: Cao Xiaoqi
Latest version: 0.4.2
Deprecated: using @mixspa/core instead

# mixspa-app
mixspa-app is used to define a app that can be load in another spa.

## Current Status:

[![NPM Version](https://img.shields.io/npm/v/@mixspa/app.svg)](https://npmjs.org/package/@mixspa/app)
[![NPM Downloads](https://img.shields.io/npm/dm/@mixspa/app.svg)](https://npmjs.org/package/@mixspa/app)
[![Build Status](https://circleci.com/gh/mixspa/mixspa-app.svg?style=svg)](https://circleci.com/gh/mixspa/mixspa-app)

[![NPM](https://nodei.co/npm/@mixspa/app.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mixspa/app/)

## How to use?

According the following to define a app. The `name` & `render` must exist.

```js
import MixspaApp from '@mixspa/app';

MixspaApp.define({
  tag: 'app-demo', /* This name will be used for tag name */
  init: function(element) {
    /* will be call when custom element has been created */
  },
  render: function(element) {
    let attrName = element.getAttribute('data-name'); //
    /* will be call after custom element has been rendered */
  },
  unmount: function(element) {
    /* will be call when custom element has been removed */
  },
  update: function(element) {
    /* will be call when attribute has been changed */
  }
});
```

The MixspaApp will create a custom element for use.
About more details & the api of parameter `element` please reference here:
[CustomElement](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry)

## License

mixspa-app is released under the [MIT license](https://github.com/mixspa/mixspa-app/blob/master/LICENSE).
npm package: @mixspa/events
Description: A events library for mixspa to implement pub sub
Author: Cao Xiaoqi
Latest version: 0.3.0
Deprecated: using @mixspa/core instead

# Mixspa Events
This is a simple pubsub for mixspa with window custom event. This library only can be used in browser.

## Current Status:

[![NPM Version](https://img.shields.io/npm/v/@mixspa/events.svg)](https://npmjs.org/package/@mixspa/events)
[![NPM Downloads](https://img.shields.io/npm/dm/@mixspa/events.svg)](https://npmjs.org/package/@mixspa/events)
[![Build Status](https://circleci.com/gh/mixspa/mixspa-events.svg?style=svg)](https://circleci.com/gh/mixspa/mixspa-events)

[![NPM](https://nodei.co/npm/@mixspa/events.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mixspa/events/)

## How to use?

```js
import MixspaEvent from 'mixspa-events'
/*
MixspaEvent.on('[namespace]:[module]:[action]': String, callback: Function) : Listener;
*/
let listener = MixspaEvent.on('mixspa:test:update', (message) => {
  console.log(message);
});

/*
MixspaEvent.emit('[namespace]:[module]:[action]': String, message: Object);
*/
MixspaEvent.emit('mixspa:test:update', 'Hello Test');

/*
MixspaEvent.off('[namespace]:[module]:[action]': String, listener: Object);
*/
MixspaEvent.off('mixspa:test:update', listener);
```

## License

mixspa-events is released under the [MIT license](https://github.com/mixspa/mixspa-events/blob/master/LICENSE).
npm package: @mixspa/loader
Description: This is a loader for loader micro site into main site
Author: Cao Xiaoqi
Latest version: 0.4.0
Deprecated: using @mixspa/core instead

# mixspa-loader
Mixspa-Loader is a Loader for loader another spa in current application.

## Current Status:

[![NPM Version](https://img.shields.io/npm/v/@mixspa/loader.svg)](https://npmjs.org/package/@mixspa/loader)
[![NPM Downloads](https://img.shields.io/npm/dm/@mixspa/loader.svg)](https://npmjs.org/package/@mixspa/loader)
[![Build Status](https://circleci.com/gh/mixspa/mixspa-loader.svg?style=svg)](https://circleci.com/gh/mixspa/mixspa-loader)

[![NPM](https://nodei.co/npm/@mixspa/loader.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mixspa/loader/)

## How to use?

There are three ways to load a app.

### 1. Load app from remove site.

**First:** We assume you have a app in remote server, we can use a url to access it. e.g.: `https://www.app-demo.com`

**Second:** We assume you already create a app.json in remote server. e.g.: `https://www.app-demo.com/app.json`

The app.json looks like this:
```js
{
  tag: 'app-demo',
  name: 'AppDemo',
  assets: ['https://www.app-demo.com/app.js', 'https://www.app-demo.com/app.css']
}
```

**Third:** You can use MixspaLoader to load app like this:

```html
<html>
  <body>
    <div id="app-container"></div>
  </body>
</html>
```

```js
import MixspaLoader from '@mixspa/loader';

MixspaLoader.loadApp('AppDemo', 'https://www.app-demo.com/app.json').then(appInfo => {
  let el = document.createElement(appInfo.tag);
  el.attributeOne = 'attribute one';
  document.getElementById('app-container').appendChild(el);
});
```

### 2. Load app from remove site without remote app.json.

You should add app info first when you load app like above

```js
import MixspaLoader from '@mixspa/loader';

MixspaLoader.addAppInfo({
  tag: 'app-demo',
  name: 'AppDemo',
  assets: ['https://www.app-demo.com/app.js', 'https://www.app-demo.com/app.css']
});

MixspaLoader.loadApp('AppDemo', 'https://www.app-demo.com/app.json').then(appInfo => {
  let el = document.createElement(appInfo.tag);
  el.attributeOne = 'attribute one';
  document.getElementById('app-container').appendChild(el);
});
```

### 3. Load a very simple app from remote.

In here, we define the simple app is only have one `js` file.

```js
import MixspaLoader from '@mixspa/loader';

MixspaLoader.loadSimpleApp('https://www.app-simple-demo.com/app.js').then(() => {
  let el = document.createElement('app-simple-demo');
  el.attributeOne = 'attribute one';
  document.getElementById('app-container').appendChild(el);
});
```

NOTE: For simple app, you should provide the `tag name`.


## License

mixspa-loader is released under the [MIT license](https://github.com/mixspa/mixspa-loader/blob/master/LICENSE).
npm package: @mixspa/mixspa-loader
Description: This is a loader for loader micro site into main site
Author: Cao Xiaoqi
Latest version: 0.1.0
Deprecated: using @mixspa/core instead

# mixspa-loader
Mixspa-Loader is a Loader for loader another spa in current application.

## Current Status:

[![NPM Version](https://img.shields.io/npm/v/@mixspa/mixspa-loader.svg)](https://npmjs.org/package/@mixspa/mixspa-loader)
[![NPM Downloads](https://img.shields.io/npm/dm/@mixspa/mixspa-loader.svg)](https://npmjs.org/package/@mixspa/mixspa-loader)
[![Build Status](https://circleci.com/gh/mixspa/mixspa-loader.svg?style=svg)](https://circleci.com/gh/mixspa/mixspa-loader)

[![NPM](https://nodei.co/npm/@mixspa/mixspa-loader.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mixspa/mixspa-loader/)

## Features:

* Support Publish your package to git & npm with ci.
* Support CircleCi for pipeline.
* Support ES7 & ES6 syntax.
* Support ESlint to check the code.
* Support Jest to test your code.
* Support Yarn audit to do security check for dependencies.

## Development:

### Setup

Clone this stencil and replace `@mixspa/mixspa-loader` with your package name.

```
$ git clone git@github.com:mixspa/mixspa-loader.git
```

### Install dependencies

```
$ yarn install
```

### Compile code

```
$ yarn babel
# or run babel in watch mode
$ yarn babel:watch
```

### Generate distribution code

```
$ yarn build
```

### Linting

```
$ yarn lint
```

### Testing

```
$ yarn test
# or run the test in watch mode
$ yarn test:watch
```

### Security check

```
$ yarn audit
```

### Setup CI

* Update the circleci config
* Setup the ci into circleci site.


### Publish your package

```
$ yarn release
```

## License

mixspa-loader is released under the [MIT license](https://github.com/mixspa/mixspa-loader/blob/master/LICENSE).
npm package: @mixspa/preact
Description: This is a tools for mixspa with preact
Author: Cao Xiaoqi
Latest version: 0.1.0

# mixspa-preact
Mixspa-preact is a wrapper for mixspa-core.

## Current Status:

[![NPM Version](https://img.shields.io/npm/v/@mixspa/preact.svg)](https://npmjs.org/package/@mixspa/preact)
[![NPM Downloads](https://img.shields.io/npm/dm/@mixspa/preact.svg)](https://npmjs.org/package/@mixspa/preact)
[![Build Status](https://circleci.com/gh/mixspa/mixspa-preact.svg?style=svg)](https://circleci.com/gh/mixspa/mixspa-preact)

[![NPM](https://nodei.co/npm/@mixspa/preact.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mixspa/preact/)

## What it come from?

Pleas reference here: [mixspa-core](https://github.com/mixspa/mixspa-core)

## Apis for this library

### createApp: create a mixspa app.

```js
import { createApp } from '@mixspa/preact';
import { BrowserRouter } from 'preact-router-dom';
import App from './App';

createApp(
  'app-tag',
  (props) => (
    <BrowserRouter baseName={ props.baseName }>
      <App />
    </BrowserRouter>
  )
);
```

### AppLoader: load a mixspa app.

```js
import { AppLoader } from '@mixspa/preact';

const Loading = () => <div>Loading...</div>

const Content = () => (
  <div>
    <AppLoader appId="appId" loading={ Loading }/>
  </div>
);
```

### EventLink: This link will send a event to event bus.

```js
import { EventLink } from '@mixspa/preact';

const NavBar = () => (
  <div>
    <EventLink to="/menu-a"/>
    <EventLink to="/menu-b"/>
  </div>
);
```

### EventHolder: Receive event and handle url change event.

```js
import preactDOM from 'preact-dom';
import { BrowserRouter } from 'preact-router-dom';
import { Route, Switch } from "preact-router-dom";
import { EventHolder } from '@mixspa/preact';

preactDOM.render(
  <BrowserRouter>
    <EventHolder>
      <Switch>
        <Route path="/test-a"/>
        <Route path="/test-b"/>
      </Switch>
    </EventHolder>
  </BrowserRouter>,
  document.getElementById('app')
);
```

## License

mixspa-preact is released under the [MIT license](https://github.com/mixspa/mixspa-preact/blob/master/LICENSE).
npm package: @mixspa/react
Description: This is a tools for mixspa with react
Author: Cao Xiaoqi
Latest version: 0.6.3

# mixspa-react
Mixspa-React is a wrapper for mixspa-core.

## Current Status:

[![NPM Version](https://img.shields.io/npm/v/@mixspa/react.svg)](https://npmjs.org/package/@mixspa/react)
[![NPM Downloads](https://img.shields.io/npm/dm/@mixspa/react.svg)](https://npmjs.org/package/@mixspa/react)
[![Build Status](https://circleci.com/gh/mixspa/mixspa-react.svg?style=svg)](https://circleci.com/gh/mixspa/mixspa-react)

[![NPM](https://nodei.co/npm/@mixspa/react.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mixspa/react/)

## What it come from?

Pleas reference here: [mixspa-core](https://github.com/mixspa/mixspa-core)

## Apis for this library

### createApp: create a mixspa app.

```js
import { createApp } from '@mixspa/react';
import { BrowserRouter } from 'react-router-dom';
import App from './App';

createApp(
  'app-tag',
  (props) => (
    <BrowserRouter baseName={ props.baseName }>
      <App />
    </BrowserRouter>
  )
);
```

### AppLink: This link will send a event to event bus.

```js
import { AppLink } from '@mixspa/react';

const NavBar = () => (
  <div>
    <AppLink to="/menu-a"/>
    <AppLink to="/menu-b"/>
  </div>
);
```

### AppLoader: load a mixspa app.

```js
import { AppLoader } from '@mixspa/react';

const Loading = () => <div>Loading...</div>

const Content = () => (
  <div>
    <AppLoader appId="appId" renderLoading={ () => <Loading /> }/>
  </div>
);
```

### AppContainer: Receive event and handle url change event.

```js
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
import { Route, Switch } from "react-router-dom";
import { AppContainer } from '@mixspa/react';

ReactDOM.render(
  <BrowserRouter>
    <AppContainer>
      <Switch>
        <Route path="/test-a"/>
        <Route path="/test-b"/>
      </Switch>
    </AppContainer>
  </BrowserRouter>,
  document.getElementById('app')
);
```

## License

mixspa-react is released under the [MIT license](https://github.com/mixspa/mixspa-react/blob/master/LICENSE).
npm package: @mixspa/vue
Description: This is a tools for mixspa with vue
Latest version: 0.6.1

# mixspa-vue
Mixspa-vue is a wrapper for mixspa-core with vue.

## Current Status:

[![NPM Version](https://img.shields.io/npm/v/@mixspa/vue.svg)](https://npmjs.org/package/@mixspa/vue)
[![NPM Downloads](https://img.shields.io/npm/dm/@mixspa/vue.svg)](https://npmjs.org/package/@mixspa/vue)
[![Build Status](https://circleci.com/gh/mixspa/mixspa-vue.svg?style=svg)](https://circleci.com/gh/mixspa/mixspa-vue)

[![NPM](https://nodei.co/npm/@mixspa/vue.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mixspa/vue/)

## What it come from?

Pleas reference here: [mixspa-core](https://github.com/mixspa/mixspa-core)

## Apis for this library

### createApp: create a mixspa app.

```js
import { createApp } from '@mixspa/vue';
import App from './App';

createApp('vue-app', ({ baseurl }) => {
  return {
    render: h => h(App)
  };
});
```

### mixin: Receive event and handle url change event.

```js
import { mixin } from '@mixspa/vue';
import App from './App';
import router from './router';

new Vue({
  mixins: [mixin],
  router: router,
  render: h => h(App, { props: { baseUrl: '' } })
}).$mount('#app');
```

### AppLoader: load a mixspa app.

```vue
<template>
  <app-loader app-id="vue-app" app-props="{}">
    <div v-slot:loading>Loading...</div>
    <div v-slot:fallback>Not found</div>
  </app-loader>
</template>

<script>
import { AppLoader } from '@mixspa/vue'
export default {
  components: {
    'app-loader': AppLoader
  }
}
</script>
```

### AppLink: This link will send a event to event bus.

```vue
<template>
  <app-link to="/vue-app">Vue App</app-link>
</template>

<script>
import { AppLink } from '@mixspa/vue'
export default {
  components: {
    'app-link': AppLink
  }
}
</script>
```

## License

mixspa-vue is released under the [MIT license](https://github.com/mixspa/mixspa-vue/blob/master/LICENSE).
npm package: @mixspa/webpack-plugin
Description: This is a library for generate mixspa app info
Author: Cao Xiaoqi
Latest version: 0.2.0

# mixspa-webpack-plugin
Mixspa-Webpack-Plugin is a plugin for generate app info

## Current Status:

[![NPM Version](https://img.shields.io/npm/v/@mixspa/webpack-plugin.svg)](https://npmjs.org/package/@mixspa/webpack-plugin)
[![NPM Downloads](https://img.shields.io/npm/dm/@mixspa/webpack-plugin.svg)](https://npmjs.org/package/@mixspa/webpack-plugin)
[![Build Status](https://circleci.com/gh/mixspa/mixspa-webpack-plugin.svg?style=svg)](https://circleci.com/gh/mixspa/mixspa-webpack-plugin)

[![NPM](https://nodei.co/npm/@mixspa/webpack-plugin.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@mixspa/webpack-plugin/)

## What it come from?

Pleas reference here: [mixspa-core](https://github.com/mixspa/mixspa-core)

## Install

```sh
  npm i --save-dev @mixspa/webpack-plugin
```

```sh
  yarn add --dev @mixspa/webpack-plugin
```

## Usage this plugin in webpack config

This plugin will generate an app info file for you that includes app basic info and assets. Just add the plugin to your webpack config as follows:

**webpack.config.js**

```js
const MixspaWebpackPlugin = require('@mixspa/webpack-plugin')

module.exports = {
  entry: 'index.js',
  output: {
    path: __dirname + '/dist',
    filename: 'bundle.js'
  },
  plugins: [
    new MixspaWebpackPlugin({
      id: 'mixspa-id',
      tag: 'mixspa-tag',
      filename: 'app.json',
      publicUrl: 'http://www.example.com/dev/'
    })
  ]
}
```

This will generate a file `dist/app.json` as follows:

```json
{
  "id": "mixspa-id",
  "tag": "mixspa-tag",
  "assets": ["http://www.example.com/dev/bundle.js"]
}
```

## Options

You can pass the configuration options with the following values:

|   Name    |   Type   |    Default    | Description  |
|-----------|----------|---------------|--------------|
| id        |  String  | `app-id`      | The id to use for unique id for this mixspa |
| tag       |  String  | `app-tag`     | The tag to use for render this mixspa in html file |
| fileName  |  String  | `app.json`    | The file include all inforamtion of this mixspa |
| publicUrl |  String  | `''`          | The base url for this mixspa assets published to |

## License

mixspa-webpack-plugin is released under the [MIT license](https://github.com/mixspa/mixspa-webpack-plugin/blob/master/LICENSE).
npm package: @mixtint/primer-view-components
Description: ViewComponents of the Primer Design System for OpenProject
Author: GitHub, Inc. && OpenProject GmbH
Latest version: 0.78.0

<h1 align="center">OpenProject's Primer ViewComponents</h1>

<p align="center">Fork of ViewComponents for the Primer Design System used for OpenProject.</p>

_Note: This library is under active pre-1.0 development. Breaking changes are likely in patch releases._

## Contribution

Please have a look at our [Contribution docs](./docs/contributors/README.md) to learn about any ways to contribute as for example

* [Getting started](./docs/contributors/setup.md)
* [Adding a component](./docs/contributors/adding-components.md)
* [Releasing](./docs/contributors/releasing.md)
* [Updating the fork](./docs/contributors/updating-fork.md)
* ...

## CI & Automation

Primer already provides us with a lot of automation and an advanced test setup. In our guide we explain how that works, and what we adapted to our need after the fork.

* [CI](./docs/contributors/ci.md)
* [Testing](./docs/contributors/playwright-testing.md)

## Documentation

Visit [https://primer.style/view_components/](https://primer.style/design/components/) to view the documentation of the Primer ViewComponents.

## License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).