open-index/open-npm huggingface dataset:
npm package: @platform/fsdb.mongo
Description: Standard IDb abstraction over mongodb.
Latest version: 0.0.178
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-fsdb.mongo-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/fsdb.mongo.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/fsdb.mongo)
![banner](https://platform.sfo2.digitaloceanspaces.com/repo-banners/fsdb.mongo.png)

Standard `IDb` abstraction over [mongodb](https://github.com/mongodb/node-mongodb-native).

<p>&nbsp;<p>

## Setup

    yarn add @platform/fsdb.mongo

<p>&nbsp;<p>

## Test

To run integration tests against a live [mongo database](https://www.mongodb.com/cloud/atlas) add a `.env` file to the root with:

```.env
MONGO_TEST="<connection-string>"
```

The run the integration tests:

    yarn run test:integration

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/fsdb.nedb
Description: Standard IDb abstraction over nedb.
Latest version: 1.3.175

![Module](https://img.shields.io/badge/%40platform-fsdb.nedb-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/fsdb.nedb.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/fsdb.nedb)
![banner](https://platform.sfo2.digitaloceanspaces.com/repo-banners/fsdb.nedb.png)

Standard `IDb` abstraction over [nedb](https://github.com/louischatriot/nedb). Runs on both server and browser/electron.

## Setup

    yarn add @platform/fsdb.nedb



<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/fsdb.pg
Description: Postgres backing store for a file-system like JSON document database.
Latest version: 0.1.122
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-fsdb.pg-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/fsdb.pg.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/fsdb.pg)
![banner](https://platform.sfo2.digitaloceanspaces.com/repo-banners/fsdb.pg.png)

[Postgres](https://www.postgresql.org) backing store for a file-system like JSON document database.

## Setup

    yarn add @platform/fsdb.pg



<p>&nbsp;<p>

## Testing
To run intergration tests ensure you have a postgres server on the default port (`5432`) running at:

    host:     localhost
    database: test

Then run:

    yarn ti

or in watch mode:

    yarn tddi

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/fsdb.types
Description: Common types for a file-system like JSON document database.
Latest version: 0.6.71
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-fsdb.types-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/fsdb.types.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/fsdb.types)
![banner](https://user-images.githubusercontent.com/185555/75105488-ac008180-5678-11ea-85e1-666ec323628e.png)

Common [types](https://www.typescriptlang.org) for a file-system like JSON document database.

## Setup

    yarn add @platform/fsdb.types
npm package: @platform/graphql
Description: Tools for working with GraphQL.
Latest version: 0.2.155
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-graphql-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/graphql.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/graphql)
![banner](https://user-images.githubusercontent.com/185555/57001650-0a520480-6c0e-11e9-86f9-0f7925a35798.png)

Tools for working with [GraphQL](https://graphql.org/).

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/graphql.server
Description: Express configuration of Apollo server.
Latest version: 0.1.170
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-graphql-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/graphql.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/graphql)
![banner](https://user-images.githubusercontent.com/185555/57007050-d8569780-6c39-11e9-81ea-32b96ceb0cef.png)

[Express](https://expressjs.com) configuration of [Apollo](https://www.apollographql.com/docs/apollo-server) [Graphql](https://graphql.org) server.

<p>&nbsp;<p>

## JSON Data
When returning unstructured JSON data include the `scalar JSON` within the type-defs:

```typescript
export const typeDefs = gql`
  scalar JSON

  type Query {
    myObject: JSON
  }
`;

export const resolvers = {
  Query: {
    myObject: async (_: any, args: any, ctx: any, info: any) => {
      return { count: 123, message: 'Any structure' };
    },
  },
};
```


<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/http
Description: Tools for working with HTTP.
Latest version: 0.14.32
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-http-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/http.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/http)
![banner](https://user-images.githubusercontent.com/185555/75078847-a36e5500-556b-11ea-8583-8a64eb58086d.png)

Tools for working with [HTTP](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol).

<p>&nbsp;<p>

## Setup

    yarn add @platform/http

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/http.router
Description: HTTP route builder.
Latest version: 0.0.78
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-http.router-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/http.router.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/http.router)
![banner](https://user-images.githubusercontent.com/185555/75078854-a6694580-556b-11ea-9de1-4398c03a9d82.png)


[HTTP](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol) route builder.

<p>&nbsp;<p>

## Setup

    yarn add @platform/http.router


<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/http.types
Description: Types for the @platform/http library.
Latest version: 0.2.55
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-http.types-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/http.types.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/http.types)
![banner](https://user-images.githubusercontent.com/185555/75078859-a9643600-556b-11ea-915b-0212f11967d9.png)

Types for the [@platform/http](../http) library.

<p>&nbsp;<p>

## Setup

    yarn add @platform/http.types

NB: The [@platform/http](../http) references these types directly, so only use this library if you're building something that exposes an abstract reference to an HTTP client.

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/hyperdb
Description: Strongly typed interface to hyperdb.
Latest version: 0.2.25
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-hyperdb-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/hyperdb.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/hyperdb)
![banner](https://user-images.githubusercontent.com/185555/56085606-37768700-5e9a-11e9-962b-fd12a8974a76.png)

Strongly [typed](https://www.typescriptlang.org) interface to [hyperdb](https://github.com/mafintosh/hyperdb) with [hyperswarm](https://github.com/hyperswarm) network connector.

### Database Qualities
A hyperdb is a "distributed scalable peer-to-peer key/value database" built upon a secure append-only log.  Read more about the [architecture here](https://github.com/mafintosh/hyperdb/blob/master/ARCHITECTURE.md).

![db-qualities](https://user-images.githubusercontent.com/185555/54387772-171fa500-4701-11e9-825e-571d85db72e5.png)

<p>&nbsp;<p><p>&nbsp;<p>

## See Also

- @platform/[hyperdb.electron](../hyperdb)
- @platform/[hyperdb.types](../hyperdb.types)
- @platform/[hyperdb.tools](../hyperdb.tools)
- @platform/[hyperdb.electron](../hyperdb.electron)

## Refs

- [github.com/mafintosh/hyperdb](https://github.com/mafintosh/hyperdb)
- [authorization in hyperdb: a deep dive](https://github.com/lachenmayer/hyperdb-authorization-guide)
- [hyperdb architecture](https://github.com/mafintosh/hyperdb/blob/master/ARCHITECTURE.md)
npm package: @platform/hyperdb.electron
Description: Strongly typed, electron enabled interface to hyperdb.
Latest version: 0.2.42
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-hyperdb.electron-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/hyperdb.electron.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/hyperdb.electron)
![banner](https://user-images.githubusercontent.com/185555/56085485-33496a00-5e98-11e9-8ec8-992d5687a955.png)

Safe [IPC](https://electronjs.org/docs/api/ipc-renderer) wrapper for working with [@platform/hyperdb](../hyperdb) in [electron](https://electronjs.org).


## Setup

    yarn add @platform/hyperdb.electron

See the [`/test`](./test) folder for example configuration and usage samples in a [uiharness](https://uiharness.com).

    yarn ui start

<p>&nbsp;<p><p>&nbsp;<p>

![diagram](https://user-images.githubusercontent.com/185555/56322016-03fa6c00-61bc-11e9-8aa3-2a365e4fd3cb.png)


<p>&nbsp;<p>

## Building for Electron
Run the `rebuild` script that fixes `dist` build issues with `sodium-native`.  See [issue #5851](https://github.com/electron/electron/issues/5851).

In your `package.json`:

```json
{
  "scripts": {
    "rebuild": "platform.electron rebuild"
  }
}
```
You may require `libtool` to complete as well as the XCode command-line tools that contains `gcc`:

```
brew install libtool
```





<p>&nbsp;<p><p>&nbsp;<p>

## See Also

- @platform/[hyperdb.electron](../hyperdb)
- @platform/[hyperdb.types](../hyperdb.types)
- @platform/[hyperdb.tools](../hyperdb.tools)
- @platform/[hyperdb.electron](../hyperdb.electron)
npm package: @platform/hyperdb.tools
Description: Tools for working with a hyperdb.
Latest version: 0.0.34
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-hyperdb.tools-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/hyperdb.tools.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/hyperdb.tools)
![banner](https://user-images.githubusercontent.com/185555/57568067-30f61380-7436-11e9-8501-1ae324113702.png)

Tools for working with a hyperdb.

<p>&nbsp;<p><p>&nbsp;<p>

## See Also

- @platform/[hyperdb.electron](../hyperdb)
- @platform/[hyperdb.types](../hyperdb.types)
- @platform/[hyperdb.tools](../hyperdb.tools)
- @platform/[hyperdb.electron](../hyperdb.electron)
npm package: @platform/hyperdb.types
Description: Abstract types for @platform/hyperdb
Latest version: 0.2.19
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-hyperdb.types-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/hyperdb.types.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/hyperdb.types)
![banner](https://user-images.githubusercontent.com/185555/56085605-37768700-5e9a-11e9-927f-75b977f1b637.png)

Abstract [types](https://www.typescriptlang.org) for [@platform/hyperdb](../hyperdb).


<p>&nbsp;<p><p>&nbsp;<p>

## See Also

- @platform/[hyperdb](../hyperdb)
- @platform/[hyperdb.electron](../hyperdb.types)
- @platform/[hyperdb.electron](../hyperdb.tools)
- @platform/[hyperdb.electron](../hyperdb.electron)
npm package: @platform/libs
Description: Common external toolbelt libs used accross modules.
Latest version: 0.3.2

![Module](https://img.shields.io/badge/%40platform-libs-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/libs.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/libs)

# libs
Common external low-level libs used accross all modules.  
Referenced in this one module so that consistent versions across [@platform](https://www.npmjs.com/org/platform) are maintained.

<p>&nbsp;<p>

## Setup

```
yarn add @platform/libs
```

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/log
Description: Client and server logging.
Latest version: 0.1.65

![Module](https://img.shields.io/badge/%40platform-log-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/log.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/log)
# log
Client and server logging.
npm package: @platform/mail
Description: Tools for working with email.
Latest version: 0.0.113
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-mail-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/mail.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/mail)
![banner](https://user-images.githubusercontent.com/185555/57277936-4e0aa980-70f9-11e9-98ba-141e7d04412a.png)

Tools for working with [email](https://en.wikipedia.org/wiki/Email).

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/micro
Description: Wrapper and helpers around micro.
Latest version: 0.16.25
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-micro-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/micro.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/micro)
![banner](https://user-images.githubusercontent.com/185555/63076436-66585300-bf89-11e9-8bca-0b80ae5313d0.png)

# micro
Wrapper and helpers around [micro].

<p>&nbsp;<p>


## Setup

    yarn add @platform/micro


<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/model.proj
Description: Model that represents a generic project schema.
Latest version: 0.0.3
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-model.proj-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/model.proj.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/model.proj)
![banner](https://user-images.githubusercontent.com/185555/66251061-08d1cd00-e7a8-11e9-95a3-3cdd9385427a.png)

# model.proj

Model that represents a generic project schema.

## Setup

    yarn add @platform/model.proj
npm package: @platform/npm
Description: Helpers for working with NPM.
Latest version: 0.4.21
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-npm-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/npm.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/npm)
![banner](https://user-images.githubusercontent.com/185555/56625097-bdab7e00-668f-11e9-857b-d8af5bf7e46a.png)

Helpers for working with [NPM (Node Package Manager)](http://npmjs.com).

<p>&nbsp;<p>


## Private Modules
For calls to private modules, pass the `NPM_TOKEN` parameter to corresponding method
and ensure there is a `.npmrc` file within the project containing:


    //registry.npmjs.org/:_authToken=${NPM_TOKEN}



<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/npm.electron
Description: Tools for working with NPM within an electron app.
Latest version: 0.0.105
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-npm.electron-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/npm.electron.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/npm.electron)
![banner](https://user-images.githubusercontent.com/185555/56625095-bd12e780-668f-11e9-8217-abcc0e0d5426.png)


Tools for working eith [NPM](http://npmjs.com) within an [electron](https://electronjs.org) app.
npm package: @platform/polyfill
Description: Standard JS polyfills.
Latest version: 0.0.9
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-polyfill-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/polyfill.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/polyfill)

# polyfill
Standard JS polyfills.

<p>&nbsp;<p>


## Setup

```
yarn add @platform/polyfill
```

<p>&nbsp;<p>

## Usage

Import common polyfills (recommended):

```typescript
import '@platform/polyfill';
```


or import something more specific:

```typescript
import 'core-js/stable';
import 'regenerator-runtime/runtime';
```

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/queue
Description: Queue abstraction.
Latest version: 0.0.61
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-queue-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/queue.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/queue)
![banner](https://user-images.githubusercontent.com/185555/80666658-07c00e80-8af1-11ea-992a-61acb3ec00a7.png)


Queue tools.

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/react
Description: React refs and helpers.
Latest version: 0.4.86
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-react-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/react.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/react)
![banner](https://platform.sfo2.digitaloceanspaces.com/repo-banners/react.png)

React refs and helpers

## Setup

    yarn add @platform/react

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/react.ssr
Description: A lightweight SSR (server-side-rendering) system for react apps bundled with ParcelJS and hosted on S3.
Latest version: 1.1.171

![Module](https://img.shields.io/badge/%40platform-react.ssr-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/react.ssr.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/react.ssr)
![banner](https://user-images.githubusercontent.com/185555/63076436-66585300-bf89-11e9-8bca-0b80ae5313d0.png)

A lightweight SSR (server-side-rendering) system for react apps bundled with ParcelJS and hosted on S3.

<p>&nbsp;<p>

#### Live Demo:
https://ssr.platform.uiharness.com  



<p>&nbsp;<p>

#### Highlights:

- Store assets on [S3](https://aws.amazon.com/s3/) (or Digital Ocean [Spaces](https://www.digitalocean.com/products/spaces/)).
- Serve entry HTML from server (immediate load from "server-side-render").
- `307` redirect all other assets to S3/CDN (geo-edge cache).
- Manage lifecycle with simple command-line tools:
    - Bundle and push to S3 via command-line.
    - Manage versioned releases (with simple roll-backs) across multiple sites/environments.  
    (eg. `dev`, `staging`, `prod`)

<p>&nbsp;<p>



![diagram](https://user-images.githubusercontent.com/185555/63561626-c6b14b00-c5ae-11e9-9102-796597f4e28c.png)


## Setup

    yarn add @platform/react.ssr


<p>&nbsp;<p>


## Workflow

- Develop UI components on local dev-server within the [UIHarness](https://uiharness.com) or anything that can produce a javascript bundle (eg [ParcelJS](https://parceljs.org)):

- Ensure the UI module has a `bundle` script within it's `package.json`.

- Create an `ssr.yml` configuration file for the server.

## Sample

The `/sample/now` and `/sample/server` are expecting a `.env` file with your S3 account information:

```
# 
# Digital Ocean "SPACES" or AWS "S3" connection secrets.
# 
SPACES_KEY="..."
SPACES_SECRET="..."

```

These are referenced within the `ssr.yml` config file.


#### Example sequence:

```bash
🌼
cd sample/ui
yarn start
```


Bundle a version and push it to S3:

```bash
🌳
cd sample/server
yarn ssr bundle
```

Release bundled version by updating manifest:

```bash
🌳
cd sample/server
yarn ssr release
```

Start local SSR server to test the bundle:

```bash
🌼
cd sample/server 
yarn start
```

Open in `http://localhost` browser (address/port exposed in server startup log).


<p>&nbsp;<p>

## Routes
The following system routes are exposed for examining meta-data about the current state and configuration of the server.

```
https://domain.com/.manifest
https://domain.com/.manifest/summary
https://domain.com/.manifest/summary/<site>
```


<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/state.react
Description: React bindings for @platform/state.
Latest version: 0.4.123
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-state.react-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/state.react.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/state.react)
![banner](https://user-images.githubusercontent.com/185555/82968700-09162580-a022-11ea-8ba6-c2b706862321.png)

[React](https://reactjs.org) bindings for [@platform/state](../state).

<p>&nbsp;<p>


## Install

    yarn add @platform/state.react

To see example running in UI see [@platform/state.react.tools](../state.react.tools)


<p>&nbsp;<p>



## Getting Started

Define a model and create a store:

```typescript
import { Store } from '@platform/state';

type IMyModel = {
  count: number;
};

type MyEvent = IIncrementEvent | IDecrementEvent;
type IIncrementEvent = { type: 'TEST/increment'; payload: { by: number } };
type IDecrementEvent = { type: 'TEST/decrement'; payload: { by: number } };


const initial: IMyModel = { count: 0 };
const store = Store.create<IMyModel, MyEvent>({ initial });

```


<p>&nbsp;<p>


Configure consuming components to recieve the state-container [context](https://reactjs.org/docs/context.html):

```typescript
import { state } from '@platform/state.react'

export class MyView extends React.PureComponent {
  public static contextType = state.Context;
  public context!: state.ReactContext
  public store = this.context.getStore<IMyModel, MyEvent>();
}
```


<p>&nbsp;<p>


Render the root of the tree with a [context](https://reactjs.org/docs/context.html) `<Provider>`:

```typescript
export const Provider = state.createProvider(store);

export class MyRoot extends React.PureComponent {
  public render() {
    return (
      <Provider>
        <div>...</div>
      </Provider>
    );
  }
}
```

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/state.react.tools
Description: Tools and debug UI for working with `state.react`.
Latest version: 0.4.127
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-state.react.tools-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/state.react.tools.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/state.react.tools)
![banner](https://user-images.githubusercontent.com/185555/82968689-04ea0800-a022-11ea-8ace-98a7ee436aa2.png)

Tools and debug UI for working with [@platform/state.react](../state.react).


<p>&nbsp;<p>


## Install

    yarn add @platform/state
    yarn add @platform/state.react
    yarn add @platform/state.react.tools

Run example:

    yarn ui start

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/state.types
Description: Abstract type definitions for the state library.
Latest version: 0.1.18
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-state.types-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/state.types.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/state.types)
![banner](https://user-images.githubusercontent.com/185555/91109734-f3bba080-e6cf-11ea-8cc8-af8cae20d954.png)

Abstract type definitions for the [state](../state) library.

<p>&nbsp;<p>

## Install

    yarn add @platform/state.types

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/test
Description: Configuration module containing test related modules.
Latest version: 0.3.2

![Module](https://img.shields.io/badge/%40platform-test-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/test.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/test)

![banner](https://user-images.githubusercontent.com/185555/69892775-ff12b300-136d-11ea-9b3b-bbc10651c6ad.png)

Configuration package containing test related modules.


## Install

    yarn add @platform/ts
    yarn add @platform/test

<p>&nbsp;<p>

## Commands
See [@platform/ts](../ts) for test related commands you may want to add to `package.json`:

```json
{
  "scripts: {
    "test": "ts test",
    "tdd": "ts test --watch",
    "lint": "ts lint",
    "build": "ts build",
    "prepare": "ts prepare",
  }
}
```

Integration test commands:

```json
{
  "scripts: {
    "test:integration": "ts test --suffix INTEGRATION",
    "tddi": "ts test --suffix INTEGRATION --watch"
  }
}
```





<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/test.dom
Description: JSDom configuration for testing HTML document objects on the server.
Latest version: 0.0.122
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-test.dom-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/test.dom.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/test.dom)

# test.dom
[JSDom](https://github.com/jsdom/jsdom) configuration for testing HTML document objects on the server.
npm package: @platform/ts
Description: TypesScript build, prepare and publish toolchain.
Latest version: 4.7.7

![Module](https://img.shields.io/badge/%40platform-ts-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ts.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ts)

# ts

[TypesScript](https://www.typescriptlang.org) build, prepare and publish toolchain.

Provides:

- Command line for building, linting, preparing for publish and ultimately publishing.
- Produces CommonJS and modern ESM transpiled builds.
- Publishes to NPM from the distribution older, removing unnecesary pathing into the module from consumers (eg. '@my-modules/lib/...` is avoided).




## Commands
Adds the `ts` command to your module's `bin`. You can optionally use the following scripts in you `package.json`:

```json
{
  "scripts: {
    "test": "ts test",
    "tdd": "ts test --watch",
    "lint": "ts lint",
    "build": "ts build",
    "prepare": "ts prepare",
  }
}
```

To build without ESM module compilation:

```json
{
  "scripts: {
    "build": "ts build --no-esm",
  }
}
```




## ESModules
When setting the `main` of package.json make sure to not include the `.js` file extensions allowing environments that as using [ESModule's](https://developers.google.com/web/fundamentals/primers/modules) to infer the `.msj` version.

```json
{
  "name": "my-module",
  "main": "index",
  "types": "index.d.ts"
}
```




## References:

- **ECMAScript Modules** (ESM)
  - [Using JavaScript modules on the web](https://developers.google.com/web/fundamentals/primers/modules) - Google/Primer
  - [ECMAScript modules in Node.js: the new plan](http://2ality.com/2018/12/nodejs-esm-phases.html) - December 2018
  - [ES6 Modules Today With TypeScript](https://www.ceriously.com/blog/post.php?id=2017-10-16-es6-modules-today-with-typescript.md) - recipe used.
npm package: @platform/ts.libs
Description: Common TypesScript and linter configuration.
Latest version: 4.7.6

![Module](https://img.shields.io/badge/%40platform-ts.libs-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ts.libs.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ts.libs)

# ts.libs

Common [TypesScript](https://www.typescriptlang.org) and [linter](https://github.com/typescript-eslint/typescript-eslint) module references.

See [@platorm/ts](https://www.npmjs.com/package/@platform/ts) for a richer build, prepare and publish toolchain.
npm package: @platform/types
Description: Common types used across @platform.
Latest version: 0.5.27

![Module](https://img.shields.io/badge/%40platform-types-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/types.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/types)
![banner](https://platform.sfo2.digitaloceanspaces.com/repo-banners/types.png)

Common [types](https://www.typescriptlang.org) used across [@platform](https://www.npmjs.com/org/platform).

## Setup

    yarn add @platform/types
npm package: @platform/ui.button
Description: Button components.
Latest version: 0.3.121
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.button-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.button.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.button)
![banner](https://user-images.githubusercontent.com/185555/57892785-649cc780-7894-11e9-9f4b-1d3b75b0496e.png)

Button components.

<p>&nbsp;<p>

## Setup

    yarn add @platform/ui.button


<p>&nbsp;<p>


## Examples

### Button


![Button](https://user-images.githubusercontent.com/185555/59736090-546d7300-92ac-11e9-8caa-b6e002b89bb4.png)

<p>&nbsp;<p>
---
<p>&nbsp;<p>

### Switch

![Switch](https://user-images.githubusercontent.com/185555/59735962-db6e1b80-92ab-11e9-9055-ad9735f867f0.gif)


<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/ui.codemirror
Description: Strongly typed wrapper around codemirror.
Latest version: 0.1.114
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.codemirror-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.codemirror.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.codemirror)
![banner](https://user-images.githubusercontent.com/185555/55036215-d15ac900-507e-11e9-9aa9-8b67a6162a62.png)


[Strongly typed](https://www.typescriptlang.org) wrapper around [codemirror](https://codemirror.net/), with rich [observable](https://www.learnrxjs.io) event stream.


## Setup
```bash
yarn add @platform/ui.codemirror
```

Ensure you reference the required CSS files within your project.

```typescript
import '@platform/ui.codemirror/import.css'
```

<p>&nbsp;<p>
<p>&nbsp;<p>

---

### Refs
- https://codemirror.net
- https://github.com/codemirror/CodeMirror
npm package: @platform/ui.datagrid
Description: Isolated tabular DataGrid.
Latest version: 0.7.380
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.datagrid-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.datagrid.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.datagrid)
![banner](https://user-images.githubusercontent.com/185555/54960061-1835b980-4fc0-11e9-831c-acb96e734d56.png)

[Strongly typed](https://www.typescriptlang.org) tabular data-grid with rich [observable](https://www.learnrxjs.io) event stream.

## Setup

    yarn add @platform/ui.datagrid

Ensure you reference the required CSS files within your project.

```typescript
import '@platform/css/reset.css';
import '@platform/ui.datagrid/import.css'
```


<p>&nbsp;</p>
<p>&nbsp;</p>

---

### Licencing
This module wraps the `handsontable` underlying grid for table layout and infinite scrolling.  
The library was under [MIT](https://en.wikipedia.org/wiki/MIT_License), but then [re-licensed itself](https://github.com/handsontable/handsontable/issues/5831) during development.  
This module references `handsontable@6.2.2` which is the last release on a clean [MIT licence](https://en.wikipedia.org/wiki/MIT_License).
npm package: @platform/ui.datagrid.cell
Description: Single cell (and cell editor) within a @platform/ui.datagrid.
Latest version: 0.2.213
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.datagrid.cell-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.datagrid.cell.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.datagrid.cell)
![banner](https://user-images.githubusercontent.com/185555/56086663-df4a7f80-5eaf-11e9-9ecd-9b3266a561e4.png)

Single cell (and cell editor) within an [@platform/ui.datagrid](../ui.datagrid).

## Setup

    yarn add @platform/ui.datagrid.cell

Ensure you reference the required CSS files within your project.

```typescript
import '@platform/css/reset.css';
import '@platform/ui.codemirror/import.css';
import '@platform/ui.datagrid.cell/import.css'
```


<p>&nbsp;</p>
<p>&nbsp;</p>
npm package: @platform/ui.datagrid.db
Description: Abstract synchronization mapper between [ui.datagrid] and a [fsdb].
Latest version: 0.4.410
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.datagrid.db-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.datagrid.db.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.datagrid.db)
![banner](https://user-images.githubusercontent.com/185555/56086386-6694f480-5eaa-11e9-8997-6336fc36c926.png)

Abstract synchronization mapper between [ui.datagrid](../ui.datagrid) and a [hyperdb](../hyperdb).

<p>&nbsp;</p>
<p>&nbsp;</p>


## Modules

![sync](https://user-images.githubusercontent.com/185555/56090951-c0bea580-5efc-11e9-84e6-8735974cc49c.png)

Updates to the [grid](../ui.datagrid) (UI) are saved to the [hyperdb](../hyperdb), and conversely changes to the [hyperdb](../hyperdb) (which may occur due to edits made by other users over the network) are synchroized back into the [grid](../ui.datagrid).

![video](https://user-images.githubusercontent.com/185555/56090725-02018600-5efa-11e9-87bb-af86a527d0cd.gif)

<p>&nbsp;</p>
<p>&nbsp;</p>
npm package: @platform/ui.datagrid.debug
Description: Debug UI components for the ui.datagrid
Latest version: 0.0.254
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.datagrid.debug-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.datagrid.debug.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.datagrid.debug)
![banner](https://user-images.githubusercontent.com/185555/68096331-e4871e80-ff14-11e9-81f2-28353d09b68c.png)

Debug UI components for the [`ui.datagrid.debug`](../ui.datagrid.debug).

## Setup

    yarn add @platform/ui.datagrid.debug

<p>&nbsp;</p>
<p>&nbsp;</p>
npm package: @platform/ui.datagrid.types
Description: Abstract types for @platform/ui.datagrid
Latest version: 0.7.253
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.datagrid.types-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.datagrid.types.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.datagrid.types)
![banner](https://user-images.githubusercontent.com/185555/56085743-79a0c800-5e9c-11e9-815c-176be9315842.png)

Abstract [types](https://www.typescriptlang.org) for [@platform/ui.datagrid](../ui.datagrid).


<p>&nbsp;<p><p>&nbsp;<p>

## See Also

- @platform/[ui.datagrid](../ui.datagrid)
npm package: @platform/ui.datagrid.util
Description: Shared utilities between `ui.datagrid.*` modules.
Latest version: 0.2.244
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.datagrid.util-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.datagrid.util.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.datagrid.util)
![banner](https://user-images.githubusercontent.com/185555/68096332-e4871e80-ff14-11e9-9740-7d848d88bc36.png)

Shared utilities between `ui.datagrid.*` modules.

<p>&nbsp;</p>
<p>&nbsp;</p>
npm package: @platform/ui.dev
Description: UI development helpers.
Latest version: 0.0.57
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.dev-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.dev.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.dev)
![banner](https://user-images.githubusercontent.com/185555/82716508-dd2a3580-9ceb-11ea-80fc-405915c1f85c.png)

UI development helpers.

<p>&nbsp;</p>

## Setup

    yarn add @platform/ui.dev

<p>&nbsp;</p>

## Getting Started

See the `/src/test.parcel` folder for sample entry point.
Add scripts to you `package.json`:

```json
{
  "scripts": {
    "start": "parcel src/test.parcel/index.html",
    "clean": "rm -rf .cache dist"
  }
}
```

<p>&nbsp;</p>
<p>&nbsp;</p>
npm package: @platform/ui.dropdown
Description: Dropdown selection component.
Latest version: 0.0.135
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.dropdown-%23EA4E7E.svg)[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.dropdown.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.dropdown)
![banner](https://platform.sfo2.digitaloceanspaces.com/repo-banners/ui.dropdown.png)

Dropdown selection component.

## Setup

    yarn add @platform/ui.dropdown
npm package: @platform/ui.editor
Description: Rich text/markdown editor for web and electron.
Latest version: 0.3.44
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.editor-%23EA4E7E.svg)[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.editor.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.editor)
![banner](https://user-images.githubusercontent.com/185555/55036691-45e23780-5080-11e9-94a3-d25f211e5cf3.png)

[WYSIWYG](https://en.wikipedia.org/wiki/WYSIWYG) text/markdown editor for [web](https://developer.mozilla.org) and [electron](https://electronjs.org), with rich [observable](https://www.learnrxjs.io) event stream.

## Setup

    yarn add @platform/ui.editor
npm package: @platform/ui.graphql
Description: UI components for working with GraphQL.
Latest version: 0.0.245
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.graphql-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.graphql.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.graphql)
![banner](https://user-images.githubusercontent.com/185555/57001651-0aea9b00-6c0e-11e9-9952-1692821cef55.png)

UI components for working with [GraphQL](https://graphql.org/).

<p>&nbsp;<p>

## Setup

    yarn add @platform/ui.graphql

Ensure base `css` files are included in the consuming project.

``` typescript
import `@platform/ui.graphql/import.css`
```


<p>&nbsp;<p>
<p>&nbsp;<p>

---

### Refs
- https://graphql.org
- https://github.com/graphql/graphiql
npm package: @platform/ui.icon
Description: Icon component library.
Latest version: 0.0.205
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.icon-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.icon.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.icon)

# ui.icon
Icon component library.

## Setup
Make sure to include the `react-icons` peer-dependency:

    yarn add @platform/ui.icon react-icons
npm package: @platform/ui.image
Description: Image related components.
Latest version: 0.2.113
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.image-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.image.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.image)
![banner](https://user-images.githubusercontent.com/185555/57009171-1dce9100-6c49-11e9-8d0f-cc7fdfd9ae18.png)

Image related components.

<p>&nbsp;<p>

## Setup

    yarn add @platform/ui.image




<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/ui.loader
Description: Bootstrapper for progressively loading UI modules dynamically.
Latest version: 0.2.86
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.loader-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.loader.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.loader)
![banner](https://user-images.githubusercontent.com/185555/63977795-ccf07b80-cb08-11e9-80da-df873f3dfce9.png)

Bootstrapper for progressively loading UI modules dynamically.

<p>&nbsp;<p>

#### Live Demo:
https://loader.platform.uiharness.com


<p>&nbsp;<p>


<div style="text-align:center"><img src="https://user-images.githubusercontent.com/185555/63910765-29f22000-ca7c-11e9-9d41-ac0ef2741cf1.gif" /></div>


<p>&nbsp;<p>


## Setup

    yarn add @platform/ui.loader


<p>&nbsp;<p>

## Sample

#### Sample UI
To run the sample within [UIHarness](https://uiharness.com): 

```bash
yarn start
```

The UI entry point to start exploring from is at `/src/sample/entry.tsx` (see `uiharness.yml`).

<p>&nbsp;<p>


#### Sample Server

To bundle and test using [@platform/react.ssr](../react.ssr) ensure you have a `.env` file in the root of the project with S3 connection details configured within `sample.server/ssr.yml`


```
# .env
SPACES_KEY="..."
SPACES_SECRET="..."
```

ensure node modules are installed within the sample server folder:

```bash
cd sample.server
yarn
```

Bundle, deploy and release:

```bash
yarn ssr bundle
# ... follow prompts ...

yarn ssr release
# ... follow prompts ...
```

Run the production server locally:

```bash
yarn watch
```

For more details on how to operate the SSR server see [@platform/react.ssr](../react.ssr)

<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/ui.mapbox
Description: Mapbox UI components.
Latest version: 0.0.128
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.mapbox-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.mapbox.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.mapbox)
![banner](https://platform.sfo2.digitaloceanspaces.com/repo-banners/ui.mapbox.png)

[Mapbox](https://www.mapbox.com/) UI components.

<p>&nbsp;<p>

## Setup

    yarn add @platform/ui.mapbox

If you experience issues with parceljs bundling, try adding the contents of [`.babelrc`](./.babelrc).  
See [issue](https://github.com/parcel-bundler/parcel/issues/1128#issuecomment-497251288).

<p>&nbsp;<p>

## Token
Include a file at `/test/TOKEN.ts` containing your mapbox access-token:

```typescript
/**
 * manage:  https://account.mapbox.com/access-tokens
 */
export const TOKEN = '...';

```
NB: This is excluded from the repo for obvious reasons.  
Get your own token at https://account.mapbox.com/access-tokens


<p>&nbsp;<p>

## Refs

- [mapbox-gl-js](https://docs.mapbox.com/mapbox-gl-js/overview/) documentation
-  https://docs.mapbox.com/api-playground/#/?_k=dmxd1m


<p>&nbsp;<p>
<p>&nbsp;<p>
npm package: @platform/ui.monaco
Description: Strongly typed wrapper around monaco-editor.
Latest version: 0.0.150
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.monaco-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.monaco.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.monaco)
![banner](https://user-images.githubusercontent.com/185555/54975174-1e955700-4ffb-11e9-86ea-769be61ef617.png)


[Strongly typed](https://www.typescriptlang.org) wrapper around the [monaco](https://github.com/Microsoft/monaco-editor) code editor, with rich [observable](https://www.learnrxjs.io) event stream.

## Setup

    yarn add @platform/ui.monaco




<p>&nbsp;<p>
<p>&nbsp;<p>

---

### Refs
- https://github.com/Microsoft/monaco-editor
- https://github.com/Microsoft/monaco-editor-samples
npm package: @platform/ui.object
Description: Visual display of javascript object.
Latest version: 0.0.259
Deprecated: pre-release module deprecation

![Module](https://img.shields.io/badge/%40platform-ui.object-%23EA4E7E.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![NPM](https://img.shields.io/npm/v/@platform/ui.object.svg?colorB=blue&style=flat)](https://www.npmjs.com/package/@platform/ui.object)

# ui.object
Visual display of javascript object.

## Setup

    yarn add @platform/ui.object



<p>&nbsp;<p>

## API

### `expandPaths`
 
The path string is similar to JSONPath. Examples:
```
$.foo.bar                     Expand just `bar`
['$', '$.foo', '$.foo.bar']   Expand all the way down to `bar`
['$', '$.1']                  Array index
['$', '$.*']                  Wildcard, equivalent to expandLevel={2}.
```

See [source ref](https://github.com/xyc/react-inspector#api).