open-index/open-npm huggingface dataset:
npm package: @indiefin/adonis-queue-provider
Description: AdonisJS queue provider
Author: Jacques Tredoux
Latest version: 1.2.0

# AdonisJS Queue Provider

This package is a queue provider for the [AdonisJS](https://adonisjs.com/) framework.

## Register provider

Register the provider in `start/app.js`

```js
const providers = ['@indiefin/adonis-queue-provider']
```

## Create config and register driver

Create a `queue.js` file in config folder to register driver to use

### Available drivers

Memory :
[@indiefin/adonis-queue-provider-memory-driver](https://www.npmjs.com/package/@indiefin/adonis-queue-provider-memory-driver)

Amazon SQS :
[@indiefin/adonis-queue-provider-sqs-driver](https://www.npmjs.com/package/@indiefin/adonis-queue-provider-sqs-driver)

## Usage example

```js
const Queue = use('App/Queue')

const queue = await Queue.use('memory-queue')
await queue.sendMessage('message')
```
npm package: @indiefin/adonis-queue-provider-memory-driver
Description: AdonisJS queue provider - memory driver
Author: Jacques Tredoux
Latest version: 1.2.0

# AdonisJS Queue Provider - Memory Driver

This package is a memory driver for the [Indiefin Adonis queue provider](https://www.npmjs.com/package/@indiefin/adonis-queue-provider).

## Create config and register driver

Create a `queue.js` file in config folder to register the driver

### Example

```js
module.exports = {
  memory: {
    driver: require('@indiefin/adonis-queue-provider-memory-driver'),
  },
}
```
npm package: @indiefin/adonis-queue-provider-sqs-driver
Description: AdonisJS queue provider - sqs driver
Author: Jacques Tredoux
Latest version: 1.4.0

# AdonisJS Queue Provider - SQS Driver

This package is a Amazon SQS driver for the [Indiefin Adonis queue provider](https://www.npmjs.com/package/@indiefin/adonis-queue-provider).

## Create config and register driver

Create a `queue.js` file in config folder to register the driver

### Example

```js
module.exports = {
  sqs: {
    driver: require('@indiefin/adonis-queue-provider-sqs-driver'),
    accessKeyId: '',
    secretAccessKey: '',
    region: '',
    endpoint: '',
    queueName: '',
    fifoQueue: 'false',
    contentBasedDeduplication: 'false',
  },
}
```
npm package: @indiefin/freshsales
Description: Freshsales JS client
Author: Christopher Pitt
Latest version: 1.8.0

# Freshsales

This is a modest and ever-incomplete client, for the Freshsales API.

## Installation

```
npm i @indiefin/freshsales
```

## Usage

```js
import { Client } from "@indiefin/freshsales"

// You can define your API key and domain in a couple ways:
// 1. As the first and second parameters to the constructor
// 2. As FRESHSALES_KEY and FRESHSALES_DOMAIN environment variables
const client = new Client(/* FRESHSALES_KEY, FRESHSALES_DOMAIN */)

// creating a new lead
const { id } = await client.createLead({
    /* lead data */
})

// viewing an existing lead
const lead = await client.viewLead(id)

// deleting a lead
await client.deleteLead(id)
```

## Roadmap

* ~~these~~ are now implemented.

1. Manage other entities: ~~contacts~~, accounts, ~~deals~~ etc.
2. More advanced lead operations: bulk assignment, ~~activities~~, ~~conversion~~ etc.
3. Decorated responses

## Feedback

You can reach out on [Twitter](https://twitter.com/assertchris) for questions and support.
npm package: @indiekit/endpoint-auth
Description: IndieAuth authentication and authorization endpoint for Indiekit. Grants and verifies access tokens and authenticates users.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-auth

IndieAuth authentication and authorization endpoint for Indiekit. Grants and verifies access tokens and authenticates users.

## Installation

`npm install @indiekit/endpoint-auth`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/endpoint-auth` to your configuration, specifying options as required:

```jsonc
{
  "@indiekit/endpoint-auth": {
    "mountPath": "/authorize",
  },
}
```

You will also need to set the following environment variables:

- `SECRET` - used to sign and verify tokens and salt password
- `PASSWORD_SECRET` - hashed and salted password used when signing in. You can generate this value by visiting `/auth/new-password`

## Options

| Option      | Type     | Description                                                      |
| :---------- | :------- | :--------------------------------------------------------------- |
| `mountPath` | `string` | Path to authorization endpoint. _Optional_, defaults to `/auth`. |
npm package: @indiekit/endpoint-files
Description: File management endpoint for Indiekit. View files uploaded to your media endpoint and upload new files to it.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-files

File management endpoint for Indiekit. View files uploaded to your media endpoint and upload new files to it.

## Installation

`npm install @indiekit/endpoint-files`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/endpoint-files` to your configuration, specifying options as required:

```jsonc
{
  "@indiekit/endpoint-files": {
    "mountPath": "/dossiers", // fr-FR
  },
}
```

## Options

| Option      | Type     | Description                                                     |
| :---------- | :------- | :-------------------------------------------------------------- |
| `mountPath` | `string` | Path to management interface. _Optional_, defaults to `/files`. |
npm package: @indiekit/endpoint-image
Description: Image resizing endpoint for Indiekit. Adds real-time image processing routes that can be used by your publication.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-image

Image resizing endpoint for Indiekit. Adds real-time image processing routes that can be used by your publication.

## Installation

`npm install @indiekit/endpoint-image`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/endpoint-image` to your configuration, specifying options as required:

```jsonc
{
  "@indiekit/endpoint-image": {
    "mountPath": "/bild", // de-DE
  },
}
```

## Options

| Option      | Type       | Description                                                                                                                                                                  |
| :---------- | :--------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `cache`     | `Function` | [Keyv store](https://github.com/lukechilds/keyv).                                                                                                                            |
| `domains`   | `Array`    | List of domains to allow remote image resizing for. _Optional_, defaults to the [value provided for `publication.me`.](https://getindiekit.com/configuration/publication#me) |
| `me`        | `string`   | Publication URL. Used as prefix to image paths.                                                                                                                              |
| `mountPath` | `string`   | Path to image resizing endpoint. _Optional_, defaults to `/image`.                                                                                                           |
npm package: @indiekit/endpoint-json-feed
Description: Syndicate posts from Indiekit using JSON Feed.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/endpoint-json-feed

Syndicate posts from Indiekit using [JSON Feed](https://www.jsonfeed.org).

## Installation

`npm install @indiekit/endpoint-json-feed`

## Usage

Add `@indiekit/endpoint-json-feed` to your list of plug-ins, specifying options as required:

```jsonc
{
  "plugins": ["@indiekit/endpoint-json-feed"],
  "@indiekit/endpoint-share": {
    "fileName": "posts.json",
    "mountPath": "/feeds",
  },
}
```

## Options

| Option      | Type     | Description                                      |
| :---------- | :------- | :----------------------------------------------- |
| `feedName`  | `string` | File name. _Optional_, defaults to `/feed.json`. |
| `mountPath` | `string` | Path to JSON Feed. _Optional_, defaults to `/`.  |
npm package: @indiekit/endpoint-media
Description: Micropub media endpoint for Indiekit. Enables publishing media files (audio, photos, videos) to your website using the Micropub protocol.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-media

Micropub media endpoint for Indiekit. Enables publishing media files (audio, photos, videos) to your website using the Micropub protocol.

## Installation

`npm install @indiekit/endpoint-media`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/endpoint-media` to your configuration, specifying options as required:

```jsonc
{
  "@indiekit/endpoint-media": {
    "imageProcessing": {
      "resize": {
        "width": 320,
        "height": 320,
      },
    },
    "mountPath": "/medien", // de-DE
  },
}
```

## Options

| Option                   | Type     | Description                                                                 |
| :----------------------- | :------- | :-------------------------------------------------------------------------- |
| `imageProcessing`        | `object` | Image processing options. Only supports resizing for now.                   |
| `imageProcessing.resize` | `object` | Sharp [image resizing options](https://sharp.pixelplumbing.com/api-resize). |
| `mountPath`              | `string` | Path to listen to media upload requests. _Optional_, defaults to `/media`.  |

## Supported endpoint queries

- Previously published media: `/media?q=source`

  Supports `filter`, `limit` and `offset` and parameters. For example, `/media?q=source&filter=web&limit=10&offset=10`.
npm package: @indiekit/endpoint-micropub
Description: Micropub endpoint for Indiekit. Enables publishing content to your website using the Micropub protocol.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-micropub

Micropub endpoint for Indiekit. Enables publishing content to your website using the Micropub protocol.

## Installation

`npm install @indiekit/endpoint-micropub`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/endpoint-micropub` to your configuration, specifying options as required:

```json
{
  "@indiekit/endpoint-micropub": {
    "mountPath": "/publisher"
  }
}
```

## Options

| Option      | Type     | Description                                                               |
| :---------- | :------- | :------------------------------------------------------------------------ |
| `mountPath` | `string` | Path to listen to Micropub requests. _Optional_, defaults to `/micropub`. |

## Supported endpoint queries

- Configuration: `/micropub?q=config`
- Media endpoint location: `/micropub?q=media-endpoint`
- Available syndication targets (list): `/micropub?q=syndicate-to`
- Supported queries: `/micropub?q=config`
- Supported vocabularies (list): `/micropub?q=post-types`
- Publication categories (list): `/micropub?q=category`
- Previously published posts (list): `/micropub?q=source`
- Source content: `/micropub?q=source&url=WEBSITE_URL`

List queries support `filter`, `limit` and `offset` and parameters. For example, `/micropub?q=source&filter=web&limit=10&offset=10`.
npm package: @indiekit/endpoint-posts
Description: Post management endpoint for Indiekit. View posts published by your Micropub endpoint and publish new posts to it.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-posts

Post management endpoint for Indiekit. View posts published by your Micropub endpoint and publish new posts to it.

## Installation

`npm install @indiekit/endpoint-posts`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/endpoint-posts` to your configuration, specifying options as required:

```jsonc
{
  "@indiekit/endpoint-posts": {
    "mountPath": "/artikel", // de-DE
  },
}
```

## Options

| Option      | Type     | Description                                                     |
| :---------- | :------- | :-------------------------------------------------------------- |
| `mountPath` | `string` | Path to management interface. _Optional_, defaults to `/posts`. |
npm package: @indiekit/endpoint-share
Description: Share endpoint for Indiekit. Provides a simple interface for bookmarking websites and publishing them on your website.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-share

Share endpoint for Indiekit. Provides a simple interface for bookmarking websites and publishing them on your website. Inspired and developed from [an idea originally described by Max Böck](https://mxb.dev/blog/indieweb-link-sharing/).

## Installation

`npm install @indiekit/endpoint-share`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/endpoint-share` to your configuration, specifying options as required:

```jsonc
{
  "@indiekit/endpoint-share": {
    "mountPath": "/teilen", // de-DE
  },
}
```

## Options

| Option      | Type     | Description                                             |
| :---------- | :------- | :------------------------------------------------------ |
| `mountPath` | `string` | Path to share screen. _Optional_, defaults to `/share`. |
npm package: @indiekit/endpoint-syndicate
Description: Syndication endpoint for Indiekit. Provides an endpoint you can ping to check that recently published posts have been posted to configured syndication targets.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-syndicate

Syndication endpoint for Indiekit. Provides an endpoint you can ping to check that recently published posts have been posted to configured syndication targets.

## Installation

`npm install @indiekit/endpoint-syndicate`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/endpoint-syndicate` to your configuration, specifying options as required:

```jsonc
{
  "@indiekit/endpoint-syndicate": {
    "mountPath": "/syndikat", // de-DE
  },
}
```

## Options

| Option      | Type     | Description                                                         |
| :---------- | :------- | :------------------------------------------------------------------ |
| `mountPath` | `string` | Path to syndication endpoint. _Optional_, defaults to `/syndicate`. |

## Supported endpoint queries

- URL to syndicate: `/syndicate?source_url=https%3A%2F%2Fwebsite.example%2Fposts%2F1`

## Authorization

Authorization is needed to update posts with any syndicated URLs. This can be done in a few different ways:

### Query string

Include your server’s access token as the `token` query:

```http
POST /syndicate?token=[ACCESS_TOKEN] HTTP/1.1
Host: indiekit.website.example
Accept: application/json
```

You can find an access token on your server’s status page.

### Form body

Include a value for `access_token` in your form submission:

```http
POST /syndicate HTTP/1.1
Host: indiekit.website.example
Content-type: application/x-www-form-urlencoded
Accept: application/json

access_token=[ACCESS_TOKEN]
```

You can find an access token on your server’s status page.

### Using a webhook secret (Netlify only)

If you are using [Netlify](https://www.netlify.com) to host your website, you can send a notification to the syndication endpoint once a deployment has been completed.

First, create an environment variable for your Indiekit server called `WEBHOOK_SECRET` and give it a secret, hard-to-guess value.

Then on Netlify, in your site’s ‘Build & Deploy’ settings, add an [outgoing webhook](https://docs.netlify.com/site-deploys/notifications/#outgoing-webhooks) with the following values:

- **Event to listen for:** ‘Deploy succeeded’
- **URL to notify:** `[YOUR_INDIEKIT_URL]/syndicate`
- **JWS secret token:** The same value you used for `WEBHOOK_SECRET`
npm package: @indiekit/endpoint-token
Description: Token endpoint for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-alpha.12
Deprecated: Package no longer supported. Upgrade to @indiekit/endpoint-auth

# @indiekit/endpoint-token

Token endpoint for Indiekit.

## Installation

`npm i @indiekit/endpoint-token`

## Usage

Add `@indiekit/endpoint-token` to your list of plug-ins, specifying options as required:

```jsonc
{
  "plugins": ["@indiekit/endpoint-token"],
  "@indiekit/endpoint-token": {
    "mountPath": "/jeton" // fr-FR
  }
}
```

You will also need to set a `TOKEN_SECRET` environment variable to sign and verify tokens created by this endpoint.

## Options

| Option      | Type     | Description                                               |
| :---------- | :------- | :-------------------------------------------------------- |
| `mountPath` | `string` | Path to token endpoint. _Optional_, defaults to `/token`. |
npm package: @indiekit/endpoint-webmention-io
Description: Webmention.io endpoint for Indiekit. View webmentions collected by the Webmention.io service.
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/endpoint-webmention-io

Webmention.io endpoint for Indiekit. View webmentions collected by the Webmention.io service.

## Installation

`npm i @indiekit/endpoint-webmention-io`

## Usage

Add `@indiekit/endpoint-webmention-io` to your list of plug-ins, specifying options as required:

```jsonc
{
  "plugins": ["@indiekit/endpoint-webmention-io"],
  "@indiekit/endpoint-webmention-io": {
    "mountPath": "/webmentions",
  },
}
```

## Options

| Option      | Type     | Description                                                                                                           |
| :---------- | :------- | :-------------------------------------------------------------------------------------------------------------------- |
| `mountPath` | `string` | Path to management interface. _Optional_, defaults to `/webmentions`.                                                 |
| `token`     | `string` | [Webmention.io](https://webmention.io/settings) API token. _Required_, defaults to `process.env.WEBMENTION_IO_TOKEN`. |
npm package: @indiekit/post-type-article
Description: Article post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-article

Article post type for Indiekit.

## Installation

`npm install @indiekit/post-type-article`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/post-type-article` to your configuration, specifying options as required:

```json
{
  "@indiekit/post-type-article": {
    "name": "Article"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-audio
Description: Audio post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-audio

Audio post type for Indiekit.

## Installation

`npm install @indiekit/post-type-audio`

## Usage

Add `@indiekit/post-type-audio` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/post-type-audio"],
  "@indiekit/post-type-audio": {
    "name": "Audio"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-bookmark
Description: Bookmark post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-bookmark

Bookmark post type for Indiekit.

## Installation

`npm install @indiekit/post-type-bookmark`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/post-type-bookmark` to your configuration, specifying options as required:

```json
{
  "@indiekit/post-type-bookmark": {
    "name": "Bookmark"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-event
Description: Event post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-event

Event post type for Indiekit.

## Installation

`npm install @indiekit/post-type-event`

## Usage

Add `@indiekit/post-type-event` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/post-type-event"],
  "@indiekit/post-type-event": {
    "name": "Event"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-jam
Description: Jam post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-jam

Jam post type for Indiekit.

## Installation

`npm install @indiekit/post-type-jam`

## Usage

Add `@indiekit/post-type-jam` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/post-type-jam"],
  "@indiekit/post-type-jam": {
    "name": "Jam"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-like
Description: Like post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-like

Like post type for Indiekit.

## Installation

`npm install @indiekit/post-type-like`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/post-type-like` to your configuration, specifying options as required:

```json
{
  "@indiekit/post-type-like": {
    "name": "Like"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-note
Description: Note post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-note

Note post type for Indiekit.

## Installation

`npm install @indiekit/post-type-note`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/post-type-note` to your configuration, specifying options as required:

```json
{
  "@indiekit/post-type-note": {
    "name": "Note"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-photo
Description: Photo post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-photo

Photo post type for Indiekit.

## Installation

`npm install @indiekit/post-type-photo`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/post-type-photo` to your configuration, specifying options as required:

```json
{
  "@indiekit/post-type-photo": {
    "name": "Photo"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-reply
Description: Reply post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-reply

Reply post type for Indiekit.

## Installation

`npm install @indiekit/post-type-reply`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

To customise the behaviour of this plug-in, add `@indiekit/post-type-reply` to your configuration, specifying options as required:

```json
{
  "@indiekit/post-type-reply": {
    "name": "Reply"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-repost
Description: Repost post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-repost

Repost post type for Indiekit.

## Installation

`npm install @indiekit/post-type-repost`

## Usage

Add `@indiekit/post-type-repost` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/post-type-repost"],
  "@indiekit/post-type-repost": {
    "name": "Repost"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-rsvp
Description: RSVP post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-rsvp

RSVP post type for Indiekit.

## Installation

`npm install @indiekit/post-type-rsvp`

## Usage

Add `@indiekit/post-type-rsvp` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/post-type-rsvp"],
  "@indiekit/post-type-rsvp": {
    "name": "RSVP"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/post-type-video
Description: Video post type for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/post-type-video

Video post type for Indiekit.

## Installation

`npm install @indiekit/post-type-video`

## Usage

Add `@indiekit/post-type-video` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/post-type-video"],
  "@indiekit/post-type-video": {
    "name": "Video"
  }
}
```

## Options

| Option   | Type     | Description                       |
| :------- | :------- | :-------------------------------- |
| `name`   | `string` | Post type name.                   |
| `fields` | `Array`  | Fields to show in post interface. |
npm package: @indiekit/preset-eleventy
Description: Eleventy publication preset for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/preset-eleventy

[Eleventy](https://www.11ty.dev) publication preset for Indiekit.

## Installation

`npm install @indiekit/preset-eleventy`

## Usage

Add `@indiekit/preset-eleventy` to your list of plug-ins:

```json
{
  "plugins": ["@indiekit/preset-eleventy"]
}
```
npm package: @indiekit/preset-hugo
Description: Hugo publication preset for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/preset-hugo

[Hugo](https://gohugo.io) publication preset for Indiekit.

## Installation

`npm install @indiekit/preset-hugo`

## Usage

Add `@indiekit/preset-hugo` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/preset-hugo"],
  "@indiekit/preset-hugo": {
    "frontMatterFormat": "json"
  }
}
```

## Options

| Option              | Type     | Description                                                                            |
| :------------------ | :------- | :------------------------------------------------------------------------------------- |
| `frontMatterFormat` | `string` | Front matter format to use (`json`, `toml` or `yaml`). _Optional_, defaults to `yaml`. |
npm package: @indiekit/preset-jekyll
Description: Jekyll publication preset for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.25

# @indiekit/preset-jekyll

[Jekyll](https://jekyllrb.com) publication preset for Indiekit. Can also be used with static site generators that use a similar folder structure and document format, like [Eleventy](https://www.11ty.dev) and [Lume](https://lume.land).

## Installation

`npm install @indiekit/preset-jekyll`

> [!NOTE]
> This package is installed alongside `@indiekit/indiekit`

## Usage

Add `@indiekit/preset-jekyll` to your list of plug-ins:

```json
{
  "plugins": ["@indiekit/preset-jekyll"]
}
```
npm package: @indiekit/store-bitbucket
Description: Bitbucket content store adaptor for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/store-bitbucket

[Bitbucket](https://bitbucket.org) content store adaptor for Indiekit.

## Installation

`npm install @indiekit/store-bitbucket`

## Requirements

A [Bitbucket app password](https://bitbucket.org/account/settings/app-passwords/).

> [!IMPORTANT]
> Store your app password in an environment variable called `BITBUCKET_PASSWORD` so that only you and the application can see it.

## Usage

Add `@indiekit/store-bitbucket` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/store-bitbucket"],
  "@indiekit/store-bitbucket": {
    "user": "username",
    "repo": "reponame"
  }
}
```

## Options

| Option     | Type     | Description                                                                         |
| :--------- | :------- | :---------------------------------------------------------------------------------- |
| `user`     | `string` | Your Bitbucket username. _Required_.                                                |
| `repo`     | `string` | The name of your Bitbucket repository. _Required_.                                  |
| `branch`   | `string` | The branch files will be saved to. _Optional_, defaults to `main`.                  |
| `password` | `string` | A Bitbucket app password. _Required_, defaults to `process.env.BITBUCKET_PASSWORD`. |
npm package: @indiekit/store-file-system
Description: File system content store adaptor for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/store-file-system

File system content store adaptor for Indiekit.

## Installation

`npm install @indiekit/store-file-system`

## Usage

Add `@indiekit/store-file-system` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/store-file-system"],
  "@indiekit/store-file-system": {
    "directory": "project/www"
  }
}
```

## Options

| Option      | Type     | Description                                                                    |
| :---------- | :------- | :----------------------------------------------------------------------------- |
| `directory` | `string` | Directory to save files to. _Optional_, defaults to current working directory. |
npm package: @indiekit/store-ftp
Description: FTP content store adaptor for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/store-ftp

FTP content store adaptor for Indiekit.

## Installation

`npm install @indiekit/store-ftp`

## Requirements

A FTP server you can access with a username and password.

> [!IMPORTANT]
> Store your username and password in environment variables called `FTP_USER` and `FTP_PASSWORD` so that only you and the application can see them.

## Usage

Add `@indiekit/store-ftp` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/store-ftp"],
  "@indiekit/store-ftp": {
    "host": "ftp.server.example",
    "user": "username",
    "directory": "project/www"
  }
}
```

## Options

| Option      | Type     | Description                                                            |
| :---------- | :------- | :--------------------------------------------------------------------- |
| `host`      | `string` | Your FTP hostname, for example ftp.server.example. _Required_.         |
| `port`      | `number` | Your FTP port. _Optional_, defaults to `22`.                           |
| `user`      | `string` | Your FTP username. _Required_, defaults to `process.env.FTP_USER`.     |
| `password`  | `string` | Your FTP password. _Required_, defaults to `process.env.FTP_PASSWORD`. |
| `directory` | `string` | Directory to save files to. _Optional_.                                |
npm package: @indiekit/store-gitea
Description: Gitea content store adaptor for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/store-gitea

[Gitea](https://gitea.com) (or Forgejo-based) content store adaptor for Indiekit.

## Installation

`npm install @indiekit/store-gitea`

## Requirements

A Gitea access token with read and write permissions to a repository.

> [!IMPORTANT]
> Store your access token in an environment variable called `GITEA_TOKEN` so that only you and the application can see it.

## Usage

Add `@indiekit/store-gitea` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/store-gitea"],
  "@indiekit/store-gitea": {
    "user": "username",
    "repo": "reponame"
  }
}
```

## Options

| Option     | Type     | Description                                                              |
| :--------- | :------- | :----------------------------------------------------------------------- |
| `instance` | `string` | Gitea instance URL. _Optional_, defaults to `https://gitea.com`.         |
| `user`     | `string` | Your Gitea username. _Required_.                                         |
| `repo`     | `string` | The name of your Gitea repository. _Required_.                           |
| `branch`   | `string` | The branch files will be saved to. _Optional_, defaults to `main`.       |
| `token`    | `string` | A Gitea access token. _Required_, defaults to `process.env.GITEA_TOKEN`. |
npm package: @indiekit/store-github
Description: GitHub content store adaptor for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/store-github

[GitHub](https://github.com) content store adaptor for Indiekit.

## Installation

`npm install @indiekit/store-github`

## Requirements

A [GitHub personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) with read and write permissions to a repository.

If creating a [fine-grained personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#fine-grained-personal-access-tokens), ensure that permissions for your repository include **Read** access to **Metadata** and **Read and write** access to **Contents**. The token expiration is up to you.

> [!IMPORTANT]
> Store your personal access token in an environment variable called `GITHUB_TOKEN` so that only you and the application can see it.

## Usage

Add `@indiekit/store-github` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/store-github"],
  "@indiekit/store-github": {
    "user": "username",
    "repo": "reponame"
  }
}
```

## Options

| Option    | Type     | Description                                                                         |
| :-------- | :------- | :---------------------------------------------------------------------------------- |
| `baseUrl` | `string` | Enterprise GitHub API URL. _Optional_, defaults to `https://api.github.com`.        |
| `user`    | `string` | Your GitHub username. _Required_.                                                   |
| `repo`    | `string` | The name of your GitHub repository. _Required_.                                     |
| `branch`  | `string` | The branch files will be saved to. _Optional_, defaults to `main`.                  |
| `token`   | `string` | A GitHub personal access token. _Required_, defaults to `process.env.GITHUB_TOKEN`. |
npm package: @indiekit/store-gitlab
Description: GitLab content store adaptor for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/store-gitlab

[GitLab](https://gitlab.com) content store adaptor for Indiekit.

## Installation

`npm install @indiekit/store-gitlab`

## Requirements

A [GitLab personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) with read and write permissions to a repository.

> [!IMPORTANT]
> Store your personal access token in an environment variable called `GITLAB_TOKEN` so that only you and the application can see it.

## Usage

Add `@indiekit/store-gitlab` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/store-gitlab"],
  "@indiekit/store-gitlab": {
    "user": "username",
    "repo": "reponame"
  }
}
```

## Options

| Option      | Type     | Description                                                                   |
| :---------- | :------- | :---------------------------------------------------------------------------- |
| `instance`  | `string` | GitLab instance URL. _Optional_, defaults to `https://gitlab.com`.            |
| `projectId` | `string` | GitLab project ID. _Required (if `user` and `repo` not provided)_.            |
| `user`      | `string` | Your GitLab username. _Required (if `projectId` not provided)_.               |
| `repo`      | `string` | The name of your GitLab repository. _Required (if `projectId` not provided)_. |
| `branch`    | `string` | The branch files will be saved to. _Optional_, defaults to `main`.            |
| `token`     | `string` | A GitLab access token. _Required_, defaults to `process.env.GITLAB_TOKEN`.    |
npm package: @indiekit/store-s3
Description: S3-compatible content store adaptor for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/store-s3

S3-compatible content store adaptor for Indiekit.

## Installation

`npm install @indiekit/store-s3`

## Requirements

A pair of S3-compatible API access and secret keys.

> [!IMPORTANT]
> Store your API access and secret keys in environment variables called `S3_ACCESS_KEY` and `S3_SECRET_KEY` so that only you and the application can see them.

## Usage

Add `@indiekit/store-s3` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/store-s3"],
  "@indiekit/store-s3": {
    "region": "us-west",
    "endpoint": "https://s3-example-us-west-1.amazonaws.com",
    "bucket": "website"
  }
}
```

## Options

| Option      | Type     | Description                                                              |
| :---------- | :------- | :----------------------------------------------------------------------- |
| `accessKey` | `string` | Your S3 access key. _Required_, defaults to `process.env.S3_ACCESS_KEY`. |
| `secretKey` | `string` | Your S3 secret key. _Required_, defaults to `process.env.S3_SECRET_KEY`. |
| `region`    | `string` | Your S3 region name, for example `"us-west"`. _Required_.                |
| `endpoint`  | `string` | Your S3 endpoint. _Required_.                                            |
| `bucket`    | `string` | Your S3 bucket name. _Required_.                                         |
| `acl`       | `string` | Access Control List (ACL) policy, defaults to `"public-read"`.           |
npm package: @indiekit/syndicator-bluesky
Description: Bluesky syndicator for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/syndicator-bluesky

[Bluesky](https://bsky.social) syndicator for Indiekit.

## Installation

`npm i @indiekit/syndicator-bluesky`

## Requirements

A Bluesky [app password](https://bsky.app/settings/app-passwords). This plug-in does not require access to your direct messages.

> [!IMPORTANT]
> Store your app password in an environment variable called `BLUESKY_PASSWORD` so that only you and the application can see it.

## Usage

Add `@indiekit/syndicator-bluesky` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/syndicator-bluesky"],
  "@indiekit/syndicator-bluesky": {
    "handle": "username.bsky.social",
    "checked": true
  }
}
```

## Options

| Option             | Type      | Description                                                                                                                 |
| :----------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------- |
| `handle`           | `string`  | Your Bluesky handle (without the `@`). _Required_.                                                                          |
| `password`         | `string`  | A Bluesky app password. _Required_, defaults to `process.env.BLUESKY_PASSWORD`.                                             |
| `profileUrl`       | `string`  | Bluesky profile URL prefix. Used in the URL returned in syndicated URLs. _Optional_, defaults to `https://bsky.app/profile` |
| `serviceUrl`       | `string`  | Bluesky service URL. Used to connect to a Bluesky service API. _Optional_, defaults to `https://bsky.social`                |
| `checked`          | `boolean` | Tell a Micropub client whether this syndicator should be enabled by default. _Optional_, defaults to `false`.               |
| `includePermalink` | `boolean` | Always include a link to the original post. _Optional_, defaults to `false`.                                                |
npm package: @indiekit/syndicator-internet-archive
Description: Internet Archive syndicator for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/syndicator-internet-archive

[Internet Archive](https://archive.org) syndicator for Indiekit.

## Installation

`npm install @indiekit/syndicator-internet-archive`

## Requirements

A pair of [Internet Archive API access and secret keys](https://archive.org/account/s3.php).

> [!IMPORTANT]
> Store your API access and secret keys in environment variables called `INTERNET_ARCHIVE_ACCESS_KEY` and `INTERNET_ARCHIVE_SECRET_KEY` so that only you and the application can see them.

## Usage

Add `@indiekit/syndicator-internet-archive` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/syndicator-internet-archive"],
  "@indiekit/syndicator-internet-archive": {
    "checked": true
  }
}
```

## Options

| Option      | Type      | Description                                                                                                                                                          |
| :---------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `accessKey` | `string`  | Your S3 access key. _Required_, defaults to `process.env.INTERNET_ARCHIVE_ACCESS_KEY`.                                                                               |
| `secretKey` | `string`  | Your S3 secret key. _Required_, defaults to `process.env.INTERNET_ARCHIVE_SECRET_KEY`.                                                                               |
| `checked`   | `boolean` | Tell a Micropub client whether this syndicator should be enabled by default. _Optional_, defaults to `false`.                                                        |
| `name`      | `string`  | Name for this syndicator that may appear in a Micropub client’s publishing interface. _Optional_, defaults to `Internet Archive`.                                    |
| `uid`       | `string`  | Value Micropub client will include when publishing a post to indicate that it should be sent to this syndicator. _Optional_, defaults to `https://web.archive.org/`. |
npm package: @indiekit/syndicator-mastodon
Description: Mastodon syndicator for Indiekit
Author: Paul Robert Lloyd
Latest version: 1.0.0-beta.27

# @indiekit/syndicator-mastodon

[Mastodon](https://joinmastodon.org) syndicator for Indiekit.

## Installation

`npm install @indiekit/syndicator-mastodon`

## Requirements

An Mastodon API access token. You can request one from `/settings/applications` on your Mastodon server.

> [!IMPORTANT]
> Store your API key in an environment variable called `MASTODON_ACCESS_TOKEN` so that only you and the application can see it.

> [!IMPORTANT]
> Mastodon access tokens do not expire.

## Usage

Add `@indiekit/syndicator-mastodon` to your list of plug-ins, specifying options as required:

```json
{
  "plugins": ["@indiekit/syndicator-mastodon"],
  "@indiekit/syndicator-mastodon": {
    "url": "https://mastodon.server",
    "user": "username",
    "checked": true
  }
}
```

When sharing content to Mastodon using this syndicator, any post visibility setting will be used for the syndicated status:

| Micropub post visibility | Mastodon status visibility |
| ------------------------ | -------------------------- |
| Public                   | Public                     |
| Unlisted                 | Unlisted                   |
| Private                  | Followers only             |

## Options

| Option             | Type      | Description                                                                                                   |
| :----------------- | :-------- | :------------------------------------------------------------------------------------------------------------ |
| `accessToken`      | `string`  | Your Mastodon access token. _Required_, defaults to `process.env.MASTODON_ACCESS_TOKEN`.                      |
| `user`             | `string`  | Your Mastodon username (without the `@`). _Required_.                                                         |
| `url`              | `string`  | Your Mastodon server. _Optional_, defaults to `https://mastodon.social`.                                      |
| `characterLimit`   | `number`  | Maximum number of characters before a post is truncated. _Optional_, defaults to `500`.                       |
| `checked`          | `boolean` | Tell a Micropub client whether this syndicator should be enabled by default. _Optional_, defaults to `false`. |
| `includePermalink` | `boolean` | Always include a link to the original post. _Optional_, defaults to `false`.                                  |