open-index/open-npm huggingface dataset:
npm package: @livechat/design-system-themes
Description: Theming for apps using LiveChat design system components
Author: kamilmateusiak
Latest version: 1.0.1

# @livechat/design-system-themes

> Themes package for apps using LiveChat Design System

## Getting started

To install `@livechat/design-system-themes` in your project, you will need to run the following
command using [npm](https://www.npmjs.com/):

```bash
npm install @livechat/design-system-themes --save
```
npm package: @livechat/developer-cli
Description: This project exposes Text Platform capabilities in form of easy to use CLI application.
Author: Wojciech Dudek
Latest version: 2.1.2

# <img src="https://platform.labs.text.com/console/favicon.ico" widht="24px" height="24px" /> Text Platform - Developer CLI

> This project unlocks Text Platform capabilities in form of easy to use CLI application.

[![mit](https://img.shields.io/badge/license-MIT-blue.svg)](https://choosealicense.com/licenses/mit/)

## 📦 Installation

Use the [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/) package managers to install the package in your project.

```bash
npm install -g @livechat/developer-cli
# or
yarn global add @livechat/developer-cli
```

## 🚀 Usage

### Modules

```text
txdev --help
```

## ⚙️ Getting started

### Bootstrap application from template

Initialize a new application from our official template [Nextjs SaaS boilerplate (Next.js)](https://github.com/livechat/developer-app-template-saas):

```sh
txdev app create template
```

## 📃 License

The code and documentation in this project are released under the [MIT License](https://choosealicense.com/licenses/mit/).
npm package: @livechat/developer-studio-ui-react
Description: Typescript library with react components for Text Platform Developer Studio.
Author: Wojciech Dudek
Latest version: 2.0.2

# <img src="https://platform.labs.text.com/console/favicon.ico" widht="24px" height="24px" /> Text Platform - Developer UI (react)

> Typescript library with react components for Text Platform Developer Studio

[![mit](https://img.shields.io/badge/license-MIT-blue.svg)](https://choosealicense.com/licenses/mit/)

## 📦 Installation

Use the [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/) package managers to install the package in your project.

```bash
npm install -g @livechat/developer-studio-ui-react
# or
yarn global add @livechat/developer-studio-ui-react

## 📃 License

The code and documentation in this project are released under the [MIT License](https://choosealicense.com/licenses/mit/).
```
npm package: @livechat/eslint-plugin
Description: Linting rules plugin for TypeScript ESLint
Author: LiveChat
Latest version: 1.2.2

# Liniting rules plugin for TypeScript ESLint by LiveChat

A package of linting rules used in TypeScript ESLint.

## Quick-start


### Installation

```bash
$ npm i --save-dev @livechat/eslint-plugin
```


### Usage example

```json
{
  "plugins": ["@livechat"],
  "rules": {
    "@livechat/no-declare": "error"
  }
}
```


## Linting rules list

| Name                                                           | Description                                   |
| -------------------------------------------------------------- | --------------------------------------------- |
| [`@livechat/no-declare`](#no-declare)                          | Forbids using 'declare' keyword               |


## no-declare

Using 'declare' keyword may be forbidden for all or selected identifiers. You can use it for example to force another methods of declaring global variables, e.g. using 'import' forms.


### Options

```ts
type Options = {
  onlyIdentifiers?: string[];
  excludeIdentifiers?: string[];
};

const defaultOptions: Options = {
  onlyIdentifiers: [];
  excludeIdentifiers: [];
};
```

The rule accepts options with the following properties:

- `onlyIdentifiers` (optional) - If used, only the provided identifiers will be reported. All other identifiers declared with `declare` keyword will be ignored.
- `excludeIdentifiers` (optional) - If used, all identifiers will be reported except those provided in the array. If `onlyIdentifiers` is used, this option is ignored.


### default options

Don't use 'declare' keyword.

<!--tabs-->

#### ❌ Incorrect

```ts
declare const someConst: any;
declare const window: { location };
declare const x, y, z: number;
```

#### ✅ Correct

```ts
import someConst from 'some-lib';
import { window } from 'utils/global-declarations';
const { x, y, z } = window;
```


### onlyIdentifiers

Don't use 'declare' keyword for the provided identifiers.

```json
{
  "@livechat/no-declare": [ "error", { "onlyIdentifiers": [ "window" ] } ]
}
```

<!--tabs-->

#### ❌ Incorrect

```ts
declare const window: any;
declare const window: { location };
```

#### ✅ Correct

```ts
import { window } from 'utils/global-declarations';
declare const someConst: any;
declare const x, y, z: number;
```


### excludeIdentifiers

Don't use 'declare' keyword except for the provided identifiers. If `onlyIdentifiers` is used, this option is ignored.

```json
{
  "@livechat/no-declare": [ "error", { "excludeIdentifiers": [ "someConst" ] } ]
}
```

<!--tabs-->

#### ❌ Incorrect

```ts
declare const window: any;
declare const x, y, z: number;
```

#### ✅ Correct

```ts
import { window } from 'utils/global-declarations';
declare const someConst: any;
```
npm package: @livechat/postmessage
Description: A library which makes [`postMessage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) communication easier. It's responsible for:
Latest version: 0.3.6

# @livechat/postmessenger

A library which makes [`postMessage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) communication easier. It's responsible for:

- establishing a connection between a parent page and a child iframe,
- allowing promisified remote procedure calls,
- allowing events to be dispatched to the listener on the other side.

It's using a custom protocol for a communication - it's using a distinct shape of passed frames. The protocol was designed with different frame types in mind (currently handshake, response, call & emit). Given global nature of `window.postMessage` communication, it annotates all sent frames with:

- "unique" fingerprint (namespaced string),
- owner ID (allows multiple copies of the library to coexist on a single page),
- instance ID (allows multiple instances to be created on a single page).

## Terminology

### Handshake

Handshake is the point in time when we know that the connection has been established and it's safe to send data between parties.

Both sides of the communication receive a promise object which resolves after the so-called handshake. It's the point in time when we know that the connection has been established and it's safe to send data to the "other side".

### Model

Object consisting of data & methods given to the initialization function.

Data (plain values) are being sent to the "other side" and are given to the consumer on the "other side" when initialization promise resolves.

Methods are being registered within instance and can be called remotely by the instance existing on the other side of the communication using `instance.call('methodName', ...args)`.

## Types

```ts
type Api = {
    call: (method: string, ...args: any[]) => Promise<any>,
    emit: (event: string, data: any) => void,
    off: (event: string, callback: (...args: any[]) => any) => void,
    on: (event: string, callback: (...args: any[]) => any) => void,
    once: (event: string, callback: (...args: any[]) => any) => void,
}

type Model = { [key: string]: string | number | (...args: any[]) => any }

type Destroy = () => void

type IframeInstance = {
    destroy: Destroy,
    frame: HTMLIFrameElement,
    promise: Promise<Api & {
        destroy: Destroy,
        frame: HTMLIFrameElement,
        data: { [key: string]: string | number }
    }>
}

type ParentInstance = {
    promise: Promise<Api & {
        data: { [key: string]: string | number }
    }>
}
```

## API

### createIframe

```ts
function createIframe(
  {
    container,
    url,
    targetOrigin,
    handshakeRetry,
  }: {
    container: string
    url: string
    targetOrigin?: string
    handshakeRetry?: { interval?: number; count?: number }
  },
  model?: Model,
): IframeInstance
```

### connectToParent

```ts
function connectToParent(
  model?: Model,
  options?: { handshakeTimeout?: number },
): IframeInstance
```

## Inspired by

- [postmate](https://github.com/dollarshaveclub/postmate)
npm package: @livechat/widget-core
Description: LiveChat Chat Widget adapters implementation core
Latest version: 1.4.0

# @livechat/widget-core

> [LiveChat Chat Widget](https://developers.livechat.com/open-chat-widget/) adapters implementation core

[![mit](https://img.shields.io/badge/license-MIT-blue.svg)](https://choosealicense.com/licenses/mit/)
![Github lerna version](https://img.shields.io/github/lerna-json/v/livechat/chat-widget-adapters?label=version)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)
[![Check](https://github.com/livechat/chat-widget-adapters/actions/workflows/check.yml/badge.svg?branch=master)](https://github.com/livechat/chat-widget-adapters/actions/workflows/check.yml)

## Installation

Using npm:

```bash
npm install @livechat/widget-core
```

or using yarn:

```bash
yarn add @livechat/widget-core
```

## Usage

See one of the packages listed below for usage reference

- [@livechat/widget-react](https://www.npmjs.com/package/@livechat/widget-react)
- [@livechat/widget-vue](https://www.npmjs.com/package/@livechat/widget-vue)
- [@livechat/widget-angular](https://www.npmjs.com/package/@livechat/widget-angular)

## Contributing

Pull requests are welcome. For major changes, please open an issue first, so we can discuss what you would like to change. Follow a [Contributing guide](https://github.com/livechat/chat-widget-adapters/blob/master/CONTRIBUTING.md) for more details.

## License

The code and documentation in this project are released under the [MIT License](https://choosealicense.com/licenses/mit/).
npm package: @livechat/widget-core-sdk
Description: Products widget core library
Latest version: 1.5.1

# Widget Core SDK

Shared widget functionality for the products SDKs.

[![mit](https://img.shields.io/badge/license-MIT-blue.svg)](https://choosealicense.com/licenses/mit/)
![npm](https://img.shields.io/npm/v/@livechat/widget-core-sdk?label=version)
[![turborepo](https://img.shields.io/badge/maintained%20with-turborepo-blueviolet)](https://turbo.build/repo)

## Installation

The package can be installed directly from NPM.

```
npm install --save @livechat/widget-core-sdk
```

## Usage

See one of the packages listed below for usage reference

- [@livechat/agent-app-sdk](https://www.npmjs.com/package/@livechat/agent-app-sdk)
- [@livechat/helpdesk-sdk](https://www.npmjs.com/package/@livechat/helpdesk-sdk)

## Contributing

Pull requests are welcome. For major changes, please open an issue first, so we can discuss what you would like to change. Follow a [Contributing guide](https://github.com/livechat/products-sdk/blob/master/CONTRIBUTING.md) for more details.

## License

The code and documentation in this project are released under the [MIT License](https://choosealicense.com/licenses/mit/).