open-index/open-npm huggingface dataset:
npm package: @pulsedotso/postgraphile-plugin-fulltext-filter
Description: Full text searching on tsvector fields for use with postgraphile-plugin-connection-filter
Author: Antonio Angelino
Latest version: 2.0.0

[![Package on npm](https://img.shields.io/npm/v/@pulsedotso/postgraphile-plugin-fulltext-filter.svg)](https://www.npmjs.com/package/@pulsedotso/postgraphile-plugin-fulltext-filter)

# postgraphile-plugin-fulltext-filter
This plugin implements a full text search operator for `tsvector` columns in PostGraphile v4 via @mattbretl's excellent `postgraphile-plugin-connection-filter` plugin.
This plugin was originally created by Mark Lipscombe ( @mlipscombe ).

## Getting Started

### CLI

``` bash
postgraphile --append-plugins postgraphile-plugin-connection-filter,postgraphile-plugin-fulltext-filter
```

See [here](https://www.graphile.org/postgraphile/extending/#loading-additional-plugins) for
more information about loading plugins with PostGraphile.

### Library

``` js
const express = require('express');
const { postgraphile } = require('postgraphile');
const PostGraphileConnectionFilterPlugin = require('postgraphile-plugin-connection-filter');
const PostGraphileFulltextFilterPlugin = require('postgraphile-plugin-fulltext-filter');

const app = express();

app.use(
  postgraphile(pgConfig, schema, {
    appendPlugins: [
      PostGraphileConnectionFilterPlugin,
      PostGraphileFulltextFilterPlugin,
    ],
  })
);

app.listen(5000);
```

## Performance

All `tsvector` columns that aren't @omit'd should have indexes on them:

``` sql
ALTER TABLE posts ADD COLUMN full_text tsvector;
CREATE INDEX full_text_idx ON posts USING gin(full_text);
```

## Operators

This plugin adds the `matches` filter operator to the filter plugin, accepting
a GraphQL String input and using the `@@` operator to perform full-text searches
on `tsvector` columns.

This plugin uses [pg-tsquery](https://github.com/caub/pg-tsquery) to parse the
user input to prevent Postgres throwing on bad user input unnecessarily.

## Fields

For each `tsvector` column, a rank column will be automatically added to the 
GraphQL type for the table by appending `Rank` to the end of the column's name.
For example, a column `full_text` will appear as `fullText` in the GraphQL type,
and a second column, `fullTextRank` will be added to the type as a `Float`.

This rank field can be used for ordering and is automatically added to the orderBy
enum for the table.

## Examples

``` graphql
query {
  allPosts(
    filter: {
      fullText: { matches: 'foo -bar' }
    }
    orderBy: FULL_TEXT_RANK_DESC
  }) {
    ...
    fullTextRank
  }
}
```
npm package: @pulsedotso/quill-magic-url
Description: Checks for URLs during typing and pasting and automatically converts them to links.
Author: Jörg Bayreuther
Latest version: 2.0.1

# quill-magic-url

Checks for URLs during typing and pasting and automatically converts them to links and normalizes the links URL.

Thanks to [@LFDM](https://github.com/LFDM) for the groundwork with [quill-auto-links](https://github.com/SmallImprovements/quill-auto-links).

![quill-magic-url in action](https://github.com/visualjerk/quill-magic-url/blob/master/docs/quill-magic-url.gif?raw=true)

## Install

```bash
npm install quill-magic-url --save
```

## Basic Usage

```javascript
import Quill from 'quill';
import MagicUrl from 'quill-magic-url';

Quill.register('modules/magicUrl', MagicUrl);
```

**Basic usage with default options:**

```javascript
const quill = new Quill(editor, {
  modules: {
    magicUrl: true
  }
});
```

**Usage with custom options:**

```javascript
const quill = new Quill(editor, {
  modules: {
    magicUrl: {
      // Regex used to check URLs during typing
      urlRegularExpression: /(https?:\/\/[\S]+)|(www.[\S]+)|(mailto:[\S]+)|(tel:[\S]+)/,
      // Regex used to check URLs on paste
      globalRegularExpression: /(https?:\/\/|www\.|mailto:|tel:)[\S]+/g
    }
  }
});
```

## Options

### urlRegularExpression

> Regex used to check for URLs during *typing*.

**Default:** `/(https?:\/\/[\S]+)|(www.[\S]+)/`

**Example with custom Regex**

```javascript
magicUrl: {
  urlRegularExpression: /(https?:\/\/[\S]+)|(www.[\S]+)|(mailto:[\S]+)|(tel:[\S]+)/
}
```

### globalRegularExpression

> Regex used to check for URLs on *paste*.

**Default:** `/(https?:\/\/|www\.)[\S]+/g`

**Example with custom Regex**

```javascript
magicUrl: {
  globalRegularExpression: /(https?:\/\/|www\.|mailto:|tel:)[\S]+/g
}
```

### normalizeRegularExpression

> Regex used to check for URLs to be  *normalized*. 

**Default:** `/(https?:\/\/[\S]+)|(www.[\S]+)/`

You will most likely want to keep this options default value.

### normalizeUrlOptions

> Options for normalizing the URL

**Default:**
```javascript
{
  stripWWW: false
}
```

**Example with custom options**

```javascript
magicUrl: {
  normalizeUrlOptions: {
    stripHash: true,
    stripWWW: false,
    normalizeProtocol: false
  }
}
```

**Available options**

We use [normalize-url](https://github.com/sindresorhus/normalize-url) for normalizing URLs. You can find a detailed description of the possible options [here](https://github.com/sindresorhus/normalize-url#api).

## More infos on URL Regex

For some advanced URL Regex [check this out](https://mathiasbynens.be/demo/url-regex).
npm package: @pulsedotso/quill-markdown-shortcuts
Description: Quill.js module that converts markdown to rich text formatting while typing. 
Author: Patrick Lee
Latest version: 0.0.13

# Quill Markdown Shortcuts

This package is a [Quill.js](https://quilljs.com) module that converts markdown on the fly to formatted rich text.

[Example](https://patleeman.github.io/quill-markdown-shortcuts/)

# Quickstart

## Installation

### Using NPM

Use the NPM package manager to add this dependency to your project.

```bash
npm i -S quill-markdown-shortcuts
```

### Using CDN

Add the library via jsdelivr.

```
<script src="https://cdn.jsdelivr.net/npm/quill-markdown-shortcuts@latest/dist/markdownShortcuts.js">
```

### By downloading file

To incorporate the code into your codebase, simply download the markdownShortcuts.js file and include that in your build process or link a script tag to it directly. Then set up quill and make sure to include the markdownShortcuts setting in modules.

## Usage

### ES6

```js
import Quill from 'quill';
import MarkdownShortcuts from 'quill-markdown-shortcuts';

Quill.register('modules/markdownShortcuts', MarkdownShortcuts);

const quill = new Quill('#editor', {
  theme: 'snow',
  // All you need to do to enable the module is to add a modules key
  // to your quill configuration, and add markdownShortcuts with an
  // empty object.
  // There are currently no options to set.
  modules: {
    markdownShortcuts: {}
  }
});
```

### Script Tag

```html
<body>
  <div class="container">
    <div id="editor"></div>
    <script src="/path/to/node_modules/quill-markdown-shortcuts/dist/markdownShortcuts.js"></script>
    <script>
      var quill = new Quill('#editor', {
        theme: 'snow',
        // All you need to do to enable the module is to add a modules key
        // to your quill configuration, and add markdownShortcuts with an
        // empty object.
        // There are currently no options to set.
        modules: {
          markdownShortcuts: {}
        }
      });
    </script>
  </div>
</body>
```

# Contributing

Issues and pull requests are welcome! Please [open an issue](https://github.com/patleeman/quill-markdown-shortcuts/issues) for all other inquiries.

## Building the module and examples

To build the module and the example bundles, please run `npm run build` and include the bundles in your commit. Thanks!
npm package: @pulseengine/studio-mcp-server
Description: WindRiver Studio MCP Server - A Model Context Protocol server for WindRiver Studio CLI integration
Author: PulseEngine
Latest version: 0.4.0

# @pulseengine/studio-mcp-server

A Model Context Protocol (MCP) server for WindRiver Studio CLI integration, packaged for npm/npx usage.

## 🚀 Quick Start with npx (No Installation Required)

```bash
# Run directly with npx
npx @pulseengine/studio-mcp-server --help

# Start MCP server
npx @pulseengine/studio-mcp-server --port 8080

# Use with specific Studio instance
npx @pulseengine/studio-mcp-server --instance my-studio --user developer
```

## 📦 Global Installation

```bash
# Install globally
npm install -g @pulseengine/studio-mcp-server

# Then run directly
studio-mcp-server --help
studio-mcp # Short alias
```

## 🔧 MCP Client Configuration

Add to your MCP client configuration (e.g., Claude Desktop):

### Using npx (Recommended)
```json
{
  "mcpServers": {
    "studio": {
      "command": "npx",
      "args": ["@pulseengine/studio-mcp-server", "--instance", "your-studio-instance"]
    }
  }
}
```

### Using global installation
```json
{
  "mcpServers": {
    "studio": {
      "command": "studio-mcp-server",
      "args": ["--instance", "your-studio-instance"]
    }
  }
}
```

## ⚡ Features

- **Zero-config MCP server** for WindRiver Studio
- **Intelligent caching** with multi-tier TTL policies
- **User context isolation** for secure multi-tenant usage
- **PLM integration** with pipeline, run, and resource management
- **Cross-platform support** (Windows, macOS, Linux)
- **Pre-compiled binaries** - no Rust installation required

## 🛠️ Development

This npm package wraps a Rust binary. For development:

```bash
git clone https://github.com/pulseengine/studio-mcp.git
cd studio-mcp/studio-mcp-server
cargo build --release
```

## 📋 Requirements

- Node.js >= 14
- One of: Windows (x64), macOS (x64/ARM64), Linux (x64/ARM64)

## 🐛 Troubleshooting

If installation fails:

1. **Manual installation from source:**
   ```bash
   git clone https://github.com/pulseengine/studio-mcp.git
   cd studio-mcp/studio-mcp-server
   cargo install --path .
   ```

2. **Download binary manually:**
   - Visit: https://github.com/pulseengine/studio-mcp/releases
   - Download for your platform and add to PATH

## 📄 License

MIT License - see the [LICENSE](https://github.com/pulseengine/studio-mcp/blob/main/LICENSE) file for details.
npm package: @pulsefinance/dex-contract
Description: Compact contracts for Pulse's Midnight DEX
Author: Christian Schmitz
Latest version: 0.3.4

# midnight-dex-contract

Midnight AMM DEX contract, written in Compact.

This AMM contract doesn't require a batcher, and the main goal is to protect the treasury and liquidity providers. From the user's point-of-view, each swap is atomic.

## Compilation steps
 
1. install the compact toolchain (see https://docs.midnight.network/getting-started/installation#4-install-compact-using-the-installer-script)
2. `pnpm build`

## Testing steps

First make sure the compact compiler is installed. The contract unit tests can be run with the following commands:

1. `pnpm install`
2. `pnpm build`
3. `pnpm test`
npm package: @pulseid/client
Description: TypeScript SDK for PULSE ID - Your athlete identity
Author: Patrick Hübl-Neschkudla
Latest version: 0.5.1

# @pulseid/client

TypeScript SDK for [PULSE ID](https://id.pulserunning.at), including auth and typed access to the user timeline entries API.

## Install

```bash
pnpm add @pulseid/client
```

## Server (Recommended)

```typescript
import { PulseIdServer } from '@pulseid/client/server';

const server = new PulseIdServer({
  issuer: 'https://id.pulserunning.at',
  clientId: process.env.PULSEID_CLIENT_ID!,
  clientSecret: process.env.PULSEID_CLIENT_SECRET!,
  storage: tokenStorage,
});

// Get a user-scoped client with auto-refresh
const pulse = server.forUser(userId);
const profile = await pulse.profile.get();
await pulse.profile.update({ displayName: 'New Name' });
```

## Browser

```typescript
import { PulseIdClient } from '@pulseid/client';

const client = new PulseIdClient({
  issuer: 'https://id.pulserunning.at',
  clientId: 'your-client-id',
});

// Build auth URL
const authUrl = client.buildAuthorizationUrl({
  redirectUri: 'https://yourapp.com/callback',
  scope: 'openid profile email offline_access',
  state: crypto.randomUUID(),
  nonce: crypto.randomUUID(),
  codeChallenge,
  codeChallengeMethod: 'S256',
});

// After callback
const profile = await client.getProfile(accessToken);
```

## Entries Quick Reference

`category` and `type` are different filters:

- `category` = broad bucket such as `activity`, `body`, `nutrition`, `calendar`, or `custom`
- `type` = specific entry kind such as `workout`, `weight`, `meal`, or `event`

```typescript
const workouts = await pulse.entries.list({
  category: 'activity',
  type: 'workout',
  sortBy: 'createdAt',
  sortOrder: 'desc',
  limit: 10,
});
```

Use `sortBy: 'timestamp'` for event-time ordering and `sortBy: 'createdAt'` for recently-added ordering. `from` and `to` currently filter the event `timestamp`.

## Token Storage

```typescript
import type { TokenStorage, StoredTokens } from '@pulseid/client/server';

const tokenStorage: TokenStorage = {
  async getTokens(userId) { /* fetch from db */ },
  async setTokens(userId, tokens) { /* save to db */ },
  async deleteTokens(userId) { /* delete from db */ },
};
```

## Error Handling

```typescript
import { InvalidTokenError, InsufficientScopeError } from '@pulseid/client';

try {
  await pulse.profile.get();
} catch (error) {
  if (error instanceof InvalidTokenError) redirect('/login');
  if (error instanceof InsufficientScopeError) console.log(error.requiredScope);
  throw error;
}
```

## Docs

See [docs](./docs) or run `pnpm docs:dev`.

## Contract Sync

Entry contracts are generated from the `pulse-id` OpenAPI document instead of being hand-maintained.

```bash
# In ../pulse-id
pnpm openapi:write

# In this repo
pnpm types:generate
```

If the server spec lives elsewhere, set `PULSE_ID_OPENAPI_PATH` before running `pnpm types:generate`.

## License

MIT
npm package: @pulsekit/core
Description: Core analytics queries, types, and SQL migrations for PulseKit
Author: Benoit Ortalo-Magne
Latest version: 1.2.0

<p align="center">
  <img src="https://raw.githubusercontent.com/benoiteom/pulsekit/main/assets/logo.svg" alt="PulseKit" width="200" />
</p>

# @pulsekit/core

Core analytics queries, types, and SQL migrations for [PulseKit](https://github.com/benoiteom/pulsekit).

## Installation

```bash
npm install @pulsekit/core
```

**Peer dependency:** `@supabase/supabase-js >= 2.0.0`

## What's Included

### Query Functions

Functions that fetch analytics data from Supabase via RPC:

- **`getPulseStats(supabase, options)`** — Page views, top pages, visitor locations, and daily traffic
- **`getPulseVitals(supabase, options)`** — Web Vitals metrics (LCP, FID, CLS, etc.)
- **`getPulseErrors(supabase, options)`** — Client and server error tracking data
- **`getPulseAggregates(supabase, options)`** — Pre-aggregated stats for KPI summaries
- **`dateRangeFromTimeframe(timeframe)`** — Convert a named timeframe (e.g. `"7d"`, `"30d"`) to a date range

### Types

Core TypeScript types used across all PulseKit packages:

```ts
import type {
  PulseEventType,
  PulseEventPayload,
  PulseStats,
  Timeframe,
  DailyStat,
  TopPageStat,
  LocationStat,
  WebVitalStat,
  VitalsOverview,
  ErrorStat,
  ErrorsOverview,
  AggregateRow,
  AggregatesOverview,
} from "@pulsekit/core";
```

### SQL Migrations

The `sql/` directory contains Supabase migration files that set up the required database schema:

| File | Purpose |
| --- | --- |
| `001_init_pulse.sql` | Base `pulse_events` table and RPC functions |
| `002_aggregation_function.sql` | Aggregation queries |
| `003_geo_and_timezone.sql` | Geolocation and timezone support |
| `004_web_vitals.sql` | Web Vitals storage and queries |
| `005_error_tracking.sql` | Error tracking tables and queries |
| `006_date_range_support.sql` | Date range filtering |
| `007_data_lifecycle.sql` | Data retention and cleanup |

Copy these into your Supabase migrations directory and run `npx supabase db push`.

## License

MIT
npm package: @pulsekit/react
Description: React Server Components for the PulseKit analytics dashboard
Author: Benoit Ortalo-Magne
Latest version: 1.2.1

<p align="center">
  <img src="https://raw.githubusercontent.com/benoiteom/pulsekit/main/assets/logo.svg" alt="PulseKit" width="200" />
</p>

# @pulsekit/react

React Server Components for the [PulseKit](https://github.com/benoiteom/pulsekit) analytics dashboard.

## Installation

```bash
npm install @pulsekit/react
```

**Peer dependencies:** `react >= 18.0.0`, `@supabase/supabase-js >= 2.0.0`

## Usage

Import the CSS and render the dashboard in a server component:

```tsx
// app/admin/analytics/page.tsx
import { PulseDashboard } from "@pulsekit/react";
import { createClient } from "@/lib/supabase/server";
import "@pulsekit/react/pulse.css";

export default async function AnalyticsPage() {
  const supabase = await createClient();
  return <PulseDashboard supabase={supabase} />;
}
```

## Components

### Full Dashboard

- **`<PulseDashboard>`** — All-in-one analytics dashboard with charts, maps, vitals, and errors

### Individual Components

Use these to build a custom dashboard layout:

- **`<PulseChart>`** — Daily traffic line/bar chart
- **`<PulseMap>`** — Visitor geography world map
- **`<PulseVitals>`** — Web Vitals breakdown (LCP, FID, CLS, etc.)
- **`<PulseErrors>`** — Error tracking table
- **`<PulseAggregates>`** — Aggregated stats display
- **`<KpiRow>`** — Key metrics summary row

### Utility Components

- **`<RefreshButton>`** — Triggers a materialized view refresh
- **`<PulseIcon>`** — PulseKit logo icon
- **`<PulseDateRangePicker>`** — Date range selector for filtering data

## License

MIT