open-index/open-npm huggingface dataset:
npm package: @jansora/bytemd
Description: bytemd editor
Author: Jansora
Latest version: 0.0.79

# @jansora/bytemd

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe @jansora/bytemd here.

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @jansora/monaco
Description: monaco editor
Author: Jansora
Latest version: 0.0.79

# @jansora/bytemd

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe @jansora/bytemd here.

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @jansora/next
Description: jansora next project management
Author: Jansora
Latest version: 0.0.79

# @jansora/next


[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe @jansora/next here.

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @jansora/ui
Description: a ui library for jansora's website. built on shadcn-ui
Author: Jansora
Latest version: 0.0.79

# @jansora/bytemd

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe @jansora/bytemd here.

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @jansson/error-handler
Description: ## Install
Author: Rikard Jansson
Latest version: 0.1.7

# Express Error middleware

## Install

```bash
$ npm i @jansson/error-handler
```

## Usage

```ts
import express from 'express';
import { errorReporter } from '@jansson/error-handler';

const app = express();

function errorTemplate(error: HttpError) {
  return {
    error: {
      message: error.message,
      status: error.status,
    },
  };
}

// Routes [...]

// At the end of your general routes
app.use(
  errorReporter({
    template: errorTemplate,
  }),
);
```

### Alternative template

```ts
function getErrorTemplate(showDetailedErrors = false) {
  return (error: HttpError) => {
    return {
      error: {
        message: error.message,
        status: error.status,
        // Conditionally show `stack` and `previous` if
        // `showDetailedErrors` is true.  Not recomended for production
        ...(showDetailedErrors && {
          stack: error.stack,
          // Include previous if exists
          ...(error.previous && {
            message: error.previous.message,
            stack: error.previous.stack,
          }),
        }),
      },
    };
  };
}

app.use(
  errorReporter({
    // This will show detailed errors
    // when NODE_ENV is development
    template: getErrorTemplate(process.env.NODE_ENV === 'development'),
  }),
);
```
npm package: @jantaeleckie/mono-one
Description: One Package
Author: JantaeLeckie
Latest version: 1.6.18

# @jantaeleckie/mono-one

One Package
 
- NEW FEATURE
- Good Feature
- BREAKING 

## Install

Install with [npm](https://www.npmjs.com/):

    npm install @jantaeleckie/mono-one

## Usage

- [ ] Write usage instructions

## Changelog

See [Releases page](https://github.com/JantaeLeckie/monorepo-release-changesets/releases).

## Running tests

Install devDependencies and Run `npm test`:

    npm test

## Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, [please create an issue](https://github.com/JantaeLeckie/monorepo-release-changesets/issues).

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D

## Author

- [github/JantaeLeckie](https://github.com/JantaeLeckie)
- [twitter/JantaeLeckie_re](https://twitter.com/JantaeLeckie_re)

## License

MIT © JantaeLeckie
npm package: @jantaeleckie/mono-three
Description: deps +
Author: JantaeLeckie
Latest version: 1.6.8

# @jantaeleckie/mono-three

deps +

- one
- two

## Install

Install with [npm](https://www.npmjs.com/):

    npm install @jantaeleckie/mono-three

## Usage

- [ ] Write usage instructions

## Changelog

See [Releases page](https://github.com/JantaeLeckie/monorepo-release-changesets/releases).

## Running tests

Install devDependencies and Run `npm test`:

    npm test

## Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, [please create an issue](https://github.com/JantaeLeckie/monorepo-release-changesets/issues).

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D

## Author

- [github/JantaeLeckie](https://github.com/JantaeLeckie)
- [twitter/JantaeLeckie_re](https://twitter.com/JantaeLeckie_re)

## License

MIT © JantaeLeckie
npm package: @jantaeleckie/mono-two
Description: Deps
Author: JantaeLeckie
Latest version: 1.6.12

# @jantaeleckie/mono-two

Deps

- one two

## Install

Install with [npm](https://www.npmjs.com/):

    npm install @jantaeleckie/mono-two

## Usage

- [ ] Write usage instructions

## Changelog

See [Releases page](https://github.com/JantaeLeckie/monorepo-release-changesets/releases).

## Running tests

Install devDependencies and Run `npm test`:

    npm test

## Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, [please create an issue](https://github.com/JantaeLeckie/monorepo-release-changesets/issues).

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D

## Author

- [github/JantaeLeckie](https://github.com/JantaeLeckie)
- [twitter/JantaeLeckie_re](https://twitter.com/JantaeLeckie_re)

## License

MIT © JantaeLeckie
npm package: @jantaras29/atypical
Description: typical inspired text animation library
Author: Jan Taras
Latest version: 0.1.0

# atypical
Small JS library with fancy text animation - this is obviously inspired by another cool JS library [typical](https://github.com/camwiegert/typical).

The atypical function provides a slightly different visual effect of text emerging out of a blur of characters

You can try the codepen demo [here](https://codepen.io/TarasJan/pen/Jjpoxzd)
npm package: @jantimon/stylelint-enforce-pseudo-ampersand
Description: A stylelint plugin that enforces the use of ampersands in front of pseudo selectors
Author: Jan Nicklas
Latest version: 1.0.2

# @jantimon/stylelint-enforce-pseudo-ampersand

[![npm version](https://badge.fury.io/js/%40jantimon%2Fstylelint-enforce-pseudo-ampersand.svg)](https://npmjs.org/package/@jantimon/stylelint-enforce-pseudo-ampersand)

A stylelint plugin that enforces the use of ampersands (`&`) in front of pseudo selectors in CSS. This plugin helps maintain consistency and readability in your stylesheet's pseudo-element and pseudo-class selectors by ensuring they are nested within their parent selectors using the ampersand syntax.

## Installation

First, you need to install [stylelint](https://stylelint.io/):

```bash
npm install stylelint --save-dev
```

Then add `@jantimon/stylelint-enforce-pseudo-ampersand`:

```bash
npm install @jantimon/stylelint-enforce-pseudo-ampersand --save-dev
```

## Usage

After installing, add the plugin to your `.stylelintrc` config. Under the `plugins` section, include `@jantimon/stylelint-enforce-pseudo-ampersand`, and then add the rule under `rules`.

```json
{
  "plugins": [
    "@jantimon/stylelint-enforce-pseudo-ampersand"
  ],
  "rules": {
    "jantimon/stylelint-enforce-pseudo-ampersand": "always" // or "never"
  }
}
```

### Options

- `"always"` (default): Ensures you must use `&` in front of pseudo selectors.
- `"never"`: Ensures you must not use `&` in front of pseudo selectors.

### Examples

#### `"always"`

The following patterns are considered violations:

```css
.foo :before {
  content: 'foo';
}
```

The following patterns are *not* considered violations:

```css
.foo &:before {
  content: 'foo';
}
```

#### `"never"`

The following patterns are considered violations:

```css
.foo &:before {
  content: 'foo';
}
```

The following patterns are *not* considered violations:

```css
.foo :before {
  content: 'foo';
}
```

## Contributing

Contributions are always welcome!

## License

This project is licensed under the MIT License - see the [LICENSE](https://github.com/jantimon/stylelint-enforce-pseudo-ampersand/blob/main/LICENSE) file for details.
npm package: @jantimon/url-asset-size
Description: Runs puppeteer to get the size of all javascript and css files of a given url.
Latest version: 1.1.0

# url-asset-size

> Get the size of javascript and css of a website

Usage:

```
npx @jantimon/url-asset-size https://www.github.com

Stats for https://www.github.com

JavaScript download size (50 files)
Raw size: 1,744,226 bytes
Gzip size: 278,621 bytes

CSS download size (11 files)
Raw size: 1,114,168 bytes
Gzip size: 86,877 bytes

```

```
npx @jantimon/url-asset-size https://www.github.com --json
{
  "js": {
    "count": 50,
    "raw": 1744226,
    "gzip": 280056
  },
  "css": {
    "count": 11,
    "raw": 1114168,
    "gzip": 134526
  }
}
```
npm package: @janumedia/vue-lazy-image
Description: Vue.js lazy image component
Author: I Nengah Januartha
Latest version: 1.0.5

# vue-lazy-image
Vue Lazy Image  component

## Installation
```
npm i -D @janumedia/vue-lazy-image
```
or with yarn
```
yarn add -D @janumedia/vue-lazy-image
```

## Usage
### Browser
```
<script src="https://unpkg.com/vue@2.5.22/dist/vue.min.js"></script>
<script src="https://unpkg.com/@janumedia/vue-lazy-image/dist/vue-lazy-image.min.js"></script>
<style>
    .top {
        width: 100%;
        height: 100vh;
    }
</style>
<body>
  <div id="app">
    <div class="top">
        Scroll Down
    </div>
    <lazy-image src="your-image.jpg" placeholder="your-placeholder-image.jpg" width="300" alt="My Imagea Title"/>
  </div>
  <script>
    //register component
    Vue.use(LazyImage);
    new Vue({
      el: '#app'
    });
  </script>
</body>
```
### Node
```
<script>
import LazyImage from '@janumedia/vue-lazy-image'
export default {
  components: { LazyImage }
}
<script>
<template>
  <div>
    <lazy-image src="your-image.jpg" placeHolder="your-placeholder-image.jpg" width="300" alt="My Image Title"/>
  <div/>
</template>
```

## Polyfill
> Although this component has fallback support to browser that no support `IntersectionObserver`, you still can implement `IntersectionObserver` polyfill from [this library](https://github.com/w3c/IntersectionObserver/tree/master/polyfill) to this [supported browser](https://github.com/w3c/IntersectionObserver/tree/master/polyfill#browser-support)
npm package: @janunld/angular
Description: [docs]: https://github.com/JanUnld/web-std/blob/main/docs/angular/modules.md [docs-shield]: https://img.shields.io/badge/docs-typescript-blue?style=flat-square [npm]: https://www.npmjs.com/package/@janunld/angular [npm-shield]: https://img.shields.io/npm/
Latest version: 0.0.0

# Personal Angular Library <br> [![NPM][npm-shield]][npm] [![API Docs][docs-shield]][docs]

[docs]: https://github.com/JanUnld/web-std/blob/main/docs/angular/modules.md
[docs-shield]: https://img.shields.io/badge/docs-typescript-blue?style=flat-square
[npm]: https://www.npmjs.com/package/@janunld/angular
[npm-shield]: https://img.shields.io/npm/v/@janunld/angular?color=red&style=flat-square

General APIs that I personally find myself creating over and over again in various scenarios, while
specifically useful for the [Angular](https://angular.io) technology domain.

## Installation

```shell
npm i @janunld/angular
```

## API

For a detailed overview of the interfaces and functionality provided by this package, please take
a look at the [docs][docs]. There might also appear various secondary entry points. Which are **not**
directly accessible from the main entry point of this package, as they tend to be more specialized.

### Secondary Entry Points

- [Forms](https://github.com/JanUnld/web-std/blob/main/docs/angular/forms/modules.md)

<small>Licensed under the [MIT license](https://github.com/JanUnld/web-std/blob/main/LICENSE)</small>
npm package: @janunld/stdlib
Description: [![NPM][npm-shield]][npm] [![API Docs][docs-shield]][docs]
Latest version: 0.0.1

# Personal Standard Library

[![NPM][npm-shield]][npm] [![API Docs][docs-shield]][docs] 

[docs]: ../../docs/stdlib/modules.md
[docs-shield]: https://img.shields.io/badge/docs-typescript-blue?style=flat-square
[npm]: https://www.npmjs.com/package/@janunld/stdlib
[npm-shield]: https://img.shields.io/npm/v/@janunld/stdlib?color=red&style=flat-square

The main goal of this package is to group together useful but quite general APIs that
I personally find myself creating over and over again in various scenarios. 

For a detailed overview of the included generics please take a look at the [docs][docs].

## Installation

```shell
npm i @janunld/stdlib
```

<small>Licensed under the [MIT license](https://github.com/JanUnld/web-std/blob/main/LICENSE)</small>
npm package: @janus-analytics/mcp-server
Description: MCP server for querying Janus analytics — let your AI agent check your dashboard, events, funnels, and usage.
Author: Janus Analytics
Latest version: 1.0.1

# Janus Analytics MCP Server

An [MCP server](https://modelcontextprotocol.io) that connects AI coding agents to your [Janus](https://addjanus.ca) analytics. Query your dashboard, events, funnels, and usage directly from Claude Code, Cursor, Windsurf, or any MCP-compatible client.

## Setup

### 1. Get a Janus API key

Sign up at [addjanus.ca](https://addjanus.ca) and create an API key in Settings.

### 2. Add to your MCP client

**Claude Code**

```bash
claude mcp add janus -- npx -y @janus-analytics/mcp-server
```

Then set your API key:

```bash
export JANUS_API_KEY=jns_your_key_here
```

**Claude Desktop / Cursor / Windsurf**

Add to your MCP config file:

```json
{
  "mcpServers": {
    "janus": {
      "command": "npx",
      "args": ["-y", "@janus-analytics/mcp-server"],
      "env": {
        "JANUS_API_KEY": "jns_your_key_here"
      }
    }
  }
}
```

Config file locations:
- **Claude Desktop:** `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows)
- **Cursor:** Settings > MCP Servers
- **Windsurf:** `~/.windsurf/mcp.json`

## Tools

All tools are **read-only** — the server never modifies your data.

| Tool | Description |
|------|-------------|
| `get_dashboard_stats` | Event counts, unique visitors, top pages, referrers, UTM sources, countries, bounce rate, and daily trends. Optional `apiKeyId` filter. |
| `query_events` | Search the event log with filters for type, tags, date range, API key, and pagination. |
| `get_usage` | Current month's event usage vs. tier cap, API key count, and per-key breakdown. |
| `list_journeys` | List all funnels with step definitions, match scope, and conversion windows. |
| `get_journey_results` | Funnel conversion data — per-step counts, conversion rates, and median time between steps. |
| `list_api_keys` | Your API keys with names, prefixes, allowed origins, and last-used dates. |

## Example prompts

Once connected, ask your AI agent things like:

- "How's my traffic looking this week?"
- "Show me the top pages from the last 7 days"
- "What's my funnel conversion rate for the signup journey?"
- "Am I close to my usage limit this month?"
- "Which API key is getting the most events?"

## Configuration

| Environment variable | Required | Description |
|---------------------|----------|-------------|
| `JANUS_API_KEY` | Yes | Your Janus API key (starts with `jns_`) |

## License

MIT