open-index/open-npm huggingface dataset:
npm package: @stencila/basha
Description: Bash interpreter for executable documents
Author: Stencila
Latest version: 0.3.18

# 🔨 Basha

#### Bash executor for executable documents

[![Build Status](https://dev.azure.com/stencila/stencila/_apis/build/status/stencila.basha?branchName=master)](https://dev.azure.com/stencila/stencila/_build/latest?definitionId=2&branchName=master)
[![Code coverage](https://codecov.io/gh/stencila/basha/branch/master/graph/badge.svg)](https://codecov.io/gh/stencila/basha)
[![NPM](https://img.shields.io/npm/v/@stencila/basha.svg?style=flat)](https://www.npmjs.com/package/@stencila/basha)
[![Docs](https://img.shields.io/badge/docs-latest-blue.svg)](https://stencila.github.io/basha/)

## 📦 Install

Basha is available as a Node.js package,

```bash
npm install @stencila/basha --global
```

In the future, Basha is likely to be bundled as part of the self contained [Stencila command line tool](https://github.com/stencila/stencila#cli).

Windows is [not yet supported](https://github.com/stencila/basha/issues/2).

## 🚀 Use

Register Basha so that it can be discovered by other executors on your machine,

```bash
basha register
```

If you have [`executa`](https://github.com/stencila/executa) installed globally, you can then run Basha using the `execute` command and specifying `bash` as the starting language,

```bash
executa execute --repl --lang bash
```

## 🛠️ Develop

You can test Basha manually using the local install of `executa` in this package. First, build and register the current version of Basha, so that Executa is able to find it,

```bash
npm run register
npx executa execute --repl --lang bash
```
npm package: @stencila/email-templates
Description: Stencila branded email templates
Author: https://github.com/stencila/email-templates/graphs/contributors
Latest version: 0.2.1

# @stencila/email-templates

These templates are intended to be used for transactional and marketing
emails.

They are built using [MJML](https://mjml.io).

## Quick Start

There are two kinds of templates,
[Transactional](https://sendgrid.com/use-cases/transactional-email/) and
[Marketing Campaign](https://sendgrid.com/solutions/email-marketing/)
templates.

1. `git clone git@github.com:stencila/email-templates.git && cd email-templates`
2. `npm install`
3. `npm run start`

## Production Build

To build the templates for use with other services, run:

`npm run build`

This will generate two directories inside the `./dist`, one for email
campaigns for use with Intercom (`./dist/campaigns/`), and one for usage via the Stencila Hub and
SendGrid (`./dist/transactional/`).

## Media asset notes

Images for use inside the email body should be `576px` wide to avoid overflow
issues on some email clients.

## Updating Intercom marketing templates

First run `npm run build` to generate the templates.

As part of the build step the `npm run prepare:intercom` will do the
following:

- Add a [`data-premailer="ignore"`
  attribute](https://www.intercom.com/help/en/articles/245-a-guide-to-creating-html-emails#best-practices-for-using-html-in-intercom)
  to `<style>` tags to prevent Intercom from inlining them when sending a
  campaign. This is because we already inline the necessary styles during
  compilation of this project.
- There are some styles which need to be
  inlined, namely the dynamic content from the Intercom email editor, for those
  we look for the special `/* inline-styles */` comment, and replace it with a
  simple `<style type="text/css">` tag which will be inlined by Intercom.

Navigate to [Intercom email templates
page](https://app.intercom.com/a/apps/y554dhej/settings/email-templates)
paste in the contents of the generated `campagins/template-intercom.html`
file into the editor and save the template.

## Update Hub

_To be documented_

## Sending Transactional Emails via SendGrid API

Transactional Email templates require some [substitution
tags](https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/#send-a-transactional-email)
to be defined for the variables to be correctly interpolated.

Each template's requirements can be seen in a `<template-name>-data.json`
file. Please note that there are some additional requirements for the
[transactional footer
partial](./src/_partials/transactional/footer-data.json). and the [campaign
footer partial](./src/_partials/campaign/footer-data.json).

## References

- [MJML documentation](https://mjml.io/documentation)
- [Intercom email template documentation](https://www.intercom.com/help/en/articles/245-a-guide-to-creating-html-emails)
- [SendGrid Editor documentation](https://sendgrid.com/docs/ui/sending-email/editor/)
npm package: @stencila/eslint-config
Description: Shared ESLint configuration for Stencila projects
Author: Stencila
Latest version: 3.0.4

# `@stencila/eslint-config`

## Adding rules

When adding a rule, prefer `error` over `warn` as warnings tend to be ignored, whereas errors
can not. If a rule is fixable (i.e. using the `--fix` makes errors go away) then there is no inconvenience
anyway by making it an error instead of a warning.

## General Usage

It's recommended that you install this package using NPM v7 or higher.
This will ensure that any `peerDependencies` are automatically installed for you.

From the project where you would like to use these settings, run:

```bash
npm install --save-dev @stencila/eslint-config
```

Then modify your `package.json` to include the following code block. If you already
have a `eslintConfig` configuration defined there, you’ll need to modify it.

```json5
  // …
  "eslintConfig": {
    // If your project is inside a monorepo, include `"root": true`, otherwise it can be omitted
    "root": true,
    "extends": "@stencila/eslint-config",
    "parserOptions": {
      "project": "./tsconfig.json"
    }
  }
  // …
```

### Installing with NPM v6 and below

For usage with NPM v6 and below, please follow the peerDependency warning messages shown in your console
when running the above command, or see the list of `peerDependencies` in the `package.json` file and install
them manually.

This is necessary because ESLint runs plugins relative to the end consuming project's root,
you need to install the all required plugins as dependencies of the project.
For details see [ESLint documentation](https://eslint.org/docs/developer-guide/shareable-configs#publishing-a-shareable-config).

## Using with React.js based projects

This is same as above, but adds a couple of extra React specific plugins

```bash
npm install --save-dev @stencila/eslint-config \
  eslint-plugin-jsx-a11y \
  eslint-plugin-react \
  eslint-plugin-react-hooks \
```

Then modify your `package.json` to include the following code block. If you already
have a `eslintConfig` configuration defined there, you’ll need to modify it.

```json5
  // …
  "eslintConfig": {
    // If your project is inside a monorepo, include `"root": true`, otherwise it can be omitted
    "root": true,
    "extends": [
      "plugin:react/recommended",
      "plugin:jsx-a11y/recommended",
      "plugin:react-hooks/recommended",
      "@stencila/eslint-config"
    ],
    "parserOptions": {
      "project": "./tsconfig.json"
    }
  }
  // …
```

## References

- [ESLint Shareable Configs](https://eslint.org/docs/developer-guide/shareable-configs)
- [eslint-plugin-prettier](https://github.com/prettier/eslint-config-prettier)
npm package: @stencila/eslint-config-stencil
Description: Shared ESLint configuration for Stencila projects using StencilJS
Author: Stencila
Latest version: 2.0.5

# `@stencila/eslint-config-stencil`

## Adding rules

When adding a rule, prefer `error` over `warn` as warnings tend to be ignored, whereas errors
can not. If a rule is fixable (i.e. using the `--fix` makes errors go away) then there is no inconvenience
anyway by making it an error instead of a warning.

## General Usage

It's recommended that you install this package using NPM v7 or higher.
This will ensure that any `peerDependencies` are automatically installed for you.

From the project where you would like to use these settings, run:

```bash
npm install --save-dev @stencila/eslint-config-stencil
```

Then modify your `package.json` to include the following code block. If you already
have a `eslintConfig` configuration defined there, you’ll need to modify it.

```json5
  // …
  "eslintConfig": {
    // If your project is inside a monorepo, include `"root": true`, otherwise it can be omitted
    "root": true,
    "extends": "@stencila/eslint-config-stencil",
    "parserOptions": {
      "project": "./tsconfig.json"
    }
  }
  // …
```

### Installing with NPM v6 and below

For usage with NPM v6 and below, please follow the peerDependency warning messages shown in your console
when running the above command, or see the list of `peerDependencies` in the `package.json` file and install
them manually.

This is necessary because ESLint runs plugins relative to the end consuming project's root,
you need to install the all required plugins as dependencies of the project.
For details see [ESLint documentation](https://eslint.org/docs/developer-guide/shareable-configs#publishing-a-shareable-config).

## References

- [ESLint Shareable Configs](https://eslint.org/docs/developer-guide/shareable-configs)
- [eslint-plugin-prettier](https://github.com/prettier/eslint-config-prettier)
npm package: @stencila/hub-client
Description: Client for the Stencila Hub API
Author: Stencila and contributors
Latest version: 4.47.19

# Stencila Hub Typescript Client

[![npm version](https://badge.fury.io/js/%40stencila%2Fhub-client.svg)](https://www.npmjs.com/package/@stencila/hub-client)

This Typescript package provides a client for the Stencila Hub API. It is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) from our [OpenAPI Schema](https://hub.stenci.la/api/schema).

The following should be supported:

- Environments
  * Node.js
  * Webpack
  * Browserify

- Language level
  * ES6

- Module system
  * CommonJS
  * ES6 module system

## Use

Install the package,

```sh
npm install @stencila/hub-client
```

Then, create a configuration containing your API token and pass it to the constructor of each of the [API classes](src/api) e.g.

```ts
import { Configuration, ProjectsApi } from '@stencila/hub-client'

// Create a configuration with the user's API token.
const config = new Configuration({
  apiKey: `Token ${STENCILA_HUB_TOKEN}`
})

// Pass the configuration to the API class constructor.
const api = new ProjectsApi(config)

// List all projects that are not public and that the user is
// a manager of.
const projects = await api.projectsList({
  public: false,
  role: 'manager'
})
```

See [tests](__tests__) for more examples.

## Develop

Both the generation and testing of the client require a local instance of the `manager` service to be running. To start that, at the top level of this repo, run

```sh
make -C manager run
```

### Generating client

To regenerate the client, at the top level of this repo, run

```sh
make -C clients typescript
```

There are two primary options for customizing the files this package:

1. Override the [Mustache templates](https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator/src/main/resources/typescript-fetch) and place them in the [`templates`](templates) folder

2. Turn off generation by adding the file to [`.openapi-generator-ignore`](.openapi-generator-ignore) (as we do for this `README.md` in fact!).


### Running tests

Tests run against a local instance of the `manager` service. So start that, generate the `src` directory, and then run the tests from in this directory,

```sh
npm test
```

## Continuous deployment

This client package is regenerated on each release and published on NPM. Tests of this package are currently not run on each release.
npm package: @stencila/jupita
Description: Jupyter interpreter for executable documents
Author: Stencila and contributors
Latest version: 0.3.0

# 🌞 Jupita

#### Jupyter executor for executable documents

[![Build Status](https://dev.azure.com/stencila/stencila/_apis/build/status/stencila.jupita?branchName=master)](https://dev.azure.com/stencila/stencila/_build/latest?definitionId=6&branchName=master)
[![Code coverage](https://codecov.io/gh/stencila/jupita/branch/master/graph/badge.svg)](https://codecov.io/gh/stencila/jupita)
[![NPM](http://img.shields.io/npm/v/@stencila/jupita.svg?style=flat)](https://www.npmjs.com/package/@stencila/jupita)
[![Docs](https://img.shields.io/badge/docs-latest-blue.svg)](https://stencila.github.io/jupita/)

## 👋 Introduction

Stencila [Executa](https://github.com/stencila/executa) defines an API executing nodes within an executable document that is based on JSON-RPC and able to used across multiple transports (e.g. `stdio`, `http`, `ws`). This package acts a bridge between that API and the Jupyter API, which uses it's own [Jupyter Messaging Protocol (JMP)](http://jupyter-client.readthedocs.io/en/stable/messaging.html) and [ZeroMQ](http://zeromq.org/) as a transport. It allows users of Stencila's interfaces to delegate execution to Jupyter kernels, instead of, or in addition to, Stencila's own executors.

## 📦 Install

```bash
npm install @stencila/jupita --global --python=python2.7
```

This package relies on dependencies with native add-ons (`xeromq`). So you will need to have `node-gyp` installed (https://github.com/nodejs/node-gyp#readme). The `--python` flag is necessary because, on OSX and Windows, `node-gyp` is only compatible with Python 2.7.

## 🚀 Use

Register Jupita so that it can be discovered by other executors on your machine,

```bash
jupita register
```

## 📖 Docs

API documentation is available at https://stencila.github.io/jupita.

## 💬 Discuss

We love feedback. Create a [new issue](https://github.com/stencila/jupita/issues/new), add to [existing issues](https://github.com/stencila/jupita/issues) or [chat](https://gitter.im/stencila/stencila) with members of the community.

## 🛠️ Develop

Most development tasks can be run directly from `npm` or via `make` wrapper recipes.

| Task                           | `npm`           | `make`       |
| ------------------------------ | --------------- | ------------ |
| Install and setup dependencies | `npm install`   | `make setup` |
| Check code for lint            | `npm run lint`  | `make lint`  |
| Run tests                      | `npm test`      | `make test`  |
| Run tests with coverage        | `npm run cover` | `make cover` |
| Build documentation            | `npm run docs`  | `make docs`  |

Note that the some of the tests require `python3` and the Python packages `matplotlib` and `Pillow` to be installed.

## 🙏 Acknowledgments

Many thanks to the nteract community for [`kernelspecs`](https://github.com/nteract/kernelspecs) and
[`spawnteract`](https://github.com/nteract/spawnteract), and to Nicolas Riesco for [`jmp`](https://github.com/n-riesco/jmp),
all of which made this implementation far easier!
npm package: @stencila/renovate-config
Description: Shared Renovate configuration for Stencila projects
Author: Stencila
Latest version: 0.4.3

# `@stencila/renovate-config`

## Usage

From the project where you would like to use these settings, run

```bash
npm install @stencila/renovate-config --save-dev
```

Then modify your `package.json` to include the following:

```json5
  // …
  "renovate": {
    "extends": ["@stencila"]
  }
  // …
```

The `default` preset config has a number of settings to reduce noise,

- weekly updates
- `devDependencies` are grouped into a single PR

If you want to use one of the other presets (see the `renovate-config` section of this [`package.json`](package.json)) then use a semicolon and the preset name e.g.

```json5
  // …
  "renovate": {
    "extends": ["@stencila:groupAll"]
  }
  // …
```

## References

- [Renovate Shared Configs](https://docs.renovatebot.com/config-presets/)
npm package: @stencila/semantic-release-config
Description: Shared semantic-release configuration for Stencila projects
Author: Stencila
Latest version: 2.0.20

# `@stencila/semantic-release-config`

> 💡 If your projects needs to publish to GitHub pages, you should use the related
> [`@stencila/semantic-release-config-gh-pages`](../semantic-release-config-gh-pages) package instead.

## Usage

From the project where you would like to use these settings, run

```bash
npm install @stencila/semantic-release-config --save-dev
```

Then modify your `package.json` to include the following code block. If you already
have a `release` configuration defined there, you’ll need to modify it.

```json5
  // …
  "release": {
    "extends": "@stencila/semantic-release-config"
  }
  // …
```

## References

- [Semantic Release Shared Configs](https://github.com/semantic-release/semantic-release/blob/caribou/docs/usage/shareable-configurations.md)
npm package: @stencila/semantic-release-config-gh-pages
Description: Shared semantic-release configuration for Stencila projects, with support for publishing to GitHub Pages
Author: Stencila
Latest version: 0.1.21

# `@stencila/semantic-release-config-gh-pages`

## Usage

This configuration package is same as [`@stencila/semantic-release-config`](../semantic-release-config),
but also adds support for publishing to GitHub Pages.

From the project where you would like to use these settings, run

```bash
npm install @stencila/semantic-release-config-gh-pages --save-dev
```

Then modify your `package.json` to include the following code block. If you already
have a `release` configuration defined there, you’ll need to modify it.

```json5
  // …
  "release": {
    "extends": "@stencila/semantic-release-config-gh-pages"
  }
  // …
```

## References

- [Semantic Release Shared Configs](https://github.com/semantic-release/semantic-release/blob/caribou/docs/usage/shareable-configurations.md)
npm package: @stencila/style
Description: Stencila's visual design resources and style guide
Author: https://github.com/stencila/style/graphs/contributors
Latest version: 1.2.0

## Stencila's visual design resources and style guide

[![Build](https://travis-ci.org/stencila/schema.svg?branch=master)](https://travis-ci.org/stencila/style)
[![NPM](http://img.shields.io/npm/v/@stencila/style.svg?style=flat)](https://www.npmjs.com/package/@stencila/style)
[![Docs](https://img.shields.io/badge/style-guide-blue.svg)](https://stencila.github.io/style/)
[![Community](https://img.shields.io/badge/join-community-green.svg)](https://community.stenci.la)
[![Chat](https://badges.gitter.im/stencila/stencila.svg)](https://gitter.im/stencila/stencila)


This is the place for Stencila's visual design resources (e.g. CSS, icons, logos) and style guide. The resources here will be reused across a number of other repositores including our main website ([`stencila/website`](https://github.com/stencila/website)) and the hub ([`stencila/hub`](https://github.com/stencila/hub)).

To get started with development, clone this repo:

```bash
git clone git@github.com:stencila/style.git
```

Then install the necessary Node packages:

```bash
npm install
```

Build SASS into CSS using the `watch` NPM script:

```bash
npm run watch
```

In a separate console, run Storybook and refresh your browser when you make changes to the CSS (Storybook automatically refreshes when you make changes to the stories):

```bash
npm run storybook
```

When you want to use this style from another repo, but do active dev here, `npm link` can be very useful. Setup this repo to be linked to from other repos:

```bash
sudo npm link
```

Then in the other repo link to this repo: 

```bash
npm link @stencila/style
```

When you have finished making the changes you need in this repo, commit with a `feat` or `fix` commit so that a new version gets published on NPM:

```bash
git add .
git commit -m 'fix:....'
```

Wait for the CI build to finish and the new version to be published (click the NPM badge above), then reinstall `@stencila/style` in the other repo so that the link is broken and the new version added to your `package.json`:

```bash
npm install --save @stencila/style
```


Please use [conventional changelog](https://github.com/conventional-changelog/conventional-changelog) style commit messages e.g. `docs(readme): fixed spelling mistake`. [`semantic-release`](https://github.com/semantic-release/semantic-release) is enabled to automate version management: minor version releases are done if any `feat(...)` commits are pushed, patch version releases are done if any `fix(...)` commits are pushed. See [the specifications](https://www.conventionalcommits.org/en/v1.0.0-beta.2/) for full details.

Package builds and Storybook generation are done on [Travis CI](https://travis-ci.org/stencila/style). Releases are made to [NPM](https://www.npmjs.com/package/@stencila/style) and [Github Releases](https://github.com/stencila/style/releases).