From 99480f94980a69efd1f24bdd7381f571d688f53d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Wadas?= Date: Thu, 2 Dec 2021 00:56:42 +0100 Subject: [PATCH] Update ecmarkup to version 9 --- docs/ecmarkup.css | 823 ++++-- docs/ecmarkup.js | 1052 ++++--- docs/index.html | 292 +- package-lock.json | 4226 +++++++++++++++++++++++----- package.json | 6 +- spec/map/prototype-delete-all.html | 4 +- 6 files changed, 4903 insertions(+), 1500 deletions(-) diff --git a/docs/ecmarkup.css b/docs/ecmarkup.css index cb554c7..b5051eb 100644 --- a/docs/ecmarkup.css +++ b/docs/ecmarkup.css @@ -14,6 +14,7 @@ body { flex-basis: 66%; box-sizing: border-box; overflow: hidden; + padding-bottom: 1em; } body.oldtoc { @@ -21,8 +22,8 @@ body.oldtoc { } a { - text-decoration: none; - color: #206ca7; + text-decoration: none; + color: #206ca7; } a:visited { @@ -30,15 +31,51 @@ a:visited { } a:hover { - text-decoration: underline; - color: #239dee; + text-decoration: underline; + color: #239dee; } +a.e-user-code, +span.e-user-code { + white-space: nowrap; +} + +a.e-user-code::before, +span.e-user-code::before { + display: none; + color: brown; + background-color: white; + border: 2pt solid brown; + padding: 0.3ex; + margin: 0 0.25em 0 0; + line-height: 1; + vertical-align: text-top; + text-transform: uppercase; + font-family: "Comic Code", sans-serif; + font-weight: 900; + font-size: x-small; +} + +a.e-user-code:hover::before, +span.e-user-code:hover::before { + background-color: brown; + color: white; +} + +html.show-ao-annotations a.e-user-code::before, +html.show-ao-annotations span.e-user-code::before { + display: inline-block; +} + +a.e-user-code::before, +span.e-user-code::before { + content: 'UC'; +} code { - font-weight: bold; - font-family: Consolas, Monaco, monospace; - white-space: pre; + font-weight: bold; + font-family: Consolas, Monaco, monospace; + white-space: pre; } pre code { @@ -52,13 +89,13 @@ pre code.hljs { } ol.toc { - list-style: none; - padding-left: 0; + list-style: none; + padding-left: 0; } ol.toc ol.toc { - padding-left: 2ex; - list-style: none; + padding-left: 2ex; + list-style: none; } var { @@ -67,8 +104,40 @@ var { cursor: pointer; } -var.referenced { +var.referenced0 { + color: inherit; background-color: #ffff33; + box-shadow: 0 0 0 2px #ffff33; +} +var.referenced1 { + color: inherit; + background-color: #ff87a2; + box-shadow: 0 0 0 2px #ff87a2; +} +var.referenced2 { + color: inherit; + background-color: #96e885; + box-shadow: 0 0 0 2px #96e885; +} +var.referenced3 { + color: inherit; + background-color: #3eeed2; + box-shadow: 0 0 0 2px #3eeed2; +} +var.referenced4 { + color: inherit; + background-color: #eacfb6; + box-shadow: 0 0 0 2px #eacfb6; +} +var.referenced5 { + color: inherit; + background-color: #82ddff; + box-shadow: 0 0 0 2px #82ddff; +} +var.referenced6 { + color: inherit; + background-color: #ffbcf2; + box-shadow: 0 0 0 2px #ffbcf2; } emu-const { @@ -78,16 +147,43 @@ emu-const { emu-val { font-weight: bold; } -emu-alg ol, emu-alg ol ol ol ol { - list-style-type: decimal; -} -emu-alg ol ol, emu-alg ol ol ol ol ol { - list-style-type: lower-alpha; -} - -emu-alg ol ol ol, ol ol ol ol ol ol { - list-style-type: lower-roman; +/* depth 1 */ +emu-alg ol, +/* depth 4 */ +emu-alg ol ol ol ol, +emu-alg ol.nested-thrice, +emu-alg ol.nested-twice ol, +emu-alg ol.nested-once ol ol { + list-style-type: decimal; +} + +/* depth 2 */ +emu-alg ol ol, +emu-alg ol.nested-once, +/* depth 5 */ +emu-alg ol ol ol ol ol, +emu-alg ol.nested-four-times, +emu-alg ol.nested-thrice ol, +emu-alg ol.nested-twice ol ol, +emu-alg ol.nested-once ol ol ol { + list-style-type: lower-alpha; +} + +/* depth 3 */ +emu-alg ol ol ol, +emu-alg ol.nested-twice, +emu-alg ol.nested-once ol, +/* depth 6 */ +emu-alg ol ol ol ol ol ol, +emu-alg ol.nested-lots, +emu-alg ol.nested-four-times ol, +emu-alg ol.nested-thrice ol ol, +emu-alg ol.nested-twice ol ol ol, +emu-alg ol.nested-once ol ol ol ol, +/* depth 7+ */ +emu-alg ol.nested-lots ol { + list-style-type: lower-roman; } emu-eqn { @@ -105,29 +201,32 @@ emu-eqn div:first-child { } emu-note { - margin: 1em 0; - color: #666; - border-left: 5px solid #ccc; - display: flex; - flex-direction: row; + margin: 1em 0; + display: flex; + flex-direction: row; + color: inherit; + border-left: 5px solid #52e052; + background: #e9fbe9; + padding: 10px 10px 10px 0; } emu-note > span.note { - flex-basis: 100px; - min-width: 100px; - flex-grow: 0; - flex-shrink: 1; - text-transform: uppercase; - padding-left: 5px; + flex-basis: 100px; + min-width: 100px; + flex-grow: 0; + flex-shrink: 1; + text-transform: uppercase; + padding-left: 5px; } -emu-note[type=editor] { +emu-note[type='editor'] { border-left-color: #faa; } emu-note > div.note-contents { flex-grow: 1; flex-shrink: 1; + overflow: auto; } emu-note > div.note-contents > p:first-of-type { @@ -138,6 +237,10 @@ emu-note > div.note-contents > p:last-of-type { margin-bottom: 0; } +emu-table td code { + white-space: normal; +} + emu-figure { display: block; } @@ -161,98 +264,120 @@ emu-table figure { } emu-production { - display: block; - margin-top: 1em; - margin-bottom: 1em; - margin-left: 5ex; + display: block; } -emu-grammar.inline, emu-production.inline, -emu-grammar.inline emu-production emu-rhs, emu-production.inline emu-rhs, -emu-grammar[collapsed] emu-production emu-rhs, emu-production[collapsed] emu-rhs { - display: inline; - padding-left: 1ex; - margin-left: 0; +emu-grammar[type='example'] emu-production, +emu-grammar[type='definition'] emu-production { + margin-top: 1em; + margin-bottom: 1em; + margin-left: 5ex; } -emu-grammar[collapsed] emu-production, emu-production[collapsed] { - margin: 0; +emu-grammar.inline, +emu-production.inline, +emu-grammar.inline emu-production emu-rhs, +emu-production.inline emu-rhs, +emu-grammar[collapsed] emu-production emu-rhs { + display: inline; + padding-left: 1ex; + margin-left: 0; +} + +emu-production[collapsed] emu-rhs { + display: inline; + padding-left: 0.5ex; + margin-left: 0; +} + +emu-grammar[collapsed] emu-production, +emu-production[collapsed] { + margin: 0; } emu-constraints { - font-size: .75em; - margin-right: 1ex; + font-size: 0.75em; + margin-right: 0.5ex; } emu-gann { - margin-right: 1ex; + margin-right: 0.5ex; } emu-gann emu-t:last-child, +emu-gann emu-gprose:last-child, emu-gann emu-nt:last-child { - margin-right: 0; + margin-right: 0; } emu-geq { - margin-left: 1ex; - font-weight: bold; + margin-left: 0.5ex; + font-weight: bold; } emu-oneof { - font-weight: bold; - margin-left: 1ex; + font-weight: bold; + margin-left: 0.5ex; } emu-nt { - display: inline-block; - font-style: italic; - white-space: nowrap; - text-indent: 0; + display: inline-block; + font-style: italic; + white-space: nowrap; + text-indent: 0; } -emu-nt a, emu-nt a:visited { +emu-nt a, +emu-nt a:visited { color: #333; } emu-rhs emu-nt { - margin-right: 1ex; + margin-right: 0.5ex; } emu-t { - display: inline-block; - font-family: monospace; - font-weight: bold; - white-space: nowrap; - text-indent: 0; + display: inline-block; + font-family: monospace; + font-weight: bold; + white-space: nowrap; + text-indent: 0; } emu-production emu-t { - margin-right: 1ex; + margin-right: 0.5ex; } emu-rhs { - display: block; - padding-left: 75px; - text-indent: -25px; + display: block; + padding-left: 75px; + text-indent: -25px; } -emu-mods { - font-size: .85em; - vertical-align: sub; - font-style: normal; - font-weight: normal; +emu-production:not([collapsed]) emu-rhs { + border: 0.2ex dashed transparent; } -emu-production[collapsed] emu-mods { - display: none; +emu-production:not([collapsed]) emu-rhs:hover { + border-color: #888; + background-color: #f0f0f0; } -emu-params, emu-opt { +emu-mods { + font-size: 0.85em; + vertical-align: sub; + font-style: normal; + font-weight: normal; +} + +emu-params, +emu-opt { margin-right: 1ex; font-family: monospace; } -emu-params, emu-constraints { +emu-params, +emu-constraints { color: #2aa198; } @@ -261,8 +386,12 @@ emu-opt { } emu-gprose { - font-size: 0.9em; - font-family: Helvetica, Arial, sans-serif; + font-size: 0.9em; + font-family: Helvetica, Arial, sans-serif; +} + +emu-production emu-gprose { + margin-right: 1ex; } h1.shortname { @@ -274,167 +403,291 @@ h1.shortname { h1.version { color: #f60; font-size: 1.5em; - margin: 0; } h1.title { - margin-top: 0; color: #f60; } -h1.first { - margin-top: 0; -} - -h1, h2, h3, h4, h5, h6 { - position: relative; +h1, +h2, +h3, +h4, +h5, +h6 { + position: relative; } h1 .secnum { text-decoration: none; - margin-right: 10px; + margin-right: 5px; } h1 span.title { order: 2; } - -h1 { font-size: 2.67em; margin-top: 2em; margin-bottom: 0; line-height: 1em;} -h2 { font-size: 2em; } -h3 { font-size: 1.56em; } -h4 { font-size: 1.25em; } -h5 { font-size: 1.11em; } -h6 { font-size: 1em; } - -h1:hover span.utils { - display: block; +h1 { + font-size: 2.67em; + margin-bottom: 0; + line-height: 1em; +} +h2 { + font-size: 2em; +} +h3 { + font-size: 1.56em; +} +h4 { + font-size: 1.25em; +} +h5 { + font-size: 1.11em; +} +h6 { + font-size: 1em; } -span.utils { - font-size: 18px; - line-height: 18px; - display: none; - position: absolute; - top: 100%; - left: 0; - right: 0; - font-weight: normal; +pre code.hljs { + background: transparent; } -span.utils:before { - content: "⤷"; - display: inline-block; - padding: 0 5px; +emu-clause[id], +emu-annex[id], +emu-intro[id] { + scroll-margin-top: 2ex; } -span.utils > * { - display: inline-block; - margin-right: 20px; +emu-intro h1, +emu-clause h1, +emu-annex h1 { + font-size: 2em; +} +emu-intro h2, +emu-clause h2, +emu-annex h2 { + font-size: 1.56em; +} +emu-intro h3, +emu-clause h3, +emu-annex h3 { + font-size: 1.25em; +} +emu-intro h4, +emu-clause h4, +emu-annex h4 { + font-size: 1.11em; +} +emu-intro h5, +emu-clause h5, +emu-annex h5 { + font-size: 1em; +} +emu-intro h6, +emu-clause h6, +emu-annex h6 { + font-size: 0.9em; +} +emu-intro emu-intro h1, +emu-clause emu-clause h1, +emu-annex emu-annex h1 { + font-size: 1.56em; +} +emu-intro emu-intro h2, +emu-clause emu-clause h2, +emu-annex emu-annex h2 { + font-size: 1.25em; +} +emu-intro emu-intro h3, +emu-clause emu-clause h3, +emu-annex emu-annex h3 { + font-size: 1.11em; +} +emu-intro emu-intro h4, +emu-clause emu-clause h4, +emu-annex emu-annex h4 { + font-size: 1em; +} +emu-intro emu-intro h5, +emu-clause emu-clause h5, +emu-annex emu-annex h5 { + font-size: 0.9em; +} +emu-intro emu-intro emu-intro h1, +emu-clause emu-clause emu-clause h1, +emu-annex emu-annex emu-annex h1 { + font-size: 1.25em; +} +emu-intro emu-intro emu-intro h2, +emu-clause emu-clause emu-clause h2, +emu-annex emu-annex emu-annex h2 { + font-size: 1.11em; +} +emu-intro emu-intro emu-intro h3, +emu-clause emu-clause emu-clause h3, +emu-annex emu-annex emu-annex h3 { + font-size: 1em; +} +emu-intro emu-intro emu-intro h4, +emu-clause emu-clause emu-clause h4, +emu-annex emu-annex emu-annex h4 { + font-size: 0.9em; +} +emu-intro emu-intro emu-intro emu-intro h1, +emu-clause emu-clause emu-clause emu-clause h1, +emu-annex emu-annex emu-annex emu-annex h1 { + font-size: 1.11em; +} +emu-intro emu-intro emu-intro emu-intro h2, +emu-clause emu-clause emu-clause emu-clause h2, +emu-annex emu-annex emu-annex emu-annex h2 { + font-size: 1em; +} +emu-intro emu-intro emu-intro emu-intro h3, +emu-clause emu-clause emu-clause emu-clause h3, +emu-annex emu-annex emu-annex emu-annex h3 { + font-size: 0.9em; +} +emu-intro emu-intro emu-intro emu-intro emu-intro h1, +emu-clause emu-clause emu-clause emu-clause emu-clause h1, +emu-annex emu-annex emu-annex emu-annex emu-annex h1 { + font-size: 1em; +} +emu-intro emu-intro emu-intro emu-intro emu-intro h2, +emu-clause emu-clause emu-clause emu-clause emu-clause h2, +emu-annex emu-annex emu-annex emu-annex emu-annex h2 { + font-size: 0.9em; +} +emu-intro emu-intro emu-intro emu-intro emu-intro emu-intro h1, +emu-clause emu-clause emu-clause emu-clause emu-clause emu-clause h1, +emu-annex emu-annex emu-annex emu-annex emu-annex emu-annex h1 { + font-size: 0.9em; } -h1 span.utils span.anchor a, -h2 span.utils span.anchor a, -h3 span.utils span.anchor a, -h4 span.utils span.anchor a, -h5 span.utils span.anchor a, -h6 span.utils span.anchor a { - text-decoration: none; - font-variant: small-caps; +emu-clause, +emu-intro, +emu-annex { + display: block; } -h1 span.utils span.anchor a:hover, -h2 span.utils span.anchor a:hover, -h3 span.utils span.anchor a:hover, -h4 span.utils span.anchor a:hover, -h5 span.utils span.anchor a:hover, -h6 span.utils span.anchor a:hover { - color: #333; +/* these values are twice the font-size for the

titles for clauses */ +emu-intro, +emu-clause, +emu-annex { + margin-top: 4em; +} +emu-intro emu-intro, +emu-clause emu-clause, +emu-annex emu-annex { + margin-top: 3.12em; +} +emu-intro emu-intro emu-intro, +emu-clause emu-clause emu-clause, +emu-annex emu-annex emu-annex { + margin-top: 2.5em; +} +emu-intro emu-intro emu-intro emu-intro, +emu-clause emu-clause emu-clause emu-clause, +emu-annex emu-annex emu-annex emu-annex { + margin-top: 2.22em; +} +emu-intro emu-intro emu-intro emu-intro emu-intro, +emu-clause emu-clause emu-clause emu-clause emu-clause, +emu-annex emu-annex emu-annex emu-annex emu-annex { + margin-top: 2em; +} +emu-intro emu-intro emu-intro emu-intro emu-intro emu-intro, +emu-clause emu-clause emu-clause emu-clause emu-clause emu-clause, +emu-annex emu-annex emu-annex emu-annex emu-annex emu-annex { + margin-top: 1.8em; } -emu-intro h1, emu-clause h1, emu-annex h1 { font-size: 2em; } -emu-intro h2, emu-clause h2, emu-annex h2 { font-size: 1.56em; } -emu-intro h3, emu-clause h3, emu-annex h3 { font-size: 1.25em; } -emu-intro h4, emu-clause h4, emu-annex h4 { font-size: 1.11em; } -emu-intro h5, emu-clause h5, emu-annex h5 { font-size: 1em; } -emu-intro h6, emu-clause h6, emu-annex h6 { font-size: 0.9em; } -emu-intro emu-intro h1, emu-clause emu-clause h1, emu-annex emu-annex h1 { font-size: 1.56em; } -emu-intro emu-intro h2, emu-clause emu-clause h2, emu-annex emu-annex h2 { font-size: 1.25em; } -emu-intro emu-intro h3, emu-clause emu-clause h3, emu-annex emu-annex h3 { font-size: 1.11em; } -emu-intro emu-intro h4, emu-clause emu-clause h4, emu-annex emu-annex h4 { font-size: 1em; } -emu-intro emu-intro h5, emu-clause emu-clause h5, emu-annex emu-annex h5 { font-size: 0.9em; } -emu-intro emu-intro emu-intro h1, emu-clause emu-clause emu-clause h1, emu-annex emu-annex emu-annex h1 { font-size: 1.25em; } -emu-intro emu-intro emu-intro h2, emu-clause emu-clause emu-clause h2, emu-annex emu-annex emu-annex h2 { font-size: 1.11em; } -emu-intro emu-intro emu-intro h3, emu-clause emu-clause emu-clause h3, emu-annex emu-annex emu-annex h3 { font-size: 1em; } -emu-intro emu-intro emu-intro h4, emu-clause emu-clause emu-clause h4, emu-annex emu-annex emu-annex h4 { font-size: 0.9em; } -emu-intro emu-intro emu-intro emu-intro h1, emu-clause emu-clause emu-clause emu-clause h1, emu-annex emu-annex emu-annex emu-annex h1 { font-size: 1.11em; } -emu-intro emu-intro emu-intro emu-intro h2, emu-clause emu-clause emu-clause emu-clause h2, emu-annex emu-annex emu-annex emu-annex h2 { font-size: 1em; } -emu-intro emu-intro emu-intro emu-intro h3, emu-clause emu-clause emu-clause emu-clause h3, emu-annex emu-annex emu-annex emu-annex h3 { font-size: 0.9em; } -emu-intro emu-intro emu-intro emu-intro emu-intro h1, emu-clause emu-clause emu-clause emu-clause emu-clause h1, emu-annex emu-annex emu-annex emu-annex emu-annex h1 { font-size: 1em; } -emu-intro emu-intro emu-intro emu-intro emu-intro h2, emu-clause emu-clause emu-clause emu-clause emu-clause h2, emu-annex emu-annex emu-annex emu-annex emu-annex h2 { font-size: 0.9em; } -emu-intro emu-intro emu-intro emu-intro emu-intro emu-intro h1, emu-clause emu-clause emu-clause emu-clause emu-clause emu-clause h1, emu-annex emu-annex emu-annex emu-annex emu-annex emu-annex h1 { font-size: 0.9em } - -emu-clause, emu-intro, emu-annex { - display: block; +#spec-container > emu-intro:first-of-type, +#spec-container > emu-clause:first-of-type, +#spec-container > emu-annex:first-of-type { + margin-top: 0; } /* Figures and tables */ -figure { display: block; margin: 1em 0 3em 0; } -figure object { display: block; margin: 0 auto; } -figure table.real-table { margin: 0 auto; } +figure { + display: block; + margin: 1em 0 3em 0; +} +figure object { + display: block; + margin: 0 auto; +} +figure table.real-table { + margin: 0 auto; +} figure figcaption { - display: block; - color: #555555; - font-weight: bold; - text-align: center; + display: block; + color: #555555; + font-weight: bold; + text-align: center; } emu-table table { margin: 0 auto; } -emu-table table, table.real-table { - border-collapse: collapse; +emu-table table, +table.real-table { + border-collapse: collapse; } -emu-table td, emu-table th, table.real-table td, table.real-table th { - border: 1px solid black; - padding: 0.4em; - vertical-align: baseline; +emu-table td, +emu-table th, +table.real-table td, +table.real-table th { + border: 1px solid black; + padding: 0.4em; + vertical-align: baseline; +} +emu-table th, +emu-table thead td, +table.real-table th { + background-color: #eeeeee; } -emu-table th, emu-table thead td, table.real-table th { - background-color: #eeeeee; + +emu-table td { + background: #fff; } /* Note: the left content edges of table.lightweight-table >tbody >tr >td and div.display line up. */ table.lightweight-table { - border-collapse: collapse; - margin: 0 0 0 1.5em; + border-collapse: collapse; + margin: 0 0 0 1.5em; } -table.lightweight-table td, table.lightweight-table th { - border: none; - padding: 0 0.5em; - vertical-align: baseline; +table.lightweight-table td, +table.lightweight-table th { + border: none; + padding: 0 0.5em; + vertical-align: baseline; } /* diff styles */ ins { - background-color: #e0f8e0; - text-decoration: none; - border-bottom: 1px solid #396; + background-color: #e0f8e0; + text-decoration: none; + border-bottom: 1px solid #396; } del { - background-color: #fee; + background-color: #fee; } -ins.block, del.block, -emu-production > ins, emu-production > del, -emu-grammar > ins, emu-grammar > del { +ins.block, +del.block, +emu-production > ins, +emu-production > del, +emu-grammar > ins, +emu-grammar > del { display: block; } -emu-rhs > ins, emu-rhs > del { +emu-rhs > ins, +emu-rhs > del { display: inline; } @@ -471,7 +724,7 @@ tr.del > td { -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; - user-select: none;; + user-select: none; cursor: pointer; } @@ -479,7 +732,8 @@ tr.del > td { #menu { display: flex; flex-direction: column; - width: 33%; height: 100vh; + width: 33%; + height: 100vh; max-width: 500px; box-sizing: border-box; background-color: #ddd; @@ -487,7 +741,8 @@ tr.del > td { transition: opacity 0.1s linear; padding: 0 5px; position: fixed; - left: 0; top: 0; + left: 0; + top: 0; border-right: 2px solid #bbb; z-index: 2; @@ -548,7 +803,8 @@ tr.del > td { padding: 0; } -#menu-toc > ol , #menu-toc > ol ol { +#menu-toc > ol, +#menu-toc > ol ol { list-style-type: none; margin: 0; padding: 0; @@ -578,7 +834,7 @@ tr.del > td { -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; - user-select: none;; + user-select: none; cursor: pointer; } @@ -609,7 +865,7 @@ tr.del > td { */ } -#menu-toc li.revealed-leaf> a { +#menu-toc li.revealed-leaf > a { color: #206ca7; /* background-color: #222; @@ -645,6 +901,34 @@ tr.del > td { font-size: 0.8em; } +.menu-pane-header emu-opt, +.menu-pane-header emu-t, +.menu-pane-header emu-nt { + margin-right: 0px; + display: inline; + color: inherit; +} + +.menu-pane-header emu-rhs { + display: inline; + padding-left: 0px; + text-indent: 0px; +} + +.menu-pane-header emu-geq { + margin-left: 0px; +} + +a.menu-pane-header-production { + color: inherit; +} + +.menu-pane-header-production { + text-transform: none; + letter-spacing: 1.5px; + padding-left: 0.5em; +} + #menu-toc { display: flex; flex-direction: column; @@ -663,10 +947,10 @@ tr.del > td { flex-grow: 0; flex-shrink: 0; width: 100%; - + display: flex; flex-direction: column; - + max-height: 300px; } @@ -691,43 +975,42 @@ tr.del > td { } li.menu-search-result-clause:before { - content: 'clause'; - width: 40px; - display: inline-block; - text-align: right; - padding-right: 1ex; - color: #666; - font-size: 75%; + content: 'clause'; + width: 40px; + display: inline-block; + text-align: right; + padding-right: 1ex; + color: #666; + font-size: 75%; } li.menu-search-result-op:before { - content: 'op'; - width: 40px; - display: inline-block; - text-align: right; - padding-right: 1ex; - color: #666; - font-size: 75%; + content: 'op'; + width: 40px; + display: inline-block; + text-align: right; + padding-right: 1ex; + color: #666; + font-size: 75%; } li.menu-search-result-prod:before { - content: 'prod'; - width: 40px; - display: inline-block; - text-align: right; - padding-right: 1ex; - color: #666; - font-size: 75% + content: 'prod'; + width: 40px; + display: inline-block; + text-align: right; + padding-right: 1ex; + color: #666; + font-size: 75%; } - li.menu-search-result-term:before { - content: 'term'; - width: 40px; - display: inline-block; - text-align: right; - padding-right: 1ex; - color: #666; - font-size: 75% + content: 'term'; + width: 40px; + display: inline-block; + text-align: right; + padding-right: 1ex; + color: #666; + font-size: 75%; } #menu-search-results ul { @@ -740,7 +1023,6 @@ li.menu-search-result-term:before { text-overflow: ellipsis; } - #menu-trace-list { counter-reset: item; margin: 0 0 0 20px; @@ -752,19 +1034,19 @@ li.menu-search-result-term:before { } #menu-trace-list li .secnum:after { - content: " "; + content: ' '; } #menu-trace-list li:before { - content: counter(item) " "; - background-color: #222; - counter-increment: item; - color: #999; - width: 20px; - height: 20px; - line-height: 20px; - display: inline-block; - text-align: center; - margin: 2px 4px 2px 0; + content: counter(item) ' '; + background-color: #222; + counter-increment: item; + color: #999; + width: 20px; + height: 20px; + line-height: 20px; + display: inline-block; + text-align: center; + margin: 2px 4px 2px 0; } @media (max-width: 1000px) { @@ -806,26 +1088,31 @@ li.menu-search-result-term:before { } h1 .secnum:empty { - margin: 0; padding: 0; + margin: 0; + padding: 0; } } - /* Toolbox */ -.toolbox { - position: absolute; - background: #ddd; - border: 1px solid #aaa; +.toolbox-container { + position: absolute; display: none; - color: #eee; - padding: 5px; - border-radius: 3px; + padding-bottom: 7px; } -.toolbox.active { +.toolbox-container.active { display: inline-block; } +.toolbox { + position: relative; + background: #ddd; + border: 1px solid #aaa; + color: #eee; + padding: 5px; + border-radius: 3px; +} + .toolbox a { text-decoration: none; padding: 0 5px; @@ -835,28 +1122,29 @@ li.menu-search-result-term:before { text-decoration: underline; } -.toolbox:after, .toolbox:before { - top: 100%; - left: 15px; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; +.toolbox:after, +.toolbox:before { + top: 100%; + left: 15px; + border: solid transparent; + content: ' '; + height: 0; + width: 0; + position: absolute; + pointer-events: none; } .toolbox:after { - border-color: rgba(0, 0, 0, 0); - border-top-color: #ddd; - border-width: 10px; - margin-left: -10px; + border-color: rgba(0, 0, 0, 0); + border-top-color: #ddd; + border-width: 10px; + margin-left: -10px; } .toolbox:before { - border-color: rgba(204, 204, 204, 0); - border-top-color: #aaa; - border-width: 12px; - margin-left: -12px; + border-color: rgba(204, 204, 204, 0); + border-top-color: #aaa; + border-width: 12px; + margin-left: -12px; } #references-pane-container { @@ -904,6 +1192,23 @@ li.menu-search-result-term:before { @media print { #menu-toggle { - display: none; + display: none; } } + +[normative-optional], +[legacy] { + border-left: 5px solid #ff6600; + padding: 0.5em; + display: block; + background: #ffeedd; +} + +.clause-attributes-tag { + text-transform: uppercase; + color: #884400; +} + +.clause-attributes-tag a { + color: #884400; +} diff --git a/docs/ecmarkup.js b/docs/ecmarkup.js index 6ad1a1f..6cc1748 100644 --- a/docs/ecmarkup.js +++ b/docs/ecmarkup.js @@ -1,32 +1,133 @@ -"use strict"; +'use strict'; +let sdoBox = { + init() { + this.$alternativeId = null; + this.$outer = document.createElement('div'); + this.$outer.classList.add('toolbox-container'); + this.$container = document.createElement('div'); + this.$container.classList.add('toolbox'); + this.$displayLink = document.createElement('a'); + this.$displayLink.setAttribute('href', '#'); + this.$displayLink.textContent = 'Syntax-Directed Operations'; + this.$displayLink.addEventListener('click', e => { + e.preventDefault(); + e.stopPropagation(); + referencePane.showSDOs(sdoMap[this.$alternativeId] || {}, this.$alternativeId); + }); + this.$container.appendChild(this.$displayLink); + this.$outer.appendChild(this.$container); + document.body.appendChild(this.$outer); + }, + + activate(el) { + clearTimeout(this.deactiveTimeout); + Toolbox.deactivate(); + this.$alternativeId = el.id; + let numSdos = Object.keys(sdoMap[this.$alternativeId] || {}).length; + this.$displayLink.textContent = 'Syntax-Directed Operations (' + numSdos + ')'; + this.$outer.classList.add('active'); + let top = el.offsetTop - this.$outer.offsetHeight; + let left = el.offsetLeft + 50 - 10; // 50px = padding-left(=75px) + text-indent(=-25px) + this.$outer.setAttribute('style', 'left: ' + left + 'px; top: ' + top + 'px'); + if (top < document.body.scrollTop) { + this.$container.scrollIntoView(); + } + }, + deactivate() { + clearTimeout(this.deactiveTimeout); + this.$outer.classList.remove('active'); + }, +}; + +document.addEventListener('DOMContentLoaded', () => { + if (typeof sdoMap == 'undefined') { + console.error('could not find sdo map'); + return; + } + sdoBox.init(); + + let insideTooltip = false; + sdoBox.$outer.addEventListener('pointerenter', () => { + insideTooltip = true; + }); + sdoBox.$outer.addEventListener('pointerleave', () => { + insideTooltip = false; + sdoBox.deactivate(); + }); + + sdoBox.deactiveTimeout = null; + [].forEach.call(document.querySelectorAll('emu-grammar[type=definition] emu-rhs'), node => { + node.addEventListener('pointerenter', function () { + sdoBox.activate(this); + }); + + node.addEventListener('pointerleave', () => { + sdoBox.deactiveTimeout = setTimeout(() => { + if (!insideTooltip) { + sdoBox.deactivate(); + } + }, 500); + }); + }); + + document.addEventListener( + 'keydown', + debounce(e => { + if (e.code === 'Escape') { + sdoBox.deactivate(); + } + }) + ); +}); + +'use strict'; function Search(menu) { this.menu = menu; this.$search = document.getElementById('menu-search'); this.$searchBox = document.getElementById('menu-search-box'); this.$searchResults = document.getElementById('menu-search-results'); - + this.loadBiblio(); - + document.addEventListener('keydown', this.documentKeydown.bind(this)); - - this.$searchBox.addEventListener('keydown', debounce(this.searchBoxKeydown.bind(this), { stopPropagation: true })); - this.$searchBox.addEventListener('keyup', debounce(this.searchBoxKeyup.bind(this), { stopPropagation: true })); + + this.$searchBox.addEventListener( + 'keydown', + debounce(this.searchBoxKeydown.bind(this), { stopPropagation: true }) + ); + this.$searchBox.addEventListener( + 'keyup', + debounce(this.searchBoxKeyup.bind(this), { stopPropagation: true }) + ); + + // Perform an initial search if the box is not empty. + if (this.$searchBox.value) { + this.search(this.$searchBox.value); + } } Search.prototype.loadBiblio = function () { - var $biblio = document.getElementById('menu-search-biblio'); - if (!$biblio) { - this.biblio = []; + if (typeof biblio === 'undefined') { + console.error('could not find biblio'); + this.biblio = { refToClause: {}, entries: [] }; } else { - this.biblio = JSON.parse($biblio.textContent); - this.biblio.clauses = this.biblio.filter(function (e) { return e.type === 'clause' }); - this.biblio.byId = this.biblio.reduce(function (map, entry) { + this.biblio = biblio; + this.biblio.clauses = this.biblio.entries.filter(e => e.type === 'clause'); + this.biblio.byId = this.biblio.entries.reduce((map, entry) => { map[entry.id] = entry; return map; }, {}); + let refParentClause = Object.create(null); + this.biblio.refParentClause = refParentClause; + let refsByClause = this.biblio.refsByClause; + Object.keys(refsByClause).forEach(clause => { + refsByClause[clause].forEach(ref => { + refParentClause[ref] = clause; + }); + }); } -} +}; Search.prototype.documentKeydown = function (e) { if (e.keyCode === 191) { @@ -34,7 +135,7 @@ Search.prototype.documentKeydown = function (e) { e.stopPropagation(); this.triggerSearch(); } -} +}; Search.prototype.searchBoxKeydown = function (e) { e.stopPropagation(); @@ -45,18 +146,17 @@ Search.prototype.searchBoxKeydown = function (e) { e.preventDefault(); this.selectResult(); } -} +}; Search.prototype.searchBoxKeyup = function (e) { if (e.keyCode === 13 || e.keyCode === 9) { return; } - - this.search(e.target.value); -} + this.search(e.target.value); +}; -Search.prototype.triggerSearch = function (e) { +Search.prototype.triggerSearch = function () { if (this.menu.isVisible()) { this._closeAfterSearch = false; } else { @@ -66,33 +166,31 @@ Search.prototype.triggerSearch = function (e) { this.$searchBox.focus(); this.$searchBox.select(); -} +}; // bit 12 - Set if the result starts with searchString // bits 8-11: 8 - number of chunks multiplied by 2 if cases match, otherwise 1. // bits 1-7: 127 - length of the entry // General scheme: prefer case sensitive matches with fewer chunks, and otherwise // prefer shorter matches. -function relevance(result, searchString) { - var relevance = 0; - +function relevance(result) { + let relevance = 0; + relevance = Math.max(0, 8 - result.match.chunks) << 7; - + if (result.match.caseMatch) { relevance *= 2; } - + if (result.match.prefix) { - relevance += 2048 + relevance += 2048; } - - relevance += Math.max(0, 255 - result.entry.key.length); - + + relevance += Math.max(0, 255 - result.key.length); + return relevance; } Search.prototype.search = function (searchString) { - var s = Date.now(); - if (searchString === '') { this.displayResults([]); this.hideSearch(); @@ -100,65 +198,63 @@ Search.prototype.search = function (searchString) { } else { this.showSearch(); } - + if (searchString.length === 1) { this.displayResults([]); return; } - - var results; - if (/^[\d\.]*$/.test(searchString)) { - results = this.biblio.clauses.filter(function (clause) { - return clause.number.substring(0, searchString.length) === searchString; - }).map(function (clause) { - return { entry: clause }; - }); + let results; + + if (/^[\d.]*$/.test(searchString)) { + results = this.biblio.clauses + .filter(clause => clause.number.substring(0, searchString.length) === searchString) + .map(clause => ({ entry: clause })); } else { results = []; - - for (var i = 0; i < this.biblio.length; i++) { - var entry = this.biblio[i]; - if (!entry.key) { + + for (let i = 0; i < this.biblio.entries.length; i++) { + let entry = this.biblio.entries[i]; + let key = getKey(entry); + if (!key) { // biblio entries without a key aren't searchable continue; } - var match = fuzzysearch(searchString, entry.key); + let match = fuzzysearch(searchString, key); if (match) { - results.push({ entry: entry, match: match }); + results.push({ key, entry, match }); } } - - results.forEach(function (result) { + + results.forEach(result => { result.relevance = relevance(result, searchString); }); - - results = results.sort(function (a, b) { return b.relevance - a.relevance }); + results = results.sort((a, b) => b.relevance - a.relevance); } if (results.length > 50) { results = results.slice(0, 50); } - + this.displayResults(results); -} +}; Search.prototype.hideSearch = function () { this.$search.classList.remove('active'); -} +}; Search.prototype.showSearch = function () { this.$search.classList.add('active'); -} +}; Search.prototype.selectResult = function () { - var $first = this.$searchResults.querySelector('li:first-child a'); + let $first = this.$searchResults.querySelector('li:first-child a'); if ($first) { document.location = $first.getAttribute('href'); } - + this.$searchBox.value = ''; this.$searchBox.blur(); this.displayResults([]); @@ -167,53 +263,79 @@ Search.prototype.selectResult = function () { if (this._closeAfterSearch) { this.menu.hide(); } -} +}; Search.prototype.displayResults = function (results) { if (results.length > 0) { this.$searchResults.classList.remove('no-results'); - - var html = ''; this.$searchResults.innerHTML = html; } else { this.$searchResults.innerHTML = ''; this.$searchResults.classList.add('no-results'); } -} +}; +function getKey(item) { + if (item.key) { + return item.key; + } + switch (item.type) { + case 'clause': + return item.title || item.titleHTML; + case 'production': + return item.name; + case 'op': + return item.aoid; + case 'term': + return item.term; + case 'table': + case 'figure': + case 'example': + case 'note': + return item.caption; + case 'step': + return item.id; + default: + throw new Error("Can't get key for " + item.type); + } +} function Menu() { this.$toggle = document.getElementById('menu-toggle'); @@ -224,8 +346,8 @@ function Menu() { this.$toc = document.querySelector('#menu-toc > ol'); this.$specContainer = document.getElementById('spec-container'); this.search = new Search(this); - - this._pinnedIds = {}; + + this._pinnedIds = {}; this.loadPinEntries(); // toggle menu @@ -235,23 +357,23 @@ function Menu() { document.addEventListener('keydown', this.documentKeydown.bind(this)); // toc expansion - var tocItems = this.$menu.querySelectorAll('#menu-toc li'); - for (var i = 0; i < tocItems.length; i++) { - var $item = tocItems[i]; - $item.addEventListener('click', function($item, event) { + let tocItems = this.$menu.querySelectorAll('#menu-toc li'); + for (let i = 0; i < tocItems.length; i++) { + let $item = tocItems[i]; + $item.addEventListener('click', event => { $item.classList.toggle('active'); event.stopPropagation(); - }.bind(null, $item)); + }); } // close toc on toc item selection - var tocLinks = this.$menu.querySelectorAll('#menu-toc li > a'); - for (var i = 0; i < tocLinks.length; i++) { - var $link = tocLinks[i]; - $link.addEventListener('click', function(event) { + let tocLinks = this.$menu.querySelectorAll('#menu-toc li > a'); + for (let i = 0; i < tocLinks.length; i++) { + let $link = tocLinks[i]; + $link.addEventListener('click', event => { this.toggle(); event.stopPropagation(); - }.bind(this)); + }); } // update active clause on scroll @@ -259,19 +381,18 @@ function Menu() { this.updateActiveClause(); // prevent menu scrolling from scrolling the body - this.$toc.addEventListener('wheel', function (e) { - var target = e.currentTarget; - var offTop = e.deltaY < 0 && target.scrollTop === 0; + this.$toc.addEventListener('wheel', e => { + let target = e.currentTarget; + let offTop = e.deltaY < 0 && target.scrollTop === 0; if (offTop) { e.preventDefault(); } - var offBottom = e.deltaY > 0 - && target.offsetHeight + target.scrollTop >= target.scrollHeight; + let offBottom = e.deltaY > 0 && target.offsetHeight + target.scrollTop >= target.scrollHeight; if (offBottom) { - e.preventDefault(); - } - }) + e.preventDefault(); + } + }); } Menu.prototype.documentKeydown = function (e) { @@ -281,122 +402,116 @@ Menu.prototype.documentKeydown = function (e) { } else if (e.keyCode > 48 && e.keyCode < 58) { this.selectPin(e.keyCode - 49); } -} +}; Menu.prototype.updateActiveClause = function () { - this.setActiveClause(findActiveClause(this.$specContainer)) -} + this.setActiveClause(findActiveClause(this.$specContainer)); +}; Menu.prototype.setActiveClause = function (clause) { this.$activeClause = clause; this.revealInToc(this.$activeClause); -} +}; Menu.prototype.revealInToc = function (path) { - var current = this.$toc.querySelectorAll('li.revealed'); - for (var i = 0; i < current.length; i++) { + let current = this.$toc.querySelectorAll('li.revealed'); + for (let i = 0; i < current.length; i++) { current[i].classList.remove('revealed'); current[i].classList.remove('revealed-leaf'); } - - var current = this.$toc; - var index = 0; - while (index < path.length) { - var children = current.children; - for (var i = 0; i < children.length; i++) { - if ('#' + path[index].id === children[i].children[1].getAttribute('href') ) { + + current = this.$toc; + let index = 0; + outer: while (index < path.length) { + let children = current.children; + for (let i = 0; i < children.length; i++) { + if ('#' + path[index].id === children[i].children[1].hash) { children[i].classList.add('revealed'); if (index === path.length - 1) { children[i].classList.add('revealed-leaf'); - var rect = children[i].getBoundingClientRect(); - this.$toc.getBoundingClientRect().top - var tocRect = this.$toc.getBoundingClientRect(); + let rect = children[i].getBoundingClientRect(); + // this.$toc.getBoundingClientRect().top; + let tocRect = this.$toc.getBoundingClientRect(); if (rect.top + 10 > tocRect.bottom) { - this.$toc.scrollTop = this.$toc.scrollTop + (rect.top - tocRect.bottom) + (rect.bottom - rect.top); + this.$toc.scrollTop = + this.$toc.scrollTop + (rect.top - tocRect.bottom) + (rect.bottom - rect.top); } else if (rect.top < tocRect.top) { this.$toc.scrollTop = this.$toc.scrollTop - (tocRect.top - rect.top); } } current = children[i].querySelector('ol'); index++; - break; - } + continue outer; + } } - + console.log('could not find location in table of contents', path); + break; } -} +}; function findActiveClause(root, path) { - var clauses = new ClauseWalker(root); - var $clause; - var found = false; - var path = path || []; - - while ($clause = clauses.nextNode()) { - var rect = $clause.getBoundingClientRect(); - var $header = $clause.children[0]; - var marginTop = parseInt(getComputedStyle($header)["margin-top"]); - - if ((rect.top - marginTop) <= 0 && rect.bottom > 0) { - found = true; + let clauses = getChildClauses(root); + path = path || []; + + for (let $clause of clauses) { + let rect = $clause.getBoundingClientRect(); + let $header = $clause.querySelector('h1'); + let marginTop = Math.max( + parseInt(getComputedStyle($clause)['margin-top']), + parseInt(getComputedStyle($header)['margin-top']) + ); + + if (rect.top - marginTop <= 1 && rect.bottom > 0) { return findActiveClause($clause, path.concat($clause)) || path; } } - + return path; } -function ClauseWalker(root) { - var previous; - var treeWalker = document.createTreeWalker( - root, - NodeFilter.SHOW_ELEMENT, - { - acceptNode: function (node) { - if (previous === node.parentNode) { - return NodeFilter.FILTER_REJECT; - } else { - previous = node; - } - if (node.nodeName === 'EMU-CLAUSE' || node.nodeName === 'EMU-INTRO' || node.nodeName === 'EMU-ANNEX') { - return NodeFilter.FILTER_ACCEPT; - } else { - return NodeFilter.FILTER_SKIP; - } - } - }, - false - ); - - return treeWalker; +function* getChildClauses(root) { + for (let el of root.children) { + switch (el.nodeName) { + // descend into + case 'EMU-IMPORT': + yield* getChildClauses(el); + break; + + // accept , , and + case 'EMU-CLAUSE': + case 'EMU-INTRO': + case 'EMU-ANNEX': + yield el; + } + } } Menu.prototype.toggle = function () { this.$menu.classList.toggle('active'); -} +}; Menu.prototype.show = function () { this.$menu.classList.add('active'); -} +}; Menu.prototype.hide = function () { this.$menu.classList.remove('active'); -} +}; -Menu.prototype.isVisible = function() { +Menu.prototype.isVisible = function () { return this.$menu.classList.contains('active'); -} +}; Menu.prototype.showPins = function () { this.$pins.classList.add('active'); -} +}; Menu.prototype.hidePins = function () { this.$pins.classList.remove('active'); -} +}; Menu.prototype.addPinEntry = function (id) { - var entry = this.search.biblio.byId[id]; + let entry = this.search.biblio.byId[id]; if (!entry) { // id was deleted after pin (or something) so remove it delete this._pinnedIds[id]; @@ -405,15 +520,16 @@ Menu.prototype.addPinEntry = function (id) { } if (entry.type === 'clause') { - var prefix; + let prefix; if (entry.number) { prefix = entry.number + ' '; } else { prefix = ''; } - this.$pinList.innerHTML += '
  • ' + prefix + entry.titleHTML + '
  • '; + // prettier-ignore + this.$pinList.innerHTML += `
  • ${prefix}${entry.titleHTML}
  • `; } else { - this.$pinList.innerHTML += '
  • ' + entry.key + '
  • '; + this.$pinList.innerHTML += `
  • ${getKey(entry)}
  • `; } if (Object.keys(this._pinnedIds).length === 0) { @@ -421,10 +537,10 @@ Menu.prototype.addPinEntry = function (id) { } this._pinnedIds[id] = true; this.persistPinEntries(); -} +}; Menu.prototype.removePinEntry = function (id) { - var item = this.$pinList.querySelector('a[href="#' + id + '"]').parentNode; + let item = this.$pinList.querySelector(`a[href="${makeLinkToId(id)}"]`).parentNode; this.$pinList.removeChild(item); delete this._pinnedIds[id]; if (Object.keys(this._pinnedIds).length === 0) { @@ -432,7 +548,7 @@ Menu.prototype.removePinEntry = function (id) { } this.persistPinEntries(); -} +}; Menu.prototype.persistPinEntries = function () { try { @@ -442,7 +558,7 @@ Menu.prototype.persistPinEntries = function () { } localStorage.pinEntries = JSON.stringify(Object.keys(this._pinnedIds)); -} +}; Menu.prototype.loadPinEntries = function () { try { @@ -450,14 +566,14 @@ Menu.prototype.loadPinEntries = function () { } catch (e) { return; } - - var pinsString = window.localStorage.pinEntries; + + let pinsString = window.localStorage.pinEntries; if (!pinsString) return; - var pins = JSON.parse(pinsString); - for(var i = 0; i < pins.length; i++) { + let pins = JSON.parse(pinsString); + for (let i = 0; i < pins.length; i++) { this.addPinEntry(pins[i]); } -} +}; Menu.prototype.togglePinEntry = function (id) { if (!id) { @@ -469,57 +585,49 @@ Menu.prototype.togglePinEntry = function (id) { } else { this.addPinEntry(id); } -} +}; Menu.prototype.selectPin = function (num) { document.location = this.$pinList.children[num].children[0].href; -} +}; -var menu; -function init() { - menu = new Menu(); - var $container = document.getElementById('spec-container'); - $container.addEventListener('mouseover', debounce(function (e) { - Toolbox.activateIfMouseOver(e); - })); -} +let menu; document.addEventListener('DOMContentLoaded', init); function debounce(fn, opts) { opts = opts || {}; - var timeout; - return function(e) { + let timeout; + return function (e) { if (opts.stopPropagation) { e.stopPropagation(); } - var args = arguments; + let args = arguments; if (timeout) { clearTimeout(timeout); } - timeout = setTimeout(function() { + timeout = setTimeout(() => { timeout = null; fn.apply(this, args); - }.bind(this), 150); - } + }, 150); + }; } -var CLAUSE_NODES = ['EMU-CLAUSE', 'EMU-INTRO', 'EMU-ANNEX']; -function findLocalReferences ($elem) { - var name = $elem.innerHTML; - var references = []; - - var parentClause = $elem.parentNode; +let CLAUSE_NODES = ['EMU-CLAUSE', 'EMU-INTRO', 'EMU-ANNEX']; +function findContainer($elem) { + let parentClause = $elem.parentNode; while (parentClause && CLAUSE_NODES.indexOf(parentClause.nodeName) === -1) { parentClause = parentClause.parentNode; } + return parentClause; +} - if(!parentClause) return; - - var vars = parentClause.querySelectorAll('var'); +function findLocalReferences(parentClause, name) { + let vars = parentClause.querySelectorAll('var'); + let references = []; - for (var i = 0; i < vars.length; i++) { - var $var = vars[i]; + for (let i = 0; i < vars.length; i++) { + let $var = vars[i]; if ($var.innerHTML === name) { references.push($var); @@ -529,21 +637,38 @@ function findLocalReferences ($elem) { return references; } +let REFERENCED_CLASSES = Array.from({ length: 7 }, (x, i) => `referenced${i}`); +function chooseHighlightIndex(parentClause) { + let counts = REFERENCED_CLASSES.map($class => parentClause.getElementsByClassName($class).length); + // Find the earliest index with the lowest count. + let minCount = Infinity; + let index = null; + for (let i = 0; i < counts.length; i++) { + if (counts[i] < minCount) { + minCount = counts[i]; + index = i; + } + } + return index; +} + function toggleFindLocalReferences($elem) { - var references = findLocalReferences($elem); + let parentClause = findContainer($elem); + let references = findLocalReferences(parentClause, $elem.innerHTML); if ($elem.classList.contains('referenced')) { - references.forEach(function ($reference) { - $reference.classList.remove('referenced'); + references.forEach($reference => { + $reference.classList.remove('referenced', ...REFERENCED_CLASSES); }); } else { - references.forEach(function ($reference) { - $reference.classList.add('referenced'); + let index = chooseHighlightIndex(parentClause); + references.forEach($reference => { + $reference.classList.add('referenced', `referenced${index}`); }); } } -function installFindLocalReferences () { - document.addEventListener('click', function (e) { +function installFindLocalReferences() { + document.addEventListener('click', e => { if (e.target.nodeName === 'VAR') { toggleFindLocalReferences(e.target); } @@ -552,9 +677,6 @@ function installFindLocalReferences () { document.addEventListener('DOMContentLoaded', installFindLocalReferences); - - - // The following license applies to the fuzzysearch function // The MIT License (MIT) // Copyright © 2015 Nicolas Bevacqua @@ -575,17 +697,16 @@ document.addEventListener('DOMContentLoaded', installFindLocalReferences); // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -function fuzzysearch (searchString, haystack, caseInsensitive) { - var tlen = haystack.length; - var qlen = searchString.length; - var chunks = 1; - var finding = false; - var prefix = true; - +function fuzzysearch(searchString, haystack, caseInsensitive) { + let tlen = haystack.length; + let qlen = searchString.length; + let chunks = 1; + let finding = false; + if (qlen > tlen) { return false; } - + if (qlen === tlen) { if (searchString === haystack) { return { caseMatch: true, chunks: 1, prefix: true }; @@ -595,11 +716,12 @@ function fuzzysearch (searchString, haystack, caseInsensitive) { return false; } } - - outer: for (var i = 0, j = 0; i < qlen; i++) { - var nch = searchString[i]; + + let j = 0; + outer: for (let i = 0; i < qlen; i++) { + let nch = searchString[i]; while (j < tlen) { - var targetChar = haystack[j++]; + let targetChar = haystack[j++]; if (targetChar === nch) { finding = true; continue outer; @@ -609,91 +731,261 @@ function fuzzysearch (searchString, haystack, caseInsensitive) { finding = false; } } - - if (caseInsensitive) { return false } - + + if (caseInsensitive) { + return false; + } + return fuzzysearch(searchString.toLowerCase(), haystack.toLowerCase(), true); } - - return { caseMatch: !caseInsensitive, chunks: chunks, prefix: j <= qlen }; + + return { caseMatch: !caseInsensitive, chunks, prefix: j <= qlen }; } -var Toolbox = { - init: function () { +let referencePane = { + init() { + this.$container = document.createElement('div'); + this.$container.setAttribute('id', 'references-pane-container'); + + let $spacer = document.createElement('div'); + $spacer.setAttribute('id', 'references-pane-spacer'); + + this.$pane = document.createElement('div'); + this.$pane.setAttribute('id', 'references-pane'); + + this.$container.appendChild($spacer); + this.$container.appendChild(this.$pane); + + this.$header = document.createElement('div'); + this.$header.classList.add('menu-pane-header'); + this.$headerText = document.createElement('span'); + this.$header.appendChild(this.$headerText); + this.$headerRefId = document.createElement('a'); + this.$header.appendChild(this.$headerRefId); + this.$closeButton = document.createElement('span'); + this.$closeButton.setAttribute('id', 'references-pane-close'); + this.$closeButton.addEventListener('click', () => { + this.deactivate(); + }); + this.$header.appendChild(this.$closeButton); + + this.$pane.appendChild(this.$header); + let tableContainer = document.createElement('div'); + tableContainer.setAttribute('id', 'references-pane-table-container'); + + this.$table = document.createElement('table'); + this.$table.setAttribute('id', 'references-pane-table'); + + this.$tableBody = this.$table.createTBody(); + + tableContainer.appendChild(this.$table); + this.$pane.appendChild(tableContainer); + + menu.$specContainer.appendChild(this.$container); + }, + + activate() { + this.$container.classList.add('active'); + }, + + deactivate() { + this.$container.classList.remove('active'); + this.state = null; + }, + + showReferencesFor(entry) { + this.activate(); + this.state = { type: 'ref', id: entry.id }; + this.$headerText.textContent = 'References to '; + let newBody = document.createElement('tbody'); + let previousId; + let previousCell; + let dupCount = 0; + this.$headerRefId.textContent = '#' + entry.id; + this.$headerRefId.setAttribute('href', makeLinkToId(entry.id)); + this.$headerRefId.style.display = 'inline'; + (entry.referencingIds || []) + .map(id => { + let cid = menu.search.biblio.refParentClause[id]; + let clause = menu.search.biblio.byId[cid]; + if (clause == null) { + throw new Error('could not find clause for id ' + cid); + } + return { id, clause }; + }) + .sort((a, b) => sortByClauseNumber(a.clause, b.clause)) + .forEach(record => { + if (previousId === record.clause.id) { + previousCell.innerHTML += ` (${dupCount + 2})`; + dupCount++; + } else { + let row = newBody.insertRow(); + let cell = row.insertCell(); + cell.innerHTML = record.clause.number; + cell = row.insertCell(); + cell.innerHTML = `${record.clause.titleHTML}`; + previousCell = cell; + previousId = record.clause.id; + dupCount = 0; + } + }, this); + this.$table.removeChild(this.$tableBody); + this.$tableBody = newBody; + this.$table.appendChild(this.$tableBody); + }, + + showSDOs(sdos, alternativeId) { + let rhs = document.getElementById(alternativeId); + let parentName = rhs.parentNode.getAttribute('name'); + let colons = rhs.parentNode.querySelector('emu-geq'); + rhs = rhs.cloneNode(true); + rhs.querySelectorAll('emu-params,emu-constraints').forEach(e => { + e.remove(); + }); + rhs.querySelectorAll('[id]').forEach(e => { + e.removeAttribute('id'); + }); + rhs.querySelectorAll('a').forEach(e => { + e.parentNode.replaceChild(document.createTextNode(e.textContent), e); + }); + + // prettier-ignore + this.$headerText.innerHTML = `Syntax-Directed Operations for
    ${parentName} ${colons.outerHTML} `; + this.$headerText.querySelector('a').append(rhs); + this.showSDOsBody(sdos, alternativeId); + }, + + showSDOsBody(sdos, alternativeId) { + this.activate(); + this.state = { type: 'sdo', id: alternativeId, html: this.$headerText.innerHTML }; + this.$headerRefId.style.display = 'none'; + let newBody = document.createElement('tbody'); + Object.keys(sdos).forEach(sdoName => { + let pair = sdos[sdoName]; + let clause = pair.clause; + let ids = pair.ids; + let first = ids[0]; + let row = newBody.insertRow(); + let cell = row.insertCell(); + cell.innerHTML = clause; + cell = row.insertCell(); + let html = '' + sdoName + ''; + for (let i = 1; i < ids.length; ++i) { + html += ' (' + (i + 1) + ')'; + } + cell.innerHTML = html; + }); + this.$table.removeChild(this.$tableBody); + this.$tableBody = newBody; + this.$table.appendChild(this.$tableBody); + }, +}; + +let Toolbox = { + init() { + this.$outer = document.createElement('div'); + this.$outer.classList.add('toolbox-container'); this.$container = document.createElement('div'); this.$container.classList.add('toolbox'); + this.$outer.appendChild(this.$container); this.$permalink = document.createElement('a'); this.$permalink.textContent = 'Permalink'; this.$pinLink = document.createElement('a'); this.$pinLink.textContent = 'Pin'; this.$pinLink.setAttribute('href', '#'); - this.$pinLink.addEventListener('click', function (e) { + this.$pinLink.addEventListener('click', e => { e.preventDefault(); e.stopPropagation(); menu.togglePinEntry(this.entry.id); - }.bind(this)); + }); this.$refsLink = document.createElement('a'); this.$refsLink.setAttribute('href', '#'); - this.$refsLink.addEventListener('click', function (e) { + this.$refsLink.addEventListener('click', e => { e.preventDefault(); e.stopPropagation(); referencePane.showReferencesFor(this.entry); - }.bind(this)); + }); this.$container.appendChild(this.$permalink); this.$container.appendChild(this.$pinLink); this.$container.appendChild(this.$refsLink); - document.body.appendChild(this.$container); + document.body.appendChild(this.$outer); }, - activate: function (el, entry, target) { + activate(el, entry, target) { if (el === this._activeEl) return; + sdoBox.deactivate(); this.active = true; this.entry = entry; - this.$container.classList.add('active'); - this.top = el.offsetTop - this.$container.offsetHeight - 10; - this.left = el.offsetLeft; - this.$container.setAttribute('style', 'left: ' + this.left + 'px; top: ' + this.top + 'px'); + this.$outer.classList.add('active'); + this.top = el.offsetTop - this.$outer.offsetHeight; + this.left = el.offsetLeft - 10; + this.$outer.setAttribute('style', 'left: ' + this.left + 'px; top: ' + this.top + 'px'); this.updatePermalink(); this.updateReferences(); this._activeEl = el; if (this.top < document.body.scrollTop && el === target) { // don't scroll unless it's a small thing (< 200px) - this.$container.scrollIntoView(); + this.$outer.scrollIntoView(); } }, - updatePermalink: function () { - this.$permalink.setAttribute('href', '#' + this.entry.id); + updatePermalink() { + this.$permalink.setAttribute('href', makeLinkToId(this.entry.id)); }, - updateReferences: function () { - this.$refsLink.textContent = 'References (' + this.entry.referencingIds.length + ')'; + updateReferences() { + this.$refsLink.textContent = `References (${this.entry.referencingIds.length})`; }, - activateIfMouseOver: function (e) { - var ref = this.findReferenceUnder(e.target); + activateIfMouseOver(e) { + let ref = this.findReferenceUnder(e.target); if (ref && (!this.active || e.pageY > this._activeEl.offsetTop)) { - var entry = menu.search.biblio.byId[ref.id]; + let entry = menu.search.biblio.byId[ref.id]; this.activate(ref.element, entry, e.target); - } else if (this.active && ((e.pageY < this.top) || e.pageY > (this._activeEl.offsetTop + this._activeEl.offsetHeight))) { + } else if ( + this.active && + (e.pageY < this.top || e.pageY > this._activeEl.offsetTop + this._activeEl.offsetHeight) + ) { this.deactivate(); } }, - findReferenceUnder: function (el) { + findReferenceUnder(el) { while (el) { - var parent = el.parentNode; - if (el.nodeName === 'H1' && parent.nodeName.match(/EMU-CLAUSE|EMU-ANNEX|EMU-INTRO/) && parent.id) { + let parent = el.parentNode; + if (el.nodeName === 'EMU-RHS' || el.nodeName === 'EMU-PRODUCTION') { + return null; + } + if ( + el.nodeName === 'H1' && + parent.nodeName.match(/EMU-CLAUSE|EMU-ANNEX|EMU-INTRO/) && + parent.id + ) { return { element: el, id: parent.id }; - } else if (el.nodeName.match(/EMU-(?!CLAUSE|XREF|ANNEX|INTRO)|DFN/) && - el.id && el.id[0] !== '_') { - if (el.nodeName === 'EMU-FIGURE' || el.nodeName === 'EMU-TABLE' || el.nodeName === 'EMU-EXAMPLE') { + } else if (el.nodeName === 'EMU-NT') { + if ( + parent.nodeName === 'EMU-PRODUCTION' && + parent.id && + parent.id[0] !== '_' && + parent.firstElementChild === el + ) { + // return the LHS non-terminal element + return { element: el, id: parent.id }; + } + return null; + } else if ( + el.nodeName.match(/EMU-(?!CLAUSE|XREF|ANNEX|INTRO)|DFN/) && + el.id && + el.id[0] !== '_' + ) { + if ( + el.nodeName === 'EMU-FIGURE' || + el.nodeName === 'EMU-TABLE' || + el.nodeName === 'EMU-EXAMPLE' + ) { // return the figcaption element return { element: el.children[0].children[0], id: el.id }; - } else if (el.nodeName === 'EMU-PRODUCTION') { - // return the LHS non-terminal element - return { element: el.children[0], id: el.id }; } else { return { element: el, id: el.id }; } @@ -702,120 +994,26 @@ var Toolbox = { } }, - deactivate: function () { - this.$container.classList.remove('active'); + deactivate() { + this.$outer.classList.remove('active'); this._activeEl = null; - this.activeElBounds = null; this.active = false; - } -} - -var referencePane = { - init: function() { - this.$container = document.createElement('div'); - this.$container.setAttribute('id', 'references-pane-container'); - - var $spacer = document.createElement('div'); - $spacer.setAttribute('id', 'references-pane-spacer'); - - this.$pane = document.createElement('div'); - this.$pane.setAttribute('id', 'references-pane'); - - this.$container.appendChild($spacer); - this.$container.appendChild(this.$pane); - - this.$header = document.createElement('div'); - this.$header.classList.add('menu-pane-header'); - this.$header.textContent = 'References to '; - this.$headerRefId = document.createElement('a'); - this.$header.appendChild(this.$headerRefId); - this.$closeButton = document.createElement('span'); - this.$closeButton.setAttribute('id', 'references-pane-close'); - this.$closeButton.addEventListener('click', function (e) { - this.deactivate(); - }.bind(this)); - this.$header.appendChild(this.$closeButton); - - this.$pane.appendChild(this.$header); - var tableContainer = document.createElement('div'); - tableContainer.setAttribute('id', 'references-pane-table-container'); - - this.$table = document.createElement('table'); - this.$table.setAttribute('id', 'references-pane-table'); - - this.$tableBody = this.$table.createTBody(); - - tableContainer.appendChild(this.$table); - this.$pane.appendChild(tableContainer); - - menu.$specContainer.appendChild(this.$container); }, +}; - activate: function () { - this.$container.classList.add('active'); - }, +function sortByClauseNumber(clause1, clause2) { + let c1c = clause1.number.split('.'); + let c2c = clause2.number.split('.'); - deactivate: function () { - this.$container.classList.remove('active'); - }, - - showReferencesFor(entry) { - this.activate(); - var newBody = document.createElement('tbody'); - var previousId; - var previousCell; - var dupCount = 0; - this.$headerRefId.textContent = '#' + entry.id; - this.$headerRefId.setAttribute('href', '#' + entry.id); - entry.referencingIds.map(function (id) { - var target = document.getElementById(id); - var cid = findParentClauseId(target); - var clause = menu.search.biblio.byId[cid]; - var dupCount = 0; - return { id: id, clause: clause } - }).sort(function (a, b) { - return sortByClauseNumber(a.clause, b.clause); - }).forEach(function (record, i) { - if (previousId === record.clause.id) { - previousCell.innerHTML += ' (' + (dupCount + 2) + ')'; - dupCount++; - } else { - var row = newBody.insertRow(); - var cell = row.insertCell(); - cell.innerHTML = record.clause.number; - cell = row.insertCell(); - cell.innerHTML = '' + record.clause.titleHTML + ''; - previousCell = cell; - previousId = record.clause.id; - dupCount = 0; - } - }, this); - this.$table.removeChild(this.$tableBody); - this.$tableBody = newBody; - this.$table.appendChild(this.$tableBody); - } -} -function findParentClauseId(node) { - while (node && node.nodeName !== 'EMU-CLAUSE' && node.nodeName !== 'EMU-INTRO' && node.nodeName !== 'EMU-ANNEX') { - node = node.parentNode; - } - if (!node) return null; - return node.getAttribute('id'); -} - -function sortByClauseNumber(c1, c2) { - var c1c = c1.number.split('.'); - var c2c = c2.number.split('.'); - - for (var i = 0; i < c1c.length; i++) { + for (let i = 0; i < c1c.length; i++) { if (i >= c2c.length) { return 1; } - - var c1 = c1c[i]; - var c2 = c2c[i]; - var c1cn = Number(c1); - var c2cn = Number(c2); + + let c1 = c1c[i]; + let c2 = c2c[i]; + let c1cn = Number(c1); + let c2cn = Number(c2); if (Number.isNaN(c1cn) && Number.isNaN(c2cn)) { if (c1 > c2) { @@ -827,7 +1025,7 @@ function sortByClauseNumber(c1, c2) { return -1; } else if (Number.isNaN(c1cn) && !Number.isNaN(c2cn)) { return 1; - } else if(c1cn > c2cn) { + } else if (c1cn > c2cn) { return 1; } else if (c1cn < c2cn) { return -1; @@ -840,54 +1038,106 @@ function sortByClauseNumber(c1, c2) { return -1; } -document.addEventListener('DOMContentLoaded', function () { - Toolbox.init(); - referencePane.init(); -}) -var CLAUSE_NODES = ['EMU-CLAUSE', 'EMU-INTRO', 'EMU-ANNEX']; -function findLocalReferences ($elem) { - var name = $elem.innerHTML; - var references = []; - - var parentClause = $elem.parentNode; - while (parentClause && CLAUSE_NODES.indexOf(parentClause.nodeName) === -1) { - parentClause = parentClause.parentNode; +function makeLinkToId(id) { + let hash = '#' + id; + if (typeof idToSection === 'undefined' || !idToSection[id]) { + return hash; } + let targetSec = idToSection[id]; + return (targetSec === 'index' ? './' : targetSec + '.html') + hash; +} - if(!parentClause) return; - - var vars = parentClause.querySelectorAll('var'); - - for (var i = 0; i < vars.length; i++) { - var $var = vars[i]; - - if ($var.innerHTML === name) { - references.push($var); +function doShortcut(e) { + if (!(e.target instanceof HTMLElement)) { + return; + } + let target = e.target; + let name = target.nodeName.toLowerCase(); + if (name === 'textarea' || name === 'input' || name === 'select' || target.isContentEditable) { + return; + } + if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { + return; + } + if (e.key === 'm' && usesMultipage) { + let pathParts = location.pathname.split('/'); + let hash = location.hash; + if (pathParts[pathParts.length - 2] === 'multipage') { + if (hash === '') { + let sectionName = pathParts[pathParts.length - 1]; + if (sectionName.endsWith('.html')) { + sectionName = sectionName.slice(0, -5); + } + if (idToSection['sec-' + sectionName] !== undefined) { + hash = '#sec-' + sectionName; + } + } + location = pathParts.slice(0, -2).join('/') + '/' + hash; + } else { + location = 'multipage/' + hash; } + } else if (e.key === 'u') { + document.documentElement.classList.toggle('show-ao-annotations'); } - - return references; } -function toggleFindLocalReferences($elem) { - var references = findLocalReferences($elem); - if ($elem.classList.contains('referenced')) { - references.forEach(function ($reference) { - $reference.classList.remove('referenced'); - }); - } else { - references.forEach(function ($reference) { - $reference.classList.add('referenced'); - }); - } +function init() { + menu = new Menu(); + let $container = document.getElementById('spec-container'); + $container.addEventListener( + 'mouseover', + debounce(e => { + Toolbox.activateIfMouseOver(e); + }) + ); + document.addEventListener( + 'keydown', + debounce(e => { + if (e.code === 'Escape' && Toolbox.active) { + Toolbox.deactivate(); + } + }) + ); } -function installFindLocalReferences () { - document.addEventListener('click', function (e) { - if (e.target.nodeName === 'VAR') { - toggleFindLocalReferences(e.target); +document.addEventListener('keypress', doShortcut); + +document.addEventListener('DOMContentLoaded', () => { + Toolbox.init(); + referencePane.init(); +}); + +'use strict'; +let decimalBullet = Array.from({ length: 100 }, (a, i) => '' + (i + 1)); +let alphaBullet = Array.from({ length: 26 }, (a, i) => String.fromCharCode('a'.charCodeAt(0) + i)); + +// prettier-ignore +let romanBullet = ['i', 'ii', 'iii', 'iv', 'v', 'vi', 'vii', 'viii', 'ix', 'x', 'xi', 'xii', 'xiii', 'xiv', 'xv', 'xvi', 'xvii', 'xviii', 'xix', 'xx', 'xxi', 'xxii', 'xxiii', 'xxiv', 'xxv']; +// prettier-ignore +let bullets = [decimalBullet, alphaBullet, romanBullet, decimalBullet, alphaBullet, romanBullet]; + +function addStepNumberText(ol, parentIndex) { + for (let i = 0; i < ol.children.length; ++i) { + let child = ol.children[i]; + let index = parentIndex.concat([i]); + let applicable = bullets[Math.min(index.length - 1, 5)]; + let span = document.createElement('span'); + span.textContent = (applicable[i] || '?') + '. '; + span.style.fontSize = '0'; + span.setAttribute('aria-hidden', 'true'); + child.prepend(span); + let sublist = child.querySelector('ol'); + if (sublist != null) { + addStepNumberText(sublist, index); } - }); + } } +document.addEventListener('DOMContentLoaded', () => { + document.querySelectorAll('emu-alg > ol').forEach(ol => { + addStepNumberText(ol, []); + }); +}); -document.addEventListener('DOMContentLoaded', installFindLocalReferences); +let sdoMap = JSON.parse(`{}`); +let biblio = JSON.parse(`{"refsByClause":{"Set.prototype.filter":["_ref_0","_ref_1","_ref_2","_ref_3","_ref_4","_ref_5","_ref_6","_ref_7","_ref_8"],"Set.prototype.map":["_ref_9","_ref_10","_ref_11","_ref_12","_ref_13","_ref_14","_ref_15","_ref_16"],"Set.prototype.find":["_ref_17","_ref_18","_ref_19","_ref_20"],"Set.prototype.some":["_ref_21","_ref_22","_ref_23","_ref_24"],"Set.prototype.every":["_ref_25","_ref_26","_ref_27","_ref_28"],"Set.prototype.reduce":["_ref_29","_ref_30","_ref_31"],"Set.prototype.join":["_ref_32","_ref_33","_ref_34"],"Set.prototype.add-elements":["_ref_35","_ref_36","_ref_37","_ref_38"],"Set.prototype.remove-elements":["_ref_39","_ref_40","_ref_41","_ref_42","_ref_43"],"Map.prototype.filter":["_ref_44","_ref_45","_ref_46","_ref_47","_ref_48","_ref_49","_ref_50","_ref_51","_ref_52","_ref_53","_ref_54"],"Map.prototype.find":["_ref_55","_ref_56","_ref_57","_ref_58"],"Map.prototype.findKey":["_ref_59","_ref_60","_ref_61","_ref_62"],"Map.prototype.keyOf":["_ref_63","_ref_64"],"Map.prototype.some":["_ref_65","_ref_66","_ref_67","_ref_68"],"Map.prototype.every":["_ref_69","_ref_70","_ref_71","_ref_72"],"Map.prototype.includes":["_ref_73","_ref_74"],"Map.prototype.reduce":["_ref_75","_ref_76","_ref_77"],"Map.prototype.deleteAll":["_ref_78","_ref_79","_ref_80","_ref_81"],"Map.keyBy":["_ref_82","_ref_83","_ref_84","_ref_85","_ref_86","_ref_87","_ref_88","_ref_89","_ref_90","_ref_91"],"Map.groupBy":["_ref_92","_ref_93","_ref_94","_ref_95","_ref_96","_ref_97","_ref_98","_ref_99","_ref_100","_ref_101","_ref_102","_ref_103","_ref_104","_ref_105"],"WeakSet.prototype.addAll":["_ref_106","_ref_107","_ref_108","_ref_109"],"WeakSet.prototype.deleteAll":["_ref_110","_ref_111","_ref_112","_ref_113"],"WeakMap.prototype.deleteAll":["_ref_114","_ref_115","_ref_116","_ref_117"]},"entries":[{"type":"clause","id":"formalities","titleHTML":"Formal informations","number":"1"},{"type":"clause","id":"Set.prototype.filter","title":"Set.prototype.filter( callbackfn [ , thisArg ] )","titleHTML":"Set.prototype.filter( callbackfn [ , thisArg ] )","number":"2.1"},{"type":"clause","id":"Set.prototype.map","title":"Set.prototype.map( callbackfn [ , thisArg ] )","titleHTML":"Set.prototype.map( callbackfn [ , thisArg ] )","number":"2.2"},{"type":"clause","id":"Set.prototype.find","title":"Set.prototype.find( callbackfn [ , thisArg ] )","titleHTML":"Set.prototype.find( callbackfn [ , thisArg ] )","number":"2.3"},{"type":"clause","id":"Set.prototype.some","title":"Set.prototype.some( callbackfn [ , thisArg ] )","titleHTML":"Set.prototype.some( callbackfn [ , thisArg ] )","number":"2.4"},{"type":"clause","id":"Set.prototype.every","title":"Set.prototype.every( callbackfn [ , thisArg ] )","titleHTML":"Set.prototype.every( callbackfn [ , thisArg ] )","number":"2.5"},{"type":"clause","id":"Set.prototype.reduce","title":"Set.prototype.reduce( callbackfn [ , initialValue ] )","titleHTML":"Set.prototype.reduce( callbackfn [ , initialValue ] )","number":"2.6"},{"type":"clause","id":"Set.prototype.join","title":"Set.prototype.join( [ separator ] )","titleHTML":"Set.prototype.join( [ separator ] )","number":"2.7"},{"type":"clause","id":"Set.prototype.add-elements","title":"Set.prototype.addAll(...items)","titleHTML":"Set.prototype.addAll(...items)","number":"2.8"},{"type":"clause","id":"Set.prototype.remove-elements","title":"Set.prototype.deleteAll(...items)","titleHTML":"Set.prototype.deleteAll(...items)","number":"2.9"},{"type":"clause","id":"Set.prototype","titleHTML":"Set.prototype methods","number":"2"},{"type":"clause","id":"Map.prototype.mapValues","title":"Map.prototype.mapValues( callbackfn, [ thisArg ] )","titleHTML":"Map.prototype.mapValues( callbackfn, [ thisArg ] )","number":"3.1"},{"type":"clause","id":"Map.prototype.mapKeys","title":"Map.prototype.mapKeys( callbackfn, [ thisArg ] )","titleHTML":"Map.prototype.mapKeys( callbackfn, [ thisArg ] )","number":"3.2"},{"type":"clause","id":"Map.prototype.filter","title":"Map.prototype.filter( callbackfn, [ thisArg ] )","titleHTML":"Map.prototype.filter( callbackfn, [ thisArg ] )","number":"3.3"},{"type":"clause","id":"Map.prototype.find","title":"Map.prototype.find( callbackfn [ , thisArg ] )","titleHTML":"Map.prototype.find( callbackfn [ , thisArg ] )","number":"3.4"},{"type":"clause","id":"Map.prototype.findKey","title":"Map.prototype.findKey( callbackfn [ , thisArg ] )","titleHTML":"Map.prototype.findKey( callbackfn [ , thisArg ] )","number":"3.5"},{"type":"clause","id":"Map.prototype.keyOf","title":"Map.prototype.keyOf( searchElement )","titleHTML":"Map.prototype.keyOf( searchElement )","number":"3.6"},{"type":"clause","id":"Map.prototype.some","title":"Map.prototype.some( callbackfn [ , thisArg ] )","titleHTML":"Map.prototype.some( callbackfn [ , thisArg ] )","number":"3.7"},{"type":"clause","id":"Map.prototype.every","title":"Map.prototype.every( callbackfn [ , thisArg ] )","titleHTML":"Map.prototype.every( callbackfn [ , thisArg ] )","number":"3.8"},{"type":"clause","id":"Map.prototype.includes","title":"Map.prototype.includes( searchElement )","titleHTML":"Map.prototype.includes( searchElement )","number":"3.9"},{"type":"clause","id":"Map.prototype.reduce","title":"Map.prototype.reduce( callbackfn [ , initialValue ] )","titleHTML":"Map.prototype.reduce( callbackfn [ , initialValue ] )","number":"3.10"},{"type":"clause","id":"Map.prototype.merge","title":"Map.prototype.merge(... iterables )","titleHTML":"Map.prototype.merge(... iterables )","number":"3.11"},{"type":"clause","id":"Map.prototype.deleteAll","title":"Map.prototype.deleteAll(...items)","titleHTML":"Map.prototype.deleteAll(...items)","number":"3.12"},{"type":"clause","id":"Map.prototype.update","title":"Map.prototype.update(key, callback [, thunk])","titleHTML":"Map.prototype.update(key, callback [, thunk])","number":"3.13"},{"type":"clause","id":"Map.prototype","titleHTML":"Map.prototype methods","number":"3"},{"type":"clause","id":"Map.keyBy","title":"Map.keyBy( iterable, callbackfn)","titleHTML":"Map.keyBy( iterable, callbackfn)","number":"4.1"},{"type":"clause","id":"Map.groupBy","title":"Map.groupBy( iterable, callbackfn)","titleHTML":"Map.groupBy( iterable, callbackfn)","number":"4.2"},{"type":"clause","id":"Map","titleHTML":"Map static methods","number":"4"},{"type":"clause","id":"WeakSet.prototype.addAll","title":"WeakSet.prototype.addAll(...items)","titleHTML":"WeakSet.prototype.addAll(...items)","number":"5"},{"type":"clause","id":"WeakSet.prototype.deleteAll","title":"WeakSet.prototype.deleteAll(...items)","titleHTML":"WeakSet.prototype.deleteAll(...items)","number":"6"},{"type":"clause","id":"WeakMap.prototype.deleteAll","title":"WeakMap.prototype.deleteAll(...items)","titleHTML":"WeakMap.prototype.deleteAll(...items)","number":"7"},{"type":"clause","id":"sec-copyright-and-software-license","title":"Copyright & Software License","titleHTML":"Copyright & Software License","number":"A"}]}`); +;let usesMultipage = false \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 8dd54b1..e09d693 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,328 +1,266 @@ -New collections methods

    New collections methods

    +New collections methods

    New collections methods

    -

    1Formal informations

    +

    1 Formal informations

    -

    2Set.prototype methods

    +

    2 Set.prototype methods

    -

    2.1Set.prototype.filter( callbackfn [ , thisArg ] )

    -

    When the filter method is called, the following steps are taken:

    +

    2.1 Set.prototype.filter( callbackfn [ , thisArg ] )

    +

    When the filter method is called, the following steps are taken:

    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let Ctr be ? SpeciesConstructor(set, %Set%)
    5. Let newSet be ? Construct(Ctr)
    6. Let adder be ? Get(newSet, "add")
    7. If IsCallable(adder) is false, throw a TypeError exception.
    8. Let entries be the List that is set.[[SetData]]
    9. For each e that is an element of entries, in original insertion order, do:
      1. If e is not empty, then
        1. Let selected be ToBoolean(? Call(callbackfn, T, « e, e, set »))
        2. If selected is true, then:
          1. Call(adder, set, « e »)
    10. Return newSet. - -
      1. Let set be the this value.
        1. If Type(set) is not Object, throw a TypeError exception.
        2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let Ctr be ? SpeciesConstructor(set, %Set%)
      5. Let newSet be ? Construct(Ctr)
      6. Let adder be ? Get(newSet, "add")
      7. If IsCallable(adder) is false, throw a TypeError exception.
      8. Let entries be the List that is set.[[SetData]]
      9. For each e that is an element of entries, in original insertion order, do:
        1. If e is not empty, then
          1. Let selected be ToBoolean(? Call(callbackfn, T, « e, e, set »))
          2. If selected is true, then:
            1. Call(adder, set, « e »)
      10. Return newSet.
      - +
    -

    2.2Set.prototype.map( callbackfn [ , thisArg ] )

    -

    When the map method is called, the following steps are taken:

    - +

    2.2 Set.prototype.map( callbackfn [ , thisArg ] )

    +

    When the map method is called, the following steps are taken:

    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let Ctr be ? SpeciesConstructor(set, %Set%)
    5. Let newSet be ? Construct(Ctr)
    6. Let adder be ? Get(newSet, "add")
    7. If IsCallable(adder) is false, throw a TypeError exception.
    8. Let entries be the List that is set.[[SetData]]
    9. For each e that is an element of entries, in original insertion order, do:
      1. If e is not empty, then
        1. Let mappedValue be Call(callbackfn, T, « e, e, set »)
        2. Call(adder, set, « mappedValue »)
    10. Return newSet. -
      1. Let set be the this value.
        1. If Type(set) is not Object, throw a TypeError exception.
        2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let Ctr be ? SpeciesConstructor(set, %Set%)
      5. Let newSet be ? Construct(Ctr)
      6. Let adder be ? Get(newSet, "add")
      7. If IsCallable(adder) is false, throw a TypeError exception.
      8. Let entries be the List that is set.[[SetData]]
      9. For each e that is an element of entries, in original insertion order, do:
        1. If e is not empty, then
          1. Let mappedValue be Call(callbackfn, T, « e, e, set »)
          2. Call(adder, set, « mappedValue »)
      10. Return newSet.
      - +
    -

    2.3Set.prototype.find( callbackfn [ , thisArg ] )

    -

    When the find method is called, the following steps are taken:

    +

    2.3 Set.prototype.find( callbackfn [ , thisArg ] )

    +

    When the find method is called, the following steps are taken:

    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let entries be the List that is set.[[SetData]]
    5. For each ele that is an element of entries, in original insertion order, do:
      1. If ele is not empty, then
        1. Let testResult be ToBoolean(? Call(callbackfn, T, « ele, ele, set »))
        2. If testResult is true, then return ele
    6. Return undefined. - -
      1. Let set be the this value.
        1. If Type(set) is not Object, throw a TypeError exception.
        2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let entries be the List that is set.[[SetData]]
      5. For each ele that is an element of entries, in original insertion order, do:
        1. If ele is not empty, then
          1. Let testResult be ToBoolean(? Call(callbackfn, T, « ele, ele, set »))
          2. If testResult is true, then return ele
      6. Return undefined.
      - +
    -

    2.4Set.prototype.some( callbackfn [ , thisArg ] )

    -

    When the some method is called, the following steps are taken:

    - +

    2.4 Set.prototype.some( callbackfn [ , thisArg ] )

    +

    When the some method is called, the following steps are taken:

    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let entries be the List that is set.[[SetData]]
    5. For each e that is an element of entries, in original insertion order, do:
      1. If e is not empty, then
        1. Let testResult be ToBoolean(? Call(callbackfn, T, « e, e, set »))
        2. If testResult is true, then return true
    6. Return false. -
      1. Let set be the this value.
        1. If Type(set) is not Object, throw a TypeError exception.
        2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let entries be the List that is set.[[SetData]]
      5. For each e that is an element of entries, in original insertion order, do:
        1. If e is not empty, then
          1. Let testResult be ToBoolean(? Call(callbackfn, T, « e, e, set »))
          2. If testResult is true, then return true
      6. Return false.
      - +
    -

    2.5Set.prototype.every( callbackfn [ , thisArg ] )

    -

    When the every method is called, the following steps are taken:

    +

    2.5 Set.prototype.every( callbackfn [ , thisArg ] )

    +

    When the every method is called, the following steps are taken:

    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let entries be the List that is set.[[SetData]]
    5. For each e that is an element of entries, in original insertion order, do:
      1. If e is not empty, then
        1. Let testResult be ToBoolean(? Call(callbackfn, T, « e, e, set »))
        2. If testResult is false, then return false
    6. Return true. - -
      1. Let set be the this value.
        1. If Type(set) is not Object, throw a TypeError exception.
        2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let entries be the List that is set.[[SetData]]
      5. For each e that is an element of entries, in original insertion order, do:
        1. If e is not empty, then
          1. Let testResult be ToBoolean(? Call(callbackfn, T, « e, e, set »))
          2. If testResult is false, then return false
      6. Return true.
      - +
    -

    2.6Set.prototype.reduce( callbackfn [ , initialValue ] )

    -

    When the reduce method is called, the following steps are taken:

    - -
    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. Let entries be the List that is set.[[SetData]].
    4. Let accumulator be undefined
    5. Let first be true.
    6. If initialValue is present, then
      1. Set accumulator to initialValue
    7. For each e that is an element of entries, in original insertion order, do:
      1. If e is not empty, then
        1. If first be true and initialValue is not present:
          1. Set accumulator to e
        2. Else,
          1. Set accumulator to ? Call(callbackfn, undefined, « accumulator, e, e, map »)
        3. Set first to false
    8. If first is true and initialValue is not present, throw TypeError exception.
    9. Return accumulator.
    -
    +

    2.6 Set.prototype.reduce( callbackfn [ , initialValue ] )

    +

    When the reduce method is called, the following steps are taken:

    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. Let entries be the List that is set.[[SetData]].
    4. Let accumulator be undefined
    5. Let first be true.
    6. If initialValue is present, then
      1. Set accumulator to initialValue
    7. For each e that is an element of entries, in original insertion order, do:
      1. If e is not empty, then
        1. If first be true and initialValue is not present:
          1. Set accumulator to e
        2. Else,
          1. Set accumulator to ? Call(callbackfn, undefined, « accumulator, e, e, map »)
        3. Set first to false
    8. If first is true and initialValue is not present, throw TypeError exception.
    9. Return accumulator.
    -

    2.7Set.prototype.join( [ separator ] )

    -

    When the join method is called, the following steps are taken:

    - - -
    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If separator is undefined, let sep be the single-element String ",".
    3. Else, let sep be ? ToString(separator).
    4. Let R be the empty String.
    5. Let entries be the List that is set.[[SetData]]
    6. Let k be false.
    7. For each element that is an element of entries, in original insertion order, do:
      1. If element is not empty, then
        1. If k is true, let R be the string-concatenation of R and sep.
        2. Set k to true.
        3. Let next be ? ToString(element).
        4. Set R to the string-concatenation of R and next.
        5. Increase k by 1.
    8. Return R.
    -
    +

    2.7 Set.prototype.join( [ separator ] )

    +

    When the join method is called, the following steps are taken:

    1. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    2. If separator is undefined, let sep be the single-element String ",".
    3. Else, let sep be ? ToString(separator).
    4. Let R be the empty String.
    5. Let entries be the List that is set.[[SetData]]
    6. Let k be false.
    7. For each element that is an element of entries, in original insertion order, do:
      1. If element is not empty, then
        1. If k is true, let R be the string-concatenation of R and sep.
        2. Set k to true.
        3. Let next be ? ToString(element).
        4. Set R to the string-concatenation of R and next.
        5. Increase k by 1.
    8. Return R.
    -

    2.8Set.prototype.addAll(...items)

    -

    When the addAll method is called, the following steps are taken:

    +

    2.8 Set.prototype.addAll(...items)

    +

    When the addAll method is called, the following steps are taken:

    1. Let len be the actual number of arguments passed to this function.
    2. Let items be the List of arguments passed to this function.
    3. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
      2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
    4. Let elements be CreateArrayFromList(items).
    5. Let adder be ? Get(set, "add")
    6. Return ? AddEntriesFromIterable(set, elements, adder). -
      1. Let len be the actual number of arguments passed to this function.
      2. Let items be the List of arguments passed to this function.
      3. Let set be the this value.
        1. If Type(set) is not Object, throw a TypeError exception.
        2. If set does not have a [[SetData]] internal slot, throw a TypeError exception.
      4. Let elements be CreateArrayFromList(items).
      5. Let adder be ? Get(set, "add")
      6. Return ? AddEntriesFromIterable(set, elements, adder).
      - -

      The length property of the addAll method is 0.

      - +

    The length property of the addAll method is 0.

    -

    2.9Set.prototype.deleteAll(...items)

    -

    When the deleteAll method is called, the following steps are taken:

    +

    2.9 Set.prototype.deleteAll(...items)

    +

    When the deleteAll method is called, the following steps are taken:

    1. Let len be the actual number of arguments passed to this function.
    2. Let items be the List of arguments passed to this function.
    3. Let set be the this value.
      1. If Type(set) is not Object, throw a TypeError exception.
    4. Let k be 0.
    5. Let remover be ? Get(set, "delete")
    6. If IsCallable(remover) is false, throw a TypeError exception.
    7. Let allDeleted be true.
    8. Repeat while k < len
      1. Let value be items[k].
      2. Let wasDeleted be Call(remover, set, value)
      3. Set allDeleted to be allDeleted && wasDeleted
      4. Increase k by 1.
    9. Return ToBoolean(allDeleted); -
      1. Let len be the actual number of arguments passed to this function.
      2. Let items be the List of arguments passed to this function.
      3. Let set be the this value.
        1. If Type(set) is not Object, throw a TypeError exception.
      4. Let k be 0.
      5. Let remover be ? Get(set, "delete")
      6. If IsCallable(remover) is false, throw a TypeError exception.
      7. Let allDeleted be true.
      8. Repeat while k < len
        1. Let value be items[k].
        2. Let wasDeleted be Call(remover, set, value)
        3. Set allDeleted to be allDeleted && wasDeleted
        4. Increase k by 1.
      9. Return ToBoolean(allDeleted);
      +
    -

    3Map.prototype methods

    +

    3 Map.prototype methods

    -

    3.1Map.prototype.mapValues( callbackfn, [ thisArg ] )

    +

    3.1 Map.prototype.mapValues( callbackfn, [ thisArg ] )

    Editor's Note
    This code serves as placeholder until formal spec is written for this method. - -
    - -
    function mapValues(callbackFn, thisArg) {
    -    assert(isObject(this), 'this is not an object');
    -    assert(isCallable(callbackFn), 'callback is not a function');
    -    const Ctor = SpeciesConstructor(this, Map);
    -    const retObj = new Ctor();
    -    const _set = retObj.set;
    -    for(const [key, value] of this) {
    -        const newValue = Reflect.apply(callbackFn, thisArg, [value, key, this])
    -        Reflect.apply(_set, retObj, [key, newValue]);
    +
    function mapValues(callbackFn, thisArg) {
    +    assert(isObject(this), 'this is not an object');
    +    assert(isCallable(callbackFn), 'callback is not a function');
    +    const Ctor = SpeciesConstructor(this, Map);
    +    const retObj = new Ctor();
    +    const _set = retObj.set;
    +    for(const [key, value] of this) {
    +        const newValue = Reflect.apply(callbackFn, thisArg, [value, key, this])
    +        Reflect.apply(_set, retObj, [key, newValue]);
         }
         return retObj;
     }
    -

    3.2Map.prototype.mapKeys( callbackfn, [ thisArg ] )

    +

    3.2 Map.prototype.mapKeys( callbackfn, [ thisArg ] )

    Editor's Note
    This code serves as placeholder until formal spec is written for this method. - -
    - -
    function mapKeys(callbackFn, thisArg) {
    -    assert(isObject(this), 'this is not an object');
    -    assert(isCallable(callbackFn), 'callback is not a function');
    -    const Ctor = SpeciesConstructor(this, Map);
    -    const retObj = new Ctor();
    -    const _set = retObj.set;
    -    for(const [key, value] of this) {
    -        const newKey = Reflect.apply(callbackFn, thisArg, [value, key, this])
    -        Reflect.apply(_set, retObj, [newKey, value]);
    +
    function mapKeys(callbackFn, thisArg) {
    +    assert(isObject(this), 'this is not an object');
    +    assert(isCallable(callbackFn), 'callback is not a function');
    +    const Ctor = SpeciesConstructor(this, Map);
    +    const retObj = new Ctor();
    +    const _set = retObj.set;
    +    for(const [key, value] of this) {
    +        const newKey = Reflect.apply(callbackFn, thisArg, [value, key, this])
    +        Reflect.apply(_set, retObj, [newKey, value]);
         }
         return retObj;
     }
    -

    3.3Map.prototype.filter( callbackfn, [ thisArg ] )

    +

    3.3 Map.prototype.filter( callbackfn, [ thisArg ] )

    Editor's Note
    This code serves as placeholder until formal spec is written for this method. - -
    - -
    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let Ctr be ? SpeciesConstructor(map, %Map%)
    5. Let newMap be ? Construct(Ctr)
    6. Let adder be ? Get(newSet, "set")
      1. If IsCallable(adder) is false, throw a TypeError.
    7. Let entries be the List that is map.[[MapData]]
    8. Let newMapData be new empty List.
    9. For each Record { [[Key]], [[Value]] } p that is an element of entries, do
      1. If p.[[Key]] is not empty, then
        1. Let key be p.[[Key]]
        2. Let value be p.[[Value]]
        3. Let selected be ToBoolean(? Call(callbackfn, T, « value, key, map »))
        4. If selected is true, then
          1. Let pair be CreateArrayFromListvalue, key »)
          2. Append pair as last element to newMapData.
    10. Return ? AddEntriesFromIterable(map, CreateArrayFromList(newMapData), adder).
    +
    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let Ctr be ? SpeciesConstructor(map, %Map%)
    5. Let newMap be ? Construct(Ctr)
    6. Let adder be ? Get(newSet, "set")
      1. If IsCallable(adder) is false, throw a TypeError.
    7. Let entries be the List that is map.[[MapData]]
    8. Let newMapData be new empty List.
    9. For each Record { [[Key]], [[Value]] } p that is an element of entries, do
      1. If p.[[Key]] is not empty, then
        1. Let key be p.[[Key]]
        2. Let value be p.[[Value]]
        3. Let selected be ToBoolean(? Call(callbackfn, T, « value, key, map »))
        4. If selected is true, then
          1. Let pair be CreateArrayFromListvalue, key »)
          2. Append pair as last element to newMapData.
    10. Return ? AddEntriesFromIterable(map, CreateArrayFromList(newMapData), adder).
    -

    3.4Map.prototype.find( callbackfn [ , thisArg ] )

    -

    When the find method is called, the following steps are taken:

    - +

    3.4 Map.prototype.find( callbackfn [ , thisArg ] )

    +

    When the find method is called, the following steps are taken:

    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let entries be the List that is map.[[MapData]].
    5. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
      1. If e.[[Key]] is not empty, then
        1. Let testResult be ToBoolean(? Call(callbackfn, T, « e.[[Value]], e.[[Key]], map »)).
        2. If testResult is true, then return e.[[Value]].
    6. Return undefined. -
      1. Let map be the this value.
        1. If Type(map) is not Object, throw a TypeError exception.
        2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let entries be the List that is map.[[MapData]].
      5. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
        1. If e.[[Key]] is not empty, then
          1. Let testResult be ToBoolean(? Call(callbackfn, T, « e.[[Value]], e.[[Key]], map »)).
          2. If testResult is true, then return e.[[Value]].
      6. Return undefined.
      - +
    -

    3.5Map.prototype.findKey( callbackfn [ , thisArg ] )

    -

    When the findKey method is called, the following steps are taken:

    +

    3.5 Map.prototype.findKey( callbackfn [ , thisArg ] )

    +

    When the findKey method is called, the following steps are taken:

    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let entries be the List that is map.[[MapData]].
    5. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
      1. If e.[[Key]] is not empty, then
        1. Let testResult be ToBoolean(? Call(callbackfn, T, « e.[[Value]], e.[[Key]], map »)).
        2. If testResult is true, then return e.[[Key]].
    6. Return undefined. - -
      1. Let map be the this value.
        1. If Type(map) is not Object, throw a TypeError exception.
        2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let entries be the List that is map.[[MapData]].
      5. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
        1. If e.[[Key]] is not empty, then
          1. Let testResult be ToBoolean(? Call(callbackfn, T, « e.[[Value]], e.[[Key]], map »)).
          2. If testResult is true, then return e.[[Key]].
      6. Return undefined.
      - +
    -

    3.6Map.prototype.keyOf( searchElement )

    -

    When the keyOf method is called, the following steps are taken:

    - +

    3.6 Map.prototype.keyOf( searchElement )

    +

    When the keyOf method is called, the following steps are taken:

    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. Let entries be the List that is map.[[MapData]].
    3. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
      1. If e.[[Key]] is not empty, then
        1. Let same be the result of performing Strict Equality Comparison searchElement === e.[[Value]].
        2. If same is true, then return e.[[Key]].
    4. Return undefined. -
      1. Let map be the this value.
        1. If Type(map) is not Object, throw a TypeError exception.
        2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
      2. Let entries be the List that is map.[[MapData]].
      3. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
        1. If e.[[Key]] is not empty, then
          1. Let same be the result of performing Strict Equality Comparison searchElement === e.[[Value]].
          2. If same is true, then return e.[[Key]].
      4. Return undefined.
      - +
    -

    3.7Map.prototype.some( callbackfn [ , thisArg ] )

    -

    When the some method is called, the following steps are taken:

    +

    3.7 Map.prototype.some( callbackfn [ , thisArg ] )

    +

    When the some method is called, the following steps are taken:

    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let entries be the List that is map.[[MapData]].
    5. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
      1. If e.[[Key]] is not empty, then
        1. Let testResult be ToBoolean(? Call(callbackfn, T, « e.[[Value]], e.[[Key]], map »))
        2. If testResult is true, then return true
    6. Return false. - -
      1. Let map be the this value.
        1. If Type(map) is not Object, throw a TypeError exception.
        2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let entries be the List that is map.[[MapData]].
      5. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
        1. If e.[[Key]] is not empty, then
          1. Let testResult be ToBoolean(? Call(callbackfn, T, « e.[[Value]], e.[[Key]], map »))
          2. If testResult is true, then return true
      6. Return false.
      - +
    -

    3.8Map.prototype.every( callbackfn [ , thisArg ] )

    -

    When the every method is called, the following steps are taken:

    - +

    3.8 Map.prototype.every( callbackfn [ , thisArg ] )

    +

    When the every method is called, the following steps are taken:

    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. If thisArg was supplied, let T be thisArg; else let T be undefined.
    4. Let entries be the List that is map.[[MapData]].
    5. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
      1. If e.[[Key]] is not empty, then
        1. Let testResult be ToBoolean(? Call(callbackfn, T, « e.[[Value]], e.[[Key]], map »))
        2. If testResult is false, then return false
    6. Return true. -
      1. Let map be the this value.
        1. If Type(map) is not Object, throw a TypeError exception.
        2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. If thisArg was supplied, let T be thisArg; else let T be undefined.
      4. Let entries be the List that is map.[[MapData]].
      5. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
        1. If e.[[Key]] is not empty, then
          1. Let testResult be ToBoolean(? Call(callbackfn, T, « e.[[Value]], e.[[Key]], map »))
          2. If testResult is false, then return false
      6. Return true.
      - +
    -

    3.9Map.prototype.includes( searchElement )

    -

    When the includes method is called, the following steps are taken:

    +

    3.9 Map.prototype.includes( searchElement )

    +

    When the includes method is called, the following steps are taken:

    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. Let entries be the List that is map.[[MapData]].
    3. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
      1. If e.[[Key]] is not empty, then
        1. If SameValueZero(searchElement, e.[[Value]]) is true, return true.
    4. Return false. - -
      1. Let map be the this value.
        1. If Type(map) is not Object, throw a TypeError exception.
        2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
      2. Let entries be the List that is map.[[MapData]].
      3. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
        1. If e.[[Key]] is not empty, then
          1. If SameValueZero(searchElement, e.[[Value]]) is true, return true.
      4. Return false.
      - +
    -

    3.10Map.prototype.reduce( callbackfn [ , initialValue ] )

    -

    When the reduce method is called, the following steps are taken:

    - -
    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. Let entries be the List that is map.[[MapData]].
    4. Let accumulator be undefined
    5. Let first be true.
    6. If initialValue is present, then
      1. Set accumulator to initialValue
    7. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
      1. If e.[[Key]] is not empty, then
        1. If first be true and initialValue is not present:
          1. Set accumulator to e.[[Value]]
        2. Else,
          1. Set accumulator to ? Call(callbackfn, undefined, « accumulator, e.[[Value]], e.[[Key]], map »)
        3. Set first to false
    8. If first is true and initialValue is not present, throw TypeError exception.
    9. Return accumulator.
    -
    +

    3.10 Map.prototype.reduce( callbackfn [ , initialValue ] )

    +

    When the reduce method is called, the following steps are taken:

    1. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. Let entries be the List that is map.[[MapData]].
    4. Let accumulator be undefined
    5. Let first be true.
    6. If initialValue is present, then
      1. Set accumulator to initialValue
    7. For each Record { [[Key]], [[Value]] } e that is an element of entries, in original key insertion order, do:
      1. If e.[[Key]] is not empty, then
        1. If first be true and initialValue is not present:
          1. Set accumulator to e.[[Value]]
        2. Else,
          1. Set accumulator to ? Call(callbackfn, undefined, « accumulator, e.[[Value]], e.[[Key]], map »)
        3. Set first to false
    8. If first is true and initialValue is not present, throw TypeError exception.
    9. Return accumulator.
    -

    3.11Map.prototype.merge(... iterables )

    +

    3.11 Map.prototype.merge(... iterables )

    Editor's Note
    This code serves as placeholder until formal spec is written for this method. - -
    - -
    function merge(...iterables) {
    -    assert(isObject(this), 'this is not an object');
    -    assert(this instanceof Map, 'this is not a Map instance');
    +
    function merge(...iterables) {
    +    assert(isObject(this), 'this is not an object');
    +    assert(this instanceof Map, 'this is not a Map instance');
         for(const iterable of iterables) {
             for(const [key, value] of iterable) {
    -            this.set(key, value);
    +            this.set(key, value);
             }
         }
     
    -    return this;
    +    return this;
     }
    -

    3.12Map.prototype.deleteAll(...items)

    -

    When the deleteAll method is called, the following steps are taken:

    +

    3.12 Map.prototype.deleteAll(...items)

    +

    When the deleteAll method is called, the following steps are taken:

    The length property of the deleteAll method is 0.

    1. Let len be the actual number of arguments passed to this function.
    2. Let items be the List of arguments passed to this function.
    3. Let map be the this value.
      1. If Type(map) is not Object, throw a TypeError exception.
      2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    4. Let k be 0.
    5. Let remover be ? Get(map, "delete")
    6. If IsCallable(remover) is false, throw a TypeError exception.
    7. Repeat while k < len
      1. Let value be items[k].
      2. Call(remover, map, value)
      3. Increase k by 1.
    8. Return map. -
      1. Let len be the actual number of arguments passed to this function.
      2. Let items be the List of arguments passed to this function.
      3. Let map be the this value.
        1. If Type(map) is not Object, throw a TypeError exception.
        2. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
      1. Let k be 0.
      2. Let remover be ? Get(map, "delete")
      3. If IsCallable(remover) is false, throw a TypeError exception.
      4. Repeat while k < len
        1. Let value be items[k].
        2. Call(remover, map, value)
        3. Increase k by 1.
      5. Return map.
      - -

      The length property of the deleteAll method is 0.

      - +
    -

    3.13Map.prototype.update(key, callback [, thunk])

    +

    3.13 Map.prototype.update(key, callback [, thunk])

    Editor's Note
    This code serves as placeholder until formal spec is written for this method. - -
    - -
    function update(key, cb, thunk) {
    -    assert(isObject(this), 'this is not an object');
    -    assert(isCallable(callbackFn), 'callback is not a function');
    -    asset(isMap(this), 'this is not a Map instance');
    -    const isPresentInMap = this.has(key);
    -    if (isPresentInMap === false && arguments.length < 3) {
    -        throw new Error('Invalid!');
    +
    function update(key, cb, thunk) {
    +    assert(isObject(this), 'this is not an object');
    +    assert(isCallable(callbackFn), 'callback is not a function');
    +    asset(isMap(this), 'this is not a Map instance');
    +    const isPresentInMap = this.has(key);
    +    if (isPresentInMap === false && arguments.length < 3) {
    +        throw new Error('Invalid!');
         }
    -    const value = isPresentInMap ? this.get(key) : thunk(key, this);
    -    const newValue = cb(value, key, this);
    -    this.set(key, newValue);
    -    return this;
    +    const value = isPresentInMap ? this.get(key) : thunk(key, this);
    +    const newValue = cb(value, key, this);
    +    this.set(key, newValue);
    +    return this;
     }
    -

    4Map static methods

    +

    4 Map static methods

    -

    4.1Map.keyBy( iterable, callbackfn)

    -

    When the keyBy method is called, the following steps are taken:

    - - -
    1. Let C be the this value.
    2. If IsConstructor(C) is true
      1. Let map be ? Construct(C)
    3. Else,
      1. Throw a TypeError.
    4. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    5. If IsCallable(callbackfn) is false, throw a TypeError exception.
    6. Let set be ? Get(map, "set")
    7. Let iteratorRecord be ? GetIterator(iterable).
    8. Repeat,
      1. Let next be ? IteratorStep(iteratorRecord).
      2. If next is false, return map.
      3. Let item be ? IteratorValue(next).
      4. Let key be Call(callbackfn, null, « item »)
      5. Let status be Call(set, map, « key.[[Value]], value.[[Value]] »).
      6. If status is an abrupt completion, return ? IteratorClose(iteratorRecord, status).
    -
    +

    4.1 Map.keyBy( iterable, callbackfn)

    +

    When the keyBy method is called, the following steps are taken:

    1. Let C be the this value.
    2. If IsConstructor(C) is true
      1. Let map be ? Construct(C)
    3. Else,
      1. Throw a TypeError.
    4. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    5. If IsCallable(callbackfn) is false, throw a TypeError exception.
    6. Let set be ? Get(map, "set")
    7. Let iteratorRecord be ? GetIterator(iterable).
    8. Repeat,
      1. Let next be ? IteratorStep(iteratorRecord).
      2. If next is false, return map.
      3. Let item be ? IteratorValue(next).
      4. Let key be Call(callbackfn, null, « item »)
      5. Let status be Call(set, map, « key.[[Value]], value.[[Value]] »).
      6. If status is an abrupt completion, return ? IteratorClose(iteratorRecord, status).
    -

    4.2Map.groupBy( iterable, callbackfn)

    -

    When the groupBy method is called, the following steps are taken:

    +

    4.2 Map.groupBy( iterable, callbackfn)

    +

    When the groupBy method is called, the following steps are taken:

    1. Let C be the this value.
    2. If IsCallable(callbackfn) is false, throw a TypeError exception.
    3. Let iteratorRecord be ? GetIterator(iterable).
    4. Let internalList be new empty List.
    5. Let next be guard value.
    6. If IsConstructor(C) is true
      1. Let map be ? Construct(C)
    7. Else,
      1. Throw a TypeError.
    8. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
    9. Repeat while next is not false,
      1. Set next be ? IteratorStep(iteratorRecord).
      2. If next is not false,
        1. Let item be ? IteratorValue(next);
        2. Let key be Call(callbackfn, null, « item »)
        3. If key is an abrupt completion, return ? IteratorClose(iteratorRecord, key).
        4. Let entryWasFound be false
        5. For each Record { [[Key, [[Value]] } p that is an element of internalList, do
          1. If p.[[Key]] is not empty and SameValueZero(p.[[Key]], key) is true, then
            1. Let grouped be p.[[Value]]
            2. Append item as last element of grouped.
            3. Let entryWasFound be true.
        6. If entryWasFound is false
          1. Let groupedList be « item ».
          2. Let record be the Record { [[Key]]: key, [[Value]]: groupedList }
          3. Append record as last element of internalList.
    10. Let intermediateList be new empty List.
    11. For each record in internalList,
      1. Let arr be CreateArrayFromList(record.[[Value]]).
      2. Let pair be CreateArrayFromListrecord.[[Key]], arr »)
      3. Append pair as last element of intermediateList.
    12. newMapData be CreateArrayFromList(intermediateList)
    13. Let adder be ? Get(map, "set")
    14. Return ? AddEntriesFromIterable(map, newMapData, adder). + -
      1. Let C be the this value.
      2. If IsCallable(callbackfn) is false, throw a TypeError exception.
      3. Let iteratorRecord be ? GetIterator(iterable).
      4. Let internalList be new empty List.
      5. Let next be guard value.
      6. If IsConstructor(C) is true
        1. Let map be ? Construct(C)
      7. Else,
        1. Throw a TypeError.
      8. If map does not have a [[MapData]] internal slot, throw a TypeError exception.
      9. Repeat while next is not false,
        1. Set next be ? IteratorStep(iteratorRecord).
        2. If next is not false,
          1. Let item be ? IteratorValue(next);
          2. Let key be Call(callbackfn, null, « item »)
          3. If key is an abrupt completion, return ? IteratorClose(iteratorRecord, key).
          4. Let entryWasFound be false
          5. For each Record { [[Key, [[Value]] } p that is an element of internalList, do
            1. If p.[[Key]] is not empty and SameValueZero(p.[[Key]], key) is true, then
              1. Let grouped be p.[[Value]]
              2. Append item as last element of grouped.
              3. Let entryWasFound be true.
          6. If entryWasFound is false
            1. Let groupedList be « item ».
            2. Let record be the Record { [[Key]]: key, [[Value]]: groupedList }
            3. Append record as last element of internalList.
      10. Let intermediateList be new empty List.
      11. For each record in internalList,
        1. Let arr be CreateArrayFromList(record.[[Value]]).
        2. Let pair be CreateArrayFromListrecord.[[Key]], arr »)
        3. Append pair as last element of intermediateList.
      12. newMapData be CreateArrayFromList(intermediateList)
      13. Let adder be ? Get(map, "set")
      14. Return ? AddEntriesFromIterable(map, newMapData, adder).
      +
    -

    5WeakSet.prototype.addAll(...items)

    -

    When the addAll method is called, the following steps are taken:

    +

    5 WeakSet.prototype.addAll(...items)

    +

    When the addAll method is called, the following steps are taken:

    1. Let len be the actual number of arguments passed to this function.
    2. Let items be the List of arguments passed to this function.
    3. Let weakset be the this value.
      1. If Type(weakset) is not Object, throw a TypeError exception.
    4. Let k be 0.
    5. Let adder be ? Get(weakset, "add")
    6. If IsCallable(adder) is false, throw a TypeError exception.
    7. Repeat while k < len
      1. Let kValue be items[k].
      2. Call(adder, weakset, kValue)
      3. Increase k by 1.
    8. Return weakset. -
      1. Let len be the actual number of arguments passed to this function.
      2. Let items be the List of arguments passed to this function.
      3. Let weakset be the this value.
        1. If Type(weakset) is not Object, throw a TypeError exception.
      4. Let k be 0.
      5. Let adder be ? Get(weakset, "add")
      6. If IsCallable(adder) is false, throw a TypeError exception.
      7. Repeat while k < len
        1. Let kValue be items[k].
        2. Call(adder, weakset, kValue)
        3. Increase k by 1.
      8. Return weakset.
      - -

      The length property of the addAll method is 0.

      - +

    The length property of the addAll method is 0.

    -

    6WeakSet.prototype.deleteAll(...items)

    -

    When the deleteAll method is called, the following steps are taken:

    - -
    1. Let len be the actual number of arguments passed to this function.
    2. Let items be the List of arguments passed to this function.
    3. Let weakset be the this value.
      1. If Type(weakset) is not Object, throw a TypeError exception.
    4. Let k be 0.
    5. Let remover be ? Get(weakset, "delete")
    6. If IsCallable(remover) is false, throw a TypeError exception.
    7. Repeat while k < len
      1. Let value be items[k].
      2. Call(remover, weakset, value)
      3. Increase k by 1.
    8. Return weakset.
    +

    6 WeakSet.prototype.deleteAll(...items)

    +

    When the deleteAll method is called, the following steps are taken:

    1. Let len be the actual number of arguments passed to this function.
    2. Let items be the List of arguments passed to this function.
    3. Let weakset be the this value.
      1. If Type(weakset) is not Object, throw a TypeError exception.
    4. Let k be 0.
    5. Let remover be ? Get(weakset, "delete")
    6. If IsCallable(remover) is false, throw a TypeError exception.
    7. Repeat while k < len
      1. Let value be items[k].
      2. Call(remover, weakset, value)
      3. Increase k by 1.
    8. Return weakset. -

      The length property of the deleteAll method is 0.

      - +

    The length property of the deleteAll method is 0.

    -

    7WeakMap.prototype.deleteAll(...items)

    -

    When the deleteAll method is called, the following steps are taken:

    - -
    1. Let len be the actual number of arguments passed to this function.
    2. Let items be the List of arguments passed to this function.
    3. Let weakmap be the this value.
      1. If Type(weakmap) is not Object, throw a TypeError exception.
    4. Let k be 0.
    5. Let remover be ? Get(weakmap, "delete")
    6. If IsCallable(remover) is false, throw a TypeError exception.
    7. Repeat while k < len
      1. Let value be items[k].
      2. Call(remover, weakmap, value)
      3. Increase k by 1.
    8. Return weakmap.
    +

    7 WeakMap.prototype.deleteAll(...items)

    +

    When the deleteAll method is called, the following steps are taken:

    1. Let len be the actual number of arguments passed to this function.
    2. Let items be the List of arguments passed to this function.
    3. Let weakmap be the this value.
      1. If Type(weakmap) is not Object, throw a TypeError exception.
    4. Let k be 0.
    5. Let remover be ? Get(weakmap, "delete")
    6. If IsCallable(remover) is false, throw a TypeError exception.
    7. Repeat while k < len
      1. Let value be items[k].
      2. Call(remover, weakmap, value)
      3. Increase k by 1.
    8. Return weakmap. -

      The length property of the deleteAll method is 0.

      - +

    The length property of the deleteAll method is 0.

    -

    ACopyright & Software License

    +

    A Copyright & Software License

    Copyright Notice

    -

    © 2019 Michał Wadas, Ecma International

    +

    © 2021 Michał Wadas, Ecma International

    Software License

    All Software contained in this document ("Software") is protected by copyright and is being made available under the "BSD License", included below. This Software may be subject to third party rights (rights from parties other than Ecma International), including patent rights, and no licenses under such third party rights are granted under this license even if the third party concerned is a member of Ecma International. SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS AVAILABLE AT https://ecma-international.org/memento/codeofconduct.htm FOR INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO IMPLEMENT ECMA INTERNATIONAL STANDARDS.

    diff --git a/package-lock.json b/package-lock.json index 10c192c..377c6e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,31 +1,2897 @@ { "name": "proposal-set-methods", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "proposal-set-methods", + "version": "1.0.0", + "license": "Fair", + "dependencies": { + "chai": "^4.2.0", + "mocha": "^5.2.0" + }, + "devDependencies": { + "ecmarkup": "^9.6.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@esfx/async-canceltoken": { + "version": "1.0.0-pre.30", + "resolved": "https://registry.npmjs.org/@esfx/async-canceltoken/-/async-canceltoken-1.0.0-pre.30.tgz", + "integrity": "sha512-4he0W+ZKH4OO4RvGfmATIibO5JzGLQqwm4Dp3X15bWnguDTmmOFt3Qt169Doij/gXxn2aPpZvxUaYIEebi8Xig==", + "dev": true, + "dependencies": { + "@esfx/cancelable": "^1.0.0-pre.30", + "@esfx/collections-linkedlist": "^1.0.0-pre.24", + "@esfx/disposable": "^1.0.0-pre.30", + "@esfx/internal-guards": "^1.0.0-pre.23", + "@esfx/internal-tag": "^1.0.0-pre.19", + "tslib": "^2.1.0" + } + }, + "node_modules/@esfx/cancelable": { + "version": "1.0.0-pre.30", + "resolved": "https://registry.npmjs.org/@esfx/cancelable/-/cancelable-1.0.0-pre.30.tgz", + "integrity": "sha512-fo0+/D3tEcSOHdZ8HiCR7qOKl5Tkk6Nw6QJNNXSQ0ejlpP3HU4S2i0rb/tjHQ1EkUcWZfB3g2jzfL0ioQSEgGg==", + "dev": true, + "dependencies": { + "@esfx/disposable": "^1.0.0-pre.30", + "@esfx/internal-deprecate": "^1.0.0-pre.24", + "@esfx/internal-guards": "^1.0.0-pre.23", + "@esfx/internal-tag": "^1.0.0-pre.19" + } + }, + "node_modules/@esfx/collection-core": { + "version": "1.0.0-pre.24", + "resolved": "https://registry.npmjs.org/@esfx/collection-core/-/collection-core-1.0.0-pre.24.tgz", + "integrity": "sha512-OIgMS91JmjSoRWD7u/DfnDzo8vDggeTeUPRi1p5WhyboY0+IwmetEqgeHZb8bpka/SsmtYX5qxqEjeqNXqh+pA==", + "dev": true, + "dependencies": { + "@esfx/internal-deprecate": "^1.0.0-pre.24", + "@esfx/internal-guards": "^1.0.0-pre.23" + } + }, + "node_modules/@esfx/collections-linkedlist": { + "version": "1.0.0-pre.24", + "resolved": "https://registry.npmjs.org/@esfx/collections-linkedlist/-/collections-linkedlist-1.0.0-pre.24.tgz", + "integrity": "sha512-Maya8jXH0xvzyfeSH88/j2b5gavO/mluslgIC2Ttdz8rh6+3o8/pVYriceH/Jinn4pgTEzDhO6Rn/aruZG0+Ug==", + "dev": true, + "dependencies": { + "@esfx/collection-core": "^1.0.0-pre.24", + "@esfx/equatable": "^1.0.0-pre.19", + "@esfx/internal-guards": "^1.0.0-pre.23" + } + }, + "node_modules/@esfx/disposable": { + "version": "1.0.0-pre.30", + "resolved": "https://registry.npmjs.org/@esfx/disposable/-/disposable-1.0.0-pre.30.tgz", + "integrity": "sha512-njBGIQO+HW+lMqqMjURC+MWn+55ufulgebPLXzlxbwVSz5hZkoCsv6n9sIBQbnvg/PYQmWK5Dk6gDSmFfihTUg==", + "dev": true + }, + "node_modules/@esfx/equatable": { + "version": "1.0.0-pre.19", + "resolved": "https://registry.npmjs.org/@esfx/equatable/-/equatable-1.0.0-pre.19.tgz", + "integrity": "sha512-+f6Xm6GOigyGx7t0D0IyG9Z0AuYDhNWjwV49vs5uNG/+0VQAOSYjmnpSzTZRYcYwxW52DmWJWFYNY8bvCDD2ag==", + "dev": true + }, + "node_modules/@esfx/internal-deprecate": { + "version": "1.0.0-pre.24", + "resolved": "https://registry.npmjs.org/@esfx/internal-deprecate/-/internal-deprecate-1.0.0-pre.24.tgz", + "integrity": "sha512-TSU5k04+nuVQdyfYhaVXxyskdiwYQHgwN20J3cbyRrm/YFi2dOoFSLFvkMNh7LNOPGWSOg6pfAm3kd23ISR3Ow==", + "dev": true + }, + "node_modules/@esfx/internal-guards": { + "version": "1.0.0-pre.23", + "resolved": "https://registry.npmjs.org/@esfx/internal-guards/-/internal-guards-1.0.0-pre.23.tgz", + "integrity": "sha512-y2svuwRERA2eKF1T/Stq+O8kPjicFQcUTob5je3L6iloOHnOD0sX6aQLvheWmTXXS7hAnjlyMeSN/ec84BRyHg==", + "dev": true, + "dependencies": { + "@esfx/type-model": "^1.0.0-pre.23" + } + }, + "node_modules/@esfx/internal-tag": { + "version": "1.0.0-pre.19", + "resolved": "https://registry.npmjs.org/@esfx/internal-tag/-/internal-tag-1.0.0-pre.19.tgz", + "integrity": "sha512-/v1D5LfvBnbvHzL22Vh6yobrOTVCBhsW/l9M+/GRA51eqCN27yTmWGaYUSd1QXp2vxHwNr0sfckVoNtTzeaIqQ==", + "dev": true + }, + "node_modules/@esfx/type-model": { + "version": "1.0.0-pre.23", + "resolved": "https://registry.npmjs.org/@esfx/type-model/-/type-model-1.0.0-pre.23.tgz", + "integrity": "sha512-jwcSY9pqEmGoDNhfT+0LUmSTyk6zXF/pbgKb7KU7mTfCrWfVCT/ve61cD1CreerDRBSat/s55se0lJXwDSjhuA==", + "dev": true + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "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/abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dev": true, + "dependencies": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "engines": { + "node": "*" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "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/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "dependencies": { + "cssom": "0.3.x" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "node_modules/data-urls/node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha1-vuX7fJ5yfYXf+iRZDRDsGrElUwU=", + "dev": true + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "dependencies": { + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecmarkdown": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ecmarkdown/-/ecmarkdown-6.0.2.tgz", + "integrity": "sha512-I5ASKhWOFShuvmb1BOr8TTsULSw9Qo6mvFGup9eEyYoAZGHeN/0mbtmrUe7ZOAwx7/On0i8AsSOObEu6MqPTMg==", + "dev": true, + "dependencies": { + "escape-html": "^1.0.1" + } + }, + "node_modules/ecmarkup": { + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/ecmarkup/-/ecmarkup-9.6.3.tgz", + "integrity": "sha512-YLskqCc1m6oX7NdmG0LXJTMjt2nlAYqX4MQn1YdRu+TLTO7CtIBWreHyslSWNMyg39auUbGgcXCltFlBGpqCXw==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "dedent-js": "^1.0.1", + "ecmarkdown": "^6.0.2", + "eslint": "^7.29.0", + "fast-glob": "^3.2.7", + "grammarkdown": "3.1.2", + "highlight.js": "11.0.1", + "html-escape": "^1.0.2", + "js-yaml": "^3.13.1", + "jsdom": "11.10.0", + "nomnom": "^1.8.1", + "prex": "^0.4.7", + "promise-debounce": "^1.0.1" + }, + "bin": { + "ecmarkup": "bin/ecmarkup.js", + "emu-format": "bin/emu-format.js" + }, + "engines": { + "node": ">= 12 || ^11.10.1 || ^10.13 || ^8.10" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/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/eslint/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/eslint/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "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" + } + }, + "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", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "engines": { + "node": "*" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/grammarkdown": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/grammarkdown/-/grammarkdown-3.1.2.tgz", + "integrity": "sha512-2WHeSg1sYjeeWMqnt0jEa4FyhofhE8T02a9PhBXvA1+6hLdZ39E753X05LYIdTff+1GYW6UMy+2nLfeQYQZ9Hw==", + "dev": true, + "dependencies": { + "@esfx/async-canceltoken": "^1.0.0-pre.13", + "@esfx/cancelable": "^1.0.0-pre.13" + }, + "bin": { + "grammarkdown": "bin/grammarkdown" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.0.1.tgz", + "integrity": "sha512-EqYpWyTF2s8nMfttfBA2yLKPNoZCO33pLS4MnbXQ4hECf1TKujCt1Kq7QAdrio7roL4+CqsfjqwYj4tYgq0pJQ==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.1" + } + }, + "node_modules/html-escape": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-escape/-/html-escape-1.0.2.tgz", + "integrity": "sha1-X6eHwFaAkP4zLtWzz0qk9kZCGnQ=", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-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/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/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsdom": { + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.10.0.tgz", + "integrity": "sha512-x5No5FpJgBg3j5aBwA8ka6eGuS5IxbC8FOkmyccKvObtFT0bDMict/LOxINZsZGZSfGdNomLZ/qRV9Bpq/GIBA==", + "dev": true, + "dependencies": { + "abab": "^1.0.4", + "acorn": "^5.3.0", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.0", + "escodegen": "^1.9.0", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.2.0", + "nwmatcher": "^1.4.3", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.83.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.3", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.0", + "ws": "^4.0.0", + "xml-name-validator": "^3.0.0" + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "deprecated": "use String.prototype.padStart()", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "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/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": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "node_modules/mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dependencies": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "deprecated": "Package no longer supported. Contact support@npmjs.com for more info.", + "dev": true, + "dependencies": { + "chalk": "~0.4.0", + "underscore": "~1.6.0" + } + }, + "node_modules/nomnom/node_modules/ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nomnom/node_modules/chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "dependencies": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nomnom/node_modules/strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true, + "bin": { + "strip-ansi": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "engines": { + "node": "*" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prex": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/prex/-/prex-0.4.7.tgz", + "integrity": "sha512-ulhl3iyjmAW/GroRQJN4CG+pC6KJ+W+deNRBkEShQwe16wLP9k92+x6RmLJuLiVSGkbxhnAqHpGdJJCh3bRpUQ==", + "dev": true, + "dependencies": { + "@esfx/cancelable": "^1.0.0-pre.13", + "@esfx/disposable": "^1.0.0-pre.13" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-debounce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-debounce/-/promise-debounce-1.0.1.tgz", + "integrity": "sha1-btdvj3nQFE/b0BzBVYnOV/nXHng=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "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/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/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/rimraf/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/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/slice-ansi/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/slice-ansi/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/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/table": { + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "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/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "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/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", + "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ws/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "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 + } + }, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", - "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "dev": true }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -53,137 +2919,185 @@ } }, "@esfx/async-canceltoken": { - "version": "1.0.0-pre.13", - "resolved": "https://registry.npmjs.org/@esfx/async-canceltoken/-/async-canceltoken-1.0.0-pre.13.tgz", - "integrity": "sha512-D8OF4aZWRuJDW9FAV8D8JB4umDvBpd6VF82Pybh/tFJ9FqIjZ80aURPwYDhQkK+9coF//Qx3zfsLO6ifSpjJJQ==", + "version": "1.0.0-pre.30", + "resolved": "https://registry.npmjs.org/@esfx/async-canceltoken/-/async-canceltoken-1.0.0-pre.30.tgz", + "integrity": "sha512-4he0W+ZKH4OO4RvGfmATIibO5JzGLQqwm4Dp3X15bWnguDTmmOFt3Qt169Doij/gXxn2aPpZvxUaYIEebi8Xig==", "dev": true, "requires": { - "@esfx/cancelable": "^1.0.0-pre.13", - "@esfx/collections-linkedlist": "^1.0.0-pre.13", - "@esfx/disposable": "^1.0.0-pre.13", - "@esfx/internal-guards": "^1.0.0-pre.11", - "@esfx/internal-tag": "^1.0.0-pre.6", - "tslib": "^1.9.3" + "@esfx/cancelable": "^1.0.0-pre.30", + "@esfx/collections-linkedlist": "^1.0.0-pre.24", + "@esfx/disposable": "^1.0.0-pre.30", + "@esfx/internal-guards": "^1.0.0-pre.23", + "@esfx/internal-tag": "^1.0.0-pre.19", + "tslib": "^2.1.0" } }, "@esfx/cancelable": { - "version": "1.0.0-pre.13", - "resolved": "https://registry.npmjs.org/@esfx/cancelable/-/cancelable-1.0.0-pre.13.tgz", - "integrity": "sha512-JpcXOrEPh/AMaZ8OGWrjYq+o65/emqxZFnW7NRRS6x8nrHbbZTUHEJnQmjahXkjvliPBgsFqueaLphXP52ACug==", + "version": "1.0.0-pre.30", + "resolved": "https://registry.npmjs.org/@esfx/cancelable/-/cancelable-1.0.0-pre.30.tgz", + "integrity": "sha512-fo0+/D3tEcSOHdZ8HiCR7qOKl5Tkk6Nw6QJNNXSQ0ejlpP3HU4S2i0rb/tjHQ1EkUcWZfB3g2jzfL0ioQSEgGg==", "dev": true, "requires": { - "@esfx/disposable": "^1.0.0-pre.13", - "@esfx/internal-deprecate": "^1.0.0-pre.13", - "@esfx/internal-guards": "^1.0.0-pre.11", - "@esfx/internal-tag": "^1.0.0-pre.6", - "tslib": "^1.9.3" + "@esfx/disposable": "^1.0.0-pre.30", + "@esfx/internal-deprecate": "^1.0.0-pre.24", + "@esfx/internal-guards": "^1.0.0-pre.23", + "@esfx/internal-tag": "^1.0.0-pre.19" } }, "@esfx/collection-core": { - "version": "1.0.0-pre.13", - "resolved": "https://registry.npmjs.org/@esfx/collection-core/-/collection-core-1.0.0-pre.13.tgz", - "integrity": "sha512-jMOy2238UjUeHC0sRVaNeJ2koK/YLZxITKTLbZfWUJpfp/4UVmDO/npv0cxIcob59KdWRf5MONjgz2WdzNpU+A==", + "version": "1.0.0-pre.24", + "resolved": "https://registry.npmjs.org/@esfx/collection-core/-/collection-core-1.0.0-pre.24.tgz", + "integrity": "sha512-OIgMS91JmjSoRWD7u/DfnDzo8vDggeTeUPRi1p5WhyboY0+IwmetEqgeHZb8bpka/SsmtYX5qxqEjeqNXqh+pA==", "dev": true, "requires": { - "@esfx/internal-deprecate": "^1.0.0-pre.13", - "@esfx/internal-guards": "^1.0.0-pre.11", - "tslib": "^1.9.3" + "@esfx/internal-deprecate": "^1.0.0-pre.24", + "@esfx/internal-guards": "^1.0.0-pre.23" } }, "@esfx/collections-linkedlist": { - "version": "1.0.0-pre.13", - "resolved": "https://registry.npmjs.org/@esfx/collections-linkedlist/-/collections-linkedlist-1.0.0-pre.13.tgz", - "integrity": "sha512-rddmq8BWGxo0rnobqexp1XTF1iJqezxemPHgAvJBD8dLVowrZ/ffVkj5wjmbHtaTh2qwHhJ/kThyyT9/RzLKJg==", + "version": "1.0.0-pre.24", + "resolved": "https://registry.npmjs.org/@esfx/collections-linkedlist/-/collections-linkedlist-1.0.0-pre.24.tgz", + "integrity": "sha512-Maya8jXH0xvzyfeSH88/j2b5gavO/mluslgIC2Ttdz8rh6+3o8/pVYriceH/Jinn4pgTEzDhO6Rn/aruZG0+Ug==", "dev": true, "requires": { - "@esfx/collection-core": "^1.0.0-pre.13", - "@esfx/equatable": "^1.0.0-pre.13", - "@esfx/internal-guards": "^1.0.0-pre.11", - "tslib": "^1.9.3" + "@esfx/collection-core": "^1.0.0-pre.24", + "@esfx/equatable": "^1.0.0-pre.19", + "@esfx/internal-guards": "^1.0.0-pre.23" } }, "@esfx/disposable": { - "version": "1.0.0-pre.13", - "resolved": "https://registry.npmjs.org/@esfx/disposable/-/disposable-1.0.0-pre.13.tgz", - "integrity": "sha512-rTypmtVgC8nx3gfxHIX96By2UNub0ewRthxUiWE1x/+NTSfzGOHVpVu0H8DF+VQJND04E6srcwwbO+Hpek16GA==", - "dev": true, - "requires": { - "@esfx/internal-deprecate": "^1.0.0-pre.13", - "@esfx/internal-guards": "^1.0.0-pre.11", - "@esfx/internal-tag": "^1.0.0-pre.6", - "tslib": "^1.9.3" - } + "version": "1.0.0-pre.30", + "resolved": "https://registry.npmjs.org/@esfx/disposable/-/disposable-1.0.0-pre.30.tgz", + "integrity": "sha512-njBGIQO+HW+lMqqMjURC+MWn+55ufulgebPLXzlxbwVSz5hZkoCsv6n9sIBQbnvg/PYQmWK5Dk6gDSmFfihTUg==", + "dev": true }, "@esfx/equatable": { - "version": "1.0.0-pre.13", - "resolved": "https://registry.npmjs.org/@esfx/equatable/-/equatable-1.0.0-pre.13.tgz", - "integrity": "sha512-2vYdGp5yCPB0HFLqetOqTVBuUfxos38La195fkeGJilNF/hZ1Zvwx2nrMuwyypKn5lyCZ9GgxJ5XlvY/rV8EwA==", - "dev": true, - "requires": { - "@esfx/internal-deprecate": "^1.0.0-pre.13", - "@esfx/internal-hashcode": "^1.0.0-pre.9", - "tslib": "^1.9.3" - } + "version": "1.0.0-pre.19", + "resolved": "https://registry.npmjs.org/@esfx/equatable/-/equatable-1.0.0-pre.19.tgz", + "integrity": "sha512-+f6Xm6GOigyGx7t0D0IyG9Z0AuYDhNWjwV49vs5uNG/+0VQAOSYjmnpSzTZRYcYwxW52DmWJWFYNY8bvCDD2ag==", + "dev": true }, "@esfx/internal-deprecate": { - "version": "1.0.0-pre.13", - "resolved": "https://registry.npmjs.org/@esfx/internal-deprecate/-/internal-deprecate-1.0.0-pre.13.tgz", - "integrity": "sha512-uF4EhrILmUJdcDkSQNsr+33XEKaMj92/8804VIHswytdbwaQjQ85dbj1bSB9TFsXG2zkZtJo09NKNQ9p7NvTPQ==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } + "version": "1.0.0-pre.24", + "resolved": "https://registry.npmjs.org/@esfx/internal-deprecate/-/internal-deprecate-1.0.0-pre.24.tgz", + "integrity": "sha512-TSU5k04+nuVQdyfYhaVXxyskdiwYQHgwN20J3cbyRrm/YFi2dOoFSLFvkMNh7LNOPGWSOg6pfAm3kd23ISR3Ow==", + "dev": true }, "@esfx/internal-guards": { - "version": "1.0.0-pre.11", - "resolved": "https://registry.npmjs.org/@esfx/internal-guards/-/internal-guards-1.0.0-pre.11.tgz", - "integrity": "sha512-DnRXkwwSrqIaml+sAm/zzpfDOCBnZkzflmGB833AqVYbgopO7xPBobngxqGBhYjutgTmVuXV3GKP0g08h4mQEw==", + "version": "1.0.0-pre.23", + "resolved": "https://registry.npmjs.org/@esfx/internal-guards/-/internal-guards-1.0.0-pre.23.tgz", + "integrity": "sha512-y2svuwRERA2eKF1T/Stq+O8kPjicFQcUTob5je3L6iloOHnOD0sX6aQLvheWmTXXS7hAnjlyMeSN/ec84BRyHg==", "dev": true, "requires": { - "@esfx/type-model": "^1.0.0-pre.11", - "tslib": "^1.9.3" + "@esfx/type-model": "^1.0.0-pre.23" } }, - "@esfx/internal-hashcode": { - "version": "1.0.0-pre.9", - "resolved": "https://registry.npmjs.org/@esfx/internal-hashcode/-/internal-hashcode-1.0.0-pre.9.tgz", - "integrity": "sha512-TJ43s8iE6wnVHT3CyIaRIZRlOOFIlK7m0hk1fl2D0ZzrTLtw5GUEcMFqV2sIGkGXrEKjEqwkuK1/vPQl9rikvA==", + "@esfx/internal-tag": { + "version": "1.0.0-pre.19", + "resolved": "https://registry.npmjs.org/@esfx/internal-tag/-/internal-tag-1.0.0-pre.19.tgz", + "integrity": "sha512-/v1D5LfvBnbvHzL22Vh6yobrOTVCBhsW/l9M+/GRA51eqCN27yTmWGaYUSd1QXp2vxHwNr0sfckVoNtTzeaIqQ==", + "dev": true + }, + "@esfx/type-model": { + "version": "1.0.0-pre.23", + "resolved": "https://registry.npmjs.org/@esfx/type-model/-/type-model-1.0.0-pre.23.tgz", + "integrity": "sha512-jwcSY9pqEmGoDNhfT+0LUmSTyk6zXF/pbgKb7KU7mTfCrWfVCT/ve61cD1CreerDRBSat/s55se0lJXwDSjhuA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { - "@esfx/internal-murmur3": "^1.0.0-pre.5", - "tslib": "^1.9.3" + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, - "@esfx/internal-murmur3": { - "version": "1.0.0-pre.5", - "resolved": "https://registry.npmjs.org/@esfx/internal-murmur3/-/internal-murmur3-1.0.0-pre.5.tgz", - "integrity": "sha512-Jq+oO1sbxWeUvIoyS7tOF+jg1KLitOOD1/TPTmdYGu/ss53kM8GXaGw5H4x/g07tQfQdC3QyDlepxK/dvoQqoQ==", + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { - "tslib": "^1.9.3" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, - "@esfx/internal-tag": { - "version": "1.0.0-pre.6", - "resolved": "https://registry.npmjs.org/@esfx/internal-tag/-/internal-tag-1.0.0-pre.6.tgz", - "integrity": "sha512-nODidP9/RBLqX39HL12IhFLgaoBHrC5nrm6D/BwquCGNoPQI9EXNPau+IdmGqeUcaMoVOFLFOkYtnHU52RVngw==", + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "@esfx/type-model": { - "version": "1.0.0-pre.11", - "resolved": "https://registry.npmjs.org/@esfx/type-model/-/type-model-1.0.0-pre.11.tgz", - "integrity": "sha512-ImM8fj0HFE2GRPRq+q1xnW3kNaIbZscpJfWjGyeo9KdMxKoI75bJebsA3XK6AH9zbEWba+521V+m6NDvDhcnSw==", + "@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": { - "tslib": "^1.9.3" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "@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" + } + }, "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", @@ -191,9 +3105,9 @@ "dev": true }, "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-globals": { @@ -207,18 +3121,19 @@ }, "dependencies": { "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true } } }, "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} }, "acorn-walk": { "version": "6.2.0", @@ -227,9 +3142,9 @@ "dev": true }, "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "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", @@ -238,22 +3153,11 @@ "uri-js": "^4.2.2" } }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true }, "ansi-regex": { "version": "2.1.1", @@ -283,9 +3187,9 @@ "dev": true }, "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "requires": { "safer-buffer": "~2.1.0" @@ -303,9 +3207,9 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async-limiter": { @@ -327,9 +3231,9 @@ "dev": true }, "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, "balanced-match": { @@ -346,12 +3250,6 @@ "tweetnacl": "^0.14.3" } }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -361,6 +3259,15 @@ "concat-map": "0.0.1" } }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", @@ -418,32 +3325,11 @@ } } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -485,24 +3371,14 @@ "dev": true }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "cssom": { @@ -541,9 +3417,9 @@ }, "dependencies": { "abab": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", - "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "whatwg-url": { @@ -567,6 +3443,12 @@ "ms": "2.0.0" } }, + "dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha1-vuX7fJ5yfYXf+iRZDRDsGrElUwU=", + "dev": true + }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", @@ -576,9 +3458,9 @@ } }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "delayed-stream": { @@ -621,26 +3503,27 @@ } }, "ecmarkdown": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/ecmarkdown/-/ecmarkdown-5.0.2.tgz", - "integrity": "sha512-SYMAz8dwLVHz4ggUypzcohIzqL1DNRrvWhPNU8vk4/QcAChlIyWyBZuxg/YTskdMnT3sRUADr61kV9MOjfeRfA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ecmarkdown/-/ecmarkdown-6.0.2.tgz", + "integrity": "sha512-I5ASKhWOFShuvmb1BOr8TTsULSw9Qo6mvFGup9eEyYoAZGHeN/0mbtmrUe7ZOAwx7/On0i8AsSOObEu6MqPTMg==", "dev": true, "requires": { "escape-html": "^1.0.1" } }, "ecmarkup": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/ecmarkup/-/ecmarkup-3.23.0.tgz", - "integrity": "sha512-QF+Z8JL9tUzruT/d7JTW3ztwwdhZaPHHlzXGOtQzBaoniu7xzwROdsOrsWvGkYJAy6TnKbQynMKHz6vApoS1WQ==", + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/ecmarkup/-/ecmarkup-9.6.3.tgz", + "integrity": "sha512-YLskqCc1m6oX7NdmG0LXJTMjt2nlAYqX4MQn1YdRu+TLTO7CtIBWreHyslSWNMyg39auUbGgcXCltFlBGpqCXw==", "dev": true, "requires": { - "bluebird": "^3.7.2", "chalk": "^1.1.3", - "ecmarkdown": "^5.0.2", - "eslint": "^6.8.0", - "grammarkdown": "^2.2.0", - "highlight.js": "^9.17.1", + "dedent-js": "^1.0.1", + "ecmarkdown": "^6.0.2", + "eslint": "^7.29.0", + "fast-glob": "^3.2.7", + "grammarkdown": "3.1.2", + "highlight.js": "11.0.1", "html-escape": "^1.0.2", "js-yaml": "^3.13.1", "jsdom": "11.10.0", @@ -655,6 +3538,15 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -667,9 +3559,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.2.tgz", - "integrity": "sha512-InuOIiKk8wwuOFg6x9BQXbzjrQhtyXh46K9bqVTPzSo2FnyMBaYGBMC6PhQy7yxxil9vIedFBweQBMK74/7o8A==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "requires": { "esprima": "^4.0.1", @@ -677,139 +3569,234 @@ "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } } }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "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": "^1.9.0" + "color-convert": "^2.0.1" } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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 + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "has-flag": "^4.0.0" } } } }, "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz", - "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "esprima": { @@ -819,29 +3806,37 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "estraverse": { @@ -862,17 +3857,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -885,6 +3869,19 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "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" + } + }, "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", @@ -897,39 +3894,47 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "reusify": "^1.0.4" } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "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": { - "flat-cache": "^2.0.1" + "to-regex-range": "^5.0.1" } }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "forever-agent": { @@ -988,32 +3993,31 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" } }, "grammarkdown": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/grammarkdown/-/grammarkdown-2.2.0.tgz", - "integrity": "sha512-tWDnlX5pAJhOCoha7G71UPpuRDeUeD81W5GXCumSirePoFGMqaskDZJSpEGQwcn29CMXK8cdOakDDIKSmnL/NQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/grammarkdown/-/grammarkdown-3.1.2.tgz", + "integrity": "sha512-2WHeSg1sYjeeWMqnt0jEa4FyhofhE8T02a9PhBXvA1+6hLdZ39E753X05LYIdTff+1GYW6UMy+2nLfeQYQZ9Hw==", "dev": true, "requires": { "@esfx/async-canceltoken": "^1.0.0-pre.13", - "@esfx/cancelable": "^1.0.0-pre.13", - "prex": "^0.4.7" + "@esfx/cancelable": "^1.0.0-pre.13" } }, "growl": { @@ -1028,12 +4032,12 @@ "dev": true }, "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "dev": true, "requires": { - "ajv": "^6.5.5", + "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, @@ -1063,9 +4067,9 @@ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" }, "highlight.js": { - "version": "9.18.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz", - "integrity": "sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.0.1.tgz", + "integrity": "sha512-EqYpWyTF2s8nMfttfBA2yLKPNoZCO33pLS4MnbXQ4hECf1TKujCt1Kq7QAdrio7roL4+CqsfjqwYj4tYgq0pJQ==", "dev": true }, "html-encoding-sniffer": { @@ -1110,9 +4114,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1139,94 +4143,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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 - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1240,14 +4156,20 @@ "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.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 + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -1273,9 +4195,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "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", @@ -1331,9 +4253,9 @@ } }, "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true }, "json-schema-traverse": { @@ -1355,14 +4277,14 @@ "dev": true }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" } }, @@ -1373,19 +4295,25 @@ "dev": true }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.sortby": { @@ -1394,27 +4322,52 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "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": { - "mime-db": "1.44.0" + "yallist": "^4.0.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "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": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "requires": { + "mime-db": "1.51.0" + } + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1428,23 +4381,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } - } - }, "mocha": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", @@ -1478,24 +4414,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "nomnom": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", @@ -1551,35 +4475,20 @@ "wrappy": "1" } }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -1601,9 +4510,9 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "pathval": { @@ -1617,6 +4526,12 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", @@ -1624,9 +4539,9 @@ "dev": true }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prex": { @@ -1669,10 +4584,16 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "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 + }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "request": { @@ -1704,54 +4625,56 @@ } }, "request-promise-core": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", - "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", "dev": true, "requires": { - "lodash": "^4.17.15" + "lodash": "^4.17.19" } }, "request-promise-native": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", - "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", "dev": true, "requires": { - "request-promise-core": "1.1.3", + "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "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" }, "dependencies": { "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -1764,19 +4687,13 @@ } } }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "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": { - "tslib": "^1.9.0" + "queue-microtask": "^1.2.2" } }, "safe-buffer": { @@ -1798,56 +4715,62 @@ "dev": true }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "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": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "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": "^1.9.0" + "color-convert": "^2.0.1" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "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 } } @@ -1889,29 +4812,29 @@ "dev": true }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -1926,9 +4849,9 @@ } }, "strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { @@ -1946,53 +4869,49 @@ "dev": true }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" } } } @@ -2003,19 +4922,13 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "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": { - "os-tmpdir": "~1.0.2" + "is-number": "^7.0.0" } }, "tough-cookie": { @@ -2038,9 +4951,9 @@ } }, "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "dev": true }, "tunnel-agent": { @@ -2059,12 +4972,12 @@ "dev": true }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-detect": { @@ -2073,9 +4986,9 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "underscore": { @@ -2085,9 +4998,9 @@ "dev": true }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -2100,9 +5013,9 @@ "dev": true }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "verror": { @@ -2158,9 +5071,9 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -2177,15 +5090,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "ws": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", @@ -2209,6 +5113,12 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } } diff --git a/package.json b/package.json index 6c600db..e24e13b 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,6 @@ "watch": "ecmarkup --watch spec/index.html out/index.html --js out/ecmarkup.js --css out/ecmarkup.css", "test": "mocha -r ./set-polyfill.js -r ./map-polyfill.js test/*/*.spec.js" }, - "devDependencies": { - "ecmarkup": "^3.23.0" - }, "version": "1.0.0", "repository": { "type": "git", @@ -25,5 +22,8 @@ "dependencies": { "chai": "^4.2.0", "mocha": "^5.2.0" + }, + "devDependencies": { + "ecmarkup": "^9.6.3" } } diff --git a/spec/map/prototype-delete-all.html b/spec/map/prototype-delete-all.html index bc26cdc..ced5f79 100644 --- a/spec/map/prototype-delete-all.html +++ b/spec/map/prototype-delete-all.html @@ -1,12 +1,13 @@

    When the `deleteAll` method is called, the following steps are taken:

    +

    The `length` property of the `deleteAll` method is *0*.

    + 1. Let _len_ be the actual number of arguments passed to this function. 2. Let _items_ be the List of arguments passed to this function. 3. Let _map_ be the *this* value. 1. If Type(_map_) is not Object, throw a *TypeError* exception. 2. If _map_ does not have a ~[[MapData]]~ internal slot, throw a *TypeError* exception. - 4. Let _k_ be 0. 5. Let _remover_ be ? Get(_map_, "delete") 6. If IsCallable(_remover_) is *false*, throw a *TypeError* exception. @@ -18,4 +19,3 @@ -

    The `length` property of the `deleteAll` method is *0*.