1
0
Fork 0
mirror of https://github.com/kou029w/megabit.git synced 2025-01-30 13:48:06 +00:00
This commit is contained in:
Nebel 2020-02-07 12:34:43 +09:00
commit cdadc608c5
24 changed files with 1307 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
/node_modules/
/cjs/
/esm/

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Kohei Watanabe
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

40
README.md Normal file
View file

@ -0,0 +1,40 @@
# Megabit
Connect real things with Node.js
## Usage
### GPIO Example
```js
const { gpio } = require("megabit");
const sleep = require("util").promisify(setTimeout);
async function blink() {
for (;;) {
await gpio(26).write(1);
await sleep(1000);
await gpio(26).write(0);
await sleep(1000);
}
}
blink();
```
### I<sup>2</sup>C Example
```js
const { adt7410 } = require("megabit");
async function measure() {
const temperature = await adt7410().read();
console.log(`Temperature: ${temperature} ℃`);
}
measure();
```
## Documents
[Megabit API Documentation](https://kou029w.github.io/megabit/)

65
package.json Normal file
View file

@ -0,0 +1,65 @@
{
"name": "megabit",
"version": "1.0.0-alpha.0",
"description": "Connect real things with Node.js",
"main": "cjs/index.js",
"module": "esm/index.js",
"types": "cjs/index.d.js",
"files": [
"cjs",
"esm"
],
"repository": {
"type": "git",
"url": "https://github.com/kou029w/megabit.git"
},
"author": "Kohei Watanabe <kou029w@gmail.com>",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@chirimen/ads1015": "~1",
"@chirimen/adt7410": "~1",
"@chirimen/gp2y0e03": "~1",
"@chirimen/grove-accelerometer": "~1",
"@chirimen/grove-gesture": "~1",
"@chirimen/grove-light": "~1",
"@chirimen/grove-oled-display": "~1",
"@chirimen/grove-touch": "~1",
"@chirimen/pca9685": "~1",
"@chirimen/s11059": "~1",
"@chirimen/veml6070": "~1",
"@chirimen/vl53l0x": "~1",
"node-web-gpio": "~1",
"node-web-i2c": "~1"
},
"devDependencies": {
"@types/node": "~12",
"npm-run-all": "~4",
"typedoc": "~0.16",
"typescript": "~3.7"
},
"scripts": {
"doc": "typedoc --tsconfig tsconfig.base.json src",
"build": "run-p build:*",
"build:cjs": "tsc -p tsconfig.cjs.json",
"build:esm": "tsc -p tsconfig.esm.json"
},
"keywords": [
"gpio",
"hardware",
"i2c",
"iot",
"linux",
"pi",
"raspberry pi",
"raspberry",
"raspi",
"robot",
"robotics",
"robots",
"rpi",
"smbus"
]
}

9
src/Device.ts Normal file
View file

@ -0,0 +1,9 @@
export interface ReadableDevice<
T extends boolean | number | string | boolean[] | number[]
> {
read(): Promise<T>;
}
export interface WritableDevice<T extends boolean | number | string> {
write(value: T): Promise<void>;
}

20
src/ads1015.ts Normal file
View file

@ -0,0 +1,20 @@
import Device from "@chirimen/ads1015";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
export function ads1015(
bus: I2CPort = i2c(),
address: number = 0x48,
channel: 0 | 1 | 2 | 3 = 0
): ReadableDevice<number> {
const device = new Device(bus, address);
return {
async read(): Promise<number> {
if (device.i2cSlave == null) await device.init();
return device.read(channel);
}
};
}
export default ads1015;

22
src/adt7410.ts Normal file
View file

@ -0,0 +1,22 @@
import Device from "@chirimen/adt7410";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
/** @type Temperature (°C) */
type Temperature = number;
export function adt7410(
bus: I2CPort = i2c(),
address: number = 0x48
): ReadableDevice<number> {
const device = new Device(bus, address);
return {
async read(): Promise<Temperature> {
if (device.i2cSlave == null) await device.init();
return device.read();
}
};
}
export default adt7410;

23
src/adxl345.ts Normal file
View file

@ -0,0 +1,23 @@
import Device from "@chirimen/grove-accelerometer";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
/** @type Acceleration (g) */
type Acceleration = [number, number, number];
export function adxl345(
bus: I2CPort = i2c(),
address: number = 0x53
): ReadableDevice<Acceleration> {
const device = new Device(bus, address);
return {
async read(): Promise<Acceleration> {
if (device.i2cSlave == null) await device.init();
const acc = await device.read();
return [acc.x, acc.y, acc.z];
}
};
}
export default adxl345;

22
src/gp2y0e03.ts Normal file
View file

@ -0,0 +1,22 @@
import Device from "@chirimen/gp2y0e03";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
/** @type Distance (cm) */
type Distance = number;
export function gp2y0e03(
bus: I2CPort = i2c(),
address: number = 0x40
): ReadableDevice<number> {
const device = new Device(bus, address);
return {
async read(): Promise<Distance> {
if (device.i2cSlave == null) await device.init();
return device.read();
}
};
}
export default gp2y0e03;

43
src/gpio.ts Normal file
View file

@ -0,0 +1,43 @@
import {
GPIOPort,
OperationError,
InvalidAccessError,
requestGPIOAccess
} from "node-web-gpio";
export { OperationError, InvalidAccessError, requestGPIOAccess };
export type GPIOValue = 0 | 1;
export class GPIO extends GPIOPort {
async read(): Promise<GPIOValue> {
try {
if (!(this.exported && this.direction === "in")) {
throw new OperationError(`direction must be "in"`);
}
} catch (error) {
if (error instanceof OperationError) await this.export("in");
else throw error;
}
return super.read();
}
async write(value: GPIOValue): Promise<void> {
try {
if (!(this.exported && this.direction === "out")) {
throw new OperationError(`direction must be "out"`);
}
} catch (error) {
if (error instanceof OperationError) await this.export("out");
else throw error;
}
return super.write(value);
}
}
export function gpio(pin: number) {
return new GPIOPort(pin);
}
export default gpio;

9
src/i2c.ts Normal file
View file

@ -0,0 +1,9 @@
import { I2CPort, I2CSlaveDevice, requestI2CAccess } from "node-web-i2c";
export { I2CPort, I2CSlaveDevice, requestI2CAccess };
export function i2c(bus: number = 1) {
return new I2CPort(bus);
}
export default i2c;

23
src/index.ts Normal file
View file

@ -0,0 +1,23 @@
export {
GPIO,
GPIOValue,
OperationError,
InvalidAccessError,
requestGPIOAccess,
default as gpio
} from "./gpio";
export { I2CSlaveDevice, requestI2CAccess, default as i2c } from "./i2c";
export { default as ads1015 } from "./ads1015";
export { default as adt7410 } from "./adt7410";
export { default as adxl345 } from "./adxl345";
export { default as gp2y0e03 } from "./gp2y0e03";
export { default as mpr121 } from "./mpr121";
export { default as paj7620 } from "./paj7620";
export { default as pca9685 } from "./pca9685";
export { default as s11059 } from "./s11059";
export { default as ssd1308 } from "./ssd1308";
export { default as tsl2561 } from "./tsl2561";
export { default as veml6070 } from "./veml6070";
export { default as vl53l0x } from "./vl53l0x";

35
src/mpr121.ts Normal file
View file

@ -0,0 +1,35 @@
import Device from "@chirimen/grove-touch";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
/** @type true if touched by the finger, false otherwise */
type Touched = [
boolean,
boolean,
boolean,
boolean,
boolean,
boolean,
boolean,
boolean,
boolean,
boolean,
boolean,
boolean
];
export function mpr121(
bus: I2CPort = i2c(),
address: number = 0x5a
): ReadableDevice<Touched> {
const device = new Device(bus, address);
return {
async read(): Promise<Touched> {
if (device.i2cSlave == null) await device.init();
return device.read();
}
};
}
export default mpr121;

44
src/paj7620.ts Normal file
View file

@ -0,0 +1,44 @@
import Device from "@chirimen/grove-gesture";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
type Direction =
| ""
| "right"
| "left"
| "up"
| "down"
| "forward"
| "back"
| "clockwise"
| "counterclockwise";
export function paj7620(
bus: I2CPort = i2c(),
address: number = 0x73
): ReadableDevice<Direction> {
const device = new Device(bus, address);
return {
async read(): Promise<Direction> {
if (device.i2cSlave == null) await device.init();
const direction = await device.read();
switch (direction) {
case "right":
case "left":
case "up":
case "down":
case "forward":
case "back":
case "clockwise":
return direction;
case "count clockwise":
return "counterclockwise";
default:
return "";
}
}
};
}
export default paj7620;

50
src/pca9685.ts Normal file
View file

@ -0,0 +1,50 @@
import Device from "@chirimen/pca9685";
import { WritableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
type Channel =
| 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15;
/**
* @param minPulse sec
* @param maxPulse sec
* @param angleRange deg
*/
export function pca9685(
bus: I2CPort = i2c(),
address: number = 0x40,
channel: Channel = 0,
minPulse?: number,
maxPulse?: number,
angleRange?: number
): WritableDevice<number> {
const device = new Device(bus, address);
return {
/** @param angle deg */
async write(angle: number): Promise<void> {
if (device.i2cSlave == null) {
await device.init(minPulse, maxPulse, angleRange, false);
}
await device.setServo(channel, angle);
}
};
}
export default pca9685;

22
src/s11059.ts Normal file
View file

@ -0,0 +1,22 @@
import Device from "@chirimen/s11059";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
/** @type 8-bit RGB */
type RGB = [number, number, number];
export function s11059(
bus: I2CPort = i2c(),
address: number = 0x2a
): ReadableDevice<RGB> {
const device = new Device(bus, address);
return {
async read(): Promise<RGB> {
if (device.i2cSlave == null) await device.init();
return device.readR8G8B8();
}
};
}
export default s11059;

30
src/ssd1308.ts Normal file
View file

@ -0,0 +1,30 @@
import Device from "@chirimen/grove-oled-display";
import { WritableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
export function ssd1308(
bus: I2CPort = i2c(),
address: number = 0x3c
): WritableDevice<boolean | number | string> {
const device = new Device(bus, address);
return {
/** @param value Object to be output */
async write(value: boolean | number | string): Promise<void> {
if (device.i2cSlave == null) {
await device.init(false);
}
await device.clearDisplay();
const messages =
typeof value === "string"
? value.split("\n")
: JSON.stringify(value, null, " ").split("\n");
messages.forEach((message, index) => {
device.drawStringQ(index, 0, message);
});
await device.playSequence();
}
};
}
export default ssd1308;

22
src/tsl2561.ts Normal file
View file

@ -0,0 +1,22 @@
import Device from "@chirimen/grove-light";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
/** @type Illuminance (lx) */
type Illuminance = number;
export function tsl2561(
bus: I2CPort = i2c(),
address: number = 0x29
): ReadableDevice<Illuminance> {
const device = new Device(bus, address);
return {
async read(): Promise<Illuminance> {
if (device.i2cSlave == null) await device.init();
return device.read();
}
};
}
export default tsl2561;

21
src/veml6070.ts Normal file
View file

@ -0,0 +1,21 @@
import Device from "@chirimen/veml6070";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
/** @type UVA (μW/cm^2) */
type UVA = number;
/** slave addresses are 0x38 and 0x39 */
export function veml6070(bus: I2CPort = i2c()): ReadableDevice<number> {
const device = new Device(bus);
return {
async read(): Promise<UVA> {
if (device.i2cSlaveLSB == null || device.i2cSlaveMSB == null)
await device.init();
return device.read();
}
};
}
export default veml6070;

27
src/vl53l0x.ts Normal file
View file

@ -0,0 +1,27 @@
import Device from "@chirimen/vl53l0x";
import { ReadableDevice } from "./Device";
import { I2CPort, i2c } from "./i2c";
/** @type Enable long range mode (max 2200mm) */
type EnableLongRangeMode = Boolean;
/** @type Distance (mm) */
type Distance = number;
/** max 1200 mm / 2200 mm (long range mode) */
export function vl53l0x(
bus: I2CPort = i2c(),
address: number = 0x29,
enableLongRangeMode?: EnableLongRangeMode
): ReadableDevice<Distance> {
const device = new Device(bus, address);
return {
async read(): Promise<Distance> {
if (device.i2cSlave == null) await device.init(enableLongRangeMode);
return device.getRange();
}
};
}
export default vl53l0x;

22
tsconfig.base.json Normal file
View file

@ -0,0 +1,22 @@
{
"exclude": ["cjs", "esm"],
"compilerOptions": {
"target": "esnext",
"moduleResolution": "node",
"allowJs": true,
"declaration": true,
"noImplicitThis": true,
"alwaysStrict": true,
"strictBindCallApply": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"strictPropertyInitialization": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": true
},
"typedocOptions": {
"mode": "file",
"out": "docs"
}
}

7
tsconfig.cjs.json Normal file
View file

@ -0,0 +1,7 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"module": "commonjs",
"outDir": "cjs"
}
}

7
tsconfig.esm.json Normal file
View file

@ -0,0 +1,7 @@
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"module": "esnext",
"outDir": "esm"
}
}

720
yarn.lock Normal file
View file

@ -0,0 +1,720 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@chirimen/ads1015@~1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@chirimen/ads1015/-/ads1015-1.0.1.tgz#c92fe6fcc538c20ab44573326b8e8ac232313997"
integrity sha512-DEecY3aeumJxlR64a5ic7J5tnx54zmFpAP1xZXrQrRvp3xgbzFdh7/kz2kU1aC/EO5CD61V00hf5dsjTri38aA==
"@chirimen/adt7410@~1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@chirimen/adt7410/-/adt7410-1.0.1.tgz#f31c9bb1de20619ceda4e932204b5b6697e7819c"
integrity sha512-SeEZ/BhTiTgHzoXVV9WwyqlxTq1yibnXhHZ/4emj6dm4lMbMbRQQWcD75OPRTPhUWMueBW5gSH3Xu/NHnxfCkw==
"@chirimen/gp2y0e03@~1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@chirimen/gp2y0e03/-/gp2y0e03-1.0.1.tgz#a44430181cf9755ba9adbf02af035cda1f88254d"
integrity sha512-xdxN8lT0geAwzDDLm3fEOPqMgDgNMSFKCDE0AuijPvB4qtXwK5eAbQk/a/8MtA7kabi+znfiLDbgK3NWyO/KCg==
"@chirimen/grove-accelerometer@~1":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@chirimen/grove-accelerometer/-/grove-accelerometer-1.0.0.tgz#740dd22d0bcc39c3eedfec237dbde9e9cdfa044b"
integrity sha512-zt0sJdGZBad3vLPqBIRRbhCce9rzB3Bi8GHqVihEbFzbXphC5wCWS3AR6v5FqrNV0U4gbsbwZ3yAVEQ3I0XyWQ==
"@chirimen/grove-gesture@~1":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@chirimen/grove-gesture/-/grove-gesture-1.0.0.tgz#71de0db2a4d48bcf5cac97b5d961213978929388"
integrity sha512-g8TmoA7H7+oJm77Kg2Ot0kucSlEhge5fC0Obv3CPoTah3hyjjCz07ujS/aJPe9aeDAmFK3rtkpkXzCqTcr8dag==
"@chirimen/grove-light@~1":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@chirimen/grove-light/-/grove-light-1.0.0.tgz#da0ec85802f99cd5d6d946ca74792dd6cb55c6b1"
integrity sha512-3lHXKxO4mYVCgCm48+LtkbHgOQXFTg38TawU3Duto9jJK1sK2FwLDjPvLKAjLQm4ijpRaeOwDxyOMtu6WBljlA==
"@chirimen/grove-oled-display@~1":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@chirimen/grove-oled-display/-/grove-oled-display-1.0.0.tgz#9e175c2d47fa4721b6ba0f027e8897219493ad98"
integrity sha512-cx3JgekfNwy7rZHRiCwsdpfExrOQ7/lqNTJD1ZDUCCRrWacKBjOTB06OTOtjZhTjJhQx4Og67JdW1SIV8Egs6Q==
"@chirimen/grove-touch@~1":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@chirimen/grove-touch/-/grove-touch-1.0.0.tgz#684b5b72c6904779c515426be4d1ebc15fe3e00a"
integrity sha512-d4E3pv8OuqR1xRh5wGZHYYbskd+qkjDw2+/UPm1Id54bBzg54dQ6FCAm56tPVvs34NOAm+S7e7GHw49+yF66dQ==
"@chirimen/pca9685@~1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@chirimen/pca9685/-/pca9685-1.0.1.tgz#7d6de987f6612c6bd6d7540b3e3ece09b2d26220"
integrity sha512-iEignBzmxn+f+WKDFTd3I78HQurEYlM1l54b5e8kDTWsbkyKb2MJA792NdJcOSkX/Obf05IbW8H7GwgcNolwxQ==
"@chirimen/s11059@~1":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@chirimen/s11059/-/s11059-1.0.2.tgz#d27e1d205975296e28348fc5d8c17a573d23364d"
integrity sha512-qj9Vp9pxEsL5XF1bM374xAWIpDJFnM3kx03UZnkZzHI76RG03+ghoh6iNu8eicy2fM55LIForUV+ZQDNcqOy1A==
"@chirimen/veml6070@~1":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@chirimen/veml6070/-/veml6070-1.0.0.tgz#407fdef1f1a6017196879b90fad8858eb20ad33a"
integrity sha512-tF42hu9y3oTEuOEKp4FlnvhuklSZszeWnlcVSMbyZX/xuvgZBTvNNPdWlqfLSor7Rduu1olfKSk8wsy9ha/R2w==
"@chirimen/vl53l0x@~1":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@chirimen/vl53l0x/-/vl53l0x-1.0.3.tgz#847b14f5c400047f5c129ae2e85559df066531c3"
integrity sha512-Cna26V7q/2u2bcbJERypiedz2iEwT3fFNlRzL6cCQ6cR97ukOPdgGHH7EVfoNrqZb4TuRP77GSySqkZpgxoNwA==
"@types/minimatch@3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
"@types/node@~12":
version "12.12.26"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.26.tgz#213e153babac0ed169d44a6d919501e68f59dea9"
integrity sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA==
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
dependencies:
color-convert "^1.9.0"
backbone@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.4.0.tgz#54db4de9df7c3811c3f032f34749a4cd27f3bd12"
integrity sha512-RLmDrRXkVdouTg38jcgHhyQ/2zjg7a8E6sz2zxfz21Hh17xDJYUHBZimVIt5fUyS8vbfpeSmTL3gUjTEvUV3qQ==
dependencies:
underscore ">=1.8.3"
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
bindings@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
dependencies:
file-uri-to-path "1.0.0"
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
chalk@^2.4.1:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
color-convert@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
color-name "1.1.3"
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
dependencies:
nice-try "^1.0.4"
path-key "^2.0.1"
semver "^5.5.0"
shebang-command "^1.2.0"
which "^1.2.9"
define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
dependencies:
object-keys "^1.0.12"
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
dependencies:
is-arrayish "^0.2.1"
es-abstract@^1.17.0-next.1:
version "1.17.4"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184"
integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==
dependencies:
es-to-primitive "^1.2.1"
function-bind "^1.1.1"
has "^1.0.3"
has-symbols "^1.0.1"
is-callable "^1.1.5"
is-regex "^1.0.5"
object-inspect "^1.7.0"
object-keys "^1.1.1"
object.assign "^4.1.0"
string.prototype.trimleft "^2.1.1"
string.prototype.trimright "^2.1.1"
es-to-primitive@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
dependencies:
is-callable "^1.1.4"
is-date-object "^1.0.1"
is-symbol "^1.0.2"
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
file-uri-to-path@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
graceful-fs "^4.2.0"
jsonfile "^4.0.0"
universalify "^0.1.0"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
glob@^7.0.0:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.0.4"
once "^1.3.0"
path-is-absolute "^1.0.0"
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.3"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
handlebars@^4.7.2:
version "4.7.3"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee"
integrity sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==
dependencies:
neo-async "^2.6.0"
optimist "^0.6.1"
source-map "^0.6.1"
optionalDependencies:
uglify-js "^3.1.4"
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
has-symbols@^1.0.0, has-symbols@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
function-bind "^1.1.1"
highlight.js@^9.17.1:
version "9.18.1"
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c"
integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==
hosted-git-info@^2.1.4:
version "2.8.5"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c"
integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==
i2c-bus@~5:
version "5.1.0"
resolved "https://registry.yarnpkg.com/i2c-bus/-/i2c-bus-5.1.0.tgz#7d667d225c09017cf044f75fc593d5ea3e0f4ea6"
integrity sha512-u/q1fuZ5xrG77y3uo1rAANycboXsRNjneN+6jXRNMT2yRNpanVkbAP+IArwgsPRCHaY/zKxw7x5G8Y2fSPNseA==
dependencies:
bindings "^1.5.0"
nan "^2.14.0"
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
interpret@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
is-callable@^1.1.4, is-callable@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==
is-date-object@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
is-regex@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
dependencies:
has "^1.0.3"
is-symbol@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
dependencies:
has-symbols "^1.0.1"
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
jquery@^3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2"
integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==
json-parse-better-errors@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
optionalDependencies:
graceful-fs "^4.1.6"
load-json-file@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
dependencies:
graceful-fs "^4.1.2"
parse-json "^4.0.0"
pify "^3.0.0"
strip-bom "^3.0.0"
lodash@^4.17.15:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
lunr@^2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.8.tgz#a8b89c31f30b5a044b97d2d28e2da191b6ba2072"
integrity sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==
marked@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz#ec5c0c9b93878dc52dd54be8d0e524097bd81a99"
integrity sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==
memorystream@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=
minimatch@^3.0.0, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
nan@^2.14.0:
version "2.14.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
neo-async@^2.6.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
node-web-gpio@~1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/node-web-gpio/-/node-web-gpio-1.0.0.tgz#ea75726a792c64cba09a9d65bc191294c531eded"
integrity sha512-bNYPeLK+tBBOE92Hc7B+5n4dEMEbH+Ai3toQk3Fc2YqaR1GFhTN6zSqHT6bIjmjvJSHsWE2xKOrcAL2ge+2qpQ==
node-web-i2c@~1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/node-web-i2c/-/node-web-i2c-1.1.2.tgz#9f24b5d1580832689b2c2719d33e50b14b43150d"
integrity sha512-q7mk4pcqXbq7rxLtagtMZ1jNE1S0acA4GMmHju8PSaI5xvbcwg/iKPs4lFqzpyyalbiNo8g4QIbSjVPQyZjghw==
dependencies:
i2c-bus "~5"
normalize-package-data@^2.3.2:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
dependencies:
hosted-git-info "^2.1.4"
resolve "^1.10.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
npm-run-all@~4:
version "4.1.5"
resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba"
integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==
dependencies:
ansi-styles "^3.2.1"
chalk "^2.4.1"
cross-spawn "^6.0.5"
memorystream "^0.3.1"
minimatch "^3.0.4"
pidtree "^0.3.0"
read-pkg "^3.0.0"
shell-quote "^1.6.1"
string.prototype.padend "^3.0.0"
object-inspect@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
object.assign@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
dependencies:
define-properties "^1.1.2"
function-bind "^1.1.1"
has-symbols "^1.0.0"
object-keys "^1.0.11"
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
dependencies:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-key@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
path-type@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
dependencies:
pify "^3.0.0"
pidtree@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.0.tgz#f6fada10fccc9f99bf50e90d0b23d72c9ebc2e6b"
integrity sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==
pify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
progress@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
read-pkg@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
dependencies:
load-json-file "^4.0.0"
normalize-package-data "^2.3.2"
path-type "^3.0.0"
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
dependencies:
resolve "^1.1.6"
resolve@^1.1.6, resolve@^1.10.0:
version "1.15.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
dependencies:
path-parse "^1.0.6"
"semver@2 || 3 || 4 || 5", semver@^5.5.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
dependencies:
shebang-regex "^1.0.0"
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
shell-quote@^1.6.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
shelljs@^0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097"
integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
rechoir "^0.6.2"
source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
spdx-correct@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
dependencies:
spdx-expression-parse "^3.0.0"
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
spdx-expression-parse@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
dependencies:
spdx-exceptions "^2.1.0"
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
version "3.0.5"
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
string.prototype.padend@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3"
integrity sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
string.prototype.trimleft@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74"
integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==
dependencies:
define-properties "^1.1.3"
function-bind "^1.1.1"
string.prototype.trimright@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9"
integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==
dependencies:
define-properties "^1.1.3"
function-bind "^1.1.1"
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
dependencies:
has-flag "^3.0.0"
typedoc-default-themes@^0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.7.2.tgz#1e9896f920b58e6da0bba9d7e643738d02405a5a"
integrity sha512-fiFKlFO6VTqjcno8w6WpTsbCgXmfPHVjnLfYkmByZE7moaz+E2DSpAT+oHtDHv7E0BM5kAhPrHJELP2J2Y2T9A==
dependencies:
backbone "^1.4.0"
jquery "^3.4.1"
lunr "^2.3.8"
underscore "^1.9.1"
typedoc@~0.16:
version "0.16.9"
resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.16.9.tgz#d6f46f4dea7d3362029927a92981efdf896f435b"
integrity sha512-UvOGoy76yqwCXwxPgatwgXWfsQ3FczyZ6ZNLjhCPK+TsDir6LiU3YB6N9XZmPv36E+7LA860mnc8a0v6YADKFw==
dependencies:
"@types/minimatch" "3.0.3"
fs-extra "^8.1.0"
handlebars "^4.7.2"
highlight.js "^9.17.1"
lodash "^4.17.15"
marked "^0.8.0"
minimatch "^3.0.0"
progress "^2.0.3"
shelljs "^0.8.3"
typedoc-default-themes "^0.7.2"
typescript "3.7.x"
typescript@3.7.x, typescript@~3.7:
version "3.7.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae"
integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==
uglify-js@^3.1.4:
version "3.7.7"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.7.tgz#21e52c7dccda80a53bf7cde69628a7e511aec9c9"
integrity sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA==
dependencies:
commander "~2.20.3"
source-map "~0.6.1"
underscore@>=1.8.3, underscore@^1.9.1:
version "1.9.2"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.2.tgz#0c8d6f536d6f378a5af264a72f7bec50feb7cf2f"
integrity sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
dependencies:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
which@^1.2.9:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
dependencies:
isexe "^2.0.0"
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=