diff --git a/.c8rc.json b/.c8rc.json new file mode 100644 index 00000000..fa1f49d1 --- /dev/null +++ b/.c8rc.json @@ -0,0 +1,4 @@ +{ + "extension": [".js", ".cjs", ".mjs", ".ts"], + "reporter": ["text", "lcov"] +} diff --git a/.eslintrc.yml b/.eslintrc.yml index 8ce416a4..d1bad32e 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -9,3 +9,5 @@ env: browser: true rules: "@typescript-eslint/no-explicit-any": ["off"] +parserOptions: + sourceType: module diff --git a/.mocharc.yml b/.mocharc.yml index 157e6bc5..329e70f6 100644 --- a/.mocharc.yml +++ b/.mocharc.yml @@ -7,4 +7,5 @@ spec: test/specs/**/*.spec.js bail: true recursive: true async-only: true +timeout: "5000" require: ./test/fixtures/polyfill.js diff --git a/.nycrc.yml b/.nycrc.yml deleted file mode 100644 index b7e965e4..00000000 --- a/.nycrc.yml +++ /dev/null @@ -1,10 +0,0 @@ -# NYC config -# https://github.com/istanbuljs/nyc#configuration-files - -extension: - - .js - - .ts - -reporter: - - text - - lcov diff --git a/.swcrc b/.swcrc new file mode 100644 index 00000000..9cacfa9d --- /dev/null +++ b/.swcrc @@ -0,0 +1,18 @@ +{ + "$schema": "http://json.schemastore.org/swcrc", + "jsc": { + "parser": { + "syntax": "ecmascript", + "exportDefaultFrom": true + } + }, + "module": { + "type": "commonjs", + + // These are defaults. + "strict": false, + "strictMode": true, + "lazy": false, + "noInterop": false + } +} diff --git a/karma.conf.js b/karma.conf.cjs similarity index 96% rename from karma.conf.js rename to karma.conf.cjs index 0e3ee806..64037677 100644 --- a/karma.conf.js +++ b/karma.conf.cjs @@ -45,6 +45,11 @@ module.exports = (karma) => { } }); + config.files.push({ + pattern: "test/**/*.js", + type: "module" + }); + if (config.logLevel !== karma.LOG_DISABLE) { console.debug("Karma Config:\n", nodeUtil.inspect(config, { depth: 10, diff --git a/lib/bundle.js b/lib/bundle.js index a034d550..8019bd7c 100644 --- a/lib/bundle.js +++ b/lib/bundle.js @@ -1,10 +1,8 @@ -"use strict"; +import $Ref from "./ref.js"; +import Pointer from "./pointer.js"; +import * as url from "./util/url.js"; -const $Ref = require("./ref"); -const Pointer = require("./pointer"); -const url = require("./util/url"); - -module.exports = bundle; +export default bundle; /** * Bundles all external JSON references into the main JSON schema, thus resulting in a schema that diff --git a/lib/dereference.js b/lib/dereference.js index db63d4c3..968218fe 100644 --- a/lib/dereference.js +++ b/lib/dereference.js @@ -1,11 +1,9 @@ -"use strict"; +import $Ref from "./ref.js"; +import Pointer from "./pointer.js"; +import { ono } from "@jsdevtools/ono"; +import * as url from "./util/url.js"; -const $Ref = require("./ref"); -const Pointer = require("./pointer"); -const { ono } = require("@jsdevtools/ono"); -const url = require("./util/url"); - -module.exports = dereference; +export default dereference; /** * Crawls the JSON schema, finds all JSON references, and dereferences them. diff --git a/lib/index.js b/lib/index.js index fb5d5f32..5fdfb79c 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,26 +1,23 @@ /* eslint-disable no-unused-vars */ -"use strict"; +import $Refs from "./refs.js"; +import _parse from "./parse.js"; +import normalizeArgs from "./normalize-args.js"; +import resolveExternal from "./resolve-external.js"; +import _bundle from "./bundle.js"; +import _dereference from "./dereference.js"; +import * as url from "./util/url.js"; +import { JSONParserError, InvalidPointerError, MissingPointerError, ResolverError, ParserError, UnmatchedParserError, UnmatchedResolverError, isHandledError, JSONParserErrorGroup } from "./util/errors.js"; +import maybe from "call-me-maybe"; +import { ono } from "@jsdevtools/ono"; -const $Refs = require("./refs"); -const _parse = require("./parse"); -const normalizeArgs = require("./normalize-args"); -const resolveExternal = require("./resolve-external"); -const _bundle = require("./bundle"); -const _dereference = require("./dereference"); -const url = require("./util/url"); -const { JSONParserError, InvalidPointerError, MissingPointerError, ResolverError, ParserError, UnmatchedParserError, UnmatchedResolverError, isHandledError, JSONParserErrorGroup } = require("./util/errors"); -const maybe = require("call-me-maybe"); -const { ono } = require("@jsdevtools/ono"); - -module.exports = $RefParser; -module.exports.default = $RefParser; -module.exports.JSONParserError = JSONParserError; -module.exports.InvalidPointerError = InvalidPointerError; -module.exports.MissingPointerError = MissingPointerError; -module.exports.ResolverError = ResolverError; -module.exports.ParserError = ParserError; -module.exports.UnmatchedParserError = UnmatchedParserError; -module.exports.UnmatchedResolverError = UnmatchedResolverError; +export default $RefParser; +export { JSONParserError }; +export { InvalidPointerError }; +export { MissingPointerError }; +export { ResolverError }; +export { ParserError }; +export { UnmatchedParserError }; +export { UnmatchedResolverError }; /** * This class parses a JSON schema, builds a map of its JSON references and their resolved values, @@ -281,3 +278,13 @@ function finalize (parser) { throw new JSONParserErrorGroup(parser); } } + +export const parse = $RefParser.parse.bind($RefParser); +export const resolve = $RefParser.resolve.bind($RefParser); +export const bundle = $RefParser.bundle.bind($RefParser); +export const dereference = $RefParser.dereference.bind($RefParser); + +// CommonJS default export hack +if (typeof module === "object" && typeof module.exports === "object") { + module.exports = Object.assign(module.exports.default, module.exports); +} diff --git a/lib/normalize-args.js b/lib/normalize-args.js index 1d48fe4d..4f5d0fcd 100644 --- a/lib/normalize-args.js +++ b/lib/normalize-args.js @@ -1,8 +1,6 @@ -"use strict"; +import Options from "./options.js"; -const Options = require("./options"); - -module.exports = normalizeArgs; +export default normalizeArgs; /** * Normalizes the given arguments, accounting for optional args. diff --git a/lib/options.js b/lib/options.js index 199362a6..3d55b1c4 100644 --- a/lib/options.js +++ b/lib/options.js @@ -1,14 +1,12 @@ /* eslint lines-around-comment: [2, {beforeBlockComment: false}] */ -"use strict"; +import jsonParser from "./parsers/json.js"; +import yamlParser from "./parsers/yaml.js"; +import textParser from "./parsers/text.js"; +import binaryParser from "./parsers/binary.js"; +import fileResolver from "./resolvers/file.js"; +import httpResolver from "./resolvers/http.js"; -const jsonParser = require("./parsers/json"); -const yamlParser = require("./parsers/yaml"); -const textParser = require("./parsers/text"); -const binaryParser = require("./parsers/binary"); -const fileResolver = require("./resolvers/file"); -const httpResolver = require("./resolvers/http"); - -module.exports = $RefParserOptions; +export default $RefParserOptions; /** * Options that determine how JSON schemas are parsed, resolved, and dereferenced. diff --git a/lib/parse.js b/lib/parse.js index b9160df6..bd297294 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -1,11 +1,9 @@ -"use strict"; +import { ono } from "@jsdevtools/ono"; +import * as url from "./util/url.js"; +import * as plugins from "./util/plugins.js"; +import { ResolverError, ParserError, UnmatchedParserError, UnmatchedResolverError, isHandledError } from "./util/errors.js"; -const { ono } = require("@jsdevtools/ono"); -const url = require("./util/url"); -const plugins = require("./util/plugins"); -const { ResolverError, ParserError, UnmatchedParserError, UnmatchedResolverError, isHandledError } = require("./util/errors"); - -module.exports = parse; +export default parse; /** * Reads and parses the specified file path or URL. diff --git a/lib/parsers/binary.js b/lib/parsers/binary.js index be15073c..141fc3a8 100644 --- a/lib/parsers/binary.js +++ b/lib/parsers/binary.js @@ -1,8 +1,6 @@ -"use strict"; - let BINARY_REGEXP = /\.(jpeg|jpg|gif|png|bmp|ico)$/i; -module.exports = { +export default { /** * The order that this parser will run, in relation to other parsers. * diff --git a/lib/parsers/json.js b/lib/parsers/json.js index 34dd986f..116ece19 100644 --- a/lib/parsers/json.js +++ b/lib/parsers/json.js @@ -1,8 +1,6 @@ -"use strict"; +import { ParserError } from "../util/errors.js"; -const { ParserError } = require("../util/errors"); - -module.exports = { +export default { /** * The order that this parser will run, in relation to other parsers. * diff --git a/lib/parsers/text.js b/lib/parsers/text.js index 03bcd96b..a4975eb8 100644 --- a/lib/parsers/text.js +++ b/lib/parsers/text.js @@ -1,10 +1,8 @@ -"use strict"; - -const { ParserError } = require("../util/errors"); +import { ParserError } from "../util/errors.js"; let TEXT_REGEXP = /\.(txt|htm|html|md|xml|js|min|map|css|scss|less|svg)$/i; -module.exports = { +export default { /** * The order that this parser will run, in relation to other parsers. * diff --git a/lib/parsers/yaml.js b/lib/parsers/yaml.js index 94c4eca0..2c18743e 100644 --- a/lib/parsers/yaml.js +++ b/lib/parsers/yaml.js @@ -1,10 +1,8 @@ -"use strict"; +import { ParserError } from "../util/errors.js"; +import yaml from "js-yaml"; +import { JSON_SCHEMA } from "js-yaml"; -const { ParserError } = require("../util/errors"); -const yaml = require("js-yaml"); -const { JSON_SCHEMA } = require("js-yaml"); - -module.exports = { +export default { /** * The order that this parser will run, in relation to other parsers. * diff --git a/lib/pointer.js b/lib/pointer.js index 299b2215..fd34ab9a 100644 --- a/lib/pointer.js +++ b/lib/pointer.js @@ -1,10 +1,8 @@ -"use strict"; +export default Pointer; -module.exports = Pointer; - -const $Ref = require("./ref"); -const url = require("./util/url"); -const { JSONParserError, InvalidPointerError, MissingPointerError, isHandledError } = require("./util/errors"); +import $Ref from "./ref.js"; +import * as url from "./util/url.js"; +import { JSONParserError, InvalidPointerError, MissingPointerError, isHandledError } from "./util/errors.js"; const slashes = /\//g; const tildes = /~/g; const escapedSlash = /~1/g; diff --git a/lib/ref.js b/lib/ref.js index b6693795..8fa6b9ca 100644 --- a/lib/ref.js +++ b/lib/ref.js @@ -1,10 +1,8 @@ -"use strict"; +export default $Ref; -module.exports = $Ref; - -const Pointer = require("./pointer"); -const { InvalidPointerError, isHandledError, normalizeError } = require("./util/errors"); -const { safePointerToPath, stripHash, getHash } = require("./util/url"); +import Pointer from "./pointer.js"; +import { InvalidPointerError, isHandledError, normalizeError } from "./util/errors.js"; +import { safePointerToPath, stripHash, getHash } from "./util/url.js"; /** * This class represents a single JSON reference and its resolved value. diff --git a/lib/refs.js b/lib/refs.js index 3dfb2fd5..96a3b790 100644 --- a/lib/refs.js +++ b/lib/refs.js @@ -1,18 +1,14 @@ -"use strict"; - -const { ono } = require("@jsdevtools/ono"); -const $Ref = require("./ref"); -const url = require("./util/url"); +import { ono } from "@jsdevtools/ono"; +import $Ref from "./ref.js"; +import * as url from "./util/url.js"; const isWindows = /^win/.test(globalThis.process ? globalThis.process.platform : undefined); const getPathFromOs = filePath => isWindows ? filePath.replace(/\\/g, "/") : filePath; -module.exports = $Refs; - /** * This class is a map of JSON references and their resolved values. */ -function $Refs () { +export default function $Refs () { /** * Indicates whether the schema contains any circular references. * diff --git a/lib/resolve-external.js b/lib/resolve-external.js index 9af29bb2..c11adae2 100644 --- a/lib/resolve-external.js +++ b/lib/resolve-external.js @@ -1,12 +1,10 @@ -"use strict"; +import $Ref from "./ref.js"; +import Pointer from "./pointer.js"; +import parse from "./parse.js"; +import * as url from "./util/url.js"; +import { isHandledError } from "./util/errors.js"; -const $Ref = require("./ref"); -const Pointer = require("./pointer"); -const parse = require("./parse"); -const url = require("./util/url"); -const { isHandledError } = require("./util/errors"); - -module.exports = resolveExternal; +export default resolveExternal; /** * Crawls the JSON schema, finds all external JSON references, and resolves their values. diff --git a/lib/resolvers/file.js b/lib/resolvers/file.js index 45577ad7..5afb810d 100644 --- a/lib/resolvers/file.js +++ b/lib/resolvers/file.js @@ -1,10 +1,9 @@ -"use strict"; -const fs = require("fs"); -const { ono } = require("@jsdevtools/ono"); -const url = require("../util/url"); -const { ResolverError } = require("../util/errors"); +import fs from "fs"; +import { ono } from "@jsdevtools/ono"; +import * as url from "../util/url.js"; +import { ResolverError } from "../util/errors.js"; -module.exports = { +export default { /** * The order that this resolver will run, in relation to other resolvers. * diff --git a/lib/resolvers/http.js b/lib/resolvers/http.js index 6190c493..01486e79 100644 --- a/lib/resolvers/http.js +++ b/lib/resolvers/http.js @@ -1,10 +1,8 @@ -"use strict"; +import { ono } from "@jsdevtools/ono"; +import * as url from "../util/url.js"; +import { ResolverError } from "../util/errors.js"; -const { ono } = require("@jsdevtools/ono"); -const url = require("../util/url"); -const { ResolverError } = require("../util/errors"); - -module.exports = { +export default { /** * The order that this resolver will run, in relation to other resolvers. * diff --git a/lib/util/errors.js b/lib/util/errors.js index 4cdb1c0a..c557faaa 100644 --- a/lib/util/errors.js +++ b/lib/util/errors.js @@ -1,10 +1,8 @@ -"use strict"; +import { Ono } from "@jsdevtools/ono"; -const { Ono } = require("@jsdevtools/ono"); +import { stripHash, toFileSystemPath } from "./url.js"; -const { stripHash, toFileSystemPath } = require("./url"); - -const JSONParserError = exports.JSONParserError = class JSONParserError extends Error { +export const JSONParserError = class JSONParserError extends Error { constructor (message, source) { super(); @@ -23,7 +21,7 @@ const JSONParserError = exports.JSONParserError = class JSONParserError extends setErrorName(JSONParserError); -const JSONParserErrorGroup = exports.JSONParserErrorGroup = class JSONParserErrorGroup extends Error { +export const JSONParserErrorGroup = class JSONParserErrorGroup extends Error { constructor (parser) { super(); @@ -52,7 +50,7 @@ const JSONParserErrorGroup = exports.JSONParserErrorGroup = class JSONParserErro setErrorName(JSONParserErrorGroup); -const ParserError = exports.ParserError = class ParserError extends JSONParserError { +export const ParserError = class ParserError extends JSONParserError { constructor (message, source) { super(`Error parsing ${source}: ${message}`, source); @@ -62,7 +60,7 @@ const ParserError = exports.ParserError = class ParserError extends JSONParserEr setErrorName(ParserError); -const UnmatchedParserError = exports.UnmatchedParserError = class UnmatchedParserError extends JSONParserError { +export const UnmatchedParserError = class UnmatchedParserError extends JSONParserError { constructor (source) { super(`Could not find parser for "${source}"`, source); @@ -72,7 +70,7 @@ const UnmatchedParserError = exports.UnmatchedParserError = class UnmatchedParse setErrorName(UnmatchedParserError); -const ResolverError = exports.ResolverError = class ResolverError extends JSONParserError { +export const ResolverError = class ResolverError extends JSONParserError { constructor (ex, source) { super(ex.message || `Error reading file "${source}"`, source); @@ -86,7 +84,7 @@ const ResolverError = exports.ResolverError = class ResolverError extends JSONPa setErrorName(ResolverError); -const UnmatchedResolverError = exports.UnmatchedResolverError = class UnmatchedResolverError extends JSONParserError { +export const UnmatchedResolverError = class UnmatchedResolverError extends JSONParserError { constructor (source) { super(`Could not find resolver for "${source}"`, source); @@ -96,7 +94,7 @@ const UnmatchedResolverError = exports.UnmatchedResolverError = class UnmatchedR setErrorName(UnmatchedResolverError); -const MissingPointerError = exports.MissingPointerError = class MissingPointerError extends JSONParserError { +export const MissingPointerError = class MissingPointerError extends JSONParserError { constructor (token, path) { super(`Token "${token}" does not exist.`, stripHash(path)); @@ -106,7 +104,7 @@ const MissingPointerError = exports.MissingPointerError = class MissingPointerEr setErrorName(MissingPointerError); -const InvalidPointerError = exports.InvalidPointerError = class InvalidPointerError extends JSONParserError { +export const InvalidPointerError = class InvalidPointerError extends JSONParserError { constructor (pointer, path) { super(`Invalid $ref pointer "${pointer}". Pointers must begin with "#/"`, stripHash(path)); @@ -123,14 +121,14 @@ function setErrorName (err) { }); } -exports.isHandledError = function (err) { +export function isHandledError (err) { return err instanceof JSONParserError || err instanceof JSONParserErrorGroup; -}; +} -exports.normalizeError = function (err) { +export function normalizeError (err) { if (err.path === null) { err.path = []; } return err; -}; +} diff --git a/lib/util/plugins.js b/lib/util/plugins.js index 24d69349..83f10436 100644 --- a/lib/util/plugins.js +++ b/lib/util/plugins.js @@ -1,5 +1,3 @@ -"use strict"; - /** * Returns the given plugins as an array, rather than an object map. * All other methods in this module expect an array of plugins rather than an object map. @@ -7,7 +5,7 @@ * @param {object} plugins - A map of plugin objects * @return {object[]} */ -exports.all = function (plugins) { +export function all (plugins) { return Object.keys(plugins) .filter((key) => { return typeof plugins[key] === "object"; @@ -16,7 +14,7 @@ exports.all = function (plugins) { plugins[key].name = key; return plugins[key]; }); -}; +} /** * Filters the given plugins, returning only the ones return `true` for the given method. @@ -26,12 +24,12 @@ exports.all = function (plugins) { * @param {object} file - A file info object, which will be passed to each method * @return {object[]} */ -exports.filter = function (plugins, method, file) { +export function filter (plugins, method, file) { return plugins .filter((plugin) => { return !!getResult(plugin, method, file); }); -}; +} /** * Sorts the given plugins, in place, by their `order` property. @@ -39,13 +37,13 @@ exports.filter = function (plugins, method, file) { * @param {object[]} plugins - An array of plugin objects * @returns {object[]} */ -exports.sort = function (plugins) { +export function sort (plugins) { for (let plugin of plugins) { plugin.order = plugin.order || Number.MAX_SAFE_INTEGER; } return plugins.sort((a, b) => { return a.order - b.order; }); -}; +} /** * Runs the specified method of the given plugins, in order, until one of them returns a successful result. @@ -60,7 +58,7 @@ exports.sort = function (plugins) { * @param {object} file - A file info object, which will be passed to each method * @returns {Promise} */ -exports.run = function (plugins, method, file, $refs) { +export function run (plugins, method, file, $refs) { let plugin, lastError, index = 0; return new Promise(((resolve, reject) => { @@ -119,7 +117,7 @@ exports.run = function (plugins, method, file, $refs) { runNextPlugin(); } })); -}; +} /** * Returns the value of the given property. diff --git a/lib/util/projectDir.cjs b/lib/util/projectDir.cjs new file mode 100644 index 00000000..4760a163 --- /dev/null +++ b/lib/util/projectDir.cjs @@ -0,0 +1,6 @@ +const nodePath = require("path"); + +// Webpack 4 (used by browser tests) can't transpile import.meta.url +// So export the project directory using __dirname from a .cjs module +const projectDir = nodePath.resolve(__dirname, "..", ".."); +module.exports = projectDir diff --git a/lib/util/url.js b/lib/util/url.js index def1eb84..db6046da 100644 --- a/lib/util/url.js +++ b/lib/util/url.js @@ -1,12 +1,8 @@ -"use strict"; - -const nodePath = require("path"); -const projectDir = nodePath.resolve(__dirname, "..", ".."); +import projectDir from "./projectDir.cjs"; let isWindows = /^win/.test(globalThis.process ? globalThis.process.platform : undefined), forwardSlashPattern = /\//g, protocolPattern = /^(\w{2,}):\/\//i, - url = module.exports, jsonPointerSlash = /~1/g, jsonPointerTilde = /~0/g; @@ -25,14 +21,14 @@ let urlDecodePatterns = [ /\%40/g, "@" ]; -exports.parse = (u) => new URL(u); +export const parse = (u) => new URL(u); /** * Returns resolved target URL relative to a base URL in a manner similar to that of a Web browser resolving an anchor tag HREF. * * @return {string} */ -exports.resolve = function resolve (from, to) { +export function resolve (from, to) { let resolvedUrl = new URL(to, new URL(from, "resolve://")); if (resolvedUrl.protocol === "resolve:") { // `from` is a relative URL. @@ -40,14 +36,14 @@ exports.resolve = function resolve (from, to) { return pathname + search + hash; } return resolvedUrl.toString(); -}; +} /** * Returns the current working directory (in Node) or the current page URL (in browsers). * * @returns {string} */ -exports.cwd = function cwd () { +export function cwd () { if (typeof window !== "undefined") { return location.href; } @@ -61,7 +57,7 @@ exports.cwd = function cwd () { else { return path + "/"; } -}; +} /** * Returns the protocol of the given URL, or `undefined` if it has no protocol. @@ -69,12 +65,12 @@ exports.cwd = function cwd () { * @param {string} path * @returns {?string} */ -exports.getProtocol = function getProtocol (path) { +export function getProtocol (path) { let match = protocolPattern.exec(path); if (match) { return match[1].toLowerCase(); } -}; +} /** * Returns the lowercased file extension of the given URL, @@ -83,13 +79,13 @@ exports.getProtocol = function getProtocol (path) { * @param {string} path * @returns {string} */ -exports.getExtension = function getExtension (path) { +export function getExtension (path) { let lastDot = path.lastIndexOf("."); if (lastDot >= 0) { - return url.stripQuery(path.substr(lastDot).toLowerCase()); + return stripQuery(path.substr(lastDot).toLowerCase()); } return ""; -}; +} /** * Removes the query, if any, from the given path. @@ -97,13 +93,13 @@ exports.getExtension = function getExtension (path) { * @param {string} path * @returns {string} */ -exports.stripQuery = function stripQuery (path) { +export function stripQuery (path) { let queryIndex = path.indexOf("?"); if (queryIndex >= 0) { path = path.substr(0, queryIndex); } return path; -}; +} /** * Returns the hash (URL fragment), of the given path. @@ -112,13 +108,13 @@ exports.stripQuery = function stripQuery (path) { * @param {string} path * @returns {string} */ -exports.getHash = function getHash (path) { +export function getHash (path) { let hashIndex = path.indexOf("#"); if (hashIndex >= 0) { return path.substr(hashIndex); } return "#"; -}; +} /** * Removes the hash (URL fragment), if any, from the given path. @@ -126,13 +122,13 @@ exports.getHash = function getHash (path) { * @param {string} path * @returns {string} */ -exports.stripHash = function stripHash (path) { +export function stripHash (path) { let hashIndex = path.indexOf("#"); if (hashIndex >= 0) { path = path.substr(0, hashIndex); } return path; -}; +} /** * Determines whether the given path is an HTTP(S) URL. @@ -140,8 +136,8 @@ exports.stripHash = function stripHash (path) { * @param {string} path * @returns {boolean} */ -exports.isHttp = function isHttp (path) { - let protocol = url.getProtocol(path); +export function isHttp (path) { + let protocol = getProtocol(path); if (protocol === "http" || protocol === "https") { return true; } @@ -153,7 +149,7 @@ exports.isHttp = function isHttp (path) { // It's some other protocol, such as "ftp://", "mongodb://", etc. return false; } -}; +} /** * Determines whether the given path is a filesystem path. @@ -162,16 +158,16 @@ exports.isHttp = function isHttp (path) { * @param {string} path * @returns {boolean} */ -exports.isFileSystemPath = function isFileSystemPath (path) { +export function isFileSystemPath (path) { if (process.browser) { // We're running in a browser, so assume that all paths are URLs. // This way, even relative paths will be treated as URLs rather than as filesystem paths return false; } - let protocol = url.getProtocol(path); + let protocol = getProtocol(path); return protocol === undefined || protocol === "file"; -}; +} /** * Converts a filesystem path to a properly-encoded URL. @@ -189,7 +185,7 @@ exports.isFileSystemPath = function isFileSystemPath (path) { * @param {string} path * @returns {string} */ -exports.fromFileSystemPath = function fromFileSystemPath (path) { +export function fromFileSystemPath (path) { // Step 1: On Windows, replace backslashes with forward slashes, // rather than encoding them as "%5C" if (isWindows) { @@ -214,7 +210,7 @@ exports.fromFileSystemPath = function fromFileSystemPath (path) { } return path; -}; +} /** * Converts a URL to a local filesystem path. @@ -223,7 +219,7 @@ exports.fromFileSystemPath = function fromFileSystemPath (path) { * @param {boolean} [keepFileProtocol] - If true, then "file://" will NOT be stripped * @returns {string} */ -exports.toFileSystemPath = function toFileSystemPath (path, keepFileProtocol) { +export function toFileSystemPath (path, keepFileProtocol) { // Step 1: `decodeURI` will decode characters such as Cyrillic characters, spaces, etc. path = decodeURI(path); @@ -271,7 +267,7 @@ exports.toFileSystemPath = function toFileSystemPath (path, keepFileProtocol) { } return path; -}; +} /** * Converts a $ref pointer to a valid JSON Path. @@ -279,7 +275,7 @@ exports.toFileSystemPath = function toFileSystemPath (path, keepFileProtocol) { * @param {string} pointer * @returns {Array} */ -exports.safePointerToPath = function safePointerToPath (pointer) { +export function safePointerToPath (pointer) { if (pointer.length <= 1 || pointer[0] !== "#" || pointer[1] !== "/") { return []; } @@ -292,4 +288,4 @@ exports.safePointerToPath = function safePointerToPath (pointer) { .replace(jsonPointerSlash, "/") .replace(jsonPointerTilde, "~"); }); -}; +} diff --git a/package-lock.json b/package-lock.json index cae44d9d..1b85540a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,10 +20,14 @@ "@jsdevtools/eslint-config": "^1.0.7", "@jsdevtools/host-environment": "^2.1.2", "@jsdevtools/karma-config": "^3.1.7", + "@swc/cli": "^0.1.59", + "@swc/core": "^1.3.25", "@types/node": "^14.14.21", + "c8": "^7.12.0", "chai": "^4.2.0", "chai-subset": "^1.6.0", "chokidar": "^3.5.3", + "copyfiles": "^2.4.1", "cross-env": "^7.0.3", "eslint": "^7.18.0", "isomorphic-fetch": "^3.0.0", @@ -32,7 +36,6 @@ "mocha": "^8.2.1", "node-abort-controller": "^3.0.1", "npm-check": "^5.9.0", - "nyc": "^15.0.1", "semantic-release-plugin-update-version-in-files": "^1.1.0", "shx": "^0.3.2", "typescript": "^4.0.5" @@ -1060,6 +1063,12 @@ "to-fast-properties": "^2.0.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "node_modules/@chiragrupani/karma-chromium-edge-launcher": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/@chiragrupani/karma-chromium-edge-launcher/-/karma-chromium-edge-launcher-2.2.2.tgz", @@ -1157,106 +1166,38 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true, - "engines": { - "node": ">=8" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@jsdevtools/coverage-istanbul-loader": { @@ -1335,6 +1276,41 @@ "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@qawolf/ci-info": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@qawolf/ci-info/-/ci-info-2.1.0.tgz", @@ -1350,6 +1326,241 @@ "node": ">=4" } }, + "node_modules/@swc/cli": { + "version": "0.1.59", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.59.tgz", + "integrity": "sha512-BlX3wIxYTwdtR22dIqZ3FEIOJPqnlByAp4JY46OMZi2UXMB3ZbOzefawD2ZlLafRUWyy5NtiZZty5waKzaYRnA==", + "dev": true, + "dependencies": { + "bin-wrapper": "^4.1.0", + "commander": "^7.1.0", + "fast-glob": "^3.2.5", + "semver": "^7.3.8", + "slash": "3.0.0", + "source-map": "^0.7.3" + }, + "bin": { + "spack": "bin/spack.js", + "swc": "bin/swc.js", + "swcx": "bin/swcx.js" + }, + "engines": { + "node": ">= 12.13" + }, + "peerDependencies": { + "@swc/core": "^1.2.66", + "chokidar": "^3.5.1" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@swc/cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@swc/cli/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@swc/core": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.25.tgz", + "integrity": "sha512-wqzvM/wu6OsTVYPMStOpm7kIQcPX3GoZ0sC85qzDdsCxmJ1rmItLAD91sXPUmmdk0XqPYjLgT9MRDEIP5woz4g==", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.25", + "@swc/core-darwin-x64": "1.3.25", + "@swc/core-linux-arm-gnueabihf": "1.3.25", + "@swc/core-linux-arm64-gnu": "1.3.25", + "@swc/core-linux-arm64-musl": "1.3.25", + "@swc/core-linux-x64-gnu": "1.3.25", + "@swc/core-linux-x64-musl": "1.3.25", + "@swc/core-win32-arm64-msvc": "1.3.25", + "@swc/core-win32-ia32-msvc": "1.3.25", + "@swc/core-win32-x64-msvc": "1.3.25" + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.25.tgz", + "integrity": "sha512-8PWAVcjTJyj2VrqPBFOIi2w2P0Z8kOCbzHW3+pe+bSXxfGMG0MKPl5U2IXhsEL0ovm4xSFlqW0yygpoP3MmRPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.25.tgz", + "integrity": "sha512-5DHGiMYFEj5aa208tCjo7Sn5tiG4xPz+4gUiWVlglxqXFptkNim5xu/1G6VYm5Zk7dI5jJkjTU76GQG7IRvPug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.25.tgz", + "integrity": "sha512-YNfLxv9PhZk+jrJbpR1mMrYBUkufo0hiFv3S1OrX3l8edsIP4wPND5w9ZH0Oi898f6Jg9DBrY2zXJMQ+gWkbvA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.25.tgz", + "integrity": "sha512-kS+spM5/xQ6QvWF1ms3byfjnhUlpjTfFwgCyHnIKgjvsYkDa+vkAIhKq6HuEdaTPaCRCjts0Zarhub1nClUU0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.25.tgz", + "integrity": "sha512-vM3D7LWmjotUAJ2D4F+L+dspFeWrcPNVh0o8TCoTOYCt8DPD5YsUKTpIgOsZ+gReeWUAnNTh0Btx5pGGVfajGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.25.tgz", + "integrity": "sha512-xUCLLMDlYa/zB8BftVa4SrxuVpcDxkltCfmBg5r2pZPVskhC5ZJsQZ/AvWNChoAB11shRhjTaWDlmxJEsa7TIg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.25.tgz", + "integrity": "sha512-QzHU3BIaUVRSFNsUn3Qxx1vgtF/f5NqsFMAAPSq9Y8Yq5nrlc2t7cNuOROxHLbUqE+NPUp6+RglleJMoeWz5mA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.25.tgz", + "integrity": "sha512-77VSVtneVOAUL4zkRyQZ6pWVpTsVVdqwly/DKnRnloglGKxYuk5DG5MUBsL72Nnfv4OCHjZ27eI3NUrpLsUb2Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.25.tgz", + "integrity": "sha512-kz0v3K3H6OPEZR3ry72Ad/6C5GrZBRRUk69K58LORQ8tZXQD3UGl85pUbQqyHl8fR5NU76Muxgovj9CI9iTHGA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.25.tgz", + "integrity": "sha512-nmQOAzIpNRRnupWzkenJmW4i+h1M76cVNUqEU2MjmtesEkRZEGqv//jefXiyCP2zcbeLNLKiB2ptVJhpd1BvRA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, "node_modules/@szmarczak/http-timer": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", @@ -1392,6 +1603,12 @@ "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", "dev": true }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, "node_modules/@types/json-schema": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", @@ -1895,28 +2112,6 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.3", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", @@ -2036,18 +2231,6 @@ "node": ">= 8" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -2161,12 +2344,6 @@ "node": ">=6" } }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3050,7 +3227,215 @@ "node": ">= 0.8" } }, - "node_modules/cacache": { + "node_modules/c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/c8/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" + } + }, + "node_modules/c8/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, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/c8/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" + } + }, + "node_modules/c8/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 + }, + "node_modules/c8/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, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/c8/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/c8/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/c8/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/c8/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/c8/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/c8/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/c8/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/c8/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/c8/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache": { "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", @@ -3141,54 +3526,6 @@ "node": ">=0.10.0" } }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/caching-transform/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" - } - }, - "node_modules/caching-transform/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/caching-transform/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/call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", @@ -3605,15 +3942,6 @@ "node": ">=0.10.0" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", @@ -3952,21 +4280,149 @@ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dev": true, + "dependencies": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" + } + }, + "node_modules/copyfiles/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" + } + }, + "node_modules/copyfiles/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, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/copyfiles/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" + } + }, + "node_modules/copyfiles/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 + }, + "node_modules/copyfiles/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copyfiles/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/copyfiles/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/copyfiles/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/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "node_modules/copyfiles/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, "node_modules/core-js": { @@ -4506,27 +4962,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-require-extensions/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/defer-to-connect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", @@ -5253,9 +5688,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" @@ -5979,6 +6414,80 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/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" + } + }, + "node_modules/fast-glob/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, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/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/fast-glob/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-glob/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/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -5991,6 +6500,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -6337,12 +6855,6 @@ "readable-stream": "^2.0.0" } }, - "node_modules/fromentries": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.1.tgz", - "integrity": "sha512-Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw==", - "dev": true - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -6433,15 +6945,6 @@ "node": "*" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-port": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", @@ -6945,37 +7448,6 @@ "minimalistic-assert": "^1.0.1" } }, - "node_modules/hasha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", - "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/hasha/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hasha/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/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -7550,12 +8022,6 @@ "node": ">=0.10.0" } }, - "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-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -7592,219 +8058,88 @@ "node_modules/isbinaryfile": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - } - }, - "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/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "node_modules/isomorphic-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/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/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/istanbul-lib-processinfo/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" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 8.0.0" } }, - "node_modules/istanbul-lib-processinfo/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "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/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-processinfo/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" } }, - "node_modules/istanbul-lib-processinfo/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/isomorphic-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/istanbul-lib-processinfo/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-processinfo/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, - "bin": { - "uuid": "bin/uuid" + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/istanbul-lib-processinfo/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/istanbul-lib-instrument/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, - "dependencies": { - "isexe": "^2.0.0" - }, "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "semver": "bin/semver.js" } }, "node_modules/istanbul-lib-report": { @@ -7898,9 +8233,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -8548,12 +8883,6 @@ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", "dev": true }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, "node_modules/lodash.isobject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", @@ -8904,6 +9233,15 @@ "node": ">=0.10.0" } }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -9678,18 +10016,6 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/node-releases": { "version": "1.1.59", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", @@ -9705,6 +10031,40 @@ "find-parent-dir": "^0.3.0" } }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, + "node_modules/noms/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -10130,203 +10490,25 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/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" - } - }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/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/nyc/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/nyc/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/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, "dependencies": { - "glob": "^7.1.3" + "path-key": "^2.0.0" }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/nyc/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" + "engines": { + "node": ">=4" } }, - "node_modules/nyc/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==", + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "engines": { "node": ">=0.10.0" @@ -10650,18 +10832,6 @@ "node": ">=6" } }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-timeout": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", @@ -10683,21 +10853,6 @@ "node": ">=6" } }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", @@ -10973,12 +11128,15 @@ "dev": true }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { @@ -11087,18 +11245,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -11341,6 +11487,26 @@ "node": ">=0.4.x" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -11694,18 +11860,6 @@ "jsesc": "bin/jsesc" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -11855,6 +12009,16 @@ "node": ">=0.12" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rfdc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.2.0.tgz", @@ -11912,6 +12076,29 @@ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "dev": true }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -12004,10 +12191,13 @@ } }, "node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" }, @@ -12072,6 +12262,24 @@ "semver": "bin/semver" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/sentence-case": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.3.tgz", @@ -12235,6 +12443,15 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -12606,71 +12823,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/spawn-wrap/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" - } - }, - "node_modules/spawn-wrap/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/spawn-wrap/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/spawn-wrap/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/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -13453,15 +13605,6 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "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/typescript": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", @@ -13645,6 +13788,15 @@ "node": ">=0.10.0" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", @@ -13819,6 +13971,20 @@ "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -15683,6 +15849,12 @@ "to-fast-properties": "^2.0.0" } }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "@chiragrupani/karma-chromium-edge-launcher": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/@chiragrupani/karma-chromium-edge-launcher/-/karma-chromium-edge-launcher-2.2.2.tgz", @@ -15709,77 +15881,16 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "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 - } - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -15789,16 +15900,21 @@ "sprintf-js": "~1.0.2" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "type-fest": "^0.8.1" } }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -15809,44 +15925,48 @@ "esprima": "^4.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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==", + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "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 } } }, "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, "@jsdevtools/coverage-istanbul-loader": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", @@ -15920,6 +16040,32 @@ "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, "@qawolf/ci-info": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@qawolf/ci-info/-/ci-info-2.1.0.tgz", @@ -15932,6 +16078,122 @@ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", "dev": true }, + "@swc/cli": { + "version": "0.1.59", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.1.59.tgz", + "integrity": "sha512-BlX3wIxYTwdtR22dIqZ3FEIOJPqnlByAp4JY46OMZi2UXMB3ZbOzefawD2ZlLafRUWyy5NtiZZty5waKzaYRnA==", + "dev": true, + "requires": { + "bin-wrapper": "^4.1.0", + "commander": "^7.1.0", + "fast-glob": "^3.2.5", + "semver": "^7.3.8", + "slash": "3.0.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + } + } + }, + "@swc/core": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.25.tgz", + "integrity": "sha512-wqzvM/wu6OsTVYPMStOpm7kIQcPX3GoZ0sC85qzDdsCxmJ1rmItLAD91sXPUmmdk0XqPYjLgT9MRDEIP5woz4g==", + "dev": true, + "requires": { + "@swc/core-darwin-arm64": "1.3.25", + "@swc/core-darwin-x64": "1.3.25", + "@swc/core-linux-arm-gnueabihf": "1.3.25", + "@swc/core-linux-arm64-gnu": "1.3.25", + "@swc/core-linux-arm64-musl": "1.3.25", + "@swc/core-linux-x64-gnu": "1.3.25", + "@swc/core-linux-x64-musl": "1.3.25", + "@swc/core-win32-arm64-msvc": "1.3.25", + "@swc/core-win32-ia32-msvc": "1.3.25", + "@swc/core-win32-x64-msvc": "1.3.25" + } + }, + "@swc/core-darwin-arm64": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.25.tgz", + "integrity": "sha512-8PWAVcjTJyj2VrqPBFOIi2w2P0Z8kOCbzHW3+pe+bSXxfGMG0MKPl5U2IXhsEL0ovm4xSFlqW0yygpoP3MmRPw==", + "dev": true, + "optional": true + }, + "@swc/core-darwin-x64": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.25.tgz", + "integrity": "sha512-5DHGiMYFEj5aa208tCjo7Sn5tiG4xPz+4gUiWVlglxqXFptkNim5xu/1G6VYm5Zk7dI5jJkjTU76GQG7IRvPug==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.25.tgz", + "integrity": "sha512-YNfLxv9PhZk+jrJbpR1mMrYBUkufo0hiFv3S1OrX3l8edsIP4wPND5w9ZH0Oi898f6Jg9DBrY2zXJMQ+gWkbvA==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.25.tgz", + "integrity": "sha512-kS+spM5/xQ6QvWF1ms3byfjnhUlpjTfFwgCyHnIKgjvsYkDa+vkAIhKq6HuEdaTPaCRCjts0Zarhub1nClUU0g==", + "dev": true, + "optional": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.25.tgz", + "integrity": "sha512-vM3D7LWmjotUAJ2D4F+L+dspFeWrcPNVh0o8TCoTOYCt8DPD5YsUKTpIgOsZ+gReeWUAnNTh0Btx5pGGVfajGA==", + "dev": true, + "optional": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.25.tgz", + "integrity": "sha512-xUCLLMDlYa/zB8BftVa4SrxuVpcDxkltCfmBg5r2pZPVskhC5ZJsQZ/AvWNChoAB11shRhjTaWDlmxJEsa7TIg==", + "dev": true, + "optional": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.25.tgz", + "integrity": "sha512-QzHU3BIaUVRSFNsUn3Qxx1vgtF/f5NqsFMAAPSq9Y8Yq5nrlc2t7cNuOROxHLbUqE+NPUp6+RglleJMoeWz5mA==", + "dev": true, + "optional": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.25.tgz", + "integrity": "sha512-77VSVtneVOAUL4zkRyQZ6pWVpTsVVdqwly/DKnRnloglGKxYuk5DG5MUBsL72Nnfv4OCHjZ27eI3NUrpLsUb2Q==", + "dev": true, + "optional": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.25.tgz", + "integrity": "sha512-kz0v3K3H6OPEZR3ry72Ad/6C5GrZBRRUk69K58LORQ8tZXQD3UGl85pUbQqyHl8fR5NU76Muxgovj9CI9iTHGA==", + "dev": true, + "optional": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.25.tgz", + "integrity": "sha512-nmQOAzIpNRRnupWzkenJmW4i+h1M76cVNUqEU2MjmtesEkRZEGqv//jefXiyCP2zcbeLNLKiB2ptVJhpd1BvRA==", + "dev": true, + "optional": true + }, "@szmarczak/http-timer": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", @@ -15971,6 +16233,12 @@ "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", "dev": true }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, "@types/json-schema": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", @@ -16416,24 +16684,6 @@ "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", "dev": true }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - } - } - }, "ajv": { "version": "6.12.3", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", @@ -16531,15 +16781,6 @@ "picomatch": "^2.0.4" } }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -16639,12 +16880,6 @@ "readable-stream": "^2.0.0" } }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -17408,6 +17643,153 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, + "c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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" + } + }, + "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": { + "yocto-queue": "^0.1.0" + } + }, + "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" + } + }, + "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 + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "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.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, "cacache": { "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", @@ -17494,47 +17876,6 @@ } } }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "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, - "requires": { - "semver": "^6.0.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 - }, - "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, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", @@ -17871,12 +18212,6 @@ } } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", @@ -18178,6 +18513,102 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dev": true, + "requires": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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 + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "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" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "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.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, "core-js": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", @@ -18624,23 +19055,6 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } - } - }, "defer-to-connect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", @@ -19279,9 +19693,9 @@ "dev": true }, "escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-html": { @@ -19851,6 +20265,64 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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 + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "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, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -19863,6 +20335,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -20145,12 +20626,6 @@ "readable-stream": "^2.0.0" } }, - "fromentries": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.1.tgz", - "integrity": "sha512-Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw==", - "dev": true - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -20223,12 +20698,6 @@ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, "get-port": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", @@ -20639,30 +21108,6 @@ "minimalistic-assert": "^1.0.1" } }, - "hasha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", - "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "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 - } - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -21135,12 +21580,6 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "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-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -21208,20 +21647,11 @@ } }, "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, "istanbul-lib-instrument": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", @@ -21233,100 +21663,12 @@ "istanbul-lib-coverage": "^3.0.0", "semver": "^6.3.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 - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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, - "requires": { - "semver": "^6.0.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "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 - }, - "which": { - "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" - } } } }, @@ -21401,9 +21743,9 @@ } }, "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -21938,12 +22280,6 @@ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", "dev": true }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, "lodash.isobject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", @@ -22241,6 +22577,12 @@ } } }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -22881,15 +23223,6 @@ } } }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, "node-releases": { "version": "1.1.59", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", @@ -22905,6 +23238,42 @@ "find-parent-dir": "^0.3.0" } }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + } + } + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -23263,144 +23632,6 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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, - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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 - } - } - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -23645,15 +23876,6 @@ "p-limit": "^2.0.0" } }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-timeout": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", @@ -23669,18 +23891,6 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", @@ -23913,9 +24123,9 @@ "dev": true }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { @@ -23997,15 +24207,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -24212,6 +24413,12 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -24509,15 +24716,6 @@ } } }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -24645,6 +24843,12 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rfdc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.2.0.tgz", @@ -24698,6 +24902,15 @@ } } }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -24780,10 +24993,30 @@ } }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } }, "semver-compare": { "version": "1.0.0", @@ -24963,6 +25196,12 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -25297,55 +25536,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "dependencies": { - "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, - "requires": { - "semver": "^6.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "which": { - "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" - } - } - } - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -25998,15 +26188,6 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "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": { - "is-typedarray": "^1.0.0" - } - }, "typescript": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", @@ -26148,6 +26329,12 @@ } } }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", @@ -26300,6 +26487,17 @@ "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/package.json b/package.json index 66200932..22e139a4 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,11 @@ "funding": "https://github.com/sponsors/philsturgeon", "main": "lib/index.js", "typings": "lib/index.d.ts", + "exports": { + "types": "./lib/index.d.ts", + "require": "./cjs/index.js", + "default": "./lib/index.js" + }, "browser": { "fs": false }, @@ -46,18 +51,22 @@ "node": ">= 17" }, "files": [ - "lib" + "lib", + "cjs" ], + "type": "module", "scripts": { - "build": "cp LICENSE *.md dist", - "clean": "shx rm -rf .nyc_output coverage", + "build": "npm run build:cjs && npm run build:dist", + "build:cjs": "swc ./lib/*.js -d ./cjs && swc ./lib/**/*.js -d ./cjs && copyfiles ./lib/**/*.cjs -u 1 ./cjs && node ./scripts/writeCJSPackageJSON.cjs", + "build:dist": "cp LICENSE *.md dist", + "clean": "shx rm -rf coverage cjs", "lint": "eslint lib test/fixtures test/specs", "test": "npm run test:node && npm run test:typescript && npm run test:browser && npm run lint", "test:node": "mocha", - "test:browser": "cross-env NODE_OPTIONS=--openssl-legacy-provider karma start --single-run", + "test:browser": "cross-env NODE_OPTIONS=--openssl-legacy-provider karma start karma.conf.cjs --single-run", "test:typescript": "tsc --noEmit --strict --lib esnext,dom test/specs/typescript-definition.spec.ts", "coverage": "npm run coverage:node && npm run coverage:browser", - "coverage:node": "nyc node_modules/mocha/bin/mocha", + "coverage:node": "c8 node_modules/mocha/bin/mocha", "coverage:browser": "npm run test:browser -- --coverage", "upgrade": "npm-check -u && npm audit fix" }, @@ -67,10 +76,14 @@ "@jsdevtools/eslint-config": "^1.0.7", "@jsdevtools/host-environment": "^2.1.2", "@jsdevtools/karma-config": "^3.1.7", + "@swc/cli": "^0.1.59", + "@swc/core": "^1.3.25", "@types/node": "^14.14.21", + "c8": "^7.12.0", "chai": "^4.2.0", "chai-subset": "^1.6.0", "chokidar": "^3.5.3", + "copyfiles": "^2.4.1", "cross-env": "^7.0.3", "eslint": "^7.18.0", "isomorphic-fetch": "^3.0.0", @@ -79,7 +92,6 @@ "mocha": "^8.2.1", "node-abort-controller": "^3.0.1", "npm-check": "^5.9.0", - "nyc": "^15.0.1", "semantic-release-plugin-update-version-in-files": "^1.1.0", "shx": "^0.3.2", "typescript": "^4.0.5" diff --git a/scripts/writeCJSPackageJSON.cjs b/scripts/writeCJSPackageJSON.cjs new file mode 100644 index 00000000..893c80aa --- /dev/null +++ b/scripts/writeCJSPackageJSON.cjs @@ -0,0 +1,7 @@ +const { mkdirSync, writeFileSync } = require("fs"); +const { resolve } = require("path"); + +mkdirSync(resolve(__dirname, "../cjs"), { recursive: true }); + +const data = JSON.stringify({ type: "commonjs" }, null, " ") +writeFileSync(resolve(__dirname, "../cjs/package.json"), data, { encoding: "utf-8" }); diff --git a/test/fixtures/mocha.js b/test/fixtures/mocha.js index 2d9625c6..5e758542 100644 --- a/test/fixtures/mocha.js +++ b/test/fixtures/mocha.js @@ -1,5 +1,3 @@ -"use strict"; - const { host } = require("@jsdevtools/host-environment"); // Mocha configuration diff --git a/test/fixtures/polyfill.js b/test/fixtures/polyfill.js index ec7d1ee9..a252eec7 100644 --- a/test/fixtures/polyfill.js +++ b/test/fixtures/polyfill.js @@ -1,6 +1,4 @@ -"use strict"; - -const { host } = require("@jsdevtools/host-environment"); +import { host } from "@jsdevtools/host-environment"; // Load the Babel Polyfills for old browsers. // NOTE: It's important that we ONLY do this when needed, diff --git a/test/specs/__({[ % & $ # @ ` ~ ,)}]__/dereferenced.js b/test/specs/__({[ % & $ # @ ` ~ ,)}]__/dereferenced.js index c011e237..f1bd33b5 100644 --- a/test/specs/__({[ % & $ # @ ` ~ ,)}]__/dereferenced.js +++ b/test/specs/__({[ % & $ # @ ` ~ ,)}]__/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { definitions: { foo: { type: "object", diff --git a/test/specs/__({[ % & $ # @ ` ~ ,)}]__/parsed.js b/test/specs/__({[ % & $ # @ ` ~ ,)}]__/parsed.js index 61153c01..327c1a50 100644 --- a/test/specs/__({[ % & $ # @ ` ~ ,)}]__/parsed.js +++ b/test/specs/__({[ % & $ # @ ` ~ ,)}]__/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { definitions: { foo: { diff --git a/test/specs/__({[ % & $ # @ ` ~ ,)}]__/special-characters.spec.js b/test/specs/__({[ % & $ # @ ` ~ ,)}]__/special-characters.spec.js index cf5f83c6..b59c4afa 100644 --- a/test/specs/__({[ % & $ # @ ` ~ ,)}]__/special-characters.spec.js +++ b/test/specs/__({[ % & $ # @ ` ~ ,)}]__/special-characters.spec.js @@ -1,11 +1,11 @@ -"use strict"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import chai from "chai"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const { expect } = require("chai"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); +const { expect } = chai; describe("File names with special characters", () => { it("should parse successfully", async () => { diff --git a/test/specs/absolute-root/absolute-root.spec.js b/test/specs/absolute-root/absolute-root.spec.js index 45541690..7380081a 100644 --- a/test/specs/absolute-root/absolute-root.spec.js +++ b/test/specs/absolute-root/absolute-root.spec.js @@ -1,14 +1,15 @@ -"use strict"; +import chai from "chai"; +import { resolve } from "path"; +import $RefParser from "../../../lib/index.js"; +import path from "../../utils/path.js"; +import helper from "../../utils/helper.js"; +import * as urlModule from "../../../lib/util/url.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const { resolve } = require("path"); -const $RefParser = require("../../.."); -const path = require("../../utils/path"); -const helper = require("../../utils/helper"); -const url = require("../../../lib/util/url"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; +const url = { cwd: urlModule.cwd }; describe("When executed in the context of root directory", () => { // Store the OS root directory diff --git a/test/specs/absolute-root/bundled.js b/test/specs/absolute-root/bundled.js index db7919ec..33e08de9 100644 --- a/test/specs/absolute-root/bundled.js +++ b/test/specs/absolute-root/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/absolute-root/dereferenced.js b/test/specs/absolute-root/dereferenced.js index d82f1ca5..1237ce69 100644 --- a/test/specs/absolute-root/dereferenced.js +++ b/test/specs/absolute-root/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/absolute-root/parsed.js b/test/specs/absolute-root/parsed.js index d6c1349f..c5a664f1 100644 --- a/test/specs/absolute-root/parsed.js +++ b/test/specs/absolute-root/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { definitions: { $ref: "definitions/definitions.json" diff --git a/test/specs/blank/blank.spec.js b/test/specs/blank/blank.spec.js index a8f59a14..1388e49e 100644 --- a/test/specs/blank/blank.spec.js +++ b/test/specs/blank/blank.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import { host } from "@jsdevtools/host-environment"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; -const { host } = require("@jsdevtools/host-environment"); -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); +const { expect } = chai; describe("Blank files", () => { let windowOnError, testDone; diff --git a/test/specs/blank/dereferenced.js b/test/specs/blank/dereferenced.js index 6dc06e5c..4f1e934a 100644 --- a/test/specs/blank/dereferenced.js +++ b/test/specs/blank/dereferenced.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { json: undefined, yaml: undefined, text: "", diff --git a/test/specs/blank/parsed.js b/test/specs/blank/parsed.js index d55e6748..3a27353c 100644 --- a/test/specs/blank/parsed.js +++ b/test/specs/blank/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { yaml: { $ref: "files/blank.yaml" diff --git a/test/specs/callbacks.spec.js b/test/specs/callbacks.spec.js index ecd43ebb..cf4d0aa3 100644 --- a/test/specs/callbacks.spec.js +++ b/test/specs/callbacks.spec.js @@ -1,10 +1,10 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../lib/index.js"; +import helper from "../utils/helper.js"; +import path from "../utils/path.js"; +import { ParserError } from "../../lib/util/errors.js"; -const { expect } = require("chai"); -const $RefParser = require("../../lib"); -const helper = require("../utils/helper"); -const path = require("../utils/path"); -const { ParserError } = require("../../lib/util/errors"); +const { expect } = chai; describe("Callback & Promise syntax", () => { for (let method of ["parse", "resolve", "dereference", "bundle"]) { diff --git a/test/specs/circular-extended/bundled.js b/test/specs/circular-extended/bundled.js index 77352209..504f56a1 100644 --- a/test/specs/circular-extended/bundled.js +++ b/test/specs/circular-extended/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -const bundledSchema = module.exports = -{ +const bundledSchema = { self: { definitions: { thing: { @@ -139,3 +136,5 @@ bundledSchema.ancestor.definitions.pet = bundledSchema.indirect.definitions.pet = bundledSchema.indirectAncestor.definitions.pet = bundledSchema.pet; + +export default bundledSchema; diff --git a/test/specs/circular-extended/circular-extended.spec.js b/test/specs/circular-extended/circular-extended.spec.js index 14d8fd12..4fda375e 100644 --- a/test/specs/circular-extended/circular-extended.spec.js +++ b/test/specs/circular-extended/circular-extended.spec.js @@ -1,12 +1,12 @@ -"use strict"; - -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; + +const { expect } = chai; describe("Schema with circular $refs that extend each other", () => { describe("$ref to self", () => { diff --git a/test/specs/circular-extended/dereferenced.js b/test/specs/circular-extended/dereferenced.js index 527b1a75..32867989 100644 --- a/test/specs/circular-extended/dereferenced.js +++ b/test/specs/circular-extended/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -const dereferencedSchema = module.exports = -{ +const dereferencedSchema = { self: { definitions: { thing: { @@ -211,3 +208,5 @@ dereferencedSchema.indirectAncestor.fullyDereferenced.definitions.parent.propert dereferencedSchema.indirectAncestor.fullyDereferenced.definitions.child.properties.children.items.properties = dereferencedSchema.indirectAncestor.fullyDereferenced.definitions.child.properties; + +export default dereferencedSchema; diff --git a/test/specs/circular-extended/parsed.js b/test/specs/circular-extended/parsed.js index e9054c2c..dc5740e0 100644 --- a/test/specs/circular-extended/parsed.js +++ b/test/specs/circular-extended/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { self: { definitions: { thing: { diff --git a/test/specs/circular-external-direct/circular-external-direct.spec.js b/test/specs/circular-external-direct/circular-external-direct.spec.js index 408ec73f..8b6ab881 100644 --- a/test/specs/circular-external-direct/circular-external-direct.spec.js +++ b/test/specs/circular-external-direct/circular-external-direct.spec.js @@ -1,13 +1,11 @@ -"use strict"; - -const chai = require("chai"); -const chaiSubset = require("chai-subset"); +import chai from "chai"; +import chaiSubset from "chai-subset"; chai.use(chaiSubset); const { expect } = chai; -const $RefParser = require("../../../lib"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); +import $RefParser from "../../../lib/index.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; describe("Schema with direct circular (recursive) external $refs", () => { it("should parse successfully", async () => { diff --git a/test/specs/circular-external-direct/dereferenced.js b/test/specs/circular-external-direct/dereferenced.js index 30ac5ddc..7ce003ec 100644 --- a/test/specs/circular-external-direct/dereferenced.js +++ b/test/specs/circular-external-direct/dereferenced.js @@ -1,6 +1,3 @@ -"use strict"; - -module.exports = - { - $ref: "./circular-external-direct-root.yaml#/foo", - }; +export default { + $ref: "./circular-external-direct-root.yaml#/foo", +}; diff --git a/test/specs/circular-external-direct/parsed.js b/test/specs/circular-external-direct/parsed.js index 8ffbbd6e..77460912 100644 --- a/test/specs/circular-external-direct/parsed.js +++ b/test/specs/circular-external-direct/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { $ref: "./circular-external-direct-child.yaml#/foo", }, diff --git a/test/specs/circular-external/bundled.js b/test/specs/circular-external/bundled.js index 39ec2ca9..492d1a2b 100644 --- a/test/specs/circular-external/bundled.js +++ b/test/specs/circular-external/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { definitions: { pet: { title: "pet", diff --git a/test/specs/circular-external/circular-external.spec.js b/test/specs/circular-external/circular-external.spec.js index bf60c30f..d84418c9 100644 --- a/test/specs/circular-external/circular-external.spec.js +++ b/test/specs/circular-external/circular-external.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with circular (recursive) external $refs", () => { it("should parse successfully", async () => { diff --git a/test/specs/circular-external/dereferenced.js b/test/specs/circular-external/dereferenced.js index 5d952c5d..4fa347de 100644 --- a/test/specs/circular-external/dereferenced.js +++ b/test/specs/circular-external/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -const dereferencedSchema = module.exports = -{ +const dereferencedSchema = { definitions: { pet: { title: "pet", @@ -69,3 +66,5 @@ const dereferencedSchema = module.exports = dereferencedSchema.definitions.person.properties.spouse = dereferencedSchema.definitions.person; dereferencedSchema.definitions.parent.properties.children.items = dereferencedSchema.definitions.child; dereferencedSchema.definitions.child.properties.parents.items = dereferencedSchema.definitions.parent; + +export default dereferencedSchema; diff --git a/test/specs/circular-external/parsed.js b/test/specs/circular-external/parsed.js index b9367703..e8a99c77 100644 --- a/test/specs/circular-external/parsed.js +++ b/test/specs/circular-external/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { definitions: { pet: { diff --git a/test/specs/circular-multi/bundled.js b/test/specs/circular-multi/bundled.js index 780ce18d..56c8e798 100644 --- a/test/specs/circular-multi/bundled.js +++ b/test/specs/circular-multi/bundled.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { $schema: "http://json-schema.org/draft-07/schema#", properties: { actions: { diff --git a/test/specs/circular-multi/circular-multi.spec.js b/test/specs/circular-multi/circular-multi.spec.js index f7889693..e215fb04 100644 --- a/test/specs/circular-multi/circular-multi.spec.js +++ b/test/specs/circular-multi/circular-multi.spec.js @@ -1,9 +1,9 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import path from "../../utils/path.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const path = require("../../utils/path"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("multiple circular $refs at the same depth in the schema", () => { it("should bundle successfully", async () => { diff --git a/test/specs/circular/circular.spec.js b/test/specs/circular/circular.spec.js index 2ba5b886..b6ebc81f 100644 --- a/test/specs/circular/circular.spec.js +++ b/test/specs/circular/circular.spec.js @@ -1,11 +1,11 @@ -"use strict"; - -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; + +const { expect } = chai; describe("Schema with circular (recursive) $refs", () => { describe("$ref to self", () => { diff --git a/test/specs/circular/dereferenced.js b/test/specs/circular/dereferenced.js index 519893dc..f77e47ce 100644 --- a/test/specs/circular/dereferenced.js +++ b/test/specs/circular/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -const dereferencedSchema = module.exports = -{ +const dereferencedSchema = { self: { definitions: { pet: { @@ -388,3 +385,5 @@ dereferencedSchema.indirectAncestor.fullyDereferenced.definitions.child.properti dereferencedSchema.indirectAncestor.ignoreCircular$Refs.definitions.child.properties.pet = dereferencedSchema.indirectAncestor.ignoreCircular$Refs.definitions.pet; + +export default dereferencedSchema; diff --git a/test/specs/circular/parsed.js b/test/specs/circular/parsed.js index fff22719..9fe14037 100644 --- a/test/specs/circular/parsed.js +++ b/test/specs/circular/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { self: { definitions: { pet: { diff --git a/test/specs/date-strings/date-strings.spec.js b/test/specs/date-strings/date-strings.spec.js index 7de4acce..244ecfd1 100644 --- a/test/specs/date-strings/date-strings.spec.js +++ b/test/specs/date-strings/date-strings.spec.js @@ -1,10 +1,10 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); +const { expect } = chai; describe("Schema with date strings", () => { it("should parse successfully", async () => { diff --git a/test/specs/date-strings/parsed.js b/test/specs/date-strings/parsed.js index c9228a93..3cd46b9f 100644 --- a/test/specs/date-strings/parsed.js +++ b/test/specs/date-strings/parsed.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { schema: { title: "Date Strings", type: "object", diff --git a/test/specs/deep-circular/bundled.js b/test/specs/deep-circular/bundled.js index d1ba471d..297505a1 100644 --- a/test/specs/deep-circular/bundled.js +++ b/test/specs/deep-circular/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Deep Schema", type: "object", definitions: { diff --git a/test/specs/deep-circular/deep-circular.spec.js b/test/specs/deep-circular/deep-circular.spec.js index 00ae32bb..061ce178 100644 --- a/test/specs/deep-circular/deep-circular.spec.js +++ b/test/specs/deep-circular/deep-circular.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with deeply-nested circular $refs", () => { it("should parse successfully", async () => { diff --git a/test/specs/deep-circular/dereferenced.js b/test/specs/deep-circular/dereferenced.js index 1da07d24..7a4a62de 100644 --- a/test/specs/deep-circular/dereferenced.js +++ b/test/specs/deep-circular/dereferenced.js @@ -1,5 +1,3 @@ -"use strict"; - let name = { required: [ "first", @@ -36,8 +34,7 @@ let name = { title: "name" }; -const dereferencedSchema = module.exports = -{ +const dereferencedSchema = { title: "Deep Schema", type: "object", definitions: { @@ -340,3 +337,5 @@ dereferencedSchema .properties.level28 .properties.level29 .properties.level30 = dereferencedSchema; + +export default dereferencedSchema; diff --git a/test/specs/deep-circular/parsed.js b/test/specs/deep-circular/parsed.js index 7c4d7186..75edc598 100644 --- a/test/specs/deep-circular/parsed.js +++ b/test/specs/deep-circular/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { title: "Deep Schema", definitions: { diff --git a/test/specs/deep-external/bundled.js b/test/specs/deep-external/bundled.js index 08adc6da..0e9ecb96 100644 --- a/test/specs/deep-external/bundled.js +++ b/test/specs/deep-external/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { info: { title: "Main" }, diff --git a/test/specs/deep-external/deep.spec.js b/test/specs/deep-external/deep.spec.js index 6b706022..a61e5ca2 100644 --- a/test/specs/deep-external/deep.spec.js +++ b/test/specs/deep-external/deep.spec.js @@ -1,10 +1,9 @@ -"use strict"; - -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const path = require("../../utils/path"); -const bundledSchema = require("./bundled"); +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import path from "../../utils/path.js"; +import bundledSchema from "./bundled.js"; +const { expect } = chai; describe("Schema with deeply-nested external $refs", () => { it("should bundle successfully", async () => { diff --git a/test/specs/deep-internal/bundled.js b/test/specs/deep-internal/bundled.js index e14d5013..860a75a4 100644 --- a/test/specs/deep-internal/bundled.js +++ b/test/specs/deep-internal/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { info: { title: "Main" }, diff --git a/test/specs/deep-internal/deep.spec.js b/test/specs/deep-internal/deep.spec.js index 0e744cfc..e34a483b 100644 --- a/test/specs/deep-internal/deep.spec.js +++ b/test/specs/deep-internal/deep.spec.js @@ -1,9 +1,9 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import path from "../../utils/path.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const path = require("../../utils/path"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with deeply-nested internal $refs", () => { it("should bundle successfully", async () => { diff --git a/test/specs/deep/bundled.js b/test/specs/deep/bundled.js index b47d6922..1aedcc66 100644 --- a/test/specs/deep/bundled.js +++ b/test/specs/deep/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { type: "object", properties: { "level 1": { diff --git a/test/specs/deep/deep.spec.js b/test/specs/deep/deep.spec.js index 30d9ac60..3dcd3f26 100644 --- a/test/specs/deep/deep.spec.js +++ b/test/specs/deep/deep.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with deeply-nested $refs", () => { it("should parse successfully", async () => { diff --git a/test/specs/deep/dereferenced.js b/test/specs/deep/dereferenced.js index 59035087..a8b93f01 100644 --- a/test/specs/deep/dereferenced.js +++ b/test/specs/deep/dereferenced.js @@ -1,5 +1,3 @@ -"use strict"; - let name = { required: [ "first", @@ -36,8 +34,7 @@ let name = { title: "name" }; -module.exports = -{ +export default { type: "object", properties: { "level 1": { diff --git a/test/specs/deep/parsed.js b/test/specs/deep/parsed.js index 24218bb2..f48b0877 100644 --- a/test/specs/deep/parsed.js +++ b/test/specs/deep/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { type: "object", properties: { diff --git a/test/specs/dereference-callback/dereference-callback.spec.js b/test/specs/dereference-callback/dereference-callback.spec.js index b73585ef..6678f270 100644 --- a/test/specs/dereference-callback/dereference-callback.spec.js +++ b/test/specs/dereference-callback/dereference-callback.spec.js @@ -1,15 +1,15 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import pathUtils from "../../utils/path.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const { rel } = require("../../utils/path"); +const { expect } = chai; describe("Schema with a $ref", () => { it("should call onDereference", async () => { let parser = new $RefParser(); const calls = []; await parser.dereference( - rel("specs/dereference-callback/dereference-callback.yaml"), + pathUtils.rel("specs/dereference-callback/dereference-callback.yaml"), { dereference: { onDereference (path, object) { diff --git a/test/specs/empty/empty.spec.js b/test/specs/empty/empty.spec.js index f3815726..d7914c27 100644 --- a/test/specs/empty/empty.spec.js +++ b/test/specs/empty/empty.spec.js @@ -1,9 +1,9 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; -const { expect } = require("chai"); -const $RefParser = require("../../../lib"); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); +const { expect } = chai; describe("Empty schema", () => { it("should parse successfully", async () => { diff --git a/test/specs/error-source/error-source.spec.js b/test/specs/error-source/error-source.spec.js index 4315c8bf..2959c60a 100644 --- a/test/specs/error-source/error-source.spec.js +++ b/test/specs/error-source/error-source.spec.js @@ -1,14 +1,12 @@ -"use strict"; - -const chai = require("chai"); -const chaiSubset = require("chai-subset"); +import chai from "chai"; +import chaiSubset from "chai-subset"; chai.use(chaiSubset); const { expect } = chai; -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const { InvalidPointerError, ResolverError, MissingPointerError } = require("../../../lib/util/errors"); +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import { InvalidPointerError, ResolverError, MissingPointerError } from "../../../lib/util/errors.js"; describe("Report correct error source and path for", () => { diff --git a/test/specs/exports.spec.js b/test/specs/exports.spec.js index 1c87693d..da6aa0b4 100644 --- a/test/specs/exports.spec.js +++ b/test/specs/exports.spec.js @@ -1,18 +1,19 @@ /* eslint-disable require-await */ -"use strict"; - -const { expect } = require("chai"); -const commonJSExport = require("../../"); -const { default: defaultExport } = require("../../"); -const { +import chai from "chai"; +import defaultExport from "../../lib/index.js"; +import * as namespaceExport from "../../lib/index.js"; +import { default as namedDefaultExport } from "../../lib/index.js"; +import { JSONParserError, InvalidPointerError, MissingPointerError, ResolverError, ParserError, UnmatchedParserError, - UnmatchedResolverError, -} = require("../../"); + UnmatchedResolverError +} from "../../lib/index.js"; + +const { expect } = chai; describe("json-schema-ref-parser package exports", () => { @@ -29,14 +30,18 @@ describe("json-schema-ref-parser package exports", () => { return true; } - it("should export the $RefParser class as the default CommonJS export", async () => { - expect(commonJSExport).to.satisfy(is$RefParser); - }); + // it("should export the $RefParser class as the default CommonJS export", async () => { + // expect(commonJSExport).to.satisfy(is$RefParser); + // }); it("should export the $RefParser class as the default ESM export", async () => { expect(defaultExport).to.satisfy(is$RefParser); }); + it("should export the $RefParser class as the named default ESM export", async () => { + expect(namedDefaultExport).to.satisfy(is$RefParser); + }); + it("should export the JSONParserError class as a named ESM export", async () => { expect(JSONParserError).to.be.a("function"); expect(JSONParserError.name).to.equal("JSONParserError"); @@ -73,7 +78,7 @@ describe("json-schema-ref-parser package exports", () => { }); it("should not export anything else", async () => { - expect(commonJSExport).to.have.same.keys( + expect(namespaceExport).to.have.same.keys( "default", "parse", "resolve", diff --git a/test/specs/external-from-internal/bundled.js b/test/specs/external-from-internal/bundled.js index 9b8caa3e..4fb750e6 100644 --- a/test/specs/external-from-internal/bundled.js +++ b/test/specs/external-from-internal/bundled.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { internal1: { $ref: "#/external1" }, diff --git a/test/specs/external-from-internal/dereferenced.js b/test/specs/external-from-internal/dereferenced.js index edf7d382..7cae505e 100644 --- a/test/specs/external-from-internal/dereferenced.js +++ b/test/specs/external-from-internal/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { internal1: { test: { type: "string" diff --git a/test/specs/external-from-internal/external-from-internal.spec.js b/test/specs/external-from-internal/external-from-internal.spec.js index 75a36d22..01969534 100644 --- a/test/specs/external-from-internal/external-from-internal.spec.js +++ b/test/specs/external-from-internal/external-from-internal.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; /** * This test is from PR #62 diff --git a/test/specs/external-from-internal/parsed.js b/test/specs/external-from-internal/parsed.js index f4553079..1559f800 100644 --- a/test/specs/external-from-internal/parsed.js +++ b/test/specs/external-from-internal/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { internal1: { $ref: "#/internal2" diff --git a/test/specs/external-multiple/bundled.js b/test/specs/external-multiple/bundled.js index 782dd3dd..8f3bfa8d 100644 --- a/test/specs/external-multiple/bundled.js +++ b/test/specs/external-multiple/bundled.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { type: "object", required: ["user", "token"], properties: { diff --git a/test/specs/external-multiple/dereferenced.js b/test/specs/external-multiple/dereferenced.js index d2bcf464..a142cf55 100644 --- a/test/specs/external-multiple/dereferenced.js +++ b/test/specs/external-multiple/dereferenced.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { type: "object", required: ["user", "token"], properties: { diff --git a/test/specs/external-multiple/external-multiple.spec.js b/test/specs/external-multiple/external-multiple.spec.js index bbefe176..fce4fe6e 100644 --- a/test/specs/external-multiple/external-multiple.spec.js +++ b/test/specs/external-multiple/external-multiple.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with multiple external $refs to different parts of a file", () => { it("should parse successfully", async () => { diff --git a/test/specs/external-multiple/parsed.js b/test/specs/external-multiple/parsed.js index 29bafd16..52f5b3b0 100644 --- a/test/specs/external-multiple/parsed.js +++ b/test/specs/external-multiple/parsed.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { schema: { type: "object", required: ["user", "token"], diff --git a/test/specs/external-partial/bundled.js b/test/specs/external-partial/bundled.js index 93e97832..ab847be2 100644 --- a/test/specs/external-partial/bundled.js +++ b/test/specs/external-partial/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/external-partial/dereferenced.js b/test/specs/external-partial/dereferenced.js index e56ea468..0ebe4312 100644 --- a/test/specs/external-partial/dereferenced.js +++ b/test/specs/external-partial/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/external-partial/external-partial.spec.js b/test/specs/external-partial/external-partial.spec.js index 2ab233b4..d3859665 100644 --- a/test/specs/external-partial/external-partial.spec.js +++ b/test/specs/external-partial/external-partial.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with $refs to parts of external files", () => { it("should parse successfully", async () => { diff --git a/test/specs/external-partial/parsed.js b/test/specs/external-partial/parsed.js index e3043c06..82bf923c 100644 --- a/test/specs/external-partial/parsed.js +++ b/test/specs/external-partial/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { required: [ "name" diff --git a/test/specs/external/bundled.js b/test/specs/external/bundled.js index db7919ec..33e08de9 100644 --- a/test/specs/external/bundled.js +++ b/test/specs/external/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/external/dereferenced.js b/test/specs/external/dereferenced.js index d82f1ca5..1237ce69 100644 --- a/test/specs/external/dereferenced.js +++ b/test/specs/external/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/external/external.spec.js b/test/specs/external/external.spec.js index f1a8ec4b..faf28429 100644 --- a/test/specs/external/external.spec.js +++ b/test/specs/external/external.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with external $refs", () => { it("should parse successfully from an absolute path", async () => { diff --git a/test/specs/external/parsed.js b/test/specs/external/parsed.js index d6c1349f..c5a664f1 100644 --- a/test/specs/external/parsed.js +++ b/test/specs/external/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { definitions: { $ref: "definitions/definitions.json" diff --git a/test/specs/http.spec.js b/test/specs/http.spec.js index 9254712a..ac30e611 100644 --- a/test/specs/http.spec.js +++ b/test/specs/http.spec.js @@ -1,8 +1,8 @@ -"use strict"; +import { host } from "@jsdevtools/host-environment"; +import chai from "chai"; +import $RefParser from "../../lib/index.js"; -const { host } = require("@jsdevtools/host-environment"); -const { expect } = require("chai"); -const $RefParser = require("../../lib"); +const { expect } = chai; const isWindows = /^win/.test(globalThis.process ? globalThis.process.platform : undefined); diff --git a/test/specs/internal/bundled.js b/test/specs/internal/bundled.js index dc923eec..fa1f7e77 100644 --- a/test/specs/internal/bundled.js +++ b/test/specs/internal/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { definitions: { fragment: { $id: "#fragment" diff --git a/test/specs/internal/dereferenced.js b/test/specs/internal/dereferenced.js index 1e971e0d..952338d8 100644 --- a/test/specs/internal/dereferenced.js +++ b/test/specs/internal/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { definitions: { fragment: { $id: "#fragment" diff --git a/test/specs/internal/internal.spec.js b/test/specs/internal/internal.spec.js index f43875e5..3cf95b3a 100644 --- a/test/specs/internal/internal.spec.js +++ b/test/specs/internal/internal.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with internal $refs", () => { it("should parse successfully", async () => { diff --git a/test/specs/internal/parsed.js b/test/specs/internal/parsed.js index b9bf16a6..0f8ec8ef 100644 --- a/test/specs/internal/parsed.js +++ b/test/specs/internal/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { definitions: { fragment: { $id: "#fragment" diff --git a/test/specs/invalid-pointers/invalid-pointers.js b/test/specs/invalid-pointers/invalid-pointers.js index bc62d936..f20224fa 100644 --- a/test/specs/invalid-pointers/invalid-pointers.js +++ b/test/specs/invalid-pointers/invalid-pointers.js @@ -1,5 +1,3 @@ -"use strict"; - const chai = require("chai"); const chaiSubset = require("chai-subset"); chai.use(chaiSubset); diff --git a/test/specs/invalid/invalid.spec.js b/test/specs/invalid/invalid.spec.js index 1db47b01..98a85447 100644 --- a/test/specs/invalid/invalid.spec.js +++ b/test/specs/invalid/invalid.spec.js @@ -1,14 +1,12 @@ -"use strict"; - -const { host } = require("@jsdevtools/host-environment"); -const chai = require("chai"); -const chaiSubset = require("chai-subset"); +import { host } from "@jsdevtools/host-environment"; +import chai from "chai"; +import chaiSubset from "chai-subset"; chai.use(chaiSubset); const { expect } = chai; -const $RefParser = require("../../../lib"); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const { JSONParserErrorGroup, ParserError, ResolverError } = require("../../../lib/util/errors"); +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import { JSONParserErrorGroup, ParserError, ResolverError } from "../../../lib/util/errors.js"; const isWindows = /^win/.test(globalThis.process ? globalThis.process.platform : undefined); const getPathFromOs = filePath => isWindows ? filePath.replace(/\\/g, "/") : filePath; diff --git a/test/specs/missing-pointers/missing-pointers.spec.js b/test/specs/missing-pointers/missing-pointers.spec.js index c9ee5bc3..f8f2d822 100644 --- a/test/specs/missing-pointers/missing-pointers.spec.js +++ b/test/specs/missing-pointers/missing-pointers.spec.js @@ -1,13 +1,11 @@ -"use strict"; - -const chai = require("chai"); -const chaiSubset = require("chai-subset"); +import chai from "chai"; +import chaiSubset from "chai-subset"; chai.use(chaiSubset); const { expect } = chai; -const $RefParser = require("../../../lib"); -const { JSONParserErrorGroup, MissingPointerError } = require("../../../lib/util/errors"); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); +import $RefParser from "../../../lib/index.js"; +import { JSONParserErrorGroup, MissingPointerError } from "../../../lib/util/errors.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; describe("Schema with missing pointers", () => { it("should throw an error for missing pointer", async () => { diff --git a/test/specs/no-refs/no-refs.spec.js b/test/specs/no-refs/no-refs.spec.js index fe87615e..21055a64 100644 --- a/test/specs/no-refs/no-refs.spec.js +++ b/test/specs/no-refs/no-refs.spec.js @@ -1,10 +1,10 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); +const { expect } = chai; describe("Schema without any $refs", () => { it("should parse successfully", async () => { diff --git a/test/specs/no-refs/parsed.js b/test/specs/no-refs/parsed.js index 2cadce72..433d314d 100644 --- a/test/specs/no-refs/parsed.js +++ b/test/specs/no-refs/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { required: [ "name" ], diff --git a/test/specs/object-source-with-path/bundled.js b/test/specs/object-source-with-path/bundled.js index 7a2e5898..7dcee054 100644 --- a/test/specs/object-source-with-path/bundled.js +++ b/test/specs/object-source-with-path/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/object-source-with-path/dereferenced.js b/test/specs/object-source-with-path/dereferenced.js index e5a5eb39..3b9c8a43 100644 --- a/test/specs/object-source-with-path/dereferenced.js +++ b/test/specs/object-source-with-path/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/object-source-with-path/object-source-with-path.spec.js b/test/specs/object-source-with-path/object-source-with-path.spec.js index 5393f8b1..d30c9539 100644 --- a/test/specs/object-source-with-path/object-source-with-path.spec.js +++ b/test/specs/object-source-with-path/object-source-with-path.spec.js @@ -1,14 +1,14 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import internalRefsParsedSchema from "../internal/parsed.js"; +import internalRefsDereferencedSchema from "../internal/dereferenced.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const internalRefsParsedSchema = require("../internal/parsed"); -const internalRefsDereferencedSchema = require("../internal/dereferenced"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Object sources with file paths", () => { it("should dereference a single object", async () => { diff --git a/test/specs/object-source-with-path/parsed.js b/test/specs/object-source-with-path/parsed.js index a12db7e7..2e4995b4 100644 --- a/test/specs/object-source-with-path/parsed.js +++ b/test/specs/object-source-with-path/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { definitions: { // Because we've specified the full path to this directory, diff --git a/test/specs/object-source/bundled.js b/test/specs/object-source/bundled.js index 7a2e5898..7dcee054 100644 --- a/test/specs/object-source/bundled.js +++ b/test/specs/object-source/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/object-source/dereferenced.js b/test/specs/object-source/dereferenced.js index e5a5eb39..3b9c8a43 100644 --- a/test/specs/object-source/dereferenced.js +++ b/test/specs/object-source/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", type: "object", required: [ diff --git a/test/specs/object-source/object-source.spec.js b/test/specs/object-source/object-source.spec.js index dfda3238..3e7ed232 100644 --- a/test/specs/object-source/object-source.spec.js +++ b/test/specs/object-source/object-source.spec.js @@ -1,14 +1,14 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import internalRefsParsedSchema from "../internal/parsed.js"; +import internalRefsDereferencedSchema from "../internal/dereferenced.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const internalRefsParsedSchema = require("../internal/parsed"); -const internalRefsDereferencedSchema = require("../internal/dereferenced"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; const isWindows = /^win/.test(globalThis.process ? globalThis.process.platform : undefined); diff --git a/test/specs/object-source/parsed.js b/test/specs/object-source/parsed.js index fe034a4f..13d7801b 100644 --- a/test/specs/object-source/parsed.js +++ b/test/specs/object-source/parsed.js @@ -1,9 +1,6 @@ -"use strict"; +import path from "../../utils/path.js"; -const path = require("../../utils/path"); - -module.exports = -{ +export default { schema: { definitions: { // Because we're not specifying a path, the current directory (the "test" directory) diff --git a/test/specs/parsers/dereferenced.js b/test/specs/parsers/dereferenced.js index 0d7e4997..02b79110 100644 --- a/test/specs/parsers/dereferenced.js +++ b/test/specs/parsers/dereferenced.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { defaultParsers: { definitions: { markdown: "Hello\nWorld:\n", diff --git a/test/specs/parsers/parsed.js b/test/specs/parsers/parsed.js index 8dc803ab..90d859ee 100644 --- a/test/specs/parsers/parsed.js +++ b/test/specs/parsers/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { definitions: { markdown: { diff --git a/test/specs/parsers/parsers.spec.js b/test/specs/parsers/parsers.spec.js index 506d1cf7..95a62b0a 100644 --- a/test/specs/parsers/parsers.spec.js +++ b/test/specs/parsers/parsers.spec.js @@ -1,15 +1,13 @@ -"use strict"; - -const chai = require("chai"); -const chaiSubset = require("chai-subset"); +import chai from "chai"; +import chaiSubset from "chai-subset"; chai.use(chaiSubset); const { expect } = chai; -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const { JSONParserErrorGroup, ParserError, UnmatchedParserError } = require("../../../lib/util/errors"); +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import { JSONParserErrorGroup, ParserError, UnmatchedParserError } from "../../../lib/util/errors.js"; describe("References to non-JSON files", () => { it("should parse successfully", async () => { diff --git a/test/specs/ref-in-excluded-path/dereferenced.js b/test/specs/ref-in-excluded-path/dereferenced.js index bd995c99..6e178abf 100644 --- a/test/specs/ref-in-excluded-path/dereferenced.js +++ b/test/specs/ref-in-excluded-path/dereferenced.js @@ -1,6 +1,4 @@ -"use strict"; - -module.exports = { +export default { components: { examples: { "confirmation-failure": { diff --git a/test/specs/ref-in-excluded-path/ref-in-excluded-path.spec.js b/test/specs/ref-in-excluded-path/ref-in-excluded-path.spec.js index a462932e..631743ce 100644 --- a/test/specs/ref-in-excluded-path/ref-in-excluded-path.spec.js +++ b/test/specs/ref-in-excluded-path/ref-in-excluded-path.spec.js @@ -1,9 +1,9 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import path from "../../utils/path.js"; +import dereferencedSchema from "./dereferenced.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const path = require("../../utils/path"); -const dereferencedSchema = require("./dereferenced"); +const { expect } = chai; describe("Schema with literal $refs in examples", () => { it("should exclude the given paths from dereferencing", async () => { diff --git a/test/specs/refs.spec.js b/test/specs/refs.spec.js index be9bbdc9..6d4dae97 100644 --- a/test/specs/refs.spec.js +++ b/test/specs/refs.spec.js @@ -1,13 +1,13 @@ -"use strict"; - -const { host } = require("@jsdevtools/host-environment"); -const { expect } = require("chai"); -const $RefParser = require("../../lib"); -const helper = require("../utils/helper"); -const path = require("../utils/path"); -const parsedSchema = require("./external/parsed"); -const dereferencedSchema = require("./external/dereferenced"); -const bundledSchema = require("./external/bundled"); +import { host } from "@jsdevtools/host-environment"; +import chai from "chai"; +import $RefParser from "../../lib/index.js"; +import helper from "../utils/helper.js"; +import path from "../utils/path.js"; +import parsedSchema from "./external/parsed.js"; +import dereferencedSchema from "./external/dereferenced.js"; +import bundledSchema from "./external/bundled.js"; + +const { expect } = chai; describe("$Refs object", () => { describe("paths", () => { diff --git a/test/specs/resolvers/dereferenced.js b/test/specs/resolvers/dereferenced.js index abdba1ec..988fbd58 100644 --- a/test/specs/resolvers/dereferenced.js +++ b/test/specs/resolvers/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { definitions: { foo: { bar: { diff --git a/test/specs/resolvers/parsed.js b/test/specs/resolvers/parsed.js index 975496de..33317412 100644 --- a/test/specs/resolvers/parsed.js +++ b/test/specs/resolvers/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { definitions: { foo: { $ref: "foo://bar.baz" diff --git a/test/specs/resolvers/resolvers.spec.js b/test/specs/resolvers/resolvers.spec.js index 0d341ecc..00364829 100644 --- a/test/specs/resolvers/resolvers.spec.js +++ b/test/specs/resolvers/resolvers.spec.js @@ -1,15 +1,13 @@ -"use strict"; - -const chai = require("chai"); -const chaiSubset = require("chai-subset"); +import chai from "chai"; +import chaiSubset from "chai-subset"; chai.use(chaiSubset); const { expect } = chai; -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const { ResolverError, UnmatchedResolverError, JSONParserErrorGroup } = require("../../../lib/util/errors"); +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import { ResolverError, UnmatchedResolverError, JSONParserErrorGroup } from "../../../lib/util/errors.js"; describe("options.resolve", () => { it('should not resolve external links if "resolve.external" is disabled', async () => { diff --git a/test/specs/root/bundled.js b/test/specs/root/bundled.js index c16becab..81d0f1b6 100644 --- a/test/specs/root/bundled.js +++ b/test/specs/root/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Extending a root $ref", required: [ "first", diff --git a/test/specs/root/dereferenced.js b/test/specs/root/dereferenced.js index c16becab..81d0f1b6 100644 --- a/test/specs/root/dereferenced.js +++ b/test/specs/root/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Extending a root $ref", required: [ "first", diff --git a/test/specs/root/parsed.js b/test/specs/root/parsed.js index 3fcce63c..5a235981 100644 --- a/test/specs/root/parsed.js +++ b/test/specs/root/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { $ref: "definitions/root.json" }, diff --git a/test/specs/root/root.spec.js b/test/specs/root/root.spec.js index e15cb31c..00ef8fa3 100644 --- a/test/specs/root/root.spec.js +++ b/test/specs/root/root.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("Schema with a top-level (root) $ref", () => { it("should parse successfully", async () => { diff --git a/test/specs/substrings/bundled.js b/test/specs/substrings/bundled.js index 96dc4c0e..de0ed762 100644 --- a/test/specs/substrings/bundled.js +++ b/test/specs/substrings/bundled.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", definitions: { "name-with-min-length": { diff --git a/test/specs/substrings/dereferenced.js b/test/specs/substrings/dereferenced.js index e79bfaa8..931f34b6 100644 --- a/test/specs/substrings/dereferenced.js +++ b/test/specs/substrings/dereferenced.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { title: "Person", definitions: { "name-with-min-length": { diff --git a/test/specs/substrings/parsed.js b/test/specs/substrings/parsed.js index bdfb3419..338e6f6b 100644 --- a/test/specs/substrings/parsed.js +++ b/test/specs/substrings/parsed.js @@ -1,7 +1,4 @@ -"use strict"; - -module.exports = -{ +export default { schema: { definitions: { $ref: "definitions/definitions.json" diff --git a/test/specs/substrings/substrings.spec.js b/test/specs/substrings/substrings.spec.js index ea7b3437..057de458 100644 --- a/test/specs/substrings/substrings.spec.js +++ b/test/specs/substrings/substrings.spec.js @@ -1,12 +1,12 @@ -"use strict"; +import chai from "chai"; +import $RefParser from "../../../lib/index.js"; +import helper from "../../utils/helper.js"; +import path from "../../utils/path.js"; +import parsedSchema from "./parsed.js"; +import dereferencedSchema from "./dereferenced.js"; +import bundledSchema from "./bundled.js"; -const { expect } = require("chai"); -const $RefParser = require("../../.."); -const helper = require("../../utils/helper"); -const path = require("../../utils/path"); -const parsedSchema = require("./parsed"); -const dereferencedSchema = require("./dereferenced"); -const bundledSchema = require("./bundled"); +const { expect } = chai; describe("$refs that are substrings of each other", () => { it("should parse successfully", async () => { diff --git a/test/specs/util/url.spec.js b/test/specs/util/url.spec.js index b0b464c9..dfe2cc85 100644 --- a/test/specs/util/url.spec.js +++ b/test/specs/util/url.spec.js @@ -1,10 +1,8 @@ -"use strict"; - -const chai = require("chai"); -const chaiSubset = require("chai-subset"); +import chai from "chai"; +import chaiSubset from "chai-subset"; chai.use(chaiSubset); const { expect } = chai; -const $url = require("../../../lib/util/url"); +import * as $url from "../../../lib/util/url.js"; describe("Return the extension of a URL", () => { it("should return an empty string if there isn't any extension", async () => { diff --git a/test/utils/helper.js b/test/utils/helper.js index e201bf64..3da1b72a 100644 --- a/test/utils/helper.js +++ b/test/utils/helper.js @@ -1,10 +1,10 @@ -"use strict"; +import $RefParser from "../../lib/index.js"; +import { host } from "@jsdevtools/host-environment"; +import chai from "chai"; -const $RefParser = require("../../lib"); -const { host } = require("@jsdevtools/host-environment"); -const { expect } = require("chai"); +const { expect } = chai; -const helper = module.exports = { +const helper = { /** * Throws an error if called. */ @@ -96,3 +96,5 @@ const helper = module.exports = { return clone; }, }; + +export default helper; diff --git a/test/utils/path.js b/test/utils/path.js index 9f081d5c..6b62c028 100644 --- a/test/utils/path.js +++ b/test/utils/path.js @@ -1,28 +1,27 @@ -"use strict"; - -const { host } = require("@jsdevtools/host-environment"); +import nodePath from "path"; +import nodeUrl from "url"; +import { host } from "@jsdevtools/host-environment"; +import projectDir from "../../lib/util/projectDir.cjs"; const isWindows = /^win/.test(globalThis.process ? globalThis.process.platform : undefined); const getPathFromOs = filePath => isWindows ? filePath.replace(/\\/g, "/") : filePath; -if (host.node) { - module.exports = filesystemPathHelpers(); -} -else { - module.exports = urlPathHelpers(); -} +const pathHelpers = { + filesystem: filesystemPathHelpers(), + url: urlPathHelpers() +}; /** * Helper functions for getting local filesystem paths in various formats */ function filesystemPathHelpers () { - const nodePath = require("path"); - const nodeUrl = require("url"); - const testsDir = nodePath.resolve(__dirname, ".."); + if (host.node) { + const testsDir = nodePath.resolve(projectDir, "test") - // Run all tests from the "test" directory - process.chdir(testsDir); + // Run all tests from the "test" directory + process.chdir(testsDir); + } const path = { /** @@ -84,6 +83,10 @@ function filesystemPathHelpers () { * Helper functions for getting URLs in various formats */ function urlPathHelpers () { + if (host.node) { + return + } + // Get the URL of the "test" directory let filename = document.querySelector('script[src*="/fixtures/"]').src; let testsDir = filename.substr(0, filename.indexOf("/fixtures/")) + "/"; @@ -148,3 +151,25 @@ function urlPathHelpers () { return path; } + +export default { + rel (file) { + return host.node ? pathHelpers.filesystem.rel(...arguments) : pathHelpers.url.rel(...arguments) + }, + + abs (file) { + return host.node ? pathHelpers.filesystem.abs(...arguments) : pathHelpers.url.abs(...arguments) + }, + + unixify (file) { + return host.node ? pathHelpers.filesystem.unixify(...arguments) : pathHelpers.url.unixify(...arguments) + }, + + url (file) { + return host.node ? pathHelpers.filesystem.url(...arguments) : pathHelpers.url.url(...arguments) + }, + + cwd () { + return host.node ? pathHelpers.filesystem.cwd(...arguments) : pathHelpers.url.cwd(...arguments) + } +}