diff --git a/.circleci/config.yml b/.circleci/config.yml index ca86fc9..6454186 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2 defaults: &defaults working_directory: ~/ardean/spread-the-word docker: - - image: circleci/node:10.15.1 + - image: circleci/node:14 jobs: build: diff --git a/LICENSE.md b/LICENSE.md index 281d3bc..9d74aa8 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 ardean +Copyright (c) 2021 ardean Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/dist/Constants.js b/dist/Constants.js index cc701d6..dd5fe9a 100644 --- a/dist/Constants.js +++ b/dist/Constants.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.REQUERY_FACTOR = exports.REQUERY_MAX_MS = exports.REANNOUNCE_FACTOR = exports.REANNOUNCE_MAX_MS = exports.WILDCARD = exports.TOP_LEVEL_DOMAIN = void 0; exports.TOP_LEVEL_DOMAIN = "local"; exports.WILDCARD = "_services._dns-sd._udp." + exports.TOP_LEVEL_DOMAIN; exports.REANNOUNCE_MAX_MS = 60 * 60 * 1000; diff --git a/dist/Listener.js b/dist/Listener.js index 8708846..6d51129 100644 --- a/dist/Listener.js +++ b/dist/Listener.js @@ -1,14 +1,26 @@ "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; +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; }; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const debug_1 = __importDefault(require("debug")); const Query_1 = __importDefault(require("./Query")); @@ -16,7 +28,7 @@ const events_1 = require("events"); const MDNSUtil = __importStar(require("./MDNSUtil")); const RemoteService_1 = __importDefault(require("./RemoteService")); const Constants_1 = require("./Constants"); -const debugLog = debug_1.default("SpreadTheWord:Listener"); +const debugLog = (0, debug_1.default)("SpreadTheWord:Listener"); class Listener extends events_1.EventEmitter { constructor(server, options = {}) { super(); diff --git a/dist/MDNSUtil.js b/dist/MDNSUtil.js index fe3721d..8346353 100644 --- a/dist/MDNSUtil.js +++ b/dist/MDNSUtil.js @@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.serializeTXTData = exports.parseTXTData = exports.serializeRecord = exports.parseRecord = exports.getExternalAddresses = exports.sameRecord = exports.parseDNSName = exports.serializeDNSName = void 0; const os_1 = __importDefault(require("os")); const A_1 = __importDefault(require("./records/A")); const dns_txt_1 = __importDefault(require("dns-txt")); @@ -114,11 +115,11 @@ function serializeRecord(record, options = {}) { } exports.serializeRecord = serializeRecord; function parseTXTData(data, options = { binary: false }) { - const result = dns_txt_1.default({ binary: options.binary }).decode(data); + const result = (0, dns_txt_1.default)({ binary: options.binary }).decode(data); return Object.keys(result).length > 0 ? result : null; } exports.parseTXTData = parseTXTData; function serializeTXTData(data, options = { binary: false }) { - return dns_txt_1.default({ binary: options.binary }).encode(data); + return (0, dns_txt_1.default)({ binary: options.binary }).encode(data); } exports.serializeTXTData = serializeTXTData; diff --git a/dist/RecordRegistry.js b/dist/RecordRegistry.js index 5802734..af63297 100644 --- a/dist/RecordRegistry.js +++ b/dist/RecordRegistry.js @@ -1,9 +1,21 @@ "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 }); diff --git a/dist/RemoteService.js b/dist/RemoteService.js index c48fbb8..cf9b148 100644 --- a/dist/RemoteService.js +++ b/dist/RemoteService.js @@ -1,9 +1,21 @@ "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 }); diff --git a/dist/Response.js b/dist/Response.js index 73ee383..1fb64f0 100644 --- a/dist/Response.js +++ b/dist/Response.js @@ -1,9 +1,21 @@ "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 }); @@ -21,8 +33,11 @@ class Response { const additionals = (options.additionals || []) .map(x => MDNSUtil.parseRecord(x, parseOptions)) .filter(x => x); - return new Response(Object.assign(Object.assign({}, options), { answers, - additionals })); + return new Response({ + ...options, + answers, + additionals + }); } static serialize(options, serializeOptions) { const answers = (options.answers || []) @@ -31,8 +46,11 @@ class Response { const additionals = (options.additionals || []) .map(x => MDNSUtil.serializeRecord(x, serializeOptions)) .filter(x => x); - return new Response(Object.assign(Object.assign({}, options), { answers, - additionals })); + return new Response({ + ...options, + answers, + additionals + }); } } exports.default = Response; diff --git a/dist/Server.d.ts b/dist/Server.d.ts index d880a3a..f645149 100644 --- a/dist/Server.d.ts +++ b/dist/Server.d.ts @@ -13,12 +13,12 @@ export interface ServerOptions { socketOptions?: any; } interface Server { - on(event: 'response', callback: (response: Response, referrer: Referrer) => void): this; - on(event: 'query', callback: (query: Query, referrer: Referrer) => void): this; - on(event: 'destroy', callback: () => void): this; - once(event: 'response', callback: (response: Response, referrer: Referrer) => void): this; - once(event: 'query', callback: (query: Query, referrer: Referrer) => void): this; - once(event: 'destroy', callback: () => void): this; + on(event: "response", callback: (response: Response, referrer: Referrer) => void): this; + on(event: "query", callback: (query: Query, referrer: Referrer) => void): this; + on(event: "destroy", callback: () => void): this; + once(event: "response", callback: (response: Response, referrer: Referrer) => void): this; + once(event: "query", callback: (query: Query, referrer: Referrer) => void): this; + once(event: "destroy", callback: () => void): this; } declare class Server extends EventEmitter { transportOptions: TransportOptions; diff --git a/dist/Server.js b/dist/Server.js index a0227a8..bc7df7f 100644 --- a/dist/Server.js +++ b/dist/Server.js @@ -9,7 +9,7 @@ const events_1 = require("events"); const Constants_1 = require("./Constants"); const RecordRegistry_1 = __importDefault(require("./RecordRegistry")); const MDNSTransport_1 = __importDefault(require("./transports/MDNSTransport")); -const debugLog = debug_1.default("SpreadTheWord:Server"); +const debugLog = (0, debug_1.default)("SpreadTheWord:Server"); class Server extends events_1.EventEmitter { constructor(options = {}) { super(); diff --git a/dist/Service.d.ts b/dist/Service.d.ts index 0734a2a..35eb92e 100644 --- a/dist/Service.d.ts +++ b/dist/Service.d.ts @@ -14,8 +14,8 @@ export interface ServiceOptions { hostname?: string; } interface Service { - on(event: 'destroy', callback: () => void): this; - once(event: 'destroy', callback: () => void): this; + on(event: "destroy", callback: () => void): this; + once(event: "destroy", callback: () => void): this; } declare class Service extends EventEmitter { type: string; diff --git a/dist/Service.js b/dist/Service.js index b2fec7f..2870616 100644 --- a/dist/Service.js +++ b/dist/Service.js @@ -1,14 +1,26 @@ "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; +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; }; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const os_1 = __importDefault(require("os")); const debug_1 = __importDefault(require("debug")); @@ -18,7 +30,7 @@ const events_1 = require("events"); const MDNSUtil = __importStar(require("./MDNSUtil")); const records_1 = require("./records"); const Constants_1 = require("./Constants"); -const debugLog = debug_1.default("SpreadTheWord:Service"); +const debugLog = (0, debug_1.default)("SpreadTheWord:Service"); class Service extends events_1.EventEmitter { constructor(server, options) { super(); diff --git a/dist/SpreadTheWord.d.ts b/dist/SpreadTheWord.d.ts index b900b81..a5b7dc1 100644 --- a/dist/SpreadTheWord.d.ts +++ b/dist/SpreadTheWord.d.ts @@ -8,12 +8,12 @@ import Service, { ServiceOptions } from "./Service"; import Listener, { ListenerOptions } from "./Listener"; export declare type StatusType = "uninitialized" | "spreaded" | "destroyed"; interface SpreadTheWord { - on(event: 'up', callback: (remoteService: RemoteService, response: Response, referrer: Referrer) => void): this; - on(event: 'down', callback: (remoteService: RemoteService, response: Response, referrer: Referrer) => void): this; - on(event: 'destroy', callback: () => void): this; - once(event: 'up', callback: (remoteService: RemoteService, response: Response, referrer: Referrer) => void): this; - once(event: 'down', callback: (remoteService: RemoteService, response: Response, referrer: Referrer) => void): this; - once(event: 'destroy', callback: () => void): this; + on(event: "up", callback: (remoteService: RemoteService, response: Response, referrer: Referrer) => void): this; + on(event: "down", callback: (remoteService: RemoteService, response: Response, referrer: Referrer) => void): this; + on(event: "destroy", callback: () => void): this; + once(event: "up", callback: (remoteService: RemoteService, response: Response, referrer: Referrer) => void): this; + once(event: "down", callback: (remoteService: RemoteService, response: Response, referrer: Referrer) => void): this; + once(event: "destroy", callback: () => void): this; } declare class SpreadTheWord extends EventEmitter { server: Server; diff --git a/dist/index.js b/dist/index.js index b8ad343..993e358 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,33 +1,46 @@ "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; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.MDNSUtil = exports.transports = exports.records = exports.SpreadTheWord = exports.Listener = exports.Service = exports.RemoteService = exports.Referrer = exports.Response = exports.Question = exports.Query = exports.Server = void 0; var Server_1 = require("./Server"); -exports.Server = Server_1.default; +Object.defineProperty(exports, "Server", { enumerable: true, get: function () { return __importDefault(Server_1).default; } }); var Query_1 = require("./Query"); -exports.Query = Query_1.default; +Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return __importDefault(Query_1).default; } }); var Question_1 = require("./Question"); -exports.Question = Question_1.default; +Object.defineProperty(exports, "Question", { enumerable: true, get: function () { return __importDefault(Question_1).default; } }); var Response_1 = require("./Response"); -exports.Response = Response_1.default; +Object.defineProperty(exports, "Response", { enumerable: true, get: function () { return __importDefault(Response_1).default; } }); var Referrer_1 = require("./Referrer"); -exports.Referrer = Referrer_1.default; +Object.defineProperty(exports, "Referrer", { enumerable: true, get: function () { return __importDefault(Referrer_1).default; } }); var RemoteService_1 = require("./RemoteService"); -exports.RemoteService = RemoteService_1.default; +Object.defineProperty(exports, "RemoteService", { enumerable: true, get: function () { return __importDefault(RemoteService_1).default; } }); var Service_1 = require("./Service"); -exports.Service = Service_1.default; +Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return __importDefault(Service_1).default; } }); var Listener_1 = require("./Listener"); -exports.Listener = Listener_1.default; +Object.defineProperty(exports, "Listener", { enumerable: true, get: function () { return __importDefault(Listener_1).default; } }); var SpreadTheWord_1 = require("./SpreadTheWord"); -exports.SpreadTheWord = SpreadTheWord_1.default; +Object.defineProperty(exports, "SpreadTheWord", { enumerable: true, get: function () { return __importDefault(SpreadTheWord_1).default; } }); const records = __importStar(require("./records")); exports.records = records; const transports = __importStar(require("./transports")); diff --git a/dist/records/TXT.js b/dist/records/TXT.js index 715fb17..e257c1f 100644 --- a/dist/records/TXT.js +++ b/dist/records/TXT.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const debug_1 = __importDefault(require("debug")); const Record_1 = __importDefault(require("./Record")); const MDNSUtil_1 = require("../MDNSUtil"); -const debugLog = debug_1.default("SpreadTheWord:TXT"); +const debugLog = (0, debug_1.default)("SpreadTheWord:TXT"); class TXT extends Record_1.default { constructor({ name, data, ttl }) { super("TXT"); @@ -16,15 +16,21 @@ class TXT extends Record_1.default { } static parse(record, options = {}) { debugLog("parse", record.data, options); - const data = MDNSUtil_1.parseTXTData(record.data, options); + const data = (0, MDNSUtil_1.parseTXTData)(record.data, options); debugLog("parse output", data, options); - return new TXT(Object.assign(Object.assign({}, record), { data })); + return new TXT({ + ...record, + data + }); } static serialize(record, options = {}) { debugLog("serialize", record.data, options); - const data = MDNSUtil_1.serializeTXTData(record.data, options); + const data = (0, MDNSUtil_1.serializeTXTData)(record.data, options); debugLog("serialize output", data, options); - return new TXT(Object.assign(Object.assign({}, record), { data })); + return new TXT({ + ...record, + data + }); } } exports.default = TXT; diff --git a/dist/records/index.js b/dist/records/index.js index 564a8a9..526ea7a 100644 --- a/dist/records/index.js +++ b/dist/records/index.js @@ -1,15 +1,19 @@ "use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); +exports.TXT = exports.PTR = exports.SRV = exports.AAAA = exports.A = exports.default = exports.Record = void 0; var Record_1 = require("./Record"); -exports.Record = Record_1.default; -exports.default = Record_1.default; +Object.defineProperty(exports, "Record", { enumerable: true, get: function () { return __importDefault(Record_1).default; } }); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(Record_1).default; } }); var A_1 = require("./A"); -exports.A = A_1.default; +Object.defineProperty(exports, "A", { enumerable: true, get: function () { return __importDefault(A_1).default; } }); var AAAA_1 = require("./AAAA"); -exports.AAAA = AAAA_1.default; +Object.defineProperty(exports, "AAAA", { enumerable: true, get: function () { return __importDefault(AAAA_1).default; } }); var SRV_1 = require("./SRV"); -exports.SRV = SRV_1.default; +Object.defineProperty(exports, "SRV", { enumerable: true, get: function () { return __importDefault(SRV_1).default; } }); var PTR_1 = require("./PTR"); -exports.PTR = PTR_1.default; +Object.defineProperty(exports, "PTR", { enumerable: true, get: function () { return __importDefault(PTR_1).default; } }); var TXT_1 = require("./TXT"); -exports.TXT = TXT_1.default; +Object.defineProperty(exports, "TXT", { enumerable: true, get: function () { return __importDefault(TXT_1).default; } }); diff --git a/dist/transports/LocalTransport.d.ts b/dist/transports/LocalTransport.d.ts index 71ef9a4..ed52183 100644 --- a/dist/transports/LocalTransport.d.ts +++ b/dist/transports/LocalTransport.d.ts @@ -12,16 +12,16 @@ export interface LocalTransportOptions extends TransportOptions { }>; } interface LocalTransport { - on(event: 'query', callback: (query: Query, referrer: Referrer) => void): this; - on(event: 'response', callback: (response: any, referrer: Referrer) => void): this; - on(event: 'localQuery', callback: (packet: any, referrerObj: any) => void): this; - on(event: 'localResponse', callback: (packet: any, referrerObj: any) => void): this; - on(event: 'destroy', callback: () => void): this; - once(event: 'query', callback: (query: Query, referrer: Referrer) => void): this; - once(event: 'response', callback: (response: any, referrer: Referrer) => void): this; - once(event: 'localQuery', callback: (packet: any, referrerObj: any) => void): this; - once(event: 'localResponse', callback: (packet: any, referrerObj: any) => void): this; - once(event: 'destroy', callback: () => void): this; + on(event: "query", callback: (query: Query, referrer: Referrer) => void): this; + on(event: "response", callback: (response: any, referrer: Referrer) => void): this; + on(event: "localQuery", callback: (packet: any, referrerObj: any) => void): this; + on(event: "localResponse", callback: (packet: any, referrerObj: any) => void): this; + on(event: "destroy", callback: () => void): this; + once(event: "query", callback: (query: Query, referrer: Referrer) => void): this; + once(event: "response", callback: (response: any, referrer: Referrer) => void): this; + once(event: "localQuery", callback: (packet: any, referrerObj: any) => void): this; + once(event: "localResponse", callback: (packet: any, referrerObj: any) => void): this; + once(event: "destroy", callback: () => void): this; } declare class LocalTransport extends EventEmitter implements Transport { options: LocalTransportOptions; diff --git a/dist/transports/MDNSTransport.d.ts b/dist/transports/MDNSTransport.d.ts index 7b1028d..6371676 100644 --- a/dist/transports/MDNSTransport.d.ts +++ b/dist/transports/MDNSTransport.d.ts @@ -5,10 +5,10 @@ import Response from "../Response"; import { EventEmitter } from "events"; import Transport, { TransportOptions } from "./Transport"; interface MDNSTransport { - on(event: 'query', callback: (query: Query, referrer: Referrer) => void): this; - on(event: 'response', callback: (response: any, referrer: Referrer) => void): this; - once(event: 'query', callback: (query: Query, referrer: Referrer) => void): this; - once(event: 'response', callback: (response: any, referrer: Referrer) => void): this; + on(event: "query", callback: (query: Query, referrer: Referrer) => void): this; + on(event: "response", callback: (response: any, referrer: Referrer) => void): this; + once(event: "query", callback: (query: Query, referrer: Referrer) => void): this; + once(event: "response", callback: (response: any, referrer: Referrer) => void): this; } declare class MDNSTransport extends EventEmitter implements Transport { options: TransportOptions; diff --git a/dist/transports/MDNSTransport.js b/dist/transports/MDNSTransport.js index cc20a78..e5188e8 100644 --- a/dist/transports/MDNSTransport.js +++ b/dist/transports/MDNSTransport.js @@ -1,14 +1,26 @@ "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; +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; }; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); const Query_1 = __importDefault(require("../Query")); const Referrer_1 = __importDefault(require("../Referrer")); @@ -21,7 +33,7 @@ class MDNSTransport extends events_1.EventEmitter { super(); this.destroyed = false; this.options = options; - this.mdns = multicast_dns_1.default(); + this.mdns = (0, multicast_dns_1.default)(); this.mdns.setMaxListeners(0); this.mdns.on("query", async (packet, referrerObj) => { const query = new Query_1.default(packet); diff --git a/dist/transports/index.js b/dist/transports/index.js index 96ce32a..e12ba8f 100644 --- a/dist/transports/index.js +++ b/dist/transports/index.js @@ -1,6 +1,10 @@ "use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); +exports.MDNSTransport = exports.LocalTransport = void 0; var LocalTransport_1 = require("./LocalTransport"); -exports.LocalTransport = LocalTransport_1.default; +Object.defineProperty(exports, "LocalTransport", { enumerable: true, get: function () { return __importDefault(LocalTransport_1).default; } }); var MDNSTransport_1 = require("./MDNSTransport"); -exports.MDNSTransport = MDNSTransport_1.default; +Object.defineProperty(exports, "MDNSTransport", { enumerable: true, get: function () { return __importDefault(MDNSTransport_1).default; } }); diff --git a/docs/assets/js/search.js b/docs/assets/js/search.js index 649cd5a..8917a24 100644 --- a/docs/assets/js/search.js +++ b/docs/assets/js/search.js @@ -1,3 +1,3 @@ var typedoc = typedoc || {}; typedoc.search = typedoc.search || {}; - typedoc.search.data = {"kinds":{"32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","4194304":"Type alias"},"rows":[{"id":0,"kind":32,"name":"TOP_LEVEL_DOMAIN","url":"globals.html#top_level_domain","classes":"tsd-kind-variable"},{"id":1,"kind":32,"name":"WILDCARD","url":"globals.html#wildcard","classes":"tsd-kind-variable"},{"id":2,"kind":32,"name":"REANNOUNCE_MAX_MS","url":"globals.html#reannounce_max_ms","classes":"tsd-kind-variable"},{"id":3,"kind":32,"name":"REANNOUNCE_FACTOR","url":"globals.html#reannounce_factor","classes":"tsd-kind-variable"},{"id":4,"kind":32,"name":"REQUERY_MAX_MS","url":"globals.html#requery_max_ms","classes":"tsd-kind-variable"},{"id":5,"kind":32,"name":"REQUERY_FACTOR","url":"globals.html#requery_factor","classes":"tsd-kind-variable"},{"id":6,"kind":128,"name":"Record","url":"classes/record.html","classes":"tsd-kind-class"},{"id":7,"kind":1024,"name":"name","url":"classes/record.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":8,"kind":1024,"name":"type","url":"classes/record.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":9,"kind":1024,"name":"ttl","url":"classes/record.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":10,"kind":1024,"name":"timestamp","url":"classes/record.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":11,"kind":1024,"name":"data","url":"classes/record.html#data","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":12,"kind":512,"name":"constructor","url":"classes/record.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Record"},{"id":13,"kind":4194304,"name":"RecordType","url":"globals.html#recordtype","classes":"tsd-kind-type-alias"},{"id":14,"kind":128,"name":"Question","url":"classes/question.html","classes":"tsd-kind-class"},{"id":15,"kind":1024,"name":"name","url":"classes/question.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Question"},{"id":16,"kind":1024,"name":"type","url":"classes/question.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Question"},{"id":17,"kind":512,"name":"constructor","url":"classes/question.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Question"},{"id":18,"kind":256,"name":"QueryOptions","url":"interfaces/queryoptions.html","classes":"tsd-kind-interface"},{"id":19,"kind":1024,"name":"questions","url":"interfaces/queryoptions.html#questions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"QueryOptions"},{"id":20,"kind":128,"name":"Query","url":"classes/query.html","classes":"tsd-kind-class"},{"id":21,"kind":1024,"name":"questions","url":"classes/query.html#questions","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Query"},{"id":22,"kind":512,"name":"constructor","url":"classes/query.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Query"},{"id":23,"kind":128,"name":"A","url":"classes/a.html","classes":"tsd-kind-class"},{"id":24,"kind":1024,"name":"name","url":"classes/a.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"A"},{"id":25,"kind":1024,"name":"data","url":"classes/a.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"A"},{"id":26,"kind":512,"name":"constructor","url":"classes/a.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"A"},{"id":27,"kind":1024,"name":"type","url":"classes/a.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"A"},{"id":28,"kind":1024,"name":"ttl","url":"classes/a.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"A"},{"id":29,"kind":1024,"name":"timestamp","url":"classes/a.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"A"},{"id":30,"kind":128,"name":"TXT","url":"classes/txt.html","classes":"tsd-kind-class"},{"id":31,"kind":1024,"name":"name","url":"classes/txt.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"TXT"},{"id":32,"kind":1024,"name":"data","url":"classes/txt.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"TXT"},{"id":33,"kind":512,"name":"constructor","url":"classes/txt.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"TXT"},{"id":34,"kind":2048,"name":"parse","url":"classes/txt.html#parse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"TXT"},{"id":35,"kind":2048,"name":"serialize","url":"classes/txt.html#serialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"TXT"},{"id":36,"kind":1024,"name":"type","url":"classes/txt.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"TXT"},{"id":37,"kind":1024,"name":"ttl","url":"classes/txt.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"TXT"},{"id":38,"kind":1024,"name":"timestamp","url":"classes/txt.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"TXT"},{"id":39,"kind":4194304,"name":"DataType","url":"globals.html#datatype","classes":"tsd-kind-type-alias"},{"id":40,"kind":32,"name":"debugLog","url":"globals.html#debuglog","classes":"tsd-kind-variable"},{"id":41,"kind":128,"name":"SRV","url":"classes/srv.html","classes":"tsd-kind-class"},{"id":42,"kind":1024,"name":"name","url":"classes/srv.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"SRV"},{"id":43,"kind":1024,"name":"data","url":"classes/srv.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"SRV"},{"id":44,"kind":65536,"name":"__type","url":"classes/srv.html#data.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"SRV.data"},{"id":45,"kind":32,"name":"target","url":"classes/srv.html#data.__type.target","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"SRV.data.__type"},{"id":46,"kind":32,"name":"port","url":"classes/srv.html#data.__type.port","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"SRV.data.__type"},{"id":47,"kind":512,"name":"constructor","url":"classes/srv.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"SRV"},{"id":48,"kind":1024,"name":"type","url":"classes/srv.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"SRV"},{"id":49,"kind":1024,"name":"ttl","url":"classes/srv.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"SRV"},{"id":50,"kind":1024,"name":"timestamp","url":"classes/srv.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"SRV"},{"id":51,"kind":128,"name":"PTR","url":"classes/ptr.html","classes":"tsd-kind-class"},{"id":52,"kind":1024,"name":"name","url":"classes/ptr.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"PTR"},{"id":53,"kind":1024,"name":"data","url":"classes/ptr.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"PTR"},{"id":54,"kind":512,"name":"constructor","url":"classes/ptr.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"PTR"},{"id":55,"kind":1024,"name":"type","url":"classes/ptr.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"PTR"},{"id":56,"kind":1024,"name":"ttl","url":"classes/ptr.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"PTR"},{"id":57,"kind":1024,"name":"timestamp","url":"classes/ptr.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"PTR"},{"id":58,"kind":128,"name":"AAAA","url":"classes/aaaa.html","classes":"tsd-kind-class"},{"id":59,"kind":1024,"name":"name","url":"classes/aaaa.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"AAAA"},{"id":60,"kind":1024,"name":"data","url":"classes/aaaa.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"AAAA"},{"id":61,"kind":512,"name":"constructor","url":"classes/aaaa.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"AAAA"},{"id":62,"kind":1024,"name":"type","url":"classes/aaaa.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"AAAA"},{"id":63,"kind":1024,"name":"ttl","url":"classes/aaaa.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"AAAA"},{"id":64,"kind":1024,"name":"timestamp","url":"classes/aaaa.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"AAAA"},{"id":65,"kind":256,"name":"MDNSNameOptions","url":"interfaces/mdnsnameoptions.html","classes":"tsd-kind-interface"},{"id":66,"kind":1024,"name":"name","url":"interfaces/mdnsnameoptions.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":67,"kind":1024,"name":"subtypes","url":"interfaces/mdnsnameoptions.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":68,"kind":1024,"name":"type","url":"interfaces/mdnsnameoptions.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":69,"kind":1024,"name":"protocol","url":"interfaces/mdnsnameoptions.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":70,"kind":1024,"name":"domain","url":"interfaces/mdnsnameoptions.html#domain","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":71,"kind":256,"name":"TXTData","url":"interfaces/txtdata.html","classes":"tsd-kind-interface"},{"id":72,"kind":64,"name":"serializeDNSName","url":"globals.html#serializednsname","classes":"tsd-kind-function"},{"id":73,"kind":64,"name":"parseDNSName","url":"globals.html#parsednsname","classes":"tsd-kind-function"},{"id":74,"kind":64,"name":"sameRecord","url":"globals.html#samerecord","classes":"tsd-kind-function"},{"id":75,"kind":64,"name":"getExternalAddresses","url":"globals.html#getexternaladdresses","classes":"tsd-kind-function"},{"id":76,"kind":64,"name":"parseRecord","url":"globals.html#parserecord","classes":"tsd-kind-function"},{"id":77,"kind":64,"name":"serializeRecord","url":"globals.html#serializerecord","classes":"tsd-kind-function"},{"id":78,"kind":64,"name":"parseTXTData","url":"globals.html#parsetxtdata","classes":"tsd-kind-function"},{"id":79,"kind":64,"name":"serializeTXTData","url":"globals.html#serializetxtdata","classes":"tsd-kind-function"},{"id":80,"kind":256,"name":"ResponseOptions","url":"interfaces/responseoptions.html","classes":"tsd-kind-interface"},{"id":81,"kind":1024,"name":"answers","url":"interfaces/responseoptions.html#answers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ResponseOptions"},{"id":82,"kind":1024,"name":"additionals","url":"interfaces/responseoptions.html#additionals","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ResponseOptions"},{"id":83,"kind":128,"name":"Response","url":"classes/response.html","classes":"tsd-kind-class"},{"id":84,"kind":1024,"name":"answers","url":"classes/response.html#answers","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Response"},{"id":85,"kind":1024,"name":"additionals","url":"classes/response.html#additionals","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Response"},{"id":86,"kind":512,"name":"constructor","url":"classes/response.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Response"},{"id":87,"kind":2048,"name":"parse","url":"classes/response.html#parse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Response"},{"id":88,"kind":2048,"name":"serialize","url":"classes/response.html#serialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Response"},{"id":89,"kind":4194304,"name":"AddressRecord","url":"globals.html#addressrecord","classes":"tsd-kind-type-alias"},{"id":90,"kind":256,"name":"ServiceOptions","url":"interfaces/serviceoptions.html","classes":"tsd-kind-interface"},{"id":91,"kind":1024,"name":"name","url":"interfaces/serviceoptions.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":92,"kind":1024,"name":"type","url":"interfaces/serviceoptions.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":93,"kind":1024,"name":"port","url":"interfaces/serviceoptions.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":94,"kind":1024,"name":"protocol","url":"interfaces/serviceoptions.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":95,"kind":1024,"name":"subtypes","url":"interfaces/serviceoptions.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":96,"kind":1024,"name":"txt","url":"interfaces/serviceoptions.html#txt","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":97,"kind":1024,"name":"hostname","url":"interfaces/serviceoptions.html#hostname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":98,"kind":128,"name":"Service","url":"classes/service.html","classes":"tsd-kind-class"},{"id":99,"kind":2048,"name":"on","url":"classes/service.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Service"},{"id":100,"kind":2048,"name":"once","url":"classes/service.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Service"},{"id":101,"kind":1024,"name":"type","url":"classes/service.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":102,"kind":1024,"name":"name","url":"classes/service.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":103,"kind":1024,"name":"server","url":"classes/service.html#server","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":104,"kind":1024,"name":"dnsName","url":"classes/service.html#dnsname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":105,"kind":1024,"name":"dnsType","url":"classes/service.html#dnstype","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":106,"kind":1024,"name":"protocol","url":"classes/service.html#protocol","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":107,"kind":1024,"name":"hostname","url":"classes/service.html#hostname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":108,"kind":1024,"name":"port","url":"classes/service.html#port","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":109,"kind":1024,"name":"txt","url":"classes/service.html#txt","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":110,"kind":1024,"name":"rawTxt","url":"classes/service.html#rawtxt","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":111,"kind":1024,"name":"subtypes","url":"classes/service.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":112,"kind":1024,"name":"spreaded","url":"classes/service.html#spreaded","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":113,"kind":1024,"name":"destroyed","url":"classes/service.html#destroyed","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":114,"kind":1024,"name":"broadcastDelay","url":"classes/service.html#broadcastdelay","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":115,"kind":512,"name":"constructor","url":"classes/service.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Service"},{"id":116,"kind":2048,"name":"spread","url":"classes/service.html#spread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":117,"kind":2048,"name":"getServiceRecords","url":"classes/service.html#getservicerecords","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":118,"kind":2048,"name":"getAddressRecords","url":"classes/service.html#getaddressrecords","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":119,"kind":2048,"name":"broadcast","url":"classes/service.html#broadcast","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":120,"kind":2048,"name":"hide","url":"classes/service.html#hide","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":121,"kind":2048,"name":"sendGoodbye","url":"classes/service.html#sendgoodbye","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":122,"kind":2048,"name":"destroy","url":"classes/service.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":123,"kind":2048,"name":"listenerCount","url":"classes/service.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":124,"kind":1024,"name":"defaultMaxListeners","url":"classes/service.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":125,"kind":2048,"name":"addListener","url":"classes/service.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":126,"kind":2048,"name":"prependListener","url":"classes/service.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":127,"kind":2048,"name":"prependOnceListener","url":"classes/service.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":128,"kind":2048,"name":"removeListener","url":"classes/service.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":129,"kind":2048,"name":"removeAllListeners","url":"classes/service.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":130,"kind":2048,"name":"setMaxListeners","url":"classes/service.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":131,"kind":2048,"name":"getMaxListeners","url":"classes/service.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":132,"kind":2048,"name":"listeners","url":"classes/service.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":133,"kind":2048,"name":"rawListeners","url":"classes/service.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":134,"kind":2048,"name":"emit","url":"classes/service.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":135,"kind":2048,"name":"eventNames","url":"classes/service.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":136,"kind":2048,"name":"listenerCount","url":"classes/service.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Service"},{"id":137,"kind":256,"name":"ReferrerOptions","url":"interfaces/referreroptions.html","classes":"tsd-kind-interface"},{"id":138,"kind":1024,"name":"address","url":"interfaces/referreroptions.html#address","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ReferrerOptions"},{"id":139,"kind":1024,"name":"family","url":"interfaces/referreroptions.html#family","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ReferrerOptions"},{"id":140,"kind":1024,"name":"port","url":"interfaces/referreroptions.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ReferrerOptions"},{"id":141,"kind":1024,"name":"size","url":"interfaces/referreroptions.html#size","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ReferrerOptions"},{"id":142,"kind":128,"name":"Referrer","url":"classes/referrer.html","classes":"tsd-kind-class"},{"id":143,"kind":1024,"name":"address","url":"classes/referrer.html#address","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Referrer"},{"id":144,"kind":1024,"name":"family","url":"classes/referrer.html#family","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Referrer"},{"id":145,"kind":1024,"name":"port","url":"classes/referrer.html#port","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Referrer"},{"id":146,"kind":1024,"name":"size","url":"classes/referrer.html#size","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Referrer"},{"id":147,"kind":512,"name":"constructor","url":"classes/referrer.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Referrer"},{"id":148,"kind":128,"name":"RecordRegistry","url":"classes/recordregistry.html","classes":"tsd-kind-class"},{"id":149,"kind":1024,"name":"records","url":"classes/recordregistry.html#records","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RecordRegistry"},{"id":150,"kind":2048,"name":"add","url":"classes/recordregistry.html#add","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":151,"kind":2048,"name":"addAll","url":"classes/recordregistry.html#addall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":152,"kind":2048,"name":"remove","url":"classes/recordregistry.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":153,"kind":2048,"name":"removeAll","url":"classes/recordregistry.html#removeall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":154,"kind":2048,"name":"findUnresolved","url":"classes/recordregistry.html#findunresolved","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":155,"kind":2048,"name":"tracePTR","url":"classes/recordregistry.html#traceptr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":156,"kind":2048,"name":"findOneSRVByName","url":"classes/recordregistry.html#findonesrvbyname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":157,"kind":2048,"name":"findOneTXTByName","url":"classes/recordregistry.html#findonetxtbyname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":158,"kind":2048,"name":"findSRVsByType","url":"classes/recordregistry.html#findsrvsbytype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":159,"kind":2048,"name":"findAddressRecordsByHostname","url":"classes/recordregistry.html#findaddressrecordsbyhostname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":160,"kind":2048,"name":"find","url":"classes/recordregistry.html#find","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":161,"kind":2048,"name":"findOne","url":"classes/recordregistry.html#findone","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":162,"kind":2048,"name":"keepHouse","url":"classes/recordregistry.html#keephouse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":163,"kind":256,"name":"TransportOptions","url":"interfaces/transportoptions.html","classes":"tsd-kind-interface"},{"id":164,"kind":1024,"name":"binaryTXT","url":"interfaces/transportoptions.html#binarytxt","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"TransportOptions"},{"id":165,"kind":256,"name":"Transport","url":"interfaces/transport.html","classes":"tsd-kind-interface"},{"id":166,"kind":2048,"name":"query","url":"interfaces/transport.html#query","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Transport"},{"id":167,"kind":2048,"name":"respond","url":"interfaces/transport.html#respond","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Transport"},{"id":168,"kind":2048,"name":"destroy","url":"interfaces/transport.html#destroy","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Transport"},{"id":169,"kind":2048,"name":"getAddresses","url":"interfaces/transport.html#getaddresses","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Transport"},{"id":170,"kind":2048,"name":"listenerCount","url":"interfaces/transport.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":171,"kind":1024,"name":"defaultMaxListeners","url":"interfaces/transport.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":172,"kind":2048,"name":"addListener","url":"interfaces/transport.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":173,"kind":2048,"name":"on","url":"interfaces/transport.html#on","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":174,"kind":2048,"name":"once","url":"interfaces/transport.html#once","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":175,"kind":2048,"name":"prependListener","url":"interfaces/transport.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":176,"kind":2048,"name":"prependOnceListener","url":"interfaces/transport.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":177,"kind":2048,"name":"removeListener","url":"interfaces/transport.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":178,"kind":2048,"name":"removeAllListeners","url":"interfaces/transport.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":179,"kind":2048,"name":"setMaxListeners","url":"interfaces/transport.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":180,"kind":2048,"name":"getMaxListeners","url":"interfaces/transport.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":181,"kind":2048,"name":"listeners","url":"interfaces/transport.html#listeners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":182,"kind":2048,"name":"rawListeners","url":"interfaces/transport.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":183,"kind":2048,"name":"emit","url":"interfaces/transport.html#emit","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":184,"kind":2048,"name":"eventNames","url":"interfaces/transport.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":185,"kind":2048,"name":"listenerCount","url":"interfaces/transport.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"Transport"},{"id":186,"kind":128,"name":"MDNSTransport","url":"classes/mdnstransport.html","classes":"tsd-kind-class"},{"id":187,"kind":2048,"name":"on","url":"classes/mdnstransport.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"MDNSTransport"},{"id":188,"kind":2048,"name":"once","url":"classes/mdnstransport.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"MDNSTransport"},{"id":189,"kind":1024,"name":"options","url":"classes/mdnstransport.html#options","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MDNSTransport"},{"id":190,"kind":1024,"name":"destroyed","url":"classes/mdnstransport.html#destroyed","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MDNSTransport"},{"id":191,"kind":1024,"name":"mdns","url":"classes/mdnstransport.html#mdns","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MDNSTransport"},{"id":192,"kind":512,"name":"constructor","url":"classes/mdnstransport.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MDNSTransport"},{"id":193,"kind":2048,"name":"query","url":"classes/mdnstransport.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MDNSTransport"},{"id":194,"kind":2048,"name":"respond","url":"classes/mdnstransport.html#respond","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MDNSTransport"},{"id":195,"kind":2048,"name":"destroy","url":"classes/mdnstransport.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MDNSTransport"},{"id":196,"kind":2048,"name":"getAddresses","url":"classes/mdnstransport.html#getaddresses","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MDNSTransport"},{"id":197,"kind":2048,"name":"listenerCount","url":"classes/mdnstransport.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":198,"kind":1024,"name":"defaultMaxListeners","url":"classes/mdnstransport.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":199,"kind":2048,"name":"addListener","url":"classes/mdnstransport.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":200,"kind":2048,"name":"prependListener","url":"classes/mdnstransport.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":201,"kind":2048,"name":"prependOnceListener","url":"classes/mdnstransport.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":202,"kind":2048,"name":"removeListener","url":"classes/mdnstransport.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":203,"kind":2048,"name":"removeAllListeners","url":"classes/mdnstransport.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":204,"kind":2048,"name":"setMaxListeners","url":"classes/mdnstransport.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":205,"kind":2048,"name":"getMaxListeners","url":"classes/mdnstransport.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":206,"kind":2048,"name":"listeners","url":"classes/mdnstransport.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":207,"kind":2048,"name":"rawListeners","url":"classes/mdnstransport.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":208,"kind":2048,"name":"emit","url":"classes/mdnstransport.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":209,"kind":2048,"name":"eventNames","url":"classes/mdnstransport.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":210,"kind":2048,"name":"listenerCount","url":"classes/mdnstransport.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MDNSTransport"},{"id":211,"kind":256,"name":"ServerOptions","url":"interfaces/serveroptions.html","classes":"tsd-kind-interface"},{"id":212,"kind":1024,"name":"transportOptions","url":"interfaces/serveroptions.html#transportoptions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServerOptions"},{"id":213,"kind":1024,"name":"transport","url":"interfaces/serveroptions.html#transport","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServerOptions"},{"id":214,"kind":1024,"name":"recordRegistry","url":"interfaces/serveroptions.html#recordregistry","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServerOptions"},{"id":215,"kind":1024,"name":"socketOptions","url":"interfaces/serveroptions.html#socketoptions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServerOptions"},{"id":216,"kind":128,"name":"Server","url":"classes/server.html","classes":"tsd-kind-class"},{"id":217,"kind":2048,"name":"on","url":"classes/server.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Server"},{"id":218,"kind":2048,"name":"once","url":"classes/server.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Server"},{"id":219,"kind":1024,"name":"transportOptions","url":"classes/server.html#transportoptions","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":220,"kind":1024,"name":"services","url":"classes/server.html#services","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":221,"kind":1024,"name":"transport","url":"classes/server.html#transport","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":222,"kind":1024,"name":"recordRegistry","url":"classes/server.html#recordregistry","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":223,"kind":1024,"name":"destroyed","url":"classes/server.html#destroyed","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":224,"kind":512,"name":"constructor","url":"classes/server.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Server"},{"id":225,"kind":2048,"name":"queryAndListen","url":"classes/server.html#queryandlisten","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":226,"kind":2048,"name":"answerQuery","url":"classes/server.html#answerquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":227,"kind":2048,"name":"destroy","url":"classes/server.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":228,"kind":2048,"name":"addService","url":"classes/server.html#addservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":229,"kind":2048,"name":"removeService","url":"classes/server.html#removeservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":230,"kind":2048,"name":"listenerCount","url":"classes/server.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":231,"kind":1024,"name":"defaultMaxListeners","url":"classes/server.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":232,"kind":2048,"name":"addListener","url":"classes/server.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":233,"kind":2048,"name":"prependListener","url":"classes/server.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":234,"kind":2048,"name":"prependOnceListener","url":"classes/server.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":235,"kind":2048,"name":"removeListener","url":"classes/server.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":236,"kind":2048,"name":"removeAllListeners","url":"classes/server.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":237,"kind":2048,"name":"setMaxListeners","url":"classes/server.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":238,"kind":2048,"name":"getMaxListeners","url":"classes/server.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":239,"kind":2048,"name":"listeners","url":"classes/server.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":240,"kind":2048,"name":"rawListeners","url":"classes/server.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":241,"kind":2048,"name":"emit","url":"classes/server.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":242,"kind":2048,"name":"eventNames","url":"classes/server.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":243,"kind":2048,"name":"listenerCount","url":"classes/server.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Server"},{"id":244,"kind":128,"name":"RemoteService","url":"classes/remoteservice.html","classes":"tsd-kind-class"},{"id":245,"kind":1024,"name":"name","url":"classes/remoteservice.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":246,"kind":1024,"name":"type","url":"classes/remoteservice.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":247,"kind":1024,"name":"subtypes","url":"classes/remoteservice.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":248,"kind":1024,"name":"protocol","url":"classes/remoteservice.html#protocol","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":249,"kind":1024,"name":"domain","url":"classes/remoteservice.html#domain","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":250,"kind":1024,"name":"hostname","url":"classes/remoteservice.html#hostname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":251,"kind":1024,"name":"port","url":"classes/remoteservice.html#port","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":252,"kind":1024,"name":"txt","url":"classes/remoteservice.html#txt","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":253,"kind":1024,"name":"addresses","url":"classes/remoteservice.html#addresses","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":254,"kind":512,"name":"constructor","url":"classes/remoteservice.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"RemoteService"},{"id":255,"kind":256,"name":"ListenerOptions","url":"interfaces/listeneroptions.html","classes":"tsd-kind-interface"},{"id":256,"kind":1024,"name":"name","url":"interfaces/listeneroptions.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ListenerOptions"},{"id":257,"kind":1024,"name":"type","url":"interfaces/listeneroptions.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ListenerOptions"},{"id":258,"kind":1024,"name":"protocol","url":"interfaces/listeneroptions.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ListenerOptions"},{"id":259,"kind":1024,"name":"subtypes","url":"interfaces/listeneroptions.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ListenerOptions"},{"id":260,"kind":128,"name":"Listener","url":"classes/listener.html","classes":"tsd-kind-class"},{"id":261,"kind":2048,"name":"on","url":"classes/listener.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Listener"},{"id":262,"kind":2048,"name":"once","url":"classes/listener.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Listener"},{"id":263,"kind":1024,"name":"server","url":"classes/listener.html#server","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":264,"kind":1024,"name":"remoteServices","url":"classes/listener.html#remoteservices","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":265,"kind":1024,"name":"typeName","url":"classes/listener.html#typename","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":266,"kind":1024,"name":"wildcard","url":"classes/listener.html#wildcard","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":267,"kind":1024,"name":"requeryDelay","url":"classes/listener.html#requerydelay","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":268,"kind":512,"name":"constructor","url":"classes/listener.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Listener"},{"id":269,"kind":2048,"name":"listen","url":"classes/listener.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":270,"kind":2048,"name":"query","url":"classes/listener.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":271,"kind":2048,"name":"requery","url":"classes/listener.html#requery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":272,"kind":2048,"name":"onResponse","url":"classes/listener.html#onresponse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":273,"kind":2048,"name":"destroy","url":"classes/listener.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":274,"kind":2048,"name":"addRemoteService","url":"classes/listener.html#addremoteservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":275,"kind":2048,"name":"removeRemoteService","url":"classes/listener.html#removeremoteservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":276,"kind":2048,"name":"queryUnresolvedRecords","url":"classes/listener.html#queryunresolvedrecords","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":277,"kind":2048,"name":"listenerCount","url":"classes/listener.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":278,"kind":1024,"name":"defaultMaxListeners","url":"classes/listener.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":279,"kind":2048,"name":"addListener","url":"classes/listener.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":280,"kind":2048,"name":"prependListener","url":"classes/listener.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":281,"kind":2048,"name":"prependOnceListener","url":"classes/listener.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":282,"kind":2048,"name":"removeListener","url":"classes/listener.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":283,"kind":2048,"name":"removeAllListeners","url":"classes/listener.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":284,"kind":2048,"name":"setMaxListeners","url":"classes/listener.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":285,"kind":2048,"name":"getMaxListeners","url":"classes/listener.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":286,"kind":2048,"name":"listeners","url":"classes/listener.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":287,"kind":2048,"name":"rawListeners","url":"classes/listener.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":288,"kind":2048,"name":"emit","url":"classes/listener.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":289,"kind":2048,"name":"eventNames","url":"classes/listener.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":290,"kind":2048,"name":"listenerCount","url":"classes/listener.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Listener"},{"id":291,"kind":128,"name":"SpreadTheWord","url":"classes/spreadtheword.html","classes":"tsd-kind-class"},{"id":292,"kind":2048,"name":"on","url":"classes/spreadtheword.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"SpreadTheWord"},{"id":293,"kind":2048,"name":"once","url":"classes/spreadtheword.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"SpreadTheWord"},{"id":294,"kind":1024,"name":"server","url":"classes/spreadtheword.html#server","classes":"tsd-kind-property tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":295,"kind":1024,"name":"servicesList","url":"classes/spreadtheword.html#serviceslist","classes":"tsd-kind-property tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":296,"kind":1024,"name":"listenersList","url":"classes/spreadtheword.html#listenerslist","classes":"tsd-kind-property tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":297,"kind":1024,"name":"status","url":"classes/spreadtheword.html#status","classes":"tsd-kind-property tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":298,"kind":2048,"name":"init","url":"classes/spreadtheword.html#init","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":299,"kind":2048,"name":"spread","url":"classes/spreadtheword.html#spread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":300,"kind":2048,"name":"listen","url":"classes/spreadtheword.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":301,"kind":2048,"name":"destroy","url":"classes/spreadtheword.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":302,"kind":2048,"name":"listenerCount","url":"classes/spreadtheword.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":303,"kind":1024,"name":"defaultMaxListeners","url":"classes/spreadtheword.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":304,"kind":2048,"name":"addListener","url":"classes/spreadtheword.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":305,"kind":2048,"name":"prependListener","url":"classes/spreadtheword.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":306,"kind":2048,"name":"prependOnceListener","url":"classes/spreadtheword.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":307,"kind":2048,"name":"removeListener","url":"classes/spreadtheword.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":308,"kind":2048,"name":"removeAllListeners","url":"classes/spreadtheword.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":309,"kind":2048,"name":"setMaxListeners","url":"classes/spreadtheword.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":310,"kind":2048,"name":"getMaxListeners","url":"classes/spreadtheword.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":311,"kind":2048,"name":"listeners","url":"classes/spreadtheword.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":312,"kind":2048,"name":"rawListeners","url":"classes/spreadtheword.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":313,"kind":2048,"name":"emit","url":"classes/spreadtheword.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":314,"kind":2048,"name":"eventNames","url":"classes/spreadtheword.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":315,"kind":2048,"name":"listenerCount","url":"classes/spreadtheword.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"SpreadTheWord"},{"id":316,"kind":4194304,"name":"StatusType","url":"globals.html#statustype","classes":"tsd-kind-type-alias"},{"id":317,"kind":256,"name":"LocalTransportOptions","url":"interfaces/localtransportoptions.html","classes":"tsd-kind-interface"},{"id":318,"kind":1024,"name":"referrerOptions","url":"interfaces/localtransportoptions.html#referreroptions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"LocalTransportOptions"},{"id":319,"kind":1024,"name":"addresses","url":"interfaces/localtransportoptions.html#addresses","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"LocalTransportOptions"},{"id":320,"kind":1024,"name":"binaryTXT","url":"interfaces/localtransportoptions.html#binarytxt","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"LocalTransportOptions"},{"id":321,"kind":128,"name":"LocalTransport","url":"classes/localtransport.html","classes":"tsd-kind-class"},{"id":322,"kind":2048,"name":"on","url":"classes/localtransport.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"LocalTransport"},{"id":323,"kind":2048,"name":"once","url":"classes/localtransport.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"LocalTransport"},{"id":324,"kind":1024,"name":"options","url":"classes/localtransport.html#options","classes":"tsd-kind-property tsd-parent-kind-class","parent":"LocalTransport"},{"id":325,"kind":1024,"name":"addresses","url":"classes/localtransport.html#addresses","classes":"tsd-kind-property tsd-parent-kind-class","parent":"LocalTransport"},{"id":326,"kind":1024,"name":"destroyed","url":"classes/localtransport.html#destroyed","classes":"tsd-kind-property tsd-parent-kind-class","parent":"LocalTransport"},{"id":327,"kind":1024,"name":"referrer","url":"classes/localtransport.html#referrer","classes":"tsd-kind-property tsd-parent-kind-class","parent":"LocalTransport"},{"id":328,"kind":512,"name":"constructor","url":"classes/localtransport.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"LocalTransport"},{"id":329,"kind":2048,"name":"query","url":"classes/localtransport.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalTransport"},{"id":330,"kind":2048,"name":"respond","url":"classes/localtransport.html#respond","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalTransport"},{"id":331,"kind":2048,"name":"destroy","url":"classes/localtransport.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalTransport"},{"id":332,"kind":2048,"name":"getAddresses","url":"classes/localtransport.html#getaddresses","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalTransport"},{"id":333,"kind":2048,"name":"listenerCount","url":"classes/localtransport.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":334,"kind":1024,"name":"defaultMaxListeners","url":"classes/localtransport.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":335,"kind":2048,"name":"addListener","url":"classes/localtransport.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":336,"kind":2048,"name":"prependListener","url":"classes/localtransport.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":337,"kind":2048,"name":"prependOnceListener","url":"classes/localtransport.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":338,"kind":2048,"name":"removeListener","url":"classes/localtransport.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":339,"kind":2048,"name":"removeAllListeners","url":"classes/localtransport.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":340,"kind":2048,"name":"setMaxListeners","url":"classes/localtransport.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":341,"kind":2048,"name":"getMaxListeners","url":"classes/localtransport.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":342,"kind":2048,"name":"listeners","url":"classes/localtransport.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":343,"kind":2048,"name":"rawListeners","url":"classes/localtransport.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":344,"kind":2048,"name":"emit","url":"classes/localtransport.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":345,"kind":2048,"name":"eventNames","url":"classes/localtransport.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":346,"kind":2048,"name":"listenerCount","url":"classes/localtransport.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"LocalTransport"},{"id":347,"kind":64,"name":"toPlainObject","url":"globals.html#toplainobject","classes":"tsd-kind-function"}]}; \ No newline at end of file + typedoc.search.data = {"kinds":{"32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","4194304":"Type alias"},"rows":[{"id":0,"kind":32,"name":"TOP_LEVEL_DOMAIN","url":"globals.html#top_level_domain","classes":"tsd-kind-variable"},{"id":1,"kind":32,"name":"WILDCARD","url":"globals.html#wildcard","classes":"tsd-kind-variable"},{"id":2,"kind":32,"name":"REANNOUNCE_MAX_MS","url":"globals.html#reannounce_max_ms","classes":"tsd-kind-variable"},{"id":3,"kind":32,"name":"REANNOUNCE_FACTOR","url":"globals.html#reannounce_factor","classes":"tsd-kind-variable"},{"id":4,"kind":32,"name":"REQUERY_MAX_MS","url":"globals.html#requery_max_ms","classes":"tsd-kind-variable"},{"id":5,"kind":32,"name":"REQUERY_FACTOR","url":"globals.html#requery_factor","classes":"tsd-kind-variable"},{"id":6,"kind":128,"name":"Record","url":"classes/record.html","classes":"tsd-kind-class"},{"id":7,"kind":1024,"name":"name","url":"classes/record.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":8,"kind":1024,"name":"type","url":"classes/record.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":9,"kind":1024,"name":"ttl","url":"classes/record.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":10,"kind":1024,"name":"timestamp","url":"classes/record.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":11,"kind":1024,"name":"data","url":"classes/record.html#data","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Record"},{"id":12,"kind":512,"name":"constructor","url":"classes/record.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Record"},{"id":13,"kind":4194304,"name":"RecordType","url":"globals.html#recordtype","classes":"tsd-kind-type-alias"},{"id":14,"kind":128,"name":"Question","url":"classes/question.html","classes":"tsd-kind-class"},{"id":15,"kind":1024,"name":"name","url":"classes/question.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Question"},{"id":16,"kind":1024,"name":"type","url":"classes/question.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Question"},{"id":17,"kind":512,"name":"constructor","url":"classes/question.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Question"},{"id":18,"kind":256,"name":"QueryOptions","url":"interfaces/queryoptions.html","classes":"tsd-kind-interface"},{"id":19,"kind":1024,"name":"questions","url":"interfaces/queryoptions.html#questions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"QueryOptions"},{"id":20,"kind":128,"name":"Query","url":"classes/query.html","classes":"tsd-kind-class"},{"id":21,"kind":1024,"name":"questions","url":"classes/query.html#questions","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Query"},{"id":22,"kind":512,"name":"constructor","url":"classes/query.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Query"},{"id":23,"kind":128,"name":"A","url":"classes/a.html","classes":"tsd-kind-class"},{"id":24,"kind":1024,"name":"name","url":"classes/a.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"A"},{"id":25,"kind":1024,"name":"data","url":"classes/a.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"A"},{"id":26,"kind":512,"name":"constructor","url":"classes/a.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"A"},{"id":27,"kind":1024,"name":"type","url":"classes/a.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"A"},{"id":28,"kind":1024,"name":"ttl","url":"classes/a.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"A"},{"id":29,"kind":1024,"name":"timestamp","url":"classes/a.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"A"},{"id":30,"kind":128,"name":"TXT","url":"classes/txt.html","classes":"tsd-kind-class"},{"id":31,"kind":1024,"name":"name","url":"classes/txt.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"TXT"},{"id":32,"kind":1024,"name":"data","url":"classes/txt.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"TXT"},{"id":33,"kind":512,"name":"constructor","url":"classes/txt.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"TXT"},{"id":34,"kind":2048,"name":"parse","url":"classes/txt.html#parse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"TXT"},{"id":35,"kind":2048,"name":"serialize","url":"classes/txt.html#serialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"TXT"},{"id":36,"kind":1024,"name":"type","url":"classes/txt.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"TXT"},{"id":37,"kind":1024,"name":"ttl","url":"classes/txt.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"TXT"},{"id":38,"kind":1024,"name":"timestamp","url":"classes/txt.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"TXT"},{"id":39,"kind":4194304,"name":"DataType","url":"globals.html#datatype","classes":"tsd-kind-type-alias"},{"id":40,"kind":32,"name":"debugLog","url":"globals.html#debuglog","classes":"tsd-kind-variable"},{"id":41,"kind":128,"name":"SRV","url":"classes/srv.html","classes":"tsd-kind-class"},{"id":42,"kind":1024,"name":"name","url":"classes/srv.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"SRV"},{"id":43,"kind":1024,"name":"data","url":"classes/srv.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"SRV"},{"id":44,"kind":65536,"name":"__type","url":"classes/srv.html#data.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"SRV.data"},{"id":45,"kind":32,"name":"target","url":"classes/srv.html#data.__type.target","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"SRV.data.__type"},{"id":46,"kind":32,"name":"port","url":"classes/srv.html#data.__type.port","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"SRV.data.__type"},{"id":47,"kind":512,"name":"constructor","url":"classes/srv.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"SRV"},{"id":48,"kind":1024,"name":"type","url":"classes/srv.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"SRV"},{"id":49,"kind":1024,"name":"ttl","url":"classes/srv.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"SRV"},{"id":50,"kind":1024,"name":"timestamp","url":"classes/srv.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"SRV"},{"id":51,"kind":128,"name":"PTR","url":"classes/ptr.html","classes":"tsd-kind-class"},{"id":52,"kind":1024,"name":"name","url":"classes/ptr.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"PTR"},{"id":53,"kind":1024,"name":"data","url":"classes/ptr.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"PTR"},{"id":54,"kind":512,"name":"constructor","url":"classes/ptr.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"PTR"},{"id":55,"kind":1024,"name":"type","url":"classes/ptr.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"PTR"},{"id":56,"kind":1024,"name":"ttl","url":"classes/ptr.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"PTR"},{"id":57,"kind":1024,"name":"timestamp","url":"classes/ptr.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"PTR"},{"id":58,"kind":128,"name":"AAAA","url":"classes/aaaa.html","classes":"tsd-kind-class"},{"id":59,"kind":1024,"name":"name","url":"classes/aaaa.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"AAAA"},{"id":60,"kind":1024,"name":"data","url":"classes/aaaa.html#data","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"AAAA"},{"id":61,"kind":512,"name":"constructor","url":"classes/aaaa.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"AAAA"},{"id":62,"kind":1024,"name":"type","url":"classes/aaaa.html#type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"AAAA"},{"id":63,"kind":1024,"name":"ttl","url":"classes/aaaa.html#ttl","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"AAAA"},{"id":64,"kind":1024,"name":"timestamp","url":"classes/aaaa.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"AAAA"},{"id":65,"kind":256,"name":"MDNSNameOptions","url":"interfaces/mdnsnameoptions.html","classes":"tsd-kind-interface"},{"id":66,"kind":1024,"name":"name","url":"interfaces/mdnsnameoptions.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":67,"kind":1024,"name":"subtypes","url":"interfaces/mdnsnameoptions.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":68,"kind":1024,"name":"type","url":"interfaces/mdnsnameoptions.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":69,"kind":1024,"name":"protocol","url":"interfaces/mdnsnameoptions.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":70,"kind":1024,"name":"domain","url":"interfaces/mdnsnameoptions.html#domain","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSNameOptions"},{"id":71,"kind":256,"name":"TXTData","url":"interfaces/txtdata.html","classes":"tsd-kind-interface"},{"id":72,"kind":64,"name":"serializeDNSName","url":"globals.html#serializednsname","classes":"tsd-kind-function"},{"id":73,"kind":64,"name":"parseDNSName","url":"globals.html#parsednsname","classes":"tsd-kind-function"},{"id":74,"kind":64,"name":"sameRecord","url":"globals.html#samerecord","classes":"tsd-kind-function"},{"id":75,"kind":64,"name":"getExternalAddresses","url":"globals.html#getexternaladdresses","classes":"tsd-kind-function"},{"id":76,"kind":64,"name":"parseRecord","url":"globals.html#parserecord","classes":"tsd-kind-function"},{"id":77,"kind":64,"name":"serializeRecord","url":"globals.html#serializerecord","classes":"tsd-kind-function"},{"id":78,"kind":64,"name":"parseTXTData","url":"globals.html#parsetxtdata","classes":"tsd-kind-function"},{"id":79,"kind":64,"name":"serializeTXTData","url":"globals.html#serializetxtdata","classes":"tsd-kind-function"},{"id":80,"kind":256,"name":"ResponseOptions","url":"interfaces/responseoptions.html","classes":"tsd-kind-interface"},{"id":81,"kind":1024,"name":"answers","url":"interfaces/responseoptions.html#answers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ResponseOptions"},{"id":82,"kind":1024,"name":"additionals","url":"interfaces/responseoptions.html#additionals","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ResponseOptions"},{"id":83,"kind":128,"name":"Response","url":"classes/response.html","classes":"tsd-kind-class"},{"id":84,"kind":1024,"name":"answers","url":"classes/response.html#answers","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Response"},{"id":85,"kind":1024,"name":"additionals","url":"classes/response.html#additionals","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Response"},{"id":86,"kind":512,"name":"constructor","url":"classes/response.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Response"},{"id":87,"kind":2048,"name":"parse","url":"classes/response.html#parse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Response"},{"id":88,"kind":2048,"name":"serialize","url":"classes/response.html#serialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Response"},{"id":89,"kind":4194304,"name":"AddressRecord","url":"globals.html#addressrecord","classes":"tsd-kind-type-alias"},{"id":90,"kind":256,"name":"ServiceOptions","url":"interfaces/serviceoptions.html","classes":"tsd-kind-interface"},{"id":91,"kind":1024,"name":"name","url":"interfaces/serviceoptions.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":92,"kind":1024,"name":"type","url":"interfaces/serviceoptions.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":93,"kind":1024,"name":"port","url":"interfaces/serviceoptions.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":94,"kind":1024,"name":"protocol","url":"interfaces/serviceoptions.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":95,"kind":1024,"name":"subtypes","url":"interfaces/serviceoptions.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":96,"kind":1024,"name":"txt","url":"interfaces/serviceoptions.html#txt","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":97,"kind":1024,"name":"hostname","url":"interfaces/serviceoptions.html#hostname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServiceOptions"},{"id":98,"kind":128,"name":"Service","url":"classes/service.html","classes":"tsd-kind-class"},{"id":99,"kind":2048,"name":"on","url":"classes/service.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Service"},{"id":100,"kind":2048,"name":"once","url":"classes/service.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Service"},{"id":101,"kind":1024,"name":"type","url":"classes/service.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":102,"kind":1024,"name":"name","url":"classes/service.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":103,"kind":1024,"name":"server","url":"classes/service.html#server","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":104,"kind":1024,"name":"dnsName","url":"classes/service.html#dnsname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":105,"kind":1024,"name":"dnsType","url":"classes/service.html#dnstype","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":106,"kind":1024,"name":"protocol","url":"classes/service.html#protocol","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":107,"kind":1024,"name":"hostname","url":"classes/service.html#hostname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":108,"kind":1024,"name":"port","url":"classes/service.html#port","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":109,"kind":1024,"name":"txt","url":"classes/service.html#txt","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":110,"kind":1024,"name":"rawTxt","url":"classes/service.html#rawtxt","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":111,"kind":1024,"name":"subtypes","url":"classes/service.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":112,"kind":1024,"name":"spreaded","url":"classes/service.html#spreaded","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":113,"kind":1024,"name":"destroyed","url":"classes/service.html#destroyed","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":114,"kind":1024,"name":"broadcastDelay","url":"classes/service.html#broadcastdelay","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Service"},{"id":115,"kind":512,"name":"constructor","url":"classes/service.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"Service"},{"id":116,"kind":2048,"name":"spread","url":"classes/service.html#spread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":117,"kind":2048,"name":"getServiceRecords","url":"classes/service.html#getservicerecords","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":118,"kind":2048,"name":"getAddressRecords","url":"classes/service.html#getaddressrecords","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":119,"kind":2048,"name":"broadcast","url":"classes/service.html#broadcast","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":120,"kind":2048,"name":"hide","url":"classes/service.html#hide","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":121,"kind":2048,"name":"sendGoodbye","url":"classes/service.html#sendgoodbye","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":122,"kind":2048,"name":"destroy","url":"classes/service.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":123,"kind":2048,"name":"addListener","url":"classes/service.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":124,"kind":2048,"name":"removeListener","url":"classes/service.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":125,"kind":2048,"name":"off","url":"classes/service.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":126,"kind":2048,"name":"removeAllListeners","url":"classes/service.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":127,"kind":2048,"name":"setMaxListeners","url":"classes/service.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":128,"kind":2048,"name":"getMaxListeners","url":"classes/service.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":129,"kind":2048,"name":"listeners","url":"classes/service.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":130,"kind":2048,"name":"rawListeners","url":"classes/service.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":131,"kind":2048,"name":"emit","url":"classes/service.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":132,"kind":2048,"name":"listenerCount","url":"classes/service.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":133,"kind":2048,"name":"prependListener","url":"classes/service.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":134,"kind":2048,"name":"prependOnceListener","url":"classes/service.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":135,"kind":2048,"name":"eventNames","url":"classes/service.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Service"},{"id":136,"kind":2048,"name":"once","url":"classes/service.html#once-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"Service"},{"id":137,"kind":2048,"name":"on","url":"classes/service.html#on-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":138,"kind":2048,"name":"listenerCount","url":"classes/service.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":139,"kind":2048,"name":"getEventListeners","url":"classes/service.html#geteventlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":140,"kind":1024,"name":"errorMonitor","url":"classes/service.html#errormonitor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":141,"kind":1024,"name":"captureRejectionSymbol","url":"classes/service.html#capturerejectionsymbol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":142,"kind":1024,"name":"captureRejections","url":"classes/service.html#capturerejections","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":143,"kind":1024,"name":"defaultMaxListeners","url":"classes/service.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Service"},{"id":144,"kind":256,"name":"Abortable","url":"interfaces/service.abortable.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Service"},{"id":145,"kind":1024,"name":"signal","url":"interfaces/service.abortable.html#signal","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Service.Abortable"},{"id":146,"kind":256,"name":"ReferrerOptions","url":"interfaces/referreroptions.html","classes":"tsd-kind-interface"},{"id":147,"kind":1024,"name":"address","url":"interfaces/referreroptions.html#address","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ReferrerOptions"},{"id":148,"kind":1024,"name":"family","url":"interfaces/referreroptions.html#family","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ReferrerOptions"},{"id":149,"kind":1024,"name":"port","url":"interfaces/referreroptions.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ReferrerOptions"},{"id":150,"kind":1024,"name":"size","url":"interfaces/referreroptions.html#size","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ReferrerOptions"},{"id":151,"kind":128,"name":"Referrer","url":"classes/referrer.html","classes":"tsd-kind-class"},{"id":152,"kind":1024,"name":"address","url":"classes/referrer.html#address","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Referrer"},{"id":153,"kind":1024,"name":"family","url":"classes/referrer.html#family","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Referrer"},{"id":154,"kind":1024,"name":"port","url":"classes/referrer.html#port","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Referrer"},{"id":155,"kind":1024,"name":"size","url":"classes/referrer.html#size","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Referrer"},{"id":156,"kind":512,"name":"constructor","url":"classes/referrer.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Referrer"},{"id":157,"kind":128,"name":"RecordRegistry","url":"classes/recordregistry.html","classes":"tsd-kind-class"},{"id":158,"kind":1024,"name":"records","url":"classes/recordregistry.html#records","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RecordRegistry"},{"id":159,"kind":2048,"name":"add","url":"classes/recordregistry.html#add","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":160,"kind":2048,"name":"addAll","url":"classes/recordregistry.html#addall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":161,"kind":2048,"name":"remove","url":"classes/recordregistry.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":162,"kind":2048,"name":"removeAll","url":"classes/recordregistry.html#removeall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":163,"kind":2048,"name":"findUnresolved","url":"classes/recordregistry.html#findunresolved","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":164,"kind":2048,"name":"tracePTR","url":"classes/recordregistry.html#traceptr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":165,"kind":2048,"name":"findOneSRVByName","url":"classes/recordregistry.html#findonesrvbyname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":166,"kind":2048,"name":"findOneTXTByName","url":"classes/recordregistry.html#findonetxtbyname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":167,"kind":2048,"name":"findSRVsByType","url":"classes/recordregistry.html#findsrvsbytype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":168,"kind":2048,"name":"findAddressRecordsByHostname","url":"classes/recordregistry.html#findaddressrecordsbyhostname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":169,"kind":2048,"name":"find","url":"classes/recordregistry.html#find","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":170,"kind":2048,"name":"findOne","url":"classes/recordregistry.html#findone","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":171,"kind":2048,"name":"keepHouse","url":"classes/recordregistry.html#keephouse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordRegistry"},{"id":172,"kind":256,"name":"TransportOptions","url":"interfaces/transportoptions.html","classes":"tsd-kind-interface"},{"id":173,"kind":1024,"name":"binaryTXT","url":"interfaces/transportoptions.html#binarytxt","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"TransportOptions"},{"id":174,"kind":256,"name":"Transport","url":"interfaces/transport.html","classes":"tsd-kind-interface"},{"id":175,"kind":2048,"name":"query","url":"interfaces/transport.html#query","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Transport"},{"id":176,"kind":2048,"name":"respond","url":"interfaces/transport.html#respond","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Transport"},{"id":177,"kind":2048,"name":"destroy","url":"interfaces/transport.html#destroy","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Transport"},{"id":178,"kind":2048,"name":"getAddresses","url":"interfaces/transport.html#getaddresses","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Transport"},{"id":179,"kind":2048,"name":"addListener","url":"interfaces/transport.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":180,"kind":2048,"name":"on","url":"interfaces/transport.html#on","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":181,"kind":2048,"name":"once","url":"interfaces/transport.html#once","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":182,"kind":2048,"name":"removeListener","url":"interfaces/transport.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":183,"kind":2048,"name":"off","url":"interfaces/transport.html#off","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":184,"kind":2048,"name":"removeAllListeners","url":"interfaces/transport.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":185,"kind":2048,"name":"setMaxListeners","url":"interfaces/transport.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":186,"kind":2048,"name":"getMaxListeners","url":"interfaces/transport.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":187,"kind":2048,"name":"listeners","url":"interfaces/transport.html#listeners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":188,"kind":2048,"name":"rawListeners","url":"interfaces/transport.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":189,"kind":2048,"name":"emit","url":"interfaces/transport.html#emit","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":190,"kind":2048,"name":"listenerCount","url":"interfaces/transport.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":191,"kind":2048,"name":"prependListener","url":"interfaces/transport.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":192,"kind":2048,"name":"prependOnceListener","url":"interfaces/transport.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":193,"kind":2048,"name":"eventNames","url":"interfaces/transport.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":194,"kind":512,"name":"constructor","url":"interfaces/transport.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-interface tsd-is-inherited","parent":"Transport"},{"id":195,"kind":2048,"name":"once","url":"interfaces/transport.html#once-1","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":196,"kind":2048,"name":"on","url":"interfaces/transport.html#on-1","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":197,"kind":2048,"name":"listenerCount","url":"interfaces/transport.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":198,"kind":2048,"name":"getEventListeners","url":"interfaces/transport.html#geteventlisteners","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":199,"kind":1024,"name":"errorMonitor","url":"interfaces/transport.html#errormonitor","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":200,"kind":1024,"name":"captureRejectionSymbol","url":"interfaces/transport.html#capturerejectionsymbol","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":201,"kind":1024,"name":"captureRejections","url":"interfaces/transport.html#capturerejections","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":202,"kind":1024,"name":"defaultMaxListeners","url":"interfaces/transport.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-static","parent":"Transport"},{"id":203,"kind":256,"name":"Abortable","url":"interfaces/transport.abortable.html","classes":"tsd-kind-interface tsd-parent-kind-interface","parent":"Transport"},{"id":204,"kind":1024,"name":"signal","url":"interfaces/transport.abortable.html#signal","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Transport.Abortable"},{"id":205,"kind":128,"name":"MDNSTransport","url":"classes/mdnstransport.html","classes":"tsd-kind-class"},{"id":206,"kind":2048,"name":"on","url":"classes/mdnstransport.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"MDNSTransport"},{"id":207,"kind":2048,"name":"once","url":"classes/mdnstransport.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"MDNSTransport"},{"id":208,"kind":1024,"name":"options","url":"classes/mdnstransport.html#options","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MDNSTransport"},{"id":209,"kind":1024,"name":"destroyed","url":"classes/mdnstransport.html#destroyed","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MDNSTransport"},{"id":210,"kind":1024,"name":"mdns","url":"classes/mdnstransport.html#mdns","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MDNSTransport"},{"id":211,"kind":512,"name":"constructor","url":"classes/mdnstransport.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"MDNSTransport"},{"id":212,"kind":2048,"name":"query","url":"classes/mdnstransport.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MDNSTransport"},{"id":213,"kind":2048,"name":"respond","url":"classes/mdnstransport.html#respond","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MDNSTransport"},{"id":214,"kind":2048,"name":"destroy","url":"classes/mdnstransport.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MDNSTransport"},{"id":215,"kind":2048,"name":"getAddresses","url":"classes/mdnstransport.html#getaddresses","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MDNSTransport"},{"id":216,"kind":2048,"name":"addListener","url":"classes/mdnstransport.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":217,"kind":2048,"name":"removeListener","url":"classes/mdnstransport.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":218,"kind":2048,"name":"off","url":"classes/mdnstransport.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":219,"kind":2048,"name":"removeAllListeners","url":"classes/mdnstransport.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":220,"kind":2048,"name":"setMaxListeners","url":"classes/mdnstransport.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":221,"kind":2048,"name":"getMaxListeners","url":"classes/mdnstransport.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":222,"kind":2048,"name":"listeners","url":"classes/mdnstransport.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":223,"kind":2048,"name":"rawListeners","url":"classes/mdnstransport.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":224,"kind":2048,"name":"emit","url":"classes/mdnstransport.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":225,"kind":2048,"name":"listenerCount","url":"classes/mdnstransport.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":226,"kind":2048,"name":"prependListener","url":"classes/mdnstransport.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":227,"kind":2048,"name":"prependOnceListener","url":"classes/mdnstransport.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":228,"kind":2048,"name":"eventNames","url":"classes/mdnstransport.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"MDNSTransport"},{"id":229,"kind":2048,"name":"once","url":"classes/mdnstransport.html#once-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":230,"kind":2048,"name":"on","url":"classes/mdnstransport.html#on-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":231,"kind":2048,"name":"listenerCount","url":"classes/mdnstransport.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":232,"kind":2048,"name":"getEventListeners","url":"classes/mdnstransport.html#geteventlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":233,"kind":1024,"name":"errorMonitor","url":"classes/mdnstransport.html#errormonitor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":234,"kind":1024,"name":"captureRejectionSymbol","url":"classes/mdnstransport.html#capturerejectionsymbol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":235,"kind":1024,"name":"captureRejections","url":"classes/mdnstransport.html#capturerejections","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":236,"kind":1024,"name":"defaultMaxListeners","url":"classes/mdnstransport.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"MDNSTransport"},{"id":237,"kind":256,"name":"Abortable","url":"interfaces/mdnstransport.abortable.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"MDNSTransport"},{"id":238,"kind":1024,"name":"signal","url":"interfaces/mdnstransport.abortable.html#signal","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"MDNSTransport.Abortable"},{"id":239,"kind":256,"name":"ServerOptions","url":"interfaces/serveroptions.html","classes":"tsd-kind-interface"},{"id":240,"kind":1024,"name":"transportOptions","url":"interfaces/serveroptions.html#transportoptions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServerOptions"},{"id":241,"kind":1024,"name":"transport","url":"interfaces/serveroptions.html#transport","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServerOptions"},{"id":242,"kind":1024,"name":"recordRegistry","url":"interfaces/serveroptions.html#recordregistry","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServerOptions"},{"id":243,"kind":1024,"name":"socketOptions","url":"interfaces/serveroptions.html#socketoptions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ServerOptions"},{"id":244,"kind":128,"name":"Server","url":"classes/server.html","classes":"tsd-kind-class"},{"id":245,"kind":2048,"name":"on","url":"classes/server.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Server"},{"id":246,"kind":2048,"name":"once","url":"classes/server.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Server"},{"id":247,"kind":1024,"name":"transportOptions","url":"classes/server.html#transportoptions","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":248,"kind":1024,"name":"services","url":"classes/server.html#services","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":249,"kind":1024,"name":"transport","url":"classes/server.html#transport","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":250,"kind":1024,"name":"recordRegistry","url":"classes/server.html#recordregistry","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":251,"kind":1024,"name":"destroyed","url":"classes/server.html#destroyed","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Server"},{"id":252,"kind":512,"name":"constructor","url":"classes/server.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"Server"},{"id":253,"kind":2048,"name":"queryAndListen","url":"classes/server.html#queryandlisten","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":254,"kind":2048,"name":"answerQuery","url":"classes/server.html#answerquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":255,"kind":2048,"name":"destroy","url":"classes/server.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":256,"kind":2048,"name":"addService","url":"classes/server.html#addservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":257,"kind":2048,"name":"removeService","url":"classes/server.html#removeservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":258,"kind":2048,"name":"addListener","url":"classes/server.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":259,"kind":2048,"name":"removeListener","url":"classes/server.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":260,"kind":2048,"name":"off","url":"classes/server.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":261,"kind":2048,"name":"removeAllListeners","url":"classes/server.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":262,"kind":2048,"name":"setMaxListeners","url":"classes/server.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":263,"kind":2048,"name":"getMaxListeners","url":"classes/server.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":264,"kind":2048,"name":"listeners","url":"classes/server.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":265,"kind":2048,"name":"rawListeners","url":"classes/server.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":266,"kind":2048,"name":"emit","url":"classes/server.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":267,"kind":2048,"name":"listenerCount","url":"classes/server.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":268,"kind":2048,"name":"prependListener","url":"classes/server.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":269,"kind":2048,"name":"prependOnceListener","url":"classes/server.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":270,"kind":2048,"name":"eventNames","url":"classes/server.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Server"},{"id":271,"kind":2048,"name":"once","url":"classes/server.html#once-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"Server"},{"id":272,"kind":2048,"name":"on","url":"classes/server.html#on-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":273,"kind":2048,"name":"listenerCount","url":"classes/server.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":274,"kind":2048,"name":"getEventListeners","url":"classes/server.html#geteventlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":275,"kind":1024,"name":"errorMonitor","url":"classes/server.html#errormonitor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":276,"kind":1024,"name":"captureRejectionSymbol","url":"classes/server.html#capturerejectionsymbol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":277,"kind":1024,"name":"captureRejections","url":"classes/server.html#capturerejections","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":278,"kind":1024,"name":"defaultMaxListeners","url":"classes/server.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Server"},{"id":279,"kind":256,"name":"Abortable","url":"interfaces/server.abortable.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Server"},{"id":280,"kind":1024,"name":"signal","url":"interfaces/server.abortable.html#signal","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Server.Abortable"},{"id":281,"kind":128,"name":"RemoteService","url":"classes/remoteservice.html","classes":"tsd-kind-class"},{"id":282,"kind":1024,"name":"name","url":"classes/remoteservice.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":283,"kind":1024,"name":"type","url":"classes/remoteservice.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":284,"kind":1024,"name":"subtypes","url":"classes/remoteservice.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":285,"kind":1024,"name":"protocol","url":"classes/remoteservice.html#protocol","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":286,"kind":1024,"name":"domain","url":"classes/remoteservice.html#domain","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":287,"kind":1024,"name":"hostname","url":"classes/remoteservice.html#hostname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":288,"kind":1024,"name":"port","url":"classes/remoteservice.html#port","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":289,"kind":1024,"name":"txt","url":"classes/remoteservice.html#txt","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":290,"kind":1024,"name":"addresses","url":"classes/remoteservice.html#addresses","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RemoteService"},{"id":291,"kind":512,"name":"constructor","url":"classes/remoteservice.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"RemoteService"},{"id":292,"kind":256,"name":"ListenerOptions","url":"interfaces/listeneroptions.html","classes":"tsd-kind-interface"},{"id":293,"kind":1024,"name":"name","url":"interfaces/listeneroptions.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ListenerOptions"},{"id":294,"kind":1024,"name":"type","url":"interfaces/listeneroptions.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ListenerOptions"},{"id":295,"kind":1024,"name":"protocol","url":"interfaces/listeneroptions.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ListenerOptions"},{"id":296,"kind":1024,"name":"subtypes","url":"interfaces/listeneroptions.html#subtypes","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ListenerOptions"},{"id":297,"kind":128,"name":"Listener","url":"classes/listener.html","classes":"tsd-kind-class"},{"id":298,"kind":2048,"name":"on","url":"classes/listener.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Listener"},{"id":299,"kind":2048,"name":"once","url":"classes/listener.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Listener"},{"id":300,"kind":1024,"name":"server","url":"classes/listener.html#server","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":301,"kind":1024,"name":"remoteServices","url":"classes/listener.html#remoteservices","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":302,"kind":1024,"name":"typeName","url":"classes/listener.html#typename","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":303,"kind":1024,"name":"wildcard","url":"classes/listener.html#wildcard","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":304,"kind":1024,"name":"requeryDelay","url":"classes/listener.html#requerydelay","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Listener"},{"id":305,"kind":512,"name":"constructor","url":"classes/listener.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"Listener"},{"id":306,"kind":2048,"name":"listen","url":"classes/listener.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":307,"kind":2048,"name":"query","url":"classes/listener.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":308,"kind":2048,"name":"requery","url":"classes/listener.html#requery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":309,"kind":2048,"name":"onResponse","url":"classes/listener.html#onresponse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":310,"kind":2048,"name":"destroy","url":"classes/listener.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":311,"kind":2048,"name":"addRemoteService","url":"classes/listener.html#addremoteservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":312,"kind":2048,"name":"removeRemoteService","url":"classes/listener.html#removeremoteservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":313,"kind":2048,"name":"queryUnresolvedRecords","url":"classes/listener.html#queryunresolvedrecords","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Listener"},{"id":314,"kind":2048,"name":"addListener","url":"classes/listener.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":315,"kind":2048,"name":"removeListener","url":"classes/listener.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":316,"kind":2048,"name":"off","url":"classes/listener.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":317,"kind":2048,"name":"removeAllListeners","url":"classes/listener.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":318,"kind":2048,"name":"setMaxListeners","url":"classes/listener.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":319,"kind":2048,"name":"getMaxListeners","url":"classes/listener.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":320,"kind":2048,"name":"listeners","url":"classes/listener.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":321,"kind":2048,"name":"rawListeners","url":"classes/listener.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":322,"kind":2048,"name":"emit","url":"classes/listener.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":323,"kind":2048,"name":"listenerCount","url":"classes/listener.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":324,"kind":2048,"name":"prependListener","url":"classes/listener.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":325,"kind":2048,"name":"prependOnceListener","url":"classes/listener.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":326,"kind":2048,"name":"eventNames","url":"classes/listener.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Listener"},{"id":327,"kind":2048,"name":"once","url":"classes/listener.html#once-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":328,"kind":2048,"name":"on","url":"classes/listener.html#on-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":329,"kind":2048,"name":"listenerCount","url":"classes/listener.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":330,"kind":2048,"name":"getEventListeners","url":"classes/listener.html#geteventlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":331,"kind":1024,"name":"errorMonitor","url":"classes/listener.html#errormonitor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":332,"kind":1024,"name":"captureRejectionSymbol","url":"classes/listener.html#capturerejectionsymbol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":333,"kind":1024,"name":"captureRejections","url":"classes/listener.html#capturerejections","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":334,"kind":1024,"name":"defaultMaxListeners","url":"classes/listener.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Listener"},{"id":335,"kind":256,"name":"Abortable","url":"interfaces/listener.abortable.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Listener"},{"id":336,"kind":1024,"name":"signal","url":"interfaces/listener.abortable.html#signal","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Listener.Abortable"},{"id":337,"kind":128,"name":"SpreadTheWord","url":"classes/spreadtheword.html","classes":"tsd-kind-class"},{"id":338,"kind":2048,"name":"on","url":"classes/spreadtheword.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"SpreadTheWord"},{"id":339,"kind":2048,"name":"once","url":"classes/spreadtheword.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"SpreadTheWord"},{"id":340,"kind":1024,"name":"server","url":"classes/spreadtheword.html#server","classes":"tsd-kind-property tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":341,"kind":1024,"name":"servicesList","url":"classes/spreadtheword.html#serviceslist","classes":"tsd-kind-property tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":342,"kind":1024,"name":"listenersList","url":"classes/spreadtheword.html#listenerslist","classes":"tsd-kind-property tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":343,"kind":1024,"name":"status","url":"classes/spreadtheword.html#status","classes":"tsd-kind-property tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":344,"kind":2048,"name":"init","url":"classes/spreadtheword.html#init","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":345,"kind":2048,"name":"spread","url":"classes/spreadtheword.html#spread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":346,"kind":2048,"name":"listen","url":"classes/spreadtheword.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":347,"kind":2048,"name":"destroy","url":"classes/spreadtheword.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":348,"kind":2048,"name":"addListener","url":"classes/spreadtheword.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":349,"kind":2048,"name":"removeListener","url":"classes/spreadtheword.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":350,"kind":2048,"name":"off","url":"classes/spreadtheword.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":351,"kind":2048,"name":"removeAllListeners","url":"classes/spreadtheword.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":352,"kind":2048,"name":"setMaxListeners","url":"classes/spreadtheword.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":353,"kind":2048,"name":"getMaxListeners","url":"classes/spreadtheword.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":354,"kind":2048,"name":"listeners","url":"classes/spreadtheword.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":355,"kind":2048,"name":"rawListeners","url":"classes/spreadtheword.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":356,"kind":2048,"name":"emit","url":"classes/spreadtheword.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":357,"kind":2048,"name":"listenerCount","url":"classes/spreadtheword.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":358,"kind":2048,"name":"prependListener","url":"classes/spreadtheword.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":359,"kind":2048,"name":"prependOnceListener","url":"classes/spreadtheword.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":360,"kind":2048,"name":"eventNames","url":"classes/spreadtheword.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":361,"kind":512,"name":"constructor","url":"classes/spreadtheword.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited","parent":"SpreadTheWord"},{"id":362,"kind":2048,"name":"once","url":"classes/spreadtheword.html#once-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":363,"kind":2048,"name":"on","url":"classes/spreadtheword.html#on-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":364,"kind":2048,"name":"listenerCount","url":"classes/spreadtheword.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":365,"kind":2048,"name":"getEventListeners","url":"classes/spreadtheword.html#geteventlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":366,"kind":1024,"name":"errorMonitor","url":"classes/spreadtheword.html#errormonitor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":367,"kind":1024,"name":"captureRejectionSymbol","url":"classes/spreadtheword.html#capturerejectionsymbol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":368,"kind":1024,"name":"captureRejections","url":"classes/spreadtheword.html#capturerejections","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":369,"kind":1024,"name":"defaultMaxListeners","url":"classes/spreadtheword.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"SpreadTheWord"},{"id":370,"kind":256,"name":"Abortable","url":"interfaces/spreadtheword.abortable.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"SpreadTheWord"},{"id":371,"kind":1024,"name":"signal","url":"interfaces/spreadtheword.abortable.html#signal","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SpreadTheWord.Abortable"},{"id":372,"kind":4194304,"name":"StatusType","url":"globals.html#statustype","classes":"tsd-kind-type-alias"},{"id":373,"kind":256,"name":"LocalTransportOptions","url":"interfaces/localtransportoptions.html","classes":"tsd-kind-interface"},{"id":374,"kind":1024,"name":"referrerOptions","url":"interfaces/localtransportoptions.html#referreroptions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"LocalTransportOptions"},{"id":375,"kind":1024,"name":"addresses","url":"interfaces/localtransportoptions.html#addresses","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"LocalTransportOptions"},{"id":376,"kind":1024,"name":"binaryTXT","url":"interfaces/localtransportoptions.html#binarytxt","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"LocalTransportOptions"},{"id":377,"kind":128,"name":"LocalTransport","url":"classes/localtransport.html","classes":"tsd-kind-class"},{"id":378,"kind":2048,"name":"on","url":"classes/localtransport.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"LocalTransport"},{"id":379,"kind":2048,"name":"once","url":"classes/localtransport.html#once","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"LocalTransport"},{"id":380,"kind":1024,"name":"options","url":"classes/localtransport.html#options","classes":"tsd-kind-property tsd-parent-kind-class","parent":"LocalTransport"},{"id":381,"kind":1024,"name":"addresses","url":"classes/localtransport.html#addresses","classes":"tsd-kind-property tsd-parent-kind-class","parent":"LocalTransport"},{"id":382,"kind":1024,"name":"destroyed","url":"classes/localtransport.html#destroyed","classes":"tsd-kind-property tsd-parent-kind-class","parent":"LocalTransport"},{"id":383,"kind":1024,"name":"referrer","url":"classes/localtransport.html#referrer","classes":"tsd-kind-property tsd-parent-kind-class","parent":"LocalTransport"},{"id":384,"kind":512,"name":"constructor","url":"classes/localtransport.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"LocalTransport"},{"id":385,"kind":2048,"name":"query","url":"classes/localtransport.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalTransport"},{"id":386,"kind":2048,"name":"respond","url":"classes/localtransport.html#respond","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalTransport"},{"id":387,"kind":2048,"name":"destroy","url":"classes/localtransport.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalTransport"},{"id":388,"kind":2048,"name":"getAddresses","url":"classes/localtransport.html#getaddresses","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalTransport"},{"id":389,"kind":2048,"name":"addListener","url":"classes/localtransport.html#addlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":390,"kind":2048,"name":"removeListener","url":"classes/localtransport.html#removelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":391,"kind":2048,"name":"off","url":"classes/localtransport.html#off","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":392,"kind":2048,"name":"removeAllListeners","url":"classes/localtransport.html#removealllisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":393,"kind":2048,"name":"setMaxListeners","url":"classes/localtransport.html#setmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":394,"kind":2048,"name":"getMaxListeners","url":"classes/localtransport.html#getmaxlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":395,"kind":2048,"name":"listeners","url":"classes/localtransport.html#listeners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":396,"kind":2048,"name":"rawListeners","url":"classes/localtransport.html#rawlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":397,"kind":2048,"name":"emit","url":"classes/localtransport.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":398,"kind":2048,"name":"listenerCount","url":"classes/localtransport.html#listenercount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":399,"kind":2048,"name":"prependListener","url":"classes/localtransport.html#prependlistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":400,"kind":2048,"name":"prependOnceListener","url":"classes/localtransport.html#prependoncelistener","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":401,"kind":2048,"name":"eventNames","url":"classes/localtransport.html#eventnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"LocalTransport"},{"id":402,"kind":2048,"name":"once","url":"classes/localtransport.html#once-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":403,"kind":2048,"name":"on","url":"classes/localtransport.html#on-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":404,"kind":2048,"name":"listenerCount","url":"classes/localtransport.html#listenercount-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":405,"kind":2048,"name":"getEventListeners","url":"classes/localtransport.html#geteventlisteners","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":406,"kind":1024,"name":"errorMonitor","url":"classes/localtransport.html#errormonitor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":407,"kind":1024,"name":"captureRejectionSymbol","url":"classes/localtransport.html#capturerejectionsymbol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":408,"kind":1024,"name":"captureRejections","url":"classes/localtransport.html#capturerejections","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":409,"kind":1024,"name":"defaultMaxListeners","url":"classes/localtransport.html#defaultmaxlisteners","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"LocalTransport"},{"id":410,"kind":256,"name":"Abortable","url":"interfaces/localtransport.abortable.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"LocalTransport"},{"id":411,"kind":1024,"name":"signal","url":"interfaces/localtransport.abortable.html#signal","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"LocalTransport.Abortable"},{"id":412,"kind":64,"name":"toPlainObject","url":"globals.html#toplainobject","classes":"tsd-kind-function"}]}; \ No newline at end of file diff --git a/docs/classes/a.html b/docs/classes/a.html index 6102bd9..f7a3c59 100644 --- a/docs/classes/a.html +++ b/docs/classes/a.html @@ -115,7 +115,7 @@

constructor

Parameters

@@ -149,7 +149,7 @@

data

@@ -160,7 +160,7 @@

name

@@ -171,7 +171,7 @@

timestamp

@@ -182,7 +182,7 @@

ttl

@@ -193,7 +193,7 @@

type

diff --git a/docs/classes/aaaa.html b/docs/classes/aaaa.html index 653dce1..f75e6ed 100644 --- a/docs/classes/aaaa.html +++ b/docs/classes/aaaa.html @@ -115,7 +115,7 @@

constructor

Parameters

@@ -149,7 +149,7 @@

data

@@ -160,7 +160,7 @@

name

@@ -171,7 +171,7 @@

timestamp

@@ -182,7 +182,7 @@

ttl

@@ -193,7 +193,7 @@

type

diff --git a/docs/classes/listener.html b/docs/classes/listener.html index 2ae24f2..5d4b68a 100644 --- a/docs/classes/listener.html +++ b/docs/classes/listener.html @@ -83,10 +83,16 @@

Hierarchy

Index

+
+

Interfaces

+ +

Constructors

@@ -97,35 +103,42 @@

Properties

  • server
  • typeName
  • wildcard
  • +
  • captureRejectionSymbol
  • +
  • captureRejections
  • defaultMaxListeners
  • +
  • errorMonitor
  • Methods

    @@ -133,17 +146,18 @@

    Methods

    Constructors

    -
    +

    constructor

    -
    @@ -178,7 +192,7 @@

    requeryDelay

    requeryDelay: Timer
    @@ -188,7 +202,7 @@

    server

    server: Server
    @@ -198,7 +212,7 @@

    typeName

    typeName: string
    @@ -208,10 +222,37 @@

    wildcard

    wildcard: boolean
    + +
    + +

    Static captureRejectionSymbol

    +
    captureRejectionSymbol: keyof symbol
    +
    +
    + +

    Static captureRejections

    +
    captureRejections: boolean
    + +
    +
    +

    Sets or gets the default captureRejection value for all emitters.

    +
    +
    +

    Static defaultMaxListeners

    @@ -219,32 +260,62 @@

    Static defaultMaxListe

    +
    + +

    Static errorMonitor

    +
    errorMonitor: keyof symbol
    + +
    +
    +

    This symbol shall be used to install a listener for only monitoring 'error' + events. Listeners installed using this symbol are called before the regular + 'error' listeners are called.

    +
    +

    Installing a listener using this symbol does not change the behavior once an + 'error' event is emitted, therefore the process will still crash if no + regular 'error' listener is installed.

    +
    +

    Methods

    -
    +

    addListener

    -
      -
    • addListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • addListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Alias for emitter.on(eventName, listener).

        +
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    emit

    -
      -
    • emit(event: string | symbol, ...args: any[]): boolean
    • +
        +
      • emit(eventName: string | symbol, ...args: any[]): boolean
      • +
        +
        +

        Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments + to each.

        +
        +

        Returns true if the event had listeners, false otherwise.

        +
        const EventEmitter = require('events');
        +const myEmitter = new EventEmitter();
        +
        +// First listener
        +myEmitter.on('event', function firstListener() {
        +  console.log('Helloooo! first listener');
        +});
        +// Second listener
        +myEmitter.on('event', function secondListener(arg1, arg2) {
        +  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
        +});
        +// Third listener
        +myEmitter.on('event', function thirdListener(...args) {
        +  const parameters = args.join(', ');
        +  console.log(`event with parameters ${parameters} in third listener`);
        +});
        +
        +console.log(myEmitter.listeners('event'));
        +
        +myEmitter.emit('event', 1, 2, 3, 4, 5);
        +
        +// Prints:
        +// [
        +//   [Function: firstListener],
        +//   [Function: secondListener],
        +//   [Function: thirdListener]
        +// ]
        +// Helloooo! first listener
        +// event with parameters 1, 2 in second listener
        +// event with parameters 1, 2, 3, 4, 5 in third listener
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • Rest ...args: any[]
          @@ -352,40 +464,70 @@

          Returns boolean

    -
    +

    eventNames

    -
      +
      • eventNames(): Array<string | symbol>
      • +
        +
        +

        Returns an array listing the events for which the emitter has registered + listeners. The values in the array are strings or Symbols.

        +
        +
        const EventEmitter = require('events');
        +const myEE = new EventEmitter();
        +myEE.on('foo', () => {});
        +myEE.on('bar', () => {});
        +
        +const sym = Symbol('symbol');
        +myEE.on(sym, () => {});
        +
        +console.log(myEE.eventNames());
        +// Prints: [ 'foo', 'bar', Symbol(symbol) ]
        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Returns Array<string | symbol>

    -
    +

    getMaxListeners

    -
      +
      • getMaxListeners(): number
      • +
        +
        +

        Returns the current max listener value for the EventEmitter which is either + set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

        +
        +
        +
        since
        +

        v1.0.0

        +
        +
        +

        Returns number

      @@ -400,63 +542,144 @@

      listen

    • Returns Promise<void>

    -
    +

    listenerCount

    -
      -
    • listenerCount(type: string | symbol): number
    • +
        +
      • listenerCount(eventName: string | symbol): number
      • +
        +
        +

        Returns the number of listeners listening to the event named eventName.

        +
        +
        +
        since
        +

        v3.2.0

        +
        +
        +

        Parameters

        • -
          type: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event being listened for

          +

        Returns number

    -
    +

    listeners

    -
      -
    • listeners(event: string | symbol): Function[]
    • +
        +
      • listeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName.

        +
        +
        server.on('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +console.log(util.inspect(server.listeners('connection')));
        +// Prints: [ [Function] ]
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    +
    + +

    off

    +
      +
    • off(eventName: string | symbol, listener: (...args: any[]) => void): this
    • +
    +
      +
    • + +
      +
      +

      Alias for emitter.removeListener().

      +
      +
      +
      since
      +

      v10.0.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        eventName: string | symbol
        +
      • +
      • +
        listener: (...args: any[]) => void
        +
          +
        • +
            +
          • (...args: any[]): void
          • +
          +
            +
          • +

            Parameters

            +
              +
            • +
              Rest ...args: any[]
              +
            • +
            +

            Returns void

            +
          • +
          +
        • +
        +
      • +
      +

      Returns this

      +
    • +
    +

    on

    @@ -470,7 +693,7 @@

    on

    Parameters

    @@ -512,7 +735,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -554,7 +777,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -592,7 +815,7 @@

    onResponse

  • Parameters

    @@ -621,7 +844,7 @@

    once

    Parameters

    @@ -663,7 +886,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -705,7 +928,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -733,28 +956,50 @@

    Returns this

  • -
    +

    prependListener

    -
      -
    • prependListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds the listener function to the beginning of the listeners array for the + event named eventName. No checks are made to see if the listener has + already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple + times.

        +
        +
        server.prependListener('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -779,28 +1024,48 @@

              Returns this

    -
    +

    prependOnceListener

    -
      -
    • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this + listener is removed, and then invoked.

        +
        +
        server.prependOnceListener('connection', (stream) => {
        +  console.log('Ah, we have our first user!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
    -
    +

    rawListeners

    -
      -
    • rawListeners(event: string | symbol): Function[]
    • +
        +
      • rawListeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName, + including any wrappers (such as those created by .once()).

        +
        +
        const emitter = new EventEmitter();
        +emitter.once('log', () => console.log('log once'));
        +
        +// Returns a new Array with a function `onceWrapper` which has a property
        +// `listener` which contains the original listener bound above
        +const listeners = emitter.rawListeners('log');
        +const logFnWrapper = listeners[0];
        +
        +// Logs "log once" to the console and does not unbind the `once` event
        +logFnWrapper.listener();
        +
        +// Logs "log once" to the console and removes the listener
        +logFnWrapper();
        +
        +emitter.on('log', () => console.log('log persistently'));
        +// Will return a new Array with a single function bound by `.on()` above
        +const newListeners = emitter.rawListeners('log');
        +
        +// Logs "log persistently" twice
        +newListeners[0]();
        +emitter.emit('log');
        +
        +
        since
        +

        v9.4.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    -
    +

    removeAllListeners

    -
      +
      • removeAllListeners(event?: string | symbol): this
      • +
        +
        +

        Removes all listeners, or those of the specified eventName.

        +
        +

        It is bad practice to remove listeners added elsewhere in the code, + particularly when the EventEmitter instance was created by some other + component or module (e.g. sockets or file streams).

        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • @@ -909,25 +1218,95 @@

          Returns this

    -
    +

    removeListener

    -
      -
    • removeListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Removes the specified listener from the listener array for the event namedeventName.

        +
        +
        const callback = (stream) => {
        +  console.log('someone connected!');
        +};
        +server.on('connection', callback);
        +// ...
        +server.removeListener('connection', callback);
        +

        removeListener() will remove, at most, one instance of a listener from the + listener array. If any single listener has been added multiple times to the + listener array for the specified eventName, then removeListener() must be + called multiple times to remove each instance.

        +

        Once an event is emitted, all listeners attached to it at the + time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will + not remove them fromemit() in progress. Subsequent events behave as expected.

        +
        const myEmitter = new MyEmitter();
        +
        +const callbackA = () => {
        +  console.log('A');
        +  myEmitter.removeListener('event', callbackB);
        +};
        +
        +const callbackB = () => {
        +  console.log('B');
        +};
        +
        +myEmitter.on('event', callbackA);
        +
        +myEmitter.on('event', callbackB);
        +
        +// callbackA removes listener callbackB but it will still be called.
        +// Internal listener array at time of emit [callbackA, callbackB]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +//   B
        +
        +// callbackB is now removed.
        +// Internal listener array [callbackA]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +

        Because listeners are managed using an internal array, calling this will + change the position indices of any listener registered after the listener + being removed. This will not impact the order in which listeners are called, + but it means that any copies of the listener array as returned by + the emitter.listeners() method will need to be recreated.

        +

        When a single function has been added as a handler multiple times for a single + event (as in the example below), removeListener() will remove the most + recently added instance. In the example the once('ping')listener is removed:

        +
        const ee = new EventEmitter();
        +
        +function pong() {
        +  console.log('pong');
        +}
        +
        +ee.on('ping', pong);
        +ee.once('ping', pong);
        +ee.removeListener('ping', pong);
        +
        +ee.emit('ping');
        +ee.emit('ping');
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    setMaxListeners

    -
      +
      • setMaxListeners(n: number): this
      • +
        +
        +

        By default EventEmitters will print a warning if more than 10 listeners are + added for a particular event. This is a useful default that helps finding + memory leaks. The emitter.setMaxListeners() method allows the limit to be + modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

        +
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.3.5

        +
        +
        +

        Parameters

        • @@ -1032,33 +1424,311 @@

          Returns this

    +
    + +

    Static getEventListeners

    +
      +
    • getEventListeners(emitter: DOMEventTarget | EventEmitter, name: string | symbol): Function[]
    • +
    +
      +
    • + +
      +
      +

      Returns a copy of the array of listeners for the event named eventName.

      +
      +

      For EventEmitters this behaves exactly the same as calling .listeners on + the emitter.

      +

      For EventTargets this is the only way to get the event listeners for the + event target. This is useful for debugging and diagnostic purposes.

      +
      const { getEventListeners, EventEmitter } = require('events');
      +
      +{
      +  const ee = new EventEmitter();
      +  const listener = () => console.log('Events are fun');
      +  ee.on('foo', listener);
      +  getEventListeners(ee, 'foo'); // [listener]
      +}
      +{
      +  const et = new EventTarget();
      +  const listener = () => console.log('Events are fun');
      +  et.addEventListener('foo', listener);
      +  getEventListeners(et, 'foo'); // [listener]
      +}
      +
      +
      since
      +

      v15.2.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: DOMEventTarget | EventEmitter
        +
      • +
      • +
        name: string | symbol
        +
      • +
      +

      Returns Function[]

      +
    • +
    +

    Static listenerCount

      -
    • listenerCount(emitter: EventEmitter, event: string | symbol): number
    • +
    • listenerCount(emitter: EventEmitter, eventName: string | symbol): number
    • +
      +
      +

      A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      +
      +
      const { EventEmitter, listenerCount } = require('events');
      +const myEmitter = new EventEmitter();
      +myEmitter.on('event', () => {});
      +myEmitter.on('event', () => {});
      +console.log(listenerCount(myEmitter, 'event'));
      +// Prints: 2
      +
      +
      since
      +

      v0.9.12

      +
      +
      deprecated
      +

      Since v3.2.0 - Use listenerCount instead.

      +
      +
      +

      Parameters

      • emitter: EventEmitter
        +
        +

        The emitter to query

        +
      • -
        event: string | symbol
        +
        eventName: string | symbol
        +
        +

        The event name

        +

      Returns number

    +
    + +

    Static on

    +
      +
    • on(emitter: EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
    • +
    +
      +
    • + +
      +
      +

      ```js + const { on, EventEmitter } = require('events');

      +
      +

      (async () => { + const ee = new EventEmitter();

      +

      // Emit later on + process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); + });

      +

      for await (const event of on(ee, 'foo')) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] + } + // Unreachable here + })();

      +
      
      +Returns an `AsyncIterator` that iterates `eventName` events. It will throw
      +if the `EventEmitter` emits `'error'`. It removes all listeners when
      +exiting the loop. The `value` returned by each iteration is an array
      +composed of the emitted event arguments.
      +
      +An `AbortSignal` can be used to cancel waiting on events:
      +
      +```js
      +const { on, EventEmitter } = require('events');
      +const ac = new AbortController();
      +
      +(async () => {
      +  const ee = new EventEmitter();
      +
      +  // Emit later on
      +  process.nextTick(() => {
      +    ee.emit('foo', 'bar');
      +    ee.emit('foo', 42);
      +  });
      +
      +  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
      +    // The execution of this inner block is synchronous and it
      +    // processes one event at a time (even with await). Do not use
      +    // if concurrent execution is required.
      +    console.log(event); // prints ['bar'] [42]
      +  }
      +  // Unreachable here
      +})();
      +
      +process.nextTick(() => ac.abort());
      +
      +
      since
      +

      v13.6.0, v12.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: EventEmitter
        +
      • +
      • +
        eventName: string
        +
        +

        The name of the event being listened for

        +
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns AsyncIterableIterator<any>

      +

      that iterates eventName events emitted by the emitter

      +
    • +
    +
    +
    + +

    Static once

    +
      +
    • once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
    • +
    +
      +
    • + +
      +
      +

      Creates a Promise that is fulfilled when the EventEmitter emits the given + event or that is rejected if the EventEmitter emits 'error' while waiting. + The Promise will resolve with an array of all the arguments emitted to the + given event.

      +
      +

      This method is intentionally generic and works with the web platformEventTarget interface, which has no special'error' event + semantics and does not listen to the 'error' event.

      +
      const { once, EventEmitter } = require('events');
      +
      +async function run() {
      +  const ee = new EventEmitter();
      +
      +  process.nextTick(() => {
      +    ee.emit('myevent', 42);
      +  });
      +
      +  const [value] = await once(ee, 'myevent');
      +  console.log(value);
      +
      +  const err = new Error('kaboom');
      +  process.nextTick(() => {
      +    ee.emit('error', err);
      +  });
      +
      +  try {
      +    await once(ee, 'myevent');
      +  } catch (err) {
      +    console.log('error happened', err);
      +  }
      +}
      +
      +run();
      +

      The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the + 'error' event itself, then it is treated as any other kind of event without + special handling:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +
      +once(ee, 'error')
      +  .then(([err]) => console.log('ok', err.message))
      +  .catch((err) => console.log('error', err.message));
      +
      +ee.emit('error', new Error('boom'));
      +
      +// Prints: ok boom
      +

      An AbortSignal can be used to cancel waiting for the event:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +const ac = new AbortController();
      +
      +async function foo(emitter, event, signal) {
      +  try {
      +    await once(emitter, event, { signal });
      +    console.log('event emitted!');
      +  } catch (error) {
      +    if (error.name === 'AbortError') {
      +      console.error('Waiting for the event was canceled!');
      +    } else {
      +      console.error('There was an error', error.message);
      +    }
      +  }
      +}
      +
      +foo(ee, 'foo', ac.signal);
      +ac.abort(); // Abort waiting for the event
      +ee.emit('foo'); // Prints: Waiting for the event was canceled!
      +
      +
      since
      +

      v11.13.0, v10.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: NodeEventTarget
        +
      • +
      • +
        eventName: string | symbol
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns Promise<any[]>

      +
    • +
    +
    +
    + +

    Static captureRejectionSymbol

    +
    captureRejectionSymbol: keyof symbol
    +
    +
    + +

    Static captureRejections

    +
    captureRejections: boolean
    + +
    +
    +

    Sets or gets the default captureRejection value for all emitters.

    +
    +
    +

    Static defaultMaxListeners

    @@ -208,32 +251,63 @@

    Static defaultMaxListe

    Implementation of Transport.defaultMaxListeners

    Inherited from Service.defaultMaxListeners

      -
    • Defined in node_modules/@types/node/base.d.ts:977
    • +
    • Defined in node_modules/@types/node/events.d.ts:279

    +
    + +

    Static errorMonitor

    +
    errorMonitor: keyof symbol
    + +
    +
    +

    This symbol shall be used to install a listener for only monitoring 'error' + events. Listeners installed using this symbol are called before the regular + 'error' listeners are called.

    +
    +

    Installing a listener using this symbol does not change the behavior once an + 'error' event is emitted, therefore the process will still crash if no + regular 'error' listener is installed.

    +
    +

    Methods

    -
    +

    addListener

    -
      -
    • addListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • addListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Alias for emitter.on(eventName, listener).

        +
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    emit

    -
      -
    • emit(event: string | symbol, ...args: any[]): boolean
    • +
        +
      • emit(eventName: string | symbol, ...args: any[]): boolean
      • +
        +
        +

        Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments + to each.

        +
        +

        Returns true if the event had listeners, false otherwise.

        +
        const EventEmitter = require('events');
        +const myEmitter = new EventEmitter();
        +
        +// First listener
        +myEmitter.on('event', function firstListener() {
        +  console.log('Helloooo! first listener');
        +});
        +// Second listener
        +myEmitter.on('event', function secondListener(arg1, arg2) {
        +  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
        +});
        +// Third listener
        +myEmitter.on('event', function thirdListener(...args) {
        +  const parameters = args.join(', ');
        +  console.log(`event with parameters ${parameters} in third listener`);
        +});
        +
        +console.log(myEmitter.listeners('event'));
        +
        +myEmitter.emit('event', 1, 2, 3, 4, 5);
        +
        +// Prints:
        +// [
        +//   [Function: firstListener],
        +//   [Function: secondListener],
        +//   [Function: thirdListener]
        +// ]
        +// Helloooo! first listener
        +// event with parameters 1, 2 in second listener
        +// event with parameters 1, 2, 3, 4, 5 in third listener
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • Rest ...args: any[]
          @@ -308,10 +423,10 @@

          Returns boolean

    -
    +

    eventNames

    -
      +
      • eventNames(): Array<string | symbol>
        @@ -319,11 +434,31 @@

        eventNames

        +
        +
        +

        Returns an array listing the events for which the emitter has registered + listeners. The values in the array are strings or Symbols.

        +
        +
        const EventEmitter = require('events');
        +const myEE = new EventEmitter();
        +myEE.on('foo', () => {});
        +myEE.on('bar', () => {});
        +
        +const sym = Symbol('symbol');
        +myEE.on(sym, () => {});
        +
        +console.log(myEE.eventNames());
        +// Prints: [ 'foo', 'bar', Symbol(symbol) ]
        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Returns Array<string | symbol>

      @@ -339,17 +474,17 @@

      getAddresses

      Returns Array<{ address: string; family: string }>

    -
    +

    getMaxListeners

    -
      +
      • getMaxListeners(): number
        @@ -357,67 +492,158 @@

        getMaxListeners

        +
        +
        +

        Returns the current max listener value for the EventEmitter which is either + set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

        +
        +
        +
        since
        +

        v1.0.0

        +
        +
        +

        Returns number

    -
    +

    listenerCount

    -
      -
    • listenerCount(type: string | symbol): number
    • +
        +
      • listenerCount(eventName: string | symbol): number
      • +
        +
        +

        Returns the number of listeners listening to the event named eventName.

        +
        +
        +
        since
        +

        v3.2.0

        +
        +
        +

        Parameters

        • -
          type: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event being listened for

          +

        Returns number

    -
    +

    listeners

    -
      -
    • listeners(event: string | symbol): Function[]
    • +
        +
      • listeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName.

        +
        +
        server.on('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +console.log(util.inspect(server.listeners('connection')));
        +// Prints: [ [Function] ]
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    +
    + +

    off

    +
      +
    • off(eventName: string | symbol, listener: (...args: any[]) => void): this
    • +
    +
      +
    • + +
      +
      +

      Alias for emitter.removeListener().

      +
      +
      +
      since
      +

      v10.0.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        eventName: string | symbol
        +
      • +
      • +
        listener: (...args: any[]) => void
        +
          +
        • +
            +
          • (...args: any[]): void
          • +
          +
            +
          • +

            Parameters

            +
              +
            • +
              Rest ...args: any[]
              +
            • +
            +

            Returns void

            +
          • +
          +
        • +
        +
      • +
      +

      Returns this

      +
    • +
    +

    on

    @@ -433,7 +659,7 @@

    on

    Parameters

    @@ -472,7 +698,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -511,7 +737,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -550,7 +776,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -589,7 +815,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -632,7 +858,7 @@

    once

    Parameters

    @@ -671,7 +897,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -710,7 +936,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -749,7 +975,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -788,7 +1014,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -816,28 +1042,50 @@

    Returns this

    -
    +

    prependListener

    -
      -
    • prependListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds the listener function to the beginning of the listeners array for the + event named eventName. No checks are made to see if the listener has + already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple + times.

        +
        +
        server.prependListener('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -862,28 +1110,48 @@

              Returns this

    -
    +

    prependOnceListener

    -
      -
    • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this + listener is removed, and then invoked.

        +
        +
        server.prependOnceListener('connection', (stream) => {
        +  console.log('Ah, we have our first user!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

    -
    +

    rawListeners

    -
      -
    • rawListeners(event: string | symbol): Function[]
    • +
        +
      • rawListeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName, + including any wrappers (such as those created by .once()).

        +
        +
        const emitter = new EventEmitter();
        +emitter.once('log', () => console.log('log once'));
        +
        +// Returns a new Array with a function `onceWrapper` which has a property
        +// `listener` which contains the original listener bound above
        +const listeners = emitter.rawListeners('log');
        +const logFnWrapper = listeners[0];
        +
        +// Logs "log once" to the console and does not unbind the `once` event
        +logFnWrapper.listener();
        +
        +// Logs "log once" to the console and removes the listener
        +logFnWrapper();
        +
        +emitter.on('log', () => console.log('log persistently'));
        +// Will return a new Array with a single function bound by `.on()` above
        +const newListeners = emitter.rawListeners('log');
        +
        +// Logs "log persistently" twice
        +newListeners[0]();
        +emitter.emit('log');
        +
        +
        since
        +

        v9.4.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    -
    +

    removeAllListeners

    -
      +
      • removeAllListeners(event?: string | symbol): this
        @@ -969,11 +1268,24 @@

        removeAllListeners

        +
        +
        +

        Removes all listeners, or those of the specified eventName.

        +
        +

        It is bad practice to remove listeners added elsewhere in the code, + particularly when the EventEmitter instance was created by some other + component or module (e.g. sockets or file streams).

        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • @@ -984,25 +1296,95 @@

          Returns this

    -
    +

    removeListener

    -
      -
    • removeListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Removes the specified listener from the listener array for the event namedeventName.

        +
        +
        const callback = (stream) => {
        +  console.log('someone connected!');
        +};
        +server.on('connection', callback);
        +// ...
        +server.removeListener('connection', callback);
        +

        removeListener() will remove, at most, one instance of a listener from the + listener array. If any single listener has been added multiple times to the + listener array for the specified eventName, then removeListener() must be + called multiple times to remove each instance.

        +

        Once an event is emitted, all listeners attached to it at the + time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will + not remove them fromemit() in progress. Subsequent events behave as expected.

        +
        const myEmitter = new MyEmitter();
        +
        +const callbackA = () => {
        +  console.log('A');
        +  myEmitter.removeListener('event', callbackB);
        +};
        +
        +const callbackB = () => {
        +  console.log('B');
        +};
        +
        +myEmitter.on('event', callbackA);
        +
        +myEmitter.on('event', callbackB);
        +
        +// callbackA removes listener callbackB but it will still be called.
        +// Internal listener array at time of emit [callbackA, callbackB]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +//   B
        +
        +// callbackB is now removed.
        +// Internal listener array [callbackA]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +

        Because listeners are managed using an internal array, calling this will + change the position indices of any listener registered after the listener + being removed. This will not impact the order in which listeners are called, + but it means that any copies of the listener array as returned by + the emitter.listeners() method will need to be recreated.

        +

        When a single function has been added as a handler multiple times for a single + event (as in the example below), removeListener() will remove the most + recently added instance. In the example the once('ping')listener is removed:

        +
        const ee = new EventEmitter();
        +
        +function pong() {
        +  console.log('pong');
        +}
        +
        +ee.on('ping', pong);
        +ee.once('ping', pong);
        +ee.removeListener('ping', pong);
        +
        +ee.emit('ping');
        +ee.emit('ping');
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    setMaxListeners

    -
      +
      • setMaxListeners(n: number): this
        @@ -1065,11 +1447,24 @@

        setMaxListeners

        +
        +
        +

        By default EventEmitters will print a warning if more than 10 listeners are + added for a particular event. This is a useful default that helps finding + memory leaks. The emitter.setMaxListeners() method allows the limit to be + modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

        +
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.3.5

        +
        +
        +

        Parameters

        • @@ -1080,11 +1475,67 @@

          Returns this

    +
    + +

    Static getEventListeners

    +
      +
    • getEventListeners(emitter: DOMEventTarget | EventEmitter, name: string | symbol): Function[]
    • +
    +
      +
    • + +
      +
      +

      Returns a copy of the array of listeners for the event named eventName.

      +
      +

      For EventEmitters this behaves exactly the same as calling .listeners on + the emitter.

      +

      For EventTargets this is the only way to get the event listeners for the + event target. This is useful for debugging and diagnostic purposes.

      +
      const { getEventListeners, EventEmitter } = require('events');
      +
      +{
      +  const ee = new EventEmitter();
      +  const listener = () => console.log('Events are fun');
      +  ee.on('foo', listener);
      +  getEventListeners(ee, 'foo'); // [listener]
      +}
      +{
      +  const et = new EventTarget();
      +  const listener = () => console.log('Events are fun');
      +  et.addEventListener('foo', listener);
      +  getEventListeners(et, 'foo'); // [listener]
      +}
      +
      +
      since
      +

      v15.2.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: DOMEventTarget | EventEmitter
        +
      • +
      • +
        name: string | symbol
        +
      • +
      +

      Returns Function[]

      +
    • +
    +

    Static listenerCount

      -
    • listenerCount(emitter: EventEmitter, event: string | symbol): number
    • +
    • listenerCount(emitter: EventEmitter, eventName: string | symbol): number
    • @@ -1092,22 +1543,247 @@

      Static listenerCount

      Implementation of Transport.listenerCount

      Inherited from Service.listenerCount

        -
      • Defined in node_modules/@types/node/base.d.ts:976
      • +
      • Defined in node_modules/@types/node/events.d.ts:234
      +
      +
      +

      A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      +
      +
      const { EventEmitter, listenerCount } = require('events');
      +const myEmitter = new EventEmitter();
      +myEmitter.on('event', () => {});
      +myEmitter.on('event', () => {});
      +console.log(listenerCount(myEmitter, 'event'));
      +// Prints: 2
      +
      +
      since
      +

      v0.9.12

      +
      +
      deprecated
      +

      Since v3.2.0 - Use listenerCount instead.

      +
      +
      +

      Parameters

      • emitter: EventEmitter
        +
        +

        The emitter to query

        +
      • -
        event: string | symbol
        +
        eventName: string | symbol
        +
        +

        The event name

        +

      Returns number

    +
    + +

    Static on

    +
      +
    • on(emitter: EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
    • +
    +
      +
    • + +
      +
      +

      ```js + const { on, EventEmitter } = require('events');

      +
      +

      (async () => { + const ee = new EventEmitter();

      +

      // Emit later on + process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); + });

      +

      for await (const event of on(ee, 'foo')) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] + } + // Unreachable here + })();

      +
      
      +Returns an `AsyncIterator` that iterates `eventName` events. It will throw
      +if the `EventEmitter` emits `'error'`. It removes all listeners when
      +exiting the loop. The `value` returned by each iteration is an array
      +composed of the emitted event arguments.
      +
      +An `AbortSignal` can be used to cancel waiting on events:
      +
      +```js
      +const { on, EventEmitter } = require('events');
      +const ac = new AbortController();
      +
      +(async () => {
      +  const ee = new EventEmitter();
      +
      +  // Emit later on
      +  process.nextTick(() => {
      +    ee.emit('foo', 'bar');
      +    ee.emit('foo', 42);
      +  });
      +
      +  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
      +    // The execution of this inner block is synchronous and it
      +    // processes one event at a time (even with await). Do not use
      +    // if concurrent execution is required.
      +    console.log(event); // prints ['bar'] [42]
      +  }
      +  // Unreachable here
      +})();
      +
      +process.nextTick(() => ac.abort());
      +
      +
      since
      +

      v13.6.0, v12.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: EventEmitter
        +
      • +
      • +
        eventName: string
        +
        +

        The name of the event being listened for

        +
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns AsyncIterableIterator<any>

      +

      that iterates eventName events emitted by the emitter

      +
    • +
    +
    +
    + +

    Static once

    +
      +
    • once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
    • +
    +
      +
    • + +
      +
      +

      Creates a Promise that is fulfilled when the EventEmitter emits the given + event or that is rejected if the EventEmitter emits 'error' while waiting. + The Promise will resolve with an array of all the arguments emitted to the + given event.

      +
      +

      This method is intentionally generic and works with the web platformEventTarget interface, which has no special'error' event + semantics and does not listen to the 'error' event.

      +
      const { once, EventEmitter } = require('events');
      +
      +async function run() {
      +  const ee = new EventEmitter();
      +
      +  process.nextTick(() => {
      +    ee.emit('myevent', 42);
      +  });
      +
      +  const [value] = await once(ee, 'myevent');
      +  console.log(value);
      +
      +  const err = new Error('kaboom');
      +  process.nextTick(() => {
      +    ee.emit('error', err);
      +  });
      +
      +  try {
      +    await once(ee, 'myevent');
      +  } catch (err) {
      +    console.log('error happened', err);
      +  }
      +}
      +
      +run();
      +

      The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the + 'error' event itself, then it is treated as any other kind of event without + special handling:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +
      +once(ee, 'error')
      +  .then(([err]) => console.log('ok', err.message))
      +  .catch((err) => console.log('error', err.message));
      +
      +ee.emit('error', new Error('boom'));
      +
      +// Prints: ok boom
      +

      An AbortSignal can be used to cancel waiting for the event:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +const ac = new AbortController();
      +
      +async function foo(emitter, event, signal) {
      +  try {
      +    await once(emitter, event, { signal });
      +    console.log('event emitted!');
      +  } catch (error) {
      +    if (error.name === 'AbortError') {
      +      console.error('Waiting for the event was canceled!');
      +    } else {
      +      console.error('There was an error', error.message);
      +    }
      +  }
      +}
      +
      +foo(ee, 'foo', ac.signal);
      +ac.abort(); // Abort waiting for the event
      +ee.emit('foo'); // Prints: Waiting for the event was canceled!
      +
      +
      since
      +

      v11.13.0, v10.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: NodeEventTarget
        +
      • +
      • +
        eventName: string | symbol
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns Promise<any[]>

      +
    • +
    +

    Methods

    -
    +

    addListener

    -
      -
    • addListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • addListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Alias for emitter.on(eventName, listener).

        +
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    emit

    -
      -
    • emit(event: string | symbol, ...args: any[]): boolean
    • +
        +
      • emit(eventName: string | symbol, ...args: any[]): boolean
      • +
        +
        +

        Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments + to each.

        +
        +

        Returns true if the event had listeners, false otherwise.

        +
        const EventEmitter = require('events');
        +const myEmitter = new EventEmitter();
        +
        +// First listener
        +myEmitter.on('event', function firstListener() {
        +  console.log('Helloooo! first listener');
        +});
        +// Second listener
        +myEmitter.on('event', function secondListener(arg1, arg2) {
        +  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
        +});
        +// Third listener
        +myEmitter.on('event', function thirdListener(...args) {
        +  const parameters = args.join(', ');
        +  console.log(`event with parameters ${parameters} in third listener`);
        +});
        +
        +console.log(myEmitter.listeners('event'));
        +
        +myEmitter.emit('event', 1, 2, 3, 4, 5);
        +
        +// Prints:
        +// [
        +//   [Function: firstListener],
        +//   [Function: secondListener],
        +//   [Function: thirdListener]
        +// ]
        +// Helloooo! first listener
        +// event with parameters 1, 2 in second listener
        +// event with parameters 1, 2, 3, 4, 5 in third listener
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • Rest ...args: any[]
          @@ -297,10 +412,10 @@

          Returns boolean

    -
    +

    eventNames

    -
      +
      • eventNames(): Array<string | symbol>
        @@ -308,11 +423,31 @@

        eventNames

        +
        +
        +

        Returns an array listing the events for which the emitter has registered + listeners. The values in the array are strings or Symbols.

        +
        +
        const EventEmitter = require('events');
        +const myEE = new EventEmitter();
        +myEE.on('foo', () => {});
        +myEE.on('bar', () => {});
        +
        +const sym = Symbol('symbol');
        +myEE.on(sym, () => {});
        +
        +console.log(myEE.eventNames());
        +// Prints: [ 'foo', 'bar', Symbol(symbol) ]
        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Returns Array<string | symbol>

      @@ -328,17 +463,17 @@

      getAddresses

      Returns Array<{ address: string; family: string }>

    -
    +

    getMaxListeners

    -
      +
      • getMaxListeners(): number
        @@ -346,67 +481,158 @@

        getMaxListeners

        +
        +
        +

        Returns the current max listener value for the EventEmitter which is either + set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

        +
        +
        +
        since
        +

        v1.0.0

        +
        +
        +

        Returns number

    -
    +

    listenerCount

    -
      -
    • listenerCount(type: string | symbol): number
    • +
        +
      • listenerCount(eventName: string | symbol): number
      • +
        +
        +

        Returns the number of listeners listening to the event named eventName.

        +
        +
        +
        since
        +

        v3.2.0

        +
        +
        +

        Parameters

        • -
          type: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event being listened for

          +

        Returns number

    -
    +

    listeners

    -
      -
    • listeners(event: string | symbol): Function[]
    • +
        +
      • listeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName.

        +
        +
        server.on('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +console.log(util.inspect(server.listeners('connection')));
        +// Prints: [ [Function] ]
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    +
    + +

    off

    +
      +
    • off(eventName: string | symbol, listener: (...args: any[]) => void): this
    • +
    +
      +
    • + +
      +
      +

      Alias for emitter.removeListener().

      +
      +
      +
      since
      +

      v10.0.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        eventName: string | symbol
        +
      • +
      • +
        listener: (...args: any[]) => void
        +
          +
        • +
            +
          • (...args: any[]): void
          • +
          +
            +
          • +

            Parameters

            +
              +
            • +
              Rest ...args: any[]
              +
            • +
            +

            Returns void

            +
          • +
          +
        • +
        +
      • +
      +

      Returns this

      +
    • +
    +

    on

    @@ -419,7 +645,7 @@

    on

    Parameters

    @@ -458,7 +684,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -507,7 +733,7 @@

    once

    Parameters

    @@ -546,7 +772,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -583,28 +809,50 @@

    Returns this

    -
    +

    prependListener

    -
      -
    • prependListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds the listener function to the beginning of the listeners array for the + event named eventName. No checks are made to see if the listener has + already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple + times.

        +
        +
        server.prependListener('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -629,28 +877,48 @@

              Returns this

    -
    +

    prependOnceListener

    -
      -
    • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this + listener is removed, and then invoked.

        +
        +
        server.prependOnceListener('connection', (stream) => {
        +  console.log('Ah, we have our first user!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

    -
    +

    rawListeners

    -
      -
    • rawListeners(event: string | symbol): Function[]
    • +
        +
      • rawListeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName, + including any wrappers (such as those created by .once()).

        +
        +
        const emitter = new EventEmitter();
        +emitter.once('log', () => console.log('log once'));
        +
        +// Returns a new Array with a function `onceWrapper` which has a property
        +// `listener` which contains the original listener bound above
        +const listeners = emitter.rawListeners('log');
        +const logFnWrapper = listeners[0];
        +
        +// Logs "log once" to the console and does not unbind the `once` event
        +logFnWrapper.listener();
        +
        +// Logs "log once" to the console and removes the listener
        +logFnWrapper();
        +
        +emitter.on('log', () => console.log('log persistently'));
        +// Will return a new Array with a single function bound by `.on()` above
        +const newListeners = emitter.rawListeners('log');
        +
        +// Logs "log persistently" twice
        +newListeners[0]();
        +emitter.emit('log');
        +
        +
        since
        +

        v9.4.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    -
    +

    removeAllListeners

    -
      +
      • removeAllListeners(event?: string | symbol): this
        @@ -736,11 +1035,24 @@

        removeAllListeners

        +
        +
        +

        Removes all listeners, or those of the specified eventName.

        +
        +

        It is bad practice to remove listeners added elsewhere in the code, + particularly when the EventEmitter instance was created by some other + component or module (e.g. sockets or file streams).

        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • @@ -751,25 +1063,95 @@

          Returns this

    -
    +

    removeListener

    -
      -
    • removeListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Removes the specified listener from the listener array for the event namedeventName.

        +
        +
        const callback = (stream) => {
        +  console.log('someone connected!');
        +};
        +server.on('connection', callback);
        +// ...
        +server.removeListener('connection', callback);
        +

        removeListener() will remove, at most, one instance of a listener from the + listener array. If any single listener has been added multiple times to the + listener array for the specified eventName, then removeListener() must be + called multiple times to remove each instance.

        +

        Once an event is emitted, all listeners attached to it at the + time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will + not remove them fromemit() in progress. Subsequent events behave as expected.

        +
        const myEmitter = new MyEmitter();
        +
        +const callbackA = () => {
        +  console.log('A');
        +  myEmitter.removeListener('event', callbackB);
        +};
        +
        +const callbackB = () => {
        +  console.log('B');
        +};
        +
        +myEmitter.on('event', callbackA);
        +
        +myEmitter.on('event', callbackB);
        +
        +// callbackA removes listener callbackB but it will still be called.
        +// Internal listener array at time of emit [callbackA, callbackB]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +//   B
        +
        +// callbackB is now removed.
        +// Internal listener array [callbackA]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +

        Because listeners are managed using an internal array, calling this will + change the position indices of any listener registered after the listener + being removed. This will not impact the order in which listeners are called, + but it means that any copies of the listener array as returned by + the emitter.listeners() method will need to be recreated.

        +

        When a single function has been added as a handler multiple times for a single + event (as in the example below), removeListener() will remove the most + recently added instance. In the example the once('ping')listener is removed:

        +
        const ee = new EventEmitter();
        +
        +function pong() {
        +  console.log('pong');
        +}
        +
        +ee.on('ping', pong);
        +ee.once('ping', pong);
        +ee.removeListener('ping', pong);
        +
        +ee.emit('ping');
        +ee.emit('ping');
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    setMaxListeners

    -
      +
      • setMaxListeners(n: number): this
        @@ -832,11 +1214,24 @@

        setMaxListeners

        +
        +
        +

        By default EventEmitters will print a warning if more than 10 listeners are + added for a particular event. This is a useful default that helps finding + memory leaks. The emitter.setMaxListeners() method allows the limit to be + modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

        +
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.3.5

        +
        +
        +

        Parameters

        • @@ -847,11 +1242,67 @@

          Returns this

    +
    + +

    Static getEventListeners

    +
      +
    • getEventListeners(emitter: DOMEventTarget | EventEmitter, name: string | symbol): Function[]
    • +
    +
      +
    • + +
      +
      +

      Returns a copy of the array of listeners for the event named eventName.

      +
      +

      For EventEmitters this behaves exactly the same as calling .listeners on + the emitter.

      +

      For EventTargets this is the only way to get the event listeners for the + event target. This is useful for debugging and diagnostic purposes.

      +
      const { getEventListeners, EventEmitter } = require('events');
      +
      +{
      +  const ee = new EventEmitter();
      +  const listener = () => console.log('Events are fun');
      +  ee.on('foo', listener);
      +  getEventListeners(ee, 'foo'); // [listener]
      +}
      +{
      +  const et = new EventTarget();
      +  const listener = () => console.log('Events are fun');
      +  et.addEventListener('foo', listener);
      +  getEventListeners(et, 'foo'); // [listener]
      +}
      +
      +
      since
      +

      v15.2.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: DOMEventTarget | EventEmitter
        +
      • +
      • +
        name: string | symbol
        +
      • +
      +

      Returns Function[]

      +
    • +
    +

    Static listenerCount

      -
    • listenerCount(emitter: EventEmitter, event: string | symbol): number
    • +
    • listenerCount(emitter: EventEmitter, eventName: string | symbol): number
    • @@ -859,22 +1310,247 @@

      Static listenerCount

      Implementation of Transport.listenerCount

      Inherited from Service.listenerCount

        -
      • Defined in node_modules/@types/node/base.d.ts:976
      • +
      • Defined in node_modules/@types/node/events.d.ts:234
      +
      +
      +

      A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      +
      +
      const { EventEmitter, listenerCount } = require('events');
      +const myEmitter = new EventEmitter();
      +myEmitter.on('event', () => {});
      +myEmitter.on('event', () => {});
      +console.log(listenerCount(myEmitter, 'event'));
      +// Prints: 2
      +
      +
      since
      +

      v0.9.12

      +
      +
      deprecated
      +

      Since v3.2.0 - Use listenerCount instead.

      +
      +
      +

      Parameters

      • emitter: EventEmitter
        +
        +

        The emitter to query

        +
      • -
        event: string | symbol
        +
        eventName: string | symbol
        +
        +

        The event name

        +

      Returns number

    +
    + +

    Static on

    +
      +
    • on(emitter: EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
    • +
    +
      +
    • + +
      +
      +

      ```js + const { on, EventEmitter } = require('events');

      +
      +

      (async () => { + const ee = new EventEmitter();

      +

      // Emit later on + process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); + });

      +

      for await (const event of on(ee, 'foo')) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] + } + // Unreachable here + })();

      +
      
      +Returns an `AsyncIterator` that iterates `eventName` events. It will throw
      +if the `EventEmitter` emits `'error'`. It removes all listeners when
      +exiting the loop. The `value` returned by each iteration is an array
      +composed of the emitted event arguments.
      +
      +An `AbortSignal` can be used to cancel waiting on events:
      +
      +```js
      +const { on, EventEmitter } = require('events');
      +const ac = new AbortController();
      +
      +(async () => {
      +  const ee = new EventEmitter();
      +
      +  // Emit later on
      +  process.nextTick(() => {
      +    ee.emit('foo', 'bar');
      +    ee.emit('foo', 42);
      +  });
      +
      +  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
      +    // The execution of this inner block is synchronous and it
      +    // processes one event at a time (even with await). Do not use
      +    // if concurrent execution is required.
      +    console.log(event); // prints ['bar'] [42]
      +  }
      +  // Unreachable here
      +})();
      +
      +process.nextTick(() => ac.abort());
      +
      +
      since
      +

      v13.6.0, v12.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: EventEmitter
        +
      • +
      • +
        eventName: string
        +
        +

        The name of the event being listened for

        +
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns AsyncIterableIterator<any>

      +

      that iterates eventName events emitted by the emitter

      +
    • +
    +
    +
    + +

    Static once

    +
      +
    • once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
    • +
    +
      +
    • + +
      +
      +

      Creates a Promise that is fulfilled when the EventEmitter emits the given + event or that is rejected if the EventEmitter emits 'error' while waiting. + The Promise will resolve with an array of all the arguments emitted to the + given event.

      +
      +

      This method is intentionally generic and works with the web platformEventTarget interface, which has no special'error' event + semantics and does not listen to the 'error' event.

      +
      const { once, EventEmitter } = require('events');
      +
      +async function run() {
      +  const ee = new EventEmitter();
      +
      +  process.nextTick(() => {
      +    ee.emit('myevent', 42);
      +  });
      +
      +  const [value] = await once(ee, 'myevent');
      +  console.log(value);
      +
      +  const err = new Error('kaboom');
      +  process.nextTick(() => {
      +    ee.emit('error', err);
      +  });
      +
      +  try {
      +    await once(ee, 'myevent');
      +  } catch (err) {
      +    console.log('error happened', err);
      +  }
      +}
      +
      +run();
      +

      The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the + 'error' event itself, then it is treated as any other kind of event without + special handling:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +
      +once(ee, 'error')
      +  .then(([err]) => console.log('ok', err.message))
      +  .catch((err) => console.log('error', err.message));
      +
      +ee.emit('error', new Error('boom'));
      +
      +// Prints: ok boom
      +

      An AbortSignal can be used to cancel waiting for the event:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +const ac = new AbortController();
      +
      +async function foo(emitter, event, signal) {
      +  try {
      +    await once(emitter, event, { signal });
      +    console.log('event emitted!');
      +  } catch (error) {
      +    if (error.name === 'AbortError') {
      +      console.error('Waiting for the event was canceled!');
      +    } else {
      +      console.error('There was an error', error.message);
      +    }
      +  }
      +}
      +
      +foo(ee, 'foo', ac.signal);
      +ac.abort(); // Abort waiting for the event
      +ee.emit('foo'); // Prints: Waiting for the event was canceled!
      +
      +
      since
      +

      v11.13.0, v10.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: NodeEventTarget
        +
      • +
      • +
        eventName: string | symbol
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns Promise<any[]>

      +
    • +
    +
    @@ -160,7 +160,7 @@

    name

    @@ -171,7 +171,7 @@

    timestamp

    @@ -182,7 +182,7 @@

    ttl

    @@ -193,7 +193,7 @@

    type

    diff --git a/docs/classes/query.html b/docs/classes/query.html index 9edea67..c78837a 100644 --- a/docs/classes/query.html +++ b/docs/classes/query.html @@ -105,7 +105,7 @@

    constructor

  • Parameters

    @@ -127,7 +127,7 @@

    questions

    questions: Question[]
  • diff --git a/docs/classes/question.html b/docs/classes/question.html index 7594fc9..6586f36 100644 --- a/docs/classes/question.html +++ b/docs/classes/question.html @@ -106,7 +106,7 @@

    constructor

  • Parameters

    @@ -136,7 +136,7 @@

    name

    name: string
  • @@ -146,7 +146,7 @@

    type

    diff --git a/docs/classes/record.html b/docs/classes/record.html index aae7339..1e8c471 100644 --- a/docs/classes/record.html +++ b/docs/classes/record.html @@ -126,7 +126,7 @@

    constructor

  • Parameters

    @@ -148,7 +148,7 @@

    data

    data: any
  • @@ -158,7 +158,7 @@

    name

    name: string
    @@ -168,7 +168,7 @@

    timestamp

    timestamp: Date
    @@ -178,7 +178,7 @@

    ttl

    ttl: number
    @@ -188,7 +188,7 @@

    type

    diff --git a/docs/classes/recordregistry.html b/docs/classes/recordregistry.html index c6804ae..9e96424 100644 --- a/docs/classes/recordregistry.html +++ b/docs/classes/recordregistry.html @@ -113,7 +113,7 @@

    records

    records: Record[] = []
    @@ -130,7 +130,7 @@

    add

  • Parameters

    @@ -153,7 +153,7 @@

    addAll

  • Parameters

    @@ -176,7 +176,7 @@

    find

  • Parameters

    @@ -220,7 +220,7 @@

    findAddressRecordsByHostname

  • Parameters

    @@ -243,7 +243,7 @@

    findOne

  • Parameters

    @@ -287,7 +287,7 @@

    findOneSRVByName

  • Parameters

    @@ -310,7 +310,7 @@

    findOneTXTByName

  • Parameters

    @@ -333,7 +333,7 @@

    findSRVsByType

  • Parameters

    @@ -356,7 +356,7 @@

    findUnresolved

  • Returns Record[]

    @@ -373,7 +373,7 @@

    keepHouse

  • Returns void

    @@ -390,7 +390,7 @@

    remove

  • Parameters

    @@ -413,7 +413,7 @@

    removeAll

  • Parameters

    @@ -436,7 +436,7 @@

    tracePTR

  • Parameters

    diff --git a/docs/classes/referrer.html b/docs/classes/referrer.html index c0ebcef..732994b 100644 --- a/docs/classes/referrer.html +++ b/docs/classes/referrer.html @@ -108,7 +108,7 @@

    constructor

  • Parameters

    @@ -144,7 +144,7 @@

    address

    address: string
  • @@ -154,7 +154,7 @@

    family

    family: string
    @@ -164,7 +164,7 @@

    port

    port: number
    @@ -174,7 +174,7 @@

    size

    size: number
    diff --git a/docs/classes/remoteservice.html b/docs/classes/remoteservice.html index c8e4c2d..860e639 100644 --- a/docs/classes/remoteservice.html +++ b/docs/classes/remoteservice.html @@ -113,7 +113,7 @@

    constructor

  • Parameters

    @@ -141,7 +141,7 @@

    addresses

    addresses: string[]
  • @@ -151,7 +151,7 @@

    domain

    domain: string
    @@ -161,7 +161,7 @@

    hostname

    hostname: string
    @@ -171,7 +171,7 @@

    name

    name: string
    @@ -181,7 +181,7 @@

    port

    port: number
    @@ -191,7 +191,7 @@

    protocol

    protocol: string
    @@ -201,7 +201,7 @@

    subtypes

    subtypes: string[]
    @@ -211,7 +211,7 @@

    Optional txt

    txt: TXTData
    @@ -221,7 +221,7 @@

    type

    type: string
    diff --git a/docs/classes/response.html b/docs/classes/response.html index 6e98d41..40f60bb 100644 --- a/docs/classes/response.html +++ b/docs/classes/response.html @@ -113,7 +113,7 @@

    constructor

  • Parameters

    @@ -135,7 +135,7 @@

    additionals

    additionals: Record[] = []
  • @@ -145,7 +145,7 @@

    answers

    answers: Record[]
    @@ -162,7 +162,7 @@

    Static parse

  • Parameters

    @@ -188,7 +188,7 @@

    Static serialize

  • Parameters

    diff --git a/docs/classes/server.html b/docs/classes/server.html index dbe00a3..cbc4dfa 100644 --- a/docs/classes/server.html +++ b/docs/classes/server.html @@ -83,10 +83,16 @@

    Hierarchy

    Index

    @@ -130,17 +143,18 @@

    Methods

    Constructors

    -
    +

    constructor

    -
    @@ -172,7 +186,7 @@

    recordRegistry

    recordRegistry: RecordRegistry
    @@ -182,7 +196,7 @@

    services

    services: Service[] = []
    @@ -192,7 +206,7 @@

    transport

    transport: Transport
  • @@ -202,10 +216,37 @@

    transportOptions

    transportOptions: TransportOptions
    +
    +
    + +

    Static captureRejectionSymbol

    +
    captureRejectionSymbol: keyof symbol
    +
    +
    + +

    Static captureRejections

    +
    captureRejections: boolean
    + +
    +
    +

    Sets or gets the default captureRejection value for all emitters.

    +
    +
    +

    Static defaultMaxListeners

    @@ -213,32 +254,62 @@

    Static defaultMaxListe

    +
    + +

    Static errorMonitor

    +
    errorMonitor: keyof symbol
    + +
    +
    +

    This symbol shall be used to install a listener for only monitoring 'error' + events. Listeners installed using this symbol are called before the regular + 'error' listeners are called.

    +
    +

    Installing a listener using this symbol does not change the behavior once an + 'error' event is emitted, therefore the process will still crash if no + regular 'error' listener is installed.

    +
    +

    Methods

    -
    +

    addListener

    -
      -
    • addListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • addListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Alias for emitter.on(eventName, listener).

        +
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    emit

    -
      -
    • emit(event: string | symbol, ...args: any[]): boolean
    • +
        +
      • emit(eventName: string | symbol, ...args: any[]): boolean
      • +
        +
        +

        Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments + to each.

        +
        +

        Returns true if the event had listeners, false otherwise.

        +
        const EventEmitter = require('events');
        +const myEmitter = new EventEmitter();
        +
        +// First listener
        +myEmitter.on('event', function firstListener() {
        +  console.log('Helloooo! first listener');
        +});
        +// Second listener
        +myEmitter.on('event', function secondListener(arg1, arg2) {
        +  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
        +});
        +// Third listener
        +myEmitter.on('event', function thirdListener(...args) {
        +  const parameters = args.join(', ');
        +  console.log(`event with parameters ${parameters} in third listener`);
        +});
        +
        +console.log(myEmitter.listeners('event'));
        +
        +myEmitter.emit('event', 1, 2, 3, 4, 5);
        +
        +// Prints:
        +// [
        +//   [Function: firstListener],
        +//   [Function: secondListener],
        +//   [Function: thirdListener]
        +// ]
        +// Helloooo! first listener
        +// event with parameters 1, 2 in second listener
        +// event with parameters 1, 2, 3, 4, 5 in third listener
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • Rest ...args: any[]
          @@ -360,94 +472,205 @@

          Returns boolean

    -
    +

    eventNames

    -
      +
      • eventNames(): Array<string | symbol>
      • +
        +
        +

        Returns an array listing the events for which the emitter has registered + listeners. The values in the array are strings or Symbols.

        +
        +
        const EventEmitter = require('events');
        +const myEE = new EventEmitter();
        +myEE.on('foo', () => {});
        +myEE.on('bar', () => {});
        +
        +const sym = Symbol('symbol');
        +myEE.on(sym, () => {});
        +
        +console.log(myEE.eventNames());
        +// Prints: [ 'foo', 'bar', Symbol(symbol) ]
        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Returns Array<string | symbol>

    -
    +

    getMaxListeners

    -
      +
      • getMaxListeners(): number
      • +
        +
        +

        Returns the current max listener value for the EventEmitter which is either + set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

        +
        +
        +
        since
        +

        v1.0.0

        +
        +
        +

        Returns number

    -
    +

    listenerCount

    -
      -
    • listenerCount(type: string | symbol): number
    • +
        +
      • listenerCount(eventName: string | symbol): number
      • +
        +
        +

        Returns the number of listeners listening to the event named eventName.

        +
        +
        +
        since
        +

        v3.2.0

        +
        +
        +

        Parameters

        • -
          type: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event being listened for

          +

        Returns number

    -
    +

    listeners

    -
      -
    • listeners(event: string | symbol): Function[]
    • +
        +
      • listeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName.

        +
        +
        server.on('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +console.log(util.inspect(server.listeners('connection')));
        +// Prints: [ [Function] ]
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    +
    + +

    off

    +
      +
    • off(eventName: string | symbol, listener: (...args: any[]) => void): this
    • +
    +
      +
    • + +
      +
      +

      Alias for emitter.removeListener().

      +
      +
      +
      since
      +

      v10.0.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        eventName: string | symbol
        +
      • +
      • +
        listener: (...args: any[]) => void
        +
          +
        • +
            +
          • (...args: any[]): void
          • +
          +
            +
          • +

            Parameters

            +
              +
            • +
              Rest ...args: any[]
              +
            • +
            +

            Returns void

            +
          • +
          +
        • +
        +
      • +
      +

      Returns this

      +
    • +
    +

    on

    @@ -461,7 +684,7 @@

    on

    Parameters

    @@ -500,7 +723,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -539,7 +762,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -580,7 +803,7 @@

    once

    Parameters

    @@ -619,7 +842,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -658,7 +881,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -686,28 +909,50 @@

    Returns this

    -
    +

    prependListener

    -
      -
    • prependListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds the listener function to the beginning of the listeners array for the + event named eventName. No checks are made to see if the listener has + already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple + times.

        +
        +
        server.prependListener('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -732,28 +977,48 @@

              Returns this

    -
    +

    prependOnceListener

    -
      -
    • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this + listener is removed, and then invoked.

        +
        +
        server.prependOnceListener('connection', (stream) => {
        +  console.log('Ah, we have our first user!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
    -
    +

    rawListeners

    -
      -
    • rawListeners(event: string | symbol): Function[]
    • +
        +
      • rawListeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName, + including any wrappers (such as those created by .once()).

        +
        +
        const emitter = new EventEmitter();
        +emitter.once('log', () => console.log('log once'));
        +
        +// Returns a new Array with a function `onceWrapper` which has a property
        +// `listener` which contains the original listener bound above
        +const listeners = emitter.rawListeners('log');
        +const logFnWrapper = listeners[0];
        +
        +// Logs "log once" to the console and does not unbind the `once` event
        +logFnWrapper.listener();
        +
        +// Logs "log once" to the console and removes the listener
        +logFnWrapper();
        +
        +emitter.on('log', () => console.log('log persistently'));
        +// Will return a new Array with a single function bound by `.on()` above
        +const newListeners = emitter.rawListeners('log');
        +
        +// Logs "log persistently" twice
        +newListeners[0]();
        +emitter.emit('log');
        +
        +
        since
        +

        v9.4.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    -
    +

    removeAllListeners

    -
      +
      • removeAllListeners(event?: string | symbol): this
      • +
        +
        +

        Removes all listeners, or those of the specified eventName.

        +
        +

        It is bad practice to remove listeners added elsewhere in the code, + particularly when the EventEmitter instance was created by some other + component or module (e.g. sockets or file streams).

        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • @@ -851,25 +1160,95 @@

          Returns this

    -
    +

    removeListener

    -
      -
    • removeListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Removes the specified listener from the listener array for the event namedeventName.

        +
        +
        const callback = (stream) => {
        +  console.log('someone connected!');
        +};
        +server.on('connection', callback);
        +// ...
        +server.removeListener('connection', callback);
        +

        removeListener() will remove, at most, one instance of a listener from the + listener array. If any single listener has been added multiple times to the + listener array for the specified eventName, then removeListener() must be + called multiple times to remove each instance.

        +

        Once an event is emitted, all listeners attached to it at the + time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will + not remove them fromemit() in progress. Subsequent events behave as expected.

        +
        const myEmitter = new MyEmitter();
        +
        +const callbackA = () => {
        +  console.log('A');
        +  myEmitter.removeListener('event', callbackB);
        +};
        +
        +const callbackB = () => {
        +  console.log('B');
        +};
        +
        +myEmitter.on('event', callbackA);
        +
        +myEmitter.on('event', callbackB);
        +
        +// callbackA removes listener callbackB but it will still be called.
        +// Internal listener array at time of emit [callbackA, callbackB]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +//   B
        +
        +// callbackB is now removed.
        +// Internal listener array [callbackA]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +

        Because listeners are managed using an internal array, calling this will + change the position indices of any listener registered after the listener + being removed. This will not impact the order in which listeners are called, + but it means that any copies of the listener array as returned by + the emitter.listeners() method will need to be recreated.

        +

        When a single function has been added as a handler multiple times for a single + event (as in the example below), removeListener() will remove the most + recently added instance. In the example the once('ping')listener is removed:

        +
        const ee = new EventEmitter();
        +
        +function pong() {
        +  console.log('pong');
        +}
        +
        +ee.on('ping', pong);
        +ee.once('ping', pong);
        +ee.removeListener('ping', pong);
        +
        +ee.emit('ping');
        +ee.emit('ping');
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • listener: (...args: any[]) => void
          @@ -907,7 +1286,7 @@

          removeService

        • Parameters

          @@ -920,21 +1299,34 @@

          Returns void

    -
    +

    setMaxListeners

    -
      +
      • setMaxListeners(n: number): this
      • +
        +
        +

        By default EventEmitters will print a warning if more than 10 listeners are + added for a particular event. This is a useful default that helps finding + memory leaks. The emitter.setMaxListeners() method allows the limit to be + modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

        +
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.3.5

        +
        +
        +

        Parameters

        • @@ -945,33 +1337,311 @@

          Returns this

    +
    + +

    Static getEventListeners

    +
      +
    • getEventListeners(emitter: DOMEventTarget | EventEmitter, name: string | symbol): Function[]
    • +
    +
      +
    • + +
      +
      +

      Returns a copy of the array of listeners for the event named eventName.

      +
      +

      For EventEmitters this behaves exactly the same as calling .listeners on + the emitter.

      +

      For EventTargets this is the only way to get the event listeners for the + event target. This is useful for debugging and diagnostic purposes.

      +
      const { getEventListeners, EventEmitter } = require('events');
      +
      +{
      +  const ee = new EventEmitter();
      +  const listener = () => console.log('Events are fun');
      +  ee.on('foo', listener);
      +  getEventListeners(ee, 'foo'); // [listener]
      +}
      +{
      +  const et = new EventTarget();
      +  const listener = () => console.log('Events are fun');
      +  et.addEventListener('foo', listener);
      +  getEventListeners(et, 'foo'); // [listener]
      +}
      +
      +
      since
      +

      v15.2.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: DOMEventTarget | EventEmitter
        +
      • +
      • +
        name: string | symbol
        +
      • +
      +

      Returns Function[]

      +
    • +
    +

    Static listenerCount

      -
    • listenerCount(emitter: EventEmitter, event: string | symbol): number
    • +
    • listenerCount(emitter: EventEmitter, eventName: string | symbol): number
    • +
      +
      +

      A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      +
      +
      const { EventEmitter, listenerCount } = require('events');
      +const myEmitter = new EventEmitter();
      +myEmitter.on('event', () => {});
      +myEmitter.on('event', () => {});
      +console.log(listenerCount(myEmitter, 'event'));
      +// Prints: 2
      +
      +
      since
      +

      v0.9.12

      +
      +
      deprecated
      +

      Since v3.2.0 - Use listenerCount instead.

      +
      +
      +

      Parameters

      • emitter: EventEmitter
        +
        +

        The emitter to query

        +
      • -
        event: string | symbol
        +
        eventName: string | symbol
        +
        +

        The event name

        +

      Returns number

    +
    + +

    Static on

    +
      +
    • on(emitter: EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
    • +
    +
      +
    • + +
      +
      +

      ```js + const { on, EventEmitter } = require('events');

      +
      +

      (async () => { + const ee = new EventEmitter();

      +

      // Emit later on + process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); + });

      +

      for await (const event of on(ee, 'foo')) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] + } + // Unreachable here + })();

      +
      
      +Returns an `AsyncIterator` that iterates `eventName` events. It will throw
      +if the `EventEmitter` emits `'error'`. It removes all listeners when
      +exiting the loop. The `value` returned by each iteration is an array
      +composed of the emitted event arguments.
      +
      +An `AbortSignal` can be used to cancel waiting on events:
      +
      +```js
      +const { on, EventEmitter } = require('events');
      +const ac = new AbortController();
      +
      +(async () => {
      +  const ee = new EventEmitter();
      +
      +  // Emit later on
      +  process.nextTick(() => {
      +    ee.emit('foo', 'bar');
      +    ee.emit('foo', 42);
      +  });
      +
      +  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
      +    // The execution of this inner block is synchronous and it
      +    // processes one event at a time (even with await). Do not use
      +    // if concurrent execution is required.
      +    console.log(event); // prints ['bar'] [42]
      +  }
      +  // Unreachable here
      +})();
      +
      +process.nextTick(() => ac.abort());
      +
      +
      since
      +

      v13.6.0, v12.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: EventEmitter
        +
      • +
      • +
        eventName: string
        +
        +

        The name of the event being listened for

        +
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns AsyncIterableIterator<any>

      +

      that iterates eventName events emitted by the emitter

      +
    • +
    +
    +
    + +

    Static once

    +
      +
    • once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
    • +
    +
      +
    • + +
      +
      +

      Creates a Promise that is fulfilled when the EventEmitter emits the given + event or that is rejected if the EventEmitter emits 'error' while waiting. + The Promise will resolve with an array of all the arguments emitted to the + given event.

      +
      +

      This method is intentionally generic and works with the web platformEventTarget interface, which has no special'error' event + semantics and does not listen to the 'error' event.

      +
      const { once, EventEmitter } = require('events');
      +
      +async function run() {
      +  const ee = new EventEmitter();
      +
      +  process.nextTick(() => {
      +    ee.emit('myevent', 42);
      +  });
      +
      +  const [value] = await once(ee, 'myevent');
      +  console.log(value);
      +
      +  const err = new Error('kaboom');
      +  process.nextTick(() => {
      +    ee.emit('error', err);
      +  });
      +
      +  try {
      +    await once(ee, 'myevent');
      +  } catch (err) {
      +    console.log('error happened', err);
      +  }
      +}
      +
      +run();
      +

      The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the + 'error' event itself, then it is treated as any other kind of event without + special handling:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +
      +once(ee, 'error')
      +  .then(([err]) => console.log('ok', err.message))
      +  .catch((err) => console.log('error', err.message));
      +
      +ee.emit('error', new Error('boom'));
      +
      +// Prints: ok boom
      +

      An AbortSignal can be used to cancel waiting for the event:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +const ac = new AbortController();
      +
      +async function foo(emitter, event, signal) {
      +  try {
      +    await once(emitter, event, { signal });
      +    console.log('event emitted!');
      +  } catch (error) {
      +    if (error.name === 'AbortError') {
      +      console.error('Waiting for the event was canceled!');
      +    } else {
      +      console.error('There was an error', error.message);
      +    }
      +  }
      +}
      +
      +foo(ee, 'foo', ac.signal);
      +ac.abort(); // Abort waiting for the event
      +ee.emit('foo'); // Prints: Waiting for the event was canceled!
      +
      +
      since
      +

      v11.13.0, v10.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: NodeEventTarget
        +
      • +
      • +
        eventName: string | symbol
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns Promise<any[]>

      +
    • +
    +
    @@ -216,7 +230,7 @@

    hostname

    hostname: string
    @@ -226,7 +240,7 @@

    name

    name: string
    @@ -236,7 +250,7 @@

    port

    port: number
    @@ -246,7 +260,7 @@

    protocol

    protocol: string
    @@ -256,7 +270,7 @@

    rawTxt

    rawTxt: string
    @@ -266,7 +280,7 @@

    server

    server: Server
    @@ -276,7 +290,7 @@

    spreaded

    spreaded: boolean = false
    @@ -286,7 +300,7 @@

    subtypes

    subtypes: string[] = []
    @@ -296,7 +310,7 @@

    txt

    txt: TXTData
    @@ -306,10 +320,37 @@

    type

    type: string
    +
    +
    + +

    Static captureRejectionSymbol

    +
    captureRejectionSymbol: keyof symbol
    +
    +
    + +

    Static captureRejections

    +
    captureRejections: boolean
    + +
    +
    +

    Sets or gets the default captureRejection value for all emitters.

    +
    +
    +

    Static defaultMaxListeners

    @@ -317,32 +358,62 @@

    Static defaultMaxListe

    +
    + +

    Static errorMonitor

    +
    errorMonitor: keyof symbol
    + +
    +
    +

    This symbol shall be used to install a listener for only monitoring 'error' + events. Listeners installed using this symbol are called before the regular + 'error' listeners are called.

    +
    +

    Installing a listener using this symbol does not change the behavior once an + 'error' event is emitted, therefore the process will still crash if no + regular 'error' listener is installed.

    +
    +

    Methods

    -
    +

    addListener

    -
      -
    • addListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • addListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Alias for emitter.on(eventName, listener).

        +
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    emit

    -
      -
    • emit(event: string | symbol, ...args: any[]): boolean
    • +
        +
      • emit(eventName: string | symbol, ...args: any[]): boolean
      • +
        +
        +

        Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments + to each.

        +
        +

        Returns true if the event had listeners, false otherwise.

        +
        const EventEmitter = require('events');
        +const myEmitter = new EventEmitter();
        +
        +// First listener
        +myEmitter.on('event', function firstListener() {
        +  console.log('Helloooo! first listener');
        +});
        +// Second listener
        +myEmitter.on('event', function secondListener(arg1, arg2) {
        +  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
        +});
        +// Third listener
        +myEmitter.on('event', function thirdListener(...args) {
        +  const parameters = args.join(', ');
        +  console.log(`event with parameters ${parameters} in third listener`);
        +});
        +
        +console.log(myEmitter.listeners('event'));
        +
        +myEmitter.emit('event', 1, 2, 3, 4, 5);
        +
        +// Prints:
        +// [
        +//   [Function: firstListener],
        +//   [Function: secondListener],
        +//   [Function: thirdListener]
        +// ]
        +// Helloooo! first listener
        +// event with parameters 1, 2 in second listener
        +// event with parameters 1, 2, 3, 4, 5 in third listener
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • Rest ...args: any[]
          @@ -441,21 +553,41 @@

          Returns boolean

    -
    +

    eventNames

    -
      +
      • eventNames(): Array<string | symbol>
      • +
        +
        +

        Returns an array listing the events for which the emitter has registered + listeners. The values in the array are strings or Symbols.

        +
        +
        const EventEmitter = require('events');
        +const myEE = new EventEmitter();
        +myEE.on('foo', () => {});
        +myEE.on('bar', () => {});
        +
        +const sym = Symbol('symbol');
        +myEE.on(sym, () => {});
        +
        +console.log(myEE.eventNames());
        +// Prints: [ 'foo', 'bar', Symbol(symbol) ]
        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Returns Array<string | symbol>

      @@ -470,28 +602,38 @@

      getAddressRecords

    • Returns Record[]

    -
    +

    getMaxListeners

    -
      +
      • getMaxListeners(): number
      • +
        +
        +

        Returns the current max listener value for the EventEmitter which is either + set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

        +
        +
        +
        since
        +

        v1.0.0

        +
        +
        +

        Returns number

      @@ -506,7 +648,7 @@

      getServiceRecords

    • Returns Record[]

      @@ -523,63 +665,144 @@

      hide

    • Returns Promise<void>

    -
    +

    listenerCount

    -
      -
    • listenerCount(type: string | symbol): number
    • +
        +
      • listenerCount(eventName: string | symbol): number
      • +
        +
        +

        Returns the number of listeners listening to the event named eventName.

        +
        +
        +
        since
        +

        v3.2.0

        +
        +
        +

        Parameters

        • -
          type: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event being listened for

          +

        Returns number

    -
    +

    listeners

    -
      -
    • listeners(event: string | symbol): Function[]
    • +
        +
      • listeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName.

        +
        +
        server.on('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +console.log(util.inspect(server.listeners('connection')));
        +// Prints: [ [Function] ]
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    +
    + +

    off

    +
      +
    • off(eventName: string | symbol, listener: (...args: any[]) => void): this
    • +
    +
      +
    • + +
      +
      +

      Alias for emitter.removeListener().

      +
      +
      +
      since
      +

      v10.0.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        eventName: string | symbol
        +
      • +
      • +
        listener: (...args: any[]) => void
        +
          +
        • +
            +
          • (...args: any[]): void
          • +
          +
            +
          • +

            Parameters

            +
              +
            • +
              Rest ...args: any[]
              +
            • +
            +

            Returns void

            +
          • +
          +
        • +
        +
      • +
      +

      Returns this

      +
    • +
    +

    on

    @@ -591,7 +814,7 @@

    on

    Parameters

    @@ -630,7 +853,7 @@

    once

    Parameters

    @@ -658,28 +881,50 @@

    Returns this

    -
    +

    prependListener

    -
      -
    • prependListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds the listener function to the beginning of the listeners array for the + event named eventName. No checks are made to see if the listener has + already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple + times.

        +
        +
        server.prependListener('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -704,28 +949,48 @@

              Returns this

    -
    +

    prependOnceListener

    -
      -
    • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this + listener is removed, and then invoked.

        +
        +
        server.prependOnceListener('connection', (stream) => {
        +  console.log('Ah, we have our first user!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -750,46 +1015,90 @@

              Returns this

    -
    +

    rawListeners

    -
      -
    • rawListeners(event: string | symbol): Function[]
    • +
        +
      • rawListeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName, + including any wrappers (such as those created by .once()).

        +
        +
        const emitter = new EventEmitter();
        +emitter.once('log', () => console.log('log once'));
        +
        +// Returns a new Array with a function `onceWrapper` which has a property
        +// `listener` which contains the original listener bound above
        +const listeners = emitter.rawListeners('log');
        +const logFnWrapper = listeners[0];
        +
        +// Logs "log once" to the console and does not unbind the `once` event
        +logFnWrapper.listener();
        +
        +// Logs "log once" to the console and removes the listener
        +logFnWrapper();
        +
        +emitter.on('log', () => console.log('log persistently'));
        +// Will return a new Array with a single function bound by `.on()` above
        +const newListeners = emitter.rawListeners('log');
        +
        +// Logs "log persistently" twice
        +newListeners[0]();
        +emitter.emit('log');
        +
        +
        since
        +

        v9.4.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    -
    +

    removeAllListeners

    -
      +
      • removeAllListeners(event?: string | symbol): this
      • +
        +
        +

        Removes all listeners, or those of the specified eventName.

        +
        +

        It is bad practice to remove listeners added elsewhere in the code, + particularly when the EventEmitter instance was created by some other + component or module (e.g. sockets or file streams).

        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • @@ -800,25 +1109,95 @@

          Returns this

    -
    +

    removeListener

    -
      -
    • removeListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Removes the specified listener from the listener array for the event namedeventName.

        +
        +
        const callback = (stream) => {
        +  console.log('someone connected!');
        +};
        +server.on('connection', callback);
        +// ...
        +server.removeListener('connection', callback);
        +

        removeListener() will remove, at most, one instance of a listener from the + listener array. If any single listener has been added multiple times to the + listener array for the specified eventName, then removeListener() must be + called multiple times to remove each instance.

        +

        Once an event is emitted, all listeners attached to it at the + time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will + not remove them fromemit() in progress. Subsequent events behave as expected.

        +
        const myEmitter = new MyEmitter();
        +
        +const callbackA = () => {
        +  console.log('A');
        +  myEmitter.removeListener('event', callbackB);
        +};
        +
        +const callbackB = () => {
        +  console.log('B');
        +};
        +
        +myEmitter.on('event', callbackA);
        +
        +myEmitter.on('event', callbackB);
        +
        +// callbackA removes listener callbackB but it will still be called.
        +// Internal listener array at time of emit [callbackA, callbackB]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +//   B
        +
        +// callbackB is now removed.
        +// Internal listener array [callbackA]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +

        Because listeners are managed using an internal array, calling this will + change the position indices of any listener registered after the listener + being removed. This will not impact the order in which listeners are called, + but it means that any copies of the listener array as returned by + the emitter.listeners() method will need to be recreated.

        +

        When a single function has been added as a handler multiple times for a single + event (as in the example below), removeListener() will remove the most + recently added instance. In the example the once('ping')listener is removed:

        +
        const ee = new EventEmitter();
        +
        +function pong() {
        +  console.log('pong');
        +}
        +
        +ee.on('ping', pong);
        +ee.once('ping', pong);
        +ee.removeListener('ping', pong);
        +
        +ee.emit('ping');
        +ee.emit('ping');
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • listener: (...args: any[]) => void
          @@ -856,28 +1235,41 @@

          sendGoodbye

        • Returns Promise<void>

    -
    +

    setMaxListeners

    -
      +
      • setMaxListeners(n: number): this
      • +
        +
        +

        By default EventEmitters will print a warning if more than 10 listeners are + added for a particular event. This is a useful default that helps finding + memory leaks. The emitter.setMaxListeners() method allows the limit to be + modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

        +
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.3.5

        +
        +
        +

        Parameters

    +
    + +

    Static getEventListeners

    +
      +
    • getEventListeners(emitter: DOMEventTarget | EventEmitter, name: string | symbol): Function[]
    • +
    +
      +
    • + +
      +
      +

      Returns a copy of the array of listeners for the event named eventName.

      +
      +

      For EventEmitters this behaves exactly the same as calling .listeners on + the emitter.

      +

      For EventTargets this is the only way to get the event listeners for the + event target. This is useful for debugging and diagnostic purposes.

      +
      const { getEventListeners, EventEmitter } = require('events');
      +
      +{
      +  const ee = new EventEmitter();
      +  const listener = () => console.log('Events are fun');
      +  ee.on('foo', listener);
      +  getEventListeners(ee, 'foo'); // [listener]
      +}
      +{
      +  const et = new EventTarget();
      +  const listener = () => console.log('Events are fun');
      +  et.addEventListener('foo', listener);
      +  getEventListeners(et, 'foo'); // [listener]
      +}
      +
      +
      since
      +

      v15.2.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: DOMEventTarget | EventEmitter
        +
      • +
      • +
        name: string | symbol
        +
      • +
      +

      Returns Function[]

      +
    • +
    +

    Static listenerCount

      -
    • listenerCount(emitter: EventEmitter, event: string | symbol): number
    • +
    • listenerCount(emitter: EventEmitter, eventName: string | symbol): number
    • +
      +
      +

      A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      +
      +
      const { EventEmitter, listenerCount } = require('events');
      +const myEmitter = new EventEmitter();
      +myEmitter.on('event', () => {});
      +myEmitter.on('event', () => {});
      +console.log(listenerCount(myEmitter, 'event'));
      +// Prints: 2
      +
      +
      since
      +

      v0.9.12

      +
      +
      deprecated
      +

      Since v3.2.0 - Use listenerCount instead.

      +
      +
      +

      Parameters

      • emitter: EventEmitter
        +
        +

        The emitter to query

        +
      • -
        event: string | symbol
        +
        eventName: string | symbol
        +
        +

        The event name

        +

      Returns number

    +
    + +

    Static on

    +
      +
    • on(emitter: EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
    • +
    +
      +
    • + +
      +
      +

      ```js + const { on, EventEmitter } = require('events');

      +
      +

      (async () => { + const ee = new EventEmitter();

      +

      // Emit later on + process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); + });

      +

      for await (const event of on(ee, 'foo')) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] + } + // Unreachable here + })();

      +
      
      +Returns an `AsyncIterator` that iterates `eventName` events. It will throw
      +if the `EventEmitter` emits `'error'`. It removes all listeners when
      +exiting the loop. The `value` returned by each iteration is an array
      +composed of the emitted event arguments.
      +
      +An `AbortSignal` can be used to cancel waiting on events:
      +
      +```js
      +const { on, EventEmitter } = require('events');
      +const ac = new AbortController();
      +
      +(async () => {
      +  const ee = new EventEmitter();
      +
      +  // Emit later on
      +  process.nextTick(() => {
      +    ee.emit('foo', 'bar');
      +    ee.emit('foo', 42);
      +  });
      +
      +  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
      +    // The execution of this inner block is synchronous and it
      +    // processes one event at a time (even with await). Do not use
      +    // if concurrent execution is required.
      +    console.log(event); // prints ['bar'] [42]
      +  }
      +  // Unreachable here
      +})();
      +
      +process.nextTick(() => ac.abort());
      +
      +
      since
      +

      v13.6.0, v12.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: EventEmitter
        +
      • +
      • +
        eventName: string
        +
        +

        The name of the event being listened for

        +
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns AsyncIterableIterator<any>

      +

      that iterates eventName events emitted by the emitter

      +
    • +
    +
    +
    + +

    Static once

    +
      +
    • once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
    • +
    +
      +
    • + +
      +
      +

      Creates a Promise that is fulfilled when the EventEmitter emits the given + event or that is rejected if the EventEmitter emits 'error' while waiting. + The Promise will resolve with an array of all the arguments emitted to the + given event.

      +
      +

      This method is intentionally generic and works with the web platformEventTarget interface, which has no special'error' event + semantics and does not listen to the 'error' event.

      +
      const { once, EventEmitter } = require('events');
      +
      +async function run() {
      +  const ee = new EventEmitter();
      +
      +  process.nextTick(() => {
      +    ee.emit('myevent', 42);
      +  });
      +
      +  const [value] = await once(ee, 'myevent');
      +  console.log(value);
      +
      +  const err = new Error('kaboom');
      +  process.nextTick(() => {
      +    ee.emit('error', err);
      +  });
      +
      +  try {
      +    await once(ee, 'myevent');
      +  } catch (err) {
      +    console.log('error happened', err);
      +  }
      +}
      +
      +run();
      +

      The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the + 'error' event itself, then it is treated as any other kind of event without + special handling:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +
      +once(ee, 'error')
      +  .then(([err]) => console.log('ok', err.message))
      +  .catch((err) => console.log('error', err.message));
      +
      +ee.emit('error', new Error('boom'));
      +
      +// Prints: ok boom
      +

      An AbortSignal can be used to cancel waiting for the event:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +const ac = new AbortController();
      +
      +async function foo(emitter, event, signal) {
      +  try {
      +    await once(emitter, event, { signal });
      +    console.log('event emitted!');
      +  } catch (error) {
      +    if (error.name === 'AbortError') {
      +      console.error('Waiting for the event was canceled!');
      +    } else {
      +      console.error('There was an error', error.message);
      +    }
      +  }
      +}
      +
      +foo(ee, 'foo', ac.signal);
      +ac.abort(); // Abort waiting for the event
      +ee.emit('foo'); // Prints: Waiting for the event was canceled!
      +
      +
      since
      +

      v11.13.0, v10.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: NodeEventTarget
        +
      • +
      • +
        eventName: string | symbol
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns Promise<any[]>

      +
    • +
    +
    +
    +

    Constructors

    +
    + +

    constructor

    +
      +
    • new SpreadTheWord(options?: EventEmitterOptions): SpreadTheWord
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        Optional options: EventEmitterOptions
        +
      • +
      +

      Returns SpreadTheWord

      +
    • +
    +
    +

    Properties

    @@ -128,7 +174,7 @@

    listenersList

    listenersList: Listener[] = []
    @@ -138,7 +184,7 @@

    server

    server: Server
    @@ -148,7 +194,7 @@

    servicesList

    servicesList: Service[] = []
    @@ -158,9 +204,36 @@

    status

    status: StatusType = "uninitialized"
    +
    +
    + +

    Static captureRejectionSymbol

    +
    captureRejectionSymbol: keyof symbol
    + +
    +
    + +

    Static captureRejections

    +
    captureRejections: boolean
    + +
    +
    +

    Sets or gets the default captureRejection value for all emitters.

    +
    +
    @@ -169,32 +242,62 @@

    Static defaultMaxListe

    +
    + +

    Static errorMonitor

    +
    errorMonitor: keyof symbol
    + +
    +
    +

    This symbol shall be used to install a listener for only monitoring 'error' + events. Listeners installed using this symbol are called before the regular + 'error' listeners are called.

    +
    +

    Installing a listener using this symbol does not change the behavior once an + 'error' event is emitted, therefore the process will still crash if no + regular 'error' listener is installed.

    +
    +

    Methods

    -
    +

    addListener

    -
      -
    • addListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • addListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Alias for emitter.on(eventName, listener).

        +
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    emit

    -
      -
    • emit(event: string | symbol, ...args: any[]): boolean
    • +
        +
      • emit(eventName: string | symbol, ...args: any[]): boolean
      • +
        +
        +

        Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments + to each.

        +
        +

        Returns true if the event had listeners, false otherwise.

        +
        const EventEmitter = require('events');
        +const myEmitter = new EventEmitter();
        +
        +// First listener
        +myEmitter.on('event', function firstListener() {
        +  console.log('Helloooo! first listener');
        +});
        +// Second listener
        +myEmitter.on('event', function secondListener(arg1, arg2) {
        +  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
        +});
        +// Third listener
        +myEmitter.on('event', function thirdListener(...args) {
        +  const parameters = args.join(', ');
        +  console.log(`event with parameters ${parameters} in third listener`);
        +});
        +
        +console.log(myEmitter.listeners('event'));
        +
        +myEmitter.emit('event', 1, 2, 3, 4, 5);
        +
        +// Prints:
        +// [
        +//   [Function: firstListener],
        +//   [Function: secondListener],
        +//   [Function: thirdListener]
        +// ]
        +// Helloooo! first listener
        +// event with parameters 1, 2 in second listener
        +// event with parameters 1, 2, 3, 4, 5 in third listener
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • Rest ...args: any[]
          @@ -267,40 +411,70 @@

          Returns boolean

    -
    +

    eventNames

    -
      +
      • eventNames(): Array<string | symbol>
      • +
        +
        +

        Returns an array listing the events for which the emitter has registered + listeners. The values in the array are strings or Symbols.

        +
        +
        const EventEmitter = require('events');
        +const myEE = new EventEmitter();
        +myEE.on('foo', () => {});
        +myEE.on('bar', () => {});
        +
        +const sym = Symbol('symbol');
        +myEE.on(sym, () => {});
        +
        +console.log(myEE.eventNames());
        +// Prints: [ 'foo', 'bar', Symbol(symbol) ]
        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Returns Array<string | symbol>

    -
    +

    getMaxListeners

    -
      +
      • getMaxListeners(): number
      • +
        +
        +

        Returns the current max listener value for the EventEmitter which is either + set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

        +
        +
        +
        since
        +

        v1.0.0

        +
        +
        +

        Returns number

      @@ -315,7 +489,7 @@

      init

    • Parameters

      @@ -338,7 +512,7 @@

      listen

    • Parameters

      @@ -354,56 +528,137 @@

      Returns Promise

    -
    +

    listenerCount

    -
      -
    • listenerCount(type: string | symbol): number
    • +
        +
      • listenerCount(eventName: string | symbol): number
      • +
        +
        +

        Returns the number of listeners listening to the event named eventName.

        +
        +
        +
        since
        +

        v3.2.0

        +
        +
        +

        Parameters

        • -
          type: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event being listened for

          +

        Returns number

    -
    +

    listeners

    -
      -
    • listeners(event: string | symbol): Function[]
    • +
        +
      • listeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName.

        +
        +
        server.on('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +console.log(util.inspect(server.listeners('connection')));
        +// Prints: [ [Function] ]
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    +
    + +

    off

    +
      +
    • off(eventName: string | symbol, listener: (...args: any[]) => void): this
    • +
    +
      +
    • + +
      +
      +

      Alias for emitter.removeListener().

      +
      +
      +
      since
      +

      v10.0.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        eventName: string | symbol
        +
      • +
      • +
        listener: (...args: any[]) => void
        +
          +
        • +
            +
          • (...args: any[]): void
          • +
          +
            +
          • +

            Parameters

            +
              +
            • +
              Rest ...args: any[]
              +
            • +
            +

            Returns void

            +
          • +
          +
        • +
        +
      • +
      +

      Returns this

      +
    • +
    +

    on

    @@ -417,7 +672,7 @@

    on

    Parameters

    @@ -459,7 +714,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -501,7 +756,7 @@

    Returns this

    Overrides Transport.on

    Parameters

    @@ -542,7 +797,7 @@

    once

    Parameters

    @@ -584,7 +839,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -626,7 +881,7 @@

    Returns this

    Overrides Transport.once

    Parameters

    @@ -654,28 +909,50 @@

    Returns this

    -
    +

    prependListener

    -
      -
    • prependListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds the listener function to the beginning of the listeners array for the + event named eventName. No checks are made to see if the listener has + already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple + times.

        +
        +
        server.prependListener('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -700,28 +977,48 @@

              Returns this

    -
    +

    prependOnceListener

    -
      -
    • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this + listener is removed, and then invoked.

        +
        +
        server.prependOnceListener('connection', (stream) => {
        +  console.log('Ah, we have our first user!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -746,46 +1043,90 @@

              Returns this

    -
    +

    rawListeners

    -
      -
    • rawListeners(event: string | symbol): Function[]
    • +
        +
      • rawListeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName, + including any wrappers (such as those created by .once()).

        +
        +
        const emitter = new EventEmitter();
        +emitter.once('log', () => console.log('log once'));
        +
        +// Returns a new Array with a function `onceWrapper` which has a property
        +// `listener` which contains the original listener bound above
        +const listeners = emitter.rawListeners('log');
        +const logFnWrapper = listeners[0];
        +
        +// Logs "log once" to the console and does not unbind the `once` event
        +logFnWrapper.listener();
        +
        +// Logs "log once" to the console and removes the listener
        +logFnWrapper();
        +
        +emitter.on('log', () => console.log('log persistently'));
        +// Will return a new Array with a single function bound by `.on()` above
        +const newListeners = emitter.rawListeners('log');
        +
        +// Logs "log persistently" twice
        +newListeners[0]();
        +emitter.emit('log');
        +
        +
        since
        +

        v9.4.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    -
    +

    removeAllListeners

    -
      +
      • removeAllListeners(event?: string | symbol): this
      • +
        +
        +

        Removes all listeners, or those of the specified eventName.

        +
        +

        It is bad practice to remove listeners added elsewhere in the code, + particularly when the EventEmitter instance was created by some other + component or module (e.g. sockets or file streams).

        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • @@ -796,25 +1137,95 @@

          Returns this

    -
    +

    removeListener

    -
      -
    • removeListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Removes the specified listener from the listener array for the event namedeventName.

        +
        +
        const callback = (stream) => {
        +  console.log('someone connected!');
        +};
        +server.on('connection', callback);
        +// ...
        +server.removeListener('connection', callback);
        +

        removeListener() will remove, at most, one instance of a listener from the + listener array. If any single listener has been added multiple times to the + listener array for the specified eventName, then removeListener() must be + called multiple times to remove each instance.

        +

        Once an event is emitted, all listeners attached to it at the + time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will + not remove them fromemit() in progress. Subsequent events behave as expected.

        +
        const myEmitter = new MyEmitter();
        +
        +const callbackA = () => {
        +  console.log('A');
        +  myEmitter.removeListener('event', callbackB);
        +};
        +
        +const callbackB = () => {
        +  console.log('B');
        +};
        +
        +myEmitter.on('event', callbackA);
        +
        +myEmitter.on('event', callbackB);
        +
        +// callbackA removes listener callbackB but it will still be called.
        +// Internal listener array at time of emit [callbackA, callbackB]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +//   B
        +
        +// callbackB is now removed.
        +// Internal listener array [callbackA]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +

        Because listeners are managed using an internal array, calling this will + change the position indices of any listener registered after the listener + being removed. This will not impact the order in which listeners are called, + but it means that any copies of the listener array as returned by + the emitter.listeners() method will need to be recreated.

        +

        When a single function has been added as a handler multiple times for a single + event (as in the example below), removeListener() will remove the most + recently added instance. In the example the once('ping')listener is removed:

        +
        const ee = new EventEmitter();
        +
        +function pong() {
        +  console.log('pong');
        +}
        +
        +ee.on('ping', pong);
        +ee.once('ping', pong);
        +ee.removeListener('ping', pong);
        +
        +ee.emit('ping');
        +ee.emit('ping');
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • listener: (...args: any[]) => void
          @@ -842,21 +1253,34 @@

          Returns this

    -
    +

    setMaxListeners

    -
      +
      • setMaxListeners(n: number): this
      • +
        +
        +

        By default EventEmitters will print a warning if more than 10 listeners are + added for a particular event. This is a useful default that helps finding + memory leaks. The emitter.setMaxListeners() method allows the limit to be + modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

        +
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.3.5

        +
        +
        +

        Parameters

    +
    + +

    Static getEventListeners

    +
      +
    • getEventListeners(emitter: DOMEventTarget | EventEmitter, name: string | symbol): Function[]
    • +
    +
      +
    • + +
      +
      +

      Returns a copy of the array of listeners for the event named eventName.

      +
      +

      For EventEmitters this behaves exactly the same as calling .listeners on + the emitter.

      +

      For EventTargets this is the only way to get the event listeners for the + event target. This is useful for debugging and diagnostic purposes.

      +
      const { getEventListeners, EventEmitter } = require('events');
      +
      +{
      +  const ee = new EventEmitter();
      +  const listener = () => console.log('Events are fun');
      +  ee.on('foo', listener);
      +  getEventListeners(ee, 'foo'); // [listener]
      +}
      +{
      +  const et = new EventTarget();
      +  const listener = () => console.log('Events are fun');
      +  et.addEventListener('foo', listener);
      +  getEventListeners(et, 'foo'); // [listener]
      +}
      +
      +
      since
      +

      v15.2.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: DOMEventTarget | EventEmitter
        +
      • +
      • +
        name: string | symbol
        +
      • +
      +

      Returns Function[]

      +
    • +
    +

    Static listenerCount

      -
    • listenerCount(emitter: EventEmitter, event: string | symbol): number
    • +
    • listenerCount(emitter: EventEmitter, eventName: string | symbol): number
    • +
      +
      +

      A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      +
      +
      const { EventEmitter, listenerCount } = require('events');
      +const myEmitter = new EventEmitter();
      +myEmitter.on('event', () => {});
      +myEmitter.on('event', () => {});
      +console.log(listenerCount(myEmitter, 'event'));
      +// Prints: 2
      +
      +
      since
      +

      v0.9.12

      +
      +
      deprecated
      +

      Since v3.2.0 - Use listenerCount instead.

      +
      +
      +

      Parameters

      • emitter: EventEmitter
        +
        +

        The emitter to query

        +
      • -
        event: string | symbol
        +
        eventName: string | symbol
        +
        +

        The event name

        +

      Returns number

    +
    + +

    Static on

    +
      +
    • on(emitter: EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
    • +
    +
      +
    • + +
      +
      +

      ```js + const { on, EventEmitter } = require('events');

      +
      +

      (async () => { + const ee = new EventEmitter();

      +

      // Emit later on + process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); + });

      +

      for await (const event of on(ee, 'foo')) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] + } + // Unreachable here + })();

      +
      
      +Returns an `AsyncIterator` that iterates `eventName` events. It will throw
      +if the `EventEmitter` emits `'error'`. It removes all listeners when
      +exiting the loop. The `value` returned by each iteration is an array
      +composed of the emitted event arguments.
      +
      +An `AbortSignal` can be used to cancel waiting on events:
      +
      +```js
      +const { on, EventEmitter } = require('events');
      +const ac = new AbortController();
      +
      +(async () => {
      +  const ee = new EventEmitter();
      +
      +  // Emit later on
      +  process.nextTick(() => {
      +    ee.emit('foo', 'bar');
      +    ee.emit('foo', 42);
      +  });
      +
      +  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
      +    // The execution of this inner block is synchronous and it
      +    // processes one event at a time (even with await). Do not use
      +    // if concurrent execution is required.
      +    console.log(event); // prints ['bar'] [42]
      +  }
      +  // Unreachable here
      +})();
      +
      +process.nextTick(() => ac.abort());
      +
      +
      since
      +

      v13.6.0, v12.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: EventEmitter
        +
      • +
      • +
        eventName: string
        +
        +

        The name of the event being listened for

        +
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns AsyncIterableIterator<any>

      +

      that iterates eventName events emitted by the emitter

      +
    • +
    +
    +
    + +

    Static once

    +
      +
    • once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
    • +
    +
      +
    • + +
      +
      +

      Creates a Promise that is fulfilled when the EventEmitter emits the given + event or that is rejected if the EventEmitter emits 'error' while waiting. + The Promise will resolve with an array of all the arguments emitted to the + given event.

      +
      +

      This method is intentionally generic and works with the web platformEventTarget interface, which has no special'error' event + semantics and does not listen to the 'error' event.

      +
      const { once, EventEmitter } = require('events');
      +
      +async function run() {
      +  const ee = new EventEmitter();
      +
      +  process.nextTick(() => {
      +    ee.emit('myevent', 42);
      +  });
      +
      +  const [value] = await once(ee, 'myevent');
      +  console.log(value);
      +
      +  const err = new Error('kaboom');
      +  process.nextTick(() => {
      +    ee.emit('error', err);
      +  });
      +
      +  try {
      +    await once(ee, 'myevent');
      +  } catch (err) {
      +    console.log('error happened', err);
      +  }
      +}
      +
      +run();
      +

      The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the + 'error' event itself, then it is treated as any other kind of event without + special handling:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +
      +once(ee, 'error')
      +  .then(([err]) => console.log('ok', err.message))
      +  .catch((err) => console.log('error', err.message));
      +
      +ee.emit('error', new Error('boom'));
      +
      +// Prints: ok boom
      +

      An AbortSignal can be used to cancel waiting for the event:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +const ac = new AbortController();
      +
      +async function foo(emitter, event, signal) {
      +  try {
      +    await once(emitter, event, { signal });
      +    console.log('event emitted!');
      +  } catch (error) {
      +    if (error.name === 'AbortError') {
      +      console.error('Waiting for the event was canceled!');
      +    } else {
      +      console.error('There was an error', error.message);
      +    }
      +  }
      +}
      +
      +foo(ee, 'foo', ac.signal);
      +ac.abort(); // Abort waiting for the event
      +ee.emit('foo'); // Prints: Waiting for the event was canceled!
      +
      +
      since
      +

      v11.13.0, v10.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: NodeEventTarget
        +
      • +
      • +
        eventName: string | symbol
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns Promise<any[]>

      +
    • +
    +
    @@ -190,7 +190,7 @@

    timestamp

    @@ -201,7 +201,7 @@

    ttl

    @@ -212,7 +212,7 @@

    type

    diff --git a/docs/classes/txt.html b/docs/classes/txt.html index 0c0a74d..ab1d09d 100644 --- a/docs/classes/txt.html +++ b/docs/classes/txt.html @@ -122,7 +122,7 @@

    constructor

    Parameters

    @@ -156,7 +156,7 @@

    data

    @@ -167,7 +167,7 @@

    name

    @@ -178,7 +178,7 @@

    timestamp

    @@ -189,7 +189,7 @@

    ttl

    @@ -200,7 +200,7 @@

    type

    @@ -217,7 +217,7 @@

    Static parse

  • Parameters

    @@ -248,7 +248,7 @@

    Static serialize

  • Parameters

    diff --git a/docs/globals.html b/docs/globals.html index 9034833..ffb14bd 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -152,7 +152,7 @@

    AddressRecord

    AddressRecord: A | AAAA
  • @@ -162,7 +162,7 @@

    DataType

    DataType: TXTData | Buffer | string
    @@ -172,7 +172,7 @@

    RecordType

    RecordType: "TXT" | "A" | "AAAA" | "PTR" | "SRV" | "ANY"
    @@ -182,7 +182,7 @@

    StatusType

    StatusType: "uninitialized" | "spreaded" | "destroyed"
    @@ -195,7 +195,7 @@

    Const REANNOUNCE_FACTOR

    REANNOUNCE_FACTOR: 3 = 3
    @@ -205,7 +205,7 @@

    Const REANNOUNCE_MAX_MS
    REANNOUNCE_MAX_MS: number = 60 * 60 * 1000

    @@ -215,7 +215,7 @@

    Const REQUERY_FACTOR

    REQUERY_FACTOR: 1.5 = 1.5
    @@ -225,7 +225,7 @@

    Const REQUERY_MAX_MSREQUERY_MAX_MS: number = 60 * 60 * 1000

    @@ -235,7 +235,7 @@

    Const TOP_LEVEL_DOMAIN<
    TOP_LEVEL_DOMAIN: "local" = "local"

    @@ -245,20 +245,20 @@

    Const WILDCARD

    WILDCARD: string = "_services._dns-sd._udp." + TOP_LEVEL_DOMAIN

    Const debugLog

    -
    debugLog: IDebugger = debug("SpreadTheWord:Listener")
    +
    debugLog: Debugger = debug("SpreadTheWord:Listener")
    @@ -275,7 +275,7 @@

    getExternalAddresses

  • Returns { address: string; family: string }[]

    @@ -292,7 +292,7 @@

    parseDNSName

  • Parameters

    @@ -315,7 +315,7 @@

    parseRecord

  • Parameters

    @@ -346,7 +346,7 @@

    parseTXTData

  • Parameters

    @@ -377,7 +377,7 @@

    sameRecord

  • Parameters

    @@ -403,7 +403,7 @@

    serializeDNSName

  • Parameters

    @@ -426,7 +426,7 @@

    serializeRecord

  • Parameters

    @@ -457,7 +457,7 @@

    serializeTXTData

  • Parameters

    @@ -488,7 +488,7 @@

    toPlainObject

  • Parameters

    diff --git a/docs/interfaces/listener.abortable.html b/docs/interfaces/listener.abortable.html new file mode 100644 index 0000000..5fa2f13 --- /dev/null +++ b/docs/interfaces/listener.abortable.html @@ -0,0 +1,319 @@ + + + + + + Abortable | spread-the-word + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Abortable

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + Abortable +
    • +
    +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional signal

    +
    signal: AbortSignal | undefined
    + +
    +
    +

    When provided the corresponding AbortController can be used to cancel an asynchronous action.

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Module
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Index signature
    • +
    • Type alias
    • +
    • Type alias with type parameter
    • +
    +
      +
    • Enumeration
    • +
    • Enumeration member
    • +
    • Property
    • +
    • Method
    • +
    +
      +
    • Interface
    • +
    • Interface with type parameter
    • +
    • Constructor
    • +
    • Property
    • +
    • Method
    • +
    • Index signature
    • +
    +
      +
    • Class
    • +
    • Class with type parameter
    • +
    • Constructor
    • +
    • Property
    • +
    • Method
    • +
    • Accessor
    • +
    • Index signature
    • +
    +
      +
    • Inherited constructor
    • +
    • Inherited property
    • +
    • Inherited method
    • +
    • Inherited accessor
    • +
    +
      +
    • Protected property
    • +
    • Protected method
    • +
    • Protected accessor
    • +
    +
      +
    • Private property
    • +
    • Private method
    • +
    • Private accessor
    • +
    +
      +
    • Static property
    • +
    • Static method
    • +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/interfaces/listeneroptions.html b/docs/interfaces/listeneroptions.html index 79941a0..a4f99b9 100644 --- a/docs/interfaces/listeneroptions.html +++ b/docs/interfaces/listeneroptions.html @@ -98,7 +98,7 @@

    Optional name

    name: string
  • @@ -108,7 +108,7 @@

    Optional protocol

    protocol: string
    @@ -118,7 +118,7 @@

    Optional subtypes

    subtypes: string[]
    @@ -128,7 +128,7 @@

    Optional type

    type: string
    diff --git a/docs/interfaces/localtransport.abortable.html b/docs/interfaces/localtransport.abortable.html new file mode 100644 index 0000000..e8f53f3 --- /dev/null +++ b/docs/interfaces/localtransport.abortable.html @@ -0,0 +1,304 @@ + + + + + + Abortable | spread-the-word + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Abortable

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + Abortable +
    • +
    +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional signal

    +
    signal: AbortSignal | undefined
    + +
    +
    +

    When provided the corresponding AbortController can be used to cancel an asynchronous action.

    +
    +
    +
    +
    +
    + +
    +
    + +
    + + + + \ No newline at end of file diff --git a/docs/interfaces/localtransportoptions.html b/docs/interfaces/localtransportoptions.html index c2ff079..1b654ff 100644 --- a/docs/interfaces/localtransportoptions.html +++ b/docs/interfaces/localtransportoptions.html @@ -102,7 +102,7 @@

    addresses

    addresses: Array<{ address: string; family: string }>
    @@ -113,7 +113,7 @@

    Optional binaryTXT

    @@ -123,7 +123,7 @@

    referrerOptions

    referrerOptions: ReferrerOptions
    diff --git a/docs/interfaces/mdnsnameoptions.html b/docs/interfaces/mdnsnameoptions.html index a3d8d04..276f6fb 100644 --- a/docs/interfaces/mdnsnameoptions.html +++ b/docs/interfaces/mdnsnameoptions.html @@ -99,7 +99,7 @@

    Optional domain

    domain: string
    @@ -109,7 +109,7 @@

    Optional name

    name: string
    @@ -119,7 +119,7 @@

    Optional protocol

    protocol: string
    @@ -129,7 +129,7 @@

    Optional subtypes

    subtypes: string[]
    @@ -139,7 +139,7 @@

    Optional type

    type: string
    diff --git a/docs/interfaces/mdnstransport.abortable.html b/docs/interfaces/mdnstransport.abortable.html new file mode 100644 index 0000000..3398d10 --- /dev/null +++ b/docs/interfaces/mdnstransport.abortable.html @@ -0,0 +1,301 @@ + + + + + + Abortable | spread-the-word + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Abortable

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + Abortable +
    • +
    +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional signal

    +
    signal: AbortSignal | undefined
    + +
    +
    +

    When provided the corresponding AbortController can be used to cancel an asynchronous action.

    +
    +
    +
    +
    +
    + +
    +
    + +
    + + + + \ No newline at end of file diff --git a/docs/interfaces/queryoptions.html b/docs/interfaces/queryoptions.html index 8936071..65c3f31 100644 --- a/docs/interfaces/queryoptions.html +++ b/docs/interfaces/queryoptions.html @@ -95,7 +95,7 @@

    questions

    questions: Question[]
    diff --git a/docs/interfaces/referreroptions.html b/docs/interfaces/referreroptions.html index a26e36c..ad4cc51 100644 --- a/docs/interfaces/referreroptions.html +++ b/docs/interfaces/referreroptions.html @@ -98,7 +98,7 @@

    Optional address

    address: string
    @@ -108,7 +108,7 @@

    Optional family

    family: string
    @@ -118,7 +118,7 @@

    Optional port

    port: number
    @@ -128,7 +128,7 @@

    Optional size

    size: number
    diff --git a/docs/interfaces/responseoptions.html b/docs/interfaces/responseoptions.html index e613bc8..d731f40 100644 --- a/docs/interfaces/responseoptions.html +++ b/docs/interfaces/responseoptions.html @@ -96,7 +96,7 @@

    Optional additionals

    additionals: Record[]
    @@ -106,7 +106,7 @@

    Optional answers

    answers: Record[]
    diff --git a/docs/interfaces/server.abortable.html b/docs/interfaces/server.abortable.html new file mode 100644 index 0000000..6747765 --- /dev/null +++ b/docs/interfaces/server.abortable.html @@ -0,0 +1,310 @@ + + + + + + Abortable | spread-the-word + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Abortable

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + Abortable +
    • +
    +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional signal

    +
    signal: AbortSignal | undefined
    + +
    +
    +

    When provided the corresponding AbortController can be used to cancel an asynchronous action.

    +
    +
    +
    +
    +
    + +
    +
    + +
    + + + + \ No newline at end of file diff --git a/docs/interfaces/serveroptions.html b/docs/interfaces/serveroptions.html index 3e1d33b..619fbfe 100644 --- a/docs/interfaces/serveroptions.html +++ b/docs/interfaces/serveroptions.html @@ -98,7 +98,7 @@

    Optional recordRegistryrecordRegistry: RecordRegistry @@ -108,7 +108,7 @@

    Optional socketOptionssocketOptions: any @@ -118,7 +118,7 @@

    Optional transport

    transport: Transport
    @@ -128,7 +128,7 @@

    Optional transportOptions
    transportOptions: TransportOptions
    diff --git a/docs/interfaces/service.abortable.html b/docs/interfaces/service.abortable.html new file mode 100644 index 0000000..4ebecb5 --- /dev/null +++ b/docs/interfaces/service.abortable.html @@ -0,0 +1,208 @@ + + + + + + Abortable | spread-the-word + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Abortable

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + Abortable +
    • +
    +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional signal

    +
    signal: AbortSignal | undefined
    + +
    +
    +

    When provided the corresponding AbortController can be used to cancel an asynchronous action.

    +
    +
    +
    +
    +
    + +
    +
    + +
    + + + + \ No newline at end of file diff --git a/docs/interfaces/serviceoptions.html b/docs/interfaces/serviceoptions.html index fd6ca49..80a3243 100644 --- a/docs/interfaces/serviceoptions.html +++ b/docs/interfaces/serviceoptions.html @@ -101,7 +101,7 @@

    Optional hostname

    hostname: string
    @@ -111,7 +111,7 @@

    name

    name: string
    @@ -121,7 +121,7 @@

    port

    port: number
    @@ -131,7 +131,7 @@

    Optional protocol

    protocol: string
    @@ -141,7 +141,7 @@

    Optional subtypes

    subtypes: string[]
    @@ -151,7 +151,7 @@

    Optional txt

    txt: TXTData
    @@ -161,7 +161,7 @@

    type

    type: string
    diff --git a/docs/interfaces/spreadtheword.abortable.html b/docs/interfaces/spreadtheword.abortable.html new file mode 100644 index 0000000..76aea31 --- /dev/null +++ b/docs/interfaces/spreadtheword.abortable.html @@ -0,0 +1,304 @@ + + + + + + Abortable | spread-the-word + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Abortable

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + Abortable +
    • +
    +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional signal

    +
    signal: AbortSignal | undefined
    + +
    +
    +

    When provided the corresponding AbortController can be used to cancel an asynchronous action.

    +
    +
    +
    +
    +
    + +
    +
    + +
    + + + + \ No newline at end of file diff --git a/docs/interfaces/transport.abortable.html b/docs/interfaces/transport.abortable.html new file mode 100644 index 0000000..d81185e --- /dev/null +++ b/docs/interfaces/transport.abortable.html @@ -0,0 +1,292 @@ + + + + + + Abortable | spread-the-word + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Abortable

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + Abortable +
    • +
    +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    Optional signal

    +
    signal: AbortSignal | undefined
    + +
    +
    +

    When provided the corresponding AbortController can be used to cancel an asynchronous action.

    +
    +
    +
    +
    +
    + +
    +
    + +
    + + + + \ No newline at end of file diff --git a/docs/interfaces/transport.html b/docs/interfaces/transport.html index 8891f3a..f19617b 100644 --- a/docs/interfaces/transport.html +++ b/docs/interfaces/transport.html @@ -90,41 +90,114 @@

    Implemented by

    Index

    +
    +

    Interfaces

    + +
    +
    +

    Constructors

    + +

    Properties

    Methods

    +
    +

    Constructors

    +
    + +

    constructor

    + + +
    +

    Properties

    +
    + +

    Static captureRejectionSymbol

    +
    captureRejectionSymbol: keyof symbol
    + +
    +
    + +

    Static captureRejections

    +
    captureRejections: boolean
    + +
    +
    +

    Sets or gets the default captureRejection value for all emitters.

    +
    +
    +

    Static defaultMaxListeners

    @@ -132,32 +205,62 @@

    Static defaultMaxListe +

    +
    + +

    Static errorMonitor

    +
    errorMonitor: keyof symbol
    + +
    +
    +

    This symbol shall be used to install a listener for only monitoring 'error' + events. Listeners installed using this symbol are called before the regular + 'error' listeners are called.

    +
    +

    Installing a listener using this symbol does not change the behavior once an + 'error' event is emitted, therefore the process will still crash if no + regular 'error' listener is installed.

    +

    Methods

    -
    +

    addListener

    -
      -
    • addListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • addListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Alias for emitter.on(eventName, listener).

        +
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    emit

    -
      -
    • emit(event: string | symbol, ...args: any[]): boolean
    • +
        +
      • emit(eventName: string | symbol, ...args: any[]): boolean
      • +
        +
        +

        Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments + to each.

        +
        +

        Returns true if the event had listeners, false otherwise.

        +
        const EventEmitter = require('events');
        +const myEmitter = new EventEmitter();
        +
        +// First listener
        +myEmitter.on('event', function firstListener() {
        +  console.log('Helloooo! first listener');
        +});
        +// Second listener
        +myEmitter.on('event', function secondListener(arg1, arg2) {
        +  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
        +});
        +// Third listener
        +myEmitter.on('event', function thirdListener(...args) {
        +  const parameters = args.join(', ');
        +  console.log(`event with parameters ${parameters} in third listener`);
        +});
        +
        +console.log(myEmitter.listeners('event'));
        +
        +myEmitter.emit('event', 1, 2, 3, 4, 5);
        +
        +// Prints:
        +// [
        +//   [Function: firstListener],
        +//   [Function: secondListener],
        +//   [Function: thirdListener]
        +// ]
        +// Helloooo! first listener
        +// event with parameters 1, 2 in second listener
        +// event with parameters 1, 2, 3, 4, 5 in third listener
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
        • Rest ...args: any[]
          @@ -230,21 +374,41 @@

          Returns boolean

    -
    +

    eventNames

    -
      +
      • eventNames(): Array<string | symbol>
      • +
        +
        +

        Returns an array listing the events for which the emitter has registered + listeners. The values in the array are strings or Symbols.

        +
        +
        const EventEmitter = require('events');
        +const myEE = new EventEmitter();
        +myEE.on('foo', () => {});
        +myEE.on('bar', () => {});
        +
        +const sym = Symbol('symbol');
        +myEE.on(sym, () => {});
        +
        +console.log(myEE.eventNames());
        +// Prints: [ 'foo', 'bar', Symbol(symbol) ]
        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Returns Array<string | symbol>

      @@ -259,104 +423,226 @@

      getAddresses

    • Returns any

    -
    +

    getMaxListeners

    -
      +
      • getMaxListeners(): number
      • +
        +
        +

        Returns the current max listener value for the EventEmitter which is either + set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

        +
        +
        +
        since
        +

        v1.0.0

        +
        +
        +

        Returns number

    -
    +

    listenerCount

    -
      -
    • listenerCount(type: string | symbol): number
    • +
        +
      • listenerCount(eventName: string | symbol): number
      • +
        +
        +

        Returns the number of listeners listening to the event named eventName.

        +
        +
        +
        since
        +

        v3.2.0

        +
        +
        +

        Parameters

        • -
          type: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event being listened for

          +

        Returns number

    -
    +

    listeners

    -
      -
    • listeners(event: string | symbol): Function[]
    • +
        +
      • listeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName.

        +
        +
        server.on('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +console.log(util.inspect(server.listeners('connection')));
        +// Prints: [ [Function] ]
        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    -
    +
    + +

    off

    +
      +
    • off(eventName: string | symbol, listener: (...args: any[]) => void): this
    • +
    +
      +
    • + +
      +
      +

      Alias for emitter.removeListener().

      +
      +
      +
      since
      +

      v10.0.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        eventName: string | symbol
        +
      • +
      • +
        listener: (...args: any[]) => void
        +
          +
        • +
            +
          • (...args: any[]): void
          • +
          +
            +
          • +

            Parameters

            +
              +
            • +
              Rest ...args: any[]
              +
            • +
            +

            Returns void

            +
          • +
          +
        • +
        +
      • +
      +

      Returns this

      +
    • +
    +
    +

    on

    -
      -
    • on(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • on(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds the listener function to the end of the listeners array for the + event named eventName. No checks are made to see if the listener has + already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple + times.

        +
        +
        server.on('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +

        By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the + event listener to the beginning of the listeners array.

        +
        const myEE = new EventEmitter();
        +myEE.on('foo', () => console.log('a'));
        +myEE.prependListener('foo', () => console.log('b'));
        +myEE.emit('foo');
        +// Prints:
        +//   b
        +//   a
        +
        +
        since
        +

        v0.1.101

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -381,28 +667,57 @@

              Returns this

    -
    +

    once

    -
      -
    • once(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • once(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds a one-timelistener function for the event named eventName. The + next time eventName is triggered, this listener is removed and then invoked.

        +
        +
        server.once('connection', (stream) => {
        +  console.log('Ah, we have our first user!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +

        By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the + event listener to the beginning of the listeners array.

        +
        const myEE = new EventEmitter();
        +myEE.once('foo', () => console.log('a'));
        +myEE.prependOnceListener('foo', () => console.log('b'));
        +myEE.emit('foo');
        +// Prints:
        +//   b
        +//   a
        +
        +
        since
        +

        v0.3.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -427,28 +742,50 @@

              Returns this

    -
    +

    prependListener

    -
      -
    • prependListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds the listener function to the beginning of the listeners array for the + event named eventName. No checks are made to see if the listener has + already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple + times.

        +
        +
        server.prependListener('connection', (stream) => {
        +  console.log('someone connected!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
            • @@ -473,28 +810,48 @@

              Returns this

    -
    +

    prependOnceListener

    -
      -
    • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Adds a one-timelistener function for the event named eventName to the_beginning_ of the listeners array. The next time eventName is triggered, this + listener is removed, and then invoked.

        +
        +
        server.prependOnceListener('connection', (stream) => {
        +  console.log('Ah, we have our first user!');
        +});
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v6.0.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol
          +
          +

          The name of the event.

          +
        • listener: (...args: any[]) => void
          +
          +

          The callback function

          +
    -
    +

    rawListeners

    -
      -
    • rawListeners(event: string | symbol): Function[]
    • +
        +
      • rawListeners(eventName: string | symbol): Function[]
      • +
        +
        +

        Returns a copy of the array of listeners for the event named eventName, + including any wrappers (such as those created by .once()).

        +
        +
        const emitter = new EventEmitter();
        +emitter.once('log', () => console.log('log once'));
        +
        +// Returns a new Array with a function `onceWrapper` which has a property
        +// `listener` which contains the original listener bound above
        +const listeners = emitter.rawListeners('log');
        +const logFnWrapper = listeners[0];
        +
        +// Logs "log once" to the console and does not unbind the `once` event
        +logFnWrapper.listener();
        +
        +// Logs "log once" to the console and removes the listener
        +logFnWrapper();
        +
        +emitter.on('log', () => console.log('log persistently'));
        +// Will return a new Array with a single function bound by `.on()` above
        +const newListeners = emitter.rawListeners('log');
        +
        +// Logs "log persistently" twice
        +newListeners[0]();
        +emitter.emit('log');
        +
        +
        since
        +

        v9.4.0

        +
        +
        +

        Parameters

        • -
          event: string | symbol
          +
          eventName: string | symbol

        Returns Function[]

    -
    +

    removeAllListeners

    -
      +
      • removeAllListeners(event?: string | symbol): this
      • +
        +
        +

        Removes all listeners, or those of the specified eventName.

        +
        +

        It is bad practice to remove listeners added elsewhere in the code, + particularly when the EventEmitter instance was created by some other + component or module (e.g. sockets or file streams).

        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

        • @@ -592,25 +993,95 @@

          Returns this

    -
    +

    removeListener

    -
      -
    • removeListener(event: string | symbol, listener: (...args: any[]) => void): this
    • +
        +
      • removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this
      • +
        +
        +

        Removes the specified listener from the listener array for the event namedeventName.

        +
        +
        const callback = (stream) => {
        +  console.log('someone connected!');
        +};
        +server.on('connection', callback);
        +// ...
        +server.removeListener('connection', callback);
        +

        removeListener() will remove, at most, one instance of a listener from the + listener array. If any single listener has been added multiple times to the + listener array for the specified eventName, then removeListener() must be + called multiple times to remove each instance.

        +

        Once an event is emitted, all listeners attached to it at the + time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and_before_ the last listener finishes execution will + not remove them fromemit() in progress. Subsequent events behave as expected.

        +
        const myEmitter = new MyEmitter();
        +
        +const callbackA = () => {
        +  console.log('A');
        +  myEmitter.removeListener('event', callbackB);
        +};
        +
        +const callbackB = () => {
        +  console.log('B');
        +};
        +
        +myEmitter.on('event', callbackA);
        +
        +myEmitter.on('event', callbackB);
        +
        +// callbackA removes listener callbackB but it will still be called.
        +// Internal listener array at time of emit [callbackA, callbackB]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +//   B
        +
        +// callbackB is now removed.
        +// Internal listener array [callbackA]
        +myEmitter.emit('event');
        +// Prints:
        +//   A
        +

        Because listeners are managed using an internal array, calling this will + change the position indices of any listener registered after the listener + being removed. This will not impact the order in which listeners are called, + but it means that any copies of the listener array as returned by + the emitter.listeners() method will need to be recreated.

        +

        When a single function has been added as a handler multiple times for a single + event (as in the example below), removeListener() will remove the most + recently added instance. In the example the once('ping')listener is removed:

        +
        const ee = new EventEmitter();
        +
        +function pong() {
        +  console.log('pong');
        +}
        +
        +ee.on('ping', pong);
        +ee.once('ping', pong);
        +ee.removeListener('ping', pong);
        +
        +ee.emit('ping');
        +ee.emit('ping');
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.1.26

        +
        +
        +

        Parameters

    -
    +

    setMaxListeners

    -
      +
      • setMaxListeners(n: number): this
      • +
        +
        +

        By default EventEmitters will print a warning if more than 10 listeners are + added for a particular event. This is a useful default that helps finding + memory leaks. The emitter.setMaxListeners() method allows the limit to be + modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

        +
        +

        Returns a reference to the EventEmitter, so that calls can be chained.

        +
        +
        since
        +

        v0.3.5

        +
        +
        +

        Parameters

        • @@ -686,33 +1170,311 @@

          Returns this

    +
    + +

    Static getEventListeners

    +
      +
    • getEventListeners(emitter: DOMEventTarget | EventEmitter, name: string | symbol): Function[]
    • +
    +
      +
    • + +
      +
      +

      Returns a copy of the array of listeners for the event named eventName.

      +
      +

      For EventEmitters this behaves exactly the same as calling .listeners on + the emitter.

      +

      For EventTargets this is the only way to get the event listeners for the + event target. This is useful for debugging and diagnostic purposes.

      +
      const { getEventListeners, EventEmitter } = require('events');
      +
      +{
      +  const ee = new EventEmitter();
      +  const listener = () => console.log('Events are fun');
      +  ee.on('foo', listener);
      +  getEventListeners(ee, 'foo'); // [listener]
      +}
      +{
      +  const et = new EventTarget();
      +  const listener = () => console.log('Events are fun');
      +  et.addEventListener('foo', listener);
      +  getEventListeners(et, 'foo'); // [listener]
      +}
      +
      +
      since
      +

      v15.2.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: DOMEventTarget | EventEmitter
        +
      • +
      • +
        name: string | symbol
        +
      • +
      +

      Returns Function[]

      +
    • +
    +

    Static listenerCount

      -
    • listenerCount(emitter: EventEmitter, event: string | symbol): number
    • +
    • listenerCount(emitter: EventEmitter, eventName: string | symbol): number
    • +
      +
      +

      A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      +
      +
      const { EventEmitter, listenerCount } = require('events');
      +const myEmitter = new EventEmitter();
      +myEmitter.on('event', () => {});
      +myEmitter.on('event', () => {});
      +console.log(listenerCount(myEmitter, 'event'));
      +// Prints: 2
      +
      +
      since
      +

      v0.9.12

      +
      +
      deprecated
      +

      Since v3.2.0 - Use listenerCount instead.

      +
      +
      +

      Parameters

      • emitter: EventEmitter
        +
        +

        The emitter to query

        +
      • -
        event: string | symbol
        +
        eventName: string | symbol
        +
        +

        The event name

        +

      Returns number

    +
    + +

    Static on

    +
      +
    • on(emitter: EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
    • +
    +
      +
    • + +
      +
      +

      ```js + const { on, EventEmitter } = require('events');

      +
      +

      (async () => { + const ee = new EventEmitter();

      +

      // Emit later on + process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); + });

      +

      for await (const event of on(ee, 'foo')) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] + } + // Unreachable here + })();

      +
      
      +Returns an `AsyncIterator` that iterates `eventName` events. It will throw
      +if the `EventEmitter` emits `'error'`. It removes all listeners when
      +exiting the loop. The `value` returned by each iteration is an array
      +composed of the emitted event arguments.
      +
      +An `AbortSignal` can be used to cancel waiting on events:
      +
      +```js
      +const { on, EventEmitter } = require('events');
      +const ac = new AbortController();
      +
      +(async () => {
      +  const ee = new EventEmitter();
      +
      +  // Emit later on
      +  process.nextTick(() => {
      +    ee.emit('foo', 'bar');
      +    ee.emit('foo', 42);
      +  });
      +
      +  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
      +    // The execution of this inner block is synchronous and it
      +    // processes one event at a time (even with await). Do not use
      +    // if concurrent execution is required.
      +    console.log(event); // prints ['bar'] [42]
      +  }
      +  // Unreachable here
      +})();
      +
      +process.nextTick(() => ac.abort());
      +
      +
      since
      +

      v13.6.0, v12.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: EventEmitter
        +
      • +
      • +
        eventName: string
        +
        +

        The name of the event being listened for

        +
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns AsyncIterableIterator<any>

      +

      that iterates eventName events emitted by the emitter

      +
    • +
    +
    +
    + +

    Static once

    +
      +
    • once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
    • +
    +
      +
    • + +
      +
      +

      Creates a Promise that is fulfilled when the EventEmitter emits the given + event or that is rejected if the EventEmitter emits 'error' while waiting. + The Promise will resolve with an array of all the arguments emitted to the + given event.

      +
      +

      This method is intentionally generic and works with the web platformEventTarget interface, which has no special'error' event + semantics and does not listen to the 'error' event.

      +
      const { once, EventEmitter } = require('events');
      +
      +async function run() {
      +  const ee = new EventEmitter();
      +
      +  process.nextTick(() => {
      +    ee.emit('myevent', 42);
      +  });
      +
      +  const [value] = await once(ee, 'myevent');
      +  console.log(value);
      +
      +  const err = new Error('kaboom');
      +  process.nextTick(() => {
      +    ee.emit('error', err);
      +  });
      +
      +  try {
      +    await once(ee, 'myevent');
      +  } catch (err) {
      +    console.log('error happened', err);
      +  }
      +}
      +
      +run();
      +

      The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the + 'error' event itself, then it is treated as any other kind of event without + special handling:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +
      +once(ee, 'error')
      +  .then(([err]) => console.log('ok', err.message))
      +  .catch((err) => console.log('error', err.message));
      +
      +ee.emit('error', new Error('boom'));
      +
      +// Prints: ok boom
      +

      An AbortSignal can be used to cancel waiting for the event:

      +
      const { EventEmitter, once } = require('events');
      +
      +const ee = new EventEmitter();
      +const ac = new AbortController();
      +
      +async function foo(emitter, event, signal) {
      +  try {
      +    await once(emitter, event, { signal });
      +    console.log('event emitted!');
      +  } catch (error) {
      +    if (error.name === 'AbortError') {
      +      console.error('Waiting for the event was canceled!');
      +    } else {
      +      console.error('There was an error', error.message);
      +    }
      +  }
      +}
      +
      +foo(ee, 'foo', ac.signal);
      +ac.abort(); // Abort waiting for the event
      +ee.emit('foo'); // Prints: Waiting for the event was canceled!
      +
      +
      since
      +

      v11.13.0, v10.16.0

      +
      +
      +
      +

      Parameters

      +
        +
      • +
        emitter: NodeEventTarget
        +
      • +
      • +
        eventName: string | symbol
        +
      • +
      • +
        Optional options: StaticEventEmitterOptions
        +
      • +
      +

      Returns Promise<any[]>

      +
    • +
    +
    diff --git a/package-lock.json b/package-lock.json index c664e7c..d0e3948 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,1455 +1,3230 @@ { "name": "spread-the-word", - "version": "0.8.4", - "lockfileVersion": 1, + "version": "0.9.0", + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@types/chai": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz", - "integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==", + "packages": { + "": { + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.7", + "@types/node": "^16.9.1", + "debug": "^4.3.2", + "dns-txt": "^2.0.2", + "multicast-dns": "^7.2.3" + }, + "devDependencies": { + "@types/chai": "^4.2.21", + "@types/mocha": "^9.0.0", + "chai": "^4.3.4", + "mocha": "^9.1.1", + "nodemon": "^2.0.12", + "ts-node": "^10.2.1", + "typedoc": "^0.16.9", + "typescript": "^4.4.3" + } + }, + "node_modules/@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz", + "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-consumer": "0.8.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", + "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", "dev": true }, - "@types/debug": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-0.0.31.tgz", - "integrity": "sha512-LS1MCPaQKqspg7FvexuhmDbWUhE2yIJ+4AgVIyObfc06/UKZ8REgxGNjZc82wPLWmbeOm7S+gSsLgo75TanG4A==" + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true }, - "@types/minimatch": { + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "node_modules/@types/chai": { + "version": "4.2.21", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.21.tgz", + "integrity": "sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==", + "dev": true + }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, - "@types/mocha": { - "version": "2.2.48", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz", - "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==", - "dev": true + "node_modules/@types/mocha": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", + "integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==", + "dev": true, + "license": "MIT" }, - "@types/node": { - "version": "9.6.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.55.tgz", - "integrity": "sha512-e/5tg8Ok0gSrN6pvHphnwTK0/CD9VPZrtZqpvvpEFAtfs+ZntusgGaWkf2lSEq1OFe2EDPeUMiMVpy4nZpJ4AQ==" + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, - "abbrev": { + "node_modules/@types/node": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", + "license": "MIT" + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "node_modules/acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", "dev": true, - "requires": { - "string-width": "^2.0.0" + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "ansi-regex": { + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-align": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "dependencies": { + "string-width": "^3.0.0" + } }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, - "requires": { - "color-convert": "^1.9.0" + "engines": { + "node": ">=6" } }, - "anymatch": { + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, - "requires": { - "sprintf-js": "~1.0.2" + "engines": { + "node": ">=6" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "assertion-error": { + "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async-each": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz", - "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "engines": { + "node": "*" } }, - "backbone": { + "node_modules/backbone": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.4.0.tgz", "integrity": "sha512-RLmDrRXkVdouTg38jcgHhyQ/2zjg7a8E6sz2zxfz21Hh17xDJYUHBZimVIt5fUyS8vbfpeSmTL3gUjTEvUV3qQ==", "dev": true, - "requires": { + "dependencies": { "underscore": ">=1.8.3" } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "requires": { - "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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "engines": { + "node": ">=8" } }, - "binary-extensions": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", - "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", - "dev": true - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "browser-stdout": { + "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { + "node_modules/buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8" + } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "requires": { - "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" + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "node_modules/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.1.0", + "pathval": "^1.1.1", "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" } }, - "check-error": { + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "chokidar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.2.tgz", - "integrity": "sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.0" + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "engines": { + "node": ">=6" }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, - "requires": { - "color-name": "1.1.3" + "dependencies": { + "mimic-response": "^1.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, - "requires": { - "dot-prop": "^4.1.0", + "dependencies": { + "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" + "engines": { + "node": ">=8" } }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } }, - "deep-eql": { + "node_modules/deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, - "requires": { + "dependencies": { "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" } }, - "deep-extend": { + "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "engines": { + "node": ">=4.0.0" } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" } }, - "dns-txt": { + "node_modules/dns-packet": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.0.tgz", + "integrity": "sha512-Nce7YLu6YCgWRvOmDBsJMo9M5/jV3lEZ5vUWnWXYmwURvPylHvq7nkDWhNmk1ZQoZZOP7oQh/S0lSxbisKOfHg==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dns-txt": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { + "dependencies": { "buffer-indexof": "^1.0.0" } }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, - "requires": { - "is-obj": "^1.0.0" + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "duplexer3": { + "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" + "engines": { + "node": ">=6" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">=8" } }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "engines": { + "node": ">=10" }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "requires": { - "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" - }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "requires": { - "map-cache": "^0.2.2" + "bin": { + "flat": "cli.js" } }, - "fs-extra": { + "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" }, - "dependencies": { - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - } + "engines": { + "node": ">=6 <7 || >=8" } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", - "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, + "hasInstallScript": true, "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "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" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "dependencies": { + "ini": "1.3.7" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "9.18.5", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz", + "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==", + "deprecated": "Support has ended for 9.x series. Upgrade to @latest", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": "*" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "node_modules/marked": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 8.16.2" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mocha": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.2", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "3.0.4", + "ms": "2.1.3", + "nanoid": "3.1.23", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.5", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.3.tgz", + "integrity": "sha512-TzxgGSLRLB7tqAlzjgd2x2ZE0cDsGFq4rs9W4yE5xp+7hlRXeUQGtXZsTGfGw2FwWB45rfe8DtXMYBpZGMLUng==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nodemon": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.12.tgz", + "integrity": "sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "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.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-color/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/thunky": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", + "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==" + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/ts-node": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz", + "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "0.6.1", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { "optional": true }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, + "@swc/wasm": { "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typedoc": { + "version": "0.16.11", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.16.11.tgz", + "integrity": "sha512-YEa5i0/n0yYmLJISJ5+po6seYfJQJ5lQYcHCPF9ffTF92DB/TAZO/QrazX5skPHNPtmlIht5FdTXCM2kC7jQFQ==", + "dev": true, + "dependencies": { + "@types/minimatch": "3.0.3", + "fs-extra": "^8.1.0", + "handlebars": "^4.7.2", + "highlight.js": "^9.17.1", + "lodash": "^4.17.15", + "marked": "^0.8.0", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "shelljs": "^0.8.3", + "typedoc-default-themes": "^0.7.2", + "typescript": "3.7.x" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/typedoc-default-themes": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.7.2.tgz", + "integrity": "sha512-fiFKlFO6VTqjcno8w6WpTsbCgXmfPHVjnLfYkmByZE7moaz+E2DSpAT+oHtDHv7E0BM5kAhPrHJELP2J2Y2T9A==", + "dev": true, + "dependencies": { + "backbone": "^1.4.0", + "jquery": "^3.4.1", + "lunr": "^2.3.8", + "underscore": "^1.9.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/typedoc/node_modules/typescript": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.7.tgz", + "integrity": "sha512-MmQdgo/XenfZPvVLtKZOq9jQQvzaUAUpcKW8Z43x9B2fOm4S5g//tPtMweZUIP+SoBqrVPEIm+dJeQ9dfO0QdA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typescript": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", + "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", + "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/undefsafe/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/undefsafe/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/underscore": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "dev": true + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "node_modules/workerpool": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz", + "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==", + "dev": true, + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", + "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "@types/chai": { + "version": "4.2.21", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.21.tgz", + "integrity": "sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==", + "dev": true + }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "requires": { + "@types/ms": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/mocha": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", + "integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==", + "dev": true + }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, + "@types/node": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==" + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, - "semver": { - "version": "5.6.0", - "bundled": true, - "dev": true, - "optional": true + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, - "set-blocking": { + "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, - "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "3.0.1", - "bundled": true, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, - "optional": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^4.1.0" } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, + } + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "backbone": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.4.0.tgz", + "integrity": "sha512-RLmDrRXkVdouTg38jcgHhyQ/2zjg7a8E6sz2zxfz21Hh17xDJYUHBZimVIt5fUyS8vbfpeSmTL3gUjTEvUV3qQ==", + "dev": true, + "requires": { + "underscore": ">=1.8.3" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "optional": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "pump": "^3.0.0" } }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, - "wide-align": { - "version": "1.1.3", - "bundled": true, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "optional": true, "requires": { - "string-width": "^1.0.2 || 2" + "has-flag": "^4.0.0" } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true } } }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "dns-packet": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.0.tgz", + "integrity": "sha512-Nce7YLu6YCgWRvOmDBsJMo9M5/jV3lEZ5vUWnWXYmwURvPylHvq7nkDWhNmk1ZQoZZOP7oQh/S0lSxbisKOfHg==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", @@ -1457,21 +3232,18 @@ "dev": true }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -1483,58 +3255,46 @@ } }, "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "is-glob": "^4.0.1" } }, "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "1.3.7" } }, "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "requires": { - "create-error-class": "^3.0.0", + "@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": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "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": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "growl": { @@ -1544,40 +3304,25 @@ "dev": true }, "handlebars": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.2.tgz", - "integrity": "sha512-4PwqDL2laXtTWZghzzCtunQUTLbo31pcCJrd/B/9JP8XbhVzpS5ZXuKqlOzsd1rtcaLo4KqAn8nl8mkknS4MHw==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "requires": { + "minimist": "^1.2.5", "neo-async": "^2.6.0", - "optimist": "^0.6.1", "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } + "function-bind": "^1.1.1" } }, "has-flag": { @@ -1586,48 +3331,28 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "highlight.js": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.0.tgz", - "integrity": "sha512-A97kI1KAUzKoAiEoaGcf2O9YPS8nbDTCRFokaaeBhnqjQTvbAuAJrQMm21zw8s8xzaMtCQBtgbyGXLGxdxQyqQ==", + "version": "9.18.5", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz", + "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, "ignore-by-default": { @@ -1665,111 +3390,44 @@ "dev": true }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "^2.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "^1.5.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "ci-info": "^2.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "has": "^1.0.3" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1777,108 +3435,76 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true }, "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, "isexe": { @@ -1887,34 +3513,27 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "jquery": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", - "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -1924,56 +3543,103 @@ "graceful-fs": "^4.1.6" } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } }, "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "^6.3.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "lunr": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", - "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==", + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "pify": "^3.0.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "make-error": { @@ -1982,47 +3648,17 @@ "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, "marked": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz", - "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", "dev": true }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "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" - } + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true }, "minimatch": { "version": "3.0.4", @@ -2034,139 +3670,137 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==", "dev": true, "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", + "chokidar": "3.5.2", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", "growl": "1.10.5", - "he": "1.1.1", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" + "ms": "2.1.3", + "nanoid": "3.1.23", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.5", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true } } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.3.tgz", + "integrity": "sha512-TzxgGSLRLB7tqAlzjgd2x2ZE0cDsGFq4rs9W4yE5xp+7hlRXeUQGtXZsTGfGw2FwWB45rfe8DtXMYBpZGMLUng==", "requires": { - "dns-packet": "^1.3.1", + "dns-packet": "^5.2.2", "thunky": "^1.0.2" } }, - "nan": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.0.tgz", - "integrity": "sha512-5DDQvN0luhXdut8SCwzm/ZuAX2W+fwhqNzfq7CZ+OJzQ6NwpcqmIGyLD1R8MEt7BeErzcsI0JLr4pND2pNp2Cw==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "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" - } + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "dev": true }, "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "nodemon": { - "version": "1.18.10", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.18.10.tgz", - "integrity": "sha512-we51yBb1TfEvZamFchRgcfLbVYgg0xlGbyXmOtbBzDwxwgewYS/YbZ5tnlnsH51+AoSTTsT3A2E/FloUbtH8cQ==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.12.tgz", + "integrity": "sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA==", "dev": true, "requires": { - "chokidar": "^2.1.0", - "debug": "^3.1.0", + "chokidar": "^3.2.2", + "debug": "^3.2.6", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", - "pstree.remy": "^1.1.6", - "semver": "^5.5.0", - "supports-color": "^5.2.0", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^2.5.0" + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "nopt": { @@ -2184,63 +3818,11 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true }, "once": { "version": "1.4.0", @@ -2251,44 +3833,54 @@ "wrappy": "1" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "yocto-queue": "^0.1.0" } }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } }, "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { @@ -2297,52 +3889,28 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, "progress": { @@ -2351,459 +3919,193 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "pstree.remy": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.6.tgz", - "integrity": "sha512-NdF35+QsqD7EgNEI5mkI/X+UwaxVEbQaz9f4IooEmMUv6ZPmlTQYGjBPJGgrlzNdjSvIy4MWMg6Q6vCgBO2K+w==", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "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.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "dev": true, "requires": { - "ret": "~0.1.10" + "escape-goat": "^2.0.0" } }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - }, - "semver-diff": { + "randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shelljs": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", - "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "safe-buffer": "^5.1.0" } }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "picomatch": "^2.2.1" } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "resolve": "^1.1.6" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "rc": "^1.2.8" } }, - "source-map-support": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz", - "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==", + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "rc": "^1.2.8" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "semver": "^6.3.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "randombytes": "^2.1.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } }, "strip-json-comments": { "version": "2.0.1", @@ -2812,74 +4114,46 @@ "dev": true }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } } }, "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true }, "thunky": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==" }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" } }, "touch": { @@ -2892,75 +4166,58 @@ } }, "ts-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz", + "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==", "dev": true, "requires": { - "arrify": "^1.0.0", - "buffer-from": "^1.1.0", - "diff": "^3.1.0", + "@cspotcode/source-map-support": "0.6.1", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.6", - "yn": "^2.0.0" + "yn": "3.1.1" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true } } }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, - "tslint": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.14.0.tgz", - "integrity": "sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ==", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - } + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { - "tslib": "^1.8.1" + "is-typedarray": "^1.0.0" } }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, "typedoc": { - "version": "0.16.9", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.16.9.tgz", - "integrity": "sha512-UvOGoy76yqwCXwxPgatwgXWfsQ3FczyZ6ZNLjhCPK+TsDir6LiU3YB6N9XZmPv36E+7LA860mnc8a0v6YADKFw==", + "version": "0.16.11", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.16.11.tgz", + "integrity": "sha512-YEa5i0/n0yYmLJISJ5+po6seYfJQJ5lQYcHCPF9ffTF92DB/TAZO/QrazX5skPHNPtmlIht5FdTXCM2kC7jQFQ==", "dev": true, "requires": { "@types/minimatch": "3.0.3", @@ -2977,9 +4234,9 @@ }, "dependencies": { "typescript": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", - "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.7.tgz", + "integrity": "sha512-MmQdgo/XenfZPvVLtKZOq9jQQvzaUAUpcKW8Z43x9B2fOm4S5g//tPtMweZUIP+SoBqrVPEIm+dJeQ9dfO0QdA==", "dev": true } } @@ -2997,42 +4254,22 @@ } }, "typescript": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", - "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz", + "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", "dev": true }, "uglify-js": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.6.tgz", - "integrity": "sha512-yYqjArOYSxvqeeiYH2VGjZOqq6SVmhxzaPjJC1W2F9e+bqvFL9QXQ2osQuKUFjM2hGjKG2YclQnRKWQSt/nOTQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", + "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.3", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } + "optional": true }, "undefsafe": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", - "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", "dev": true, "requires": { "debug": "^2.2.0" @@ -3056,30 +4293,18 @@ } }, "underscore": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", - "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", "dev": true }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "^2.0.0" } }, "universalify": { @@ -3088,127 +4313,119 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "^2.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "^4.0.0" } }, "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "workerpool": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", "dev": true }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -3216,32 +4433,80 @@ "dev": true }, "write-file-atomic": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz", - "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, - "yn": { + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + } + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } diff --git a/package.json b/package.json index 3fd6043..b25c931 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "spread-the-word", - "version": "0.8.4", + "version": "0.9.0", "description": "A Bonjour / Zeroconf implementation in TypeScript", "repository": "https://github.com/ardean/spread-the-word", "bugs": "https://github.com/ardean/spread-the-word/issues", @@ -27,25 +27,23 @@ "build": "rm -rf dist && npm run build-src && npm run build-docs", "build-src": "tsc", "build-docs": "typedoc --out ./docs ./src --hideGenerator --excludePrivate --mode file && touch ./docs/.nojekyll", - "test": "mocha -r ts-node/register test/*.spec.ts --exit", - "lint": "tslint --project ." + "test": "mocha -r ts-node/register test/*.spec.ts --exit" }, "dependencies": { - "@types/debug": "^0.0.31", - "@types/node": "^9.6.55", - "debug": "^3.1.0", + "@types/debug": "^4.1.7", + "@types/node": "^16.9.1", + "debug": "^4.3.2", "dns-txt": "^2.0.2", - "multicast-dns": "^6.2.3" + "multicast-dns": "^7.2.3" }, "devDependencies": { - "@types/chai": "^4.1.2", - "@types/mocha": "^2.2.48", - "chai": "^4.1.2", - "mocha": "^5.0.0", - "nodemon": "^1.18.9", - "ts-node": "^7.0.1", - "tslint": "^5.9.1", + "@types/chai": "^4.2.21", + "@types/mocha": "^9.0.0", + "chai": "^4.3.4", + "mocha": "^9.1.1", + "nodemon": "^2.0.12", + "ts-node": "^10.2.1", "typedoc": "^0.16.9", - "typescript": "^3.7.5" + "typescript": "^4.4.3" } } diff --git a/src/Service.ts b/src/Service.ts index 622328e..99fc7c5 100644 --- a/src/Service.ts +++ b/src/Service.ts @@ -142,7 +142,7 @@ class Service extends EventEmitter { async hide() { clearTimeout(this.broadcastDelay); await this.sendGoodbye(); - await new Promise(resolve => setTimeout(() => resolve(), 100)); + await new Promise(resolve => setTimeout(() => resolve(), 100)); this.spreaded = false; } diff --git a/src/transports/LocalTransport.ts b/src/transports/LocalTransport.ts index 08c904a..d014bb9 100644 --- a/src/transports/LocalTransport.ts +++ b/src/transports/LocalTransport.ts @@ -51,7 +51,7 @@ class LocalTransport extends EventEmitter implements Transport { } async query(query: Query) { - await new Promise(resolve => setTimeout(() => resolve(), 50)); + await new Promise(resolve => setTimeout(() => resolve(), 50)); this.emit("localQuery", toPlainObject(query), toPlainObject(this.referrer)); } @@ -59,7 +59,7 @@ class LocalTransport extends EventEmitter implements Transport { async respond(res: Response) { res = Response.serialize(res, { binaryTXT: this.options.binaryTXT }); - await new Promise(resolve => setTimeout(() => resolve(), 50)); + await new Promise(resolve => setTimeout(() => resolve(), 50)); this.emit("localResponse", toPlainObject(res), toPlainObject(this.referrer)); } @@ -68,7 +68,7 @@ class LocalTransport extends EventEmitter implements Transport { if (this.destroyed) return; this.destroyed = true; - await new Promise(resolve => setTimeout(() => resolve(), 50)); + await new Promise(resolve => setTimeout(() => resolve(), 50)); this.emit("destroy"); } diff --git a/test/Listener.spec.ts b/test/Listener.spec.ts index 418b5c0..173f5c2 100644 --- a/test/Listener.spec.ts +++ b/test/Listener.spec.ts @@ -32,7 +32,7 @@ describe("Listener", () => { }); it("emits up event for matching service type", async () => { - const upDetector = new Promise(resolve => { + const upDetector = new Promise(resolve => { listener.on("up", function onUp(remoteService) { if (remoteService.name === name) { listener.removeListener("up", onUp); @@ -46,7 +46,7 @@ describe("Listener", () => { }); it("emits down event for matching service type", async () => { - const downDetector = new Promise(resolve => { + const downDetector = new Promise(resolve => { listener.on("down", function onDown(remoteService) { if (remoteService.name === name) { listener.removeListener("down", onDown); @@ -61,7 +61,7 @@ describe("Listener", () => { }); it("removes SRV record", async () => { - const upDetector = new Promise(resolve => { + const upDetector = new Promise(resolve => { listener.on("up", function onUp(remoteService) { if (remoteService.name !== name) return; listener.removeListener("up", onUp); @@ -69,7 +69,7 @@ describe("Listener", () => { }); }); - const downDetector = new Promise(resolve => { + const downDetector = new Promise(resolve => { listener.on("down", function onDown(remoteService) { if (remoteService.name !== name) return; listener.removeListener("down", onDown); diff --git a/test/RecordRegistry.spec.ts b/test/RecordRegistry.spec.ts index 0da6e49..b7e53ec 100644 --- a/test/RecordRegistry.spec.ts +++ b/test/RecordRegistry.spec.ts @@ -51,7 +51,7 @@ describe("RecordRegistry", () => { it("keeps house", async () => { recordRegistry.add(new PTR({ name: "dead", data: "dead", ttl: 0.05 })); - await new Promise(resolve => setTimeout(() => resolve(), 60)); + await new Promise(resolve => setTimeout(() => resolve(), 60)); assert.lengthOf(recordRegistry.find(x => x.name === "dead"), 0); }); diff --git a/test/Server.spec.ts b/test/Server.spec.ts index 58a67ad..4fb9851 100644 --- a/test/Server.spec.ts +++ b/test/Server.spec.ts @@ -46,7 +46,7 @@ describe("Server", () => { transport.respond(new Response({ answers: [new PTR({ name: dnsType, data: dnsName })] })); - await new Promise(resolve => setTimeout(() => resolve(), 1000)); + await new Promise(resolve => setTimeout(() => resolve(), 1000)); server.removeListener("response", onResponse); @@ -81,7 +81,7 @@ describe("Server", () => { transport.query(new Query({ questions: [{ name: "own", type: "ANY" }] })); - await new Promise(resolve => setTimeout(() => resolve(), 500)); + await new Promise(resolve => setTimeout(() => resolve(), 500)); server.removeListener("query", onQuery); @@ -127,7 +127,7 @@ describe("Server", () => { new Referrer({ address: otherAddress }) ); - await new Promise(resolve => setTimeout(() => resolve(), 500)); + await new Promise(resolve => setTimeout(() => resolve(), 500)); server.removeListener("response", onResponse); @@ -151,7 +151,7 @@ describe("Server", () => { new Referrer({ address: otherAddress }) ); - await new Promise(resolve => setTimeout(() => resolve(), 500)); + await new Promise(resolve => setTimeout(() => resolve(), 500)); server.removeListener("response", onResponse); diff --git a/test/Service.spec.ts b/test/Service.spec.ts index a0f4269..93778a7 100644 --- a/test/Service.spec.ts +++ b/test/Service.spec.ts @@ -34,7 +34,7 @@ describe("Service", () => { }); it("sends goodbye on hide", async () => { - const goodbyeDetector = new Promise(resolve => { + const goodbyeDetector = new Promise(resolve => { server.on("response", function onResponse(res: Response) { let goodbyeFound = false; for (const record of res.answers) { @@ -61,7 +61,7 @@ describe("Service", () => { let serviceFound = false; let txtFound = false; - const responseDetector = new Promise(resolve => { + const responseDetector = new Promise(resolve => { server.on("response", function onResponse(res: Response) { for (const record of res.answers) { if (record.type === "PTR" && record.name === WILDCARD && record.data === dnsType) wildcardFound = true; diff --git a/tsconfig.json b/tsconfig.json index 0c906d9..5fb6b03 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,8 +4,8 @@ "outDir": "./dist", "baseUrl": "./src", "moduleResolution": "node", - "module": "commonjs", - "target": "es2017", + "module": "CommonJS", + "target": "ES2021", "esModuleInterop": true }, "include": [ diff --git a/tslint.json b/tslint.json deleted file mode 100644 index bd80cd8..0000000 --- a/tslint.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": [ - "tslint:recommended" - ], - "rules": { - "no-var-keyword": true, - "curly": false, - "member-access": false, - "eofline": false, - "arrow-parens": false, - "ordered-imports": false, - "only-arrow-functions": false, - "object-literal-sort-keys": false, - "space-before-function-paren": false, - "trailing-comma": false, - "interface-name": false, - "max-line-length": false, - "member-ordering": false, - "max-classes-per-file": false, - "no-console": { - "severity": "warning" - }, - "unified-signatures": false - } -} \ No newline at end of file