open-index/open-npm huggingface dataset:
npm package: @groundstate/cloudflare
Description: Cloudflare Durable Objects adapter
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/cloudflare

Cloudflare Durable Objects adapter for running @groundstate sync at the edge.

## Installation

```bash
# npm
npm install @groundstate/cloudflare

# yarn
yarn add @groundstate/cloudflare

# pnpm
pnpm add @groundstate/cloudflare
```

## Quick Start

```typescript
// src/index.ts (Cloudflare Worker)
import { GroundstateDurableObject } from '@groundstate/cloudflare';

export { GroundstateDurableObject };

export default {
  async fetch(request: Request, env: Env) {
    const url = new URL(request.url);
    const roomId = url.pathname.split('/')[2]; // e.g., /room/abc

    const id = env.GROUNDSTATE.idFromName(roomId);
    const stub = env.GROUNDSTATE.get(id);
    return stub.fetch(request);
  },
};
```

```toml
# wrangler.toml
[durable_objects]
bindings = [{ name = "GROUNDSTATE", class_name = "GroundstateDurableObject" }]

[[migrations]]
tag = "v1"
new_classes = ["GroundstateDurableObject"]
```

## API Highlights

### Durable Object

- `GroundstateDurableObject` -- A Durable Object class that handles WebSocket connections, CRDT merging, and persistent storage automatically. Each instance represents one collaborative room or document.

### Transport

- `CloudflareTransport` -- Client-side transport that connects to a Groundstate Durable Object endpoint. Use this on the client with `SyncEngine`:

```typescript
import { SyncEngine } from '@groundstate/sync';
import { CloudflareTransport } from '@groundstate/cloudflare';

const engine = new SyncEngine(doc, new CloudflareTransport('https://my-worker.example.com/room/abc'));
```

### Storage

- `CloudflareStorageAdapter` -- Storage adapter backed by Durable Object transactional storage for persistence within the Durable Object lifecycle.

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundstate/crdt
Description: Schema-defined CRDTs with TypeScript inference
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/crdt

Schema-defined CRDTs with full TypeScript inference for building local-first applications.

## Installation

```bash
# npm
npm install @groundstate/crdt

# yarn
yarn add @groundstate/crdt

# pnpm
pnpm add @groundstate/crdt
```

## Quick Start

```typescript
import { Doc, Field, Counter, List, HLC } from '@groundstate/crdt';

// Define a schema-driven CRDT document
const todo = Doc({
  title: Field(''),
  done: Field(false),
  priority: Counter(0),
  tags: List<string>(),
});

// Mutate with automatic conflict-free merging
todo.title = 'Buy groceries';
todo.priority.increment(1);
todo.tags.push('shopping');

// Merge changes from another peer
const remoteTodo = Doc({ title: Field(''), done: Field(false), priority: Counter(0), tags: List<string>() });
remoteTodo.title = 'Buy groceries and snacks';
todo.merge(remoteTodo);
```

## API Highlights

### Clock

- `HLC` -- Hybrid Logical Clock for causally ordered timestamps
- `HLCTimestamp` -- Timestamp type used across all CRDT operations

### CRDT Types

- `LWWRegister` -- Last-writer-wins register for single values
- `PNCounter` -- Positive-negative counter supporting increment/decrement
- `RGAList` -- Replicated growable array for ordered collections
- `LWWMap` -- Last-writer-wins map for key-value data
- `PeriText` -- Rich-text CRDT with inline formatting marks

### Schema

- `Doc` / `Document` -- Create typed CRDT documents from a schema definition
- `DocFactory` -- Factory for producing documents with a shared schema
- `Field` / `Counter` / `List` -- Schema field builders

### Encoding

- `BinaryEncoder` / `BinaryDecoder` -- Compact binary serialization
- `encodeDocument` / `decodeDocument` -- Full document serialization
- `LazyDocument` -- Decode documents on demand for large datasets

### History & Diffing

- `OpLog` -- Append-only operation log
- `UndoManager` -- Undo/redo support for local changes
- `diff` / `applyPatches` -- Compute and apply structural diffs

### Garbage Collection

- `GarbageCollector` -- Reclaim memory from tombstoned operations
- `collectableTombstones` / `gcList` / `gcMap` -- Fine-grained GC helpers

### Relations

- `RefManager` -- Manage document-to-document references with cascade/nullify delete semantics

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundstate/devtools
Description: Developer tools for @groundstate
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/devtools

Developer tools for inspecting, debugging, and monitoring @groundstate CRDT documents.

## Installation

```bash
# npm
npm install @groundstate/devtools

# yarn
yarn add @groundstate/devtools

# pnpm
pnpm add @groundstate/devtools
```

## Quick Start

```typescript
import { DevToolsInspector, OperationStream, NetworkSimulator } from '@groundstate/devtools';
import { Doc, Field } from '@groundstate/crdt';

const doc = Doc({ title: Field(''), body: Field('') });

// Inspect document structure
const inspector = new DevToolsInspector(doc);
const tree = inspector.getTree();
console.log(tree); // Full CRDT metadata for every field

// Stream live operations
const stream = new OperationStream(doc);
stream.on('op', (event) => {
  console.log(`[${event.type}] ${event.path}: ${event.value}`);
});

// Simulate adverse network conditions
const sim = new NetworkSimulator({ latency: 500, packetLoss: 0.1 });
sim.connect(peerA, peerB);
sim.start();
```

## API Highlights

### Inspector

- `DevToolsInspector` -- Deep introspection into document structure and CRDT metadata
- `FieldInfo` / `DocTreeNode` -- Types describing the document tree

### Operations

- `OperationStream` -- Subscribe to a live stream of all CRDT operations
- `OperationEvent` / `OperationFilter` -- Event shape and filtering options

### Network Simulator

- `NetworkSimulator` -- Simulate latency, packet loss, and partitions to test convergence

### Metrics

- `MetricsCollector` -- OpenTelemetry-compatible metrics collection (op rates, merge times, doc sizes)
- `Span` / `MetricPoint` -- Metric types for custom dashboards

### Browser Extension Bridge

- `DevToolsBridge` -- Connect a running app to the Groundstate browser DevTools panel
- `DevToolsHook` -- Global hook for extension discovery
- `DevToolsMessageType` -- Message protocol enum

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundstate/resolve
Description: Conflict detection and resolution
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/resolve

Conflict detection and resolution toolkit with built-in strategies, custom policies, and visual debugging.

## Installation

```bash
# npm
npm install @groundstate/resolve

# yarn
yarn add @groundstate/resolve

# pnpm
pnpm add @groundstate/resolve
```

## Quick Start

```typescript
import { ConflictDetector, lww, custom, PolicyEngine } from '@groundstate/resolve';
import { Doc, Field } from '@groundstate/crdt';

const doc = Doc({ title: Field(''), priority: Field(0) });
const detector = new ConflictDetector(doc);

// Detect conflicts after merge
const conflicts = detector.detect();

// Resolve with built-in strategies
for (const conflict of conflicts) {
  resolveConflict(conflict, lww());
}

// Or define field-level policies
const policy = new PolicyEngine({
  'title': lww(),
  'priority': custom((a, b) => ({ value: Math.max(a.value, b.value) })),
});
policy.resolveAll(conflicts);
```

## API Highlights

### Detection

- `ConflictDetector` -- Detect concurrent edits across merged documents
- `Conflict` / `ConflictType` / `ConflictValue` -- Conflict metadata types

### Strategies

- `lww()` -- Last-writer-wins (by timestamp)
- `pick()` -- Always pick a specific side (local or remote)
- `longest()` -- Keep the longest string value
- `sum()` -- Sum numeric values from both sides
- `union()` -- Union of set/list values
- `custom()` -- Provide your own resolution function
- `resolveConflict()` -- Apply a strategy to a single conflict

### Policies

- `PolicyEngine` -- Map field paths to resolution strategies for automatic bulk resolution

### Visualization & Audit

- `ConflictVisualizer` -- Generate timeline visualizations of divergent edits
- `ConflictAuditLog` -- Record all resolution decisions for compliance or debugging
- `resolve.visualize()` -- Convenience helper for quick conflict visualization

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundstate/server
Description: SQLite-backed server for @groundstate
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/server

SQLite-backed server for @groundstate with built-in sync relay and HTTP middleware.

## Installation

```bash
# npm
npm install @groundstate/server

# yarn
yarn add @groundstate/server

# pnpm
pnpm add @groundstate/server
```

## Quick Start

```typescript
import { groundstateServer, DocumentDatabase } from '@groundstate/server';
import express from 'express';

const app = express();

// Attach Groundstate middleware (handles sync, REST, and WebSocket upgrade)
app.use('/api', groundstateServer({
  database: new DocumentDatabase('./data/groundstate.db'),
  auth: async (req) => {
    // Return a user object or null to reject
    return verifyToken(req.headers.authorization);
  },
}));

app.listen(3000, () => {
  console.log('Groundstate server listening on :3000');
});
```

## API Highlights

### Middleware

- `groundstateServer(options)` -- Express/Connect-compatible middleware that handles:
  - WebSocket upgrade for real-time sync
  - REST endpoints for document CRUD
  - Authentication and authorization hooks
- `ServerOptions` -- Configuration type for database path, auth, CORS, and more

### Database

- `DocumentDatabase` -- SQLite-backed document store with built-in CRDT merge support
  - Stores full operation history for any connected client to catch up
  - Supports compaction to reclaim disk space
  - Handles concurrent writes safely

## Integration

The server works with any `@groundstate/sync` transport on the client side:

```typescript
// Client
import { SyncEngine, WebSocketTransport } from '@groundstate/sync';
const engine = new SyncEngine(doc, new WebSocketTransport('ws://localhost:3000/api'));
```

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundstate/store
Description: Offline-first storage layer
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/store

Offline-first storage layer with pluggable adapters, encryption, migrations, and query support.

## Installation

```bash
# npm
npm install @groundstate/store

# yarn
yarn add @groundstate/store

# pnpm
pnpm add @groundstate/store
```

## Quick Start

```typescript
import { PersistenceEngine, IndexedDBAdapter, EncryptionManager } from '@groundstate/store';
import { Doc, Field } from '@groundstate/crdt';

const doc = Doc({ title: Field(''), body: Field('') });

// Persist to IndexedDB with encryption
const engine = new PersistenceEngine(doc, {
  adapter: new IndexedDBAdapter('my-app'),
  encryption: new EncryptionManager({ key: userKey }),
  autoSave: true,
});

await engine.load();
doc.title = 'Hello, local-first!';
await engine.save();
```

## API Highlights

### Storage Adapters

- `IndexedDBAdapter` -- Browser-based storage using IndexedDB
- `SQLiteAdapter` -- SQLite storage for Node.js, Electron, or mobile
- `MemoryAdapter` -- In-memory adapter for testing
- `FSAdapter` -- File-system adapter for Node.js environments
- `StorageAdapter` -- Interface for building custom adapters

### Persistence

- `PersistenceEngine` -- Manages loading, saving, and auto-persistence lifecycle

### Encryption

- `EncryptionManager` -- At-rest encryption for stored documents

### Compaction & Maintenance

- `CompactionEngine` -- Compact operation history to reduce storage size

### Migrations

- `MigrationEngine` -- Run versioned schema migrations on stored data
- `MigrationTester` -- Test migrations against snapshots before deploying

### Query

- `QueryEngine` -- Query documents by field values with filtering and sorting

### Backup

- `createBackup` / `restoreBackup` -- Export and import full database snapshots

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundstate/svelte
Description: Svelte bindings for @groundstate
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/svelte

Svelte stores for building local-first apps with @groundstate.

## Installation

```bash
# npm
npm install @groundstate/svelte @groundstate/crdt

# yarn
yarn add @groundstate/svelte @groundstate/crdt

# pnpm
pnpm add @groundstate/svelte @groundstate/crdt
```

**Peer dependency:** Svelte 4+

## Quick Start

```svelte
<script lang="ts">
  import { docStore, fieldStore, presenceStore } from '@groundstate/svelte';
  import { Doc, Field, List } from '@groundstate/crdt';

  const schema = { title: Field(''), tags: List<string>() };
  const doc = docStore(Doc(schema), { sync: syncEngine });
  const title = fieldStore(doc, 'title');
  const presence = presenceStore(doc);
</script>

<div>
  <input bind:value={$title} />
  <p>{$presence.peers.length} peer(s) online</p>
</div>
```

## API Highlights

### Stores

- `docStore(doc, options?)` -- Writable Svelte store for the full document
- `fieldStore(doc, path)` -- Writable store bound to a single field
- `presenceStore(doc)` -- Readable store tracking peer presence (cursors, selections, names)
- `syncStatusStore(doc)` -- Readable store monitoring sync connection state and progress
- `conflictsStore(doc)` -- Readable store exposing detected conflicts for manual resolution

### Types

- `PeerPresence` -- Shape of a single peer's presence data
- `SyncState` / `SyncStatus` -- Sync connection and progress metadata
- `ConflictEntry` -- Individual conflict descriptor

All stores follow Svelte's standard store contract, so they work with `$`-prefix auto-subscriptions and `bind:value`.

## Usage with SvelteKit

Works in both client and server contexts. For SSR, initialize stores in `+page.ts` or `+layout.ts` loaders and pass them to components:

```typescript
// +page.ts
import { docStore } from '@groundstate/svelte';
import { Doc, Field } from '@groundstate/crdt';

export function load() {
  return { doc: docStore(Doc({ title: Field('') })) };
}
```

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundstate/sync
Description: Pluggable sync engine
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/sync

Pluggable sync engine for real-time and offline collaboration over WebSocket, WebRTC, HTTP, BLE, or filesystem transports.

## Installation

```bash
# npm
npm install @groundstate/sync

# yarn
yarn add @groundstate/sync

# pnpm
pnpm add @groundstate/sync
```

## Quick Start

```typescript
import { SyncEngine, WebSocketTransport, PresenceManager } from '@groundstate/sync';
import { Doc, Field } from '@groundstate/crdt';

const doc = Doc({ title: Field('') });

// Connect via WebSocket
const transport = new WebSocketTransport('wss://sync.example.com/room/abc');
const engine = new SyncEngine(doc, transport);

// Track presence
const presence = new PresenceManager(engine);
presence.setLocal({ cursor: { x: 100, y: 200 }, name: 'Alice' });
presence.on('update', (peers) => {
  console.log('Online peers:', peers);
});

// Start syncing
await engine.start();
```

## API Highlights

### Protocol

- `SyncEngine` -- Core sync protocol handling state vectors and op exchange
- `SelectiveSync` -- Sync only specific document fields or subtrees
- `encodeStateVector` / `decodeStateVector` -- State vector serialization
- `missingFrom` / `mergeStateVectors` -- Compute delta between peers

### Transports

- `WebSocketTransport` -- Persistent connection for real-time sync
- `WebRTCTransport` -- Peer-to-peer sync with no server required
- `HttpTransport` -- Polling-based sync for serverless environments
- `BLETransport` -- Bluetooth Low Energy for nearby device sync
- `FilesystemTransport` -- Sync via shared filesystem (e.g., Dropbox)

### Presence & Status

- `PresenceManager` -- Share ephemeral state (cursors, selections, names)
- `SyncStatusTracker` -- Monitor connection state and sync progress
- `SyncThrottle` -- Rate-limit sync messages with bandwidth awareness

### Auth & Access Control

- `AuthManager` -- Pluggable authentication for sync connections
- `jwtAuthHandler` -- Built-in JWT authentication handler
- `ACLManager` -- Path-based access control rules (read/write/admin)
- `OpValidator` -- Validate incoming operations against schema and ACL

### Server

- `RelayServer` -- Lightweight relay server for WebSocket-based sync

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundstate/vue
Description: Vue bindings for @groundstate
Author: ninjawolff
Latest version: 1.0.0-beta

# @groundstate/vue

Vue 3 composables for building local-first apps with @groundstate.

## Installation

```bash
# npm
npm install @groundstate/vue @groundstate/crdt

# yarn
yarn add @groundstate/vue @groundstate/crdt

# pnpm
pnpm add @groundstate/vue @groundstate/crdt
```

**Peer dependency:** Vue 3+

## Quick Start

```vue
<script setup lang="ts">
import { provideGroundstate, useDoc, useField, usePresence } from '@groundstate/vue';
import { Doc, Field, List } from '@groundstate/crdt';

const schema = { title: Field(''), tags: List<string>() };
provideGroundstate({ doc: Doc(schema), sync: syncEngine });

const doc = useDoc();
const title = useField(doc, 'title');
const { peers } = usePresence();
</script>

<template>
  <div>
    <input v-model="title.value" />
    <p>{{ peers.length }} peer(s) online</p>
  </div>
</template>
```

## API Highlights

### Provider

- `provideGroundstate(options)` -- Provide the document and sync engine to the component tree
- `useGroundstate()` -- Inject the provided context
- `GROUNDSTATE_KEY` -- Injection key for advanced use cases

### Composables

- `useDoc()` -- Reactive reference to the full document
- `useField(doc, path)` -- Reactive reference to a single field
- `usePresence()` -- Track peer presence (cursors, selections, names)
- `useSyncStatus()` -- Monitor sync connection state and progress
- `useConflicts()` -- Access detected conflicts for manual resolution

### Types

- `PeerPresence` -- Shape of a single peer's presence data
- `SyncState` / `SyncStatus` -- Sync connection and progress metadata
- `ConflictEntry` -- Individual conflict descriptor

All composables return Vue `ref` or `computed` values, so they integrate naturally with Vue's reactivity system and template bindings.

## Documentation

See the [full documentation](https://github.com/SmashJaw/groundstate) for complete API reference.

## License

MIT
npm package: @groundworx/foundation
Description: Shared utility functions for Groundworx block and theme systems.
Author: Johanne Courtright
Latest version: 1.0.0

# @groundworx/foundation

Shared breakpoints, SCSS globals, and configuration used across Groundworx WordPress plugins and blocks.

This package provides a centralized source of truth for layout breakpoints and reusable styles.

---

## 📦 Installation

```bash
npm install @groundworx/foundation
```
npm package: @groundworx/icons
Description: Shared icon components for use across Groundworx blocks and plugins.
Author: Johanne Courtright
Latest version: 1.0.1

# @groundworx/icons

Reusable icon components for use across Groundworx WordPress blocks and plugins.

This package exports React-based SVG icons used in navigation, UI toggles, layout tools, and more.

---

## 📦 Installation

```bash
npm install @groundworx/icons
npm package: @groundworx/utils
Description: Shared utility functions for Groundworx block and theme systems.
Author: Johanne Courtright
Latest version: 1.0.3

# @groundworx/utils

Shared utility functions for the Groundworx WordPress block and theme system.

This package includes JavaScript utilities used across Groundworx plugins and blocks, such as breakpoint helpers, React hooks, and layout logic.

---

## 📦 Installation

```bash
npm install @groundworx/utils
npm package: @group_wtf_npm/build_forge
Description: build forge description
Author: wtf_npm
Latest version: 0.1.35

# @group_wtf_npm/build_forge
@group_wtf_npm/build_forge是一个前端开发的构建辅助工具,使用命令为```build_forge```,也可用别名```bf```.

### 局部安装使用
1. 局部安装
    ```bash
    pnpm add @group_wtf_npm/build_forge
    ```
2. 在package.json中配置
    ```json
    {
        ...
        "script":{
            ...
            "share": "build_forge --exec=share",
        }
        ...
    }
    ```
3. 使用
    ```bash
    pnpm share
    ```
### 全局安装使用 
1. 安装
    ```bash
    pnpm add @group_wtf_npm/build_forge -g
    ```
2. 使用
    ```bash
    bf share
    ```
# Docmention
- version (v) 获取版本信息
- help (h) 获取帮助信息
- exec (e) 要运行的指令
  - zip 将文件夹打包为.zip
    - 运行参数
      - name .zip文件的名称
      - version .zip文件的版本号
      - entry 需要构建的目录，多个目录使用```,```分隔,需要保留名称时路径和名称使用```@```分隔，例如：
          ```bash
          bf --exec=zip --entry='./src/dir_1@name_1,./test/dir_2@name_2'
          ```
      - output .zip文件的输出目录
      - branch .zip文件的分支名称
  - share 为指定目录启动一个访问服务
    - 运行参数
      - port 共享服务使用的端口
      - dir 共享服务使用的目录
  - preview 为指定目录启动一个访问服务
    - 运行参数
      - port 预览使用的端口
      - dir 预览目录
  - clean 
    - 环境变量
      - BF_CLEAN_ROOTS 清理根目录，多个用``` , ```分隔
      - BF_CLEAN_NAMES 清理的文件类型枚举,``` , ```分隔
  - env
    - 运行参数
      - command serve|build 服务类型
      - mode build|test|release... 构建模式
      - module_path 下一步导入运行的模块路径 file://...
    - 环境变量
      - ENV_LOAD_EXPAND 拓展额外加载的环境变量目录，多个目录用``` , ```分隔
  - work 工作区构建
    - 运行参数
      - command 构建类型 serve|build
      - mode build构建模式 build|test|release...
      - name 默认启动的项目名列表，使用``` , ```分隔，设置此值时将路过选择步骤
      - yes 是否路过选择，默认false，当设置为true时，将使用上次选择的项目名列表
      - zip 是否构建.zip包
      - git 是自动更新git
      - tag 是否自动设置git tag
      - rc release构建命令下生成的子包版本
    - 环境变量
      - BF_PROJECT_SERVER_FILE 子项目服务启动文件
    - 交互指令
      - help (h) 显示帮助信息
      - url (u) 显示启动的服务列表
      - quit (q) 退出服务
      - restart (s) 重启服务
  - vite vite相关工具链路
    - 运行参数
      - command serve|build 服务类型
      - mode build|test|release... 构建模式
    - 环境变量
      - ENV_LOAD_EXPAND 拓展额外加载的环境变量目录，多个目录用``` , ```分隔
npm package: @group_wtf_npm/loading
Description: loading加载
Author: wtf_npm
Latest version: 1.0.8

# @group_wtf_npm/loading

@group_wtf_npm/loading 是一个简易的 loading 加载组件，支持全局加载动画的显示、隐藏、暂停和恢复操作。

---

### 安装

```bash
pnpm add @group_wtf_npm/loading
```

---

### 使用

#### 基本用法

```js
import initGlobalLoading from '@group_wtf_npm/loading';

// 初始化全局加载管理器
globalThis.loading = initGlobalLoading();

// 显示加载动画
const loadId = loading.show('加载中');

// 模拟异步操作
setTimeout(() => {
    // 隐藏加载动画
    loading.hide(loadId);
}, 3000);
```

#### 在 React 中使用

```jsx
import React from 'react';

function App() {
    const [loading, setLoading] = React.useState(false);

    return (
        <div>
            <button onClick={() => setLoading(true)}>显示加载</button>
            <button onClick={() => setLoading(false)}>隐藏加载</button>
            {loading && <wtf-loading>数据加载中</wtf-loading>}
        </div>
    );
}
```

---

### Docmention

#### initGlobalLoading 配置项

- **tag**: 可选的自定义注册的元素名称，默认为 `wtf-loading`。
- **opts**: 可选的其它配置项：
  - **root**: 全局 loading 挂载的根元素，可以是 DOM 元素或选择器字符串，默认为 `document.body`。
  - **absolute**: 是否绝对定位，默认为 `true`。
  - **mask**: 遮罩层的背景，当可转为数字时表示透明度，否则表示背景色，默认为 `1`。

---

#### GlobalLoading 实例方法

- **show(msg?: string, id?: string, opts?: { absolute?: boolean; mask?: number }): string**  
  显示加载动画。
  - **msg**: 加载提示信息，默认为 `'加载中'`。
  - **id**: 可选的加载 ID，用于标识加载实例。
  - **opts**: 可选的配置选项：
    - **absolute**: 是否绝对定位，默认为 `true`。
    - **mask**: 遮罩层的背景，默认为 `1`。
  - **返回值**: 返回加载的唯一 ID。

- **hide(id: string): void**  
  隐藏指定的加载动画。
  - **id**: 加载的唯一 ID。

- **clear(): void**  
  清除所有加载动画。

- **pause(): void**  
  暂停加载动画（从 DOM 中移除）。

- **resume(): void**  
  恢复加载动画（重新添加到 DOM 中）。

---

### 示例

#### 显示和隐藏加载动画

```js
import initGlobalLoading from '@group_wtf_npm/loading';

globalThis.loading = initGlobalLoading();

// 显示加载动画
const loadId = loading.show('加载中');

// 隐藏加载动画
setTimeout(() => {
    loading.hide(loadId);
}, 2000);
```

#### 暂停和恢复加载动画

```js
// 暂停加载动画
loading.pause();

// 恢复加载动画
loading.resume();
```

#### 自定义配置

```js
globalThis.loading = initGlobalLoading('custom-loading', {
    root: '#app',
    absolute: false,
    mask: 'rgba(0, 0, 0, 0.5)',
});

// 显示自定义加载动画
loading.show('自定义加载动画');
```

---

### 自定义元素 `wtf-loading`

#### 属性

- **absolute**: 是否绝对定位，默认为 `true`。
- **mask**: 遮罩层的背景，默认为 `1`。

#### 示例

```html
<wtf-loading absolute mask="rgba(0, 0, 0, 0.5)">加载中...</wtf-loading>
```

---

### 常见问题

#### 如何自定义加载动画的样式？

可以通过覆盖 `wtf-loading` 的样式来实现自定义：

```css
wtf-loading {
    font-size: 16px;
    color: #333;
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid #ccc;
}
```

#### 如何在多个页面中共享全局加载实例？

可以将 `loading` 挂载到 `globalThis`，这样在任何地方都可以访问：

```js
import initGlobalLoading from '@group_wtf_npm/loading';

globalThis.loading = initGlobalLoading();
```

---

### 版本

- **1.0.2**: 初始版本，支持基本的加载动画功能。

---

### 许可证

MIT License
npm package: @group_wtf_npm/message
Description: message提示
Author: wtf_npm
Latest version: 0.0.5

# @group_wtf_npm/message
@group_wtf_npm/message简易的message提示组件


### 安装
```bash
pnpm add @group_wtf_npm/message
```
### 使用
```js
import initGlobalMessage from '@group_wtf_npm/message';
globalThis.message = initGlobalMessage();

message.info('加载中');
```
### Docmention

#### initGlobalMessage 配置项
- **tag**: 自定义注册的元素名称，默认为 `wtf-message`。
- **opts**: 其它配置项
  - **root**: 全局消息挂载的根元素，可以是 DOM 元素或选择器字符串，默认为 `document.body`。
  - **delay**: 默认提示时长 (秒)

#### GlobalMessage 实例方法

- **show(userOpts: { msg: string, id?: string, tag?: string, type?: string, delay?: number }, callback?: Function): string**  
  显示消息。
  - **userOpts**: 用户配置项
    - **msg**: 消息内容。
    - **id**: 可选的消息唯一 ID。
    - **tag**: 自定义消息元素的标签名称，默认为 `wtf-message`。
    - **type**: 消息类型（如 `success`、`error`、`warn`、`info`）。
    - **delay**: 消息自动隐藏的延迟时间（单位：秒），默认为 `2`。
  - **callback**: 消息隐藏后的回调函数。
  - **返回值**: 返回消息的唯一 ID。

- **hide(id: string): void**  
  隐藏指定的消息。
  - **id**: 消息的唯一 ID。

- **notify(type: string, msg: string, useOpts?: object): Promise<void>**  
  通知消息。
  - **type**: 消息类型（如 `success`、`error`、`warn`、`info`）。
  - **msg**: 消息内容。
  - **useOpts**: 额外的配置项。
  - **返回值**: 返回一个 Promise，在消息隐藏后 resolve。

- **success(msg: string, useOpts?: object): Promise<void>**  
  显示成功消息。
  - **msg**: 消息内容。
  - **useOpts**: 额外的配置项。

- **error(msg: string, useOpts?: object): Promise<void>**  
  显示错误消息。
  - **msg**: 消息内容。
  - **useOpts**: 额外的配置项。

- **warn(msg: string, useOpts?: object): Promise<void>**  
  显示警告消息。
  - **msg**: 消息内容。
  - **useOpts**: 额外的配置项。

- **info(msg: string, useOpts?: object): Promise<void>**  
  显示信息消息。
  - **msg**: 消息内容。
  - **useOpts**: 额外的配置项。

- **getId(num?: number): string**  
  生成唯一 ID。
  - **num**: ID 的长度，默认为 `6`。
  - **返回值**: 返回生成的唯一 ID。

#### 示例

```javascript
import initGlobalMessage from '@group_wtf_npm/message';

// 初始化全局消息管理器
globalThis.message = initGlobalMessage();

// 显示信息消息
message.info('加载中');

// 显示成功消息
message.success('操作成功');

// 显示错误消息
message.error('操作失败');

// 显示警告消息
message.warn('警告信息');

// 自定义消息
message.show({ msg: '自定义消息', type: 'info', delay: 3 }, () => {
    console.log('消息已隐藏');
});
```

### 许可证

MIT License
npm package: @group_wtf_npm/static_output
Description: static_output description
Author: wtf_npm
Latest version: 0.0.2

# @group_wtf_npm/static_output
@group_wtf_npm/static_output是一个前端开发的构建辅助工具,使用命令为```static_output```

### 安装使用
1. 局部安装
    ```bash
    pnpm add @group_wtf_npm/static_output
    ```
2. 在package.json中配置
    ```json
    {
        ...
        "script":{
            ...
            "load:env": "static_output",
        }
        ...
    }
    ```
npm package: @group_wtf_npm/wtf_env
Description: wtf_env description
Author: wtf_npm
Latest version: 0.0.2

# @group_wtf_npm/wtf_env
@group_wtf_npm/wtf_env是一个前端开发的构建辅助工具,使用命令为```wtf_env```

### 局部安装使用
1. 局部安装
    ```bash
    pnpm add @group_wtf_npm/wtf_env
    ```
2. 在package.json中配置
    ```json
    {
        ...
        "script":{
            ...
            "load:env": "wtf_env",
        }
        ...
    }
    ```
### 全局安装使用 
1. 安装
    ```bash
    pnpm add @group_wtf_npm/wtf_env -g
    ```
2. 使用
    ```bash
    wtf_env
    ```
npm package: @group_wtf_npm/wtf_vite
Description: wtf_vite description
Author: wtf_npm
Latest version: 0.0.4

# @group_wtf_npm/wtf_vite
@group_wtf_npm/wtf_vite是一个前端开发的构建辅助工具,使用命令为```wtf_vite```

### 局部安装使用
1. 局部安装
    ```bash
    pnpm add @group_wtf_npm/wtf_vite
    ```
2. 在package.json中配置
    ```json
    {
        ...
        "script":{
            ...
            "load:env": "wtf_vite",
        }
        ...
    }
    ```
### 全局安装使用 
1. 安装
    ```bash
    pnpm add @group_wtf_npm/wtf_vite -g
    ```
2. 使用
    ```bash
    wtf_vite
    ```
npm package: @group_wtf_npm/wtf_zip
Description: wtf_zip description
Author: wtf_npm
Latest version: 0.0.2

# @group_wtf_npm/wtf_zip
@group_wtf_npm/wtf_zip是一个前端开发的构建辅助工具,使用命令为```wtf_zip```

### 局部安装使用
1. 局部安装
    ```bash
    pnpm add @group_wtf_npm/wtf_zip
    ```
2. 在package.json中配置
    ```json
    {
        ...
        "script":{
            ...
            "load:env": "wtf_zip",
        }
        ...
    }
    ```
### 全局安装使用 
1. 安装
    ```bash
    pnpm add @group_wtf_npm/wtf_zip -g
    ```
2. 使用
    ```bash
    wtf_zip
    ```
npm package: @grouparoo/airtable
Description: The Grouparoo airtable Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/airtable

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Airtable](https://www.airtable.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/airtable`.

## Attribution

The airtable icon used in this plugin is from https://seeklogo.com/vector-logo/294322/airtable
npm package: @grouparoo/braze
Description: The Grouparoo braze Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/braze

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Braze](https://www.braze.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/braze`.

## Attribution

The Braze icon used in this plugin is from https://seeklogo.com/vector-logo/321403/braze
npm package: @grouparoo/clickhouse
Description: The Grouparoo ClickHouse plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/clickhouse

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [ClickHouse](https://www.clickhouse.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/clickhouse`.

## Attribution

The ClickHouse icon used in this plugin is from https://clickhouse.com/images/logo.svg
npm package: @grouparoo/closeio
Description: The Grouparoo Close.io Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/closeio

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Close.io](https://www.close.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/closeio`.

## Groups

A custom field will be created for each group to keep track of group membership. The field will be prefixed by `In Group: `, so the name of the field that will be created for the group "High Value" would be `In Group: High Value`.
npm package: @grouparoo/cloudwatch
Description: The Grouparoo Cloudwatch Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/cloudwatch

A [Grouparoo](https://www.grouparoo.com) plugin for sending application logs to AWS Cloudwatch

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/cloudwatch`.

The following environment variables are required:

- `AWS_ACCESS_KEY_ID`
- `AWS_SECRET_ACCESS_KEY`
- `AWS_REGION`

By default, logs have a 90 day retention period. You can customize this setting by using the `AWS_CLOUDWATCH_LOG_RETENTION_DAYS` environment variable.

Note that, `GROUPAROO_LOG_LEVEL` also effects this logger. By default, the log-level of this logger is is "notice" NOT "info".
npm package: @grouparoo/core
Description: The Grouparoo Core
Author: Grouparoo Inc
Latest version: 0.9.0

# Grouparoo

**Sync, Segment, and Send your Product Data Everywhere**

Grouparoo is an open source framework that helps you move data between your data warehouse and all of your cloud-based tools. Learn more at [www.grouparoo.com](https://www.grouparoo.com)

![Grouparoo Data Bowtie](https://raw.githubusercontent.com/grouparoo/grouparoo/main/documents/images/grouparoo-diagram.png)

<p align="center">
  <a aria-label="NPM version" href="https://www.npmjs.com/package/@grouparoo/core">
    <img alt="" src="https://img.shields.io/npm/v/@grouparoo/core.svg?style=for-the-badge&labelColor=242436">
  </a>
  <a aria-label="Node version" href="https://www.npmjs.com/package/@grouparoo/core">
    <img alt="" src="https://img.shields.io/node/v/@grouparoo/core.svg?style=for-the-badge&labelColor=242436">
  </a>
  <a aria-label="License" href="https://github.com/grouparoo/grouparoo/blob/main/LICENSE.txt">
    <img alt="" src="https://img.shields.io/npm/l/@grouparoo/core.svg?style=for-the-badge&labelColor=242436">
  </a>
</p>

> This is the Grouparoo Monorepo, containing the source code for `@grouparoo/core` and many plugins. If you are looking for an example about how to run or deploy Grouparoo, please visit https://github.com/grouparoo/app-example

# Documentation and Guides

- 🦘 **Ready to Try Grouparoo?**
  - Grouparoo is Open Source, and easy to run on your laptop or in the cloud.
  - → View the [Getting Started Docs](https://www.grouparoo.com/docs/getting-started).
- 📚 **Want to learn more about how to configure and use Grouparoo?**
  - Grouparoo can be configured without needing to write any code. Learn how to connect to your Sources and Destinations to begin syncing your data.
  - → View the [Configuration Guides](https://www.grouparoo.com/docs/config).
  - → View the [Runtime Guides](https://www.grouparoo.com/docs/running).
  - → View the [Deployment Examples](https://www.grouparoo.com/docs/deployment).
- 👨‍👩‍👧‍👧 **Want to collaborate with the Community to enhance Grouparoo?**
  - Join other Grouparoo Community members to share best practices and tackle problems.
  - → Join the [Community](https://www.grouparoo.com/docs/community).
- ⚙️ **Want to learn more about how Grouparoo works?**
  - Grouparoo is Open Source, and we welcome community contributions. You can add your own plugins to connect to new Sources and Destinations.
  - → View the [Development Guide](https://www.grouparoo.com/docs/development).

# Running a Grouparoo Application

> This is an abbreviated version of the "Grouparoo Installation Guide". [The full version can be found here](https://www.grouparoo.com/docs/installation).

## Run Locally with Node.js

Use the Grouparoo CLI to initialize a new Grouparoo Project:

```bash
# Assuming you have node.js (https://nodejs.org) v12+ installed
npm install -g grouparoo
grouparoo init .
grouparoo config
```

This will generate a `package.json` and `.env` file and launch our Config UI for you to begin configuring your Grouparoo instance.

🦘
npm package: @grouparoo/csv
Description: The Grouparoo CSV Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/csv

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to CSV Files.

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/csv`.

## Attribution

The CSV icon used in this plugin is from https://www.flaticon.com/free-icon/csv-file-format-extension_28842
npm package: @grouparoo/customerio
Description: The Grouparoo customer.io Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/customerio

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [customer.io](https://customer.io/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/customerio`.

## Groups

Groups are sent to customer.io as attributes on customers.
`In ` will be prepended to the configured group name to represent group membership.

**Example:** If the customer is in the group `High Value Customers`, the attribute `In High Value Customers` will be set to `true` in customer.io.

For customers that are not in the group, the attribute will not be set.

## Attribution

The customer.io icon used in this plugin is from https://app.livestorm.co/customer-io
npm package: @grouparoo/dbt
Description: Integrate Grouparoo with the dbt data tool
Author: Grouparoo Inc
Latest version: 0.9.0

# @Grouparoo/dbt

A [Grouparoo](https://www.grouparoo.com) plugin used to integrate Grouparoo with the [dbt](https://www.getdbt.com) data tool.

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/dbt`.
npm package: @grouparoo/eloqua
Description: The Grouparoo Eloqua Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/eloqua

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Eloqua](https://login.eloqua.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/eloqua`.

## Attribution

The Eloqua icon used in this plugin is from https://azuremarketplace.microsoft.com/en-us/marketplace/apps/aad.eloqua?tab=overview
npm package: @grouparoo/facebook
Description: The Grouparoo Facebook Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/facebook

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Facebook](https://business.facebook.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/facebook`.

## Attribution

The Facebook icon used in this plugin is from https://www.iconfinder.com/icons/5296499/facebook_fb_fcb_facebook_logo_icon
npm package: @grouparoo/freshdesk
Description: The Grouparoo Freshdesk Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/freshdesk

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Freshdesk](https://www.freshdesk.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/freshdesk`.
npm package: @grouparoo/google-sheets
Description: The Grouparoo Google Sheets Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/google-sheets

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Google Sheets](https://www.google.com/sheets/about/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/google-sheets`.

## Attribution

The Google Sheets icon used in this plugin is from https://www.iconfinder.com/icons/3215586/brand_brands_google_logo_logos_sheets_icon
npm package: @grouparoo/hubspot
Description: The Grouparoo hubspot Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/hubspot

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [HubSpot](https://www.hubspot.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/hubspot`.

## Attribution

The HubSpot icon used in this plugin is from https://www.hubspot.com/style-guide
npm package: @grouparoo/intercom
Description: The Grouparoo Intercom Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/intercom

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Intercom](https://www.intercom.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/intercom`.

## Attribution

The Intercom icon used in this plugin is from https://www.iconfinder.com/icons/4373219/intercom_logo_logos_icon
npm package: @grouparoo/iterable
Description: The Grouparoo Iterable Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/iterable

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Iterable](https://iterable.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/iterable`.

## Attribution

The Iterable icon used in this plugin is from https://assets.iterable.com/assets/images/logos/updated/primary_vertical.png
npm package: @grouparoo/klaviyo
Description: The Grouparoo Klaviyo Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/klaviyo

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Klaviyo](https://www.klaviyo.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/plugins](https://www.grouparoo.com/docs/plugins).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/klaviyo`.

## Groups

Lists will automatically be created for configured groups.

## Attribution

The logo used in this Plugin is from https://cdn.shopify.com/app-store/listing_images/5edd9000b933a8fa88c152d1e498531f/icon/CJ+t/tP0lu8CEAE=.jpg
npm package: @grouparoo/logger
Description: @grouparoo/logger is a Destination plugin that writes the Records it receives to a file of your choosing (ie: records.log in JSON format ) and/or stdout
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/logger

A [Grouparoo](https://www.grouparoo.com) plugin for testing exports by logging them. `@grouparoo/logger` is a Destination plugin that writes the Records it receives to a file of your choosing (ie: `records.log` in JSON format ) and/or `stdout`.

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/logger`.

## Attribution

The Log icon used in this plugin is from https://www.flaticon.com/free-icon/log-file-format_28811
npm package: @grouparoo/mailchimp
Description: The Grouparoo mailchimp Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# grouparoo/mailchimp

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Mailchimp](https://mailchimp.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/mailchimp`.

## Attribution

The Mailchimp icon used in this plugin is from https://www.iconfinder.com/icons/4691307/mailchimp_icon
npm package: @grouparoo/mailjet
Description: The Grouparoo mailjet Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/mailjet

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Mailjet](https://www.mailjet.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/mailjet`.

## Attribution

The Mailjet icon used in this plugin is from https://assets.mailjet.com/lib/images/mailjetLogo/MailjetBySinchLogo.svg
npm package: @grouparoo/marketo
Description: The Grouparoo Marketo Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/marketo

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Marketo](https://www.marketo.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/marketo`.

## Attribution

The Marketo icon used in this plugin is from https://www.marketo.com/newsroom/
npm package: @grouparoo/mixpanel
Description: The Grouparoo Mixpanel Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/mixpanel

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [Mixpanel](https://mixpanel.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/mixpanel`.

## Attribution

The Mixpanel icon used in this plugin is from https://iconscout.com/icon/mixpanel
npm package: @grouparoo/mongo
Description: The Grouparoo MongoDB Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/mongo

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [MongoDB](https://www.mongodb.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/mongo`.

## Attribution

The MongoDB icon used in this plugin is from https://commons.wikimedia.org/wiki/File:Antu_mongodb.svg
npm package: @grouparoo/mysql
Description: The Grouparoo mysql Plugin
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/mysql

A [Grouparoo](https://www.grouparoo.com) plugin for connecting to [MySQL](https://www.mysql.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/mysql`.

## Attribution

The MySQL icon used in this plugin is from https://www.iconfinder.com/icons/1322469/code_development_logo_mysql_icon
npm package: @grouparoo/newrelic
Description: Performance and error tracking with NewRelic
Author: Grouparoo Inc
Latest version: 0.9.0

# @grouparoo/newrelic

A [Grouparoo](https://www.grouparoo.com) plugin for sending errors and traces to [New Relic](https://newrelic.com/).

Learn more about Grouparoo Plugins at [www.grouparoo.com/docs/integrations](https://www.grouparoo.com/docs/integrations).

## Installation

In your Grouparoo project, run `grouparoo install @grouparoo/newrelic`.

Then set the environment variables.

```
NEW_RELIC_LICENSE_KEY="your.api.key.here"
NEW_RELIC_APP_NAME="grouparoo.project.name"
```