open-index/open-npm huggingface dataset:
npm package: @simtropolis/helpers
Description: Javascript Helpers for working with the Simtropolis [Content API](https://simtropolis.org/docs/content-api/)
Author: Simtropolis
Latest version: 1.1.75

# Simtropolis JavaScript Helpers

Javascript Helpers for working with the Simtropolis [Content API](https://simtropolis.org/docs/content-api/)

## Usage

See https://simtropolis.org/docs/content-api/javascript/#helpers

## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/helpers-gatsby
Description: Gatsby Helpers for working with the Simtropolis [Content API](https://simtropolis.org/docs/content-api/)
Author: Simtropolis
Latest version: 2.0.5

# Simtropolis Gatsby Helpers

Gatsby Helpers for working with the Simtropolis [Content API](https://simtropolis.org/docs/content-api/)

## Usage

See https://simtropolis.org/docs/jamstack/gatsby/

## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/html-to-mobiledoc
Description: Convert HTML strings into Mobiledoc objects.
Author: Simtropolis
Latest version: 2.0.3

# HTML To Mobiledoc

Convert HTML strings into Mobiledoc objects.

## Install

`npm install @simtropolis/html-to-mobiledoc --save`

or

`yarn add @simtropolis/html-to-mobiledoc`


## Usage

``` js
const converter = require('@simtropolis/html-to-mobiledoc');
converter.toMobiledoc('<p>Hello World!</p>');
```

By default, we use the parser plugins from `@simtropolis/kg-parser-plugins`, which convert to Simtropolis's cards.
To override this, pass in your own parser plugins:

``` js
converter.toMobiledoc('<p>Hello World!</p>', {plugins: []});
```

You can also extend Simtropolis's plugins:

``` js
const plugins = require('@simtropolis/kg-parser-plugins');

const myPlugin = (node) => {
    // do stuff
};

plugins.push(myPlugin);
```


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/http-cache-utils
Description: Set of HTTP caching related utilities and constants
Author: Simtropolis
Latest version: 0.1.6

# Http Cache Utils

Set of HTTP caching related utilities and constants

## Install

`npm install @simtropolis/http-cache-utils --save`

or

`yarn add @simtropolis/http-cache-utils`

## Usage


## Develop

This is a monorepo package.

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.



## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests



# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/http-stream
Description: A http stream to use alongside bunyan for logging
Author: Simtropolis
Latest version: 0.1.17

# Http Stream

A http stream to use alongside bunyan for logging

## Install

`npm install @simtropolis/http-stream --save`

or

`yarn add @simtropolis/http-stream`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/image-transform
Description: ## Install
Author: Simtropolis
Latest version: 1.2.3

# Image Transform

## Install

`npm install @simtropolis/image-transform --save`

or

`yarn add @simtropolis/image-transform`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/jest-snapshot
Description: Tools for using jest snapshot without jest
Author: Simtropolis
Latest version: 0.4.8

# Jest Snapshot

Tools for using jest snapshot without jest

## Install

`npm install @simtropolis/jest-snapshot --save`

or

`yarn add @simtropolis/jest-snapshot`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-card-factory
Description: ## Install
Author: Simtropolis
Latest version: 4.0.3

# Koenig Card Factory

## Install

`npm install @simtropolis/kg-card-factory --save`

or

`yarn add @simtropolis/kg-card-factory`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-clean-basic-html
Description: ## Install
Author: Simtropolis
Latest version: 3.0.3

# Koenig Clean Basic Html

## Install

`npm install @simtropolis/kg-clean-basic-html --save`

or

`yarn add @simtropolis/kg-clean-basic-html`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-default-atoms
Description: ## Install
Author: Simtropolis
Latest version: 4.0.0

# Koenig Default Atoms

## Install

`npm install @simtropolis/kg-default-atoms --save`

or

`yarn add @simtropolis/kg-default-atoms`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-default-cards
Description: ## Install
Author: Simtropolis
Latest version: 6.0.3

# Koenig Default Cards

## Install

`npm install @simtropolis/kg-default-cards --save`

or

`yarn add @simtropolis/kg-default-cards`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-default-nodes
Description: Lexical node definitions for the default nodes used in Simtropolis&#39;s Koenig editor
Author: Simtropolis
Latest version: 0.0.6

# Koenig Default Nodes

Lexical node definitions for the default nodes used in Simtropolis&#39;s Koenig editor

## Install

`npm install @simtropolis/kg-default-nodes --save`

or

`yarn add @simtropolis/kg-default-nodes`

## Usage


## Develop

This is a monorepo package.

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.



## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests



# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-lexical-html-renderer
Description: Renders a lexical editor state string to a HTML string.
Author: Simtropolis
Latest version: 0.1.1

# Koenig Lexical Html Renderer

Renders a lexical editor state string to a HTML string.

This library differs from Lexical's own [lexical-html](https://github.com/facebook/lexical/tree/main/packages/lexical-html) package in a few ways:

1. it's output target is not an editor but rendered web pages or emails which means the handling of nodes (especially custom DecoratorNodes) will differ to the node's built-in editor-focused rendering
2. render output will vary based on supplied options and targets, e.g. when rendering for email the output may use `<table>` elements in place of modern HTML structure
3. it's primary usage environment is server-side

## Install

`npm install @simtropolis/kg-lexical-html-renderer --save`

or

`yarn add @simtropolis/kg-lexical-html-renderer`


## Usage

Basic usage:

```js
const LexicalHTMLRenderer = require('@simtropolis/kg-lexical-html-renderer');
const renderer = new Renderer();

const lexicalState = '{...}';
const html = renderer.render(lexicalState);
```

Options can be passed in as the second argument to `.render()`.

```js
const html = renderer.render(lexicalState, {target: 'email'});
```

| Option   | Values |
| -------- | ------ |
| `target` | `'html'` (default), `'email'` |

## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-markdown-html-renderer
Description: ## Install
Author: Simtropolis
Latest version: 6.0.3

# Koenig Markdown Html Renderer

## Install

`npm install @simtropolis/kg-markdown-html-renderer --save`

or

`yarn add @simtropolis/kg-markdown-html-renderer`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-mobiledoc-html-renderer
Description: ## Install
Author: Simtropolis
Latest version: 6.0.3

# Koenig Mobiledoc Html Renderer

## Install

`npm install @simtropolis/kg-mobiledoc-html-renderer --save`

or

`yarn add @simtropolis/kg-mobiledoc-html-renderer`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-parser-plugins
Description: Plugins for parsing HTML back into Simtropolis Mobiledoc Cards
Author: Simtropolis
Latest version: 3.0.3

# Koenig Parser Plugins

Plugins for parsing HTML back into Simtropolis Mobiledoc Cards

## Install

`npm install @simtropolis/kg-parser-plugins --save`

or

`yarn add @simtropolis/kg-parser-plugins`


## Usage

Used as part of the Koenig editor. See also: [html-to-mobiledoc](https://github.com/Simtropolis/Simtropolis-SDK/tree/master/packages/html-to-mobiledoc)


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests


# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/kg-utils
Description: ## Install
Author: Simtropolis
Latest version: 1.0.11

# Koenig Utils

## Install

`npm install @simtropolis/kg-utils --save`

or

`yarn add @simtropolis/kg-utils`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/koenig-lexical
Description: Early stage re-write of Simtropolis's editor, using Lexical as the editor framework in place of mobiledoc-kit.
Author: Simtropolis
Latest version: 0.0.46

# Koenig - Lexical edition

Early stage re-write of Simtropolis's editor, using Lexical as the editor framework in place of mobiledoc-kit.

## Development

Run `yarn dev` to start the development server to test/develop the editor standalone. This will generate a demo site from the `index.html` file which renders the demo app in `demo/demo.jsx` and makes it available on http://localhost:5173

To test/develop inside of Admin you can run `yarn preview` then in Simtropolis set your `editor.url` value in `config.local.json` to `http://127.0.0.1:4173/koenig-lexical.umd.js` and load Admin as usual.

```json
{
    ...
    "editor": {
        "url": "http://127.0.0.1:4173/koenig-lexical.umd.js"
    }
}
```

`yarn preview` by itself only serves the library files, it's possible ro run `yarn build --watch` in a separate terminal tab to have auto-rebuild whilst developing.

### Project structure

**`/src`**

The main module source. `/src/index.js` is the entry point for the exposed module and should export everything needed to use the module from an external app.

**`/demo`**

Used for developing/demoing the editor. Renders a blank editor with all features enabled.

### Set up details

**CSS**

Styling should be done using Tailwind classes where possible.

All styles are scoped under `.koenig-lexical` class to avoid clashes and keep styling as isolated as possible. PostCSS nesting support is present to make this easier.

- Styles located in `src/styles/` are included in the final built module.
- Styles located in `demo/*.css` are only used in the demo and will not be included in the built module.

When packaging the module, styles are included inside the JS file rather than being separate to allow for a single import of the module in the consuming app.

**SVGs**

SVGs can be imported as React components in the [same way as create-react-app](https://create-react-app.dev/docs/adding-images-fonts-and-files/#adding-svgs). Typically files are stored in `src/assets/`.

All imported files are processed/optimised via SVGO (see `svgo.config.js` for optimisation config) and included in the built JS file.

## Testing

Tests use [Vitest](https://vitest.dev) as the test runner, with [Puppeteer](https://pptr.dev) used for e2e testing.

- `yarn test run` runs tests and exits
- `yarn test:watch` runs tests and starts a test watcher that re-runs tests on file changes
- `yarn test:watch --ui` same as `yarn test:watch` but also opens a browser UI for exploring and re-running tests

Before tests are started we build a version of the demo app that is used for e2e tests. Config for that is located in `vite.config.test.js` and should mostly mirror the main config file in `vite.config.js` except for building a full site rather than a UMD library file.

### Editor integration

There's a [vitest vscode extension](https://marketplace.visualstudio.com/items?itemName=ZixuanChen.vitest-explorer) that lets you run and debug individual tests/groups directly inside vscode.
npm package: @simtropolis/logging
Description: ## Install
Author: Simtropolis
Latest version: 2.4.1

# Logging

## Install

`npm install @simtropolis/logging --save`

or

`yarn add @simtropolis/logging`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/members-csv
Description: ## Usage There are 2 parts to this package: CSV to JSON serialization and JSON to CSV serialization. The module exposes 2 methods to fullfil these: `parse` and `unparse` respectively.
Author: Simtropolis
Latest version: 0.0.1

# Members Csv

## Usage
There are 2 parts to this package: CSV to JSON serialization and JSON to CSV serialization. The module exposes 2 methods to fullfil these: `parse` and `unparse` respectively.

To `parse` CSV file and convert it to JSON use `parse` method, e.g.:
```js
const {parse} = require('@simtropolis/members-csv');

const mapping = {
    email: 'csv_column_containing_email_data',
    name: 'csv_column_containing_names_data'
}
const membersJSON = await parse(csvFilePath, mapping);
```

`csvFilePath` - is a path to the CSV file that has to be processed
`mapping` - optional parameter, it's a hash describing custom mapping for CSV columns to JSON properties

Example mapping for CSV having email under `correo_electronico` column would look like following:
```
{
    email: 'correo_electronico'
}
```

To `unparse` JSON to CSV compatible with members format use following:
```js
const {unparse} = require('@simtropolis/members-csv');

const members = [{
    email: 'email@example.com',
    name: 'Sam Memberino',
    note: 'Early supporter'
}];

const membersCSV = unparse(members);

console.log(membersCSV);
// -> "id,email,name,note,subscribed_to_emails,complimentary_plan,stripe_customer_id,created_at,deleted_at,labels\r\n,email@example.com,Sam Memberino,Early supporter,,,,,,"
```
npm package: @simtropolis/metrics
Description: ## Install
Author: Simtropolis
Latest version: 1.0.22

# Metrics

## Install

`npm install @simtropolis/metrics --save`

or

`yarn add @simtropolis/metrics`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/mongo-knex
Description: tbc
Author: Simtropolis
Latest version: 0.8.0

# Mongo Knex

## Installation
1. Make sure that `gstenv` is green. See [Dev Environment](https://github.com/Simtropolis/Team/blob/master/Engineering/Dev%20Environment.md) for docs.
2. `git clone` this repo & `cd` into it as usual
3. Run `yarn` to install top-level dependencies.

## Run
- Use: `yarn dev`
- View: [http://localhost:9999](http://localhost:9999)

## Test
- `yarn lint` run just eslint
- `yarn test` run lint && tests
- `NODE_ENV=testing-mysql yarn test`
  - Manual database creation is currently required.

## Debug

`DEBUG=mongo-knex:*`
`DEBUG=mongo-knex:converter`
`DEBUG=mongo-knex:converter-extended`

## Config

`config.[env].json`

# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/mongo-utils
Description: ## Install
Author: Simtropolis
Latest version: 0.5.0

# Mongo Utils

## Install

`npm install @simtropolis/mongo-utils --save`

or

`yarn add @simtropolis/mongo-utils`


## Usage


## Develop

1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests


# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/nodemailer
Description: ## Install
Author: Simtropolis
Latest version: 0.3.31

# Nodemailer

## Install

`npm install @simtropolis/nodemailer --save`

or

`yarn add @simtropolis/nodemailer`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/nql
Description: tbc
Author: Simtropolis
Latest version: 0.11.0

# NQL
The aim is putting together various nql related projects into single, easy to use api. It allows:
 - parsing of NQL expression into Mongo JSON (using [nql-lang](https://github.com/Simtropolis/NQL/tree/main/packages/nql-lang))
 - enhancing a database query with additional filters based on provided expression (using [mongo-knex](https://github.com/Simtropolis/NQL/tree/main/packages/mongo-knex))
 - querying JSON objects with NQL expressions (using [mingo](https://github.com/kofrasa/mingo))

## Installation
Using npm:
```
npm install @simtropolis/nql --save
```
or with yarn:
```
yarn add @simtropolis/nql
```

## Example
A simple NQL expression could have following form: `featured:true+slug:['photo', 'video']`
When parsing it to Mongo JSON with `nql(expression).parse()` the output would be:
```javascript
{
    $and: [
        {
            featured: true
        },
        {
            slug: {
                $in: ['photo', 'video']
            }
        }
    ]
}
```

If the same expression would be applied to Knex [QueryBuilder](https://knexjs.org/#Builder) object, the following SQL where statement would be generated:
```sql
where (`posts`.`featured` = true and `posts`.`slug` in ('photo', 'video'))
```

## Usage
Some common usages:
```javascript
nql('id:3').toJSON();
\\ => {id:3}
```

```javascript
nql('id:3').queryJSON({test:true, id:3});
\\ => true
```

```javascript
nql('tags:test', {expansions: {tags: 'tags.slug'}}).toJSON();
\\ => {'tags.slug': test}
```
```javascript
nql('primary_tag:[photo]', {expansions: [
      {key: 'primary_tag', replacement: 'tags.slug', expansion: 'order:0'}
  ]})
\\ => {$and: [{'tags.slug': {$in: ['photo']}}, {order: 0}]}
```

Advanced usage example:

```javascript
// Builds SQL where statement on top of knex Query Builder including:
//  - combining custom filter 'primary_tag:test' with overrides filter and defaults
//  - expanding shortcut property 'primary_tag' into 'tags.slug' and adding 'posts_tags.sort_order:0' filter
//  - builds a where statement with related `tags` table through manyToMany relation
const query = nql('primary_tag:test', {
    relations: {
        tags: {
            tableName: 'tags',
            type: 'manyToMany',
            joinTable: 'posts_tags',
            joinFrom: 'post_id',
            joinTo: 'tag_id'
        }
    },
    expansions: [
        {
            key: 'primary_tag',
            replacement: 'tags.slug',
            expansion: 'posts_tags.sort_order:0'
        }
    ],
    overrides: 'status:published',
    defaults: 'featured:true'
});

query
    .querySQL(knex('posts'))
    .select();
```

## Test
- `yarn lint` run just eslint
- `yarn test` run lint && tests

# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/nql-lang
Description: tbc
Author: Simtropolis
Latest version: 0.5.0

# NQL Lang

## Installation
1. Make sure that `gstenv` is green. See [Dev Environment](https://github.com/Simtropolis/Team/blob/master/Engineering/Dev%20Environment.md) for docs.
2. `git clone` this repo & `cd` into it as usual
3. Run `yarn` to install top-level dependencies.

## Run
- Use: `yarn dev`
- View: [http://localhost:9999](http://localhost:9999)

## Test
- `yarn lint` run just eslint
- `yarn test` run lint && tests

# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/pretty-cli
Description: A mini-module to style a sywac instance in a standard way
Author: Simtropolis
Latest version: 1.2.33

# Pretty CLI

A mini-module to style a [sywac](http://sywac.io/) instance in a standard way

## Install

Either: `npm install @simtropolis/pretty-cli --save`

Or: `yarn add @simtropolis/pretty-cli`

## Usage

E.g. `const prettyCLI = require('@simtropolis/pretty-cli');`

`prettyCLI` is a pre-styled instance of the [sywac](http://sywac.io/) API.

See the [sywac quickstart](http://sywac.io/docs/) and [config guide](http://sywac.io/docs/sync-config.html) for full usage.

Example:

```
#!/usr/bin/env node
const prettyCLI = require('@simtropolis/pretty-cli');


prettyCLI
  .command({
    flags: 'myTask [option]',
    desc: 'Run myTask',
    run: (argv) =>  { ... do something here }
  })
  .parseAndExit();
```

Pretty CLI also provides a common UI interface, providing log functions to output coloured messages to the UI:

```
const ui = require('@simtropolis/pretty-cli/ui');`

ui.log.info('Done');
ui.log.warn('Uh Oh', 'Something went wrong');
```

You can also grab a fresh instance of the api with `prettyCLI.Api.get()`.

The style rules used are available at `prettyCLI.styles`.

## Test

- `yarn lint` run just eslint
- `yarn test` run lint && tests

# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/pretty-stream
Description: ## Install
Author: Simtropolis
Latest version: 0.1.15

# Pretty Stream

## Install

`npm install @simtropolis/pretty-stream --save`

or

`yarn add @simtropolis/pretty-stream`


## Usage

Used by `@simtropolis/logging` and `@simtropolis/metrics`.

## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/promise
Description: ## Install
Author: Simtropolis
Latest version: 0.3.1

# Promise

## Install

`npm install @simtropolis/promise --save`

or

`yarn add @simtropolis/promise`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/release-utils
Description: ## Install
Author: Simtropolis
Latest version: 0.8.1

# Release Utils

## Install

`npm install @simtropolis/release-utils --save`

or

`yarn add @simtropolis/release-utils`


## Usage

Create Gist:

```
const releaseUtils = require('@simtropolis/release-utils');


releaseUtils
    .gist
    .create({
        userAgent: String,
        gistName: String,
        gistDescription: String,
        changelogPath: String [Path on Disk]
        github: {
            username: String
            token: String
        },
        isPublic: Boolean [optional, Default: true]
    })
```

Create Changelog:

```
const releaseUtils = require('@simtropolis/release-utils');


const changelog = new releaseUtils.Changelog({
    changelogPath: String [Path on Disk],
    folder: String [Path on Disk]
});

changelog
    .write({
        githubRepoPath: String,
        lastVersion: String
    })
    .write({
        githubRepoPath: String
        lastVersion: String
        append: Boolean [optional, Default: false],
        folder: String [optional, Path on Disk]
    })
    .sort()
    .clean()
```

Create & Upload Release:

```
const releaseUtils = require('@simtropolis/release-utils');


releaseUtils
    .releases
    .create({
        tagName: String,
        releaseName: String,
        userAgent: String,
        uri: String,
        github: {
            username: String,
            token: String,
        },
        changelogPath: String [Path on Disk] OR Array[{
            changelogPath: String [Path on Disk],
            content: Array [optional]
        }],
        gistUrl: String [optional],
        preRelease: Boolean [optional, Default: false],
        draft: Boolean [optional, Default: true],
        filterEmojiCommits: Boolean [optional, Default: true],
        content: Array [optional]
    });

releaseUtils
    .releases
    .uploadZip({
        github: {
            username: String,
            token: String
        },
        zipPath: String [Path on Disk],
        uri: String,
        userAgent: String
    })
```


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2013-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/request
Description: ## Install
Author: Simtropolis
Latest version: 0.1.35

# Request

## Install

`npm install @simtropolis/request --save`

or

`yarn add @simtropolis/request`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/root-utils
Description: ## Install
Author: Simtropolis
Latest version: 0.3.19

# Root Utils

## Install

`npm install @simtropolis/root-utils --save`

or

`yarn add @simtropolis/root-utils`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/schema-org
Description: ## Install
Author: Simtropolis
Latest version: 0.1.31

# Schema Org

## Install

`npm install @simtropolis/schema-org --save`

or

`yarn add @simtropolis/schema-org`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/server
Description: ## Install
Author: Simtropolis
Latest version: 0.1.30

# Server

## Install

`npm install @simtropolis/server --save`

or

`yarn add @simtropolis/server`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/social-urls
Description: ## Install
Author: Simtropolis
Latest version: 0.1.34

# Social Urls

## Install

`npm install @simtropolis/social-urls --save`

or

`yarn add @simtropolis/social-urls`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/string
Description: ## Install
Author: Simtropolis
Latest version: 0.2.2

# String

## Install

`npm install @simtropolis/string --save`

or

`yarn add @simtropolis/string`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/timezone-data
Description: ## Install
Author: Simtropolis
Latest version: 0.2.74

# Timezone Data

## Install

`npm install @simtropolis/timezone-data --save`

or

`yarn add @simtropolis/timezone-data`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/tpl
Description: ## Install
Author: Simtropolis
Latest version: 0.1.21

# Tpl

## Install

`npm install @simtropolis/tpl --save`

or

`yarn add @simtropolis/tpl`


## Usage

```
const tpl = require('@simtropolis/tpl');
messages = {
    myError: 'Something terrible happened to {something}'
};

console.error(tpl(messages.myError, {something: 'The thing'}));
```

* Takes strings like 'Your site is now available on {url}' and interpolates them with passed in data
* Will ignore double or triple braces like {{get}} or {{{content}}}
* Can handle escaped braces e.g. \\\\{\\\\{{helpername}\\\\}\\\\}
* There's a simple bare minimum escaping needed to make {{{helpername}}} work with interpolation e.g. {\\\\{{helpername}}}


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/url-utils
Description: ## Install
Author: Simtropolis
Latest version: 4.3.0

# Url Utils

## Install

`npm install @simtropolis/url-utils --save`

or

`yarn add @simtropolis/url-utils`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/validator
Description: ## Install
Author: Simtropolis
Latest version: 0.2.0

# Validator

## Install

`npm install @simtropolis/validator --save`

or

`yarn add @simtropolis/validator`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/version
Description: ## Install
Author: Simtropolis
Latest version: 0.1.19

# Simtropolis Version

## Install

`npm install @simtropolis/version --save`

or

`yarn add @simtropolis/version`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/webhook-mock-receiver
Description: Up to date documentation about the usage of the module available in [End-to-end Testing Codex](https://simtropolis.notion.site/End-to-end-Testing-6a2ef073b1754b18aff42e24a632a007#827471b6314640758460b9c1e22b34c4).
Author: Simtropolis
Latest version: 0.2.3

# Webhook Mock Receiver

Up to date documentation about the usage of the module available in [End-to-end Testing Codex](https://simtropolis.notion.site/End-to-end-Testing-6a2ef073b1754b18aff42e24a632a007#827471b6314640758460b9c1e22b34c4).

## Install

`npm install @simtropolis/webhook-mock-receiver --save`

or

`yarn add @simtropolis/webhook-mock-receiver`


## Usage


## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License 

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simtropolis/zip
Description: ## Install
Author: Simtropolis
Latest version: 1.1.31

# Zip

## Install

`npm install @simtropolis/zip --save`

or

`yarn add @simtropolis/zip`


## Usage

```
const zip = require('@simtropolis/zip');

// Create a zip from a folder

let res = await zip.compress('path/to/a/folder', 'path/to/archive.zip', [options])

// Extract a zip to a folder

let res = await zip.extract('path/to/archive.zip', 'path/to/files', [options])
```

## Develop

This is a mono repository, managed with [lerna](https://lernajs.io/).

Follow the instructions for the top-level repo.
1. `git clone` this repo & `cd` into it as usual
2. Run `yarn` to install top-level dependencies.


## Run

- `yarn dev`


## Test

- `yarn lint` run just eslint
- `yarn test` run lint and tests




# Copyright & License

Copyright (c) 2020-2022 Simtropolis - Released under the [MIT license](LICENSE).
npm package: @simu-superid/superid-datav
Description: ## Getting Started
Latest version: 1.0.8

# simu-datav

## Getting Started

Install dependencies,

```bash
$ npm i
```

Start the dev server,

```bash
$ npm start
```

Build documentation,

```bash
$ npm run docs:build
```

Run test,

```bash
$ npm test
```

Build library via `father-build`,

```bash
$ npm run build
```
npm package: @simu-x/const-set
Description: Utility for creating and asserting string constants
Author: Ashley Abbott
Latest version: 1.0.2

# const-set

A Typescript/Javascript utility for making Sets of constant strings

[![Build Status](https://app.travis-ci.com/simu-x/const-set.svg?branch=main)](https://app.travis-ci.com/simu-x/const-set)
[![Coverage Status](https://coveralls.io/repos/github/simu-x/const-set/badge.svg?branch=main)](https://coveralls.io/github/simu-x/const-set?branch=main)

## Installation

```sh
npm install @simu-x/const-set --save
```

## Usage

```typescript
import ConstSet, {ConstSetError} from '@simu-x/const-set';

// Make a ConstSet
const flavors = new ConstSet('strawberry', 'vanilla');

// Works like a read-only JS Set
flavors.size; // '2'

// Indexed constants are type friendly
flavors.value.strawberry; // return constant string value

// You can get the whole set of constant strings as an array
flavors.values();

// Value Checking
flavors.is('vanilla'); // return true since this is a known constant string
flavors.is('chocolatte'); // return false since this is an unknown constant string
// Note: these also function as typeguards

// Value Assertion
try {
  flavors.assert('rocky_road');
} catch (e: Error) {
  /* handle your errors here */
  if (e instanceof ConstSetError) {
    /* handle specific ConstSetError if needed */
  }
}

try {
  const rockyRoad = flavors.assert('rocky_road'); // returns the known constant string if valid
}
```
npm package: @simu-x/prettier-config-airbnb
Description: A Prettier configuration based off the Airbnb JavaScript style guide
Author: Ashley Abbott
Latest version: 2.0.0

# prettier-config-airbnb

A [Prettier](https://prettier.io/) configuration based off the [Airbnb JavaScript style guide](https://github.com/airbnb/javascript)

## Installation

```sh
npm install prettier @simu-x/prettier-config-airbnb --save-dev
```

## Basic Usage

In your `package.json`, the `prettier` property will be added and defined like this:

```jsonc
{
  "prettier": "@simu-x/prettier-config-airbnb"
}
```

[Read official config docs here](https://prettier.io/docs/en/configuration.html#sharing-configurations) for other configuration schemes

## Rules

```jsonc
{
  "$schema": "http://json.schemastore.org/prettierrc",
  
  /**
   * Base Config from: https://github.com/airbnb/javascript/blob/master/README.md
   */

  // 3.6 Quote Props
  // Only quote properties that are invalid identifiers.
  "quoteProps": "as-needed",
  
  // 6.1 Quotes
  // Use single quotes instead of double quotes.
  "singleQuote": true,
  
  // 8.2 - Arrow Function Parentheses
  // Always include parentheses around a sole arrow function parameter.
  "arrowParens": "always",
  
  // 19.1 Tabs and Tab Width
  // Use soft tabs (space character) set to 2 spaces.
  "tabWidth": 2,
  "useTabs": false,
  
  // 19.3 Print Width and Wrapping
  // Specify the line length that the printer will wrap on. Wrap prose if it exceeds the print width.
  "printWidth": 100,
  "proseWrap": "always",
  
  // 19.11 Bracket Spacing
  // Do not print spaces between brackets in object literals.
  "bracketSpacing": false,
  
  // 20.2 Trailing Commas
  // Print trailing commas wherever possible when multi-line.
  // e.g. A single-line array never gets trailing commas.
  "trailingComma": "es5",
  
  // 21.1 Semicolons
  // Print semicolons at the ends of statements.
  "semi": true,
  
  /**
   * React Config (from: https://github.com/airbnb/javascript/tree/master/react)
   */

  // Tags
  // If your component has multiline properties, close its tag on a new line.
  "bracketSameLine": false,
  
  // Quotes
  // Use double quotes in JSX.
  "jsxSingleQuote": false
}
```
npm package: @simublade-technology/react-native-ui-lib
Description: First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native.
Author: Simbublade Technology
Latest version: 0.2.1

## Step 1: Start the Metro Server

First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native.

To start Metro, run the following command from the _root_ of your React Native project:

```bash
# using npm
npm start

# OR using Yarn
yarn start
```

## Step 2: Start your Application

Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app:

### For Android

```bash
# using npm
npm run android

# OR using Yarn
yarn android
```

### For iOS

```bash
# using npm
npm run ios

# OR using Yarn
yarn ios
```

## Toggling between Storybook and your Application

1. If you want to `enable/disable` storybook make `STORYBOOK_ENABLED = true`/`STORYBOOK_ENABLED = false` or vice-versa in .env file
2. Then, clean build folder and rebuild the app

## This package is inspired by react native paper