# @allmaps/stdlib

> Allmaps Standard Library

Latest version **1.0.0-beta.42** (published 2026-09-22) · MIT license · 0 weekly downloads

## Install

```sh
npm install @allmaps/stdlib
pnpm add @allmaps/stdlib
yarn add @allmaps/stdlib
bun add @allmaps/stdlib
```

## Health

**Score 60/100 (C)** — status: active.

Positive: esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 1.0.0-beta.42 |
| Published | 2026-09-22 |
| First published | 2023-02-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM |
| Dependencies | 10 |
| Unpacked size | 143.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 143 |
| Maintainers | bertspaan |
| Keywords | allmaps, stdlib |

## Links

- npm: https://www.npmjs.com/package/@allmaps/stdlib
- Repository: https://github.com/allmaps/allmaps
- Homepage: https://allmaps.org
- Issues: https://github.com/allmaps/allmaps/issues
- npm.io page: https://npm.io/package/@allmaps/stdlib

## Dependencies (10)

- [hex-rgb](https://npm.io/package/hex-rgb.md) ^5.0.0
- [rgb-hex](https://npm.io/package/rgb-hex.md) ^4.1.0
- [lodash-es](https://npm.io/package/lodash-es.md) ^4.17
- [svg-parser](https://npm.io/package/svg-parser.md) ^2.0.4
- [@allmaps/id](https://npm.io/package/@allmaps/id.md) ^1.0.0-beta.39
- [@turf/rewind](https://npm.io/package/@turf/rewind.md) ^7.2.0
- [@types/lodash-es](https://npm.io/package/@types/lodash-es.md) ^4.17
- [@allmaps/annotation](https://npm.io/package/@allmaps/annotation.md) ^1.0.0-beta.38
- [@allmaps/iiif-parser](https://npm.io/package/@allmaps/iiif-parser.md) ^1.0.0-beta.49
- [monotone-chain-convex-hull](https://npm.io/package/monotone-chain-convex-hull.md) ^1.1.0

## Recent versions

- 1.0.0-beta.42 (latest) — 2026-09-22
- 1.0.0-beta.34 (beta) — 2025-05-22
- 1.0.0-beta.41 — 2026-05-28
- 1.0.0-beta.40 — 2026-02-09
- 1.0.0-beta.39 — 2025-11-27
- 1.0.0-beta.38 — 2025-11-10
- 1.0.0-beta.37 — 2025-07-19
- 1.0.0-beta.36 — 2025-07-09
- 1.0.0-beta.35 — 2025-07-07
- 1.0.0-beta.33 — 2025-03-12
- 1.0.0-beta.31 — 2024-10-31
- 1.0.0-beta.30 — 2024-08-20
- 1.0.0-beta.29 — 2024-08-16
- 1.0.0-beta.28 — 2024-05-29
- 1.0.0-beta.27 — 2024-03-19
- … 21 more at https://npm.io/package/@allmaps/stdlib/versions

## README

# @allmaps/stdlib

Allmaps Standard Library

## License

MIT

## API

### `new ResourceFetchError(kind, input, options)`

###### Parameters

* `kind` (`'http' | 'network-or-cors'`)
* `input` (`URL | RequestInfo`)
* `options` (`ResourceFetchErrorOptions | undefined`)

###### Returns

`ResourceFetchError`.

###### Extends

* `Error`

### `ResourceFetchError#cause?`

###### Type

```ts
unknown
```

### `ResourceFetchError#corsLikely`

###### Type

```ts
boolean
```

### `ResourceFetchError#input`

###### Type

```ts
URL | RequestInfo
```

### `ResourceFetchError#kind`

###### Type

```ts
'http' | 'network-or-cors'
```

### `ResourceFetchError#status?`

###### Type

```ts
number
```

### `ResourceFetchError#statusText?`

###### Type

```ts
string
```

### `ResourceFetchError#url`

###### Type

```ts
string
```

### `ResourceFetchErrorKind`

###### Type

```ts
'http' | 'network-or-cors'
```

### `angle(line)`

###### Parameters

* `line` (`[Point, Point]`)

###### Returns

`number`.

### `angularMean(angles)`

###### Parameters

* `angles` (`number`)

###### Returns

`number`.

### `arrayContains(array, object, isEqualObject)`

###### Parameters

* `array` (`Array<T>`)
* `object` (`T`)
* `isEqualObject` (`((t0: T, t1: T) => boolean) | undefined`)

###### Returns

`{item: T; index: number} | undefined`.

### `arrayDifference(array0, array1, isEqualObject)`

###### Parameters

* `array0` (`Array<T>`)
* `array1` (`Array<T>`)
* `isEqualObject` (`((t0: T, t1: T) => boolean) | undefined`)

###### Returns

`Array<T>`.

### `arrayMatrixSize(arrayMatrix)`

###### Parameters

* `arrayMatrix` (`Array<Array<T>>`)

###### Returns

`[number, number]`.

### `arrayRepeated(array, isEqualObject)`

###### Parameters

* `array` (`Array<T>`)
* `isEqualObject` (`((t0: T, t1: T) => boolean) | undefined`)

###### Returns

`Array<{item: T; index: number}>`.

### `arrayUnique(array, isEqualObject)`

###### Parameters

* `array` (`Array<T>`)
* `isEqualObject` (`((t0: T, t1: T) => boolean) | undefined`)

###### Returns

`Array<T>`.

### `bboxToCenter(bbox)`

###### Parameters

* `bbox` (`[number, number, number, number]`)

###### Returns

`[number, number]`.

### `bboxToDiameter(bbox)`

###### Parameters

* `bbox` (`[number, number, number, number]`)

###### Returns

`number`.

### `bboxToLine(bbox)`

###### Parameters

* `bbox` (`[number, number, number, number]`)

###### Returns

`[Point, Point]`.

### `bboxToPolygon(bbox)`

###### Parameters

* `bbox` (`[number, number, number, number]`)

###### Returns

`Array<Array<Point>>`.

### `bboxToRectangle(bbox)`

###### Parameters

* `bbox` (`[number, number, number, number]`)

###### Returns

`[Point, Point, Point, Point]`.

### `bboxToResolution(bbox)`

###### Parameters

* `bbox` (`[number, number, number, number]`)

###### Returns

`number`.

### `bboxToSize(bbox)`

###### Parameters

* `bbox` (`[number, number, number, number]`)

###### Returns

`[number, number]`.

### `bboxesToScale(bbox0, bbox1, fit)`

###### Parameters

* `bbox0` (`[number, number, number, number]`)
* `bbox1` (`[number, number, number, number]`)
* `fit?` (`Fit | undefined`)

###### Returns

`number`.

### `bufferBbox(bbox, dist0, dist1)`

###### Parameters

* `bbox` (`[number, number, number, number]`)
* `dist0` (`number`)
* `dist1?` (`number | undefined`)

###### Returns

`[number, number, number, number]`.

### `bufferBboxByRatio(bbox, ratio)`

###### Parameters

* `bbox` (`[number, number, number, number]`)
* `ratio?` (`number | undefined`)

###### Returns

`[number, number, number, number]`.

### `camelCaseToWords(string)`

###### Parameters

* `string` (`string`)

###### Returns

`string`.

### `clipPoint(point, min, max)`

###### Parameters

* `point` (`[number, number]`)
* `min` (`[number, number]`)
* `max` (`[number, number]`)

###### Returns

`[number, number]`.

### `clipPointLngLatProjection(point)`

###### Parameters

* `point` (`[number, number]`)

###### Returns

`[number, number]`.

### `clipPointWebMercatorProjection(point)`

###### Parameters

* `point` (`[number, number]`)

###### Returns

`[number, number]`.

### `clipValue(value, min, max)`

###### Parameters

* `value` (`number`)
* `min` (`number`)
* `max` (`number`)

###### Returns

`number`.

### `closeMultiPolygon(multiPolygon)`

###### Parameters

* `multiPolygon` (`Array<Array<Array<Point>>>`)

###### Returns

`Array<Array<Array<Point>>>`.

### `closePolygon(polygon)`

###### Parameters

* `polygon` (`Array<Array<Point>>`)

###### Returns

`Array<Array<Point>>`.

### `closeRing(ring)`

###### Parameters

* `ring` (`Array<Point>`)

###### Returns

`Array<Point>`.

### `combineBboxes(bboxes)`

###### Parameters

* `bboxes` (`[number, number, number, number]`)

###### Returns

`Bbox | undefined`.

### `computeBbox(geometry)`

###### Parameters

* `geometry` (`GeojsonGeometry | Geometry`)

###### Returns

`[number, number, number, number]`.

### `computeMinMax(values)`

###### Parameters

* `values` (`Array<number>`)

###### Returns

`[number, number]`.

### `computeRotatedBboxProperties(geometry, angle)`

###### Parameters

* `geometry` (`GeojsonGeometry | Geometry`)
* `angle` (`number`)

###### Returns

`{
  center: Point
  size: Size
  bbox: Bbox
  rectangle: Rectangle
  rotatedRectangle: Rectangle
}`.

### `conformLineString(lineString)`

###### Parameters

* `lineString` (`Array<Point>`)

###### Returns

`Array<Point>`.

### `conformMultiLineString(multiLineString)`

###### Parameters

* `multiLineString` (`Array<Array<Point>>`)

###### Returns

`Array<Array<Point>>`.

### `conformMultiPolygon(multiPolygon)`

###### Parameters

* `multiPolygon` (`Array<Array<Array<Point>>>`)

###### Returns

`Array<Array<Array<Point>>>`.

### `conformPolygon(polygon)`

###### Parameters

* `polygon` (`Array<Array<Point>>`)

###### Returns

`Array<Array<Point>>`.

### `conformRing(ring)`

###### Parameters

* `ring` (`Array<Point>`)

###### Returns

`Array<Point>`.

### `contractGeojsonGeometriesToGeojsonMultiGeometry(geojsonGeometries)`

###### Parameters

* `geojsonGeometries` (`Array<GeojsonLineString | GeojsonPoint | GeojsonPolygon>`)

###### Returns

`GeojsonMultiLineString | GeojsonMultiPoint | GeojsonMultiPolygon`.

### `contractGeojsonLineStringsToGeojsonMultiLineString(geojsonLineStrings)`

###### Parameters

* `geojsonLineStrings` (`Array<GeojsonLineString>`)

###### Returns

`{type: 'MultiLineString'; coordinates: number[][][]}`.

### `contractGeojsonPointsToGeojsonMultiPoint(geojsonPoints)`

###### Parameters

* `geojsonPoints` (`Array<GeojsonPoint>`)

###### Returns

`{type: 'MultiPoint'; coordinates: number[][]}`.

### `contractGeojsonPolygonsToGeojsonMultiPolygon(geojsonPolygons)`

###### Parameters

* `geojsonPolygons` (`Array<GeojsonPolygon>`)

###### Returns

`{type: 'MultiPolygon'; coordinates: number[][][][]}`.

### `convexHull(points)`

###### Parameters

* `points` (`Array<Point>`)

###### Returns

`Ring | undefined`.

### `degreesToRadians(degrees)`

###### Parameters

* `degrees` (`number`)

###### Returns

`number`.

### `distance(from, to)`

###### Parameters

* `from` (`[number, number]`)
* `to` (`[number, number]`)

###### Returns

`number`.

### `doBboxesIntersect(bbox0, bbox1)`

###### Parameters

* `bbox0` (`[number, number, number, number]`)
* `bbox1` (`[number, number, number, number]`)

###### Returns

`boolean`.

### `equalSet(set1, set2)`

###### Parameters

* `set1` (`Set<T> | null`)
* `set2` (`Set<T> | null`)

###### Returns

`boolean`.

### `expandGeojsonMultiGeometryToGeojsonGeometries(geojsonMultiGeometry)`

###### Parameters

* `geojsonMultiGeometry` (`GeojsonMultiLineString | GeojsonMultiPoint | GeojsonMultiPolygon`)

###### Returns

`Array<GeojsonLineString> | Array<GeojsonPoint> | Array<GeojsonPolygon>`.

### `expandGeojsonMultiLineStringToGeojsonLineStrings(geojsonMultiLineString)`

###### Parameters

* `geojsonMultiLineString` (`{type: 'MultiLineString'; coordinates: number[][][]}`)

###### Returns

`Array<GeojsonLineString>`.

### `expandGeojsonMultiPointToGeojsonPoints(geojsonMultiPoint)`

###### Parameters

* `geojsonMultiPoint` (`{type: 'MultiPoint'; coordinates: number[][]}`)

###### Returns

`Array<GeojsonPoint>`.

### `expandGeojsonMultiPolygonToGeojsonPolygons(geojsonMultiPolygon)`

###### Parameters

* `geojsonMultiPolygon` (`{type: 'MultiPolygon'; coordinates: number[][][][]}`)

###### Returns

`Array<GeojsonPolygon>`.

### `fetchAnnotationsFromApi(restBaseUrl, parsedIiif, fetch)`

###### Parameters

* `restBaseUrl` (`string`)
* `parsedIiif` (`Collection | Image | Manifest`)
* `fetch?` (`  | ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>)
    | undefined`)

###### Returns

`Promise<any>`.

### `fetchImageBitmap(input, init, fetchFn)`

###### Parameters

* `input` (`URL | RequestInfo`)
* `init?` (`RequestInit | undefined`)
* `fetchFn?` (`FetchFn | undefined`)

###### Returns

`Promise<ImageBitmap>`.

### `fetchImageInfo(imageUri, init, fetchFn)`

###### Parameters

* `imageUri` (`string`)
* `init?` (`RequestInit | undefined`)
* `fetchFn?` (`FetchFn | undefined`)

###### Returns

`Promise<unknown>`.

### `fetchJson(input, init, fetchFn)`

###### Parameters

* `input` (`URL | RequestInfo`)
* `init?` (`RequestInit | undefined`)
* `fetchFn?` (`FetchFn | undefined`)

###### Returns

`Promise<unknown>`.

### `fetchUrl(input, init, fetchFn)`

###### Parameters

* `input` (`URL | RequestInfo`)
* `init?` (`RequestInit | undefined`)
* `fetchFn?` (`FetchFn | undefined`)

###### Returns

`Promise<Response>`.

### `flipX(point)`

###### Parameters

* `point` (`[number, number]`)

###### Returns

`[number, number]`.

### `flipY(point)`

###### Parameters

* `point` (`[number, number]`)

###### Returns

`[number, number]`.

### `geojsonFeatureCollectionToGeojsonGeometries(geojsonFeatureCollection)`

###### Parameters

* `geojsonFeatureCollection` (`{type: 'FeatureCollection'; features: GeojsonFeature[]}`)

###### Returns

`Array<GeojsonGeometry>`.

### `geojsonFeatureToGeojsonGeometry(geojsonFeature)`

###### Parameters

* `geojsonFeature` (`{type: 'Feature'; properties: unknown; geometry: GeojsonGeometry}`)

###### Returns

`  | GeojsonLineString
  | GeojsonMultiLineString
  | GeojsonMultiPoint
  | GeojsonMultiPolygon
  | GeojsonPoint
  | GeojsonPolygon`.

### `geojsonFeaturesToGeojsonFeatureCollection(geojsonFeatures)`

###### Parameters

* `geojsonFeatures` (`Array<GeojsonFeature> | GeojsonFeature`)

###### Returns

`{type: 'FeatureCollection'; features: GeojsonFeature[]}`.

### `geojsonGeometriesToGeojsonFeatureCollection(geojsonGeometries, properties)`

###### Parameters

* `geojsonGeometries` (`Array<GeojsonGeometry>`)
* `properties?` (`Array<unknown> | undefined`)

###### Returns

`{type: 'FeatureCollection'; features: GeojsonFeature[]}`.

### `geojsonGeometryToGeojsonFeature(geojsonGeometry, properties)`

###### Parameters

* `geojsonGeometry` (`  | GeojsonLineString
    | GeojsonMultiLineString
    | GeojsonMultiPoint
    | GeojsonMultiPolygon
    | GeojsonPoint
    | GeojsonPolygon`)
* `properties?` (`unknown`)

###### Returns

`{type: 'Feature'; properties: unknown; geometry: GeojsonGeometry}`.

### `geojsonGeometryToGeometry(geojsonPoint)`

###### Parameters

* `geojsonPoint` (`{type: 'Point'; coordinates: number[]}`)

###### Returns

`[number, number]`.

### `geojsonGeometryToSvgGeometry(geojsonGeometry)`

###### Parameters

* `geojsonGeometry` (`  | GeojsonLineString
    | GeojsonMultiLineString
    | GeojsonMultiPoint
    | GeojsonMultiPolygon
    | GeojsonPoint
    | GeojsonPolygon`)

###### Returns

`SvgCircle | SvgLine | SvgPolyLine | SvgPolygon | SvgRect`.

### `geojsonLineStringToLineString(geojsonLineString)`

###### Parameters

* `geojsonLineString` (`{type: 'LineString'; coordinates: number[][]}`)

###### Returns

`Array<Point>`.

### `geojsonMultiLineStringToMultiLineString(geojsonMultiLineString)`

###### Parameters

* `geojsonMultiLineString` (`{type: 'MultiLineString'; coordinates: number[][][]}`)

###### Returns

`Array<Array<Point>>`.

### `geojsonMultiPointToMultiPoint(geojsonMultiPoint)`

###### Parameters

* `geojsonMultiPoint` (`{type: 'MultiPoint'; coordinates: number[][]}`)

###### Returns

`Array<Point>`.

### `geojsonMultiPolygonToMultiPolygon(geojsonMultiPolygon, close)`

###### Parameters

* `geojsonMultiPolygon` (`{type: 'MultiPolygon'; coordinates: number[][][][]}`)
* `close` (`boolean | undefined`)

###### Returns

`Array<Array<Array<Point>>>`.

### `geojsonPointToPoint(geojsonPoint)`

###### Parameters

* `geojsonPoint` (`{type: 'Point'; coordinates: number[]}`)

###### Returns

`[number, number]`.

### `geojsonPolygonToPolygon(geojsonPolygon, close)`

###### Parameters

* `geojsonPolygon` (`{type: 'Polygon'; coordinates: number[][][]}`)
* `close` (`boolean | undefined`)

###### Returns

`Array<Array<Point>>`.

### `geojsonPolygonToRing(geojsonPolygon, close)`

###### Parameters

* `geojsonPolygon` (`{type: 'Polygon'; coordinates: number[][][]}`)
* `close` (`boolean | undefined`)

###### Returns

`Array<Point>`.

### `geometryToDiameter(geometry)`

###### Parameters

* `geometry` (`GeojsonGeometry | Geometry`)

###### Returns

`number`.

### `geometryToGeojsonGeometry(point, options)`

###### Parameters

* `point` (`[number, number]`)
* `options?` (`Partial<MultiGeometryOptions> | undefined`)

###### Returns

`{type: 'Point'; coordinates: number[]}`.

### `geometryToSvgGeometry(point)`

###### Parameters

* `point` (`[number, number]`)

###### Returns

`{type: 'circle'; attributes?: SvgAttributes; coordinates: Point}`.

### `getFullResourceMask(imageWidth, imageHeight)`

###### Parameters

* `imageWidth` (`number`)
* `imageHeight` (`number`)

###### Returns

`Array<Point>`.

### `getPropertyFromCacheOrComputation(cache, key, computation, checkUse, checkStore)`

###### Parameters

* `cache` (`Map<K, T>`)
* `key` (`K`)
* `computation` (`() => T`)
* `checkUse` (`((t: T) => boolean) | undefined`)
* `checkStore` (`((t: T) => boolean) | undefined`)

###### Returns

`T`.

### `getPropertyFromDoubleCacheOrComputation(cache, key0, key1, computation, checkUse, checkStore)`

###### Parameters

* `cache` (`Map<K0, Map<K1, T>>`)
* `key0` (`K0`)
* `key1` (`K1`)
* `computation` (`() => T`)
* `checkUse` (`((t: T) => boolean) | undefined`)
* `checkStore` (`((t: T) => boolean) | undefined`)

###### Returns

`T`.

### `getPropertyFromQuadrupleCacheOrComputation(cache, key0, key1, key2, key3, computation, checkUse, checkStore)`

###### Parameters

* `cache` (`Map<K0, Map<K1, Map<K2, Map<K3, T>>>>`)
* `key0` (`K0`)
* `key1` (`K1`)
* `key2` (`K2`)
* `key3` (`K3`)
* `computation` (`() => T`)
* `checkUse` (`((t: T) => boolean) | undefined`)
* `checkStore` (`((t: T) => boolean) | undefined`)

###### Returns

`T`.

### `getPropertyFromQuintupleCacheOrComputation(cache, key0, key1, key2, key3, key4, computation, checkUse, checkStore)`

###### Parameters

* `cache` (`Map<K0, Map<K1, Map<K2, Map<K3, Map<K4, T>>>>>`)
* `key0` (`K0`)
* `key1` (`K1`)
* `key2` (`K2`)
* `key3` (`K3`)
* `key4` (`K4`)
* `computation` (`() => T`)
* `checkUse` (`((t: T) => boolean) | undefined`)
* `checkStore` (`((t: T) => boolean) | undefined`)

###### Returns

`T`.

### `getPropertyFromTripleCacheOrComputation(cache, key0, key1, key2, computation, checkUse, checkStore)`

###### Parameters

* `cache` (`Map<K0, Map<K1, Map<K2, T>>>`)
* `key0` (`K0`)
* `key1` (`K1`)
* `key2` (`K2`)
* `computation` (`() => T`)
* `checkUse` (`((t: T) => boolean) | undefined`)
* `checkStore` (`((t: T) => boolean) | undefined`)

###### Returns

`T`.

### `groupBy(arr, key)`

###### Parameters

* `arr` (`Array<T>`)
* `key` (`(i: T) => K`)

###### Returns

`{[P in K]: Array<T>}`.

### `hexToFractionalOpaqueRgba(hex)`

Convert hex to fractional RGBA, and sets the transparency to 1

###### Parameters

* `hex` (`string`)
  * hex string, e.g. '#0033ffcc'

###### Returns

Fractional RGB, e (`[number, number, number, number]`).g. \[0, 0.2, 1, 1]

### `hexToFractionalRgb(hex)`

Convert hex to fractional RGB

###### Parameters

* `hex` (`string`)
  * hex string, e.g. '#0033ff'

###### Returns

Fractional RGB, e (`[number, number, number]`).g. \[0, 0.2, 1]

### `hexToFractionalRgba(hex)`

Convert hex to fractional RGBA

###### Parameters

* `hex` (`string`)
  * hex string, e.g. '#0033ffff'

###### Returns

Fractional RGB, e (`[number, number, number, number]`).g. \[0, 0.2, 1, 1]

### `hexToOpaqueRgba(hex)`

Convert HEX to RGB, and sets the transparency to 255

###### Parameters

* `hex` (`string`)
  * HEX string, e.g. '#0033ffcc'

###### Returns

RGB, e (`[number, number, number, number]`).g. \[0, 51, 255, 255]

### `hexToRgb(hex)`

Convert HEX to RGB

###### Parameters

* `hex` (`string`)
  * HEX string, e.g. '#0033ff'

###### Returns

RGB, e (`[number, number, number]`).g. \[0, 51, 255]

### `hexToRgba(hex)`

Convert HEX to RGB

###### Parameters

* `hex` (`string`)
  * HEX string, e.g. '#0033ffff'

###### Returns

RGB, e (`[number, number, number, number]`).g. \[0, 51, 255, 255]

### `intersectBboxes(bbox0, bbox1)`

###### Parameters

* `bbox0` (`[number, number, number, number]`)
* `bbox1` (`[number, number, number, number]`)

###### Returns

`Bbox | undefined`.

### `invertPoint(point)`

###### Parameters

* `point` (`[number, number]`)

###### Returns

`[number, number]`.

### `invertPoints(points)`

###### Parameters

* `points` (`Array<Point>`)

###### Returns

`Array<Point>`.

### `isClosed(input)`

###### Parameters

* `input` (`Array<Point>`)

###### Returns

`boolean`.

### `isEqualArray(array0, array1, isEqualObject)`

###### Parameters

* `array0` (`Array<T>`)
* `array1` (`Array<T>`)
* `isEqualObject` (`((t0: T, t1: T) => boolean) | undefined`)

###### Returns

`boolean`.

### `isEqualPoint(point0, point1)`

###### Parameters

* `point0` (`[number, number]`)
* `point1` (`[number, number]`)

###### Returns

`boolean`.

### `isEqualPointArray(pointArray0, pointArray1)`

###### Parameters

* `pointArray0` (`Array<Point>`)
* `pointArray1` (`Array<Point>`)

###### Returns

`boolean`.

### `isEqualPointArrayArray(pointArrayArray0, pointArrayArray1)`

###### Parameters

* `pointArrayArray0` (`Array<Array<Point>>`)
* `pointArrayArray1` (`Array<Array<Point>>`)

###### Returns

`boolean`.

### `isGeojsonGeometry(obj)`

###### Parameters

* `obj` (`unknown`)

###### Returns

`boolean`.

### `isGeojsonLineString(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isGeojsonMultiGeometry(obj)`

###### Parameters

* `obj` (`unknown`)

###### Returns

`boolean`.

### `isGeojsonMultiLineString(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isGeojsonMultiPoint(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isGeojsonMultiPolygon(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isGeojsonPoint(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isGeojsonPolygon(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isGeometry(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isLineString(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isMultiLineString(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isMultiPoint(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isMultiPolygon(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isPoint(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isPolygon(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isRing(input)`

###### Parameters

* `input` (`unknown`)

###### Returns

`boolean`.

### `isSvgCircle(input)`

###### Parameters

* `input` (`any`)

###### Returns

`boolean`.

### `isSvgLine(input)`

###### Parameters

* `input` (`any`)

###### Returns

`boolean`.

### `isSvgPolyLine(input)`

###### Parameters

* `input` (`any`)

###### Returns

`boolean`.

### `isSvgPolygon(input)`

###### Parameters

* `input` (`any`)

###### Returns

`boolean`.

### `isSvgRect(input)`

###### Parameters

* `input` (`any`)

###### Returns

`boolean`.

### `isValidHttpUrl(string)`

###### Parameters

* `string` (`string`)

###### Returns

`boolean`.

### `lineAngle(line)`

###### Parameters

* `line` (`[Point, Point]`)

###### Returns

`number`.

### `lineStringToGeojsonLineString(lineString)`

###### Parameters

* `lineString` (`Array<Point>`)

###### Returns

`{type: 'LineString'; coordinates: number[][]}`.

### `lineStringToLines(lineString)`

###### Parameters

* `lineString` (`Array<Point>`)

###### Returns

`Array<Line>`.

### `linesIntersectionPoint(line0, line1, options)`

###### Parameters

* `line0` (`[Point, Point]`)
* `line1` (`[Point, Point]`)
* `options?` (`Partial<IntersectionOptions> | undefined`)

###### Returns

`Point | undefined`.

### `mapToResourceMaskSvgPolygon(map)`

###### Parameters

* `map` (`{ '@context'?: "https://schemas.allmaps.org/map/2/context.json" | undefined; type: "GeoreferencedMap"; id?: string | undefined; created?: string | undefined; modified?: string | undefined; ... 5 more ...; _allmaps?: unknown; }`)

###### Returns

`{type: 'polygon'; attributes?: SvgAttributes; coordinates: Ring}`.

### `mergeGeojsonFeaturesCollections(geojsonFeatureCollections)`

###### Parameters

* `geojsonFeatureCollections` (`Array<GeojsonFeatureCollection>`)

###### Returns

`{type: 'FeatureCollection'; features: GeojsonFeature[]}`.

### `mergeOptions(baseOptions, additionalPartialOptions)`

###### Parameters

* `baseOptions` (`T`)
* `additionalPartialOptions` (`U[0]`)

###### Returns

`T & U[number]`.

### `mergeOptionsUnlessUndefined(baseOptions, additionalOptions)`

###### Parameters

* `baseOptions` (`T`)
* `additionalOptions` (`Partial<U> | undefined`)

###### Returns

`T & Partial<U>`.

### `mergePartialOptions(partialOptions)`

###### Parameters

* `partialOptions` (`U[0]`)

###### Returns

`{[P in keyof U[number]]?: U[number][P] | undefined}`.

### `mergeTwoOptionsUnlessUndefined(baseOptions, additionalOption)`

###### Parameters

* `baseOptions` (`T`)
* `additionalOption` (`Partial<U> | undefined`)

###### Returns

`T & Partial<U>`.

### `midPoint(points)`

###### Parameters

* `points` (`[number, number]`)

###### Returns

`[number, number]`.

### `mixLineStrings(lineString0, lineString1, t)`

###### Parameters

* `lineString0` (`Array<Point>`)
* `lineString1` (`Array<Point>`)
* `t` (`number`)

###### Returns

`Array<Point>`.

### `mixNumbers(number0, number1, t)`

###### Parameters

* `number0` (`number`)
* `number1` (`number`)
* `t` (`number`)

###### Returns

`number`.

### `mixPoints(point0, point1, t)`

###### Parameters

* `point0` (`[number, number]`)
* `point1` (`[number, number]`)
* `t` (`number`)

###### Returns

`[number, number]`.

### `multiLineStringToGeojsonMultiLineString(multiLineString)`

###### Parameters

* `multiLineString` (`Array<Array<Point>>`)

###### Returns

`{type: 'MultiLineString'; coordinates: number[][][]}`.

### `multiPointToGeojsonMultiPoint(multiPoint)`

###### Parameters

* `multiPoint` (`Array<Point>`)

###### Returns

`{type: 'MultiPoint'; coordinates: number[][]}`.

### `multiPolygonToGeojsonMultiPolygon(multiPolygon, close)`

###### Parameters

* `multiPolygon` (`Array<Array<Array<Point>>>`)
* `close` (`boolean | undefined`)

###### Returns

`{type: 'MultiPolygon'; coordinates: number[][][][]}`.

### `multiplyArrayMatrix(arrayMatrix, factor)`

###### Parameters

* `arrayMatrix` (`Array<Array<number>>`)
* `factor` (`number`)

###### Returns

`Array<Array<number>>`.

### `newArrayMatrix(rows, cols, value)`

Create and fill a ArrayMatrix: an Arrays of Arrays, that can later be loaded as a ml-matrix Matrix

###### Parameters

* `rows` (`number`)
* `cols` (`number`)
* `value` (`T | undefined`)

###### Returns

`Array<Array<T>>`.

### `newBlockArrayMatrix(blocks, emptyValue)`

###### Parameters

* `blocks` (`Array<Array<Array<Array<T>>>>`)
* `emptyValue` (`T | undefined`)

###### Returns

`Array<Array<T>>`.

### `objectDifference(newObject, baseObject, objectKeysPossiblyChanged)`

###### Parameters

* `newObject` (`object`)
* `baseObject` (`object`)
* `objectKeysPossiblyChanged?` (`Array<string> | undefined`)

###### Returns

`object`.

### `omit(object, keys)`

###### Parameters

* `object` (`T`)
* `keys` (`Array<K>`)

###### Returns

`{[P in Exclude<keyof T, K>]: T[P]}`.

### `optionKeysByMapIdToUndefinedOptionsByMapId(optionKeysByMapId)`

###### Parameters

* `optionKeysByMapId` (`Map<string, T> | undefined`)

###### Returns

`Map<string, Record<T[number], undefined>> | undefined`.

### `optionKeysToUndefinedOptions(optionKeys)`

###### Parameters

* `optionKeys` (`T | undefined`)

###### Returns

`Record<T[number], undefined> | undefined`.

### `pasteArrayMatrix(arrayMatrix, rowsStart, colsStart, subArrayMatrix)`

###### Parameters

* `arrayMatrix` (`Array<Array<T>>`)
* `rowsStart` (`number`)
* `colsStart` (`number`)
* `subArrayMatrix` (`Array<Array<T>>`)

###### Returns

`Array<Array<T>>`.

### `pasteArrayMatrixInPlace(arrayMatrix, rowsStart, colsStart, subArrayMatrix)`

###### Parameters

* `arrayMatrix` (`Array<Array<T>>`)
* `rowsStart` (`number`)
* `colsStart` (`number`)
* `subArrayMatrix` (`Array<Array<T>>`)

###### Returns

`Array<Array<T>>`.

### `pixelToIntArrayIndex(pixel, size, channels, flipY)`

###### Parameters

* `pixel` (`[number, number]`)
* `size` (`[number, number]`)
* `channels` (`number`)
* `flipY` (`boolean | undefined`)

###### Returns

`number`.

### `pointInBbox(point, bbox)`

###### Parameters

* `point` (`[number, number]`)
* `bbox` (`[number, number, number, number]`)

###### Returns

`boolean`.

### `pointToGeojsonPoint(point)`

###### Parameters

* `point` (`[number, number]`)

###### Returns

`{type: 'Point'; coordinates: number[]}`.

### `pointToPixel(point, translate)`

###### Parameters

* `point` (`[number, number]`)
* `translate` (`Point | undefined`)

###### Returns

`[number, number]`.

### `pointsAndPointsToLines(points0, points1)`

###### Parameters

* `points0` (`Array<Point>`)
* `points1` (`Array<Point>`)

###### Returns

`Array<Line>`.

### `polygonIsBboxRectangle(polygon)`

###### Parameters

* `polygon` (`Array<Array<Point>>`)

###### Returns

`boolean`.

### `polygonSelfIntersectionPoints(polygon, options)`

###### Parameters

* `polygon` (`Array<Array<Point>>`)
* `options?` (`Partial<IntersectionOptions> | undefined`)

###### Returns

`Array<Point>`.

### `polygonToGeojsonPolygon(polygon, close)`

###### Parameters

* `polygon` (`Array<Array<Point>>`)
* `close` (`boolean | undefined`)

###### Returns

`{type: 'Polygon'; coordinates: number[][][]}`.

### `prolongedLinesIntersectionPoint(line0, line1)`

###### Parameters

* `line0` (`[Point, Point]`)
* `line1` (`[Point, Point]`)

###### Returns

`Point | undefined`.

### `radiansToDegrees(radians)`

###### Parameters

* `radians` (`number`)

###### Returns

`number`.

### `rectangleToSize(rectangle)`

###### Parameters

* `rectangle` (`[Point, Point, Point, Point]`)

###### Returns

`[number, number]`.

### `rectanglesToScale(rectangle0, rectangle1, fit)`

###### Parameters

* `rectangle0` (`[Point, Point, Point, Point]`)
* `rectangle1` (`[Point, Point, Point, Point]`)
* `fit?` (`Fit | undefined`)

###### Returns

`number`.

### `removeUndefinedOptions(optionsArray)`

###### Parameters

* `optionsArray` (`U[0]`)

###### Returns

`{   [P in keyof {[K in keyof U[number]]: Exclude<U[number][K], undefined>}]?:
    {[K in keyof U[number]]: Exclude<U[number][K], undefined>}[P] | undefined
}`.

### `rgbToHex(rgb)`

Convert RBG to HEX

###### Parameters

* `rgb` (`[number, number, number]`)
  * RGB color array, e.g. \[0, 51, 255]

###### Returns

HEX string, e (`string`).g. '#0033ff'

### `rgbaToHex(rgba)`

Convert RBGA to HEX

###### Parameters

* `rgba` (`[number, number, number, number]`)

###### Returns

HEX string, e (`string`).g. '#0033ffff'

### `ringIsBboxRectangle(ring)`

###### Parameters

* `ring` (`Array<Point>`)

###### Returns

`boolean`.

### `ringToGeojsonPolygon(ring, close)`

###### Parameters

* `ring` (`Array<Point>`)
* `close` (`boolean | undefined`)

###### Returns

`{type: 'Polygon'; coordinates: number[][][]}`.

### `rms(from, to)`

###### Parameters

* `from` (`Array<Point>`)
* `to` (`Array<Point>`)

###### Returns

`number`.

### `rotateArray(array, offset)`

###### Parameters

* `array` (`Array<T>`)
* `offset` (`number`)

###### Returns

`Array<T>`.

### `rotatePoint(point, angle, pivot, cosAngle, sinAngle)`

###### Parameters

* `point` (`[number, number]`)
* `angle` (`number | undefined`)
* `pivot` (`Point | undefined`)
* `cosAngle?` (`number | undefined`)
* `sinAngle?` (`number | undefined`)

###### Returns

`[number, number]`.

### `rotatePoints(points, angle, pivot)`

###### Parameters

* `points` (`Array<Point>`)
* `angle` (`number | undefined`)
* `pivot` (`Point | undefined`)

###### Returns

`Array<Point>`.

### `scaleBbox(bbox, scale)`

###### Parameters

* `bbox` (`[number, number, number, number]`)
* `scale` (`number`)

###### Returns

`[number, number, number, number]`.

### `scalePoint(point, scale)`

###### Parameters

* `point` (`[number, number]`)
* `scale` (`number`)

###### Returns

`[number, number]`.

### `scalePoints(points, scale)`

###### Parameters

* `points` (`Array<Point>`)
* `scale` (`number`)

###### Returns

`Array<Point>`.

### `scaleSize(size, scale)`

###### Parameters

* `size` (`[number, number]`)
* `scale` (`number`)

###### Returns

`[number, number]`.

### `shallowCopyArrayMatrix(arrayMatrix)`

###### Parameters

* `arrayMatrix` (`Array<Array<T>>`)

###### Returns

`Array<Array<T>>`.

### `sizeToBbox(size, center)`

###### Parameters

* `size` (`[number, number]`)
* `center?` (`Point | undefined`)

###### Returns

`[number, number, number, number]`.

### `sizeToCenter(size)`

###### Parameters

* `size` (`[number, number]`)

###### Returns

`[number, number]`.

### `sizeToRectangle(size, center)`

###### Parameters

* `size` (`[number, number]`)
* `center?` (`Point | undefined`)

###### Returns

`[Point, Point, Point, Point]`.

### `sizeToResolution(size)`

###### Parameters

* `size` (`[number, number]`)

###### Returns

`number`.

### `sizesToScale(size0, size1, fit)`

Compute a scale from two sizes

For unspecified 'fit', the scale is computed based on the surface area derived from the sizes.

For specified 'fit':

Example for square rectangles bbox0 '\*' and bbox1 '.':

'contain' where '\*' contains '.'
(in the first size0 is relatively wider)

```
           ****
           *  *
```

**....**     ....

* .  . \*     .  .
  **....**     ....
  \*  \*
  \*\*\*\*

'cover' where '\*' is covered by '.'
(in the first size0 is relatively wider)

```
           ....
           .  .
```

..****..     \*\*\*\*
. \*  \* .     \*  \*
..****..     \*\*\*\*
.  .
....

'equal' where '\*' is of equal area as '.'
(in the first size0 is relatively wider)

```
****       ....
```

.*..*.     *.\*\*.*
.\*  *.     *.  .*
.*..\*.     *.\*\*.*
\*\*\*\*       ....

###### Parameters

* `size0` (`[number, number]`)
  * first size
* `size1` (`[number, number]`)
  * second size
* `fit?` (`Fit | undefined`)
  * fit

###### Returns

`number`.

### `sliceArrayMatrix(arrayMatrix, rowsStart, colsStart, rowsEnd, colsEnd)`

###### Parameters

* `arrayMatrix` (`Array<Array<T>>`)
* `rowsStart` (`number`)
* `colsStart` (`number`)
* `rowsEnd?` (`number | undefined`)
* `colsEnd?` (`number | undefined`)

###### Returns

`Array<Array<T>>`.

### `squaredDistance(from, to)`

###### Parameters

* `from` (`[number, number]`)
* `to` (`Point | undefined`)

###### Returns

`number`.

### `stepDistanceAngle(point, dist, angle)`

###### Parameters

* `point` (`[number, number]`)
* `dist` (`number`)
* `angle` (`number`)

###### Returns

`[number, number]`.

### `stringToSvgGeometriesGenerator(svg)`

###### Parameters

* `svg` (`string`)

###### Returns

`Generator<SvgGeometry, void, unknown>`.

### `subArrayMatrix(arrayMatrix, rows, cols)`

###### Parameters

* `arrayMatrix` (`Array<Array<T>>`)
* `rows` (`Array<number>`)
* `cols` (`Array<number>`)

###### Returns

`Array<Array<T>>`.

### `subSetArray(arr1, arr2)`

###### Parameters

* `arr1` (`Array<T>`)
* `arr2` (`Array<T>`)

###### Returns

`boolean`.

### `svgGeometriesToSvgString(geometries)`

###### Parameters

* `geometries` (`Array<SvgGeometry>`)

###### Returns

`string`.

### `svgGeometryToGeometry(svgCircle)`

###### Parameters

* `svgCircle` (`{type: 'circle'; attributes?: SvgAttributes; coordinates: Point}`)

###### Returns

`[number, number]`.

### `svgGeometryToString(geometry)`

###### Parameters

* `geometry` (`SvgCircle | SvgLine | SvgPolyLine | SvgPolygon | SvgRect`)

###### Returns

`string`.

### `threePointsToAngle(pointA, pointB, pointC)`

Return angle alpha made at point A by points B and C

###### Parameters

* `pointA` (`[number, number]`)
* `pointB` (`[number, number]`)
* `pointC` (`[number, number]`)

###### Returns

`number`.

### `translatePoint(point, translationPoint, addOrSubstract)`

###### Parameters

* `point` (`[number, number]`)
* `translationPoint` (`[number, number]`)
* `addOrSubstract` (`'add' | 'substract' | undefined`)

###### Returns

`[number, number]`.

### `translatePoints(points, point, addOrSubstract)`

###### Parameters

* `points` (`Array<Point>`)
* `point` (`[number, number]`)
* `addOrSubstract` (`'add' | 'substract' | undefined`)

###### Returns

`Array<Point>`.

### `transposeArrayMatrix(arrayMatrix)`

###### Parameters

* `arrayMatrix` (`Array<Array<T>>`)

###### Returns

`Array<Array<T>>`.

### `triangleAngles(triangle)`

###### Parameters

* `triangle` (`[Point, Point, Point]`)

###### Returns

`[number, number, number]`.

### `triangleArea(triangle)`

###### Parameters

* `triangle` (`[Point, Point, Point]`)

###### Returns

`number`.

### `uncloseMultiPolygon(multiPolygon)`

###### Parameters

* `multiPolygon` (`Array<Array<Array<Point>>>`)

###### Returns

`Array<Array<Array<Point>>>`.

### `unclosePolygon(polygon)`

###### Parameters

* `polygon` (`Array<Array<Point>>`)

###### Returns

`Array<Array<Point>>`.

### `uncloseRing(ring)`

###### Parameters

* `ring` (`Array<Point>`)

###### Returns

`Array<Point>`.

---
_Source: https://npm.io/package/@allmaps/stdlib · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
