diff --git a/dist/index.js b/dist/index.js index 636f632..1bf8992 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,12 +1,25 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); return result; -} +}; Object.defineProperty(exports, "__esModule", { value: true }); +exports.settings = exports.api = exports.methodCache = exports.driver = void 0; const driver = __importStar(require("./lib/driver")); exports.driver = driver; const methodCache = __importStar(require("./lib/methodCache")); diff --git a/dist/index.js.map b/dist/index.js.map index 62c43ee..a70d5b4 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qDAAsC;AAKpC,wBAAM;AAJR,+DAAgD;AAK9C,kCAAW;AAJb,+CAAgC;AAK9B,kBAAG;AAJL,yDAA0C;AAKxC,4BAAQ","sourcesContent":["import * as driver from './lib/driver'\nimport * as methodCache from './lib/methodCache'\nimport * as api from './lib/api'\nimport * as settings from './lib/settings'\nexport {\n driver,\n methodCache,\n api,\n settings\n}\n"]} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsC;AAKpC,wBAAM;AAJR,+DAAgD;AAK9C,kCAAW;AAJb,+CAAgC;AAK9B,kBAAG;AAJL,yDAA0C;AAKxC,4BAAQ","sourcesContent":["import * as driver from './lib/driver'\nimport * as methodCache from './lib/methodCache'\nimport * as api from './lib/api'\nimport * as settings from './lib/settings'\nexport {\n driver,\n methodCache,\n api,\n settings\n}\n"]} \ No newline at end of file diff --git a/dist/lib/api.d.ts b/dist/lib/api.d.ts index d2c386b..df4681a 100644 --- a/dist/lib/api.d.ts +++ b/dist/lib/api.d.ts @@ -34,8 +34,8 @@ export declare const basicHeaders: { 'Content-Type': string; }; export declare const authHeaders: { - 'X-Auth-Token': string; - 'X-User-Id': string; + 'X-Auth-Token'?: string; + 'X-User-Id'?: string; }; /** Populate auth headers (from response data on login) */ export declare function setAuth(authData: { diff --git a/dist/lib/api.js b/dist/lib/api.js index 245f3f9..1b3d59a 100644 --- a/dist/lib/api.js +++ b/dist/lib/api.js @@ -1,20 +1,34 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -} Object.defineProperty(exports, "__esModule", { value: true }); +exports.users = exports.userFields = exports.logout = exports.login = exports.get = exports.post = exports.success = exports.clearHeaders = exports.getHeaders = exports.setAuth = exports.authHeaders = exports.basicHeaders = exports.getQueryString = exports.url = exports.host = exports.client = exports.loggedIn = exports.currentLogin = void 0; const node_rest_client_1 = require("node-rest-client"); const settings = __importStar(require("./settings")); const log_1 = require("./log"); diff --git a/dist/lib/api.js.map b/dist/lib/api.js.map index a28a7bc..c0598cd 100644 --- a/dist/lib/api.js.map +++ b/dist/lib/api.js.map @@ -1 +1 @@ -{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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","sourcesContent":["import { Client } from 'node-rest-client'\nimport * as settings from './settings'\nimport { logger } from './log'\nimport { IUserAPI } from '../utils/interfaces'\n\n/** Result object from an API login */\nexport interface ILoginResultAPI {\n status: string // e.g. 'success'\n data: { authToken: string, userId: string }\n}\n\n/** Structure for passing and keeping login credentials */\nexport interface ILoginCredentials {\n username: string,\n password: string\n}\nexport let currentLogin: {\n username: string,\n userId: string,\n authToken: string,\n result: ILoginResultAPI\n} | null = null\n\n/** Check for existing login */\nexport function loggedIn (): boolean {\n return (currentLogin !== null)\n}\n\n/** Initialise client and configs */\nexport const client = new Client()\nexport const host = settings.host\n\n/**\n * Prepend protocol (or put back if removed from env settings for driver)\n * Hard code endpoint prefix, because all syntax depends on this version\n */\nexport const url = ((host.indexOf('http') === -1)\n ? host.replace(/^(\\/\\/)?/, 'http://')\n : host) + '/api/v1/'\n\n/** Convert payload data to query string for GET requests */\nexport function getQueryString (data: any) {\n if (!data || typeof data !== 'object' || !Object.keys(data).length) return ''\n return '?' + Object.keys(data).map((k) => {\n const value = (typeof data[k] === 'object')\n ? JSON.stringify(data[k])\n : encodeURIComponent(data[k])\n return `${encodeURIComponent(k)}=${value}`\n }).join('&')\n}\n\n/** Setup default headers with empty auth for now */\nexport const basicHeaders = { 'Content-Type': 'application/json' }\nexport const authHeaders = { 'X-Auth-Token': '', 'X-User-Id': '' }\n\n/** Populate auth headers (from response data on login) */\nexport function setAuth (authData: {authToken: string, userId: string}) {\n authHeaders['X-Auth-Token'] = authData.authToken\n authHeaders['X-User-Id'] = authData.userId\n}\n\n/** Join basic headers with auth headers if required */\nexport function getHeaders (authRequired = false) {\n if (!authRequired) return basicHeaders\n if (\n (!('X-Auth-Token' in authHeaders) || !('X-User-Id' in authHeaders)) ||\n authHeaders['X-Auth-Token'] === '' ||\n authHeaders['X-User-Id'] === ''\n ) {\n throw new Error('Auth required endpoint cannot be called before login')\n }\n return Object.assign({}, basicHeaders, authHeaders)\n}\n\n/** Clear headers so they can't be used without logging in again */\nexport function clearHeaders () {\n delete authHeaders['X-Auth-Token']\n delete authHeaders['X-User-Id']\n}\n\n/** Check result data for success, allowing override to ignore some errors */\nexport function success (result: any, ignore?: RegExp) {\n return (\n (\n typeof result.error === 'undefined' &&\n typeof result.status === 'undefined' &&\n typeof result.success === 'undefined'\n ) ||\n (result.status && result.status === 'success') ||\n (result.success && result.success === true) ||\n (ignore && result.error && !ignore.test(result.error))\n ) ? true : false\n}\n\n/**\n * Do a POST request to an API endpoint.\n * If it needs a token, login first (with defaults) to set auth headers.\n * @todo Look at why some errors return HTML (caught as buffer) instead of JSON\n * @param endpoint The API endpoint (including version) e.g. `chat.update`\n * @param data Payload for POST request to endpoint\n * @param auth Require auth headers for endpoint, default true\n * @param ignore Allows certain matching error messages to not count as errors\n */\nexport async function post (\n endpoint: string,\n data: any,\n auth: boolean = true,\n ignore?: RegExp\n): Promise {\n try {\n logger.debug(`[API] POST: ${endpoint}`, JSON.stringify(data))\n if (auth && !loggedIn()) await login()\n let headers = getHeaders(auth)\n const result = await new Promise((resolve, reject) => {\n client.post(url + endpoint, { headers, data }, (result: any) => {\n if (Buffer.isBuffer(result)) reject('Result was buffer (HTML, not JSON)')\n else if (!success(result, ignore)) reject(result)\n else resolve(result)\n }).on('error', (err: Error) => reject(err))\n })\n logger.debug('[API] POST result:', result)\n return result\n } catch (err) {\n console.error(err)\n logger.error(`[API] POST error (${endpoint}):`, err)\n }\n}\n\n/**\n * Do a GET request to an API endpoint\n * @param endpoint The API endpoint (including version) e.g. `users.info`\n * @param data Object to serialise for GET request query string\n * @param auth Require auth headers for endpoint, default true\n * @param ignore Allows certain matching error messages to not count as errors\n */\nexport async function get (\n endpoint: string,\n data?: any,\n auth: boolean = true,\n ignore?: RegExp\n): Promise {\n try {\n logger.debug(`[API] GET: ${endpoint}`, data)\n if (auth && !loggedIn()) await login()\n let headers = getHeaders(auth)\n const query = getQueryString(data)\n const result = await new Promise((resolve, reject) => {\n client.get(url + endpoint + query, { headers }, (result: any) => {\n if (Buffer.isBuffer(result)) reject('Result was buffer (HTML, not JSON)')\n else if (!success(result, ignore)) reject(result)\n else resolve(result)\n }).on('error', (err: Error) => reject(err))\n })\n logger.debug('[API] GET result:', result)\n return result\n } catch (err) {\n logger.error(`[API] GET error (${endpoint}):`, err)\n }\n}\n\n/**\n * Login a user for further API calls\n * Result should come back with a token, to authorise following requests.\n * Use env default credentials, unless overridden by login arguments.\n */\nexport async function login (user: ILoginCredentials = {\n username: settings.username,\n password: settings.password\n}): Promise {\n logger.info(`[API] Logging in ${user.username}`)\n if (currentLogin !== null) {\n logger.debug(`[API] Already logged in`)\n if (currentLogin.username === user.username) {\n return currentLogin.result\n } else {\n await logout()\n }\n }\n const result = await post('login', user, false)\n if (result && result.data && result.data.authToken) {\n currentLogin = {\n result: result, // keep to return if login requested again for same user\n username: user.username, // keep to compare with following login attempt\n authToken: result.data.authToken,\n userId: result.data.userId\n }\n setAuth(currentLogin)\n logger.info(`[API] Logged in ID ${ currentLogin.userId }`)\n return result\n } else {\n throw new Error(`[API] Login failed for ${user.username}`)\n }\n}\n\n/** Logout a user at end of API calls */\nexport function logout () {\n if (currentLogin === null) {\n logger.debug(`[API] Already logged out`)\n return Promise.resolve()\n }\n logger.info(`[API] Logging out ${ currentLogin.username }`)\n return get('logout', null, true).then(() => {\n clearHeaders()\n currentLogin = null\n })\n}\n\n/** Defaults for user queries */\nexport const userFields = { name: 1, username: 1, status: 1, type: 1 }\n\n/** Query helpers for user collection requests */\nexport const users: any = {\n all: (fields: any = userFields) => get('users.list', { fields }).then((r) => r.users),\n allNames: () => get('users.list', { fields: { 'username': 1 } }).then((r) => r.users.map((u: IUserAPI) => u.username)),\n allIDs: () => get('users.list', { fields: { '_id': 1 } }).then((r) => r.users.map((u: IUserAPI) => u._id)),\n online: (fields: any = userFields) => get('users.list', { fields, query: { 'status': { $ne: 'offline' } } }).then((r) => r.users),\n onlineNames: () => get('users.list', { fields: { 'username': 1 }, query: { 'status': { $ne: 'offline' } } }).then((r) => r.users.map((u: IUserAPI) => u.username)),\n onlineIds: () => get('users.list', { fields: { '_id': 1 }, query: { 'status': { $ne: 'offline' } } }).then((r) => r.users.map((u: IUserAPI) => u._id))\n}\n"]} \ No newline at end of file +{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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","sourcesContent":["import { Client } from 'node-rest-client'\nimport * as settings from './settings'\nimport { logger } from './log'\nimport { IUserAPI } from '../utils/interfaces'\n\n/** Result object from an API login */\nexport interface ILoginResultAPI {\n status: string // e.g. 'success'\n data: { authToken: string, userId: string }\n}\n\n/** Structure for passing and keeping login credentials */\nexport interface ILoginCredentials {\n username: string,\n password: string\n}\nexport let currentLogin: {\n username: string,\n userId: string,\n authToken: string,\n result: ILoginResultAPI\n} | null = null\n\n/** Check for existing login */\nexport function loggedIn (): boolean {\n return (currentLogin !== null)\n}\n\n/** Initialise client and configs */\nexport const client = new Client()\nexport const host = settings.host\n\n/**\n * Prepend protocol (or put back if removed from env settings for driver)\n * Hard code endpoint prefix, because all syntax depends on this version\n */\nexport const url = ((host.indexOf('http') === -1)\n ? host.replace(/^(\\/\\/)?/, 'http://')\n : host) + '/api/v1/'\n\n/** Convert payload data to query string for GET requests */\nexport function getQueryString (data: any) {\n if (!data || typeof data !== 'object' || !Object.keys(data).length) return ''\n return '?' + Object.keys(data).map((k) => {\n const value = (typeof data[k] === 'object')\n ? JSON.stringify(data[k])\n : encodeURIComponent(data[k])\n return `${encodeURIComponent(k)}=${value}`\n }).join('&')\n}\n\n/** Setup default headers with empty auth for now */\nexport const basicHeaders = { 'Content-Type': 'application/json' }\nexport const authHeaders: { 'X-Auth-Token'?: string, 'X-User-Id'?: string } = { 'X-Auth-Token': '', 'X-User-Id': '' }\n\n/** Populate auth headers (from response data on login) */\nexport function setAuth (authData: {authToken: string, userId: string}) {\n authHeaders['X-Auth-Token'] = authData.authToken\n authHeaders['X-User-Id'] = authData.userId\n}\n\n/** Join basic headers with auth headers if required */\nexport function getHeaders (authRequired = false) {\n if (!authRequired) return basicHeaders\n if (\n (!('X-Auth-Token' in authHeaders) || !('X-User-Id' in authHeaders)) ||\n authHeaders['X-Auth-Token'] === '' ||\n authHeaders['X-User-Id'] === ''\n ) {\n throw new Error('Auth required endpoint cannot be called before login')\n }\n return Object.assign({}, basicHeaders, authHeaders)\n}\n\n/** Clear headers so they can't be used without logging in again */\nexport function clearHeaders () {\n delete authHeaders['X-Auth-Token']\n delete authHeaders['X-User-Id']\n}\n\n/** Check result data for success, allowing override to ignore some errors */\nexport function success (result: any, ignore?: RegExp) {\n return (\n (\n typeof result.error === 'undefined' &&\n typeof result.status === 'undefined' &&\n typeof result.success === 'undefined'\n ) ||\n (result.status && result.status === 'success') ||\n (result.success && result.success === true) ||\n (ignore && result.error && !ignore.test(result.error))\n ) ? true : false\n}\n\n/**\n * Do a POST request to an API endpoint.\n * If it needs a token, login first (with defaults) to set auth headers.\n * @todo Look at why some errors return HTML (caught as buffer) instead of JSON\n * @param endpoint The API endpoint (including version) e.g. `chat.update`\n * @param data Payload for POST request to endpoint\n * @param auth Require auth headers for endpoint, default true\n * @param ignore Allows certain matching error messages to not count as errors\n */\nexport async function post (\n endpoint: string,\n data: any,\n auth: boolean = true,\n ignore?: RegExp\n): Promise {\n try {\n logger.debug(`[API] POST: ${endpoint}`, JSON.stringify(data))\n if (auth && !loggedIn()) await login()\n let headers = getHeaders(auth)\n const result = await new Promise((resolve, reject) => {\n client.post(url + endpoint, { headers, data }, (result: any) => {\n if (Buffer.isBuffer(result)) reject('Result was buffer (HTML, not JSON)')\n else if (!success(result, ignore)) reject(result)\n else resolve(result)\n }).on('error', (err: Error) => reject(err))\n })\n logger.debug('[API] POST result:', result)\n return result\n } catch (err) {\n console.error(err)\n logger.error(`[API] POST error (${endpoint}):`, err)\n }\n}\n\n/**\n * Do a GET request to an API endpoint\n * @param endpoint The API endpoint (including version) e.g. `users.info`\n * @param data Object to serialise for GET request query string\n * @param auth Require auth headers for endpoint, default true\n * @param ignore Allows certain matching error messages to not count as errors\n */\nexport async function get (\n endpoint: string,\n data?: any,\n auth: boolean = true,\n ignore?: RegExp\n): Promise {\n try {\n logger.debug(`[API] GET: ${endpoint}`, data)\n if (auth && !loggedIn()) await login()\n let headers = getHeaders(auth)\n const query = getQueryString(data)\n const result = await new Promise((resolve, reject) => {\n client.get(url + endpoint + query, { headers }, (result: any) => {\n if (Buffer.isBuffer(result)) reject('Result was buffer (HTML, not JSON)')\n else if (!success(result, ignore)) reject(result)\n else resolve(result)\n }).on('error', (err: Error) => reject(err))\n })\n logger.debug('[API] GET result:', result)\n return result\n } catch (err) {\n logger.error(`[API] GET error (${endpoint}):`, err)\n }\n}\n\n/**\n * Login a user for further API calls\n * Result should come back with a token, to authorise following requests.\n * Use env default credentials, unless overridden by login arguments.\n */\nexport async function login (user: ILoginCredentials = {\n username: settings.username,\n password: settings.password\n}): Promise {\n logger.info(`[API] Logging in ${user.username}`)\n if (currentLogin !== null) {\n logger.debug(`[API] Already logged in`)\n if (currentLogin.username === user.username) {\n return currentLogin.result\n } else {\n await logout()\n }\n }\n const result = await post('login', user, false)\n if (result && result.data && result.data.authToken) {\n currentLogin = {\n result: result, // keep to return if login requested again for same user\n username: user.username, // keep to compare with following login attempt\n authToken: result.data.authToken,\n userId: result.data.userId\n }\n setAuth(currentLogin)\n logger.info(`[API] Logged in ID ${ currentLogin.userId }`)\n return result\n } else {\n throw new Error(`[API] Login failed for ${user.username}`)\n }\n}\n\n/** Logout a user at end of API calls */\nexport function logout () {\n if (currentLogin === null) {\n logger.debug(`[API] Already logged out`)\n return Promise.resolve()\n }\n logger.info(`[API] Logging out ${ currentLogin.username }`)\n return get('logout', null, true).then(() => {\n clearHeaders()\n currentLogin = null\n })\n}\n\n/** Defaults for user queries */\nexport const userFields = { name: 1, username: 1, status: 1, type: 1 }\n\n/** Query helpers for user collection requests */\nexport const users: any = {\n all: (fields: any = userFields) => get('users.list', { fields }).then((r) => r.users),\n allNames: () => get('users.list', { fields: { 'username': 1 } }).then((r) => r.users.map((u: IUserAPI) => u.username)),\n allIDs: () => get('users.list', { fields: { '_id': 1 } }).then((r) => r.users.map((u: IUserAPI) => u._id)),\n online: (fields: any = userFields) => get('users.list', { fields, query: { 'status': { $ne: 'offline' } } }).then((r) => r.users),\n onlineNames: () => get('users.list', { fields: { 'username': 1 }, query: { 'status': { $ne: 'offline' } } }).then((r) => r.users.map((u: IUserAPI) => u.username)),\n onlineIds: () => get('users.list', { fields: { '_id': 1 }, query: { 'status': { $ne: 'offline' } } }).then((r) => r.users.map((u: IUserAPI) => u._id))\n}\n"]} \ No newline at end of file diff --git a/dist/lib/driver.js b/dist/lib/driver.js index 357ea51..b537f95 100644 --- a/dist/lib/driver.js +++ b/dist/lib/driver.js @@ -1,37 +1,50 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; -} -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -} +}; Object.defineProperty(exports, "__esModule", { value: true }); +exports.setReaction = exports.editMessage = exports.sendDirectToUser = exports.sendToRoom = exports.sendToRoomId = exports.sendMessage = exports.prepareMessage = exports.joinRooms = exports.leaveRoom = exports.joinRoom = exports.getDirectMessageRoomId = exports.getRoomName = exports.getRoomId = exports.respondToMessages = exports.reactToMessages = exports.subscribeToMessages = exports.unsubscribeAll = exports.unsubscribe = exports.subscribe = exports.logout = exports.login = exports.cacheCall = exports.callMethod = exports.asyncCall = exports.disconnect = exports.connect = exports.useLog = exports.messages = exports.joinedIds = exports.userId = exports.subscriptions = exports.asteroid = exports.events = exports.integrationId = exports.lastReadTime = void 0; const events_1 = require("events"); const asteroid_1 = __importDefault(require("asteroid")); const settings = __importStar(require("./settings")); const methodCache = __importStar(require("./methodCache")); const message_1 = require("./message"); const log_1 = require("./log"); - +/** Collection names */ const _messageCollectionName = 'stream-room-messages'; const _messageStreamName = '__my_messages__'; /** * The integration property is applied as an ID on sent messages `bot.i` param * Should be replaced when connection is invoked by a package using the SDK * e.g. The Hubot adapter would pass its integration ID with credentials, like: - * @ignore */ exports.integrationId = settings.integrationId; /** @@ -40,51 +53,36 @@ exports.integrationId = settings.integrationId; * import { driver } from '@rocket.chat/sdk' * driver.connect() * driver.events.on('connected', () => console.log('driver connected')) - * @ignore */ exports.events = new events_1.EventEmitter(); /** * Asteroid subscriptions, exported for direct polling by adapters * Variable not initialised until `prepMeteorSubscriptions` called. - * @ignore */ exports.subscriptions = []; /** * Array of joined room IDs (for reactive queries) - * @ignore */ exports.joinedIds = []; /** - * @memberof module:driver - * @instance - * @description Replaces the default logger with one from a bot framework - * @param {Class|Object} externalLog - Class or object with `debug`, `info`, `warn`, `error` methods - * @returns {void} + * Allow override of default logging with adapter's log instance */ function useLog(externalLog) { log_1.replaceLog(externalLog); } exports.useLog = useLog; - /** - * @memberof module:driver - * @instance - * @description Initialize asteroid instance with given options or defaults. - * Callback follows error-first-pattern. - * Error returned or promise rejected on timeout. - * @param {Object} [options={}] - an object containing options to initialize Asteroid instance with - * @param {string} [options.host=''] - hostname to connect to. Removes http/s protocol if taken from URL - * @param {boolean} [options.useSsl=false] - whether the SSL is enabled for the host - * @param {number} [options.timeout] - timeframe after which the connection attempt will be considered as failed - * @returns {Promise} - * @throws {Error} Asteroid connection timeout - * @example Usage with callback + * Initialise asteroid instance with given options or defaults. + * Returns promise, resolved with Asteroid instance. Callback follows + * error-first-pattern. Error returned or promise rejected on timeout. + * Removes http/s protocol to get connection hostname if taken from URL. + * @example Use with callback * import { driver } from '@rocket.chat/sdk' * driver.connect({}, (err) => { * if (err) throw err * else console.log('connected') * }) - * @example Usage with promise + * @example Using promise * import { driver } from '@rocket.chat/sdk' * driver.connect() * .then(() => console.log('connected')) @@ -127,12 +125,7 @@ function connect(options = {}, callback) { }); } exports.connect = connect; -/** - * @memberof module:driver - * @instance - * @description Remove all active subscriptions, logout and disconnect from Rocket.Chat - * @returns {Promise} - */ +/** Remove all active subscriptions, logout and disconnect from Rocket.Chat */ function disconnect() { log_1.logger.info('Unsubscribing, logging out, disconnecting'); unsubscribeAll(); @@ -145,7 +138,6 @@ exports.disconnect = disconnect; /** * Setup method cache configs from env or defaults, before they are called. * @param asteroid The asteroid instance to cache method calls - * @ignore */ function setupMethodCache(asteroid) { methodCache.use(asteroid); @@ -163,12 +155,9 @@ function setupMethodCache(asteroid) { }); } /** - * @memberof module:driver - * @instance - * @description Wrap server method calls to always be async (return a Promise with caught exceptions) - * @param {any} method - the Rocket.Chat server method, to call through Asteroid - * @param {string|string[]} params - single or array of parameters of the method to call - * @returns {Promise} + * Wraps method calls to ensure they return a Promise with caught exceptions. + * @param method The Rocket.Chat server method, to call through Asteroid + * @param params Single or array of parameters of the method to call */ function asyncCall(method, params) { if (!Array.isArray(params)) @@ -188,16 +177,11 @@ function asyncCall(method, params) { } exports.asyncCall = asyncCall; /** - * @memberof module:driver - * @instance - * @description Call a method as async ({@link module:driver#asyncCall|asyncCall}) via Asteroid, - * or through cache ({@link module:driver#cacheCall|cacheCall}) if one is created. - * - * If the method was called without parameters, they cannot be cached. - * As the result, the method will always be called asynchronously. - * @param {any} name - the Rocket.Chat server method to call through Asteroid - * @param {string|string[]} params - single or array of parameters of the method to call - * @returns {Promise} + * Call a method as async via Asteroid, or through cache if one is created. + * If the method doesn't have or need parameters, it can't use them for caching + * so it will always call asynchronously. + * @param name The Rocket.Chat server method to call + * @param params Single or array of parameters of the method to call */ function callMethod(name, params) { return (methodCache.has(name) || typeof params === 'undefined') @@ -206,12 +190,9 @@ function callMethod(name, params) { } exports.callMethod = callMethod; /** - * @memberof module:driver - * @instance - * @description Call Asteroid method calls with `methodCache`, if cache is valid - * @param {any} method - the Rocket.Chat server method, to call through Asteroid - * @param {string} key - single string parameters only, used as a cache key - * @returns {Promise} - Server results or cached results, if valid + * Wraps Asteroid method calls, passed through method cache if cache is valid. + * @param method The Rocket.Chat server method, to call through Asteroid + * @param key Single string parameters only, required to use as cache key */ function cacheCall(method, key) { return methodCache.call(method, key) @@ -229,17 +210,7 @@ function cacheCall(method, key) { exports.cacheCall = cacheCall; // LOGIN AND SUBSCRIBE TO ROOMS // ----------------------------------------------------------------------------- -/** - * @memberof module:driver - * @instance - * @description Login to Rocket.Chat via Asteroid - * @param {Object} [credentials={}] - an object containing credentials to log in to Rocket.Chat - * @param {string} [credentials.username = ROCKETCHAT_USER] - username of the Rocket.Chat user - * @param {string} [credentials.email = ROCKETCHAT_USER] - email of the Rocket.Chat user. - * @param {string} [credentials.password=ROCKETCHAT_PASSWORD] - password of the Rocket.Chat user - * @param {boolean} [credentials.ldap=false] - whether LDAP is enabled for login - * @returns {Promise} - */ +/** Login to Rocket.Chat via Asteroid */ function login(credentials = { username: settings.username, password: settings.password, @@ -268,12 +239,7 @@ function login(credentials = { }); } exports.login = login; -/** - * @memberof module:driver - * @instance - * @description Logout Rocket.Chat via Asteroid - * @returns {Promise} - * */ +/** Logout of Rocket.Chat via Asteroid */ function logout() { return exports.asteroid.logout() .catch((err) => { @@ -283,13 +249,9 @@ function logout() { } exports.logout = logout; /** - * @memberof module:driver - * @instance - * @description Subscribe to Meteor subscription - * @param {string} topic - subscription topic - * @param {number} roomId - unique ID of the room to subscribe to + * Subscribe to Meteor subscription + * Resolves with subscription (added to array), with ID property * @todo - 3rd param of asteroid.subscribe is deprecated in Rocket.Chat? - * @returns {Promise} - Subscription instance (added to array), with ID property */ function subscribe(topic, roomId) { return new Promise((resolve, reject) => { @@ -304,13 +266,7 @@ function subscribe(topic, roomId) { }); } exports.subscribe = subscribe; -/** - * @memberof module:driver - * @instance - * @description Unsubscribe from Meteor subscription - * @param {any} subscription - Subscription instance to unsbscribe from - * @returns {Promise} - */ +/** Unsubscribe from Meteor subscription */ function unsubscribe(subscription) { const index = exports.subscriptions.indexOf(subscription); if (index === -1) @@ -321,25 +277,14 @@ function unsubscribe(subscription) { log_1.logger.info(`[${subscription.id}] Unsubscribed`); } exports.unsubscribe = unsubscribe; -/** - * @memberof module:driver - * @instance - * @description Unsubscribe from all subscriptions in collection - * @returns {Promise} - */ +/** Unsubscribe from all subscriptions in collection */ function unsubscribeAll() { exports.subscriptions.map((s) => unsubscribe(s)); } exports.unsubscribeAll = unsubscribeAll; /** - * @memberof module:driver - * @instance - * @description Begin subscription to room events for user - * - * > NOTE: Older adapters used an option for this method but it was always the default. - * @param {string} [topic=stream-room-messages] - subscription topic - * @param {number} [roomId=__my_messages__] - unique ID of the room to subscribe to - * @returns {Promise} - Subscription instance + * Begin subscription to room events for user. + * Older adapters used an option for this method but it was always the default. */ function subscribeToMessages() { return subscribe(_messageCollectionName, _messageStreamName) @@ -350,23 +295,16 @@ function subscribeToMessages() { } exports.subscribeToMessages = subscribeToMessages; /** - * @memberof module:driver - * @instance - * @description Attach a callback to changes in the message stream. - * - * This method should be used only after a subscription was created using - * {@link module:driver#subscribeToMessages|subscribeToMessages}. - * Fires callback with every change in subscriptions. - * - * > NOTE: This method can be called directly for custom extensions, but for most usage - * (e.g. for bots) the - * {@link module:driver#respondToMessages|respondToMessages} is more useful to only receive messages + * Once a subscription is created, using `subscribeToMessages` this method + * can be used to attach a callback to changes in the message stream. + * This can be called directly for custom extensions, but for most usage (e.g. + * for bots) the respondToMessages is more useful to only receive messages * matching configuration. * * If the bot hasn't been joined to any rooms at this point, it will attempt to * join now based on environment config, otherwise it might not receive any - * messages. It doesn't matter that this happens asynchronously because the rooms - * the bot joined to can change after the reactive query is set up. + * messages. It doesn't matter that this happens asynchronously because the + * bot's joined rooms can change after the reactive query is set up. * * @todo `reactToMessages` should call `subscribeToMessages` if not already * done, so it's not required as an arbitrary step for simpler adapters. @@ -374,10 +312,10 @@ exports.subscribeToMessages = subscribeToMessages; * `respondToMessages` calls `respondToMessages`, so all that's really * required is: * `driver.login(credentials).then(() => driver.respondToMessages(callback))` - * @param {Function} callback - function called with every change in subscriptions. - * - It uses error-first callback pattern - * - The second argument is the changed item - * - The third argument is additional attributes, such as `roomType` + * @param callback Function called with every change in subscriptions. + * - Uses error-first callback pattern + * - Second argument is the changed item + * - Third argument is additional attributes, such as `roomType` */ function reactToMessages(callback) { log_1.logger.info(`[reactive] Listening for change events in collection ${exports.messages.name}`); @@ -400,23 +338,13 @@ function reactToMessages(callback) { } exports.reactToMessages = reactToMessages; /** - * @memberof module:driver - * @instance - * @description Proxy for {@link module:driver#reactToMessages|reactToMessages} - * with some filtering of messages based on config. This is a more user-friendly method - * for bots to subscribe to a message stream. - * @param {Function} callback - function called after filters run on subscription events. - * - It uses error-first callback pattern - * - The second argument is the changed item - * - The third argument is additional attributes, such as `roomType` - * @param {Object} options - an object that sets filters for different event/message types - * @param {string[]} options.rooms - respond to only selected room/s (names or IDs). Ignored if `options.allPublic=true` - * If rooms are given as option or set in the environment with `ROCKETCHAT_ROOM` but have not been joined yet, - * this method will join to those rooms automatically. - * @param {boolean} options.allPublic - respond on all public channels. Ignored if `options.rooms=true` - * @param {boolean} options.dm - respond to messages in direct messages / private chats with the SDK user - * @param {boolean} options.livechat - respond to messages in Livechat rooms - * @param {boolean} options.edited - respond to edited messages + * Proxy for `reactToMessages` with some filtering of messages based on config. + * + * @param callback Function called after filters run on subscription events. + * - Uses error-first callback pattern + * - Second argument is the changed item + * - Third argument is additional attributes, such as `roomType` + * @param options Sets filters for different event/message types. */ function respondToMessages(callback, options = {}) { const config = Object.assign({}, settings, options); @@ -439,6 +367,8 @@ function respondToMessages(callback, options = {}) { log_1.logger.error(`[received] Unable to receive: ${err.message}`); callback(err); // bubble errors back to adapter } + if (Array.isArray(message)) + message = message.shift(); // Ignore bot's own messages if (message.u._id === exports.userId) return; @@ -475,36 +405,19 @@ function respondToMessages(callback, options = {}) { exports.respondToMessages = respondToMessages; // PREPARE AND SEND MESSAGES // ----------------------------------------------------------------------------- -/** - * @memberof module:driver - * @instance - * @description Get room's ID by its name - * @param {string} name - room's name or ID - * @returns {Promise} - */ +/** Get ID for a room by name (or ID). */ function getRoomId(name) { return cacheCall('getRoomIdByNameOrId', name); } exports.getRoomId = getRoomId; -/** - * @memberof module:driver - * @instance - * @description Get room's name by its ID - * @param {string} id - room's ID - * @returns {Promise} -*/ +/** Get name for a room by ID. */ function getRoomName(id) { return cacheCall('getRoomNameById', id); } exports.getRoomName = getRoomName; /** - * @memberof module:driver - * @instance - * @description Get ID for a DM room by its recipient's name. - * - * The call will create a DM (with the bot) if it doesn't exist yet. - * @param {string} username - recipient's username - * @returns {Promise} + * Get ID for a DM room by its recipient's name. + * Will create a DM (with the bot) if it doesn't exist already. * @todo test why create resolves with object instead of simply ID */ function getDirectMessageRoomId(username) { @@ -512,13 +425,7 @@ function getDirectMessageRoomId(username) { .then((DM) => DM.rid); } exports.getDirectMessageRoomId = getDirectMessageRoomId; -/** - * @memberof module:driver - * @instance - * @description Join the bot into a room using room's name or ID - * @param {string} room - room's name or ID - * @returns {Promise} - * */ +/** Join the bot into a room by its name or ID */ function joinRoom(room) { return __awaiter(this, void 0, void 0, function* () { let roomId = yield getRoomId(room); @@ -533,10 +440,7 @@ function joinRoom(room) { }); } exports.joinRoom = joinRoom; -/** - * Exit a room the bot has joined - * @ignore - * */ +/** Exit a room the bot has joined */ function leaveRoom(room) { return __awaiter(this, void 0, void 0, function* () { let roomId = yield getRoomId(room); @@ -551,24 +455,14 @@ function leaveRoom(room) { }); } exports.leaveRoom = leaveRoom; -/** - * @memberof module:driver - * @instance - * @description Join a set of rooms by array of room names or IDs - * @param {string[]} rooms - array of room names or IDs - * @returns {Promise} - * */ +/** Join a set of rooms by array of names or IDs */ function joinRooms(rooms) { return Promise.all(rooms.map((room) => joinRoom(room))); } exports.joinRooms = joinRooms; /** - * @memberof module:driver - * @instance - * @description Structure message content, optionally sending it to a specific room ID - * @param {string|Object} content - message text string or a structured message object - * @param {string} [roomId] - room's ID to send message content to - * @returns {Object} + * Structure message content, optionally addressing to room ID. + * Accepts message text string or a structured message object. */ function prepareMessage(content, roomId) { const message = new message_1.Message(content, exports.integrationId); @@ -578,24 +472,17 @@ function prepareMessage(content, roomId) { } exports.prepareMessage = prepareMessage; /** - * @memberof module:driver - * @instance - * @description Send a prepared message object (with a pre-defined room ID). - * Usually prepared and called by `sendMessageByRoomId` or `sendMessageByRoom`. - * @param {Object} message - structured message object - * @returns {Promise} + * Send a prepared message object (with pre-defined room ID). + * Usually prepared and called by sendMessageByRoomId or sendMessageByRoom. */ function sendMessage(message) { return asyncCall('sendMessage', message); } exports.sendMessage = sendMessage; /** - * @memberof module:driver - * @instance - * @description Prepare and send string(s) to the specified room ID - * @param {string|string[]} content - message text string or array of strings - * @param {string} roomId - ID of the target room to use in send - * @returns {Promise|Promise[]} + * Prepare and send string/s to specified room ID. + * @param content Accepts message text string or array of strings. + * @param roomId ID of the target room to use in send. * @todo Returning one or many gets complicated with type checking not allowing * use of a property because result may be array, when you know it's not. * Solution would probably be to always return an array, even for single @@ -613,12 +500,9 @@ function sendToRoomId(content, roomId) { } exports.sendToRoomId = sendToRoomId; /** - * @memberof module:driver - * @instance - * @description Prepare and send string(s) to the specified room name (or ID). - * @param {string|string[]} content - message text string or array of strings - * @param {string} room - name or ID of the target room to use in send - * @returns {Promise} + * Prepare and send string/s to specified room name (or ID). + * @param content Accepts message text string or array of strings. + * @param room A name (or ID) to resolve as ID to use in send. */ function sendToRoom(content, room) { return getRoomId(room) @@ -626,13 +510,9 @@ function sendToRoom(content, room) { } exports.sendToRoom = sendToRoom; /** - * @memberof module:driver - * @instance - * @description Prepare and send string(s) to a user in a DM - * @param {string|string[]} content - message text string or array of strings - * @param {string} username - name or ID of the target room to use in send. - * Creates DM room if it does not exist - * @returns {Promise} + * Prepare and send string/s to a user in a DM. + * @param content Accepts message text string or array of strings. + * @param username Name to create (or get) DM for room ID to use in send. */ function sendDirectToUser(content, username) { return getDirectMessageRoomId(username) @@ -640,24 +520,17 @@ function sendDirectToUser(content, username) { } exports.sendDirectToUser = sendDirectToUser; /** - * @memberof module:driver - * @instance - * @description Edit an existing message, replacing any attributes with the provided ones - * @param {Object} message - structured message object. + * Edit an existing message, replacing any attributes with those provided. * The given message object should have the ID of an existing message. - * @returns {Object} */ function editMessage(message) { return asyncCall('updateMessage', message); } exports.editMessage = editMessage; /** - * @memberof module:driver - * @instance - * @description Send a reaction to an existing message. Simple proxy for method call. - * @param {string} emoji - reaction emoji to add. For example, `:thumbsup:` to add 👍. - * @param {string} messageId - ID of the previously sent message - * @returns {Object} + * Send a reaction to an existing message. Simple proxy for method call. + * @param emoji Accepts string like `:thumbsup:` to add 👍 reaction + * @param messageId ID for a previously sent message */ function setReaction(emoji, messageId) { return asyncCall('setReaction', [emoji, messageId]); diff --git a/dist/lib/driver.js.map b/dist/lib/driver.js.map index 738d03c..319baf8 100644 --- a/dist/lib/driver.js.map +++ b/dist/lib/driver.js.map @@ -1 +1 @@ -{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/lib/driver.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from 'events'\nimport Asteroid from 'asteroid'\nimport * as settings from './settings'\nimport * as methodCache from './methodCache'\nimport { Message } from './message'\nimport {\n IConnectOptions,\n IRespondOptions,\n ICallback,\n ILogger\n} from '../config/driverInterfaces'\nimport {\n IAsteroid,\n ICredentials,\n ISubscription,\n ICollection\n} from '../config/asteroidInterfaces'\nimport { IMessage } from '../config/messageInterfaces'\nimport { logger, replaceLog } from './log'\nimport { IMessageReceiptAPI } from '../utils/interfaces'\n\n/** Collection names */\nconst _messageCollectionName = 'stream-room-messages'\nconst _messageStreamName = '__my_messages__'\n\n// CONNECTION SETUP AND CONFIGURE\n// -----------------------------------------------------------------------------\n\n/** Internal for comparing message update timestamps */\nexport let lastReadTime: Date\n\n/**\n * The integration property is applied as an ID on sent messages `bot.i` param\n * Should be replaced when connection is invoked by a package using the SDK\n * e.g. The Hubot adapter would pass its integration ID with credentials, like:\n */\nexport const integrationId = settings.integrationId\n\n/**\n * Event Emitter for listening to connection.\n * @example\n * import { driver } from '@rocket.chat/sdk'\n * driver.connect()\n * driver.events.on('connected', () => console.log('driver connected'))\n */\nexport const events = new EventEmitter()\n\n/**\n * An Asteroid instance for interacting with Rocket.Chat.\n * Variable not initialised until `connect` called.\n */\nexport let asteroid: IAsteroid\n\n/**\n * Asteroid subscriptions, exported for direct polling by adapters\n * Variable not initialised until `prepMeteorSubscriptions` called.\n */\nexport let subscriptions: ISubscription[] = []\n\n/**\n * Current user object populated from resolved login\n */\nexport let userId: string\n\n/**\n * Array of joined room IDs (for reactive queries)\n */\nexport let joinedIds: string[] = []\n\n/**\n * Array of messages received from reactive collection\n */\nexport let messages: ICollection\n\n/**\n * Allow override of default logging with adapter's log instance\n */\nexport function useLog (externalLog: ILogger) {\n replaceLog(externalLog)\n}\n\n/**\n * Initialise asteroid instance with given options or defaults.\n * Returns promise, resolved with Asteroid instance. Callback follows\n * error-first-pattern. Error returned or promise rejected on timeout.\n * Removes http/s protocol to get connection hostname if taken from URL.\n * @example Use with callback\n * import { driver } from '@rocket.chat/sdk'\n * driver.connect({}, (err) => {\n * if (err) throw err\n * else console.log('connected')\n * })\n * @example Using promise\n * import { driver } from '@rocket.chat/sdk'\n * driver.connect()\n * .then(() => console.log('connected'))\n * .catch((err) => console.error(err))\n */\nexport function connect (\n options: IConnectOptions = {},\n callback?: ICallback\n): Promise {\n return new Promise((resolve, reject) => {\n const config = Object.assign({}, settings, options) // override defaults\n config.host = config.host.replace(/(^\\w+:|^)\\/\\//, '')\n logger.info('[connect] Connecting', config)\n asteroid = new Asteroid(config.host, config.useSsl)\n\n setupMethodCache(asteroid) // init instance for later caching method calls\n asteroid.on('connected', () => {\n asteroid.resumeLoginPromise.catch(function () {\n // pass\n })\n events.emit('connected')\n })\n asteroid.on('reconnected', () => events.emit('reconnected'))\n let cancelled = false\n const rejectionTimeout = setTimeout(function () {\n logger.info(`[connect] Timeout (${config.timeout})`)\n const err = new Error('Asteroid connection timeout')\n cancelled = true\n events.removeAllListeners('connected')\n callback ? callback(err, asteroid) : reject(err)\n }, config.timeout)\n\n // if to avoid condition where timeout happens before listener to 'connected' is added\n // and this listener is not removed (because it was added after the removal)\n if (!cancelled) {\n events.once('connected', () => {\n logger.info('[connect] Connected')\n // if (cancelled) return asteroid.ddp.disconnect() // cancel if already rejected\n clearTimeout(rejectionTimeout)\n if (callback) callback(null, asteroid)\n resolve(asteroid)\n })\n }\n })\n}\n\n/** Remove all active subscriptions, logout and disconnect from Rocket.Chat */\nexport function disconnect (): Promise {\n logger.info('Unsubscribing, logging out, disconnecting')\n unsubscribeAll()\n return logout()\n .then(() => Promise.resolve())\n}\n\n// ASYNC AND CACHE METHOD UTILS\n// -----------------------------------------------------------------------------\n\n/**\n * Setup method cache configs from env or defaults, before they are called.\n * @param asteroid The asteroid instance to cache method calls\n */\nfunction setupMethodCache (asteroid: IAsteroid): void {\n methodCache.use(asteroid)\n methodCache.create('getRoomIdByNameOrId', {\n max: settings.roomCacheMaxSize,\n maxAge: settings.roomCacheMaxAge\n }),\n methodCache.create('getRoomNameById', {\n max: settings.roomCacheMaxSize,\n maxAge: settings.roomCacheMaxAge\n })\n methodCache.create('createDirectMessage', {\n max: settings.dmCacheMaxSize,\n maxAge: settings.dmCacheMaxAge\n })\n}\n\n/**\n * Wraps method calls to ensure they return a Promise with caught exceptions.\n * @param method The Rocket.Chat server method, to call through Asteroid\n * @param params Single or array of parameters of the method to call\n */\nexport function asyncCall (method: string, params: any | any[]): Promise {\n if (!Array.isArray(params)) params = [params] // cast to array for apply\n logger.info(`[${method}] Calling (async): ${JSON.stringify(params)}`)\n return Promise.resolve(asteroid.apply(method, params).result)\n .catch((err: Error) => {\n logger.error(`[${method}] Error:`, err)\n throw err // throw after log to stop async chain\n })\n .then((result: any) => {\n (result)\n ? logger.debug(`[${method}] Success: ${JSON.stringify(result)}`)\n : logger.debug(`[${method}] Success`)\n return result\n })\n}\n\n/**\n * Call a method as async via Asteroid, or through cache if one is created.\n * If the method doesn't have or need parameters, it can't use them for caching\n * so it will always call asynchronously.\n * @param name The Rocket.Chat server method to call\n * @param params Single or array of parameters of the method to call\n */\nexport function callMethod (name: string, params?: any | any[]): Promise {\n return (methodCache.has(name) || typeof params === 'undefined')\n ? asyncCall(name, params)\n : cacheCall(name, params)\n}\n\n/**\n * Wraps Asteroid method calls, passed through method cache if cache is valid.\n * @param method The Rocket.Chat server method, to call through Asteroid\n * @param key Single string parameters only, required to use as cache key\n */\nexport function cacheCall (method: string, key: string): Promise {\n return methodCache.call(method, key)\n .catch((err: Error) => {\n logger.error(`[${method}] Error:`, err)\n throw err // throw after log to stop async chain\n })\n .then((result: any) => {\n (result)\n ? logger.debug(`[${method}] Success: ${JSON.stringify(result)}`)\n : logger.debug(`[${method}] Success`)\n return result\n })\n}\n\n// LOGIN AND SUBSCRIBE TO ROOMS\n// -----------------------------------------------------------------------------\n\n/** Login to Rocket.Chat via Asteroid */\nexport function login (credentials: ICredentials = {\n username: settings.username,\n password: settings.password,\n ldap: settings.ldap\n}): Promise {\n let login: Promise\n // if (credentials.ldap) {\n // logger.info(`[login] Logging in ${credentials.username} with LDAP`)\n // login = asteroid.loginWithLDAP(\n // credentials.email || credentials.username,\n // credentials.password,\n // { ldap: true, ldapOptions: credentials.ldapOptions || {} }\n // )\n // } else {\n logger.info(`[login] Logging in ${credentials.username}`)\n login = asteroid.loginWithPassword(\n credentials.email || credentials.username!,\n credentials.password\n )\n // }\n return login\n .then((loggedInUserId) => {\n userId = loggedInUserId\n return loggedInUserId\n })\n .catch((err: Error) => {\n logger.info('[login] Error:', err)\n throw err // throw after log to stop async chain\n })\n}\n\n/** Logout of Rocket.Chat via Asteroid */\nexport function logout (): Promise {\n return asteroid.logout()\n .catch((err: Error) => {\n logger.error('[Logout] Error:', err)\n throw err // throw after log to stop async chain\n })\n}\n\n/**\n * Subscribe to Meteor subscription\n * Resolves with subscription (added to array), with ID property\n * @todo - 3rd param of asteroid.subscribe is deprecated in Rocket.Chat?\n */\nexport function subscribe (\n topic: string,\n roomId: string\n): Promise {\n return new Promise((resolve, reject) => {\n logger.info(`[subscribe] Preparing subscription: ${topic}: ${roomId}`)\n const subscription = asteroid.subscribe(topic, roomId, true)\n subscriptions.push(subscription)\n return subscription.ready\n .then((id) => {\n logger.info(`[subscribe] Stream ready: ${id}`)\n resolve(subscription)\n })\n })\n}\n\n/** Unsubscribe from Meteor subscription */\nexport function unsubscribe (subscription: ISubscription): void {\n const index = subscriptions.indexOf(subscription)\n if (index === -1) return\n subscription.stop()\n // asteroid.unsubscribe(subscription.id) // v2\n subscriptions.splice(index, 1) // remove from collection\n logger.info(`[${subscription.id}] Unsubscribed`)\n}\n\n/** Unsubscribe from all subscriptions in collection */\nexport function unsubscribeAll (): void {\n subscriptions.map((s: ISubscription) => unsubscribe(s))\n}\n\n/**\n * Begin subscription to room events for user.\n * Older adapters used an option for this method but it was always the default.\n */\nexport function subscribeToMessages (): Promise {\n return subscribe(_messageCollectionName, _messageStreamName)\n .then((subscription) => {\n messages = asteroid.getCollection(_messageCollectionName)\n return subscription\n })\n}\n\n/**\n * Once a subscription is created, using `subscribeToMessages` this method\n * can be used to attach a callback to changes in the message stream.\n * This can be called directly for custom extensions, but for most usage (e.g.\n * for bots) the respondToMessages is more useful to only receive messages\n * matching configuration.\n *\n * If the bot hasn't been joined to any rooms at this point, it will attempt to\n * join now based on environment config, otherwise it might not receive any\n * messages. It doesn't matter that this happens asynchronously because the\n * bot's joined rooms can change after the reactive query is set up.\n *\n * @todo `reactToMessages` should call `subscribeToMessages` if not already\n * done, so it's not required as an arbitrary step for simpler adapters.\n * Also make `login` call `connect` for the same reason, the way\n * `respondToMessages` calls `respondToMessages`, so all that's really\n * required is:\n * `driver.login(credentials).then(() => driver.respondToMessages(callback))`\n * @param callback Function called with every change in subscriptions.\n * - Uses error-first callback pattern\n * - Second argument is the changed item\n * - Third argument is additional attributes, such as `roomType`\n */\nexport function reactToMessages (callback: ICallback): void {\n logger.info(`[reactive] Listening for change events in collection ${messages.name}`)\n\n messages.reactiveQuery({}).on('change', (_id: string) => {\n const changedMessageQuery = messages.reactiveQuery({ _id })\n if (changedMessageQuery.result && changedMessageQuery.result.length > 0) {\n const changedMessage = changedMessageQuery.result[0]\n if (Array.isArray(changedMessage.args)) {\n logger.info(`[received] Message in room ${ changedMessage.args[0].rid }`)\n callback(null, changedMessage.args[0], changedMessage.args[1])\n } else {\n logger.debug('[received] Update without message args')\n }\n } else {\n logger.debug('[received] Reactive query at ID ${ _id } without results')\n }\n })\n}\n\n/**\n * Proxy for `reactToMessages` with some filtering of messages based on config.\n *\n * @param callback Function called after filters run on subscription events.\n * - Uses error-first callback pattern\n * - Second argument is the changed item\n * - Third argument is additional attributes, such as `roomType`\n * @param options Sets filters for different event/message types.\n */\nexport function respondToMessages (\n callback: ICallback,\n options: IRespondOptions = {}\n): Promise {\n const config = Object.assign({}, settings, options)\n // return value, may be replaced by async ops\n let promise: Promise = Promise.resolve()\n\n // Join configured rooms if they haven't been already, unless listening to all\n // public rooms, in which case it doesn't matter\n if (\n !config.allPublic &&\n joinedIds.length === 0 &&\n config.rooms &&\n config.rooms.length > 0\n ) {\n promise = joinRooms(config.rooms)\n .catch((err) => {\n logger.error(`[joinRooms] Failed to join configured rooms (${config.rooms.join(', ')}): ${err.message}`)\n })\n }\n\n lastReadTime = new Date() // init before any message read\n reactToMessages(async (err, message, meta) => {\n if (err) {\n logger.error(`[received] Unable to receive: ${err.message}`)\n callback(err) // bubble errors back to adapter\n }\n\n // Ignore bot's own messages\n if (message.u._id === userId) return\n\n // Ignore DMs unless configured not to\n const isDM = meta.roomType === 'd'\n if (isDM && !config.dm) return\n\n // Ignore Livechat unless configured not to\n const isLC = meta.roomType === 'l'\n if (isLC && !config.livechat) return\n\n // Ignore messages in un-joined public rooms unless configured not to\n if (!config.allPublic && !isDM && !meta.roomParticipant) return\n\n // Set current time for comparison to incoming\n let currentReadTime = new Date(message.ts.$date)\n\n // Ignore edited messages if configured to\n if (!config.edited && message.editedAt) return\n\n // Set read time as time of edit, if message is edited\n if (message.editedAt) currentReadTime = new Date(message.editedAt.$date)\n\n // Ignore messages in stream that aren't new\n if (currentReadTime <= lastReadTime) return\n\n // At this point, message has passed checks and can be responded to\n logger.info(`[received] Message ${message._id} from ${message.u.username}`)\n lastReadTime = currentReadTime\n\n // Processing completed, call callback to respond to message\n callback(null, message, meta)\n })\n return promise\n}\n\n// PREPARE AND SEND MESSAGES\n// -----------------------------------------------------------------------------\n\n/** Get ID for a room by name (or ID). */\nexport function getRoomId (name: string): Promise {\n return cacheCall('getRoomIdByNameOrId', name)\n}\n\n/** Get name for a room by ID. */\nexport function getRoomName (id: string): Promise {\n return cacheCall('getRoomNameById', id)\n}\n\n/**\n * Get ID for a DM room by its recipient's name.\n * Will create a DM (with the bot) if it doesn't exist already.\n * @todo test why create resolves with object instead of simply ID\n */\nexport function getDirectMessageRoomId (username: string): Promise {\n return cacheCall('createDirectMessage', username)\n .then((DM) => DM.rid)\n}\n\n/** Join the bot into a room by its name or ID */\nexport async function joinRoom (room: string): Promise {\n let roomId = await getRoomId(room)\n let joinedIndex = joinedIds.indexOf(room)\n if (joinedIndex !== -1) {\n logger.error(`[joinRoom] room was already joined`)\n } else {\n await asyncCall('joinRoom', roomId)\n joinedIds.push(roomId)\n }\n}\n\n/** Exit a room the bot has joined */\nexport async function leaveRoom (room: string): Promise {\n let roomId = await getRoomId(room)\n let joinedIndex = joinedIds.indexOf(room)\n if (joinedIndex === -1) {\n logger.error(`[leaveRoom] failed because bot has not joined ${room}`)\n } else {\n await asyncCall('leaveRoom', roomId)\n delete joinedIds[joinedIndex]\n }\n}\n\n/** Join a set of rooms by array of names or IDs */\nexport function joinRooms (rooms: string[]): Promise {\n return Promise.all(rooms.map((room) => joinRoom(room)))\n}\n\n/**\n * Structure message content, optionally addressing to room ID.\n * Accepts message text string or a structured message object.\n */\nexport function prepareMessage (\n content: string | IMessage,\n roomId?: string\n): Message {\n const message = new Message(content, integrationId)\n if (roomId) message.setRoomId(roomId)\n return message\n}\n\n/**\n * Send a prepared message object (with pre-defined room ID).\n * Usually prepared and called by sendMessageByRoomId or sendMessageByRoom.\n */\nexport function sendMessage (message: IMessage): Promise {\n return asyncCall('sendMessage', message)\n}\n\n/**\n * Prepare and send string/s to specified room ID.\n * @param content Accepts message text string or array of strings.\n * @param roomId ID of the target room to use in send.\n * @todo Returning one or many gets complicated with type checking not allowing\n * use of a property because result may be array, when you know it's not.\n * Solution would probably be to always return an array, even for single\n * send. This would be a breaking change, should hold until major version.\n */\nexport function sendToRoomId (\n content: string | string[] | IMessage,\n roomId: string\n): Promise {\n if (!Array.isArray(content)) {\n return sendMessage(prepareMessage(content, roomId))\n } else {\n return Promise.all(content.map((text) => {\n return sendMessage(prepareMessage(text, roomId))\n }))\n }\n}\n\n/**\n * Prepare and send string/s to specified room name (or ID).\n * @param content Accepts message text string or array of strings.\n * @param room A name (or ID) to resolve as ID to use in send.\n */\nexport function sendToRoom (\n content: string | string[] | IMessage,\n room: string\n): Promise {\n return getRoomId(room)\n .then((roomId) => sendToRoomId(content, roomId))\n}\n\n/**\n * Prepare and send string/s to a user in a DM.\n * @param content Accepts message text string or array of strings.\n * @param username Name to create (or get) DM for room ID to use in send.\n */\nexport function sendDirectToUser (\n content: string | string[] | IMessage,\n username: string\n): Promise {\n return getDirectMessageRoomId(username)\n .then((rid) => sendToRoomId(content, rid))\n}\n\n/**\n * Edit an existing message, replacing any attributes with those provided.\n * The given message object should have the ID of an existing message.\n */\nexport function editMessage (message: IMessage): Promise {\n return asyncCall('updateMessage', message)\n}\n\n/**\n * Send a reaction to an existing message. Simple proxy for method call.\n * @param emoji Accepts string like `:thumbsup:` to add 👍 reaction\n * @param messageId ID for a previously sent message\n */\nexport function setReaction (emoji: string, messageId: string) {\n return asyncCall('setReaction', [emoji, messageId])\n}\n"]} \ No newline at end of file +{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/lib/driver.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from 'events'\nimport Asteroid from 'asteroid'\nimport * as settings from './settings'\nimport * as methodCache from './methodCache'\nimport { Message } from './message'\nimport {\n IConnectOptions,\n IRespondOptions,\n ICallback,\n ILogger\n} from '../config/driverInterfaces'\nimport {\n IAsteroid,\n ICredentials,\n ISubscription,\n ICollection\n} from '../config/asteroidInterfaces'\nimport { IMessage } from '../config/messageInterfaces'\nimport { logger, replaceLog } from './log'\nimport { IMessageReceiptAPI } from '../utils/interfaces'\n\n/** Collection names */\nconst _messageCollectionName = 'stream-room-messages'\nconst _messageStreamName = '__my_messages__'\n\n// CONNECTION SETUP AND CONFIGURE\n// -----------------------------------------------------------------------------\n\n/** Internal for comparing message update timestamps */\nexport let lastReadTime: Date\n\n/**\n * The integration property is applied as an ID on sent messages `bot.i` param\n * Should be replaced when connection is invoked by a package using the SDK\n * e.g. The Hubot adapter would pass its integration ID with credentials, like:\n */\nexport const integrationId = settings.integrationId\n\n/**\n * Event Emitter for listening to connection.\n * @example\n * import { driver } from '@rocket.chat/sdk'\n * driver.connect()\n * driver.events.on('connected', () => console.log('driver connected'))\n */\nexport const events = new EventEmitter()\n\n/**\n * An Asteroid instance for interacting with Rocket.Chat.\n * Variable not initialised until `connect` called.\n */\nexport let asteroid: IAsteroid\n\n/**\n * Asteroid subscriptions, exported for direct polling by adapters\n * Variable not initialised until `prepMeteorSubscriptions` called.\n */\nexport let subscriptions: ISubscription[] = []\n\n/**\n * Current user object populated from resolved login\n */\nexport let userId: string\n\n/**\n * Array of joined room IDs (for reactive queries)\n */\nexport let joinedIds: string[] = []\n\n/**\n * Array of messages received from reactive collection\n */\nexport let messages: ICollection\n\n/**\n * Allow override of default logging with adapter's log instance\n */\nexport function useLog (externalLog: ILogger) {\n replaceLog(externalLog)\n}\n\n/**\n * Initialise asteroid instance with given options or defaults.\n * Returns promise, resolved with Asteroid instance. Callback follows\n * error-first-pattern. Error returned or promise rejected on timeout.\n * Removes http/s protocol to get connection hostname if taken from URL.\n * @example Use with callback\n * import { driver } from '@rocket.chat/sdk'\n * driver.connect({}, (err) => {\n * if (err) throw err\n * else console.log('connected')\n * })\n * @example Using promise\n * import { driver } from '@rocket.chat/sdk'\n * driver.connect()\n * .then(() => console.log('connected'))\n * .catch((err) => console.error(err))\n */\nexport function connect (\n options: IConnectOptions = {},\n callback?: ICallback\n): Promise {\n return new Promise((resolve, reject) => {\n const config = Object.assign({}, settings, options) // override defaults\n config.host = config.host.replace(/(^\\w+:|^)\\/\\//, '')\n logger.info('[connect] Connecting', config)\n asteroid = new Asteroid(config.host, config.useSsl)\n\n setupMethodCache(asteroid) // init instance for later caching method calls\n asteroid.on('connected', () => {\n asteroid.resumeLoginPromise.catch(function () {\n // pass\n })\n events.emit('connected')\n })\n asteroid.on('reconnected', () => events.emit('reconnected'))\n let cancelled = false\n const rejectionTimeout = setTimeout(function () {\n logger.info(`[connect] Timeout (${config.timeout})`)\n const err = new Error('Asteroid connection timeout')\n cancelled = true\n events.removeAllListeners('connected')\n callback ? callback(err, asteroid) : reject(err)\n }, config.timeout)\n\n // if to avoid condition where timeout happens before listener to 'connected' is added\n // and this listener is not removed (because it was added after the removal)\n if (!cancelled) {\n events.once('connected', () => {\n logger.info('[connect] Connected')\n // if (cancelled) return asteroid.ddp.disconnect() // cancel if already rejected\n clearTimeout(rejectionTimeout)\n if (callback) callback(null, asteroid)\n resolve(asteroid)\n })\n }\n })\n}\n\n/** Remove all active subscriptions, logout and disconnect from Rocket.Chat */\nexport function disconnect (): Promise {\n logger.info('Unsubscribing, logging out, disconnecting')\n unsubscribeAll()\n return logout()\n .then(() => Promise.resolve())\n}\n\n// ASYNC AND CACHE METHOD UTILS\n// -----------------------------------------------------------------------------\n\n/**\n * Setup method cache configs from env or defaults, before they are called.\n * @param asteroid The asteroid instance to cache method calls\n */\nfunction setupMethodCache (asteroid: IAsteroid): void {\n methodCache.use(asteroid)\n methodCache.create('getRoomIdByNameOrId', {\n max: settings.roomCacheMaxSize,\n maxAge: settings.roomCacheMaxAge\n }),\n methodCache.create('getRoomNameById', {\n max: settings.roomCacheMaxSize,\n maxAge: settings.roomCacheMaxAge\n })\n methodCache.create('createDirectMessage', {\n max: settings.dmCacheMaxSize,\n maxAge: settings.dmCacheMaxAge\n })\n}\n\n/**\n * Wraps method calls to ensure they return a Promise with caught exceptions.\n * @param method The Rocket.Chat server method, to call through Asteroid\n * @param params Single or array of parameters of the method to call\n */\nexport function asyncCall (method: string, params: any | any[]): Promise {\n if (!Array.isArray(params)) params = [params] // cast to array for apply\n logger.info(`[${method}] Calling (async): ${JSON.stringify(params)}`)\n return Promise.resolve(asteroid.apply(method, params).result)\n .catch((err: Error) => {\n logger.error(`[${method}] Error:`, err)\n throw err // throw after log to stop async chain\n })\n .then((result: any) => {\n (result)\n ? logger.debug(`[${method}] Success: ${JSON.stringify(result)}`)\n : logger.debug(`[${method}] Success`)\n return result\n })\n}\n\n/**\n * Call a method as async via Asteroid, or through cache if one is created.\n * If the method doesn't have or need parameters, it can't use them for caching\n * so it will always call asynchronously.\n * @param name The Rocket.Chat server method to call\n * @param params Single or array of parameters of the method to call\n */\nexport function callMethod (name: string, params?: any | any[]): Promise {\n return (methodCache.has(name) || typeof params === 'undefined')\n ? asyncCall(name, params)\n : cacheCall(name, params)\n}\n\n/**\n * Wraps Asteroid method calls, passed through method cache if cache is valid.\n * @param method The Rocket.Chat server method, to call through Asteroid\n * @param key Single string parameters only, required to use as cache key\n */\nexport function cacheCall (method: string, key: string): Promise {\n return methodCache.call(method, key)\n .catch((err: Error) => {\n logger.error(`[${method}] Error:`, err)\n throw err // throw after log to stop async chain\n })\n .then((result: any) => {\n (result)\n ? logger.debug(`[${method}] Success: ${JSON.stringify(result)}`)\n : logger.debug(`[${method}] Success`)\n return result\n })\n}\n\n// LOGIN AND SUBSCRIBE TO ROOMS\n// -----------------------------------------------------------------------------\n\n/** Login to Rocket.Chat via Asteroid */\nexport function login (credentials: ICredentials = {\n username: settings.username,\n password: settings.password,\n ldap: settings.ldap\n}): Promise {\n let login: Promise\n // if (credentials.ldap) {\n // logger.info(`[login] Logging in ${credentials.username} with LDAP`)\n // login = asteroid.loginWithLDAP(\n // credentials.email || credentials.username,\n // credentials.password,\n // { ldap: true, ldapOptions: credentials.ldapOptions || {} }\n // )\n // } else {\n logger.info(`[login] Logging in ${credentials.username}`)\n login = asteroid.loginWithPassword(\n credentials.email || credentials.username!,\n credentials.password\n )\n // }\n return login\n .then((loggedInUserId) => {\n userId = loggedInUserId\n return loggedInUserId\n })\n .catch((err: Error) => {\n logger.info('[login] Error:', err)\n throw err // throw after log to stop async chain\n })\n}\n\n/** Logout of Rocket.Chat via Asteroid */\nexport function logout (): Promise {\n return asteroid.logout()\n .catch((err: Error) => {\n logger.error('[Logout] Error:', err)\n throw err // throw after log to stop async chain\n })\n}\n\n/**\n * Subscribe to Meteor subscription\n * Resolves with subscription (added to array), with ID property\n * @todo - 3rd param of asteroid.subscribe is deprecated in Rocket.Chat?\n */\nexport function subscribe (\n topic: string,\n roomId: string\n): Promise {\n return new Promise((resolve, reject) => {\n logger.info(`[subscribe] Preparing subscription: ${topic}: ${roomId}`)\n const subscription = asteroid.subscribe(topic, roomId, true)\n subscriptions.push(subscription)\n return subscription.ready\n .then((id) => {\n logger.info(`[subscribe] Stream ready: ${id}`)\n resolve(subscription)\n })\n })\n}\n\n/** Unsubscribe from Meteor subscription */\nexport function unsubscribe (subscription: ISubscription): void {\n const index = subscriptions.indexOf(subscription)\n if (index === -1) return\n subscription.stop()\n // asteroid.unsubscribe(subscription.id) // v2\n subscriptions.splice(index, 1) // remove from collection\n logger.info(`[${subscription.id}] Unsubscribed`)\n}\n\n/** Unsubscribe from all subscriptions in collection */\nexport function unsubscribeAll (): void {\n subscriptions.map((s: ISubscription) => unsubscribe(s))\n}\n\n/**\n * Begin subscription to room events for user.\n * Older adapters used an option for this method but it was always the default.\n */\nexport function subscribeToMessages (): Promise {\n return subscribe(_messageCollectionName, _messageStreamName)\n .then((subscription) => {\n messages = asteroid.getCollection(_messageCollectionName)\n return subscription\n })\n}\n\n/**\n * Once a subscription is created, using `subscribeToMessages` this method\n * can be used to attach a callback to changes in the message stream.\n * This can be called directly for custom extensions, but for most usage (e.g.\n * for bots) the respondToMessages is more useful to only receive messages\n * matching configuration.\n *\n * If the bot hasn't been joined to any rooms at this point, it will attempt to\n * join now based on environment config, otherwise it might not receive any\n * messages. It doesn't matter that this happens asynchronously because the\n * bot's joined rooms can change after the reactive query is set up.\n *\n * @todo `reactToMessages` should call `subscribeToMessages` if not already\n * done, so it's not required as an arbitrary step for simpler adapters.\n * Also make `login` call `connect` for the same reason, the way\n * `respondToMessages` calls `respondToMessages`, so all that's really\n * required is:\n * `driver.login(credentials).then(() => driver.respondToMessages(callback))`\n * @param callback Function called with every change in subscriptions.\n * - Uses error-first callback pattern\n * - Second argument is the changed item\n * - Third argument is additional attributes, such as `roomType`\n */\nexport function reactToMessages (callback: ICallback): void {\n logger.info(`[reactive] Listening for change events in collection ${messages.name}`)\n\n messages.reactiveQuery({}).on('change', (_id: string) => {\n const changedMessageQuery = messages.reactiveQuery({ _id })\n if (changedMessageQuery.result && changedMessageQuery.result.length > 0) {\n const changedMessage = changedMessageQuery.result[0]\n if (Array.isArray(changedMessage.args)) {\n logger.info(`[received] Message in room ${ changedMessage.args[0].rid }`)\n callback(null, changedMessage.args[0], changedMessage.args[1])\n } else {\n logger.debug('[received] Update without message args')\n }\n } else {\n logger.debug('[received] Reactive query at ID ${ _id } without results')\n }\n })\n}\n\n/**\n * Proxy for `reactToMessages` with some filtering of messages based on config.\n *\n * @param callback Function called after filters run on subscription events.\n * - Uses error-first callback pattern\n * - Second argument is the changed item\n * - Third argument is additional attributes, such as `roomType`\n * @param options Sets filters for different event/message types.\n */\nexport function respondToMessages (\n callback: ICallback,\n options: IRespondOptions = {}\n): Promise {\n const config = Object.assign({}, settings, options)\n // return value, may be replaced by async ops\n let promise: Promise = Promise.resolve()\n\n // Join configured rooms if they haven't been already, unless listening to all\n // public rooms, in which case it doesn't matter\n if (\n !config.allPublic &&\n joinedIds.length === 0 &&\n config.rooms &&\n config.rooms.length > 0\n ) {\n promise = joinRooms(config.rooms)\n .catch((err) => {\n logger.error(`[joinRooms] Failed to join configured rooms (${config.rooms.join(', ')}): ${err.message}`)\n })\n }\n\n lastReadTime = new Date() // init before any message read\n reactToMessages(async (err, message, meta) => {\n if (err) {\n logger.error(`[received] Unable to receive: ${err.message}`)\n callback(err) // bubble errors back to adapter\n }\n\n if (Array.isArray(message)) message = message.shift()\n\n // Ignore bot's own messages\n if (message.u._id === userId) return\n\n // Ignore DMs unless configured not to\n const isDM = meta.roomType === 'd'\n if (isDM && !config.dm) return\n\n // Ignore Livechat unless configured not to\n const isLC = meta.roomType === 'l'\n if (isLC && !config.livechat) return\n\n // Ignore messages in un-joined public rooms unless configured not to\n if (!config.allPublic && !isDM && !meta.roomParticipant) return\n\n // Set current time for comparison to incoming\n let currentReadTime = new Date(message.ts.$date)\n\n // Ignore edited messages if configured to\n if (!config.edited && message.editedAt) return\n\n // Set read time as time of edit, if message is edited\n if (message.editedAt) currentReadTime = new Date(message.editedAt.$date)\n\n // Ignore messages in stream that aren't new\n if (currentReadTime <= lastReadTime) return\n\n // At this point, message has passed checks and can be responded to\n logger.info(`[received] Message ${message._id} from ${message.u.username}`)\n lastReadTime = currentReadTime\n\n // Processing completed, call callback to respond to message\n callback(null, message, meta)\n })\n return promise\n}\n\n// PREPARE AND SEND MESSAGES\n// -----------------------------------------------------------------------------\n\n/** Get ID for a room by name (or ID). */\nexport function getRoomId (name: string): Promise {\n return cacheCall('getRoomIdByNameOrId', name)\n}\n\n/** Get name for a room by ID. */\nexport function getRoomName (id: string): Promise {\n return cacheCall('getRoomNameById', id)\n}\n\n/**\n * Get ID for a DM room by its recipient's name.\n * Will create a DM (with the bot) if it doesn't exist already.\n * @todo test why create resolves with object instead of simply ID\n */\nexport function getDirectMessageRoomId (username: string): Promise {\n return cacheCall('createDirectMessage', username)\n .then((DM) => DM.rid)\n}\n\n/** Join the bot into a room by its name or ID */\nexport async function joinRoom (room: string): Promise {\n let roomId = await getRoomId(room)\n let joinedIndex = joinedIds.indexOf(room)\n if (joinedIndex !== -1) {\n logger.error(`[joinRoom] room was already joined`)\n } else {\n await asyncCall('joinRoom', roomId)\n joinedIds.push(roomId)\n }\n}\n\n/** Exit a room the bot has joined */\nexport async function leaveRoom (room: string): Promise {\n let roomId = await getRoomId(room)\n let joinedIndex = joinedIds.indexOf(room)\n if (joinedIndex === -1) {\n logger.error(`[leaveRoom] failed because bot has not joined ${room}`)\n } else {\n await asyncCall('leaveRoom', roomId)\n delete joinedIds[joinedIndex]\n }\n}\n\n/** Join a set of rooms by array of names or IDs */\nexport function joinRooms (rooms: string[]): Promise {\n return Promise.all(rooms.map((room) => joinRoom(room)))\n}\n\n/**\n * Structure message content, optionally addressing to room ID.\n * Accepts message text string or a structured message object.\n */\nexport function prepareMessage (\n content: string | IMessage,\n roomId?: string\n): Message {\n const message = new Message(content, integrationId)\n if (roomId) message.setRoomId(roomId)\n return message\n}\n\n/**\n * Send a prepared message object (with pre-defined room ID).\n * Usually prepared and called by sendMessageByRoomId or sendMessageByRoom.\n */\nexport function sendMessage (message: IMessage): Promise {\n return asyncCall('sendMessage', message)\n}\n\n/**\n * Prepare and send string/s to specified room ID.\n * @param content Accepts message text string or array of strings.\n * @param roomId ID of the target room to use in send.\n * @todo Returning one or many gets complicated with type checking not allowing\n * use of a property because result may be array, when you know it's not.\n * Solution would probably be to always return an array, even for single\n * send. This would be a breaking change, should hold until major version.\n */\nexport function sendToRoomId (\n content: string | string[] | IMessage,\n roomId: string\n): Promise {\n if (!Array.isArray(content)) {\n return sendMessage(prepareMessage(content, roomId))\n } else {\n return Promise.all(content.map((text) => {\n return sendMessage(prepareMessage(text, roomId))\n }))\n }\n}\n\n/**\n * Prepare and send string/s to specified room name (or ID).\n * @param content Accepts message text string or array of strings.\n * @param room A name (or ID) to resolve as ID to use in send.\n */\nexport function sendToRoom (\n content: string | string[] | IMessage,\n room: string\n): Promise {\n return getRoomId(room)\n .then((roomId) => sendToRoomId(content, roomId))\n}\n\n/**\n * Prepare and send string/s to a user in a DM.\n * @param content Accepts message text string or array of strings.\n * @param username Name to create (or get) DM for room ID to use in send.\n */\nexport function sendDirectToUser (\n content: string | string[] | IMessage,\n username: string\n): Promise {\n return getDirectMessageRoomId(username)\n .then((rid) => sendToRoomId(content, rid))\n}\n\n/**\n * Edit an existing message, replacing any attributes with those provided.\n * The given message object should have the ID of an existing message.\n */\nexport function editMessage (message: IMessage): Promise {\n return asyncCall('updateMessage', message)\n}\n\n/**\n * Send a reaction to an existing message. Simple proxy for method call.\n * @param emoji Accepts string like `:thumbsup:` to add 👍 reaction\n * @param messageId ID for a previously sent message\n */\nexport function setReaction (emoji: string, messageId: string) {\n return asyncCall('setReaction', [emoji, messageId])\n}\n"]} \ No newline at end of file diff --git a/dist/lib/log.js b/dist/lib/log.js index 2035214..4be0775 100644 --- a/dist/lib/log.js +++ b/dist/lib/log.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.silence = exports.replaceLog = exports.logger = void 0; /** Temp logging, should override form adapter's log */ class InternalLog { debug(...args) { diff --git a/dist/lib/log.js.map b/dist/lib/log.js.map index 6425a35..1b7e733 100644 --- a/dist/lib/log.js.map +++ b/dist/lib/log.js.map @@ -1 +1 @@ -{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/lib/log.ts"],"names":[],"mappings":";;AAEA,uDAAuD;AACvD;IACE,KAAK,CAAE,GAAG,IAAW;QACnB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,CAAE,GAAG,IAAW;QAClB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,CAAE,GAAG,IAAW;QACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IACvB,CAAC;IACD,IAAI,CAAE,GAAG,IAAW;QAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,KAAK,CAAE,GAAG,IAAW;QACnB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IACxB,CAAC;CACF;AAED,IAAI,MAAM,GAAY,IAAI,WAAW,EAAE,CAAA;AAiBrC,wBAAM;AAfR,oBAAqB,WAAoB;IACvC,iBAAA,MAAM,GAAG,WAAW,CAAA;AACtB,CAAC;AAcC,gCAAU;AAZZ;IACE,UAAU,CAAC;QACT,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;KAClB,CAAC,CAAA;AACJ,CAAC;AAKC,0BAAO","sourcesContent":["import { ILogger } from '../config/driverInterfaces'\n\n/** Temp logging, should override form adapter's log */\nclass InternalLog implements ILogger {\n debug (...args: any[]) {\n console.log(...args)\n }\n info (...args: any[]) {\n console.log(...args)\n }\n warning (...args: any[]) {\n console.warn(...args)\n }\n warn (...args: any[]) { // legacy method\n return this.warning(...args)\n }\n error (...args: any[]) {\n console.error(...args)\n }\n}\n\nlet logger: ILogger = new InternalLog()\n\nfunction replaceLog (externalLog: ILogger) {\n logger = externalLog\n}\n\nfunction silence () {\n replaceLog({\n debug: () => null,\n info: () => null,\n warn: () => null,\n warning: () => null,\n error: () => null\n })\n}\n\nexport {\n logger,\n replaceLog,\n silence\n}\n"]} \ No newline at end of file +{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/lib/log.ts"],"names":[],"mappings":";;;AAEA,uDAAuD;AACvD,MAAM,WAAW;IACf,KAAK,CAAE,GAAG,IAAW;QACnB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,CAAE,GAAG,IAAW;QAClB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,CAAE,GAAG,IAAW;QACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IACvB,CAAC;IACD,IAAI,CAAE,GAAG,IAAW;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,KAAK,CAAE,GAAG,IAAW;QACnB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IACxB,CAAC;CACF;AAED,IAAI,MAAM,GAAY,IAAI,WAAW,EAAE,CAAA;AAiBrC,wBAAM;AAfR,SAAS,UAAU,CAAE,WAAoB;IACvC,iBAAA,MAAM,GAAG,WAAW,CAAA;AACtB,CAAC;AAcC,gCAAU;AAZZ,SAAS,OAAO;IACd,UAAU,CAAC;QACT,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;QACjB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;KAClB,CAAC,CAAA;AACJ,CAAC;AAKC,0BAAO","sourcesContent":["import { ILogger } from '../config/driverInterfaces'\n\n/** Temp logging, should override form adapter's log */\nclass InternalLog implements ILogger {\n debug (...args: any[]) {\n console.log(...args)\n }\n info (...args: any[]) {\n console.log(...args)\n }\n warning (...args: any[]) {\n console.warn(...args)\n }\n warn (...args: any[]) { // legacy method\n return this.warning(...args)\n }\n error (...args: any[]) {\n console.error(...args)\n }\n}\n\nlet logger: ILogger = new InternalLog()\n\nfunction replaceLog (externalLog: ILogger) {\n logger = externalLog\n}\n\nfunction silence () {\n replaceLog({\n debug: () => null,\n info: () => null,\n warn: () => null,\n warning: () => null,\n error: () => null\n })\n}\n\nexport {\n logger,\n replaceLog,\n silence\n}\n"]} \ No newline at end of file diff --git a/dist/lib/message.js b/dist/lib/message.js index 1561fe1..2a48566 100644 --- a/dist/lib/message.js +++ b/dist/lib/message.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.Message = void 0; /** * Rocket.Chat message class. * Sets integration param to allow tracing source of automated sends. diff --git a/dist/lib/message.js.map b/dist/lib/message.js.map index a7f852a..c91d233 100644 --- a/dist/lib/message.js.map +++ b/dist/lib/message.js.map @@ -1 +1 @@ -{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/lib/message.ts"],"names":[],"mappings":";;AAMA;;;;;GAKG;AACH;IACE,YAAa,OAA0B,EAAE,aAAqB;QAC5D,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC;YAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;QACnD,IAAI;YAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,CAAA;IACjC,CAAC;IACD,SAAS,CAAE,MAAc;QACvB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAA;QACjB,MAAM,CAAC,IAAI,CAAA;IACb,CAAC;CACF;AAVD,0BAUC","sourcesContent":["import { IMessage } from '../config/messageInterfaces'\n\n// Message class declaration implicitly implements interface\n// https://github.com/Microsoft/TypeScript/issues/340\nexport interface Message extends IMessage {}\n\n/**\n * Rocket.Chat message class.\n * Sets integration param to allow tracing source of automated sends.\n * @param content Accepts message text or a preformed message object\n * @todo Potential for SDK usage that isn't bots, bot prop should be optional?\n */\nexport class Message {\n constructor (content: string | IMessage, integrationId: string) {\n if (typeof content === 'string') this.msg = content\n else Object.assign(this, content)\n this.bot = { i: integrationId }\n }\n setRoomId (roomId: string): Message {\n this.rid = roomId\n return this\n }\n}\n"]} \ No newline at end of file +{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/lib/message.ts"],"names":[],"mappings":";;;AAMA;;;;;GAKG;AACH,MAAa,OAAO;IAClB,YAAa,OAA0B,EAAE,aAAqB;QAC5D,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;;YAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,CAAA;IACjC,CAAC;IACD,SAAS,CAAE,MAAc;QACvB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAA;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAVD,0BAUC","sourcesContent":["import { IMessage } from '../config/messageInterfaces'\n\n// Message class declaration implicitly implements interface\n// https://github.com/Microsoft/TypeScript/issues/340\nexport interface Message extends IMessage {}\n\n/**\n * Rocket.Chat message class.\n * Sets integration param to allow tracing source of automated sends.\n * @param content Accepts message text or a preformed message object\n * @todo Potential for SDK usage that isn't bots, bot prop should be optional?\n */\nexport class Message {\n constructor (content: string | IMessage, integrationId: string) {\n if (typeof content === 'string') this.msg = content\n else Object.assign(this, content)\n this.bot = { i: integrationId }\n }\n setRoomId (roomId: string): Message {\n this.rid = roomId\n return this\n }\n}\n"]} \ No newline at end of file diff --git a/dist/lib/methodCache.d.ts b/dist/lib/methodCache.d.ts index 0dde4a2..790ec7c 100644 --- a/dist/lib/methodCache.d.ts +++ b/dist/lib/methodCache.d.ts @@ -1,4 +1,3 @@ -/// import LRU from 'lru-cache'; /** @TODO: Remove ! post-fix expression when TypeScript #9619 resolved */ export declare let instance: any; diff --git a/dist/lib/methodCache.js b/dist/lib/methodCache.js index 340a288..e6a566d 100644 --- a/dist/lib/methodCache.js +++ b/dist/lib/methodCache.js @@ -1,8 +1,9 @@ "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; -} +}; Object.defineProperty(exports, "__esModule", { value: true }); +exports.resetAll = exports.reset = exports.get = exports.has = exports.call = exports.create = exports.use = exports.defaults = exports.results = exports.instance = void 0; const lru_cache_1 = __importDefault(require("lru-cache")); const log_1 = require("./log"); exports.results = new Map(); diff --git a/dist/lib/methodCache.js.map b/dist/lib/methodCache.js.map index 3ec5fda..e50029b 100644 --- a/dist/lib/methodCache.js.map +++ b/dist/lib/methodCache.js.map @@ -1 +1 @@ -{"version":3,"file":"methodCache.js","sourceRoot":"","sources":["../../src/lib/methodCache.ts"],"names":[],"mappings":";;;;;AAAA,0DAA2B;AAC3B,+BAA8B;AAIjB,QAAA,OAAO,GAAwC,IAAI,GAAG,EAAE,CAAA;AACxD,QAAA,QAAQ,GAAgB;IACnC,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG,GAAG,IAAI;CACnB,CAAA;AAED;;;GAGG;AACH,aAAqB,aAAqB;IACxC,gBAAQ,GAAG,aAAa,CAAA;AAC1B,CAAC;AAFD,kBAEC;AAED;;;;;GAKG;AACH,gBAAwB,MAAc,EAAE,UAAuB,EAAE;IAC/D,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAQ,EAAE,OAAO,CAAC,CAAA;IAC1C,eAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,mBAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACrC,MAAM,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC5B,CAAC;AAJD,wBAIC;AAED;;;;GAIG;AACH,cAAsB,MAAc,EAAE,GAAW;IAC/C,EAAE,CAAC,CAAC,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,mBAAmB;IAC5D,MAAM,WAAW,GAAG,eAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;IACxC,IAAI,WAAW,CAAA;IAEf,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,YAAM,CAAC,KAAK,CAAC,IAAI,MAAM,uBAAuB,GAAG,EAAE,CAAC,CAAA;QACpD,0DAA0D;QAC1D,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,kDAAkD;QAClD,YAAM,CAAC,KAAK,CAAC,IAAI,MAAM,wBAAwB,GAAG,EAAE,CAAC,CAAA;QACrD,WAAW,GAAG,gBAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAA;QAC/C,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IACnC,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;AACrC,CAAC;AAhBD,oBAgBC;AAED;;;;GAIG;AACH,aAAqB,MAAc;IACjC,MAAM,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC5B,CAAC;AAFD,kBAEC;AAED;;;;GAIG;AACH,aAAqB,MAAc,EAAE,GAAW;IAC9C,EAAE,CAAC,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC/D,CAAC;AAFD,kBAEC;AAED;;;;GAIG;AACH,eAAuB,MAAc,EAAE,GAAY;IACjD,EAAE,CAAC,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,EAAE,CAAC,CAAC,GAAG,CAAC;YAAC,MAAM,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAI;YAAC,MAAM,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,KAAK,EAAE,CAAA;IAC1C,CAAC;AACH,CAAC;AALD,sBAKC;AAED;;GAEG;AACH;IACE,eAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;AAC3C,CAAC;AAFD,4BAEC","sourcesContent":["import LRU from 'lru-cache'\nimport { logger } from './log'\n\n/** @TODO: Remove ! post-fix expression when TypeScript #9619 resolved */\nexport let instance: any\nexport const results: Map> = new Map()\nexport const defaults: LRU.Options = {\n max: 100,\n maxAge: 300 * 1000\n}\n\n/**\n * Set the instance to call methods on, with cached results.\n * @param instanceToUse Instance of a class\n */\nexport function use (instanceToUse: object): void {\n instance = instanceToUse\n}\n\n/**\n * Setup a cache for a method call.\n * @param method Method name, for index of cached results\n * @param options.max Maximum size of cache\n * @param options.maxAge Maximum age of cache\n */\nexport function create (method: string, options: LRU.Options = {}): LRU.Cache | undefined {\n options = Object.assign(defaults, options)\n results.set(method, new LRU(options))\n return results.get(method)\n}\n\n/**\n * Get results of a prior method call or call and cache.\n * @param method Method name, to call on instance in use\n * @param key Key to pass to method call and save results against\n */\nexport function call (method: string, key: string): Promise {\n if (!results.has(method)) create(method) // create as needed\n const methodCache = results.get(method)!\n let callResults\n\n if (methodCache.has(key)) {\n logger.debug(`[${method}] Calling (cached): ${key}`)\n // return from cache if key has been used on method before\n callResults = methodCache.get(key)\n } else {\n // call and cache for next time, returning results\n logger.debug(`[${method}] Calling (caching): ${key}`)\n callResults = instance.call(method, key).result\n methodCache.set(key, callResults)\n }\n return Promise.resolve(callResults)\n}\n\n/**\n * Proxy for checking if method has been cached.\n * Cache may exist from manual creation, or prior call.\n * @param method Method name for cache to get\n */\nexport function has (method: string): boolean {\n return results.has(method)\n}\n\n/**\n * Get results of a prior method call.\n * @param method Method name for cache to get\n * @param key Key for method result set to return\n */\nexport function get (method: string, key: string): LRU.Cache | undefined {\n if (results.has(method)) return results.get(method)!.get(key)\n}\n\n/**\n * Reset a cached method call's results (all or only for given key).\n * @param method Method name for cache to clear\n * @param key Key for method result set to clear\n */\nexport function reset (method: string, key?: string): void {\n if (results.has(method)) {\n if (key) return results.get(method)!.del(key)\n else return results.get(method)!.reset()\n }\n}\n\n/**\n * Reset cached results for all methods.\n */\nexport function resetAll (): void {\n results.forEach((cache) => cache.reset())\n}\n"]} \ No newline at end of file +{"version":3,"file":"methodCache.js","sourceRoot":"","sources":["../../src/lib/methodCache.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA2B;AAC3B,+BAA8B;AAIjB,QAAA,OAAO,GAAwC,IAAI,GAAG,EAAE,CAAA;AACxD,QAAA,QAAQ,GAAgB;IACnC,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG,GAAG,IAAI;CACnB,CAAA;AAED;;;GAGG;AACH,SAAgB,GAAG,CAAE,aAAqB;IACxC,gBAAQ,GAAG,aAAa,CAAA;AAC1B,CAAC;AAFD,kBAEC;AAED;;;;;GAKG;AACH,SAAgB,MAAM,CAAE,MAAc,EAAE,UAAuB,EAAE;IAC/D,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAQ,EAAE,OAAO,CAAC,CAAA;IAC1C,eAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,mBAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACrC,OAAO,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC5B,CAAC;AAJD,wBAIC;AAED;;;;GAIG;AACH,SAAgB,IAAI,CAAE,MAAc,EAAE,GAAW;IAC/C,IAAI,CAAC,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,mBAAmB;IAC5D,MAAM,WAAW,GAAG,eAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;IACxC,IAAI,WAAW,CAAA;IAEf,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACxB,YAAM,CAAC,KAAK,CAAC,IAAI,MAAM,uBAAuB,GAAG,EAAE,CAAC,CAAA;QACpD,0DAA0D;QAC1D,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACnC;SAAM;QACL,kDAAkD;QAClD,YAAM,CAAC,KAAK,CAAC,IAAI,MAAM,wBAAwB,GAAG,EAAE,CAAC,CAAA;QACrD,WAAW,GAAG,gBAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAA;QAC/C,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;KAClC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;AACrC,CAAC;AAhBD,oBAgBC;AAED;;;;GAIG;AACH,SAAgB,GAAG,CAAE,MAAc;IACjC,OAAO,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC5B,CAAC;AAFD,kBAEC;AAED;;;;GAIG;AACH,SAAgB,GAAG,CAAE,MAAc,EAAE,GAAW;IAC9C,IAAI,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,eAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC/D,CAAC;AAFD,kBAEC;AAED;;;;GAIG;AACH,SAAgB,KAAK,CAAE,MAAc,EAAE,GAAY;IACjD,IAAI,eAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACvB,IAAI,GAAG;YAAE,OAAO,eAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;;YACxC,OAAO,eAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,KAAK,EAAE,CAAA;KACzC;AACH,CAAC;AALD,sBAKC;AAED;;GAEG;AACH,SAAgB,QAAQ;IACtB,eAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;AAC3C,CAAC;AAFD,4BAEC","sourcesContent":["import LRU from 'lru-cache'\nimport { logger } from './log'\n\n/** @TODO: Remove ! post-fix expression when TypeScript #9619 resolved */\nexport let instance: any\nexport const results: Map> = new Map()\nexport const defaults: LRU.Options = {\n max: 100,\n maxAge: 300 * 1000\n}\n\n/**\n * Set the instance to call methods on, with cached results.\n * @param instanceToUse Instance of a class\n */\nexport function use (instanceToUse: object): void {\n instance = instanceToUse\n}\n\n/**\n * Setup a cache for a method call.\n * @param method Method name, for index of cached results\n * @param options.max Maximum size of cache\n * @param options.maxAge Maximum age of cache\n */\nexport function create (method: string, options: LRU.Options = {}): LRU.Cache | undefined {\n options = Object.assign(defaults, options)\n results.set(method, new LRU(options))\n return results.get(method)\n}\n\n/**\n * Get results of a prior method call or call and cache.\n * @param method Method name, to call on instance in use\n * @param key Key to pass to method call and save results against\n */\nexport function call (method: string, key: string): Promise {\n if (!results.has(method)) create(method) // create as needed\n const methodCache = results.get(method)!\n let callResults\n\n if (methodCache.has(key)) {\n logger.debug(`[${method}] Calling (cached): ${key}`)\n // return from cache if key has been used on method before\n callResults = methodCache.get(key)\n } else {\n // call and cache for next time, returning results\n logger.debug(`[${method}] Calling (caching): ${key}`)\n callResults = instance.call(method, key).result\n methodCache.set(key, callResults)\n }\n return Promise.resolve(callResults)\n}\n\n/**\n * Proxy for checking if method has been cached.\n * Cache may exist from manual creation, or prior call.\n * @param method Method name for cache to get\n */\nexport function has (method: string): boolean {\n return results.has(method)\n}\n\n/**\n * Get results of a prior method call.\n * @param method Method name for cache to get\n * @param key Key for method result set to return\n */\nexport function get (method: string, key: string): LRU.Cache | undefined {\n if (results.has(method)) return results.get(method)!.get(key)\n}\n\n/**\n * Reset a cached method call's results (all or only for given key).\n * @param method Method name for cache to clear\n * @param key Key for method result set to clear\n */\nexport function reset (method: string, key?: string): void {\n if (results.has(method)) {\n if (key) return results.get(method)!.del(key)\n else return results.get(method)!.reset()\n }\n}\n\n/**\n * Reset cached results for all methods.\n */\nexport function resetAll (): void {\n results.forEach((cache) => cache.reset())\n}\n"]} \ No newline at end of file diff --git a/dist/lib/settings.js b/dist/lib/settings.js index 3825afa..16ec176 100644 --- a/dist/lib/settings.js +++ b/dist/lib/settings.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.dmCacheMaxAge = exports.dmCacheMaxSize = exports.roomCacheMaxAge = exports.roomCacheMaxSize = exports.integrationId = exports.edited = exports.livechat = exports.dm = exports.allPublic = exports.rooms = exports.timeout = exports.useSsl = exports.host = exports.ldap = exports.password = exports.username = void 0; // Login settings - LDAP needs to be explicitly enabled exports.username = process.env.ROCKETCHAT_USER || 'bot'; exports.password = process.env.ROCKETCHAT_PASSWORD || 'pass'; diff --git a/dist/lib/settings.js.map b/dist/lib/settings.js.map index c7f8afc..05f6776 100644 --- a/dist/lib/settings.js.map +++ b/dist/lib/settings.js.map @@ -1 +1 @@ -{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":";;AACA,uDAAuD;AAC5C,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAA;AAC/C,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAA;AACpD,QAAA,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC,CAAA;AAE1D,gFAAgF;AACrE,QAAA,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,gBAAgB,CAAA;AACrD,QAAA,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAClD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IAC9E,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;AAC1E,QAAA,OAAO,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AAE5C,sEAAsE;AAC3D,QAAA,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAA;AACK,QAAA,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;AAClF,QAAA,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;AACpE,QAAA,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;AAChF,QAAA,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;AAEvF,6BAA6B;AAClB,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,QAAQ,CAAA;AAEjE,iBAAiB;AACN,QAAA,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;AACpE,QAAA,eAAe,GAAG,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAA;AAC9E,QAAA,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;AACrE,QAAA,aAAa,GAAG,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAA","sourcesContent":["\n// Login settings - LDAP needs to be explicitly enabled\nexport let username = process.env.ROCKETCHAT_USER || 'bot'\nexport let password = process.env.ROCKETCHAT_PASSWORD || 'pass'\nexport let ldap = (process.env.ROCKETCHAT_AUTH === 'ldap')\n\n// Connection settings - Enable SSL by default if Rocket.Chat URL contains https\nexport let host = process.env.ROCKETCHAT_URL || 'localhost:3000'\nexport let useSsl = (process.env.ROCKETCHAT_USE_SSL)\n ? ((process.env.ROCKETCHAT_USE_SSL || '').toString().toLowerCase() === 'true')\n : ((process.env.ROCKETCHAT_URL || '').toString().toLowerCase().startsWith('https'))\nexport let timeout = 20 * 1000 // 20 seconds\n\n// Respond settings - reactive callback filters for .respondToMessages\nexport let rooms = (process.env.ROCKETCHAT_ROOM)\n ? (process.env.ROCKETCHAT_ROOM || '').split(',').map((room) => room.trim())\n : []\nexport let allPublic = (process.env.LISTEN_ON_ALL_PUBLIC || 'false').toLowerCase() === 'true'\nexport let dm = (process.env.RESPOND_TO_DM || 'false').toLowerCase() === 'true'\nexport let livechat = (process.env.RESPOND_TO_LIVECHAT || 'false').toLowerCase() === 'true'\nexport let edited = (process.env.RESPOND_TO_EDITED || 'false').toLowerCase() === 'true'\n\n// Message attribute settings\nexport let integrationId = process.env.INTEGRATION_ID || 'js.SDK'\n\n// Cache settings\nexport let roomCacheMaxSize = parseInt(process.env.ROOM_CACHE_SIZE || '10', 10)\nexport let roomCacheMaxAge = 1000 * parseInt(process.env.ROOM_CACHE_MAX_AGE || '300', 10)\nexport let dmCacheMaxSize = parseInt(process.env.DM_ROOM_CACHE_SIZE || '10', 10)\nexport let dmCacheMaxAge = 1000 * parseInt(process.env.DM_ROOM_CACHE_MAX_AGE || '100', 10)\n"]} \ No newline at end of file +{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":";;;AACA,uDAAuD;AAC5C,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,CAAA;AAC/C,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAA;AACpD,QAAA,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC,CAAA;AAE1D,gFAAgF;AACrE,QAAA,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,gBAAgB,CAAA;AACrD,QAAA,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAClD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IAC9E,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;AAC1E,QAAA,OAAO,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AAE5C,sEAAsE;AAC3D,QAAA,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAA;AACK,QAAA,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;AAClF,QAAA,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;AACpE,QAAA,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;AAChF,QAAA,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;AAEvF,6BAA6B;AAClB,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,QAAQ,CAAA;AAEjE,iBAAiB;AACN,QAAA,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;AACpE,QAAA,eAAe,GAAG,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAA;AAC9E,QAAA,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;AACrE,QAAA,aAAa,GAAG,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAA","sourcesContent":["\n// Login settings - LDAP needs to be explicitly enabled\nexport let username = process.env.ROCKETCHAT_USER || 'bot'\nexport let password = process.env.ROCKETCHAT_PASSWORD || 'pass'\nexport let ldap = (process.env.ROCKETCHAT_AUTH === 'ldap')\n\n// Connection settings - Enable SSL by default if Rocket.Chat URL contains https\nexport let host = process.env.ROCKETCHAT_URL || 'localhost:3000'\nexport let useSsl = (process.env.ROCKETCHAT_USE_SSL)\n ? ((process.env.ROCKETCHAT_USE_SSL || '').toString().toLowerCase() === 'true')\n : ((process.env.ROCKETCHAT_URL || '').toString().toLowerCase().startsWith('https'))\nexport let timeout = 20 * 1000 // 20 seconds\n\n// Respond settings - reactive callback filters for .respondToMessages\nexport let rooms = (process.env.ROCKETCHAT_ROOM)\n ? (process.env.ROCKETCHAT_ROOM || '').split(',').map((room) => room.trim())\n : []\nexport let allPublic = (process.env.LISTEN_ON_ALL_PUBLIC || 'false').toLowerCase() === 'true'\nexport let dm = (process.env.RESPOND_TO_DM || 'false').toLowerCase() === 'true'\nexport let livechat = (process.env.RESPOND_TO_LIVECHAT || 'false').toLowerCase() === 'true'\nexport let edited = (process.env.RESPOND_TO_EDITED || 'false').toLowerCase() === 'true'\n\n// Message attribute settings\nexport let integrationId = process.env.INTEGRATION_ID || 'js.SDK'\n\n// Cache settings\nexport let roomCacheMaxSize = parseInt(process.env.ROOM_CACHE_SIZE || '10', 10)\nexport let roomCacheMaxAge = 1000 * parseInt(process.env.ROOM_CACHE_MAX_AGE || '300', 10)\nexport let dmCacheMaxSize = parseInt(process.env.DM_ROOM_CACHE_SIZE || '10', 10)\nexport let dmCacheMaxAge = 1000 * parseInt(process.env.DM_ROOM_CACHE_MAX_AGE || '100', 10)\n"]} \ No newline at end of file diff --git a/dist/utils/config.js b/dist/utils/config.js index 27267da..5885455 100644 --- a/dist/utils/config.js +++ b/dist/utils/config.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.mockUser = exports.botUser = exports.apiUser = void 0; // The API user, should be provisioned on build with local Rocket.Chat exports.apiUser = { username: process.env.ADMIN_USERNAME || 'admin', diff --git a/dist/utils/config.js.map b/dist/utils/config.js.map index aa5019d..7642861 100644 --- a/dist/utils/config.js.map +++ b/dist/utils/config.js.map @@ -1 +1 @@ -{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;AAEA,sEAAsE;AACzD,QAAA,OAAO,GAAgB;IAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO;IAC/C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM;CAC3C,CAAA;AAED,+DAA+D;AAClD,QAAA,OAAO,GAAgB;IAClC,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM;IACnD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK;IAC9C,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,KAAK;IAC5B,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,sEAAsE;AACzD,QAAA,QAAQ,GAAgB;IACnC,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,KAAK;IAC5B,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,IAAI;CACf,CAAA","sourcesContent":["import { INewUserAPI } from './interfaces'\n\n// The API user, should be provisioned on build with local Rocket.Chat\nexport const apiUser: INewUserAPI = {\n username: process.env.ADMIN_USERNAME || 'admin',\n password: process.env.ADMIN_PASS || 'pass'\n}\n\n// The Bot user, will attempt to login and run methods in tests\nexport const botUser: INewUserAPI = {\n email: 'bot@localhost',\n name: 'Bot',\n password: process.env.ROCKETCHAT_PASSWORD || 'pass',\n username: process.env.ROCKETCHAT_USER || 'bot',\n active: true,\n roles: ['bot'],\n joinDefaultChannels: true,\n requirePasswordChange: false,\n sendWelcomeEmail: false,\n verified: true\n}\n\n// The Mock user, will send messages via API for the bot to respond to\nexport const mockUser: INewUserAPI = {\n email: 'mock@localhost',\n name: 'Mock User',\n password: 'mock',\n username: 'mock',\n active: true,\n roles: ['user'],\n joinDefaultChannels: true,\n requirePasswordChange: false,\n sendWelcomeEmail: false,\n verified: true\n}\n"]} \ No newline at end of file +{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;AAEA,sEAAsE;AACzD,QAAA,OAAO,GAAgB;IAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO;IAC/C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM;CAC3C,CAAA;AAED,+DAA+D;AAClD,QAAA,OAAO,GAAgB;IAClC,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM;IACnD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK;IAC9C,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,KAAK;IAC5B,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,sEAAsE;AACzD,QAAA,QAAQ,GAAgB;IACnC,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,KAAK;IAC5B,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,IAAI;CACf,CAAA","sourcesContent":["import { INewUserAPI } from './interfaces'\n\n// The API user, should be provisioned on build with local Rocket.Chat\nexport const apiUser: INewUserAPI = {\n username: process.env.ADMIN_USERNAME || 'admin',\n password: process.env.ADMIN_PASS || 'pass'\n}\n\n// The Bot user, will attempt to login and run methods in tests\nexport const botUser: INewUserAPI = {\n email: 'bot@localhost',\n name: 'Bot',\n password: process.env.ROCKETCHAT_PASSWORD || 'pass',\n username: process.env.ROCKETCHAT_USER || 'bot',\n active: true,\n roles: ['bot'],\n joinDefaultChannels: true,\n requirePasswordChange: false,\n sendWelcomeEmail: false,\n verified: true\n}\n\n// The Mock user, will send messages via API for the bot to respond to\nexport const mockUser: INewUserAPI = {\n email: 'mock@localhost',\n name: 'Mock User',\n password: 'mock',\n username: 'mock',\n active: true,\n roles: ['user'],\n joinDefaultChannels: true,\n requirePasswordChange: false,\n sendWelcomeEmail: false,\n verified: true\n}\n"]} \ No newline at end of file diff --git a/dist/utils/start.js b/dist/utils/start.js index 7c17489..1062543 100644 --- a/dist/utils/start.js +++ b/dist/utils/start.js @@ -1,9 +1,10 @@ "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; diff --git a/dist/utils/start.js.map b/dist/utils/start.js.map index 6dec501..5b32904 100644 --- a/dist/utils/start.js.map +++ b/dist/utils/start.js.map @@ -1 +1 @@ -{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/utils/start.ts"],"names":[],"mappings":"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","sourcesContent":["// Test script uses standard methods and env config to connect and log streams\nimport { botUser } from './config'\nimport { IMessage } from '../config/messageInterfaces'\nimport { api, driver } from '..'\nconst delay = (ms: number) => new Promise((resolve, reject) => setTimeout(resolve, ms))\n\n// Start subscription to log message stream (used for e2e test and demo)\nasync function start () {\n await driver.connect()\n await driver.login({ username: botUser.username, password: botUser.password })\n await driver.subscribeToMessages()\n await driver.respondToMessages((err, msg, msgOpts) => {\n if (err) throw err\n console.log('[respond]', JSON.stringify(msg), JSON.stringify(msgOpts))\n demo(msg).catch((e) => console.error(e))\n }, {\n rooms: ['general'],\n allPublic: false,\n dm: true,\n edited: true,\n livechat: false\n })\n}\n\n// Demo bot-style interactions\n// A: Listen for \"tell everyone \" and send that something to everyone\n// B: Listen for \"who's online\" and tell that person who's online\nasync function demo (message: IMessage) {\n console.log(message)\n if (!message.msg) return\n if (/tell everyone/i.test(message.msg)) {\n const match = message.msg.match(/tell everyone (.*)/i)\n if (!match || !match[1]) return\n const sayWhat = `@${message.u!.username} says \"${match[1]}\"`\n const usernames = await api.users.allNames()\n for (let username of usernames) {\n if (username !== botUser.username) {\n const toWhere = await driver.getDirectMessageRoomId(username)\n await driver.sendToRoomId(sayWhat, toWhere) // DM ID hax\n await delay(200) // delay to prevent rate-limit error\n }\n }\n } else if (/who\\'?s online/i.test(message.msg)) {\n const names = await api.users.onlineNames()\n const niceNames = names.join(', ').replace(/, ([^,]*)$/, ' and $1')\n await driver.sendToRoomId(niceNames + ' are online', message.rid!)\n }\n}\n\nstart().catch((e) => console.error(e))\n"]} \ No newline at end of file +{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/utils/start.ts"],"names":[],"mappings":"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","sourcesContent":["// Test script uses standard methods and env config to connect and log streams\nimport { botUser } from './config'\nimport { IMessage } from '../config/messageInterfaces'\nimport { api, driver } from '..'\nconst delay = (ms: number) => new Promise((resolve, reject) => setTimeout(resolve, ms))\n\n// Start subscription to log message stream (used for e2e test and demo)\nasync function start () {\n await driver.connect()\n await driver.login({ username: botUser.username, password: botUser.password })\n await driver.subscribeToMessages()\n await driver.respondToMessages((err, msg, msgOpts) => {\n if (err) throw err\n console.log('[respond]', JSON.stringify(msg), JSON.stringify(msgOpts))\n demo(msg).catch((e) => console.error(e))\n }, {\n rooms: ['general'],\n allPublic: false,\n dm: true,\n edited: true,\n livechat: false\n })\n}\n\n// Demo bot-style interactions\n// A: Listen for \"tell everyone \" and send that something to everyone\n// B: Listen for \"who's online\" and tell that person who's online\nasync function demo (message: IMessage) {\n console.log(message)\n if (!message.msg) return\n if (/tell everyone/i.test(message.msg)) {\n const match = message.msg.match(/tell everyone (.*)/i)\n if (!match || !match[1]) return\n const sayWhat = `@${message.u!.username} says \"${match[1]}\"`\n const usernames = await api.users.allNames()\n for (let username of usernames) {\n if (username !== botUser.username) {\n const toWhere = await driver.getDirectMessageRoomId(username)\n await driver.sendToRoomId(sayWhat, toWhere) // DM ID hax\n await delay(200) // delay to prevent rate-limit error\n }\n }\n } else if (/who\\'?s online/i.test(message.msg)) {\n const names = await api.users.onlineNames()\n const niceNames = names.join(', ').replace(/, ([^,]*)$/, ' and $1')\n await driver.sendToRoomId(niceNames + ' are online', message.rid!)\n }\n}\n\nstart().catch((e) => console.error(e))\n"]} \ No newline at end of file diff --git a/dist/utils/testing.js b/dist/utils/testing.js index 0fa3f46..233b12e 100644 --- a/dist/utils/testing.js +++ b/dist/utils/testing.js @@ -1,13 +1,15 @@ "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.setup = exports.setupDirectFromUser = exports.updateFromUser = exports.inviteUser = exports.leaveUser = exports.sendFromUser = exports.createPrivate = exports.createChannel = exports.lastMessages = exports.privateInfo = exports.channelInfo = exports.createUser = exports.userInfo = exports.testPrivateName = exports.testChannelName = void 0; const api_1 = require("../lib/api"); const config_1 = require("./config"); /** Define common attributes for DRY tests */ @@ -94,7 +96,7 @@ function sendFromUser(payload) { if (found || looked > 10) { clearInterval(look); if (found) - resolve(); + resolve(true); else reject('API send from user, proof of receipt timeout'); } diff --git a/dist/utils/testing.js.map b/dist/utils/testing.js.map index 401d4e4..b2c25d8 100644 --- a/dist/utils/testing.js.map +++ b/dist/utils/testing.js.map @@ -1 +1 @@ -{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/utils/testing.ts"],"names":[],"mappings":"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","sourcesContent":["import { get, post, login, logout } from '../lib/api'\nimport { apiUser, botUser, mockUser } from './config'\nimport {\n IMessageAPI,\n IMessageUpdateAPI,\n IMessageResultAPI,\n INewUserAPI,\n IUserResultAPI,\n IRoomResultAPI,\n IChannelResultAPI,\n IGroupResultAPI,\n IMessageReceiptAPI\n} from './interfaces'\nimport { IMessage } from '../config/messageInterfaces'\n\n/** Define common attributes for DRY tests */\nexport const testChannelName = 'tests'\nexport const testPrivateName = 'p-tests'\n\n/** Get information about a user */\nexport async function userInfo (username: string): Promise {\n return get('users.info', { username }, true)\n}\n\n/** Create a user and catch the error if they exist already */\nexport async function createUser (user: INewUserAPI): Promise {\n return post('users.create', user, true, /already in use/i)\n}\n\n/** Get information about a channel */\nexport async function channelInfo (query: { roomName?: string, roomId?: string }): Promise {\n return get('channels.info', query, true)\n}\n\n/** Get information about a private group */\nexport async function privateInfo (query: { roomName?: string, roomId?: string }): Promise {\n return get('groups.info', query, true)\n}\n\n/** Get the last messages sent to a channel (in last 10 minutes) */\nexport async function lastMessages (roomId: string, count: number = 1): Promise {\n const now = new Date()\n const latest = now.toISOString()\n const oldest = new Date(now.setMinutes(now.getMinutes() - 10)).toISOString()\n return (await get('channels.history', { roomId, latest, oldest, count })).messages\n}\n\n/** Create a room for tests and catch the error if it exists already */\nexport async function createChannel (\n name: string,\n members: string[] = [],\n readOnly: boolean = false\n): Promise {\n return post('channels.create', { name, members, readOnly }, true)\n}\n\n/** Create a private group / room and catch if exists already */\nexport async function createPrivate (\n name: string,\n members: string[] = [],\n readOnly: boolean = false\n): Promise {\n return post('groups.create', { name, members, readOnly }, true)\n}\n\n/** Send message from mock user to channel for tests to listen and respond */\n/** @todo Sometimes the post request completes before the change event emits\n * the message to the streamer. That's why the interval is used for proof\n * of receipt. It would be better for the endpoint to not resolve until\n * server side handling is complete. Would require PR to core.\n */\nexport async function sendFromUser (payload: any): Promise {\n const user = await login({ username: mockUser.username, password: mockUser.password })\n const endpoint = (payload.roomId && payload.roomId.indexOf(user.data.userId) !== -1)\n ? 'dm.history'\n : 'channels.history'\n const roomId = (payload.roomId)\n ? payload.roomId\n : (await channelInfo({ roomName: testChannelName })).channel._id\n const messageDefaults: IMessageAPI = { roomId }\n const data: IMessageAPI = Object.assign({}, messageDefaults, payload)\n const oldest = new Date().toISOString()\n const result = await post('chat.postMessage', data, true)\n const proof = new Promise((resolve, reject) => {\n let looked = 0\n const look = setInterval(async () => {\n const { messages } = await get(endpoint, { roomId, oldest })\n const found = messages.some((message: IMessageReceiptAPI) => {\n return result.message._id === message._id\n })\n if (found || looked > 10) {\n clearInterval(look)\n if (found) resolve()\n else reject('API send from user, proof of receipt timeout')\n }\n looked++\n }, 100)\n })\n await proof\n return result\n}\n\n/** Leave user from room, to generate `ul` message (test channel by default) */\nexport async function leaveUser (room: { id?: string, name?: string } = {}): Promise {\n await login({ username: mockUser.username, password: mockUser.password })\n if (!room.id && !room.name) room.name = testChannelName\n const roomId = (room.id)\n ? room.id\n : (await channelInfo({ roomName: room.name })).channel._id\n return post('channels.leave', { roomId })\n}\n\n/** Invite user to room, to generate `au` message (test channel by default) */\nexport async function inviteUser (room: { id?: string, name?: string } = {}): Promise {\n let mockInfo = await userInfo(mockUser.username)\n await login({ username: apiUser.username, password: apiUser.password })\n if (!room.id && !room.name) room.name = testChannelName\n const roomId = (room.id)\n ? room.id\n : (await channelInfo({ roomName: room.name })).channel._id\n return post('channels.invite', { userId: mockInfo.user._id, roomId })\n}\n\n/** @todo : Join user into room (enter) to generate `uj` message type. */\n\n/** Update message sent from mock user */\nexport async function updateFromUser (payload: IMessageUpdateAPI): Promise {\n await login({ username: mockUser.username, password: mockUser.password })\n return post('chat.update', payload, true)\n}\n\n/** Create a direct message session with the mock user */\nexport async function setupDirectFromUser (): Promise {\n await login({ username: mockUser.username, password: mockUser.password })\n return post('im.create', { username: botUser.username }, true)\n}\n\n/** Initialise testing instance with the required users for SDK/bot tests */\nexport async function setup () {\n console.log('\\nPreparing instance for tests...')\n try {\n // Verify API user can login\n const loginInfo = await login(apiUser)\n if (loginInfo.status !== 'success') {\n throw new Error(`API user (${apiUser.username}) could not login`)\n } else {\n console.log(`API user (${apiUser.username}) logged in`)\n }\n\n // Verify or create user for bot\n let botInfo = await userInfo(botUser.username)\n if (!botInfo || !botInfo.success) {\n console.log(`Bot user (${botUser.username}) not found`)\n botInfo = await createUser(botUser)\n if (!botInfo.success) {\n throw new Error(`Bot user (${botUser.username}) could not be created`)\n } else {\n console.log(`Bot user (${botUser.username}) created`)\n }\n } else {\n console.log(`Bot user (${botUser.username}) exists`)\n }\n\n // Verify or create mock user for talking to bot\n let mockInfo = await userInfo(mockUser.username)\n if (!mockInfo || !mockInfo.success) {\n console.log(`Mock user (${mockUser.username}) not found`)\n mockInfo = await createUser(mockUser)\n if (!mockInfo.success) {\n throw new Error(`Mock user (${mockUser.username}) could not be created`)\n } else {\n console.log(`Mock user (${mockUser.username}) created`)\n }\n } else {\n console.log(`Mock user (${mockUser.username}) exists`)\n }\n\n // Verify or create channel for tests\n let testChannelInfo = await channelInfo({ roomName: testChannelName })\n if (!testChannelInfo || !testChannelInfo.success) {\n console.log(`Test channel (${testChannelName}) not found`)\n testChannelInfo = await createChannel(testChannelName, [\n apiUser.username, botUser.username, mockUser.username\n ])\n if (!testChannelInfo.success) {\n throw new Error(`Test channel (${testChannelName}) could not be created`)\n } else {\n console.log(`Test channel (${testChannelName}) created`)\n }\n } else {\n console.log(`Test channel (${testChannelName}) exists`)\n }\n\n // Verify or create private room for tests\n let testPrivateInfo = await privateInfo({ roomName: testPrivateName })\n if (!testPrivateInfo || !testPrivateInfo.success) {\n console.log(`Test private room (${testPrivateName}) not found`)\n testPrivateInfo = await createPrivate(testPrivateName, [\n apiUser.username, botUser.username, mockUser.username\n ])\n if (!testPrivateInfo.success) {\n throw new Error(`Test private room (${testPrivateName}) could not be created`)\n } else {\n console.log(`Test private room (${testPrivateName}) created`)\n }\n } else {\n console.log(`Test private room (${testPrivateName}) exists`)\n }\n\n await logout()\n } catch (e) {\n throw e\n }\n}\n"]} \ No newline at end of file +{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/utils/testing.ts"],"names":[],"mappings":"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","sourcesContent":["import { get, post, login, logout } from '../lib/api'\nimport { apiUser, botUser, mockUser } from './config'\nimport {\n IMessageAPI,\n IMessageUpdateAPI,\n IMessageResultAPI,\n INewUserAPI,\n IUserResultAPI,\n IRoomResultAPI,\n IChannelResultAPI,\n IGroupResultAPI,\n IMessageReceiptAPI\n} from './interfaces'\nimport { IMessage } from '../config/messageInterfaces'\n\n/** Define common attributes for DRY tests */\nexport const testChannelName = 'tests'\nexport const testPrivateName = 'p-tests'\n\n/** Get information about a user */\nexport async function userInfo (username: string): Promise {\n return get('users.info', { username }, true)\n}\n\n/** Create a user and catch the error if they exist already */\nexport async function createUser (user: INewUserAPI): Promise {\n return post('users.create', user, true, /already in use/i)\n}\n\n/** Get information about a channel */\nexport async function channelInfo (query: { roomName?: string, roomId?: string }): Promise {\n return get('channels.info', query, true)\n}\n\n/** Get information about a private group */\nexport async function privateInfo (query: { roomName?: string, roomId?: string }): Promise {\n return get('groups.info', query, true)\n}\n\n/** Get the last messages sent to a channel (in last 10 minutes) */\nexport async function lastMessages (roomId: string, count: number = 1): Promise {\n const now = new Date()\n const latest = now.toISOString()\n const oldest = new Date(now.setMinutes(now.getMinutes() - 10)).toISOString()\n return (await get('channels.history', { roomId, latest, oldest, count })).messages\n}\n\n/** Create a room for tests and catch the error if it exists already */\nexport async function createChannel (\n name: string,\n members: string[] = [],\n readOnly: boolean = false\n): Promise {\n return post('channels.create', { name, members, readOnly }, true)\n}\n\n/** Create a private group / room and catch if exists already */\nexport async function createPrivate (\n name: string,\n members: string[] = [],\n readOnly: boolean = false\n): Promise {\n return post('groups.create', { name, members, readOnly }, true)\n}\n\n/** Send message from mock user to channel for tests to listen and respond */\n/** @todo Sometimes the post request completes before the change event emits\n * the message to the streamer. That's why the interval is used for proof\n * of receipt. It would be better for the endpoint to not resolve until\n * server side handling is complete. Would require PR to core.\n */\nexport async function sendFromUser (payload: any): Promise {\n const user = await login({ username: mockUser.username, password: mockUser.password })\n const endpoint = (payload.roomId && payload.roomId.indexOf(user.data.userId) !== -1)\n ? 'dm.history'\n : 'channels.history'\n const roomId = (payload.roomId)\n ? payload.roomId\n : (await channelInfo({ roomName: testChannelName })).channel._id\n const messageDefaults: IMessageAPI = { roomId }\n const data: IMessageAPI = Object.assign({}, messageDefaults, payload)\n const oldest = new Date().toISOString()\n const result = await post('chat.postMessage', data, true)\n const proof = new Promise((resolve, reject) => {\n let looked = 0\n const look = setInterval(async () => {\n const { messages } = await get(endpoint, { roomId, oldest })\n const found = messages.some((message: IMessageReceiptAPI) => {\n return result.message._id === message._id\n })\n if (found || looked > 10) {\n clearInterval(look)\n if (found) resolve(true)\n else reject('API send from user, proof of receipt timeout')\n }\n looked++\n }, 100)\n })\n await proof\n return result\n}\n\n/** Leave user from room, to generate `ul` message (test channel by default) */\nexport async function leaveUser (room: { id?: string, name?: string } = {}): Promise {\n await login({ username: mockUser.username, password: mockUser.password })\n if (!room.id && !room.name) room.name = testChannelName\n const roomId = (room.id)\n ? room.id\n : (await channelInfo({ roomName: room.name })).channel._id\n return post('channels.leave', { roomId })\n}\n\n/** Invite user to room, to generate `au` message (test channel by default) */\nexport async function inviteUser (room: { id?: string, name?: string } = {}): Promise {\n let mockInfo = await userInfo(mockUser.username)\n await login({ username: apiUser.username, password: apiUser.password })\n if (!room.id && !room.name) room.name = testChannelName\n const roomId = (room.id)\n ? room.id\n : (await channelInfo({ roomName: room.name })).channel._id\n return post('channels.invite', { userId: mockInfo.user._id, roomId })\n}\n\n/** @todo : Join user into room (enter) to generate `uj` message type. */\n\n/** Update message sent from mock user */\nexport async function updateFromUser (payload: IMessageUpdateAPI): Promise {\n await login({ username: mockUser.username, password: mockUser.password })\n return post('chat.update', payload, true)\n}\n\n/** Create a direct message session with the mock user */\nexport async function setupDirectFromUser (): Promise {\n await login({ username: mockUser.username, password: mockUser.password })\n return post('im.create', { username: botUser.username }, true)\n}\n\n/** Initialise testing instance with the required users for SDK/bot tests */\nexport async function setup () {\n console.log('\\nPreparing instance for tests...')\n try {\n // Verify API user can login\n const loginInfo = await login(apiUser)\n if (loginInfo.status !== 'success') {\n throw new Error(`API user (${apiUser.username}) could not login`)\n } else {\n console.log(`API user (${apiUser.username}) logged in`)\n }\n\n // Verify or create user for bot\n let botInfo = await userInfo(botUser.username)\n if (!botInfo || !botInfo.success) {\n console.log(`Bot user (${botUser.username}) not found`)\n botInfo = await createUser(botUser)\n if (!botInfo.success) {\n throw new Error(`Bot user (${botUser.username}) could not be created`)\n } else {\n console.log(`Bot user (${botUser.username}) created`)\n }\n } else {\n console.log(`Bot user (${botUser.username}) exists`)\n }\n\n // Verify or create mock user for talking to bot\n let mockInfo = await userInfo(mockUser.username)\n if (!mockInfo || !mockInfo.success) {\n console.log(`Mock user (${mockUser.username}) not found`)\n mockInfo = await createUser(mockUser)\n if (!mockInfo.success) {\n throw new Error(`Mock user (${mockUser.username}) could not be created`)\n } else {\n console.log(`Mock user (${mockUser.username}) created`)\n }\n } else {\n console.log(`Mock user (${mockUser.username}) exists`)\n }\n\n // Verify or create channel for tests\n let testChannelInfo = await channelInfo({ roomName: testChannelName })\n if (!testChannelInfo || !testChannelInfo.success) {\n console.log(`Test channel (${testChannelName}) not found`)\n testChannelInfo = await createChannel(testChannelName, [\n apiUser.username, botUser.username, mockUser.username\n ])\n if (!testChannelInfo.success) {\n throw new Error(`Test channel (${testChannelName}) could not be created`)\n } else {\n console.log(`Test channel (${testChannelName}) created`)\n }\n } else {\n console.log(`Test channel (${testChannelName}) exists`)\n }\n\n // Verify or create private room for tests\n let testPrivateInfo = await privateInfo({ roomName: testPrivateName })\n if (!testPrivateInfo || !testPrivateInfo.success) {\n console.log(`Test private room (${testPrivateName}) not found`)\n testPrivateInfo = await createPrivate(testPrivateName, [\n apiUser.username, botUser.username, mockUser.username\n ])\n if (!testPrivateInfo.success) {\n throw new Error(`Test private room (${testPrivateName}) could not be created`)\n } else {\n console.log(`Test private room (${testPrivateName}) created`)\n }\n } else {\n console.log(`Test private room (${testPrivateName}) exists`)\n }\n\n await logout()\n } catch (e) {\n throw e\n }\n}\n"]} \ No newline at end of file diff --git a/dist/utils/users.js b/dist/utils/users.js index 3ca5207..2805366 100644 --- a/dist/utils/users.js +++ b/dist/utils/users.js @@ -1,19 +1,32 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -} Object.defineProperty(exports, "__esModule", { value: true }); // Test script uses standard methods and env config to connect and log streams const api = __importStar(require("../lib/api")); diff --git a/dist/utils/users.js.map b/dist/utils/users.js.map index 5e9551f..82783bd 100644 --- a/dist/utils/users.js.map +++ b/dist/utils/users.js.map @@ -1 +1 @@ -{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/utils/users.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8EAA8E;AAC9E,gDAAiC;AACjC,oCAAoC;AACpC,aAAO,EAAE,CAAA;AAET;;QACE,OAAO,CAAC,GAAG,CAAC;;;;;EAKZ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGjD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGtD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGpD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGpD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGzD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;GAEtD,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA","sourcesContent":["// Test script uses standard methods and env config to connect and log streams\nimport * as api from '../lib/api'\nimport { silence } from '../lib/log'\nsilence()\n\nasync function users () {\n console.log(`\n\nDemo of API user query helpers\n\nALL users \\`api.users.all()\\`:\n${JSON.stringify(await api.users.all(), null, '\\t')}\n\nALL usernames \\`api.users.allNames()\\`:\n${JSON.stringify(await api.users.allNames(), null, '\\t')}\n\nALL IDs \\`api.users.allIDs()\\`:\n${JSON.stringify(await api.users.allIDs(), null, '\\t')}\n\nONLINE users \\`api.users.online()\\`:\n${JSON.stringify(await api.users.online(), null, '\\t')}\n\nONLINE usernames \\`api.users.onlineNames()\\`:\n${JSON.stringify(await api.users.onlineNames(), null, '\\t')}\n\nONLINE IDs \\`api.users.onlineIds()\\`:\n${JSON.stringify(await api.users.onlineIds(), null, '\\t')}\n\n `)\n}\n\nusers().catch((e) => console.error(e))\n"]} \ No newline at end of file +{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/utils/users.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAA8E;AAC9E,gDAAiC;AACjC,oCAAoC;AACpC,aAAO,EAAE,CAAA;AAET,SAAe,KAAK;;QAClB,OAAO,CAAC,GAAG,CAAC;;;;;EAKZ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGjD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGtD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGpD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGpD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;;EAGzD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;;GAEtD,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA","sourcesContent":["// Test script uses standard methods and env config to connect and log streams\nimport * as api from '../lib/api'\nimport { silence } from '../lib/log'\nsilence()\n\nasync function users () {\n console.log(`\n\nDemo of API user query helpers\n\nALL users \\`api.users.all()\\`:\n${JSON.stringify(await api.users.all(), null, '\\t')}\n\nALL usernames \\`api.users.allNames()\\`:\n${JSON.stringify(await api.users.allNames(), null, '\\t')}\n\nALL IDs \\`api.users.allIDs()\\`:\n${JSON.stringify(await api.users.allIDs(), null, '\\t')}\n\nONLINE users \\`api.users.online()\\`:\n${JSON.stringify(await api.users.online(), null, '\\t')}\n\nONLINE usernames \\`api.users.onlineNames()\\`:\n${JSON.stringify(await api.users.onlineNames(), null, '\\t')}\n\nONLINE IDs \\`api.users.onlineIds()\\`:\n${JSON.stringify(await api.users.onlineIds(), null, '\\t')}\n\n `)\n}\n\nusers().catch((e) => console.error(e))\n"]} \ No newline at end of file diff --git a/src/lib/api.ts b/src/lib/api.ts index 0b37c8f..cba07ad 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -51,7 +51,7 @@ export function getQueryString (data: any) { /** Setup default headers with empty auth for now */ export const basicHeaders = { 'Content-Type': 'application/json' } -export const authHeaders = { 'X-Auth-Token': '', 'X-User-Id': '' } +export const authHeaders: { 'X-Auth-Token'?: string, 'X-User-Id'?: string } = { 'X-Auth-Token': '', 'X-User-Id': '' } /** Populate auth headers (from response data on login) */ export function setAuth (authData: {authToken: string, userId: string}) { diff --git a/src/lib/driver.ts b/src/lib/driver.ts index 8982901..8544b0a 100644 --- a/src/lib/driver.ts +++ b/src/lib/driver.ts @@ -393,6 +393,8 @@ export function respondToMessages ( callback(err) // bubble errors back to adapter } + if (Array.isArray(message)) message = message.shift() + // Ignore bot's own messages if (message.u._id === userId) return diff --git a/src/utils/testing.ts b/src/utils/testing.ts index 33e5c9b..b7130d6 100644 --- a/src/utils/testing.ts +++ b/src/utils/testing.ts @@ -90,7 +90,7 @@ export async function sendFromUser (payload: any): Promise { }) if (found || looked > 10) { clearInterval(look) - if (found) resolve() + if (found) resolve(true) else reject('API send from user, proof of receipt timeout') } looked++ diff --git a/yarn.lock b/yarn.lock index bd5b2e3..1ab20fa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,204 +2,410 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/highlight@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" + integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.9.4": + version "7.12.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz#2b20de7f0b4b332d9b119dd9c33409c538b8aacf" + integrity sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA== + "@pnpm/exec@^1.1.1": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@pnpm/exec/-/exec-1.1.4.tgz#6ab9a3fcbe9b9d9350ab5a23443571f0077bdf5c" + version "1.1.5" + resolved "https://registry.yarnpkg.com/@pnpm/exec/-/exec-1.1.5.tgz#8787c0026c7a495e1a7b3f420018d8fc9bb0a811" + integrity sha512-1zLmh6tRftQXfZ1IFHq1IexP0KaJhN6pSCA/IzK+Vixn4hPvxwcIbGjKW0KH9hsHSmrPpmSit2EWj7jGNgfa6Q== dependencies: "@pnpm/self-installer" "^2.0.0" - "@types/got" "^7.1.4" - "@types/node" "^9.3.0" + "@types/got" "^8.3.1" + "@types/node" "^10.0.8" command-exists "^1.2.2" - cross-spawn "^5.1.0" + cross-spawn "^6.0.0" "@pnpm/self-installer@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/self-installer/-/self-installer-2.0.2.tgz#85bb8764c7ccd223999f6142190062c626e8f287" + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/self-installer/-/self-installer-2.1.0.tgz#4ef2eb58120b22d0150bd4f6d8375106b568ed68" + integrity sha512-bfMgLFmg33kY1XBPBgdkbpld6fSeyt6iAlXbIMioArHd1t58EAMFmM2cYZQt4I2MguUpLRDlZwOpYYmirDHhsg== + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.7.0": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" + integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== + dependencies: + type-detect "4.0.8" "@sinonjs/formatio@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg== dependencies: samsam "1.3.0" -"@types/chai@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.2.tgz#f1af664769cfb50af805431c407425ed619daa21" +"@sinonjs/formatio@^3.2.1": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" + integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ== + dependencies: + "@sinonjs/commons" "^1" + "@sinonjs/samsam" "^3.1.0" -"@types/events@*": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-1.1.0.tgz#93b1be91f63c184450385272c47b6496fd028e02" +"@sinonjs/samsam@^3.1.0": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" + integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== + dependencies: + "@sinonjs/commons" "^1.3.0" + array-from "^2.1.1" + lodash "^4.17.15" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/chai@^4.1.2": + version "4.2.14" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.14.tgz#44d2dd0b5de6185089375d976b4ec5caf6861193" + integrity sha512-G+ITQPXkwTrslfG5L/BksmbLUA0M1iybEsmCWPqzSxsRRhJZimBKJkoMi8fr/CPygPTj4zO5pJH7I2/cm9M7SQ== "@types/fs-extra@^4.0.0": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-4.0.7.tgz#02533262386b5a6b9a49797dc82feffdf269140a" + version "4.0.11" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-4.0.11.tgz#0df98664a5b27e9adfdb5164f9d0bd4751956882" + integrity sha512-iHm/nBVmMR/VJQn/xCSwZ6C/qfm1Tgsh2IrCCinAsF+mlHDGpV+vLR/EA6xezBXpv0/amDOaqxa8f2TVxBQyog== dependencies: "@types/node" "*" "@types/fs-extra@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.1.tgz#cd856fbbdd6af2c11f26f8928fd8644c9e9616c9" + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.1.0.tgz#2a325ef97901504a3828718c390d34b8426a10a1" + integrity sha512-AInn5+UBFIK9FK5xc9yP5e3TQSPNNgjHByqYcj9g5elVBnDQcQL7PlO1CIRy2gWlbwK7UPYqi7vRvFA44dCmYQ== dependencies: "@types/node" "*" "@types/glob@*": - version "5.0.35" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.35.tgz#1ae151c802cece940443b5ac246925c85189f32a" + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: - "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" -"@types/got@^7.1.4": - version "7.1.7" - resolved "https://registry.yarnpkg.com/@types/got/-/got-7.1.7.tgz#fd8053a4e7f3e7d37f2aed6ea24f5f19ec4bda76" +"@types/got@^8.3.1": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@types/got/-/got-8.3.5.tgz#d8a0e8fa7598681b332a4d27779b022b2e55fb7f" + integrity sha512-AaXSrIF99SjjtPVNmCmYb388HML+PKEJb/xmj4SbL2ZO0hHuETZZzyDIKfOqaEoAHZEuX4sC+FRFrHYJoIby6A== dependencies: "@types/node" "*" "@types/handlebars@^4.0.31": - version "4.0.36" - resolved "https://registry.yarnpkg.com/@types/handlebars/-/handlebars-4.0.36.tgz#ff57c77fa1ab6713bb446534ddc4d979707a3a79" + version "4.1.0" + resolved "https://registry.yarnpkg.com/@types/handlebars/-/handlebars-4.1.0.tgz#3fcce9bf88f85fe73dc932240ab3fb682c624850" + integrity sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA== + dependencies: + handlebars "*" "@types/highlight.js@^9.1.8": - version "9.12.2" - resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.2.tgz#6ee7cd395effe5ec80b515d3ff1699068cd0cd1d" + version "9.12.4" + resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.4.tgz#8c3496bd1b50cc04aeefd691140aa571d4dbfa34" + integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww== "@types/load-json-file@^2.0.7": version "2.0.7" resolved "https://registry.yarnpkg.com/@types/load-json-file/-/load-json-file-2.0.7.tgz#c887826f5230b7507d5230994d26315c6776be06" + integrity sha512-NrH6jPlV77QCVPhAHofWeiOr77TgpKt82c2RVxSBChWBJqyY/u4ngl3CA4mcsAg/w7rNLrkR7dkObMV0ihLLXw== "@types/lodash@^4.14.37": - version "4.14.104" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.104.tgz#53ee2357fa2e6e68379341d92eb2ecea4b11bb80" + version "4.14.168" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.168.tgz#fe24632e79b7ade3f132891afff86caa5e5ce008" + integrity sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q== "@types/lru-cache@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-4.1.0.tgz#ef69ce9c3ebb46bd146f0d80f0c1ce38b0508eae" + version "4.1.2" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-4.1.2.tgz#528ba392658055dba78fc3be906ca338a1a2d1c5" + integrity sha512-ve2IoUJClE+4S/sG2zoLGEHP6DCvqgyz7UkHZdiICdQaAYRaCXsRWfJlbL8B0KvUyo9lgzD+oR0YSy4YikFyFQ== "@types/marked@0.0.28": version "0.0.28" resolved "https://registry.yarnpkg.com/@types/marked/-/marked-0.0.28.tgz#44ba754e9fa51432583e8eb30a7c4dd249b52faa" + integrity sha1-RLp1Tp+lFDJYPo6zCnxN0km1L6o= "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/minimatch@^2.0.29": version "2.0.29" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a" + integrity sha1-UALhT3Xi1x5WQoHfBDHIwbSio2o= "@types/mocha@^2.2.48": version "2.2.48" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.48.tgz#3523b126a0b049482e1c3c11877460f76622ffab" + integrity sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw== "@types/mz@0.0.32", "@types/mz@^0.0.32": version "0.0.32" resolved "https://registry.yarnpkg.com/@types/mz/-/mz-0.0.32.tgz#e8248b4e41424c052edc1725dd33650c313a3659" + integrity sha512-cy3yebKhrHuOcrJGkfwNHhpTXQLgmXSv1BX+4p32j+VUQ6aP2eJ5cL7OvGcAQx75fCTFaAIIAKewvqL+iwSd4g== dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^9.4.6": - version "9.4.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.6.tgz#d8176d864ee48753d053783e4e463aec86b8d82e" +"@types/node@*": + version "14.14.25" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.25.tgz#15967a7b577ff81383f9b888aa6705d43fbbae93" + integrity sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ== -"@types/node@^9.3.0": - version "9.4.7" - resolved "http://registry.npmjs.org/@types/node/-/node-9.4.7.tgz#57d81cd98719df2c9de118f2d5f3b1120dcd7275" +"@types/node@^10.0.8": + version "10.17.51" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.51.tgz#639538575befbcf3d3861f95c41de8e47124d674" + integrity sha512-KANw+MkL626tq90l++hGelbl67irOJzGhUJk6a1Bt8QHOeh9tztJx+L0AqttraWKinmZn7Qi5lJZJzx45Gq0dg== + +"@types/node@^9.4.6": + version "9.6.61" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.61.tgz#29f124eddd41c4c74281bd0b455d689109fc2a2d" + integrity sha512-/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ== "@types/shelljs@^0.7.0": - version "0.7.8" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.8.tgz#4b4d6ee7926e58d7bca448a50ba442fd9f6715bd" + version "0.7.9" + resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.9.tgz#3abecb72d9cad9cd4b0e7cb86ed10a97d93ba602" + integrity sha512-GwfXBWx+JgH+mrf35NnNFPFl6kQZgDQqZBUdWrHB1phulBbVpOwedZun7hZRyfTOxlicwo4ftsC1fpUZZIiN5w== dependencies: "@types/glob" "*" "@types/node" "*" "@types/sinon@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-4.3.0.tgz#7f53915994a00ccea24f4e0c24709822ed11a3b1" + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-4.3.3.tgz#97cbbfddc3282b5fd40c7abf80b99db426fd4237" + integrity sha512-Tt7w/ylBS/OEAlSCwzB0Db1KbxnkycP/1UkQpbvKFYoUuRn4uYsC3xh5TRPrOjTy0i8TIkSz1JdNL4GPVdf3KQ== "@types/write-json-file@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@types/write-json-file/-/write-json-file-2.2.1.tgz#74155aaccbb0d532be21f9d66bebc4ea875a5a62" + integrity sha512-JdO/UpPm9RrtQBNVcZdt3M7j3mHO/kXaea9LBGx3UgWJd1f9BkIWP7jObLBG6ZtRyqp7KzLFEsaPhWcidVittA== -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" +abab@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.3.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^6.0.1, acorn@^6.0.4: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" +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" any-promise@^1.0.0, any-promise@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA== + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" append-transform@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + integrity sha1-126/jKlNJ24keja61EpLdKthGZE= dependencies: default-require-extensions "^1.0.0" archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= dependencies: arr-flatten "^1.0.1" -arr-flatten@^1.0.1: +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-from@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assertion-error@^1.0.1: +assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= asteroid@rocketchat/asteroid: version "0.6.1" @@ -209,13 +415,40 @@ asteroid@rocketchat/asteroid: faye-websocket "^0.11.0" q "^1.0.1" -async@^1.4.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" +async-each@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -224,6 +457,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: babel-generator@^6.18.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" @@ -237,12 +471,23 @@ babel-generator@^6.18.0: babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-polyfill@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + integrity sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0= dependencies: babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" @@ -250,6 +495,7 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0: babel-template@^6.16.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" @@ -260,6 +506,7 @@ babel-template@^6.16.0: babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" @@ -274,6 +521,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.26.0: babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" @@ -283,24 +531,83 @@ babel-types@^6.18.0, babel-types@^6.26.0: babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== 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= -base64-js@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +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" bl@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== dependencies: - readable-stream "^2.0.5" + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bluebird@^3.5.3, bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" 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" @@ -308,36 +615,95 @@ brace-expansion@^1.1.7: braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= dependencies: expand-range "^1.8.1" preserve "^0.2.0" repeat-element "^1.1.2" -browser-stdout@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-zlib@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= dependencies: pako "~0.2.0" -buffer@^3.0.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer@^5.2.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: - base64-js "0.0.8" - ieee754 "^1.1.4" - isarray "^1.0.0" + base64-js "^1.3.1" + ieee754 "^1.1.13" -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== bzip2-maybe@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/bzip2-maybe/-/bzip2-maybe-1.0.0.tgz#c9aef7008a6b943cbe99cc617125eb4bd478296b" + integrity sha1-ya73AIprlDy+mcxhcSXrS9R4KWs= dependencies: is-bzip2 "^1.0.0" peek-stream "^1.1.1" @@ -345,15 +711,45 @@ bzip2-maybe@^1.0.0: through2 "^2.0.1" unbzip2-stream "^1.0.9" +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + cachedir@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-1.2.0.tgz#e9a0a25bb21a2b7a0f766f07c41eb7a311919b97" + version "1.3.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-1.3.0.tgz#5e01928bf2d95b5edd94b0942188246740e0dbc4" + integrity sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg== dependencies: os-homedir "^1.0.1" caching-transform@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" + integrity sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE= dependencies: md5-hex "^1.2.0" mkdirp "^0.5.1" @@ -362,40 +758,50 @@ caching-transform@^1.0.0: camelcase-keys@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= dependencies: camelcase "^4.1.0" map-obj "^2.0.0" quick-lru "^1.0.0" -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +catharsis@^0.8.11: + version "0.8.11" + resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.11.tgz#d0eb3d2b82b7da7a3ce2efb1a7b00becc6643468" + integrity sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g== dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" + lodash "^4.17.14" chai@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + version "4.3.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.0.tgz#5523a5faf7f819c8a92480d70a8cccbadacfc25f" + integrity sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA== dependencies: - assertion-error "^1.0.1" - check-error "^1.0.1" - deep-eql "^3.0.0" + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" get-func-name "^2.0.0" - pathval "^1.0.0" - type-detect "^4.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -403,85 +809,184 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" +chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2: + 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.0" + ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" - supports-color "^5.2.0" + supports-color "^5.3.0" -check-error@^1.0.1: +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +chokidar@~1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.5.2.tgz#293e728640cc93dd8277424334b3c6d4ad3a348a" + integrity sha1-KT5yhkDMk92Cd0JDNLPG1K06NIo= + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -ci-info@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@^3.0.1: + version "3.4.28" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.28.tgz#bf1945e82fc808f55695e6ddeaec01400efd03ff" + integrity sha1-vxlF6C/ICPVWlebd6uwBQA79A/8= + dependencies: + commander "2.8.x" + source-map "0.4.x" cli-cursor@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= dependencies: restore-cursor "^1.0.1" +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" +cli@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" + integrity sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ= dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" + exit "0.1.2" + glob "^7.1.1" cliui@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + 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.1" + color-name "1.1.3" -color-name@^1.1.1: +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= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" command-exists@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.2.tgz#12819c64faf95446ec0ae07fe6cafb6eb3708b22" + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== -commander@2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" +commander@2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== + +commander@2.8.x: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ= + dependencies: + graceful-readlink ">= 1.0.0" commander@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + 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== commitizen@^2.9.6: - version "2.9.6" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-2.9.6.tgz#c0d00535ef264da7f63737edfda4228983fa2291" + version "2.10.1" + resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-2.10.1.tgz#8c395def34a895f4e94952c2efc3c9eb4c3683bd" + integrity sha1-jDld7zSolfTpSVLC78PJ60w2g70= dependencies: cachedir "^1.1.0" chalk "1.1.3" - cz-conventional-changelog "1.2.0" + cz-conventional-changelog "2.0.0" dedent "0.6.0" detect-indent "4.0.0" find-node-modules "1.0.4" @@ -489,8 +994,9 @@ commitizen@^2.9.6: fs-extra "^1.0.0" glob "7.1.1" inquirer "1.2.3" - lodash "4.17.2" + lodash "4.17.5" minimist "1.2.0" + opencollective "1.0.3" path-exists "2.1.0" shelljs "0.7.6" strip-json-comments "2.0.1" @@ -498,45 +1004,96 @@ commitizen@^2.9.6: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 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= concat-stream@^1.4.7: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: + buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + conventional-commit-types@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz#5db95739d6c212acbe7b6f656a11b940baa68946" + version "2.3.0" + resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.3.0.tgz#bc3c8ebba0a9e4b3ecc548f1d0674e251ab8be22" + integrity sha512-6iB39PrcGYdz0n3z31kj6/Km6mK9hm9oMRhwcLnKxE7WNoeRKZbTAobliKrbYZ5jqyCvtcVEfjCiaEzhL3AVmQ== -convert-source-map@^1.3.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" +convert-source-map@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-anything@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.3.tgz#842407ba02466b0df844819bbe3baebbe5d45d87" + integrity sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ== + dependencies: + is-what "^3.12.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js@^2.4.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cross-spawn@^4: version "4.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= dependencies: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" @@ -545,6 +1102,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: cross-spawn@^6.0.0: 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" @@ -552,15 +1110,29 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" +cssom@0.3.x, cssom@^0.3.4: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" -cz-conventional-changelog@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-1.2.0.tgz#2bca04964c8919b23f3fd6a89ef5e6008b31b3f8" +cz-conventional-changelog@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-2.0.0.tgz#55a979afdfe95e7024879d2a0f5924630170b533" + integrity sha1-Val5r9/pXnAkh50qD1kkYwFwtTM= dependencies: conventional-commit-types "^2.0.0" lodash.map "^4.5.1" @@ -572,6 +1144,7 @@ cz-conventional-changelog@1.2.0: cz-conventional-changelog@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz#2f4bc7390e3244e4df293e6ba351e4c740a7c764" + integrity sha1-L0vHOQ4yROTfKT5ro1Hkx0Cnx2Q= dependencies: conventional-commit-types "^2.0.0" lodash.map "^4.5.1" @@ -579,142 +1152,398 @@ cz-conventional-changelog@^2.1.0: right-pad "^1.0.1" word-wrap "^1.0.3" +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + ddp.js@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/ddp.js/-/ddp.js-0.5.0.tgz#f977ee4207838571203bf781dafb571d0aebd66a" + integrity sha1-+XfuQgeDhXEgO/eB2vtXHQrr1mo= debug-log@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" -debug@3.1.0, debug@^3.1.0: +debug@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" -debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: - ms "2.0.0" + ms "^2.1.1" debug@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + integrity sha1-+HBX6ZWxofauaklgZkE3vFbwOdo= dependencies: ms "0.7.1" decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= dependencies: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1: +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= decompress-maybe@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/decompress-maybe/-/decompress-maybe-1.0.0.tgz#adfe78c66cc069e64e824bd1405b85e75e6d1cbb" + integrity sha1-rf54xmzAaeZOgkvRQFuF515tHLs= dependencies: bzip2-maybe "^1.0.0" gunzip-maybe "^1.3.1" pumpify "^1.3.5" +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + dedent@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.6.0.tgz#0e6da8f0ce52838ef5cec5c8f9396b0c1b64a3cb" + integrity sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s= -deep-eql@^3.0.0: +deep-eql@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== dependencies: type-detect "^4.0.0" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + default-require-extensions@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= dependencies: strip-bom "^2.0.0" +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-file@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + integrity sha1-STXe39lIhkjgBrASlWbpOGcR6mM= dependencies: fs-exists-sync "^0.1.0" detect-indent@4.0.0, detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= dependencies: repeating "^2.0.0" detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= -diff@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" +diff@3.5.0, diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== -diff@^3.1.0, diff@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +docma-template-zebra@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/docma-template-zebra/-/docma-template-zebra-2.3.1.tgz#060d0022800b16be4de715e1a6c3fe10743d09a7" + integrity sha512-uuUvf2Y/Q+3gPDqgEodtEmlnbtGRvUVuqwbsYHGvYvYtRGCPsiuyG1vwpdQB/E1alEY8VU0DoZlbMvWqemclbQ== -doctrine@^0.7.2: +docma@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/docma/-/docma-3.2.2.tgz#bdd1df8a46f99ed7ebbab1a46aab21d8c39c4bd4" + integrity sha512-pkbdXx9xUu+7yWBEj379sP4g2BcoWapggmUKbq2ho5+KIkJAP4cGVHRdQj+qfQkZ5oUryethRwE4L7+oWZkATw== + dependencies: + bluebird "^3.5.3" + chalk "^2.4.2" + docma-template-zebra "^2.3.1" + dustjs-linkedin "^2.7.5" + easy-table "^1.1.1" + express "^4.16.4" + fs-extra "^7.0.1" + glob "^7.1.3" + gzip-size "^5.0.0" + inquirer "^6.2.1" + jsdoc-x "^4.0.3" + jsdom "^13.1.0" + less "^3.9.0" + less-plugin-clean-css "^1.5.1" + lodash "^4.17.11" + marked "^0.6.0" + npm-name "^5.0.1" + semver "^5.6.0" + serve-static "^1.13.2" + strip-json-comments "^2.0.1" + uglify-js "^3.4.9" + yargs "^12.0.5" + +doctrine@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" + integrity sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM= dependencies: esutils "^1.1.6" isarray "0.0.1" +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + dotenv@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + integrity sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -duplexify@^3.5.0, duplexify@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.5.0, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" readable-stream "^2.0.0" stream-shift "^1.0.0" +dustjs-linkedin@^2.7.5: + version "2.7.5" + resolved "https://registry.yarnpkg.com/dustjs-linkedin/-/dustjs-linkedin-2.7.5.tgz#618f063f72c19b78c8055ac2301c75b7b6bbdccc" + integrity sha1-YY8GP3LBm3jIBVrCMBx1t7a73Mw= + dependencies: + chokidar "~1.5.1" + cli "^1.0.1" + +easy-table@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.1.1.tgz#c1b9b9ad68a017091a1c235e4bcba277540e143f" + integrity sha512-C9Lvm0WFcn2RgxbMnTbXZenMIWcBtkzMr+dWqq/JsVoGFSVUVlPqeOa5LP5kM0I3zoOazFpckOEb2/0LDFfToQ== + dependencies: + ansi-regex "^3.0.0" + optionalDependencies: + wcwidth ">=1.0.1" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" +entities@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + +errno@^0.1.1: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + 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" +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + escape-string-regexp@1.0.5, escape-string-regexp@^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= -esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.11.0: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== esutils@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" + integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U= esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -724,76 +1553,262 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + +exit@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= dependencies: is-posix-bracket "^0.1.0" +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= dependencies: fill-range "^2.1.0" expand-tilde@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= dependencies: os-homedir "^1.0.1" -extend@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" +express@^4.16.4: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" + integrity sha1-Etew24UPf/fnCBuvQAVwAGDEYAs= dependencies: extend "^3.0.0" spawn-sync "^1.0.15" tmp "^0.0.29" +external-editor@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= dependencies: is-extglob "^1.0.0" +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + faye-websocket@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" figures@^1.3.5: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +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== + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== dependencies: is-number "^2.1.0" isobject "^2.0.0" - randomatic "^1.1.3" + randomatic "^3.0.0" repeat-element "^1.1.2" repeat-string "^1.5.2" +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + find-cache-dir@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= dependencies: commondir "^1.0.1" mkdirp "^0.5.1" @@ -802,6 +1817,7 @@ find-cache-dir@^0.1.1: find-down@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/find-down/-/find-down-0.1.4.tgz#2365628f38249cb0a93bd9c2c851ad942d1e0eeb" + integrity sha512-3lcasU5kFaqBp/IJ19lDRv5I0FG42J94s2oIP5r0KA5z5+ID0vocMylMUEuuGbXqJ5WLNZteQB9CAVIzUnk9bQ== dependencies: locate-path "^2.0.0" next-path "^1.0.0" @@ -809,6 +1825,7 @@ find-down@^0.1.4: find-node-modules@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-1.0.4.tgz#b6deb3cccb699c87037677bcede2c5f5862b2550" + integrity sha1-tt6zzMtpnIcDdne87eLF9YYrJVA= dependencies: findup-sync "0.4.2" merge "^1.2.0" @@ -816,10 +1833,12 @@ find-node-modules@1.0.4: find-root@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a" + integrity sha1-li/yEaqyXGUg/u641ih/j26VgHo= find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -827,12 +1846,21 @@ find-up@^1.0.0: find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + findup-sync@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.2.tgz#a8117d0f73124f5a4546839579fe52d7129fb5e5" + integrity sha1-qBF9D3MST1pFRoOVef5S1xKfteU= dependencies: detect-file "^0.1.0" is-glob "^2.0.1" @@ -840,35 +1868,75 @@ findup-sync@0.4.2: resolve-dir "^0.1.0" follow-redirects@>=1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa" - dependencies: - debug "^3.1.0" + version "1.13.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" + integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== -for-in@^1.0.1: +for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= dependencies: for-in "^1.0.1" foreground-child@^1.5.3, foreground-child@^1.5.6: version "1.5.6" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + integrity sha1-T9ca0t/elnibmApcCilZN8svXOk= dependencies: cross-spawn "^4" signal-exit "^3.0.0" +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-exists-sync@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= fs-extra@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -877,6 +1945,7 @@ fs-extra@^1.0.0: fs-extra@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" @@ -885,30 +1954,93 @@ fs-extra@^4.0.0: fs-extra@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + integrity sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" +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= + +fsevents@^1.0.0: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +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== get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" @@ -916,12 +2048,14 @@ glob-base@^0.3.0: glob-parent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= dependencies: is-glob "^2.0.0" glob@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg= dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -930,9 +2064,22 @@ glob@7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.1.2, glob@^7.0.0, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1: +glob@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + 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" + +glob@^7.0.0, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: + 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" @@ -944,6 +2091,7 @@ glob@7.1.2, glob@^7.0.0, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1: global-modules@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= dependencies: global-prefix "^0.1.4" is-windows "^0.2.0" @@ -951,6 +2099,7 @@ global-modules@^0.2.3: global-prefix@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= dependencies: homedir-polyfill "^1.0.0" ini "^1.3.4" @@ -960,18 +2109,44 @@ global-prefix@^0.1.4: globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: + version "4.2.5" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.5.tgz#bc18864a6c9fc7b303f2e2abdb9155ad178fbe29" + integrity sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw== + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -growl@1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== gunzip-maybe@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/gunzip-maybe/-/gunzip-maybe-1.4.1.tgz#39c72ed89d1b49ba708e18776500488902a52027" + version "1.4.2" + resolved "https://registry.yarnpkg.com/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz#b913564ae3be0eda6f3de36464837a9cd94b98ac" + integrity sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw== dependencies: browserify-zlib "^0.1.4" is-deflate "^1.0.0" @@ -980,94 +2155,234 @@ gunzip-maybe@^1.3.1: pumpify "^1.3.3" through2 "^2.0.3" -handlebars@^4.0.3, handlebars@^4.0.6: - version "4.0.11" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" + duplexer "^0.1.1" + pify "^4.0.1" + +handlebars@*, handlebars@^4.0.3, handlebars@^4.0.6: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" optionalDependencies: - uglify-js "^2.6" + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= 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-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +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" he@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= highlight.js@^9.0.0: - version "9.12.0" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" + version "9.18.5" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" + integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== homedir-polyfill@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== -http-parser-js@>=0.4.0: - version "0.4.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" husky@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" + integrity sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA== dependencies: is-ci "^1.0.10" normalize-path "^1.0.0" strip-indent "^2.0.0" -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= 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, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inquirer@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" + integrity sha1-TexvMvN+97sLLtPx0aXD9UUHSRg= dependencies: ansi-escapes "^1.1.0" chalk "^1.0.0" @@ -1084,267 +2399,646 @@ inquirer@1.2.3: strip-ansi "^3.0.0" through "^2.3.6" +inquirer@3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + integrity sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c= + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^6.2.1: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== invariant@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688" + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" 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-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-bzip2@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" + integrity sha1-XuWOqlounIDiFAe+3yOuWsCRs/w= is-ci@^1.0.10: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: - ci-info "^1.0.0" + kind-of "^6.0.0" is-deflate@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-deflate/-/is-deflate-1.0.0.tgz#c862901c3c161fb09dac7cdc7e784f80e98f2f14" + integrity sha1-yGKQHDwWH7CdrHzcfnhPgOmPLxQ= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= is-equal-shallow@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= dependencies: is-primitive "^2.0.0" -is-extendable@^0.1.1: +is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= dependencies: is-extglob "^1.0.0" is-gzip@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" + integrity sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM= is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= dependencies: kind-of "^3.0.2" is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= -is-promise@^2.1.0: +is-scoped@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" + integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ== + dependencies: + scoped-regex "^2.0.0" -is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-url-superb@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-3.0.0.tgz#b9a1da878a1ac73659047d1e6f4ef22c209d3e25" + integrity sha512-3faQP+wHCGDQT1qReM5zCPx2mxoal6DzbzquFlCYJLWyy4WPTved33ea2xFbX37z4NoriEwZGIYhFtx8RUB5wQ== + dependencies: + url-regex "^5.0.0" is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-what@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.12.0.tgz#f4405ce4bd6dd420d3ced51a026fb90e03705e55" + integrity sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw== is-windows@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= -is-windows@^1.0.0: +is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 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= isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" -istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz#4113c8ff6b7a40a1ef7350b01016331f63afde14" +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== istanbul-lib-hook@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw== dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.9.1: - version "1.9.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz#84905bf47f7e0b401d6b840da7bad67086b4aab6" +istanbul-lib-instrument@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" babel-traverse "^6.18.0" babel-types "^6.18.0" babylon "^6.18.0" - istanbul-lib-coverage "^1.1.2" + istanbul-lib-coverage "^1.2.1" semver "^5.3.0" -istanbul-lib-report@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259" +istanbul-lib-report@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw== dependencies: - istanbul-lib-coverage "^1.1.2" + istanbul-lib-coverage "^1.2.1" mkdirp "^0.5.1" path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-source-maps@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" +istanbul-lib-source-maps@^1.2.3: + version "1.2.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg== dependencies: debug "^3.1.0" - istanbul-lib-coverage "^1.1.2" + istanbul-lib-coverage "^1.2.1" mkdirp "^0.5.1" rimraf "^2.6.1" source-map "^0.5.3" -istanbul-reports@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.4.tgz#5ccba5e22b7b5a5d91d5e0a830f89be334bf97bd" +istanbul-reports@^1.4.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw== dependencies: handlebars "^4.0.3" -js-tokens@^3.0.0, js-tokens@^3.0.2: +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js2xmlparser@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.1.tgz#670ef71bc5661f089cc90481b99a05a1227ae3bd" + integrity sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw== + dependencies: + xmlcreate "^2.0.3" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -js-yaml@^3.7.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" +jsdoc-x@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/jsdoc-x/-/jsdoc-x-4.1.0.tgz#4a1ccb34b848b6add2a63bdc7ce1d69a91b0c77d" + integrity sha512-eM4svACroOxjhV0JuwmNUQQHRXM4bhE4eQ+yjYnD/W8HjD+iZPjJaEUl3D6DHEX0uUpWawd31VhZg1E3j0Ageg== + dependencies: + bluebird "^3.7.2" + fs-extra "^8.1.0" + glob "^7.1.6" + jsdoc "^3.6.3" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + tmp "^0.1.0" + +jsdoc@^3.6.3: + version "3.6.6" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.6.tgz#9fe162bbdb13ee7988bf74352b5147565bcfd8e1" + integrity sha512-znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ== + dependencies: + "@babel/parser" "^7.9.4" + bluebird "^3.7.2" + catharsis "^0.8.11" + escape-string-regexp "^2.0.0" + js2xmlparser "^4.0.1" + klaw "^3.0.0" + markdown-it "^10.0.0" + markdown-it-anchor "^5.2.7" + marked "^0.8.2" + mkdirp "^1.0.4" + requizzle "^0.2.3" + strip-json-comments "^3.1.0" + taffydb "2.6.2" + underscore "~1.10.2" + +jsdom@^13.1.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-13.2.0.tgz#b1a0dbdadc255435262be8ea3723d2dba0d7eb3a" + integrity sha512-cG1NtMWO9hWpqRNRR3dSvEQa8bFI6iLlqU2x4kwX51FQjp0qus8T9aBaAO6iGp3DeBrhdwuKxckknohkmfvsFw== + dependencies: + abab "^2.0.0" + acorn "^6.0.4" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.0.9" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.5" + symbol-tree "^3.2.2" + tough-cookie "^2.5.0" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^6.1.2" + xml-name-validator "^3.0.0" jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= json-parse-better-errors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + 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== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= optionalDependencies: graceful-fs "^4.1.6" 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" -just-extend@^1.1.27: - version "1.1.27" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-1.1.27.tgz#ec6e79410ff914e472652abfa0e603c03d60e905" +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +just-extend@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.1.tgz#158f1fdb01f128c411dc8b286a7b4837b3545282" + integrity sha512-aWgeGFW67BP3e5181Ep1Fv2v8z//iBJfrvyTnq8wG86vEESwmonn1zPBJ0VfmT9CJq2FIT0VsETtrNFm2a+SHA== + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" -kind-of@^3.0.2: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= optionalDependencies: graceful-fs "^4.1.9" -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +klaw@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" + integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== + dependencies: + graceful-fs "^4.1.9" lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +less-plugin-clean-css@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/less-plugin-clean-css/-/less-plugin-clean-css-1.5.1.tgz#cc57af7aa3398957e56decebe63cb60c23429703" + integrity sha1-zFeveqM5iVflbezr5jy2DCNClwM= + dependencies: + clean-css "^3.0.1" + +less@^3.9.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" + integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== + dependencies: + copy-anything "^2.0.1" + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + native-request "^1.0.5" + source-map "~0.6.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -1355,6 +3049,7 @@ load-json-file@^1.0.0: 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" @@ -1364,95 +3059,226 @@ load-json-file@^4.0.0: locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= lodash.map@^4.5.1: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@4.17.2: - version "4.17.2" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" +lodash.zip@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" + integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= -lodash@^4.13.1, lodash@^4.17.4, lodash@^4.3.0: +lodash@4.17.5: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw== -lolex@^2.2.0, lolex@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.3.2.tgz#85f9450425103bf9e7a60668ea25dc43274ca807" +lodash@^4.13.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.3.0: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +lolex@^2.2.0: + version "2.7.5" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== + +lolex@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: - js-tokens "^3.0.0" + js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" make-dir@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: pify "^3.0.0" +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + make-error@^1.1.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-it-anchor@^5.2.7: + version "5.3.0" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz#d549acd64856a8ecd1bea58365ef385effbac744" + integrity sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA== + +markdown-it@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" + integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" marked@^0.3.5: - version "0.3.15" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.15.tgz#de96982e54c880962f5093a2fa93d0866bf73668" + version "0.3.19" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" + integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== + +marked@^0.6.0: + version "0.6.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.3.tgz#79babad78af638ba4d522a9e715cdfdd2429e946" + integrity sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ== + +marked@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355" + integrity sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw== + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== md5-hex@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + integrity sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ= dependencies: md5-o-matic "^0.1.1" md5-o-matic@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M= + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= dependencies: mimic-fn "^1.0.0" +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + meow@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.0.tgz#fd5855dd008db5b92c552082db1c307cba20b29d" + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== dependencies: camelcase-keys "^4.0.0" decamelize-keys "^1.0.0" @@ -1464,19 +3290,32 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" -merge-source-map@^1.0.2: +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== dependencies: source-map "^0.6.1" merge@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^2.3.11, micromatch@^2.3.7: +micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" @@ -1492,19 +3331,68 @@ micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" +micromatch@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + dependencies: + mime-db "1.45.0" + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, 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-options@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" @@ -1512,226 +3400,473 @@ minimist-options@^3.0.1: minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0: +minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" mkdirp-promise@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= dependencies: mkdirp "*" -mkdirp@*, mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@*, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" +mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + mocha@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.0.1.tgz#759b62c836b0732382a62b6b1fb245ec1bc943ac" + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== dependencies: - browser-stdout "1.3.0" - commander "2.11.0" + browser-stdout "1.3.1" + commander "2.15.1" debug "3.1.0" - diff "3.3.1" + diff "3.5.0" escape-string-regexp "1.0.5" glob "7.1.2" - growl "1.10.3" + growl "1.10.5" he "1.1.1" + minimatch "3.0.4" mkdirp "0.5.1" - supports-color "4.4.0" + supports-color "5.4.0" ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + integrity sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg= ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mute-stream@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" + integrity sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s= + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= mz@^2.4.0, mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== dependencies: any-promise "^1.0.0" object-assign "^4.0.1" thenify-all "^1.0.0" +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-request@^1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb" + integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag== + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + next-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-path/-/next-path-1.0.0.tgz#822c4580d7abe783df19965b789622ca801603e4" + integrity sha1-gixFgNer54PfGZZbeJYiyoAWA+Q= nice-try@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== nise@^1.2.0: - version "1.2.6" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.2.6.tgz#42b054981a5c869d6c447be5776cc6f137f00ac5" - dependencies: - "@sinonjs/formatio" "^2.0.0" - just-extend "^1.1.27" - lolex "^2.3.2" + version "1.5.3" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" + integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ== + dependencies: + "@sinonjs/formatio" "^3.2.1" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + lolex "^5.0.1" path-to-regexp "^1.7.0" - text-encoding "^0.6.4" + +node-fetch@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + integrity sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ= + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" node-rest-client@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/node-rest-client/-/node-rest-client-3.1.0.tgz#e0beb6dda7b20cc0b67a7847cf12c5fc419c37c3" + integrity sha1-4L623aeyDMC2enhHzxLF/EGcN8M= dependencies: debug "~2.2.0" follow-redirects ">=1.2.0" xml2js ">=0.2.4" normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + 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" - is-builtin-module "^1.0.0" + resolve "^1.10.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" normalize-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= -normalize-path@^2.0.1: +normalize-path@^2.0.0, normalize-path@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-name@^5.0.1: + version "5.5.0" + resolved "https://registry.yarnpkg.com/npm-name/-/npm-name-5.5.0.tgz#3a73adbcb0488a41a44ff820ed51dcc32c72bd09" + integrity sha512-l7/uyVfEi2e3ho+ovaJZC0xlbwzXNUz3RxkxpfcnLuoGKAuYoo9YoJ/uy18PsTD8IziugGHks4t/mGmBJEZ4Qg== + dependencies: + got "^9.6.0" + is-scoped "^2.1.0" + is-url-superb "^3.0.0" + lodash.zip "^4.2.0" + registry-auth-token "^4.0.0" + registry-url "^5.1.0" + validate-npm-package-name "^3.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.0.9: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== nyc@^11.4.1: - version "11.4.1" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.4.1.tgz#13fdf7e7ef22d027c61d174758f6978a68f4f5e5" + version "11.9.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.9.0.tgz#4106e89e8fbe73623a1fc8b6ecb7abaa271ae1e4" + integrity sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g== dependencies: archy "^1.0.0" arrify "^1.0.1" caching-transform "^1.0.0" - convert-source-map "^1.3.0" + convert-source-map "^1.5.1" debug-log "^1.0.1" default-require-extensions "^1.0.0" find-cache-dir "^0.1.1" find-up "^2.1.0" foreground-child "^1.5.3" glob "^7.0.6" - istanbul-lib-coverage "^1.1.1" + istanbul-lib-coverage "^1.1.2" istanbul-lib-hook "^1.1.0" - istanbul-lib-instrument "^1.9.1" - istanbul-lib-report "^1.1.2" - istanbul-lib-source-maps "^1.2.2" - istanbul-reports "^1.1.3" + istanbul-lib-instrument "^1.10.0" + istanbul-lib-report "^1.1.3" + istanbul-lib-source-maps "^1.2.3" + istanbul-reports "^1.4.0" md5-hex "^1.2.0" - merge-source-map "^1.0.2" - micromatch "^2.3.11" + merge-source-map "^1.1.0" + micromatch "^3.1.10" mkdirp "^0.5.0" resolve-from "^2.0.0" - rimraf "^2.5.4" + rimraf "^2.6.2" signal-exit "^3.0.1" spawn-wrap "^1.4.2" - test-exclude "^4.1.1" - yargs "^10.0.3" + test-exclude "^4.2.0" + yargs "11.1.0" yargs-parser "^8.0.0" +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= dependencies: for-own "^0.1.4" is-extendable "^0.1.1" +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +opencollective@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1" + integrity sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE= dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" + babel-polyfill "6.23.0" + chalk "1.1.3" + inquirer "3.0.6" + minimist "1.2.0" + node-fetch "1.6.3" + opn "4.0.2" + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + integrity sha1-erwi5kTf9jsKltWrfyeQwPAavJU= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== dependencies: execa "^0.7.0" lcid "^1.0.0" mem "^1.1.0" +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc= -os-tmpdir@~1.0.1: +os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== p-limit@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-preview@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/package-preview/-/package-preview-1.0.5.tgz#d6408cd0ae7cbbf7c404e84f22d51955bc6933eb" + version "1.0.6" + resolved "https://registry.yarnpkg.com/package-preview/-/package-preview-1.0.6.tgz#de20653956e693309f5ca5e7dd5e2788aa626ea2" + integrity sha512-GQ4w5vrDXoy8UVJM+0W7oWd5MYF21/IXkdzcupGNXdfqQuMzgQT+LXde109uHaH7xyqvCzPPBSxYM/HqQOi3+w== dependencies: "@pnpm/exec" "^1.1.1" "@types/fs-extra" "^5.0.0" "@types/load-json-file" "^2.0.7" "@types/mz" "^0.0.32" - "@types/node" "^9.3.0" + "@types/node" "^10.0.8" "@types/write-json-file" "^2.2.1" cross-spawn "^6.0.0" find-down "^0.1.4" @@ -1748,16 +3883,19 @@ package-preview@^1.0.5: pad-right@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774" + integrity sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q= dependencies: repeat-string "^1.5.2" pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" @@ -1767,12 +3905,14 @@ parse-glob@^3.0.4: parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" 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" @@ -1780,38 +3920,66 @@ parse-json@^4.0.0: parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-exists@2.1.0, path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 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.0, 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.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" +path-parse@^1.0.5, 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-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== dependencies: isarray "0.0.1" path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -1820,63 +3988,125 @@ path-type@^1.0.0: 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" -pathval@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" +pathval@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== peek-stream@^1.1.0, peek-stream@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.2.tgz#97eb76365bcfd8c89e287f55c8b69d4c3e9bcc52" + version "1.1.3" + resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67" + integrity sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA== dependencies: + buffer-from "^1.0.0" duplexify "^3.5.0" through2 "^2.0.3" +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 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= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= dependencies: find-up "^1.0.0" +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pump@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -1884,36 +4114,91 @@ pump@^1.0.0: pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" pumpify@^1.3.3, pumpify@^1.3.5: - version "1.4.0" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: - duplexify "^3.5.3" + duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + q@^1.0.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" read-pkg "^1.0.0" @@ -1921,6 +4206,7 @@ read-pkg-up@^1.0.1: read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" read-pkg "^3.0.0" @@ -1928,6 +4214,7 @@ read-pkg-up@^3.0.0: read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" @@ -1936,87 +4223,173 @@ read-pkg@^1.0.0: 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" - -readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.1.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" -readable-stream@^2.2.2: - version "2.3.4" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" process-nextick-args "~2.0.0" safe-buffer "~5.1.1" - string_decoder "~1.0.3" + string_decoder "~1.1.1" util-deprecate "~1.0.1" +readdirp@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + 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" redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= dependencies: indent-string "^3.0.0" strip-indent "^2.0.0" +regenerator-runtime@^0.10.0: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== dependencies: is-equal-shallow "^0.1.3" +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.2: +repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= dependencies: is-finite "^1.0.0" +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.5: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +requizzle@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.3.tgz#4675c90aacafb2c036bd39ba2daa4a1cb777fded" + integrity sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ== + dependencies: + lodash "^4.17.14" resolve-dir@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= dependencies: expand-tilde "^1.2.2" global-modules "^0.2.3" @@ -2024,86 +4397,200 @@ resolve-dir@^0.1.0: resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= -resolve@^1.1.6, resolve@^1.3.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: - path-parse "^1.0.5" + is-core-module "^2.1.0" + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= dependencies: exit-hook "^1.0.0" onetime "^1.0.0" -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: - align-text "^0.1.1" + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== right-pad@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" + integrity sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA= rimraf-then@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rimraf-then/-/rimraf-then-1.0.1.tgz#bd4458a79eb561b7548aaec0ac3753ef429fe70b" + integrity sha1-vURYp561YbdUiq7ArDdT70Kf5ws= dependencies: any-promise "^1.3.0" rimraf "2" -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" +rimraf@2, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: - glob "^7.0.5" + glob "^7.1.3" run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: - is-promise "^2.1.0" + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= -safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +rxjs@^6.4.0: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== samsam@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== sax@>=0.6.0: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +saxes@^3.1.5: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +scoped-regex@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" + integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1, serve-static@^1.13.2: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 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= shelljs@0.7.6: version "0.7.6" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" + integrity sha1-N5zM+1a5HIYB5HkzVutTgpJN6a0= dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -2112,18 +4599,21 @@ shelljs@0.7.6: shelljs@^0.7.0: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM= dependencies: glob "^7.0.0" interpret "^1.0.0" rechoir "^0.6.2" signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== sinon@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.4.2.tgz#c4c41d4bd346e1d33594daec2d5df0548334fc65" + version "4.5.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" + integrity sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w== dependencies: "@sinonjs/formatio" "^2.0.0" diff "^3.1.0" @@ -2136,43 +4626,98 @@ sinon@^4.4.2: slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= dependencies: is-plain-obj "^1.0.0" -source-map-support@^0.5.3: +source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.3: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: + buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.4.4: +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.4.x: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= dependencies: amdefine ">=0.0.4" -source-map@^0.5.3, source-map@^0.5.7, source-map@~0.5.1: +source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, 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== spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + integrity sha1-sAeZVX63+wyDdsKdROih6mfldHY= dependencies: concat-stream "^1.4.7" os-shim "^0.1.2" spawn-wrap@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" + version "1.4.3" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848" + integrity sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw== dependencies: foreground-child "^1.5.6" mkdirp "^0.5.0" @@ -2181,125 +4726,218 @@ spawn-wrap@^1.4.2: signal-exit "^3.0.2" which "^1.3.0" -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: - spdx-license-ids "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" ssri@^5.0.0: version "5.3.0" resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== dependencies: safe-buffer "^5.1.1" +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.1: +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= dependencies: is-utf8 "^0.2.0" 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= strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@2.0.1: +strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -supports-color@4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" +strip-json-comments@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== dependencies: - has-flag "^2.0.0" + has-flag "^3.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^3.1.2: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= dependencies: has-flag "^1.0.0" -supports-color@^5.1.0, supports-color@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a" +supports-color@^5.1.0, 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" +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + symlink-dir@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/symlink-dir/-/symlink-dir-1.1.2.tgz#eb367da33401e9c6e95b1ca87efd921cef369852" + version "1.1.3" + resolved "https://registry.yarnpkg.com/symlink-dir/-/symlink-dir-1.1.3.tgz#b09af9599af5310c2fb77adc0c1613dee382ce4e" + integrity sha512-klQgTYk7en8A69nAzZjJdaMXbGCmfh0DU+YLaZG/stHNp00VZSS3Pos238Ua7oCKVw57UszViod4D7RVRH6XHg== dependencies: "@types/mz" "0.0.32" - "@types/node" "^9.3.0" + "@types/node" "^10.0.8" graceful-fs "^4.1.11" is-windows "^1.0.0" mkdirp-promise "^5.0.0" mz "^2.4.0" +taffydb@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" + integrity sha1-fLy2S1oUG2ou/CxdLGe04VCyomg= + tar-fs@^1.14.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.0.tgz#e877a25acbcc51d8c790da1c57c9cf439817b896" + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== dependencies: chownr "^1.0.1" mkdirp "^0.5.1" @@ -2307,17 +4945,22 @@ tar-fs@^1.14.0: tar-stream "^1.1.2" tar-stream@^1.1.2: - version "1.5.5" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55" + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== dependencies: bl "^1.0.0" + buffer-alloc "^1.2.0" end-of-stream "^1.0.0" - readable-stream "^2.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" xtend "^4.0.0" -test-exclude@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.0.tgz#07e3613609a362c74516a717515e13322ab45b3c" +test-exclude@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA== dependencies: arrify "^1.0.1" micromatch "^2.3.11" @@ -2325,54 +4968,133 @@ test-exclude@^4.1.1: read-pkg-up "^1.0.1" require-main-filename "^1.0.1" -text-encoding@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" - thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= dependencies: thenify ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": - version "3.3.0" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== dependencies: any-promise "^1.0.0" through2@^2.0.1, through2@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: - readable-stream "^2.1.5" + readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.6: +through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tlds@^1.203.0: + version "1.216.0" + resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.216.0.tgz#9749abcbe1bafb4f7b22d44391bd7bf64fa8a435" + integrity sha512-y9A+eMRKLdAOclcFRTk3durpvCWiEdWcQhCOopCO654pckH9+o5Z5VgBsTTAFqtyxB8yFRXSG1q7BCCeHyrm0w== tmp@^0.0.29: version "0.0.29" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" + integrity sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA= dependencies: os-tmpdir "~1.0.1" +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== + dependencies: + rimraf "^2.6.3" + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@^2.5.0, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" trim-newlines@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= ts-node@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-5.0.1.tgz#78e5d1cb3f704de1b641e43b76be2d4094f06f81" + integrity sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw== dependencies: arrify "^1.0.0" chalk "^2.3.0" @@ -2383,70 +5105,116 @@ ts-node@^5.0.1: source-map-support "^0.5.3" yn "^2.0.0" -tslib@^1.0.0, tslib@^1.8.0, tslib@^1.8.1: +tslib@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" + integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== + +tslib@^1.10.0, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslint-config-standard@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-7.0.0.tgz#47bbf25578ed2212456f892d51e1abe884a29f15" + version "7.1.0" + resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-7.1.0.tgz#6bcc435a179478e365f6cc62312a561221985760" + integrity sha512-cETzxZcEQ1RKjwtEScGryAtqwiRFc55xBxhZP6bePyOfXmo6i1/QKQrTgFKBiM4FjCvcqTjJq20/KGrh+TzTfQ== dependencies: - tslint-eslint-rules "^4.1.1" + tslint-eslint-rules "^5.3.1" -tslint-eslint-rules@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz#7c30e7882f26bc276bff91d2384975c69daf88ba" +tslint-eslint-rules@^5.3.1: + version "5.4.0" + resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5" + integrity sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w== dependencies: - doctrine "^0.7.2" - tslib "^1.0.0" - tsutils "^1.4.0" + doctrine "0.7.2" + tslib "1.9.0" + tsutils "^3.0.0" tslint@^5.9.1: - version "5.9.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae" + version "5.20.1" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d" + integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg== dependencies: - babel-code-frame "^6.22.0" + "@babel/code-frame" "^7.0.0" builtin-modules "^1.1.1" chalk "^2.3.0" commander "^2.12.1" - diff "^3.2.0" + diff "^4.0.1" glob "^7.1.1" - js-yaml "^3.7.0" + js-yaml "^3.13.1" minimatch "^3.0.4" + mkdirp "^0.5.1" resolve "^1.3.2" semver "^5.3.0" tslib "^1.8.0" - tsutils "^2.12.1" + tsutils "^2.29.0" -tsutils@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0" +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" -tsutils@^2.12.1: - version "2.21.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.21.1.tgz#5b23c263233300ed7442b4217855cbc7547c296a" +tsutils@^3.0.0: + version "3.20.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.20.0.tgz#ea03ea45462e146b53d70ce0893de453ff24f698" + integrity sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg== dependencies: tslib "^1.8.1" -type-detect@^4.0.0, type-detect@^4.0.5: +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typedoc-default-themes@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.5.0.tgz#6dc2433e78ed8bea8e887a3acde2f31785bd6227" + integrity sha1-bcJDPnjti+qOiHo6zeLzF4W9Yic= typedoc-plugin-external-module-name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/typedoc-plugin-external-module-name/-/typedoc-plugin-external-module-name-1.1.1.tgz#0ef2d6a760b42c703519c474258b6f062983aa83" + version "1.1.3" + resolved "https://registry.yarnpkg.com/typedoc-plugin-external-module-name/-/typedoc-plugin-external-module-name-1.1.3.tgz#ea1c8c7650dae7a105f0d9d55a6aa5cab7816db2" + integrity sha512-/VMawTW4NnUUsgq0o8O37y9MmXFaOCDrH1dvDg7SZUS5ZSpUPSILVWwGJP+7g4I8vKZ5bBKZKHfPIEA4xUC+PQ== typedoc@0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.8.0.tgz#d7172bc6a29964f451b7609c005beadadefe2361" + integrity sha1-1xcrxqKZZPRRt2CcAFvq2t7+I2E= dependencies: "@types/fs-extra" "^4.0.0" "@types/handlebars" "^4.0.31" @@ -2469,95 +5237,239 @@ typedoc@0.8.0: typescript@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.1.tgz#c3ccb16ddaa0b2314de031e7e6fee89e5ba346bc" + integrity sha1-w8yxbdqgsjFN4DHn5v7onlujRrw= typescript@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" + version "2.9.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" + integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== -uglify-js@^2.6: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" +uglify-js@^3.1.4, uglify-js@^3.4.9: + version "3.12.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.6.tgz#f884584fcc42e10bca70db5cb32e8625c2c42535" + integrity sha512-aqWHe3DfQmZUDGWBbabZ2eQnJlQd1fKlMUu7gV+MiTuDzdgDw31bI3wA2jLLsV/hNcDP26IfyEgSVoft5+0SVw== unbzip2-stream@^1.0.9: - version "1.2.5" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47" + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== dependencies: - buffer "^3.0.1" - through "^2.3.6" + buffer "^5.2.1" + through "^2.3.8" + +underscore@~1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf" + integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" universalify@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unpack-stream@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/unpack-stream/-/unpack-stream-3.0.1.tgz#e6e31965eb356e1e6971660cf11e6309645020e1" + version "3.0.3" + resolved "https://registry.yarnpkg.com/unpack-stream/-/unpack-stream-3.0.3.tgz#b7d3fc9d5c8ea224ea15e63848e4d9785dcb09d6" + integrity sha512-h3Ii7ThTL7P5LlX1RuMPsuW4V5EZnLyjPwStIMQ4V0F6rblgmXIS+IkpAOu9THHDZYUO/D8TTJddVc6HIY4S5g== dependencies: - "@types/node" "^9.3.0" + "@types/node" "^10.0.8" decompress-maybe "^1.0.0" ssri "^5.0.0" tar-fs "^1.14.0" +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + 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" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +wcwidth@>=1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: - http-parser-js ">=0.4.0" + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^1.2.12, which@^1.2.9, which@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + 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" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -word-wrap@^1.0.3: +word-wrap@^1.0.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -2565,18 +5477,21 @@ wrap-ansi@^2.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^1.1.4: version "1.3.4" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" slide "^1.1.5" write-file-atomic@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -2585,6 +5500,7 @@ write-file-atomic@^2.0.0: write-json-file@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= dependencies: detect-indent "^5.0.0" graceful-fs "^4.1.2" @@ -2593,38 +5509,87 @@ write-json-file@^2.3.0: sort-keys "^2.0.0" write-file-atomic "^2.0.0" +ws@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + xml2js@>=0.2.4: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== dependencies: sax ">=0.6.0" - xmlbuilder "~9.0.1" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" +xmlcreate@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.3.tgz#df9ecd518fd3890ab3548e1b811d040614993497" + integrity sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ== xtend@^4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + +"y18n@^3.2.1 || ^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yargs-parser@^8.0.0, yargs-parser@^8.1.0: +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ== + dependencies: + camelcase "^4.1.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= dependencies: camelcase "^4.1.0" -yargs@^10.0.3: - version "10.1.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" +yargs@11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== dependencies: cliui "^4.0.0" decamelize "^1.1.1" @@ -2637,17 +5602,27 @@ yargs@^10.0.3: string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1" - yargs-parser "^8.1.0" + yargs-parser "^9.0.2" -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" +yargs@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" yn@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=