open-index/open-npm huggingface dataset:
npm package: @phinestsoftware/easy-email-editor
Description: MJML-based email editor UI - React 19 compatible fork
Author: phinestsoftware
Latest version: 1.1.0

# Easy-email-editor

## Introduction

Email render and preview container.

## usage

```sh
$ npm install --save easy-email-editor
```

or

```sh
$ yarn add easy-email-editor
```

```js
import React from 'react';
import { BlockManager } from 'easy-email-core';
import { EmailEditor, EmailEditorProvider } from 'easy-email-editor';
import 'easy-email-editor/lib/style.css';

const initialValues = {
  subject: 'Welcome to Easy-email',
  subTitle: 'Nice to meet you!',
  content: BlockManager.getBlockByType(BasicType.PAGE).create({}),
};

export function App() {
  return (
    <EmailEditorProvider
      data={initialValues}
      height={'calc(100vh - 72px)'}
    >
      {({ values }) => {
        return <EmailEditor />;
      }}
    </EmailEditorProvider>
  );
}
```
npm package: @phinestsoftware/easy-email-extensions
Description: MJML-based email editor extensions - React 19 compatible fork
Author: phinestsoftware
Latest version: 1.1.0

# Easy-email-extensions

## usage

```sh
$ npm install --save easy-email-extensions
```

or

```sh
$ yarn add easy-email-extensions
```

```js
import React from 'react';
import { BlockManager, BasicType, AdvancedType } from 'easy-email-core';
import { EmailEditor, EmailEditorProvider } from 'easy-email-editor';
import { ExtensionProps, StandardLayout } from 'easy-email-extensions';

import 'easy-email-editor/lib/style.css';
import 'easy-email-extensions/lib/style.css';

const categories: ExtensionProps['categories'] = [
  {
    label: 'Content',
    active: true,
    blocks: [
      {
        type: AdvancedType.TEXT,
      },
      {
        type: AdvancedType.IMAGE,
        payload: { attributes: { padding: '0px 0px 0px 0px' } },
      },
      {
        type: AdvancedType.BUTTON,
      },
      {
        type: AdvancedType.SOCIAL,
      },
      {
        type: AdvancedType.DIVIDER,
      },
      {
        type: AdvancedType.SPACER,
      },
      {
        type: AdvancedType.HERO,
      },
      {
        type: AdvancedType.WRAPPER,
      },
    ],
  },
  {
    label: 'Layout',
    active: true,
    displayType: 'column',
    blocks: [
      {
        title: '2 columns',
        payload: [
          ['50%', '50%'],
          ['33%', '67%'],
          ['67%', '33%'],
          ['25%', '75%'],
          ['75%', '25%'],
        ],
      },
      {
        title: '3 columns',
        payload: [
          ['33.33%', '33.33%', '33.33%'],
          ['25%', '25%', '50%'],
          ['50%', '25%', '25%'],
        ],
      },
      {
        title: '4 columns',
        payload: [['25%', '25%', '25%', '25%']],
      },
    ],
  },
];

const initialValues = {
  subject: 'Welcome to Easy-email',
  subTitle: 'Nice to meet you!',
  content: BlockManager.getBlockByType(BasicType.PAGE)!.create({}),
};

export default function App() {

  return (
    <EmailEditorProvider
      data={initialValues}
      height={'calc(100vh - 72px)'}
      autoComplete
      dashed={false}
    >
      {({ values }) => {
        return (
          <StandardLayout
            categories={categories}
            showSourceCode={true}
          >
            <EmailEditor />
          </StandardLayout>
        );
      }}
    </EmailEditorProvider>
  );
}

```
npm package: @phiny1/vue-cli-plugin-p11n
Description: Vue CLI 3 plugin to pluginize your Vue project
Author: kazuya kawaguchi
Latest version: 0.4.1

# :electric_plug: vue-cli-plugin-p11n

[![CircleCI](https://circleci.com/gh/kazupon/vue-cli-plugin-p11n.svg?style=svg)](https://circleci.com/gh/kazupon/vue-cli-plugin-p11n)

Vue CLI 3 plugin to pluginize your Vue project

> p11n = pluginization

<a href="https://www.patreon.com/kazupon" target="_blank">
  <img src="https://c5.patreon.com/external/logo/become_a_patron_button.png" alt="Become a Patreon">
</a>


## :star: Features
Adjust your project generated by Vue CLI 3 to plugin development environment.

- Setup the plugin development codes for JavaScript or TypeScript
- Build for production code with rollup
- Adjust some files to distribute your Vue plugin
- Adjust to the environment where developable your Vue plugin with App.vue
- Provide demonstrate environment for your Vue plugin
- Setup the initial documentation environment with VuePress
- Automatically insert node_modules as rollup externals 


## :rocket: Getting Started
If yon don't have a project created with Vue CLI 3:

```sh
vue create vue-your-plugin
```

Install the plugin into your project:

```sh
cd vue-your-plugin
vue add p11n
```

## :package: Build Customizing

### Automatically insert node_modules as externals
If you don't want to bundle dependent modules like `axios` at your plugin, you can make it external using `dependencies` of `package.json`.

example the below:

```json
{
  ...
  "dependencies": {
    "axios": "^0.18.0"
  },
  ...
}
```

## :scroll: Changelog

Detailed changes for each release are documented in the [CHANGELOG.md](https://github.com/kazupon/vue-cli-plugin-p11n/blob/master/CHANGELOG.md).


## :exclamation: Issues

Please make sure to read the [Issue Reporting Checklist](https://github.com/kazupon/vue-cli-plugin-p11n/blob/master/CONTRIBUTING.md#issue-reporting-guidelines) before opening an issue. Issues not conforming to the guidelines may be closed immediately.


## :muscle: Contribution

Please make sure to read the [Contributing Guide](https://github.com/kazupon/vue-cli-plugin-p11n/blob/master/CONTRIBUTING.md) before making a pull request.


## :white_check_mark: TODO
See the [GitHub projects](https://github.com/kazupon/vue-cli-plugin-p11n/projects/1)


## :copyright: License

[MIT](http://opensource.org/licenses/MIT)
npm package: @phire/logger
Description: A basic, lightweight JavaScript logging package
Latest version: 1.0.6

# Logger
> A basic, lightweight JavaScript logging package.

![npm (scoped)](https://img.shields.io/npm/v/@phire/logger)
![npm bundle size (scoped)](https://img.shields.io/bundlephobia/min/@phire/logger)

This package will allow you to enhance your project's logging capabilities by providing features which are not included with the traditional JavaScript console.

## Getting Started

These are the instructions on how you can get this package up and running on your project locally.

You can either install this package locally using npm, or you can clone this project using Git.

### Prerequisites

If you are installing using npm, you should have the latest version of npm which can be obtained by running the following:

```sh
npm install npm@latest -g
```

### Installation

Clone repository using Git:
```sh
git clone https://github.com/Phire0/Logger.git
```

Install via npm:

```sh
npm install phire0/logger
```

## Usage

This package will allow you to enhance your project's logging capabilities beyond those offered by the default JavaScript console.

![Output Example](https://i.imgur.com/i3dSGjg.png)

Simply add this package to your project and instantiate a logger object (with an optional title) and you're good to go:

```javascript
const Logger = require('@phire/logger');

const logger = new Logger('My Title');

logger.log('This is an informative message!');
logger.success('The mission was successful!');
logger.warn('There might have been a slight issue...');
logger.error('Something has gone very wrong, send help!');
```

## Development setup

This package has no external dependencies and should be easily includable in your package. You can test that your installation was successful by running:

```sh
npm test
```

## Roadmap

See the [open issues](https://github.com/Phire0/Logger/issues) for a list of proposed features and known issues.

## Contact

Jamie Connelly – [@Phire0](https://twitter.com/Phire0)

Distributed under the MIT license. See ``LICENSE`` for more information.

[https://github.com/Phire0](https://github.com/Phire0/)

## Contributing

1. Fork it (<https://github.com/Phire0/Logger/fork>)
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -am 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Create a new Pull Request
npm package: @phiresky/pandoc-filter
Description: Pandoc filtering for Node.js
Author: Mike Henderson
Latest version: 2.0.0

## About

Node.js port of the Python [pandocfilters][] for filtering with [Pandoc][]

## Install

```bash
npm install -g pandoc-filter
```

## Example

```javascript
#!/usr/bin/env node

// Pandoc filter to convert all text to uppercase

var pandoc = require('pandoc-filter');
var Str = pandoc.Str;

function action(type,value,format,meta) {
	if (type === 'Str') return Str(value.toUpperCase());
}

pandoc.stdio(action);
```

Async using native promise

```javascript
#!/usr/bin/env node
'use strict';

var pandoc = require('../../../index');
var rp = require('request-promise-native');
var Str = pandoc.Str;

async function action(type,value,format,meta) {
	if (type === 'Str') return rp({
		uri: value,
		json: true
	}).then(function (data) {
		return Str(data.places[0]["post code"]);
	})
}

pandoc.stdioAsync(action);
```

## Compatibility Notes

Required node `>=v7.6` for async/await/promise support.

`v0.1.6` is required for pandoc versions after `1.17.2` to support the new JSON
format. See [this issue](https://github.com/mvhenderson/pandoc-filter-node/issues/5) for details.

## Credits

Thanks to [John MacFarlane](https://github.com/jgm) for Pandoc.

## License

MIT


[Pandoc]: http://johnmacfarlane.net/pandoc
[pandocfilters]: https://github.com/jgm/pandocfilters
npm package: @phiresky/redis-remotify
Description: a tiny library for remote calls and events via redis
Author: phiresky
Latest version: 0.2.4

# redis-remotify

A tiny library for remote calls and events via redis.

Install via npm:

    yarn add @phiresky/redis-remotify

## Example use

Say you have a backend like this:

```typescript
class Squarer {
	public async square(x: number) {
		// maybe do some more interesting stuff here
		return x ** 2;
	}
}
```

But you want to use the functions it provides in different processes. With this library, you can start a server process like this:

```typescript
import * as redis from "redis";
import { Listen } from "@phiresky/redis-remotify";

const squarer = new Squarer();

const pub = redis.createClient();
const sub = redis.createClient();
const r = new Listen("backend", { pub, sub });
// add methods to RPC interface with a name like Squarer.square()
r.listenAll(squarer);
```

And then call the functions from one or more separate node processes like this:

```typescript
import { Remotify } from "@phiresky/redis-remotify";

const backend = new Remotify("backend", { pub, sub });
const remoteSquarer = backend.remotifyClass(Squarer);
for (const x of [1, 2, 3, 4, 5, 11]) {
	const res = await remoteSquarer.square(x);
	// typeof res is number as expected
	console.log(x, "^2 =", res);
}
```

Of course it also works with single functions or other non-class objects. A more complete example can be seen in [examples/elaborate.ts](examples/elaborate.ts).
npm package: @phirmware/create-project
Description: A CLI that sets up your project in any framework of your choice
Author: Ojukwu Chibuzor
Latest version: 1.0.5

# @phirmware/create-project

This is a simple intractive CLI tool for setting up a project with a framework of your choice

<!-- [![codecov coverage](https://img.shields.io/codecov/c/github/phirmware/covid-facts)](https://codecov.io/github/phirmware/covid-facts) -->
[![travis build](https://travis-ci.com/phirmware/covid-facts.svg)](https://travis-ci.com/phirmware/create-project-cli)
[![version](https://img.shields.io/npm/v/covid-facts.svg?style=flat-square)](http://npm.im/@phirmware/create-project)
[![downloads](https://img.shields.io/npm/dm/covid-facts.svg?style=flat-square)](https://npm-stat.com/charts.html?package=@phirmware/create-project&from=2019-03-26)
[![MIT License](https://img.shields.io/npm/l/starwars-names.svg?style=flat-square)](http://opensource.org/licenses/MIT)


Setup a new project with a framework of your choice.

<!-- <a href="https://app.codesponsor.io/link/PKGFLnhDiFvsUA5P4kAXfiPs/kentcdodds/starwars-names" rel="nofollow"><img src="https://app.codesponsor.io/embed/PKGFLnhDiFvsUA5P4kAXfiPs/kentcdodds/starwars-names.svg" style="width: 888px; height: 68px;" alt="Sponsor" /></a> -->

<!-- ## Installation

This package is distributed via npm:

```java
npm install -g @phirmware/create-project
``` -->

## Usage

Using npx run 

```shell
npx @phirmware/create-project
```

<!-- If you globally installed the project run

```javascript
create-project
``` -->
Featured Frameworks include

```java
Angular
React
Vue
Gatsby
Nodejs (Express)
Nodejs with (ejs, hbs, pug, jade)
```

## CLI (Screenshot)
<img src="https://github.com/phirmware/create-project-cli/blob/master/img/create-project.png?raw=true" alt="phirmware" title="Screenshot of @phirmware/create-project" width="500" >

### Make me feel :heart: and appreciated

You can :star: the repo | Tell your friends about it | Fork it and submit Pull Request.

You can also follow me on **[Twitter](https://twitter.com/phirmware)**


You can view my portfolio @ [portfolio](https://portfolio.phirmware.me) and contact me through any medium here
[contacts](https://contacts.phirmware.me).
npm package: @phish108/cms
Description: A little jekyll tool for creating pages and blog posts
Author: phish108
Latest version: 1.0.2

## cms

very basic jekyll tool for creating pages and blog post

The tool create stubs for pages and blog posts on gh-pages. I created this tool because I forget about the meta data and I was hoping to have a basic tool on  

### Running

The general Synopsis is: 

```
npx -p @phish108/cms cms [page_type] "title of page"
```

To create a page

```
npx -p @phish108/cms cms page "hello world"
```

To create a post in _posts

```
npx -p @phish108/cms cms post "hello world"
```

The difference between `post` and other page types is that `post` will add a date and blog-post related meta-data to the header.

Note that the commands will run on the local directory and do NOT create subdirectories for you. 

### Installation

cms is intended to be used via npx, but 

```
npm install @phish108/cms
```
npm package: @phits/nodebb-plugin-discord-notification
Description: Send notifications of new posts and topics via Discord webhook.
Author: Amargon
Latest version: 2.0.3

# Discord Notifications for NodeBB

[![npm](https://img.shields.io/npm/v/nodebb-plugin-discord-notification.svg)](https://www.npmjs.com/package/nodebb-plugin-discord-notification) [![npm downloads](https://img.shields.io/npm/dt/nodebb-plugin-discord-notification.svg)](https://www.npmjs.com/package/nodebb-plugin-discord-notification) ![NodeBB Compatibility](https://packages.nodebb.org/api/v1/plugins/nodebb-plugin-discord-notification/compatibility.png)

Send notifications of new posts and topics via [Discord](https://discord.com/) webhook.

It’s like [NodeBB Slack](https://github.com/pichalite/nodebb-plugin-slack-extended) plugin, but for Discord. Fancy rich embeds included.

## Configuration

1. Install the plugin and activate it.
2. Create a Discord webhook (Server Settings &rarr; Webhooks).  
    You’ll get an URL like `https://discord.com/api/webhooks/<Webhook ID>/<Webhook Token>`.
3. Fill in **Webhook URL** field on the plugin settings page.
4. Restart NodeBB.

## Customization

The border color of an embedded post excerpt depends on a background color of its category.

The **Message** field is optional and blank by default.  
Fill it in to set a custom short text to be placed before the embedded content.

For example, you can add some mentions as on the screenshot below.  
Use `@here` or `@everyone` as usual or type `<@UserID>` to mention a member, `<@&RoleID>` to mention a role and `<#ChannelID>` for a channel reference.

To get the IDs, enable Developer Mode (Discord App Settings &rarr; Appearance), right click a user or a channel and select *Copy ID*. The other way is to add a backslash to mentions in the chat (i.e `\@User`, `\@Role` or `\#Channel`).

## Screenshots

### Notification

![ACP](screenshots/message.png)

### ACP UI

![ACP](screenshots/ui.png)
npm package: @phixid/in-memory-store
Description: An in-memory data-store intended to be used as a simple cache
Author: Kristof Hermans
Latest version: 2.0.0

# @phixid/in-memory-store

## Installation
```shell script
npm install @phixid/in-memory-store
```

## Usage
Include the module at the top of your project files as follows.

for Node.js:
```js
const { Store } = require('@phixid/in-memory-store');
```

for ES6 and above:
```js
import { Store } from '@phixid/in-memory-store';
```

### Basic Store
A basic Store which will expire items after an hour and does not clean itself:
```js
const myPersonalStore = new Store();
```

### Configured Store
There are only two configuration parameters for the Store. The first sets the amount of 
time (expressed in seconds) before an item in the store will be expired, this defaults 
to 3600 (an hour). The second will be a time interval (expressed in seconds) at which 
the store will check all entries and delete all those that have expired, this defaults 
to 0 (will not clean by default).

## API reference

### <a name="set"></a> set
Give it a key (string or number) and a value (any type) and it will put it in the Store.
```js
myPersonalStore.set('uniqueKey', 'this is going to be stored');
```

### <a name="get"></a> get
Give it a key and it will retrieve the entry from the Store.
```js
myPersonalStore.get('uniqueKey');
```

This give you back the value that is stored under the give key. If no entry was found 
for the given key, or the entry has already expired, this will return `null`.

### <a name="delete"></a> delete
Give it a key and it will delete the entry from the Store. This operation does not return anything.
The next time you check the Store for an entry with this key, it will not be there.
```js
myPersonalStore.delete('uniqueKey');
```

### <a name="memo"></a> memo
This is an all in one operation. Give it a key and a callback function and it will try 
to get an entry from the Store. If this does not succeed because it does not exist 
or it has already expired, it will invoke the callback and put the return value in the Store.
The return type is the same as the the one from [get](#get).
```js
myPersonalStore.memo('uniqueKey', () => 'this will be stored if there is nothing stored already')
```
npm package: @phizzard/gatsby-theme-tailwind-blog
Description: This is a fairly basic gatsby blog theme, similar in scope to the official gatsby blog theme but more opionated using tailwindcss and emotion for styling.
Latest version: 2.0.1

# gatsby-theme-tailwind-blog

This is a fairly basic gatsby blog theme, similar in scope to the official gatsby blog theme but more opionated using tailwindcss and emotion for styling.

## Installation

1 - Install theme
```sh
npm install --save @phizzard/gatsby-theme-tailwind-blog
```
or
```sh
yarn add @phizzard/gatsby-theme-tailwind-blog
```

2 - Add theme to `gatsby-config.js`
```js
module.exports = {
  plugins: [
    ...
    {
      resolve: "@phizzard/gatsby-theme-tailwind-blog",
      options: {
        contentPath: "content/posts",
        assetsPath: "content/assets",
        basePath: "/",
      },
    },
    ...
  ],
}
```

3 - Init `tailwind.js` file
```sh
npx tailwind@1.0.0-alpha.10 init
```
```sh
yarn tailwind@01.0.0-alpha.10 init
```
npm package: @phl/vdrag
Description: drag for vue
Author: askycat
Latest version: 1.2.3

# vdrag

> only drag for vue

>[Demo](https://askycat.github.io/phl-vdrag/)

## Installation

```sh
npm install @phl/vdrag --save
```
## Usage

Import v-drag into any file you are planning to use it.

```js
import drag from "@phl/vdrag"
Vue.use(drag);
```

```html
<div v-drag>Drag me!</div>
```