open-index/open-npm huggingface dataset:
npm package: @finos/a11y-theme-builder-sdk
Description: Accessibility Theme Builder SDK
Author: Keith Smith
Latest version: 1.1.1

[![FINOS - Incubating](https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-incubating.svg)](https://community.finos.org/docs/governance/Software-Projects/stages/incubating) [![Maintainers-Invited](https://img.shields.io/badge/Maintainers-Wanted-blueviolet)](./CONTRIBUTE.md) [![Contributors-Invited](https://img.shields.io/badge/Contributors-Wanted-blue)](./CONTRIBUTE.md)
# Accessibility Theme Builder SDK

Accessibility compliance is both a difficult and a cost intensive task.  This is true not only when creating an initially compliant application, but also when maintaining that compliance.

The purpose of this SDK is to simplify this task by performing the necessary calculations and generating output (e.g. CSS, JSON tokens, or other) to be imported into your application.  

This SDK is designed to be extensible with regard to each of the following:

* output generators (e.g. CSS, JSON tokens, etc),
* atoms,
* molecules,
* organisms, and
* accessibility layers (e.g. color blindness, motion sensitivity, etc).

## Getting Started

### Using the Web App

For both a broad overview of accessibility compliance and a user-friendly web application which you may use in order to build your themes, see the  [Accessibility Theme Builder repository](https://github.com/finos/a11y-theme-builder/blob/main/README.md#accessibility-theme-builder).  The web application in that repository uses this SDK to perform it's calculations and to generate output.

### Using the SDK directly

If you want to learn more about how to use this SDK directly, see the [SDK Tutorial](./TUTORIAL.md).

For more in-depth information about the APIs, see the [API documentation](https://finos.github.io/a11y-theme-builder-sdk/modules.html).

## Contributing 
### Join us
[Get involved](https://github.com/finos/a11y-theme-builder/blob/main/CONTRIBUTE.md) and learn how our project is managed. Our project welcomes passionate contributors. 

### Developers
See the [Developer's Guide](./DEV-GUIDE.md) for information on building, developing, and testing code contributions.
## License

Copyright 2023 Discover Financial Services 

Distributed under the [Apache-2.0 License](./LICENSE).
npm package: @finos/babel-preset-legend-studio
Description: Legend Studio Babel preset
Latest version: 2.0.89

# @finos/babel-preset-legend-studio

This preset includes the following presets and plugins:

- [@babel/preset-env](https://babeljs.io/docs/en/babel-preset-env)
- [@babel/preset-react](https://babeljs.io/docs/en/babel-preset-react)
- [@babel/preset-typescript](https://babeljs.io/docs/en/babel-preset-typescript)

And with the `development` option:

`React` support adds:

- [react-refresh/babel](https://github.com/facebook/react/tree/master/packages/react-refresh)

## Options

const { development, useTypescript, useReact } = opts;

### `development`

`boolean`, defaults to `false`

This toggles behavior specific to development:

- `React` support will turn on `fast-refresh` for files with `JSX`.

### `useTypescript`

`boolean`, defaults to `false`

This toggles support for Typescript. Note that `babel` [does not do type-checking](https://babeljs.io/docs/en/index#type-annotations-flow-and-typescript) (i.e. it only strips away type annotations and transpile files to Javascript) nor generating type definition files.

### `useReact`

`boolean`, defaults to `false`

This toggles support for React. Note that we use `automatic` for runtime option, which auto-import functions from `React@17` that helps with transforming JSX.
npm package: @finos/eslint-plugin-legend-studio
Description: ESLint rules for Legend Studio
Latest version: 3.0.18

# @finos/eslint-plugin-legend-studio

This plugin includes 3 configs:

- `recommended`: This config turns on rules in recommended configs for `ESLint`, `eslint-plugin-import`, `React`, `Prettier`, and `Typescript`. These rules are light-weighted, and suitable to run on incremental build during development.
- `computationally-expensive`: This config turns on [computationally expensive](https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/FAQ.md#my-linting-feels-really-slow) rules. For example: Typescript type-ware checks, import rules that require checking multiple files, indentation rules, etc. These rules are not suitable to run on incremental build as they seriously increase effective rebuild time.
- `scripts-override`: This config turns off certain rules which are not suitable for script files or Javascript files (i.e. Typescript-specific rules). As such, this config if used in tandem with other configs, should go last.

Following is an example of usage:

```js
module.exports = {
  root: true, // tell ESLint to stop looking further up in directory tree to resolve for parent configs
  parserOptions: {
    // `parserOptions.project` is required for generating parser service to run specific Typescript rules
    project: ['packages/*/tsconfig.json'],
  },
  plugins: ['@finos/legend-application-studio'],
  extends: [
    'plugin:@finos/legend-application-studio/recommended',
    'plugin:@finos/legend-application-studio/computationally-expensive',
    'plugin:@finos/legend-application-studio/scripts-override',
  ].filter(Boolean),
};
```

> Note that for the imports, we can use either `@finos/legend-application-studio/` or `@finos/eslint-plugin-legend-studio/` as prefix and the rules, configs, and plugin will be picked up by ESLint just fine.
npm package: @finos/fdc3
Description: This npm module is the main entry point for the Financial Desktop Connectivity and Collaboration Consortium (FDC3) JavaScript API.
Author: Fintech Open Source Foundation
Latest version: 2.2.0

# FDC3

This npm module is the main entry point for the Financial Desktop Connectivity and Collaboration Consortium (FDC3) JavaScript API.

Since version 2.2.0 this module only provides an ES6 module. Applications requiring a CommonJS module should either update to ES6 or switch to the [@finos/fdc3-commonjs module](https://npmjs.com/package/@finos/fdc3-commonjs) (provided for backwards compatibility).

## Installation

To install the FDC3 module, use npm:

```bash
npm install @finos/fdc3
```

## Usage

To use the FDC3 module in your project, import it as follows:

```javascript
import { getAgent } from '@finos/fdc3';
// getAgent() returns the FDC3 Desktop Agent
const fdc3 = getAgent();

// Example usage
const contact = {
  type: 'fdc3.contact',
  name: 'Jane Doe',
  id: {
    email: 'jane@mail.com'
  }
};

fdc3.raiseIntent('ViewProfile', contact);
```

## Documentation

For detailed documentation and API reference, please visit the [official FDC3 documentation](https://fdc3.finos.org/docs/api/spec).

## Contributing

We welcome contributions to the FDC3 project. Please see our [contributing guidelines](https://github.com/finos/FDC3/blob/main/CONTRIBUTING.md) for more information.

## License

This project is licensed under the [Apache 2.0 License](LICENSE).

## Contact

For any questions or support, please reach out to the FDC3 community on our [Slack channel](https://finos-lf.slack.com/archives/CJ8Q8H4Q1) or [mailing list](mailto:fdc3@finos.org).

## Further Details

Further details are avilable in the main [FDC3 Project README](https://github.com/finos/FDC3)
npm package: @finos/fdc3-agent-proxy
Description: This package contains complete implementation of the FDC3 Desktop Agent Communication Protocol (DACP).
Author: Fintech Open Source Foundation
Latest version: 2.2.1-beta.3

# FDC3 Agent Proxy

This package contains complete implementation of the FDC3 Desktop Agent Communication Protocol (DACP).  

Further details:
 - https://github.com/finos/FDC3
 - [FDC3 Specification](https://fdc3.finos.org/)
 - Main FDC3 module: https://www.npmjs.com/package/@finos/fdc3
npm package: @finos/fdc3-backplane-client
Description: JS client for connecting and communicating with 'backplane'
Author: Fintech Open Source Foundation
Latest version: 1.0.0-develop.1

# Backplane Client JS

Javascript client which allows web based desktop agents to connect and communicate with backplane through API.

## Supported Operations

- Broadcast context

## Usage example

```ts
import { BackplaneClient } from '@finos/fdc3-backplane-client';

const instrument = {
  type: "fdc3.instrument",
  id: {
    ticker: "AAPL",
    ISIN: "US0378331005",
    FIGI: "BBG000B9XRY4",
  },
};

var backplaneClient = new backplaneClient.BackplaneClient({
	appIdentifier: {
		appId: 'backplaneJSClient',
	},
	url: 'http://localhost:4475',
});

await backplaneClient.connect(
	//hook for receive message from backplane
	msg => {
		if (msg.type == Fdc3Action.Broadcast) {
			console.info(`Backplane Client: Recived broadcast over channel: ${msg.payload.channelId}`);
		}
		console.info(JSON.stringify(msg));
	},
	//hook on disconnection
	err => {
		console.error(`Backplane Client: Disconnected.${err}`);
	}
);
await backplaneClient.broadcast(instrument, "Channel 1");
```

## Installation
To access the APIs in your application, simply install '@finos/fdc3-backplane-client' npm package:

```sh

# npm
npm install @finos/fdc3-backplane-client

#yarn
yarn add @finos/fdc3-backplane-client

```

Use any of below to locally build and reference this package in your web application.

- [npm-link](https://docs.npmjs.com/cli/link)
- [yarn-link](https://classic.yarnpkg.com/en/docs/cli/link/)

## License

Copyright (C) 2022 Backplane open source project

Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).

SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)
npm package: @finos/fdc3-commonjs
Description: This is the CommonJS module version of the Financial Desktop Connectivity and Collaboration Consortium (FDC3) javascript API.
Author: Fintech Open Source Foundation
Latest version: 2.2.1-beta.3

# FDC3 CommonJS Module

This is the CommonJS module version of the Financial Desktop Connectivity and Collaboration Consortium (FDC3) javascript API. 

## Warning

CommonJS is no longer the recommended module system for JavaScript. We recommend using the FDC3 ES6 module at `@finos/fdc3` instead. The FDC3 CommonJS module is provided for compatibility with older projects that use CommonJS.

## Installation

To install the FDC3 CommonJS module, use npm:

```bash
npm install @finos/fdc3-commonjs
```

## Usage

To use the FDC3 CommonJS module in your project, require it as follows:

```javascript
const fdc3CommonJs = require('@finos/fdc3-commonjs');

// getAgent() returns the FDC3 Desktop Agent
const fdc3 = fdc3CommonJs.getAgent();

// Example usage
const contact = {
  type: 'fdc3.contact',
  name: 'Jane Doe',
  id: {
    email: 'jane@mail.com'
  }
};

fdc3.raiseIntent('ViewProfile', contact);
```

## Documentation

For detailed documentation and API reference, please visit the [official FDC3 documentation](https://fdc3.finos.org/docs/api/overview).

## Contributing

We welcome contributions to the FDC3 project. Please see our [contributing guidelines](https://github.com/finos/FDC3/blob/main/CONTRIBUTING.md) for more information.

## License

This project is licensed under the [Apache 2.0 License](LICENSE).

## Contact

For any questions or support, please reach out to the FDC3 community on our [Slack channel](https://finos-lf.slack.com/archives/CJ8Q8H4Q1) or [mailing list](mailto:fdc3@finos.org).

## Further Details
 - https://github.com/finos/FDC3
 - [FDC3 Specification](https://fdc3.finos.org/)
 - Main FDC3 module: https://www.npmjs.com/package/@finos/fdc3
npm package: @finos/fdc3-get-agent
Description: Contains the main entry point for the Financial Desktop Connectivity and Collaboration Consortium (FDC3) JavaScript API, via the `getAgent` function.
Author: Fintech Open Source Foundation
Latest version: 2.2.1-beta.3

# FDC3 Agent Proxy

Contains the main entry point for the Financial Desktop Connectivity and Collaboration Consortium (FDC3) JavaScript API, via the `getAgent` function.


## Installation

To install the FDC3 module, use npm:

```bash
npm install @finos/fdc3-get-agent
```

## Usage

To use the FDC3 module in your project, import it as follows:

```javascript
import { getAgent } from '@finos/fdc3-get-agent';
// getAgent() returns the FDC3 Desktop Agent
const fdc3 = await getAgent();

// Example usage
const contact = {
  type: 'fdc3.contact',
  name: 'Jane Doe',
  id: {
    email: 'jane@mail.com'
  }
};

fdc3.raiseIntent('ViewProfile', contact);
```

## Documentation

For detailed documentation and API reference, please visit the [official FDC3 documentation](https://fdc3.finos.org/docs/api/spec).

## Contributing

We welcome contributions to the FDC3 project. Please see our [contributing guidelines](https://github.com/finos/FDC3/blob/main/CONTRIBUTING.md) for more information.

## License

This project is licensed under the [Apache 2.0 License](LICENSE).

## Contact

For any questions or support, please reach out to the FDC3 community on our [Slack channel](https://finos-lf.slack.com/archives/CJ8Q8H4Q1) or [mailing list](mailto:fdc3@finos.org).

## Further Details

Further details are avilable in the main [FDC3 Project README](https://github.com/finos/FDC3)
npm package: @finos/fdc3-standard
Description: Interface definitions for the FDC3 standard in TypeScript (e.g. the `DesktopAgent` interface) and the app directory schema.
Author: Fintech Open Source Foundation
Latest version: 2.2.1-beta.3

# FDC3 Standard Module

Interface definitions for the FDC3 standard in TypeScript (e.g. the `DesktopAgent` interface) and the app directory schema.  

Further details:
 - https://github.com/finos/FDC3
 - [FDC3 Specification](https://fdc3.finos.org/)
 - Main FDC3 module: https://www.npmjs.com/package/@finos/fdc3
npm package: @finos/fdc3-web-impl
Description: This repository contains a [FDC3 2.0 Conformant](../../fdc3-conformance/README.md), headless implementation of the FDC3 DACP protocol.
Author: Fintech Open Source Foundation
Latest version: 2.2.1-beta.3

# FDC3 Web Implementation

This repository contains a [FDC3 2.0 Conformant](../../fdc3-conformance/README.md), headless implementation of the FDC3 DACP protocol. 

This package forms the basis of the implementation of the FDC3 Desktop Agent reference implementation, found in [the demo module](../demo/README.md) as well as the web-version of [FDC3-Sail](https://github.com/finos/FDC3-Sail/).

It is expected that Desktop Agent implementations can either use this package as the basis for their own FDC3 implementation, use the tests provided here to test their implementation or rake inspiration from the codebase to implement their own FDC3 Desktop Agent from scratch.

## How This Works

There are three main types of component here:

- **MessageHandlers**: These are the core of the FDC3 implementation. They are responsible for handling incoming messages from apps and responding to them correctly.  There are four defined, breaking up the functionality of FDC3:  `BroadcastHandler` (handing channels and broadcasting), `IntentHandler` (handling intents, intent resolution etc.), `OpenHandler` (handling app launches) and `HeartbeatHandler` (handling app liveness and disconnection).

 - **FDC3Server**: This is the main entry point for the FDC3 implementation. It is responsible for setting up the message handlers and starting the server, implemented by `BasicFDC3Server` and `DefaultFDC3Server` classes. 

 - **ServerContext**: This interface is responsible for maintaining the state of the server.  `ServerContext` really determines how FDC3 is run: how messages are sent, how apps are launched, how intents are resolved etc.  It is the main point of customization for an FDC3 implementation. If you are implementing an FDC3 Desktop Agent, you will need to implement this class yourself.   See the [Demo](../demo/README.md), which implements this in-browser as `DemoServerContext`.
npm package: @finos/git-proxy-license-inventory
Description: <br /> <div align="center">   <a href="https://github.com/finos/git-proxy">     <img src="../../docs/img/logo.png" alt="Logo" height="95">   </a>
Author: git-proxy contributors
Latest version: 0.0.2

<br />
<div align="center">
  <a href="https://github.com/finos/git-proxy">
    <img src="../../docs/img/logo.png" alt="Logo" height="95">
  </a>

  <br />
  <strong>git-proxy: license-inventory</strong>
  <br />

  <p align="center">
    <strong>experimental</strong> project to provide license data and attach said license data to projects for fueling policy evaluation.
    <br />
  </p>

  <br />

[![FINOS - Incubating](https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-incubating.svg)](https://community.finos.org/docs/governance/Software-Projects/stages/incubating)
[![NPM](https://img.shields.io/npm/v/@finos/git-proxy-license-inventory?colorA=00C586&colorB=000000)](https://www.npmjs.com/package/@finos/git-proxy-license-inventory)
[![Build](https://img.shields.io/github/actions/workflow/status/finos/git-proxy/experimental-inventory-ci.yml?branch=main&label=CI&logo=github&colorA=00C586&colorB=000000)](https://github.com/finos/git-proxy/actions/workflows/experimental-inventory-ci.yml)
[![git-proxy](https://api.securityscorecards.dev/projects/github.com/finos/git-proxy/badge)](https://api.securityscorecards.dev/projects/github.com/finos/git-proxy)
<br />
[![License](https://img.shields.io/github/license/finos/git-proxy?colorA=00C586&colorB=000000)](https://github.com/finos/git-proxy/blob/main/LICENSE)
[![Slack](https://img.shields.io/badge/_-Chat_on_Slack-000000.svg?logo=slack&colorA=00C586)](https://app.slack.com/client/T01E7QRQH97/C06LXNW0W76)

</div>
<br />

This is an **experimental** project to provide license data and attach said license data to projects for fueling policy evaluation.

Please consider all REST API paths, inputs, and outputs in flux during `v0`. Additionally do not rely import paths to be stable.
npm package: @finos/git-proxy-plugin-samples
Description: A set of sample (dummy) plugins for GitProxy to demonstrate how plugins are authored.
Author: Thomas Cooper
Latest version: 0.1.1

# GitProxy plugins & samples
GitProxy supports extensibility in the form of plugins. These plugins are specified via [configuration](https://git-proxy.finos.org/docs/category/configuration) as NPM packages or JavaScript code on disk. For each plugin configured, GitProxy will attempt to load each package or file as a standard [Node module](https://nodejs.org/api/modules.html). Plugin authors will create instances of the extension classes exposed by GitProxy and use these objects to implement custom functionality.

For detailed documentation, please refer to the [GitProxy development resources on the project's site](https://git-proxy.finos.org/docs/development/plugins)

## Included plugins
These plugins are maintained by the core GitProxy team. As a future roadmap item, organizations can choose to omit
certain features of GitProxy by simply removing the dependency from a deployed version of the application.

- `git-proxy-plugin-samples`: "hello world" examples of the GitProxy plugin system

## Contributing

Please refer to the [CONTRIBUTING.md](https://git-proxy.finos.org/docs/development/contributing) file for information on how to contribute to the GitProxy project.
npm package: @finos/legend-application-pure-ide-deployment
Description: Legend Pure IDE web application deployment
Latest version: 13.208.0

# @finos/legend-application-pure-ide-deployment

This is the `Legend Pure IDE` web application deployment. This is used for development locally

## Backend

`Legend Pure IDE` relies on:

- [Legend Engine](https://github.com/finos/legend-engine) [Light Pure IDE server](https://github.com/finos/legend-engine/blob/master/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java).

## Getting started

To quickly setup the backend, [setup with Maven](https://github.com/finos/legend-engine#starting-pure-ide).

Last but not least, make sure you have `Yarn` installed. Run the following commands in order.

```bash
  yarn install
  yarn setup
  yarn dev:pure-ide
```

After setting up, visit http://localhost:9200/ide and the application should be up and running.
npm package: @finos/legend-application-repl-deployment
Description: Legend REPL web application deployment
Latest version: 13.208.0

# @finos/legend-application-repl-deployment

This is the `Legend REPL` web application deployment. This is used for development locally

## Getting Started

1. Start the REPL using [this guide](https://github.com/finos/legend-engine/blob/master/legend-engine-config/legend-engine-repl/README.md#developer-guide).

- Use [DataCubeClient](https://github.com/finos/legend-engine/blob/master/legend-engine-config/legend-engine-repl/legend-engine-repl-data-cube/src/main/java/org/finos/legend/engine/repl/dataCube/client/DataCubeClient.java).
- Make sure to configure the properties to have the REPL point at the DEV web app:

```
# [DEVELOPMENT] Specify the base URL for the development instance of the web application
# this is needed to bypass CORS
-Dlegend.repl.dataCube.devWebAppBaseUrl=http://localhost:9005

# [DEVELOPMENT] By default, the port is randomized, but for development, the port needs
# to be fixed to allow the web application to connect to the REPL
-Dlegend.repl.dataCube.devPort=9006
```

2. Start REPL web-application:

```bash
  yarn install
  yarn setup
  yarn dev:repl
```

Visit http://localhost:9005/repl/grid and the application should be up and running.
npm package: @finos/legend-extension-assortment
Description: An assortment of Legend extensions
Latest version: 0.0.430

# @finos/legend-extension-assortment

This is an assortment of Legend collections. We want to keep only **light** extensions in this package, if the extension support starts getting advanced, e.g. you need to build full metamodel graph, editor, please create a new package for your extension.
npm package: @finos/perspective-cli
Description: Perspective.js CLI
Latest version: 3.8.0

# Perspective CLI

```bash
Usage: perspective [options] [command]

A convenient command-line client for Perspective.js.  Can convert between Perspective supported format, or host a local web server.

Options:
  -V, --version                 output the version number
  -h, --help                    output usage information

Commands:
  convert [options] [filename]  Convert a file into a new format.  Reads from STDIN if no filename is provided
    Options:
    -f, --format <format>    Which output format to use:  arrow, csv, columns, json.
    -o, --output <filename>  Filename to write to.  If not supplied, writes to STDOUT
    -h, --help               output usage information

  host [options] [filename]     Host a file on a local Websocket/HTTP server using a server-side Perspective.  Reads from STDIN if no filename is provided
    Options:
      -p, --port <port>  Which port to bind to (default: 8080)
      -o, --open         Open a browser automagically
      -h, --help         output usage information
```
npm package: @finos/perspective-esbuild-plugin
Description: esbuild plugin for Perspective
Latest version: 3.2.1

# `@finos/perspective-esbuild-plugin`

Applications bundled with `esbuild` can make use of the
`@finos/perspective-esbuild-plugin` module. A full example can be found in the
repo under [`examples/esbuild-example`](https://github.com/finos/perspective/tree/master/examples/esbuild-example).

```javascript
const esbuild = require("esbuild");
const {PerspectiveEsbuildPlugin} = require("@finos/perspective-esbuild-plugin");

esbuild.build({
    entryPoints: ["src/index.js"],
    plugins: [PerspectiveEsbuildPlugin()],
    format: "esm",
    bundle: true,
    loader: {
        ".ttf": "file",
    },
});
```

When bundling via `esbuild`, you must also:

-   Use the `type="module"` attribute in your app's `<script>` tag, as this
    build mode is only supported via ES modules.
-   Use the direct imports for the `esm` versions Perspective, specifically
    `@finos/perspective/dist/esm/perspective.js` and
    `@finos/perspective-viewer/dist/esm/perspective-viewer.js`
npm package: @finos/perspective-jupyterlab
Description: A Jupyterlab extension for the Perspective library, designed to be used with perspective-python.
Latest version: 3.8.0

# Perspective JupyterLab Extension

This extension allows in-lining perspective based charts in jupyterlab
notebooks.

[Examples](https://github.com/finos/perspective/tree/master/examples/jupyter-notebooks)

## Installation

### From npm

```bash
jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install @finos/perspective-jupyterlab
```

### PIP

```bash
pip install perspective-python
```
npm package: @finos/perspective-phosphor
Description: Perspective.js
Latest version: 0.4.2

# Perspective Phosphor Extension

This extension implements `perspective-viewer` in a [PhosphorJS](https://phosphorjs.github.io) widget, making it trivial to integrate perspective in `phosphor` based apps, such as JupyterLab. 

## Installation

### From npm
`npm install @finos/perspective-phosphor`
npm package: @finos/perspective-webpack-plugin
Description: Perspective.js Webpack Plugin
Latest version: 3.2.1

# Perspective Webpack Plugin

For use with [Webpack](https://webpack.js.org/), this plugin allows smaller
& faster loading assets.  The plugin takes care of:

* Copying the Web Worker engine assets to your output directory.
* That's it!

Without this plugin or a manual equivalent of these steps, the WebAssembly
binary we be inlined as a `base64` string in the resulting `.js` asset, which
impacts total asset size and load time.  It will not in any way affect actual
runtime performance - the `inline` and `plugin` compilations modes are
otherwise identical.


## Example

```javascript
const PerspectivePlugin = require("@finos/perspective-webpack-plugin");

module.exports = {
    entry: "./in.js",
    output: {
        filename: "out.js",
        path: "build"
    },
    plugins: [new PerspectivePlugin()]
};
```