open-index/open-npm huggingface dataset:
npm package: @saasmvp/nuxt-saasmvp-oauth
Description: nuxt-saasmvp-oauth is a Nuxt 3 Module employing the OAuth 2.0 authorization framework defined by IETF RFC 6749 to obtain limited access to a HTTP service. Access to protected resources is granted to Users and REST API Endpoints using an access token confo
Latest version: 1.0.1

[![npm](https://img.shields.io/npm/v/@saasmvp/nuxt-saasmvp-oauth?logo=npm)](https://www.npmjs.com/package/@saasmvp/nuxt-saasmvp-oauth)
[![github](https://img.shields.io/badge/github%20repo-black?logo=github)](https://github.com/rickgregg/nuxt-saasmvp-oauth)
[![license](https://img.shields.io/github/license/nuxt/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D)](https://github.com/rickgregg/nuxt-saasmvp-oauth/blob/main/LICENSE.txt)
[![nuxt](https://img.shields.io/badge/Nuxt%20Framework-18181B?logo=nuxt.js)](https://nuxt.com)
---

**nuxt-saasmvp-oauth** is a **Nuxt 3 Module** employing the OAuth 2.0 authorization framework defined by IETF RFC 6749 to obtain limited access to a HTTP service. Access to protected resources is granted to Users and REST API Endpoints using an access token conforming with the IETF RFC 7519 JSON Web Token (JWT) standard. The module may be used within the saasmvp framework ecosystem or with any Nuxt 3 application. **nuxt-saasmvp-oauth** is lightweight and easy to use for fast deployment.

### Documentation

Get documentation for the [**nuxt-saasmvp-oauth**](https://oauth.saasmvp.org/) NUXT 3 Module.

### The saasmvp Project

Spin up a SaaS Minimally Viable Product Fast. Quickly Discover your Customer. No Assembly Required. Find out more and get documentation for [**The saasmvp Project**](https://saasmvp.org). The saasmvp Project uses the nuxt-saasmvp-oauth NUXT 3 Module.

### Support

FREE individual support is available for [**registered users**](https://oauth.saasmvp.org/documentation/support.html) at **support@saasmvp.org**. [**Public support**](https://github.com/rickgregg/nuxt-saasmvp-oauth/issues) is available anytime.

### License

[**MIT**](https://github.com/rickgregg/nuxt-saasmvp-oauth/blob/main/LICENSE.txt)

Copyright (c) 2024, The saasmvp Project
npm package: @saaspilot/chat-ui
Description: SaaS Pilot Chat UI is a collection of pre-built UI components that can be used to integrate a SaaS Pilot chatbot into your software. The purpose of this library is to allow developers to easily integrate SaaS Pilot chatbot into their software.
Author: Glauber Funez
Latest version: 1.5.0

# SaaS Pilot Chat UI

SaaS Pilot Chat UI is a collection of pre-built UI components that can be used to integrate a SaaS Pilot chatbot into your software.
The purpose of this library is to allow developers to easily integrate SaaS Pilot chatbot into their software.

You can integrate in 3 ways:

|     | Approach                                                             | Description                                                            |
| --- | -------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| 1   | `SaaspButton` component _(recommended)_                              | Easiest & fastest                                                      |
| 2   | `SaaspChat` component                                                | Most flexible & customizable                                           |
| 3   | The modal (`SaaspModal`) or sidebar (`SaaspSidebar`) components | (#1 but you have total control over the button that opens the chatbot) |

## Installation

```bash
npm i @saaspilot/chat-ui
```
npm package: @saasquatch-themes/company-cam-components
Description: 1. Copy the `widget-starter` folder and rename as needed 2. Create new components in [./src/components](./src/components) as new folders, for example [./src/components/sqh-my-component](./src/components/sqh-my-component)
Author: SaaSquatch Team
Latest version: 1.0.0-0
npm package: @saasquatch-themes/google-components
Description: 1. Copy the `widget-starter` folder and rename as needed 2. Create new components in [./src/components](./src/components) as new folders, for example [./src/components/sqh-my-component](./src/components/sqh-my-component)
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.0.0-0
npm package: @saasquatch-themes/mynd-components
Description: SaaSquatch Partner Portal App
Author: Ionic Team
Latest version: 0.0.1

# Stencil App Starter

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool.  Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required.

Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings).

## Getting Started

To clone this repo:

```bash
git clone https://github.com/saasquatch/partner-portal.git partner-portal
cd partner-portal

```

and run:

```bash
npm install
npm start
```

To build the app for production, run:

```bash
npm run build
```

## Firebase Setup

```bash
npm install -g firebase-tools
firebase init
firebase functions:config:set config.apikey=KEY_HERE
firebase functions:config:set config.ident=uid|email
firebase deploy
```

To deploy functions only, run:
```bash
firebase deploy --only functions
```

To deploy code updates only, run:
```bash
firebase deploy --only hosting
```
npm package: @saasquatch-themes/revonate-components
Description: SaaSquatch Partner Portal App
Author: Ionic Team
Latest version: 1.0.4

# Stencil App Starter

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool.  Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required.

Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings).

## Getting Started

To clone this repo:

```bash
git clone https://github.com/saasquatch/partner-portal.git partner-portal
cd partner-portal

```

and run:

```bash
npm install
npm start
```

To build the app for production, run:

```bash
npm run build
```

## Firebase Setup

```bash
npm install -g firebase-tools
firebase init
firebase functions:config:set config.apikey=KEY_HERE
firebase functions:config:set config.ident=uid|email
firebase deploy
```

To deploy functions only, run:
```bash
firebase deploy --only functions
```

To deploy code updates only, run:
```bash
firebase deploy --only hosting
```
npm package: @saasquatch-themes/ringcentral-components-grapesjs
Description: GrapesJS Starter Plugin
Author: SaaSquatch
Latest version: 1.0.0

# GrapesJS Plugin Boilerplate


<span><a href="https://david-dm.org/artf/grapesjs-plugin-boilerplate#info=devDependencies" title="View the status of this project's development dependencies on DavidDM"><img src="https://img.shields.io/david/dev/artf/grapesjs-plugin-boilerplate.svg" alt="Dev Dependency Status" /></a></span>

This boilerplate helps you quickly start a production ready plugin for GrapesJS. If you don't know from where to start, check this guide [Creating plugins](https://github.com/artf/grapesjs/wiki/Creating-plugins). Sections below are also used as boilerplate for your README, follow steps

### Usage
1. Clone this repository `git clone https://github.com/artf/grapesjs-plugin-boilerplate.git`
1. Replace in all files `YOUR-PLUGIN-NAME` with your plugin name
1. Update `package.json`
1. Install dependencies `npm i` and run the local server `npm start`
1. Start creating your plugin from `src/index.js`
1. Show some gif/demo if possible
1. Update README
1. When you're ready update the production file `npm run build`
1. Publish




## Summary

* Plugin name: `YOUR-PLUGIN-NAME`
* Components
  * `new-component1`
  * `new-component2`
* Blocks
  * `new-block1`
  * `new-block1`
...





## Options

|Option|Description|Default|
|-|-|-
|`option1`|Description option|`default value`|





## Download

* CDN
  * `https://unpkg.com/YOUR-PLUGIN-NAME`
* NPM
  * `npm i YOUR-PLUGIN-NAME`
* GIT
  * `git clone https://github.com/YOUR-NAME/YOUR-PLUGIN-NAME.git`





## Usage

```html
<link href="https://unpkg.com/grapesjs/dist/css/grapes.min.css" rel="stylesheet"/>
<script src="https://unpkg.com/grapesjs"></script>
<script src="path/to/YOUR-PLUGIN-NAME.min.js"></script>

<div id="gjs"></div>

<script type="text/javascript">
  var editor = grapesjs.init({
      container : '#gjs',
      ...
      plugins: ['YOUR-PLUGIN-NAME'],
      pluginsOpts: {
        'YOUR-PLUGIN-NAME': {
          // options
        }
      }
  });
</script>
```





## Development

Clone the repository

```sh
$ git clone https://github.com/YOUR-NAME/YOUR-PLUGIN-NAME.git
$ cd YOUR-PLUGIN-NAME
```

Install dependencies

```sh
$ npm i
```

The plugin relies on GrapesJS via `peerDependencies` so you have to install it manually (without adding it to package.json)

```sh
$ npm i grapesjs --no-save
```

Start the dev server

```sh
$ npm start
```





## License

BSD 3-Clause
npm package: @saasquatch/alteryx-components-grapesjs
Description: GrapesJS Starter Plugin
Author: SaaSquatch
Latest version: 0.0.15

# GrapesJS Plugin Boilerplate


<span><a href="https://david-dm.org/artf/grapesjs-plugin-boilerplate#info=devDependencies" title="View the status of this project's development dependencies on DavidDM"><img src="https://img.shields.io/david/dev/artf/grapesjs-plugin-boilerplate.svg" alt="Dev Dependency Status" /></a></span>

This boilerplate helps you quickly start a production ready plugin for GrapesJS. If you don't know from where to start, check this guide [Creating plugins](https://github.com/artf/grapesjs/wiki/Creating-plugins). Sections below are also used as boilerplate for your README, follow steps

### Usage
1. Clone this repository `git clone https://github.com/artf/grapesjs-plugin-boilerplate.git`
1. Replace in all files `YOUR-PLUGIN-NAME` with your plugin name
1. Update `package.json`
1. Install dependencies `npm i` and run the local server `npm start`
1. Start creating your plugin from `src/index.js`
1. Show some gif/demo if possible
1. Update README
1. When you're ready update the production file `npm run build`
1. Publish




## Summary

* Plugin name: `YOUR-PLUGIN-NAME`
* Components
  * `new-component1`
  * `new-component2`
* Blocks
  * `new-block1`
  * `new-block1`
...





## Options

|Option|Description|Default|
|-|-|-
|`option1`|Description option|`default value`|





## Download

* CDN
  * `https://unpkg.com/YOUR-PLUGIN-NAME`
* NPM
  * `npm i YOUR-PLUGIN-NAME`
* GIT
  * `git clone https://github.com/YOUR-NAME/YOUR-PLUGIN-NAME.git`





## Usage

```html
<link href="https://unpkg.com/grapesjs/dist/css/grapes.min.css" rel="stylesheet"/>
<script src="https://unpkg.com/grapesjs"></script>
<script src="path/to/YOUR-PLUGIN-NAME.min.js"></script>

<div id="gjs"></div>

<script type="text/javascript">
  var editor = grapesjs.init({
      container : '#gjs',
      ...
      plugins: ['YOUR-PLUGIN-NAME'],
      pluginsOpts: {
        'YOUR-PLUGIN-NAME': {
          // options
        }
      }
  });
</script>
```





## Development

Clone the repository

```sh
$ git clone https://github.com/YOUR-NAME/YOUR-PLUGIN-NAME.git
$ cd YOUR-PLUGIN-NAME
```

Install dependencies

```sh
$ npm i
```

The plugin relies on GrapesJS via `peerDependencies` so you have to install it manually (without adding it to package.json)

```sh
$ npm i grapesjs --no-save
```

Start the dev server

```sh
$ npm start
```





## License

BSD 3-Clause
npm package: @saasquatch/bedrock-components
Description: Component library that adds advanced logic to your widgets and pages. Built and maintained by Saasquatch.
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.5.3

![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)

# Bedrock Components

Bedrock components are a collection of components for SaaSquatch that provide important logic in your widget, but provide no theming, UI or other visual artifacts.

Bedrock components can be used with other component collections, such as vanilla components and mint components.

## Using these components

To use these components, add them as a depencency in your SaaSquatch widget editor.
npm package: @saasquatch/brandlabmedia-components
Description: SaaSquatch Partner Portal App
Author: Ionic Team
Latest version: 1.0.0

# Stencil App Starter

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool.  Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required.

Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings).

## Getting Started

To clone this repo:

```bash
git clone https://github.com/saasquatch/partner-portal.git partner-portal
cd partner-portal

```

and run:

```bash
npm install
npm start
```

To build the app for production, run:

```bash
npm run build
```

## Firebase Setup

```bash
npm install -g firebase-tools
firebase init
firebase functions:config:set config.apikey=KEY_HERE
firebase functions:config:set config.ident=uid|email
firebase deploy
```

To deploy functions only, run:
```bash
firebase deploy --only functions
```

To deploy code updates only, run:
```bash
firebase deploy --only hosting
```
npm package: @saasquatch/chip-components-starter
Description: Stencil is a compiler for building fast web apps using Web Components.
Author: SaaSquatch Team
Latest version: 0.0.2-1

# Stencil App Starter

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool.  Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required.

Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings).

## Getting Started

To start a new project using Stencil, clone this repo to a new directory:

```bash
git clone https://github.com/ionic-team/stencil-starter.git my-app
cd my-app
git remote rm origin
```

and run:

```bash
npm install
npm start
```

To view the build, start an HTTP server inside of the `/www` directory.

To watch for file changes during development, run:

```bash
npm run dev
```

To build the app for production, run:

```bash
npm run build
```

To run the unit tests once, run:

```
npm test
```

To run the unit tests and watch for file changes during development, run:

```
npm run test.watch
```
npm package: @saasquatch/component-boilerplate
Description: Boilerplate for writing web components for the SaaSquatch widget environments
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.6.10

# SaaSquatch Component Boilerplate

This is a collection of essential universal hooks for use in building web components for the SaaSquatch platform.

## Documentation

See [index.ts](src/index.ts) for API documentation directly in Typescript.
npm package: @saasquatch/component-environment
Description: Environment and contexts for SaaSquatch components
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.0.11

Provides the environment for running SaaSquatch web components.

SaaSquatch web components can run in a number of different environments, including:

- in a widget via `squatch-js`
- in a microsite (portal)
- in a mobile SDK (i.e. `squatch-android`)
- in the admin portal

In each environment, a different set of context information about the tenant, user and program are provided, and the goal of this package is to normalize the differences in environments to provide a common API.

The environment is provided in a set of contexts through `dom-context`, which provides vanilla global context providers. They can be accessed through a raw `ContextListener` or via `useDomContext` in `dom-context-hooks`.

## General environment

### `getEnvironment()`

Get the environment type. The current possible values are: `SquatchJS2`, `SquatchAndroid`, `SquatchPortal`, `SquatchAdmin` or `None`.

### `isDemo()`

Returns whether components should run in demo/preview mode.

### `getTenantAlias()`

Get the current tenant alias.

### `getAppDomain()`

Get the SaaSquatch app domain.

### `getEngagementMedium()`

Get the current engagement medium. This is particularly important in widgets rendered by `squatch-js` for informing metadata about share link clicks.

## User identity

The user identity context name is exported in a constant `USER_CONTEXT_NAME`. The current value can be retrieved with `getUserIdentity()` and set with `setUserIdentity(identity)`.

## Locale

The locale context name is exported in a constnat `LOCALE_CONTEXT_NAME`. The current value can be retrieved with `getLocale()` and set with `setLocal(locale)`.

## Program ID

The program ID context name is exported in a constant `PROGRAM_CONTEXT_NAME`. The current value can be retrieved with `getProgramId()` and set with `setProgramId(programId)`.
npm package: @saasquatch/fsr-components
Description: Stencil is a compiler for building fast web apps using Web Components.
Author: SaaSquatch Team
Latest version: 1.0.1-4

# Stencil App Starter

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool.  Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required.

Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings).

## Getting Started

To start a new project using Stencil, clone this repo to a new directory:

```bash
git clone https://github.com/ionic-team/stencil-starter.git my-app
cd my-app
git remote rm origin
```

and run:

```bash
npm install
npm start
```

To view the build, start an HTTP server inside of the `/www` directory.

To watch for file changes during development, run:

```bash
npm run dev
```

To build the app for production, run:

```bash
npm run build
```

To run the unit tests once, run:

```
npm test
```

To run the unit tests and watch for file changes during development, run:

```
npm run test.watch
```
npm package: @saasquatch/haunted-hooks-testing-library
Description: This is a testing library for Haunted that tries to be as API compatible with React Hooks Testing Library. The motivation for this was to ensure that swapping from React to Haunted in Universal Hooks Testing Library is very easy and that the tests have th
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.0.1

# Haunted Hooks Testing Library

This is a testing library for Haunted that tries to be as API compatible with React Hooks Testing Library. The motivation for this was to ensure that swapping from React to Haunted in Universal Hooks Testing Library is very easy and that the tests have the same behavior.

## Differences

Errors and storing of more than the last function call have not been implemented yet. Act doesn't actually do anything besides execute the callback.

## Documentation

The API that this is based off is here: https://react-hooks-testing-library.com/reference/api

Here's what's been implemented so far:

- act
- renderHook (only option is initialProps)
  - result
  - rerender
  - unmount
  - waitFor
  - waitForNextUpdate
  - waitForValueToChange
npm package: @saasquatch/json-schema-editor-visual
Description: A visual json schema editor
Latest version: 1.0.4

# SaaSquatch Json Schema Editor

## Installing via NPM

```
npm install @saasquatch/json-schema-editor-visual
```

## Getting Started

```js
import "antd/dist/antd.css";
import "@saasquatch/json-schema-editor-visual/dist/index.css";
import createEditor from "@saasquatch/json-schema-editor-visual";

const SchemaEditor = createEditor();

const SchemaEditorView = () => {
  return (
    <>
      <SchemaEditor />
    </>
  );
};
```

The schema editor is designed to be compatible with JSON Schema version draft-06. Visit the [JSON Schema Website](https://json-schema.org/) to learn more.

## Schema Editor Props

| name       | type     | default | description                                                    |
| ---------- | -------- | ------- | -------------------------------------------------------------- |
| `data`     | string   | null    | the data of editor                                             |
| `onChange` | function | null    | the function triggered when changes to the editor's data occur |

## Acknowledgements

Forked from [YMFE](https://github.com/YMFE/json-schema-editor-visual).
npm package: @saasquatch/jsonata-paths-extractor
Description: A package for statically analysing JSONata expressions and returning object paths from the context that are likely used. Complete static analysis of JSONata is not attempted (and may not actually be feasible), so the results are considered best-effort.
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.0.2

# JSONata Paths Extractor

A package for statically analysing JSONata expressions and returning object paths from the context that are likely used. Complete static analysis of JSONata is not attempted (and may not actually be feasible), so the results are considered best-effort.

### Installation

Using npm or yarn the package can be installed

`npm i @saasquatch/jsonata-paths-extractor`

## Usage

A single function is exported as the default export. The function accepts a JSONata expression as input and returns the paths found in the expression.

For more detail on behaviour, see `test/paths.feature`

_Example usage:_

```ts
import extractJSONataPaths from "@saasquatch/jsonata-paths-extractor";

const exampleJsonataExpression =
  'example.jsonata.path = "a string" ? example.two : example[two="test"].name^(<three)';

const paths = extractJSONataPaths(exampleJsonataExpression);
// paths: ["/example/jsonata/path","/example/two","/example/name","/example/two","/example/name/three"]
```

## Test Suite

The package contains a test suite that runs through expressions sourced from program conditions and the JSONata test suite.
The results of these tests were autogenerated and reviewed, they should be used as a set of tests to ensure against regressions.
The results of the test suite should only be modified after implementing improvements to the library.

Improvements should be documented in the feature file in addition to the automated tests.
npm package: @saasquatch/new-york-post-components
Description: Stencil is a compiler for building fast web apps using Web Components.
Author: SaaSquatch Team
Latest version: 1.0.0-1

# Stencil App Starter

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool.  Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required.

Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings).

## Getting Started

To start a new project using Stencil, clone this repo to a new directory:

```bash
git clone https://github.com/ionic-team/stencil-starter.git my-app
cd my-app
git remote rm origin
```

and run:

```bash
npm install
npm start
```

To view the build, start an HTTP server inside of the `/www` directory.

To watch for file changes during development, run:

```bash
npm run dev
```

To build the app for production, run:

```bash
npm run build
```

To run the unit tests once, run:

```
npm test
```

To run the unit tests and watch for file changes during development, run:

```
npm run test.watch
```
npm package: @saasquatch/partner-portal-app
Description: SaaSquatch Partner Portal App
Author: Ionic Team
Latest version: 1.0.0-0

# Stencil App Starter

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool.  Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required.

Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings).

## Getting Started

To clone this repo:

```bash
git clone https://github.com/saasquatch/partner-portal.git partner-portal
cd partner-portal

```

and run:

```bash
npm install
npm start
```

To build the app for production, run:

```bash
npm run build
```

## Firebase Setup

```bash
npm install -g firebase-tools
firebase init
firebase functions:config:set config.apikey=KEY_HERE
firebase functions:config:set config.ident=uid|email
firebase deploy
```

To deploy functions only, run:
```bash
firebase deploy --only functions
```

To deploy code updates only, run:
```bash
firebase deploy --only hosting
```
npm package: @saasquatch/paypal-components
Description: Component library that integrates with our Paypal Payouts integration. Built with Shoelace components by Saasquatch.
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.0.3

![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)

# PayPal Components

PayPal components are a collection of components for SaaSquatch that provide end users with details about PayPal payouts made through the PayPal integration. This includes a PayPal account details component (\<sqp-account-details>) allowing users to add/update their PayPal email and view the preview of future payouts, a PayPal rewards table status column component (\<sqp-status-column>) which displays reward payout details from the PayPal integration and similarly a PayPal referral table rewards column component (\<sqp-rewards-column>) which displays reward payout details from the PayPal integration.

## Using these components

To use these components, add them as a depencency in your SaaSquatch widget editor.

PayPal components must also be used with `@saasquatch/mint-components@1.6.5` or later in order to be fully functional.
npm package: @saasquatch/program-test-suite
Description: A collection of utilities for creating program unit tests
Author: ReferralSaaSquatch.com, Inc.
Latest version: 2.7.0

# SaaSquatch Program Test Suite

This package contains everything needed to facilitate blackbox unit testing of the
SaaSquatch programs. It includes a family of default Cucumber step definitions and tools
for simulated execution of the programs.

## Installation

```bash
npm install -D @saasquatch/program-test-suite
```

## Usage

The program test suite is based on Jest. Place the following inside your Jest config:

```typescript
import { jestConfig } from "@saasquatch/program-test-suite";
export default jestConfig;
```

Use the `runProgramTests` function to execute the tests. Here is an example of a typical
test program:

```typescript
// Import your program from the source code. This is a `types.rpc.Program` that you would
// pass to program-boilerplate
import { program } from "../src/program";
import { runProgramTests } from "@saasquatch/program-test-suite";

// Any additional custom steps you need for this particular program
import steps from "./steps";

runProgramTests(
  program,
  // Path to the .feature files containing the unit test steps
  "__tests__/features/unit",
  steps,
  // Path to the program schema
  "src/schema/birthday-program_schema.json",
  // Default program template and program rules to use while testing
  "__tests__/defaults/template.json",
  "__tests__/defaults/rules.json"
);
```
npm package: @saasquatch/revonate-components
Description: SaaSquatch Partner Portal App
Author: Ionic Team
Latest version: 1.0.1

# Stencil App Starter

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool.  Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required.

Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings).

## Getting Started

To clone this repo:

```bash
git clone https://github.com/saasquatch/partner-portal.git partner-portal
cd partner-portal

```

and run:

```bash
npm install
npm start
```

To build the app for production, run:

```bash
npm run build
```

## Firebase Setup

```bash
npm install -g firebase-tools
firebase init
firebase functions:config:set config.apikey=KEY_HERE
firebase functions:config:set config.ident=uid|email
firebase deploy
```

To deploy functions only, run:
```bash
firebase deploy --only functions
```

To deploy code updates only, run:
```bash
firebase deploy --only hosting
```
npm package: @saasquatch/schema
Description: Machine readable schemas global to the SaaSquatch platform
Author: ReferralSaaSquatch.com, Inc.
Latest version: 2.1.0

# schema

Machine readable schemas global to the SaaSquatch platform


## How to deploy

Run these commands:

```
npm install
npm login ## Need to login with a user who can access the @saasquatch organization
npm run deploy
```

Internally it will automatically update the ID of JSON Schemas to incorporate the version.
npm package: @saasquatch/scoped-autobindsteps
Description: A replacement for jest-cucumber's autoBindSteps that doesn't use global scope.
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.0.1

# Scoped `autoBindSteps` for jest-cucumber

A replacement autoBindSteps function for use with `jest-cucumber`.

Currently, the `jest-cucumber` implementation of `autoBindSteps` stores all steps and feature files in the global scope. This can be a problem if you would like to use the same step names across different files but don't want them to conflict. This package solves that problem.

Each function call of autoBindSteps only binds the features and steps that you provide in that call.

## Comparison

Here's a comparison between this implementation vs the original implementation of `autoBindSteps`

### Original

This is what happens with `autoBindSteps` from `jest-cucumber`.

```typescript
const allFeatures = loadFeatures(FEATURE_PATH + "*.feature");
const allSteps = [/* steps here */];

// all of the steps are bound to all of the features
autoBindSteps(allOfMyFeatures, allOfMySteps);
```

You might think that this keeps them separate, but it still mixes them together.

```typescript
import {redSteps, blueSteps} from "./mySteps"

const redFeature = loadFeature(FEATURE_PATH + "Red.feature")
const blueFeature = loadFeature(FEATURE_PATH + "Blue.feature")

// this
autoBindSteps([redFeature], [redSteps])
autoBindSteps([blueFeature], [blueSteps])

// does the same thing as this
autoBindSteps([redFeature, blueFeature], [redSteps, blueSteps])
```

This way of doing things means that each step name must be unique. This becomes a problem when you have a large number of steps names, and as a result, the feature files can get quite verbose.

### Scoped

This is what happens with `autoBindSteps` from this package.

```typescript
import {redSteps, blueSteps} from "./mySteps"

const redFeature = loadFeature(FEATURE_PATH + "Red.feature")
const blueFeature = loadFeature(FEATURE_PATH + "Blue.feature")

// scopes are kept completely separate
autoBindSteps([redFeature], [redSteps])
autoBindSteps([blueFeature], [blueSteps])
```

Because of this, there can be steps in `redSteps` and `blueSteps` that have the exact same name and don't confict because they're only bound to one file.

This is nice because you can turn step names like this

```
press the red button in the yellow spaceship once
```

into step names like this

```
press the button once
```
npm package: @saasquatch/squatch-search
Description: SaaSquatch search
Author: SaaSquatch Team
Latest version: 0.1.0-16

# visual-dev

Template repo for visual development for Saasquatch products.

## Usage

To install dependencies
``` 
$ npm install
```

To build
```
$ npm run build 
```

To run tests
```
$ npm run test
```

To run Storybook
``` 
$ npm run storybook
```
npm package: @saasquatch/st-mint-components
Description: Mint Components for Service Titan - Built with Shoelace Components
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.0.0

Forked from @saasquatch/mint-components@1.0.0-86. This forked intends to maintain compatibility with Service Titan widgets/microsites which rely on deprecated components and CSS variables.

---

![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)

# Mint Components

Mint components for the SaaSquatch content platform. Built with Stencil.

# About Stencil

Stencil is a compiler for building fast web apps using Web Components.

Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool. Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.

Stencil components are just Web Components, so they work in any major framework or with no framework at all.
npm package: @saasquatch/stencil-hooks
Description: Stencil Component Starter
Author: ReferralSaaSquatch.com, Inc.
Latest version: 4.0.2

# Stencil Hooks

Let's you use React-style hooks in your [Stencil](https://stenciljs.com/) components. Based on [haunted](https://github.com/matthewp/haunted/).


### Getting Started

Prefered distribution is via NPM, 

```
npm i @saasquatch/stencil-hooks
```

To use the library you need to call `withHooks` in the constructor of your component, and then you can use hooks inside of your `render` function.

```js
import { withHooks, useState } from '@saasquatch/stencil-hooks';

@Component({
  tag: 'my-counter',
})
export class Counter {
  constructor() {
    withHooks(this);
  }

  render() {
    const [count, setCount] = useState(0);
    return (
      <div>
        {count} <button onClick={() => setCount(count + 1)}>+1</button>
      </div>
    );
  }

  disconnectedCallback() {
    // required for `useEffect` cleanups to run
  }
}
```

See it in action on the [live demo](https://webcomponents.dev/edit/gqVMwvd4PFqN3isJPt2h).


### FAQ

 - **Shouldn't I just use Stencil state?** Yes, for simple cases you should. But for more complex state use cases hooks help make your state logic more modular, testable and shareable. The core stencil team has acknowledged that internal component state is not enough, and added libraries such as `stencil-store` and `stencil-redux` and `stencil-state-tunnel`. `stencil-hooks` uses the same `forceUpdate` from `@stencil/core` that is used by [stencil-store](https://github.com/ionic-team/stencil-store/blob/master/src/subscriptions/stencil.ts#L44).
 - **Why not X state library?** The SaaSquatch team is used to thinking about state problems in hooks, so it's good for us. In some cases Redux or MobX or even Backbone might be a better solution.
 - **Does this library actually work?** This library has a large set of tests across most of the hooks in haunted and is used in production at SaaSquatch.

### Differences from Haunted

This library re-exports most of haunted, but swaps out the `Context` implementation with [dom-context](https://github.com/saasquatch/dom-context).
npm package: @saasquatch/stencil-html-parser
Description: An HTML parser for creating dynamic Stencil components
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.0.3

# stencil-html-parser

HTML to Stencil Parser. Takes HTML as a string, uses a template tag to turn it into DOM, then converts those nodes into Stencil `VNode` elements.

## Usage

Preferred use of this library is via an import from NPM and bundled into your stencil components.

```
npm i @saasquatch/stencil-html-parser
```

The `parse` method will provide `VNode` elements that can be rendered directly.

```js
import { Component, h, Host, State, Method } from "@stencil/core";
import { parse } from "@saasquatch/stencil-html-parser";

@Component({
  tag: "html-renderer",
})
export class TestComponent {
  @Prop() html: string = `<div>Hello world</div>`;

  render() {
    try{
      const el = this.html?parse(this.html):"";
      return <Host>{el}</Host>;  
    }catch(e){
      console.error("Parsing error", e.message);
      return <Host></Host>
    }
  }
}
```

## What is supported?

 - [Attributes](__tests/Attributes.feature)
 - [Elements](__tests/Elements.feature)
 - [Inline styles and styles tags](__tests/Styles.feature)
 - [Template tags](__tests/Templates.feature)
 - [Script tags](__tests/ScriptTags.feature)

## Security

You can sanitize the HTML before rendering, e.g. with [DOMPurify](https://github.com/cure53/DOMPurify)

## Why use this library?

 - Unlike setting `innerHTML` on a component, the parsed `VNode` elements will maintain state, and can be modified before being inserted.
npm package: @saasquatch/stencilbook
Description: Storybook, but built with Stencil. Used to provide an easy to view and test implemented components and all of their states / specs, and to easily share progress with customers.
Author: ReferralSaaSquatch.com, Inc.
Latest version: 1.1.0

# Stencilbook

A storybook inspired development environment for Stencil. Uses the [Component Story Format (CSF)](https://storybook.js.org/docs/web-components/api/csf) for portability but relies on the Stencil compiler to do all the lazy loading and bundling of imports.

## Usage

```
npm i @saasquatch/stencilbook
```

```js
import { withHooks } from "@saasquatch/stencil-hooks";
import { useStencilbook } from "@saasquatch/stencilbook";

// Import your stories here. Stencilbook doesn't auto-discover stories
import * as Footer from "../../stories/Footer.stories";
import * as Banner from "../../stories/Banner.stories";

const stories = [Banner, Footer];

@Component({
  tag: "customers-stencilbook",
})
export class Component {
  constructor() {
    withHooks(this);
  }
  disconnectedCallback() {}
  render() {
    return useStencilbook(stories);
  }
}
```