open-index/open-npm huggingface dataset:
npm package: @mathigon/boost
Description: DOM, Webcomponents, Animations, Events and AJAX Library.
Latest version: 1.2.37

# Boost.ts

> 🚨 Vulnerabilities found in `compile` and `evaluate`, these functions should not be used until this notice is removed after further testing!

[![Build Status](https://github.com/mathigon/boost.js/workflows/CI%20Tests/badge.svg)](https://github.com/mathigon/boost.js/actions?query=workflow%3A%22CI+Tests%22)
[![npm](https://img.shields.io/npm/v/@mathigon/boost.svg)](https://www.npmjs.com/package/@mathigon/boost)
[![npm](https://img.shields.io/github/license/mathigon/boost.js.svg)](https://github.com/mathigon/boost.js/blob/master/LICENSE)

Bost.ts is a library that makes working with browsers easier: everything from DOM manipulation to
web components, event handling, animations, routing, multi-threading and AJAX requests. It was
developed for [Mathigon.org](https://mathigon.org), an award-winning mathematics education project.


## Features

* [DOM elements](docs/elements.md): selection, creation, manipulation, and styling
* [SVG and Canvas drawing](docs/elements.md#svg-and-canvas-drawing)
* [Event handling](docs/events.md): gestures, pointers, scroll, hover, intersections, draggable
  elements, and more
* [Animations and transitions](docs/animations.md)
* [Custom web components](docs/webcomponents.md)
* [Template and observables](docs/webcomponents.md#templates-models-and-observables)
* AJAX utilities
* Browser load and resize events, Cookies and Local Storage, Keyboard events
* Router for single-page sites
* Multi-threading using WebWorkers


## Usage

First, install Boost.ts from [NPM](https://www.npmjs.com/package/@mathigon/boost)
using

```
npm install @mathigon/boost
```

Now, simply import all functions and classes you need, using

```js
import {$, CustomElement, Browser} from '@mathigon/boost'
```


## Components

Importing the webcomponents `<x-modal>`, `<x-popup>`, `<x-icon>`, `<x-alert>` and `<x-select>` works
a bit different from other functions exported by this module. Because they are just static classes
with no side effects, they would usually be removed by tree-shaking. We also want to avoid duplicate
component declarations, or any globally-running code.

* The __types__ can be imported like all other classes from `@mathigon/boost`.
* The actual __code__ is not included in the CJS or ESM bundles. needs to be included using
  something like `import '@mathigon/boost/dist/components.js'`.
* The SCSS styles can be imported in other SCSS files using
  `@import node_modules/@mathigon/boost/src/components/components`.


## Contributing

We welcome community contributions: please file any bugs you find or send us pull requests with
improvements. You can find out more on [Mathigon.io](https://mathigon.io).

Before submitting a pull request, you will need to sign the [Mathigon Individual Contributor
License Agreement](https://gist.github.com/plegner/5ad5b7be2948a4ad073c50b15ac01d39).


## Copyright and License

Copyright © Mathigon ([dev@mathigon.org](mailto:dev@mathigon.org))  
Released under the [MIT license](LICENSE)
npm package: @mathigon/core
Description: TypeScript utilities library containing function wrappers, string and array helper functions, event classes and color utilities.
Latest version: 1.1.23

# Core.ts

[![Build Status](https://github.com/mathigon/core.js/workflows/CI%20Tests/badge.svg)](https://github.com/mathigon/core.js/actions?query=workflow%3A%22CI+Tests%22)
[![npm](https://img.shields.io/npm/v/@mathigon/core.svg)](https://www.npmjs.com/package/@mathigon/core)
[![npm](https://img.shields.io/github/license/mathigon/core.js.svg)](https://github.com/mathigon/core.js/blob/master/LICENSE)

Core.ts is a library of TypeScript utility function and classes, including array
and string helpers, function wrappers and event classes. It was developed for
[Mathigon.org](https://mathigon.org), an award-winning mathematics education
project.


## Features

* Function wrappers for caching and throttling (`cache()`, `throttle()`)
* Array generation (`tabulate()`, `repeat()`, `list()`)
* Array utilities (`total()`, `flatten()`, `chunk()`, `intersect()`, …)
* String utilities (`toCamelCase()`, `isPalindrome()`, `autoCorrect()`, …)
* Event Target class, supporting `.on()`, `.off()` and `.trigger()` methods
* Color parsing, conversion and interpolation
* Misc utilities (`uid()`, `isOneOf()`, …)


## Usage

First, install Core.ts from [NPM](https://www.npmjs.com/package/@mathigon/core)
using

```npm install @mathigon/core```

Now, simply import all functions and classes you need, using

```js
import {tabulate, toCamelCase, EventTarget} from '@mathigon/core'
```


## Contributing

We welcome community contributions: please file any bugs you find or send us
pull requests with improvements. You can find out more on
[Mathigon.io](https://mathigon.io).

Before submitting a pull request, you will need to sign the [Mathigon Individual
Contributor License Agreement](https://gist.github.com/plegner/5ad5b7be2948a4ad073c50b15ac01d39).


## Copyright and License

Copyright © Mathigon ([dev@mathigon.org](mailto:dev@mathigon.org))  
Released under the [MIT license](LICENSE)
npm package: @mathigon/euclid
Description: Euclidean geometry classes and tools for JavaScript
Latest version: 1.2.4

# Euclid.ts

[![Build Status](https://github.com/mathigon/euclid.js/workflows/CI%20Tests/badge.svg)](https://github.com/mathigon/euclid.js/actions?query=workflow%3A%22CI+Tests%22)
[![npm](https://img.shields.io/npm/v/@mathigon/euclid.svg)](https://www.npmjs.com/package/@mathigon/euclid)
[![npm](https://img.shields.io/github/license/mathigon/euclid.js.svg)](https://github.com/mathigon/euclid.js/blob/master/LICENSE)

Euclid.ts is a Typescript library for 2D geometry. It contains classes for elements like points,
lines, circles, and polygons, intersection detection, as well as SVG and Canvas drawing tools.
It was developed for [Mathigon.org](https://mathigon.org), an award-winning mathematics education
project.


## API

All class instances are immutable: you need to create new copies rather than modifying their
properties. This is mainly to facilitate fast change detection on downstream libraries.

* Points: `Point(x: number, y: number)`
* Lines: `Line(p1: Point, p2: Point)`, `Segment(p1: Point, p2: Point)`, `Ray(p1: Point, p2: Point)`
* Polygons: `Polygon(...points: Point[])`, `Polyline(...points: Point[])`
* Rectangles: `Rectangle(p: Point, w: number, h: number)`
* Circles: `Circle(c: Point, r: number)`
* Ellipses: `Ellipse(c: Point, a: number, b: number)` 
* Arcs: `Arc((c: Point, start: Point, angle: number))`, `Sector((c: Point, start: Point, angle: number))`

* Angle: `Angle(a: Point, b: Point, c: Point)`
* Bounds: `Bounds(xMin: number, xMax: number, yMin: number, yMax: number)`

* Intersections: `intsersection(...obj: GeoShape[])`
* Drawing: `drawSVG(obj: GeoElement, options: SVGDrawingOptions)`, `drawCanvas(ctx: CanvasRenderingContext2D, obj: GeoElement, options: CanvasDrawingOptions)`


## Usage

First, install Euclid.ts from [NPM](https://www.npmjs.com/package/@mathigon/euclid)
using

```npm install @mathigon/euclid```

Now, simply import all functions and classes you need, using

```js
import {Point, Line} from '@mathigon/euclid'
```


## Contributing

We welcome community contributions: please file any bugs you find or send us
pull requests with improvements. You can find out more on
[Mathigon.io](https://mathigon.io).

Before submitting a pull request, you will need to sign the [Mathigon Individual
Contributor License Agreement](https://gist.github.com/plegner/5ad5b7be2948a4ad073c50b15ac01d39).


## Copyright and License

Copyright © Mathigon ([dev@mathigon.org](mailto:dev@mathigon.org))  
Released under the [MIT license](LICENSE)
npm package: @mathigon/fermat
Description: Powerful mathematics and statistics library for JavaScript.
Latest version: 1.1.24

# Fermat.ts

[![Build Status](https://github.com/mathigon/fermat.js/workflows/CI%20Tests/badge.svg)](https://github.com/mathigon/fermat.js/actions?query=workflow%3A%22CI+Tests%22)
[![npm](https://img.shields.io/npm/v/@mathigon/fermat.svg)](https://www.npmjs.com/package/@mathigon/fermat)
[![npm](https://img.shields.io/github/license/mathigon/fermat.js.svg)](https://github.com/mathigon/fermat.js/blob/master/LICENSE)

Fermat.ts is a powerful mathematics and statistics library for TypeScript. It contains everything
from number theory to random numbers, expression parsing and linear algebra classes. It was
developed for [Mathigon.org](https://mathigon.org), an award-winning mathematics education
project.


## Features

Note: in version `0.6.0`, all geometry classes and functions were moved to
[@mathigon/euclid](https://github.com/mathigon/euclid.js)!

* Arithmetic: `nearlyEquals()`, `toWord()`, `toFraction()`, …
* Combinatorics: `factorial()`, `binomial()`, `permutations()`, `subsets()`
* Complex numbers: `Complex()`
* Cryptography: `caesarCipher()`, `vigenereCipher()`, `letterFrequency()`
* Matrices: `Matrix.product()`, `Matrix.determinant()`, `Matrix.inverse()`, …
* Number theory: `gcd()`, `isPrime()`, `generatePrime()`, `goldbach()`, …
* Numeric: `bisect()`, `integrate()`
* Random: `Random.shuffle()`, `Random.binomial()`, `Random.normalPDF()`, …
* Regression: `Regression.linear()`, `Regression.coefficient()`, …
* Statistics: `mean()`, `variance()`, `linearRegression()`, …
* Vector: `Vector()`


## Usage

First, install Fermat.ts from [NPM](https://www.npmjs.com/package/@mathigon/fermat)
using

```npm install @mathigon/fermat```

Now, simply import all functions and classes you need, using

```js
import {Complex, gcd} from '@mathigon/fermat'
```


## Contributing

We welcome community contributions: please file any bugs you find or send us
pull requests with improvements. You can find out more on
[Mathigon.io](https://mathigon.io).

Before submitting a pull request, you will need to sign the [Mathigon Individual
Contributor License Agreement](https://gist.github.com/plegner/5ad5b7be2948a4ad073c50b15ac01d39).


## Copyright and License

Copyright © Mathigon ([dev@mathigon.org](mailto:dev@mathigon.org))  
Released under the [MIT license](LICENSE)
npm package: @mathigon/hilbert
Description: JavaScript expression parsing, MathML rendering and CAS.
Latest version: 1.1.25

# Hilbert.ts

[![Build Status](https://github.com/mathigon/hilbert.js/workflows/CI%20Tests/badge.svg)](https://github.com/mathigon/hilbert.js/actions?query=workflow%3A%22CI+Tests%22)
[![npm](https://img.shields.io/npm/v/@mathigon/hilbert.svg)](https://www.npmjs.com/package/@mathigon/hilbert)
[![npm](https://img.shields.io/github/license/mathigon/hilbert.js.svg)](https://github.com/mathigon/hilbert.js/blob/master/LICENSE)

Hilbert.ts is a TypeScript library for expression parsing, simplification, and
MathML rendering. It was developed for [Mathigon.org](https://mathigon.org), an
award-winning mathematics education project.


## Open Issues

* [ ] Support for functions with subscripts (e.g. `log_a(b)`).
* [ ] Support for large operators (sum, product and integral).
* [ ] Parse ^ and _ operator from right to left (e.g. `2^2^2 == 2^(2^2)`).
* [ ] CAS Expression simplification algorithms, `equals()` and `same()` methods.
* [ ] More tests, including visual tests for MathML.


## Usage

First, install Hilbert.ts from [NPM](https://www.npmjs.com/package/@mathigon/hilbert)
using

```npm install @mathigon/hilbert```

Now, simply import all functions and classes you need, using

```js
import {Expression} from '@mathigon/hilbert'
```


## Contributing

We welcome community contributions: please file any bugs you find or send us
pull requests with improvements. You can find out more on
[Mathigon.io](https://mathigon.io).

Before submitting a pull request, you will need to sign the [Mathigon Individual
Contributor License Agreement](https://gist.github.com/plegner/5ad5b7be2948a4ad073c50b15ac01d39).


## Copyright and License

Copyright © Mathigon ([dev@mathigon.org](mailto:dev@mathigon.org))  
Released under the [MIT license](LICENSE)
npm package: @mathiscode/repo-scanner
Description: Scan folders or repositories for malware practices
Author: Jay Mathis
Latest version: 1.0.2

# Repo Scanner

A quick and dirty tool to help defend against common developer-focused malware campaigns since many of these go unnoticed by common antivirus software.

Inspired by [this post](https://www.reddit.com/r/Upwork/comments/14nat71/scam_warning_blockchain_developer_job_postings) (steals your browser profiles and other files)

Currently the signatures target this specific type of Javascript malware, but more will be added over time.
npm package: @mathisloge/node-pre-gyp-github
Description: Publishes release assets to already existing releases. Depends on https://github.com/mapbox/node-pre-gyp
Author: Mathis Logemann
Latest version: 1.0.9

# node-pre-gyp-github

Publishes release assets to already existing releases.
Depends on https://github.com/mapbox/node-pre-gyp


# Usage



```json 
{
    "binary": {
        "module_name": "myproject",
        "module_path": "./lib/binding/napi-v{napi_build_version}",
        "remote_path": "v{version}",
        "package_name": "{platform}-{arch}-napi-v{napi_build_version}.tar.gz",
        "host": "https://github.com/<myorg>/<myproject>/releases/download",
        "napi_versions": [
            3
        ]
    },
    "scripts": {
        "package": "node-pre-gyp package",
        "publish": "npm run package && node-pre-gyp-github publish"
    },
}
```
Attention: the `remote_path` have to resolve to a valid release tag!

Before publishing, you need to provide the `NODE_PRE_GYP_GITHUB_TOKEN` which is compatible to the original https://github.com/bchr02/node-pre-gyp-github.

### How do I get the NODE_PRE_GYP_GITHUB_TOKEN? 

Needed rights:

* `write:packages` (for uploading release assets)
* `delete:packages` (for replacing release assets)

See the how to https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token