From f371562e30b8d7a9417d5b5e24b1a00b19fc4582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Reis?= Date: Wed, 11 Dec 2019 05:51:23 +0000 Subject: [PATCH 01/70] build,win: support building MSI with VS2019 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Explicitly pass the WiX SDK directory when building the MSI. WiX doesn't (yet?) have a directory for VS2019, so use the one for VS2017 which should be compatible. PR-URL: https://github.com/nodejs/node/pull/30895 Reviewed-By: Richard Lau Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- .gitignore | 5 +++++ tools/msvs/msi/custom_actions.vcxproj | 16 ++++++++-------- vcbuild.bat | 8 +++++--- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index e50393f003c5d1..db2597b042b84a 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,8 @@ /*.swp /out /*.txt +/*.msi +/*.wixpdb # === Rules for artifacts of `./configure` === /icu_config.gypi @@ -58,6 +60,9 @@ _UpgradeReport_Files/ *.wixobj /tools/msvs/genfiles/ /npm.wxs +/tools/msvs/msi/Release/ +/tools/msvs/msi/obj/ +/tools/msvs/msi/x64/ # Exclude MSVS files used for .msi file generation !tools/msvs/msi/custom_actions.vcxproj !tools/msvs/msi/nodemsi.sln diff --git a/tools/msvs/msi/custom_actions.vcxproj b/tools/msvs/msi/custom_actions.vcxproj index 3716f07ff6de3d..077f29a52fadac 100644 --- a/tools/msvs/msi/custom_actions.vcxproj +++ b/tools/msvs/msi/custom_actions.vcxproj @@ -81,7 +81,7 @@ Disabled - $(WIX)sdk\VS$(GypMsvsVersion)\inc;%(AdditionalIncludeDirectories) + $(WixSdkDir)\inc;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -91,7 +91,7 @@ msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies) - $(WIX)sdk\VS$(GypMsvsVersion)\lib\x86;%(AdditionalLibraryDirectories) + $(WixSdkDir)\lib\x86;%(AdditionalLibraryDirectories) custom_actions.def true Windows @@ -100,7 +100,7 @@ Disabled - $(WIX)sdk\VS$(GypMsvsVersion)\inc;%(AdditionalIncludeDirectories) + $(WixSdkDir)\inc;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -110,7 +110,7 @@ msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies) - $(WIX)sdk\VS$(GypMsvsVersion)\lib\x64;%(AdditionalLibraryDirectories) + $(WixSdkDir)\lib\x64;%(AdditionalLibraryDirectories) custom_actions.def true Windows @@ -120,7 +120,7 @@ MaxSpeed true - $(WIX)sdk\VS$(GypMsvsVersion)\inc;%(AdditionalIncludeDirectories) + $(WixSdkDir)\inc;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) MultiThreaded true @@ -134,7 +134,7 @@ msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies) - $(WIX)sdk\VS$(GypMsvsVersion)\lib\x86;%(AdditionalLibraryDirectories) + $(WixSdkDir)\lib\x86;%(AdditionalLibraryDirectories) custom_actions.def true Windows @@ -146,7 +146,7 @@ MaxSpeed true - $(WIX)sdk\VS$(GypMsvsVersion)\inc;%(AdditionalIncludeDirectories) + $(WixSdkDir)\inc;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) MultiThreaded true @@ -160,7 +160,7 @@ msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies) - $(WIX)sdk\VS$(GypMsvsVersion)\lib\x64;%(AdditionalLibraryDirectories) + $(WixSdkDir)\lib\x64;%(AdditionalLibraryDirectories) custom_actions.def true Windows diff --git a/vcbuild.bat b/vcbuild.bat index 1e142a658bc68c..3754d5f1b5715c 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -252,9 +252,10 @@ echo Looking for Visual Studio 2019 set "VCINSTALLDIR=" call tools\msvs\vswhere_usability_wrapper.cmd "[16.0,17.0)" if "_%VCINSTALLDIR%_" == "__" goto vs-set-2017 +set "WIXSDKDIR=%WIX%\SDK\VS2017" if defined msi ( echo Looking for WiX installation for Visual Studio 2019... - if not exist "%WIX%\SDK\VS2017" ( + if not exist "%WIXSDKDIR%" ( echo Failed to find WiX install for Visual Studio 2019 echo VS2019 support for WiX is only present starting at version 3.11 goto vs-set-2017 @@ -287,9 +288,10 @@ if defined target_env if "%target_env%" NEQ "vs2017" goto msbuild-not-found echo Looking for Visual Studio 2017 call tools\msvs\vswhere_usability_wrapper.cmd "[15.0,16.0)" if "_%VCINSTALLDIR%_" == "__" goto msbuild-not-found +set "WIXSDKDIR=%WIX%\SDK\VS2017" if defined msi ( echo Looking for WiX installation for Visual Studio 2017... - if not exist "%WIX%\SDK\VS2017" ( + if not exist "%WIXSDKDIR%" ( echo Failed to find WiX install for Visual Studio 2017 echo VS2017 support for WiX is only present starting at version 3.11 goto msbuild-not-found @@ -474,7 +476,7 @@ if not defined msi goto install-doctools echo Building node-v%FULLVERSION%-%target_arch%.msi set "msbsdk=" if defined WindowsSDKVersion set "msbsdk=/p:WindowsTargetPlatformVersion=%WindowsSDKVersion:~0,-1%" -msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build %msbsdk% /p:PlatformToolset=%PLATFORM_TOOLSET% /p:GypMsvsVersion=%GYP_MSVS_VERSION% /p:Configuration=%config% /p:Platform=%target_arch% /p:NodeVersion=%NODE_VERSION% /p:FullVersion=%FULLVERSION% /p:DistTypeDir=%DISTTYPEDIR% %noetw_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo +msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build %msbsdk% /p:PlatformToolset=%PLATFORM_TOOLSET% /p:WixSdkDir="%WIXSDKDIR%" /p:Configuration=%config% /p:Platform=%target_arch% /p:NodeVersion=%NODE_VERSION% /p:FullVersion=%FULLVERSION% /p:DistTypeDir=%DISTTYPEDIR% %noetw_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo if errorlevel 1 goto exit if not defined sign goto upload From 453be95edc2eb224c7b896808db679d44627c214 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Sat, 30 Nov 2019 13:33:18 +0100 Subject: [PATCH 02/70] util: fix built-in detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes sure that the regular expression matches all built-in objects properly. So far a couple where missed. PR-URL: https://github.com/nodejs/node/pull/30768 Fixes: https://github.com/nodejs/node/issues/30183 Reviewed-By: James M Snell Reviewed-By: Michaël Zasso --- lib/internal/util/inspect.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index c621997c64be44..8e2c0a71613f44 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -116,7 +116,7 @@ const { NativeModule } = require('internal/bootstrap/loaders'); let hexSlice; const builtInObjects = new Set( - ObjectGetOwnPropertyNames(global).filter((e) => /^([A-Z][a-z]+)+$/.test(e)) + ObjectGetOwnPropertyNames(global).filter((e) => /^[A-Z][a-zA-Z0-9]+$/.test(e)) ); // These options must stay in sync with `getUserOptions`. So if any option will From 8dec909aa75fee206186c57f443403671c8c35b9 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Sat, 30 Nov 2019 11:07:12 +0100 Subject: [PATCH 03/70] util: inspect (user defined) prototype properties MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is only active if the `showHidden` option is truthy. The implementation is a trade-off between accuracy and performance. This will miss properties such as properties added to built-in data types. The goal is mainly to visualize prototype getters and setters such as: class Foo { ownProperty = true get bar() { return 'Hello world!' } } const a = new Foo() The `bar` property is a non-enumerable property on the prototype while `ownProperty` will be set directly on the created instance. The output is similar to the one of Chromium when inspecting objects closer. The output from Firefox is difficult to compare, since it's always a structured interactive output and was therefore not taken into account. PR-URL: https://github.com/nodejs/node/pull/30768 Fixes: https://github.com/nodejs/node/issues/30183 Reviewed-By: James M Snell Reviewed-By: Michaël Zasso --- doc/api/util.md | 7 +- lib/internal/util/inspect.js | 116 +++++++++++++++--- test/parallel/test-util-inspect.js | 80 +++++++++++- ...test-whatwg-encoding-custom-textdecoder.js | 17 ++- 4 files changed, 198 insertions(+), 22 deletions(-) diff --git a/doc/api/util.md b/doc/api/util.md index 88e2f34b7c8b26..f4e689a2130bd5 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -398,6 +398,10 @@ stream.write('With ES6'); -* {number} **Default:** `40000` +* {number} **Default:** `60000` Limit the amount of time the parser will wait to receive the complete HTTP headers. diff --git a/doc/api/https.md b/doc/api/https.md index 01e07a24d8a3a9..252d4bb33953a5 100644 --- a/doc/api/https.md +++ b/doc/api/https.md @@ -94,7 +94,7 @@ See [`server.close()`][`http.close()`] from the HTTP module for details. added: v11.3.0 --> -* {number} **Default:** `40000` +* {number} **Default:** `60000` See [`http.Server#headersTimeout`][]. diff --git a/lib/_http_server.js b/lib/_http_server.js index 453cf9005363dc..7afd2c0cd3c763 100644 --- a/lib/_http_server.js +++ b/lib/_http_server.js @@ -348,7 +348,7 @@ function Server(options, requestListener) { this.timeout = 0; this.keepAliveTimeout = 5000; this.maxHeadersCount = null; - this.headersTimeout = 40 * 1000; // 40 seconds + this.headersTimeout = 60 * 1000; // 60 seconds } ObjectSetPrototypeOf(Server.prototype, net.Server.prototype); ObjectSetPrototypeOf(Server, net.Server); diff --git a/lib/https.js b/lib/https.js index d8383a03052b1b..d1c2a88411e3c8 100644 --- a/lib/https.js +++ b/lib/https.js @@ -77,7 +77,7 @@ function Server(opts, requestListener) { this.timeout = 0; this.keepAliveTimeout = 5000; this.maxHeadersCount = null; - this.headersTimeout = 40 * 1000; // 40 seconds + this.headersTimeout = 60 * 1000; // 60 seconds } ObjectSetPrototypeOf(Server.prototype, tls.Server.prototype); ObjectSetPrototypeOf(Server, tls.Server); diff --git a/test/parallel/test-http-slow-headers.js b/test/parallel/test-http-slow-headers.js index 6da11465dac17b..25ee5b63e8c0e2 100644 --- a/test/parallel/test-http-slow-headers.js +++ b/test/parallel/test-http-slow-headers.js @@ -17,8 +17,8 @@ const headers = const server = createServer(common.mustNotCall()); let sendCharEvery = 1000; -// 40 seconds is the default -assert.strictEqual(server.headersTimeout, 40 * 1000); +// 60 seconds is the default +assert.strictEqual(server.headersTimeout, 60 * 1000); // Pass a REAL env variable to shortening up the default // value which is 40s otherwise this is useful for manual diff --git a/test/parallel/test-https-slow-headers.js b/test/parallel/test-https-slow-headers.js index 531d9ad318fa03..95f0caa9878c5e 100644 --- a/test/parallel/test-https-slow-headers.js +++ b/test/parallel/test-https-slow-headers.js @@ -27,8 +27,8 @@ const server = createServer({ let sendCharEvery = 1000; -// 40 seconds is the default -assert.strictEqual(server.headersTimeout, 40 * 1000); +// 60 seconds is the default +assert.strictEqual(server.headersTimeout, 60 * 1000); // Pass a REAL env variable to shortening up the default // value which is 40s otherwise From 7a756cb53916f2f446b033c1157f0fefd31296a1 Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Fri, 7 Jun 2019 22:41:33 +0200 Subject: [PATCH 14/70] http: remove unnecessary bind MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit process.nextTick accepts additional parameters which are passed through to the callback. Use that instead of binding the function to a context. PR-URL: https://github.com/nodejs/node/pull/28131 Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Tobias Nießen Reviewed-By: Ruben Bridgewater --- lib/_http_client.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/_http_client.js b/lib/_http_client.js index 1d949559d96d93..f024c7fc89b150 100644 --- a/lib/_http_client.js +++ b/lib/_http_client.js @@ -327,7 +327,7 @@ ClientRequest.prototype._implicitHeader = function _implicitHeader() { ClientRequest.prototype.abort = function abort() { if (!this.aborted) { - process.nextTick(emitAbortNT.bind(this)); + process.nextTick(emitAbortNT, this); } this.aborted = true; @@ -345,8 +345,8 @@ ClientRequest.prototype.abort = function abort() { }; -function emitAbortNT() { - this.emit('abort'); +function emitAbortNT(req) { + req.emit('abort'); } function ondrain() { From 4e67d38f42a2f691201825b747ad82b354083f16 Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Fri, 7 Jun 2019 22:42:32 +0200 Subject: [PATCH 15/70] perf_hooks: remove unnecessary bind MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pass through parameters using setImmediate rather than using Function.prototype.bind to bind the provided context. PR-URL: https://github.com/nodejs/node/pull/28131 Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Tobias Nießen Reviewed-By: Ruben Bridgewater --- lib/perf_hooks.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/perf_hooks.js b/lib/perf_hooks.js index 3e86f10e222441..3fb06f4e93dfa1 100644 --- a/lib/perf_hooks.js +++ b/lib/perf_hooks.js @@ -463,11 +463,14 @@ function getObserversList(type) { return list; } -function doNotify() { - this[kQueued] = false; - this.runInAsyncScope(this[kCallback], this, this[kBuffer], this); - this[kBuffer][kEntries] = []; - L.init(this[kBuffer][kEntries]); +function doNotify(observer) { + observer[kQueued] = false; + observer.runInAsyncScope(observer[kCallback], + observer, + observer[kBuffer], + observer); + observer[kBuffer][kEntries] = []; + L.init(observer[kBuffer][kEntries]); } // Set up the callback used to receive PerformanceObserver notifications @@ -493,11 +496,11 @@ function observersCallback(entry) { observer[kQueued] = true; // Use setImmediate instead of nextTick to give more time // for multiple entries to collect. - setImmediate(doNotify.bind(observer)); + setImmediate(doNotify, observer); } } else { // If not buffering, notify immediately - doNotify.call(observer); + doNotify(observer); } current = current._idlePrev; } From ad5b71525d8ed6978f042458373b51faf631a54b Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Fri, 7 Jun 2019 23:46:35 +0200 Subject: [PATCH 16/70] fs: remove unnecessary bind MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't use Function.prototype.bind where it isn't necessary. Rely on event emitter context instead and on arrow function as class property. PR-URL: https://github.com/nodejs/node/pull/28131 Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Tobias Nießen Reviewed-By: Ruben Bridgewater --- lib/internal/fs/promises.js | 8 ++++---- lib/internal/fs/streams.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/internal/fs/promises.js b/lib/internal/fs/promises.js index cc3f98268c7e55..785d0b082cc1a2 100644 --- a/lib/internal/fs/promises.js +++ b/lib/internal/fs/promises.js @@ -121,7 +121,7 @@ class FileHandle { return writeFile(this, data, options); } - close() { + close = () => { return this[kHandle].close(); } } @@ -425,7 +425,7 @@ async function lchmod(path, mode) { throw new ERR_METHOD_NOT_IMPLEMENTED('lchmod()'); const fd = await open(path, O_WRONLY | O_SYMLINK); - return fchmod(fd, mode).finally(fd.close.bind(fd)); + return fchmod(fd, mode).finally(fd.close); } async function lchown(path, uid, gid) { @@ -490,7 +490,7 @@ async function writeFile(path, data, options) { return writeFileHandle(path, data, options); const fd = await open(path, flag, options.mode); - return writeFileHandle(fd, data, options).finally(fd.close.bind(fd)); + return writeFileHandle(fd, data, options).finally(fd.close); } async function appendFile(path, data, options) { @@ -508,7 +508,7 @@ async function readFile(path, options) { return readFileHandle(path, options); const fd = await open(path, flag, 0o666); - return readFileHandle(fd, options).finally(fd.close.bind(fd)); + return readFileHandle(fd, options).finally(fd.close); } module.exports = { diff --git a/lib/internal/fs/streams.js b/lib/internal/fs/streams.js index 880828e0d7ae57..b17ebe5cb4317e 100644 --- a/lib/internal/fs/streams.js +++ b/lib/internal/fs/streams.js @@ -442,7 +442,7 @@ WriteStream.prototype.close = function(cb) { // If we are not autoClosing, we should call // destroy on 'finish'. if (!this.autoClose) { - this.on('finish', this.destroy.bind(this)); + this.on('finish', this.destroy); } // We use end() instead of destroy() because of From 52aab47766ac2b8a9667f15a2f58b98c9bab9018 Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Sat, 8 Jun 2019 00:23:18 +0200 Subject: [PATCH 17/70] http2: remove unnecessary bind from setImmediate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/28131 Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Tobias Nießen Reviewed-By: Ruben Bridgewater --- lib/internal/http2/core.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index 36e36ec940975f..abd9c8f417b81b 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -2152,12 +2152,16 @@ class Http2Stream extends Duplex { // By using setImmediate we allow pushStreams to make it through // before the stream is officially closed. This prevents a bug // in most browsers where those pushStreams would be rejected. - setImmediate(this.close.bind(this)); + setImmediate(callStreamClose, this); } } } } +function callStreamClose(stream) { + stream.close(); +} + function processHeaders(oldHeaders) { assertIsObject(oldHeaders, 'headers'); const headers = ObjectCreate(null); From 30e2d28ac51b1e238b6ac6f45ba027a8528b1a53 Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Sat, 8 Jun 2019 10:03:26 +0200 Subject: [PATCH 18/70] cluster: remove unnecessary bind MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/28131 Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Tobias Nießen Reviewed-By: Ruben Bridgewater --- lib/internal/cluster/child.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/internal/cluster/child.js b/lib/internal/cluster/child.js index 80db676e6b22a8..ed5d7ce76dbc90 100644 --- a/lib/internal/cluster/child.js +++ b/lib/internal/cluster/child.js @@ -118,8 +118,8 @@ function shared(message, handle, indexesKey, cb) { send({ act: 'close', key }); handles.delete(key); indexes.delete(indexesKey); - return close.apply(this, arguments); - }.bind(handle); + return close.apply(handle, arguments); + }; assert(handles.has(key) === false); handles.set(key, handle); cb(message.errno, handle); From c43461ac5645d23f589f84e5cbd0dee55874a532 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Fri, 15 Nov 2019 08:49:07 -0800 Subject: [PATCH 19/70] src: make debug_options getters public This simplifies requires for those using DebugOptions, since debug_options was defined in src/node_options-inl.h and thus embedders would need to require an extra file to do what could trivially be consolidated into one. PR-URL: https://github.com/nodejs/node/pull/30494 Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau Reviewed-By: David Carlier --- src/node_options-inl.h | 8 -------- src/node_options.h | 5 +++-- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/node_options-inl.h b/src/node_options-inl.h index 8fc2feff4dc6d4..8bb5b6155a21d1 100644 --- a/src/node_options-inl.h +++ b/src/node_options-inl.h @@ -13,14 +13,6 @@ PerIsolateOptions* PerProcessOptions::get_per_isolate_options() { return per_isolate.get(); } -DebugOptions* EnvironmentOptions::get_debug_options() { - return &debug_options_; -} - -const DebugOptions& EnvironmentOptions::debug_options() const { - return debug_options_; -} - EnvironmentOptions* PerIsolateOptions::get_per_env_options() { return per_env.get(); } diff --git a/src/node_options.h b/src/node_options.h index 7b3ae19fe6c8ad..c3ef78fd5bca0c 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -172,8 +172,9 @@ class EnvironmentOptions : public Options { std::vector user_argv; - inline DebugOptions* get_debug_options(); - inline const DebugOptions& debug_options() const; + inline DebugOptions* get_debug_options() { return &debug_options_; } + inline const DebugOptions& debug_options() const { return debug_options_; } + void CheckOptions(std::vector* errors) override; private: From 663a6b4938c51b786e0c956c8788f073dc0aa992 Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Mon, 9 Dec 2019 20:44:12 +0100 Subject: [PATCH 20/70] stream: make all streams error in a pipeline This changes makes all stream in a pipeline emit 'error' in case of an abnormal termination of the pipeline. If the last stream is currently being async iterated, this change will make the iteration reject accordingly. See: https://github.com/nodejs/node/pull/30861 Fixes: https://github.com/nodejs/node/issues/28194 PR-URL: https://github.com/nodejs/node/pull/30869 Reviewed-By: Luigi Pinca Reviewed-By: Rich Trott --- lib/internal/streams/pipeline.js | 24 ++++++++++---- .../test-stream-pipeline-async-iterator.js | 31 +++++++++++++++++++ test/parallel/test-stream-pipeline.js | 6 ++++ 3 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 test/parallel/test-stream-pipeline-async-iterator.js diff --git a/lib/internal/streams/pipeline.js b/lib/internal/streams/pipeline.js index 0c464605106630..ed5556e5d0a600 100644 --- a/lib/internal/streams/pipeline.js +++ b/lib/internal/streams/pipeline.js @@ -43,15 +43,21 @@ function destroyer(stream, reading, writing, callback) { // request.destroy just do .end - .abort is what we want if (isRequest(stream)) return stream.abort(); - if (typeof stream.destroy === 'function') return stream.destroy(); + if (typeof stream.destroy === 'function') { + if (stream.req && stream._writableState === undefined) { + // This is a ClientRequest + // TODO(mcollina): backward compatible fix to avoid crashing. + // Possibly remove in a later semver-major change. + stream.req.on('error', noop); + } + return stream.destroy(err); + } callback(err || new ERR_STREAM_DESTROYED('pipe')); }; } -function call(fn) { - fn(); -} +function noop() {} function pipe(from, to) { return from.pipe(to); @@ -81,9 +87,15 @@ function pipeline(...streams) { const writing = i > 0; return destroyer(stream, reading, writing, function(err) { if (!error) error = err; - if (err) destroys.forEach(call); + if (err) { + for (const destroy of destroys) { + destroy(err); + } + } if (reading) return; - destroys.forEach(call); + for (const destroy of destroys) { + destroy(); + } callback(error); }); }); diff --git a/test/parallel/test-stream-pipeline-async-iterator.js b/test/parallel/test-stream-pipeline-async-iterator.js new file mode 100644 index 00000000000000..06a2ed6ca877f8 --- /dev/null +++ b/test/parallel/test-stream-pipeline-async-iterator.js @@ -0,0 +1,31 @@ +'use strict'; + +const common = require('../common'); +const { Readable, PassThrough, pipeline } = require('stream'); +const assert = require('assert'); + +const _err = new Error('kaboom'); + +async function run() { + const source = new Readable({ + read() { + } + }); + source.push('hello'); + source.push('world'); + + setImmediate(() => { source.destroy(_err); }); + + const iterator = pipeline( + source, + new PassThrough(), + () => {}); + + iterator.setEncoding('utf8'); + + for await (const k of iterator) { + assert.strictEqual(k, 'helloworld'); + } +} + +run().catch(common.mustCall((err) => assert.strictEqual(err, _err))); diff --git a/test/parallel/test-stream-pipeline.js b/test/parallel/test-stream-pipeline.js index ef5a39fddd881f..4a41f053bd0a85 100644 --- a/test/parallel/test-stream-pipeline.js +++ b/test/parallel/test-stream-pipeline.js @@ -119,6 +119,12 @@ const { promisify } = require('util'); transform.on('close', common.mustCall()); write.on('close', common.mustCall()); + [read, transform, write].forEach((stream) => { + stream.on('error', common.mustCall((err) => { + assert.deepStrictEqual(err, new Error('kaboom')); + })); + }); + const dst = pipeline(read, transform, write, common.mustCall((err) => { assert.deepStrictEqual(err, new Error('kaboom')); })); From a221017ee884fd7d300c40df49187d90a5826b9b Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 12 Dec 2019 12:02:37 -0500 Subject: [PATCH 21/70] crypto: cast oaepLabel to unsigned char* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenSSL uses a macro without typechecking; since C++ does not implicitly cast void* this is needed to conform Node.js to the OpenSSL documentation. PR-URL: https://github.com/nodejs/node/pull/30917 Reviewed-By: Tobias Nießen Reviewed-By: Richard Lau Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott --- src/node_crypto.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/node_crypto.cc b/src/node_crypto.cc index c53c5c4ccc4da8..87a3e5525d1cd7 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -5510,8 +5510,9 @@ bool PublicKeyCipher::Cipher(Environment* env, // OpenSSL takes ownership of the label, so we need to create a copy. void* label = OPENSSL_memdup(oaep_label, oaep_label_len); CHECK_NOT_NULL(label); - if (0 >= EVP_PKEY_CTX_set0_rsa_oaep_label(ctx.get(), label, - oaep_label_len)) { + if (0 >= EVP_PKEY_CTX_set0_rsa_oaep_label(ctx.get(), + reinterpret_cast(label), + oaep_label_len)) { OPENSSL_free(label); return false; } From 7e6510bcfb45b444c083f9c0611fc590c61c04b9 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 12 Dec 2019 10:42:52 -0500 Subject: [PATCH 22/70] test: delay loading 'os' in test/common module There is a test that doesn't load the common module initially because it needs to monkey-patch the 'os' module. I think it would be a good idea to minimize the side-effects of loading common anyway, so let's defer loading 'os' unless/until it's actually needed. PR-URL: https://github.com/nodejs/node/pull/30914 Reviewed-By: Ruben Bridgewater Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau --- test/common/index.js | 67 ++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/test/common/index.js b/test/common/index.js index 1be78720810b34..d774bffe0fadb5 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -23,17 +23,20 @@ /* eslint-disable node-core/crypto-check */ 'use strict'; const process = global.process; // Some tests tamper with the process global. -const path = require('path'); -const fs = require('fs'); + const assert = require('assert'); -const os = require('os'); const { exec, execSync, spawnSync } = require('child_process'); +const fs = require('fs'); +// Do not require 'os' until needed so that test-os-checked-fucnction can +// monkey patch it. If 'os' is required here, that test will fail. +const path = require('path'); const util = require('util'); +const { isMainThread } = require('worker_threads'); + const tmpdir = require('./tmpdir'); const bits = ['arm64', 'mips', 'mipsel', 'ppc64', 's390x', 'x64'] .includes(process.arch) ? 64 : 32; const hasIntl = !!process.config.variables.v8_enable_i18n_support; -const { isMainThread } = require('worker_threads'); // Some tests assume a umask of 0o022 so set that up front. Tests that need a // different umask will set it themselves. @@ -102,23 +105,12 @@ if (process.argv.length === 2 && const isWindows = process.platform === 'win32'; const isAIX = process.platform === 'aix'; -// On IBMi, process.platform and os.platform() both return 'aix', -// It is not enough to differentiate between IBMi and real AIX system. -const isIBMi = os.type() === 'OS400'; -const isLinuxPPCBE = (process.platform === 'linux') && - (process.arch === 'ppc64') && - (os.endianness() === 'BE'); const isSunOS = process.platform === 'sunos'; const isFreeBSD = process.platform === 'freebsd'; const isOpenBSD = process.platform === 'openbsd'; const isLinux = process.platform === 'linux'; const isOSX = process.platform === 'darwin'; -const enoughTestMem = os.totalmem() > 0x70000000; /* 1.75 Gb */ -const cpus = os.cpus(); -const enoughTestCpu = Array.isArray(cpus) && - (cpus.length > 1 || cpus[0].speed > 999); - const rootDir = isWindows ? 'c:\\' : '/'; const buildType = process.config.target_defaults ? @@ -198,15 +190,6 @@ const PIPE = (() => { return path.join(pipePrefix, pipeName); })(); -const hasIPv6 = (() => { - const iFaces = os.networkInterfaces(); - const re = isWindows ? /Loopback Pseudo-Interface/ : /lo/; - return Object.keys(iFaces).some((name) => { - return re.test(name) && - iFaces[name].some(({ family }) => family === 'IPv6'); - }); -})(); - /* * Check that when running a test with * `$node --abort-on-uncaught-exception $file child` @@ -742,8 +725,6 @@ module.exports = { childShouldThrowAndAbort, createZeroFilledFile, disableCrashOnUnhandledRejection, - enoughTestCpu, - enoughTestMem, expectsError, expectsInternalAssertion, expectWarning, @@ -753,14 +734,11 @@ module.exports = { getTTYfd, hasIntl, hasCrypto, - hasIPv6, hasMultiLocalhost, isAIX, isAlive, isFreeBSD, - isIBMi, isLinux, - isLinuxPPCBE, isMainThread, isOpenBSD, isOSX, @@ -784,12 +762,28 @@ module.exports = { skipIfReportDisabled, skipIfWorker, - get localhostIPv6() { return '::1'; }, + get enoughTestCPU() { + const cpus = require('os').cpus(); + return Array.isArray(cpus) && (cpus.length > 1 || cpus[0].speed > 999); + }, + + get enoughTestMeme() { + return require('os').totalmem() > 0x70000000; /* 1.75 Gb */ + }, get hasFipsCrypto() { return hasCrypto && require('crypto').getFips(); }, + get hasIPv6() { + const iFaces = require('os').networkInterfaces(); + const re = isWindows ? /Loopback Pseudo-Interface/ : /lo/; + return Object.keys(iFaces).some((name) => { + return re.test(name) && + iFaces[name].some(({ family }) => family === 'IPv6'); + }); + }, + get inFreeBSDJail() { if (inFreeBSDJail !== null) return inFreeBSDJail; @@ -802,6 +796,17 @@ module.exports = { return inFreeBSDJail; }, + // On IBMi, process.platform and os.platform() both return 'aix', + // It is not enough to differentiate between IBMi and real AIX system. + get isIBMi() { + return require('os').type() === 'OS400'; + }, + + get isLinuxPPCBE() { + return (process.platform === 'linux') && (process.arch === 'ppc64') && + (require('os').endianness() === 'BE'); + }, + get localhostIPv4() { if (localhostIPv4 !== null) return localhostIPv4; @@ -823,6 +828,8 @@ module.exports = { return localhostIPv4; }, + get localhostIPv6() { return '::1'; }, + // opensslCli defined lazily to reduce overhead of spawnSync get opensslCli() { if (opensslCli !== null) return opensslCli; From b7a0574d6fdfcb772ae70a01244b62c97225f017 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 12 Dec 2019 10:44:28 -0500 Subject: [PATCH 23/70] test: make test-os-checked-function work without test harness Most tests in `test/parallel` work when invoked with `node` rather than `tools/test.py` but not test-os-checked-function because it doesn't load the `common` module initially, which means it won't get re-spawned with the necessary flags (in the Flags: comment, in this case --expose_internals). Now that common delays loading 'os' until it needs to load it, this test can load the common module and it will work from the command line without the test harness. Additionally, we now can remove a comment disabling a lint rule. PR-URL: https://github.com/nodejs/node/pull/30914 Reviewed-By: Ruben Bridgewater Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau --- test/parallel/test-os-checked-function.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/parallel/test-os-checked-function.js b/test/parallel/test-os-checked-function.js index 44337adb4063ae..4a6c1cd0cafb09 100644 --- a/test/parallel/test-os-checked-function.js +++ b/test/parallel/test-os-checked-function.js @@ -1,7 +1,7 @@ -/* eslint-disable node-core/require-common-first */ 'use strict'; // Flags: --expose_internals +const common = require('../common'); const { internalBinding } = require('internal/test/binding'); // Monkey patch the os binding before requiring any other modules, including @@ -12,7 +12,6 @@ internalBinding('os').getHomeDirectory = function(ctx) { ctx.message = 'baz'; }; -const common = require('../common'); const os = require('os'); common.expectsError(os.homedir, { From 7a25c2c0732ea6ee6cbf4176fa3c08a8b9ec12b4 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 12 Dec 2019 09:28:09 -0500 Subject: [PATCH 24/70] test: improve assertion error message in test-debug-usage PR-URL: https://github.com/nodejs/node/pull/30913 Reviewed-By: Colin Ihrig Reviewed-By: Richard Lau Reviewed-By: Ruben Bridgewater Reviewed-By: Luigi Pinca --- test/parallel/test-debug-usage.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/parallel/test-debug-usage.js b/test/parallel/test-debug-usage.js index a264029f434a5a..4582ac7bb5b6e2 100644 --- a/test/parallel/test-debug-usage.js +++ b/test/parallel/test-debug-usage.js @@ -24,5 +24,8 @@ child.on('exit', common.mustCall(function(code) { const outputLines = actualUsageMessage.split('\n'); assert.strictEqual(code, 1); for (let i = 0; i < expectedLines.length; i++) - assert(expectedLines[i].test(outputLines[i])); + assert.ok( + expectedLines[i].test(outputLines[i]), + `${outputLines[i]} did not match ${expectedLines[i]}` + ); })); From cbe29ce4cf10a62d960dbd01208c99a470818eae Mon Sep 17 00:00:00 2001 From: "rene.herrmann" Date: Thu, 12 Dec 2019 10:12:22 +0100 Subject: [PATCH 25/70] lib: change var to let/const MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/30910 Reviewed-By: Ruben Bridgewater Reviewed-By: Michaël Zasso Reviewed-By: Gireesh Punathil Reviewed-By: Jiawen Geng Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Trivikram Kamat --- lib/internal/console/constructor.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/internal/console/constructor.js b/lib/internal/console/constructor.js index 5aa3c3a28367d8..d785b7f8dea292 100644 --- a/lib/internal/console/constructor.js +++ b/lib/internal/console/constructor.js @@ -115,12 +115,11 @@ function Console(options /* or: stdout, stderr, ignoreErrors = true */) { // Bind the prototype functions to this Console instance const keys = ObjectKeys(Console.prototype); - for (var v = 0; v < keys.length; v++) { - var k = keys[v]; + for (const key of keys) { // We have to bind the methods grabbed from the instance instead of from // the prototype so that users extending the Console can override them // from the prototype chain of the subclass. - this[k] = this[k].bind(this); + this[key] = this[key].bind(this); } this[kBindStreamsEager](stdout, stderr); From df5ae1a8ef449082d9a950732b452560c2d6d779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Tue, 10 Dec 2019 23:45:19 -0500 Subject: [PATCH 26/70] doc: fix description of N-API exception handlers The return value is not a boolean and even if interpreted as one, it does not indicate whether an exception is pending. For napi_is_exception_pending, the description of the result parameter already explains how to check whether an exception is pending. PR-URL: https://github.com/nodejs/node/pull/30893 Reviewed-By: Rich Trott Reviewed-By: Gabriel Schulhof Reviewed-By: Anna Henningsen --- doc/api/n-api.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/api/n-api.md b/doc/api/n-api.md index bcb8504e948f6a..1eecb7f1129c40 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -1057,8 +1057,6 @@ napi_status napi_get_and_clear_last_exception(napi_env env, Returns `napi_ok` if the API succeeded. -This API returns true if an exception is pending. - This API can be called even if there is a pending JavaScript exception. #### napi_is_exception_pending @@ -1076,8 +1074,6 @@ napi_status napi_is_exception_pending(napi_env env, bool* result); Returns `napi_ok` if the API succeeded. -This API returns true if an exception is pending. - This API can be called even if there is a pending JavaScript exception. #### napi_fatal_exception From 0c18c49f0efd8296e7cf73680c8df0674ac4131c Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Thu, 12 Dec 2019 14:40:50 +0100 Subject: [PATCH 27/70] stream: do not chunk strings and Buffer in Readable.from MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/30912 Reviewed-By: Ruben Bridgewater Reviewed-By: Michaël Zasso Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott --- doc/api/stream.md | 4 ++++ lib/internal/streams/from.js | 12 ++++++++++++ test/parallel/test-readable-from.js | 13 ++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/doc/api/stream.md b/doc/api/stream.md index a880bae5bbe31d..ad13e8ee6ade38 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -1642,6 +1642,10 @@ readable.on('data', (chunk) => { }); ``` +Calling `Readable.from(string)` or `Readable.from(buffer)` will not have +the strings or buffers be iterated to match the other streams semantics +for performance reasons. + ## API for Stream Implementers diff --git a/lib/internal/streams/from.js b/lib/internal/streams/from.js index a060638df2dcfe..474db60b8930a2 100644 --- a/lib/internal/streams/from.js +++ b/lib/internal/streams/from.js @@ -4,6 +4,7 @@ const { Symbol, SymbolIterator } = primordials; +const { Buffer } = require('buffer'); const { ERR_INVALID_ARG_TYPE @@ -11,6 +12,17 @@ const { function from(Readable, iterable, opts) { let iterator; + if (typeof iterable === 'string' || iterable instanceof Buffer) { + return new Readable({ + objectMode: true, + ...opts, + read() { + this.push(iterable); + this.push(null); + } + }); + } + if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator](); else if (iterable && iterable[SymbolIterator]) diff --git a/test/parallel/test-readable-from.js b/test/parallel/test-readable-from.js index e43cec6b1e5246..6cc9216a306378 100644 --- a/test/parallel/test-readable-from.js +++ b/test/parallel/test-readable-from.js @@ -56,13 +56,23 @@ async function toReadablePromises() { async function toReadableString() { const stream = Readable.from('abc'); - const expected = ['a', 'b', 'c']; + const expected = ['abc']; for await (const chunk of stream) { strictEqual(chunk, expected.shift()); } } +async function toReadableBuffer() { + const stream = Readable.from(Buffer.from('abc')); + + const expected = ['abc']; + + for await (const chunk of stream) { + strictEqual(chunk.toString(), expected.shift()); + } +} + async function toReadableOnData() { async function* generate() { yield 'a'; @@ -154,6 +164,7 @@ Promise.all([ toReadableSyncIterator(), toReadablePromises(), toReadableString(), + toReadableBuffer(), toReadableOnData(), toReadableOnDataNonObject(), destroysTheStreamWhenThrowing(), From d456aa0a579fc00a3b80c439af1e3668b617ded6 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Wed, 11 Dec 2019 21:48:47 -0500 Subject: [PATCH 28/70] src: unregister Isolate with platform before disposing I previously thought the order of these calls was no longer relevant. I was wrong. This commit undoes the changes from 312c02d25e9, adds a comment explaining why I was wrong, and flips the order of the calls elsewhere for consistency, the latter having been the goal of 312c02d25e9. Fixes: https://github.com/nodejs/node/issues/30846 Refs: https://github.com/nodejs/node/pull/30181 PR-URL: https://github.com/nodejs/node/pull/30909 Reviewed-By: Shelley Vohr Reviewed-By: Richard Lau Reviewed-By: Jiawen Geng Reviewed-By: Gus Caplan Reviewed-By: Ben Noordhuis Reviewed-By: Colin Ihrig Reviewed-By: David Carlier Reviewed-By: Rich Trott --- src/node.h | 1 + src/node_main_instance.cc | 2 +- src/node_worker.cc | 7 ++++++- test/cctest/node_test_fixture.h | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/node.h b/src/node.h index c80e6266857921..5f462082f91994 100644 --- a/src/node.h +++ b/src/node.h @@ -286,6 +286,7 @@ class NODE_EXTERN MultiIsolatePlatform : public v8::Platform { // This function may only be called once per `Isolate`, and discard any // pending delayed tasks scheduled for that isolate. + // This needs to be called right before calling `Isolate::Dispose()`. virtual void UnregisterIsolate(v8::Isolate* isolate) = 0; // The platform should call the passed function once all state associated diff --git a/src/node_main_instance.cc b/src/node_main_instance.cc index eea847725300f0..86a857299f6e90 100644 --- a/src/node_main_instance.cc +++ b/src/node_main_instance.cc @@ -99,8 +99,8 @@ NodeMainInstance::~NodeMainInstance() { if (!owns_isolate_) { return; } - isolate_->Dispose(); platform_->UnregisterIsolate(isolate_); + isolate_->Dispose(); } int NodeMainInstance::Run() { diff --git a/src/node_worker.cc b/src/node_worker.cc index 676b70a1fa90c1..26f7ddab5aa400 100644 --- a/src/node_worker.cc +++ b/src/node_worker.cc @@ -190,8 +190,13 @@ class WorkerThreadData { *static_cast(data) = true; }, &platform_finished); - isolate->Dispose(); + // The order of these calls is important; if the Isolate is first disposed + // and then unregistered, there is a race condition window in which no + // new Isolate at the same address can successfully be registered with + // the platform. + // (Refs: https://github.com/nodejs/node/issues/30846) w_->platform_->UnregisterIsolate(isolate); + isolate->Dispose(); // Wait until the platform has cleaned up all relevant resources. while (!platform_finished) diff --git a/test/cctest/node_test_fixture.h b/test/cctest/node_test_fixture.h index ac0701d0942666..07ec7474549f18 100644 --- a/test/cctest/node_test_fixture.h +++ b/test/cctest/node_test_fixture.h @@ -107,8 +107,8 @@ class NodeTestFixture : public ::testing::Test { void TearDown() override { platform->DrainTasks(isolate_); isolate_->Exit(); - isolate_->Dispose(); platform->UnregisterIsolate(isolate_); + isolate_->Dispose(); isolate_ = nullptr; } }; From 60485dcc8eeea9f7040aebf5412e2f1d4ccdeaf0 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 12 Dec 2019 14:20:46 -0500 Subject: [PATCH 29/70] test: add test for validation for wasi.start() argument PR-URL: https://github.com/nodejs/node/pull/30919 Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Anna Henningsen Reviewed-By: Jiawen Geng --- test/wasi/test-wasi-start-validation.js | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/wasi/test-wasi-start-validation.js diff --git a/test/wasi/test-wasi-start-validation.js b/test/wasi/test-wasi-start-validation.js new file mode 100644 index 00000000000000..80fc035d7c9826 --- /dev/null +++ b/test/wasi/test-wasi-start-validation.js @@ -0,0 +1,31 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); +const { WASI } = require('wasi'); + +const fixtures = require('../common/fixtures'); + +{ + const wasi = new WASI(); + assert.throws( + () => { + wasi.start(); + }, + { code: 'ERR_INVALID_ARG_TYPE', message: /\bWebAssembly\.Instance\b/ } + ); +} + +{ + const wasi = new WASI({}); + (async () => { + const bufferSource = fixtures.readSync('simple.wasm'); + const wasm = await WebAssembly.compile(bufferSource); + const instance = await WebAssembly.instantiate(wasm); + + assert.throws( + () => { wasi.start(instance); }, + { code: 'ERR_INVALID_ARG_TYPE', message: /\bWebAssembly\.Memory\b/ } + ); + })(); +} From 51d1a919bfd0b3777667edc825e06b7c7c4e88eb Mon Sep 17 00:00:00 2001 From: cjihrig Date: Sat, 14 Dec 2019 19:11:45 -0500 Subject: [PATCH 30/70] test: add missing test flags test-wasi-start-validation.js should require the --experimental-wasi-unstable-preview0 flag in order to run. However, due to a recent regression, that hasn't been enforced. https://github.com/nodejs/node/pull/30963 fixes the regression and will cause this test to start (correctly) failing. This commit adds the missing flag. PR-URL: https://github.com/nodejs/node/pull/30971 Reviewed-By: Rich Trott Reviewed-By: Richard Lau --- test/wasi/test-wasi-start-validation.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/wasi/test-wasi-start-validation.js b/test/wasi/test-wasi-start-validation.js index 80fc035d7c9826..2a5cb764943f80 100644 --- a/test/wasi/test-wasi-start-validation.js +++ b/test/wasi/test-wasi-start-validation.js @@ -1,3 +1,4 @@ +// Flags: --experimental-wasi-unstable-preview0 'use strict'; require('../common'); From b20ddde2f67b27052bed231d66ac0affddcdd352 Mon Sep 17 00:00:00 2001 From: Derek Lewis Date: Sat, 2 Nov 2019 04:35:32 -0400 Subject: [PATCH 31/70] tools: enable Markdown linter's usage information Prior to this commit, running `node tools/lint-md --help` and `node tools/lint-md --version` resulted in an error. * Use `unified-args` to start processor * Use `unified-args`'s error handler Fixes: https://github.com/nodejs/node/issues/30156 PR-URL: https://github.com/nodejs/node/pull/30216 Reviewed-By: Rich Trott --- tools/lint-md.js | 3 +- .../node-lint-md-cli-rollup/package-lock.json | 811 +++++++++--------- tools/node-lint-md-cli-rollup/package.json | 14 +- .../node-lint-md-cli-rollup/src/cli-entry.js | 28 +- 4 files changed, 427 insertions(+), 429 deletions(-) diff --git a/tools/lint-md.js b/tools/lint-md.js index df78ea99921bc6..c27cac49674840 100644 --- a/tools/lint-md.js +++ b/tools/lint-md.js @@ -1 +1,2 @@ -module.exports=function(e,t){"use strict";var r={};function __webpack_require__(t){if(r[t]){return r[t].exports}var i=r[t]={i:t,l:false,exports:{}};e[t].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}function startup(){return __webpack_require__(294)}t(__webpack_require__);return startup()}([,function(e){"use strict";e.exports=indentation;var t="\t";var r=" ";var i=1;var n=4;function indentation(e){var a=0;var u=0;var s=e.charAt(a);var o={};var l;while(s===t||s===r){l=s===t?n:i;u+=l;if(l>1){u=Math.floor(u/l)*l}o[u]=a;s=e.charAt(++a)}return{indent:u,stops:o}}},function(e){"use strict";e.exports=locate;function locate(e,t){return e.indexOf("`",t)}},,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(839);var u=r(526);e.exports=i("remark-lint:unordered-list-marker-style",unorderedListMarkerStyle);var s=a.start;var o={"-":true,"*":true,"+":true,null:true};function unorderedListMarkerStyle(e,t,r){var i=String(t);r=typeof r==="string"&&r!=="consistent"?r:null;if(o[r]!==true){t.fail("Invalid unordered list-item marker style `"+r+"`: use either `'-'`, `'*'`, or `'+'`")}n(e,"list",visitor);function visitor(e){var n=e.children;var a=e.ordered?0:n.length;var o=-1;var l;var f;while(++ot){return{line:r+1,column:t-(e[r-1]||0)+1,offset:t}}}return{}}}function positionToOffsetFactory(e){return positionToOffset;function positionToOffset(t){var r=t&&t.line;var i=t&&t.column;if(!isNaN(r)&&!isNaN(i)&&r-1 in e){return(e[r-2]||0)+i-1||0}return-1}}function indices(e){var t=[];var r=e.indexOf("\n");while(r!==-1){t.push(r+1);r=e.indexOf("\n",r+1)}t.push(e.length+1);return t}},,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(526);var u=r(10);e.exports=i("remark-lint:no-inline-padding",noInlinePadding);function noInlinePadding(e,t){n(e,["emphasis","strong","delete","image","link"],visitor);function visitor(e){var r;if(!a(e)){r=u(e);if(r.charAt(0)===" "||r.charAt(r.length-1)===" "){t.message("Don’t pad `"+e.type+"` with inner spaces",e)}}}}},function(e){"use strict";e.exports=toString;function toString(e){return valueOf(e)||e.children&&e.children.map(toString).join("")||""}function valueOf(e){return(e&&e.value?e.value:e.alt?e.alt:e.title)||""}},,function(e){"use strict";if(!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0){e.exports={nextTick:nextTick}}else{e.exports=process}function nextTick(e,t,r,i){if(typeof e!=="function"){throw new TypeError('"callback" argument must be a function')}var n=arguments.length;var a,u;switch(n){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function afterTickOne(){e.call(null,t)});case 3:return process.nextTick(function afterTickTwo(){e.call(null,t,r)});case 4:return process.nextTick(function afterTickThree(){e.call(null,t,r,i)});default:a=new Array(n-1);u=0;while(u=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}},,function(e,t,r){"use strict";var i=r(431);function homedir(){var e=process.env;var t=e.HOME;var r=e.LOGNAME||e.USER||e.LNAME||e.USERNAME;if(process.platform==="win32"){return e.USERPROFILE||e.HOMEDRIVE+e.HOMEPATH||t||null}if(process.platform==="darwin"){return t||(r?"/Users/"+r:null)}if(process.platform==="linux"){return t||(process.getuid()===0?"/root":r?"/home/"+r:null)}return t||null}e.exports=typeof i.homedir==="function"?i.homedir:homedir},,,,,,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(270);var u=r(704);var s=r(839);var o=r(526);e.exports=i("remark-lint:no-heading-content-indent",noHeadingContentIndent);var l=s.start;var f=s.end;function noHeadingContentIndent(e,t){var r=String(t);n(e,"heading",visitor);function visitor(e){var i;var n;var s;var c;var h;var p;var v;var d;var D;var m;if(o(e)){return}i=e.depth;n=e.children;s=a(e,"atx");if(s==="atx"||s==="atx-closed"){h=l(e);d=h.offset;D=r.charAt(d);while(D&&D!=="#"){D=r.charAt(++d)}if(!D){return}d=i+(d-h.offset);c=l(n[0]).column;if(!c){return}v=c-h.column-1-d;if(v){m=(v>0?"Remove":"Add")+" "+Math.abs(v)+" "+u("space",v)+" before this heading’s content";t.message(m,l(n[0]))}}if(s==="atx-closed"){p=f(n[n.length-1]);v=f(e).column-p.column-1-i;if(v){m="Remove "+v+" "+u("space",v)+" after this heading’s content";t.message(m,p)}}}}},function(e,t,r){"use strict";var i=r(336);var n=r(440);var a=r(901);var u=r(360);var s=r(315);e.exports=setOptions;var o={entities:{true:true,false:true,numbers:true,escape:true},bullet:{"*":true,"-":true,"+":true},rule:{"-":true,_:true,"*":true},listItemIndent:{tab:true,mixed:true,1:true},emphasis:{_:true,"*":true},strong:{_:true,"*":true},fence:{"`":true,"~":true}};var l={boolean:validateBoolean,string:validateString,number:validateNumber,function:validateFunction};function setOptions(e){var t=this;var r=t.options;var n;var s;if(e==null){e={}}else if(typeof e==="object"){e=i(e)}else{throw new Error("Invalid value `"+e+"` for setting `options`")}for(s in a){l[typeof a[s]](e,s,r[s],o[s])}n=e.ruleRepetition;if(n&&n<3){raise(n,"options.ruleRepetition")}t.encode=encodeFactory(String(e.entities));t.escape=u(e);t.options=e;return t}function validateBoolean(e,t,r){var i=e[t];if(i==null){i=r}if(typeof i!=="boolean"){raise(i,"options."+t)}e[t]=i}function validateNumber(e,t,r){var i=e[t];if(i==null){i=r}if(isNaN(i)){raise(i,"options."+t)}e[t]=i}function validateString(e,t,r,i){var n=e[t];if(n==null){n=r}n=String(n);if(!(n in i)){raise(n,"options."+t)}e[t]=n}function validateFunction(e,t,r){var i=e[t];if(i==null){i=r}if(typeof i!=="function"){raise(i,"options."+t)}e[t]=i}function encodeFactory(e){var t={};if(e==="false"){return s}if(e==="true"){t.useNamedReferences=true}if(e==="escape"){t.escapeOnly=true;t.useNamedReferences=true}return wrapped;function wrapped(e){return n(e,t)}}function raise(e,t){throw new Error("Invalid value `"+e+"` for setting `"+t+"`")}},,function(e,t){t=e.exports=trim;function trim(e){return e.replace(/^\s*|\s*$/g,"")}t.left=function(e){return e.replace(/^\s*/,"")};t.right=function(e){return e.replace(/\s*$/,"")}},function(e,t,r){"use strict";var i=r(814);e.exports=thematic;var n=" ";function thematic(){var e=this.options;var t=i(e.rule,e.ruleRepetition);return e.ruleSpaces?t.split("").join(n):t}},,,,,function(e,t,r){"use strict";var i=r(315);e.exports=enter;function enter(e,t){var r=e.encode;var n=e.escape;var a=e.enterLink();if(t.referenceType!=="shortcut"&&t.referenceType!=="collapsed"){return a}e.escape=i;e.encode=i;return exit;function exit(){e.encode=r;e.escape=n;a()}}},function(e,t,r){"use strict";var i=r(727);e.exports=new i({include:[r(234)],implicit:[r(633),r(843),r(981),r(702)]})},function(e,t,r){"use strict";var i=r(36);var n=r(814);var a=r(439);var u=r(1);var s=r(235);var o=r(724);e.exports=list;var l="*";var f="_";var c="+";var h="-";var p=".";var v=" ";var d="\n";var D="\t";var m=")";var g="x";var E=4;var A=/\n\n(?!\s*$)/;var C=/^\[([ \t]|x|X)][ \t]/;var y=/^([ \t]*)([*+-]|\d+[.)])( {1,4}(?! )| |\t|$|(?=\n))([^\n]*)/;var w=/^([ \t]*)([*+-]|\d+[.)])([ \t]+)/;var x=/^( {1,4}|\t)?/gm;function list(e,t,r){var n=this;var u=n.options.commonmark;var s=n.options.pedantic;var g=n.blockTokenizers;var A=n.interruptList;var C=0;var y=t.length;var w=null;var x=0;var b;var F;var S;var B;var k;var O;var P;var T;var I;var M;var L;var R;var j;var U;var N;var J;var z;var X;var G=false;var q;var W;var _;var V;while(C=E){return}S=t.charAt(C);if(S===l||S===c||S===h){B=S;F=false}else{F=true;b="";while(C=E){V=true}if(J&&x>=J.indent){V=true}S=t.charAt(C);T=null;if(!V){if(S===l||S===c||S===h){T=S;C++;x++}else{b="";while(C=J.indent||x>E}P=false;C=O}M=t.slice(O,k);I=O===C?M:t.slice(C,k);if(T===l||T===f||T===h){if(g.thematicBreak.call(n,e,M,true)){break}}L=R;R=!P&&!i(I).length;if(V&&J){J.value=J.value.concat(N,M);U=U.concat(N,M);N=[]}else if(P){if(N.length!==0){G=true;J.value.push("");J.trail=N.concat()}J={value:[M],indent:x,trail:[]};j.push(J);U=U.concat(N,M);N=[]}else if(R){if(L&&!u){break}N.push(M)}else{if(L){break}if(o(A,g,n,[e,M,true])){break}J.value=J.value.concat(N,M);U=U.concat(N,M);N=[]}C=k+1}q=e(U.join(d)).reset({type:"list",ordered:F,start:w,spread:G,children:[]});z=n.enterList();X=n.enterBlock();C=-1;y=j.length;while(++C1){t.message(s,e)}}}},function(e){e.exports=function isBuffer(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)}},,,,,,,,function(e){e.exports=require("util")},function(e,t,r){"use strict";var i=r(727);e.exports=i.DEFAULT=new i({include:[r(388)],explicit:[r(875),r(555),r(329)]})},function(e){e.exports=require("fs")},function(e){"use strict";e.exports=function(e){if(typeof e!=="string"){throw new TypeError("Expected a string")}return!/[^0-9a-z\xDF-\xFF]/.test(e.toLowerCase())}},,,,,function(e,t,r){"use strict";var i=r(495);var n=r(7);e.exports=i("remark-lint:no-tabs",noTabs);var a="Use spaces instead of hard-tabs";function noTabs(e,t){var r=String(t);var i=n(t).toPosition;var u=r.indexOf("\t");while(u!==-1){t.message(a,i(u));u=r.indexOf("\t",u+1)}}},function(e){function webpackEmptyContext(e){var t=new Error("Cannot find module '"+e+"'");t.code="MODULE_NOT_FOUND";throw t}webpackEmptyContext.keys=function(){return[]};webpackEmptyContext.resolve=webpackEmptyContext;e.exports=webpackEmptyContext;webpackEmptyContext.id=73},function(e,t,r){"use strict";var i=r(864);var n=r(97);var a=r(503);var u=r(123);var s=r(340);var o=r(951);e.exports=unified().freeze();var l=[].slice;var f={}.hasOwnProperty;var c=u().use(pipelineParse).use(pipelineRun).use(pipelineStringify);function pipelineParse(e,t){t.tree=e.parse(t.file)}function pipelineRun(e,t,r){e.run(t.tree,t.file,done);function done(e,i,n){if(e){r(e)}else{t.tree=i;t.file=n;r()}}}function pipelineStringify(e,t){t.file.contents=e.stringify(t.tree,t.file)}function unified(){var e=[];var t=u();var r={};var h=false;var p=-1;processor.data=data;processor.freeze=freeze;processor.attachers=e;processor.use=use;processor.parse=parse;processor.stringify=stringify;processor.run=run;processor.runSync=runSync;processor.process=process;processor.processSync=processSync;return processor;function processor(){var t=unified();var n=e.length;var a=-1;while(++a{if(typeof e!=="string"){throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof e}\``)}if(typeof t!=="string"){throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof t}\``)}try{e=a.realpathSync(e)}catch(t){if(t.code==="ENOENT"){e=i.resolve(e)}else if(r){return null}else{throw t}}const u=i.join(e,"noop.js");const s=()=>n._resolveFilename(t,{id:u,filename:u,paths:n._nodeModulePaths(e)});if(r){try{return s()}catch(e){return null}}return s()};e.exports=((e,t)=>u(e,t));e.exports.silent=((e,t)=>u(e,t,true))},,function(e,t,r){"use strict";var i=r(347)("unified-engine:file-pipeline:configure");var n=r(928);var a=r(623);var u=r(692);var s=r(876);e.exports=configure;function configure(e,t,r,o){var l=e.configuration;var f=e.processor;if(n(t).fatal){return o()}l.load(t.path,handleConfiguration);function handleConfiguration(e,t){var n;var l;var c;var h;var p;var v;if(e){return o(e)}i("Using settings `%j`",t.settings);f.data("settings",t.settings);n=t.plugins;h=n.length;p=-1;i("Using `%d` plugins",h);while(++p>10)+55296,(e-65536&1023)+56320)}var C=new Array(256);var y=new Array(256);for(var w=0;w<256;w++){C[w]=simpleEscapeSequence(w)?1:0;y[w]=simpleEscapeSequence(w)}function State(e,t){this.input=e;this.filename=t["filename"]||null;this.schema=t["schema"]||s;this.onWarning=t["onWarning"]||null;this.legacy=t["legacy"]||false;this.json=t["json"]||false;this.listener=t["listener"]||null;this.implicitTypes=this.schema.compiledImplicit;this.typeMap=this.schema.compiledTypeMap;this.length=e.length;this.position=0;this.line=0;this.lineStart=0;this.lineIndent=0;this.documents=[]}function generateError(e,t){return new n(t,new a(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function throwError(e,t){throw generateError(e,t)}function throwWarning(e,t){if(e.onWarning){e.onWarning.call(null,generateError(e,t))}}var x={YAML:function handleYamlDirective(e,t,r){var i,n,a;if(e.version!==null){throwError(e,"duplication of %YAML directive")}if(r.length!==1){throwError(e,"YAML directive accepts exactly one argument")}i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]);if(i===null){throwError(e,"ill-formed argument of the YAML directive")}n=parseInt(i[1],10);a=parseInt(i[2],10);if(n!==1){throwError(e,"unacceptable YAML version of the document")}e.version=r[0];e.checkLineBreaks=a<2;if(a!==1&&a!==2){throwWarning(e,"unsupported YAML version of the document")}},TAG:function handleTagDirective(e,t,r){var i,n;if(r.length!==2){throwError(e,"TAG directive accepts exactly two arguments")}i=r[0];n=r[1];if(!E.test(i)){throwError(e,"ill-formed tag handle (first argument) of the TAG directive")}if(o.call(e.tagMap,i)){throwError(e,'there is a previously declared suffix for "'+i+'" tag handle')}if(!A.test(n)){throwError(e,"ill-formed tag prefix (second argument) of the TAG directive")}e.tagMap[i]=n}};function captureSegment(e,t,r,i){var n,a,u,s;if(t1){e.result+=i.repeat("\n",t-1)}}function readPlainScalar(e,t,r){var i,n,a,u,s,o,l,f,c=e.kind,h=e.result,p;p=e.input.charCodeAt(e.position);if(is_WS_OR_EOL(p)||is_FLOW_INDICATOR(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96){return false}if(p===63||p===45){n=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(n)||r&&is_FLOW_INDICATOR(n)){return false}}e.kind="scalar";e.result="";a=u=e.position;s=false;while(p!==0){if(p===58){n=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(n)||r&&is_FLOW_INDICATOR(n)){break}}else if(p===35){i=e.input.charCodeAt(e.position-1);if(is_WS_OR_EOL(i)){break}}else if(e.position===e.lineStart&&testDocumentSeparator(e)||r&&is_FLOW_INDICATOR(p)){break}else if(is_EOL(p)){o=e.line;l=e.lineStart;f=e.lineIndent;skipSeparationSpace(e,false,-1);if(e.lineIndent>=t){s=true;p=e.input.charCodeAt(e.position);continue}else{e.position=u;e.line=o;e.lineStart=l;e.lineIndent=f;break}}if(s){captureSegment(e,a,u,false);writeFoldedLines(e,e.line-o);a=u=e.position;s=false}if(!is_WHITE_SPACE(p)){u=e.position+1}p=e.input.charCodeAt(++e.position)}captureSegment(e,a,u,false);if(e.result){return true}e.kind=c;e.result=h;return false}function readSingleQuotedScalar(e,t){var r,i,n;r=e.input.charCodeAt(e.position);if(r!==39){return false}e.kind="scalar";e.result="";e.position++;i=n=e.position;while((r=e.input.charCodeAt(e.position))!==0){if(r===39){captureSegment(e,i,e.position,true);r=e.input.charCodeAt(++e.position);if(r===39){i=e.position;e.position++;n=e.position}else{return true}}else if(is_EOL(r)){captureSegment(e,i,n,true);writeFoldedLines(e,skipSeparationSpace(e,false,t));i=n=e.position}else if(e.position===e.lineStart&&testDocumentSeparator(e)){throwError(e,"unexpected end of the document within a single quoted scalar")}else{e.position++;n=e.position}}throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,t){var r,i,n,a,u,s;s=e.input.charCodeAt(e.position);if(s!==34){return false}e.kind="scalar";e.result="";e.position++;r=i=e.position;while((s=e.input.charCodeAt(e.position))!==0){if(s===34){captureSegment(e,r,e.position,true);e.position++;return true}else if(s===92){captureSegment(e,r,e.position,true);s=e.input.charCodeAt(++e.position);if(is_EOL(s)){skipSeparationSpace(e,false,t)}else if(s<256&&C[s]){e.result+=y[s];e.position++}else if((u=escapedHexLen(s))>0){n=u;a=0;for(;n>0;n--){s=e.input.charCodeAt(++e.position);if((u=fromHexCode(s))>=0){a=(a<<4)+u}else{throwError(e,"expected hexadecimal character")}}e.result+=charFromCodepoint(a);e.position++}else{throwError(e,"unknown escape sequence")}r=i=e.position}else if(is_EOL(s)){captureSegment(e,r,i,true);writeFoldedLines(e,skipSeparationSpace(e,false,t));r=i=e.position}else if(e.position===e.lineStart&&testDocumentSeparator(e)){throwError(e,"unexpected end of the document within a double quoted scalar")}else{e.position++;i=e.position}}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,t){var r=true,i,n=e.tag,a,u=e.anchor,s,o,f,c,h,p={},v,d,D,m;m=e.input.charCodeAt(e.position);if(m===91){o=93;h=false;a=[]}else if(m===123){o=125;h=true;a={}}else{return false}if(e.anchor!==null){e.anchorMap[e.anchor]=a}m=e.input.charCodeAt(++e.position);while(m!==0){skipSeparationSpace(e,true,t);m=e.input.charCodeAt(e.position);if(m===o){e.position++;e.tag=n;e.anchor=u;e.kind=h?"mapping":"sequence";e.result=a;return true}else if(!r){throwError(e,"missed comma between flow collection entries")}d=v=D=null;f=c=false;if(m===63){s=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(s)){f=c=true;e.position++;skipSeparationSpace(e,true,t)}}i=e.line;composeNode(e,t,l,false,true);d=e.tag;v=e.result;skipSeparationSpace(e,true,t);m=e.input.charCodeAt(e.position);if((c||e.line===i)&&m===58){f=true;m=e.input.charCodeAt(++e.position);skipSeparationSpace(e,true,t);composeNode(e,t,l,false,true);D=e.result}if(h){storeMappingPair(e,a,p,d,v,D)}else if(f){a.push(storeMappingPair(e,null,p,d,v,D))}else{a.push(v)}skipSeparationSpace(e,true,t);m=e.input.charCodeAt(e.position);if(m===44){r=true;m=e.input.charCodeAt(++e.position)}else{r=false}}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,t){var r,n,a=p,u=false,s=false,o=t,l=0,f=false,c,h;h=e.input.charCodeAt(e.position);if(h===124){n=false}else if(h===62){n=true}else{return false}e.kind="scalar";e.result="";while(h!==0){h=e.input.charCodeAt(++e.position);if(h===43||h===45){if(p===a){a=h===43?d:v}else{throwError(e,"repeat of a chomping mode identifier")}}else if((c=fromDecimalCode(h))>=0){if(c===0){throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one")}else if(!s){o=t+c-1;s=true}else{throwError(e,"repeat of an indentation width identifier")}}else{break}}if(is_WHITE_SPACE(h)){do{h=e.input.charCodeAt(++e.position)}while(is_WHITE_SPACE(h));if(h===35){do{h=e.input.charCodeAt(++e.position)}while(!is_EOL(h)&&h!==0)}}while(h!==0){readLineBreak(e);e.lineIndent=0;h=e.input.charCodeAt(e.position);while((!s||e.lineIndento){o=e.lineIndent}if(is_EOL(h)){l++;continue}if(e.lineIndentt)&&o!==0){throwError(e,"bad indentation of a sequence entry")}else if(e.lineIndentt){if(composeNode(e,t,h,true,n)){if(D){v=e.result}else{d=e.result}}if(!D){storeMappingPair(e,l,c,p,v,d,a,u);p=v=d=null}skipSeparationSpace(e,true,-1);g=e.input.charCodeAt(e.position)}if(e.lineIndent>t&&g!==0){throwError(e,"bad indentation of a mapping entry")}else if(e.lineIndentt){p=1}else if(e.lineIndent===t){p=0}else if(e.lineIndentt){p=1}else if(e.lineIndent===t){p=0}else if(e.lineIndent tag; it should be "'+g.kind+'", not "'+e.kind+'"')}if(!g.resolve(e.result)){throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}else{e.result=g.construct(e.result);if(e.anchor!==null){e.anchorMap[e.anchor]=e.result}}}else{throwError(e,"unknown tag !<"+e.tag+">")}}if(e.listener!==null){e.listener("close",e)}return e.tag!==null||e.anchor!==null||d}function readDocument(e){var t=e.position,r,i,n,a=false,u;e.version=null;e.checkLineBreaks=e.legacy;e.tagMap={};e.anchorMap={};while((u=e.input.charCodeAt(e.position))!==0){skipSeparationSpace(e,true,-1);u=e.input.charCodeAt(e.position);if(e.lineIndent>0||u!==37){break}a=true;u=e.input.charCodeAt(++e.position);r=e.position;while(u!==0&&!is_WS_OR_EOL(u)){u=e.input.charCodeAt(++e.position)}i=e.input.slice(r,e.position);n=[];if(i.length<1){throwError(e,"directive name must not be less than one character in length")}while(u!==0){while(is_WHITE_SPACE(u)){u=e.input.charCodeAt(++e.position)}if(u===35){do{u=e.input.charCodeAt(++e.position)}while(u!==0&&!is_EOL(u));break}if(is_EOL(u))break;r=e.position;while(u!==0&&!is_WS_OR_EOL(u)){u=e.input.charCodeAt(++e.position)}n.push(e.input.slice(r,e.position))}if(u!==0)readLineBreak(e);if(o.call(x,i)){x[i](e,i,n)}else{throwWarning(e,'unknown document directive "'+i+'"')}}skipSeparationSpace(e,true,-1);if(e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45){e.position+=3;skipSeparationSpace(e,true,-1)}else if(a){throwError(e,"directives end mark is expected")}composeNode(e,e.lineIndent-1,h,false,true);skipSeparationSpace(e,true,-1);if(e.checkLineBreaks&&m.test(e.input.slice(t,e.position))){throwWarning(e,"non-ASCII line breaks are interpreted as content")}e.documents.push(e.result);if(e.position===e.lineStart&&testDocumentSeparator(e)){if(e.input.charCodeAt(e.position)===46){e.position+=3;skipSeparationSpace(e,true,-1)}return}if(e.position output."+r,""," # Rewrite all applicable files"," $ "+i+" . -o"].join("\n");return{helpMessage:u,cwd:t.cwd,processor:t.processor,help:n.help,version:n.version,files:n._,filePath:n.filePath,watch:n.watch,extensions:f.length===0?t.extensions:f,output:n.output,out:n.stdout,tree:n.tree,treeIn:n.treeIn,treeOut:n.treeOut,inspect:n.inspect,rcName:t.rcName,packageField:t.packageField,rcPath:n.rcPath,detectConfig:n.config,settings:settings(n.setting),ignoreName:t.ignoreName,ignorePath:n.ignorePath,ignorePatterns:commaSeparated(n.ignorePattern),detectIgnore:n.ignore,pluginPrefix:t.pluginPrefix,plugins:plugins(n.use),reporter:c[0],reporterOptions:c[1],color:n.color,silent:n.silent,quiet:n.quiet,frail:n.frail}}function addEach(e){var t=e.default;l.default[e.long]=t===undefined?null:t;if(e.type in l){l[e.type].push(e.long)}if(e.short){l.alias[e.short]=e.long}}function commaSeparated(e){return flatten(normalize(e).map(splitList))}function plugins(e){var t={};normalize(e).map(splitOptions).forEach(function(e){t[e[0]]=e[1]?parseConfig(e[1],{}):null});return t}function reporter(e){var t=normalize(e).map(splitOptions).map(function(e){return[e[0],e[1]?parseConfig(e[1],{}):null]});return t[t.length-1]||[]}function settings(e){var t={};normalize(e).forEach(function(e){parseConfig(e,t)});return t}function parseConfig(e,t){var r;var i;try{e=toCamelCase(parseJSON(e))}catch(t){i=t.message.replace(/at(?= position)/,"around");throw s("Cannot parse `%s` as JSON: %s",e,i)}for(r in e){t[r]=e[r]}return t}function handleUnknownArgument(e){if(e.charAt(0)!=="-"){return}if(e.charAt(1)==="-"){throw s("Unknown option `%s`, expected:\n%s",e,inspectAll(o))}e.slice(1).split("").forEach(each);function each(e){var t=o.length;var r=-1;var i;while(++r=2,has16m:e>=3}}function supportsColor(e){if(u===false){return 0}if(n("color=16m")||n("color=full")||n("color=truecolor")){return 3}if(n("color=256")){return 2}if(e&&!e.isTTY&&u!==true){return 0}const t=u?1:0;if(process.platform==="win32"){const e=i.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in a){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in a)||a.CI_NAME==="codeship"){return 1}return t}if("TEAMCITY_VERSION"in a){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(a.TEAMCITY_VERSION)?1:0}if(a.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in a){const e=parseInt((a.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(a.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(a.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(a.TERM)){return 1}if("COLORTERM"in a){return 1}if(a.TERM==="dumb"){return t}return t}function getSupportLevel(e){const t=supportsColor(e);return translateLevel(t)}e.exports={supportsColor:getSupportLevel,stdout:getSupportLevel(process.stdout),stderr:getSupportLevel(process.stderr)}},,,function(e,t,r){"use strict";var i=r(347)("unified-engine:file-pipeline:queue");var n=r(928);e.exports=queue;function queue(e,t,r,a){var u=t.history[0];var s=r.complete;var o=true;if(!s){s={};r.complete=s}i("Queueing `%s`",u);s[u]=a;r.valueOf().forEach(each);if(!o){i("Not flushing: some files cannot be flushed");return}r.complete={};r.pipeline.run(r,done);function each(e){var t=e.history[0];if(n(e).fatal){return}if(typeof s[t]==="function"){i("`%s` can be flushed",t)}else{i("Interupting flush: `%s` is not finished",t);o=false}}function done(e){i("Flushing: all files can be flushed");for(u in s){s[u](e)}}}},function(e,t,r){"use strict";var i=r(171);var n=r(426);e.exports=definition;definition.notInList=true;definition.notInBlock=true;var a='"';var u="'";var s="\\";var o="\n";var l="\t";var f=" ";var c="[";var h="]";var p="(";var v=")";var d=":";var D="<";var m=">";function definition(e,t,r){var i=this;var m=i.options.commonmark;var g=0;var E=t.length;var A="";var C;var y;var w;var x;var b;var F;var S;var B;while(g"];var r=t.concat(["~","|"]);var i=r.concat(["\n",'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);escapes.default=t;escapes.gfm=r;escapes.commonmark=i;function escapes(e){var n=e||{};if(n.commonmark){return i}return n.gfm?r:t}},,function(e){"use strict";e.exports=locate;function locate(e,t){return e.indexOf("~~",t)}},function(e,t,r){"use strict";var i=r(495);var n=r(7);var a=r(682);var u=r(839);var s=r(526);e.exports=i("remark-lint:checkbox-character-style",checkboxCharacterStyle);var o=u.start;var l=u.end;var f={x:true,X:true};var c={" ":true,"\t":true};var h={true:"checked",false:"unchecked"};function checkboxCharacterStyle(e,t,r){var i=String(t);var u=n(t);r=typeof r==="object"?r:{};if(r.unchecked&&c[r.unchecked]!==true){t.fail("Invalid unchecked checkbox marker `"+r.unchecked+"`: use either `'\\t'`, or `' '`")}if(r.checked&&f[r.checked]!==true){t.fail("Invalid checked checkbox marker `"+r.checked+"`: use either `'x'`, or `'X'`")}a(e,"listItem",visitor);function visitor(e){var n;var a;var f;var c;var p;var v;var d;if(typeof e.checked!=="boolean"||s(e)){return}n=h[e.checked];a=o(e).offset;f=(e.children.length===0?l(e):o(e.children[0])).offset;c=i.slice(a,f).trimRight().slice(0,-1);v=c.charAt(c.length-1);p=r[n];if(p){if(v!==p){d=n.charAt(0).toUpperCase()+n.slice(1)+" checkboxes should use `"+p+"` as a marker";t.message(d,{start:u.toPosition(a+c.length-1),end:u.toPosition(a+c.length)})}}else{r[n]=v}}}},,,,function(e){"use strict";e.exports=wordCharacter;var t=String.fromCharCode;var r=/\w/;function wordCharacter(e){return r.test(typeof e==="number"?t(e):e.charAt(0))}},,,,,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(526);e.exports=i("remark-lint:no-shortcut-reference-image",noShortcutReferenceImage);var u="Use the trailing [] on reference images";function noShortcutReferenceImage(e,t){n(e,"imageReference",visitor);function visitor(e){if(!a(e)&&e.referenceType==="shortcut"){t.message(u,e)}}}},,function(e,t,r){"use strict";var i=r(335);e.exports=trough;trough.wrap=i;var n=[].slice;function trough(){var e=[];var t={};t.run=run;t.use=use;return t;function run(){var t=-1;var r=n.call(arguments,0,-1);var a=arguments[arguments.length-1];if(typeof a!=="function"){throw new Error("Expected function as last argument, not "+a)}next.apply(null,[null].concat(r));function next(u){var s=e[++t];var o=n.call(arguments,0);var l=o.slice(1);var f=r.length;var c=-1;if(u){a(u);return}while(++c"){break}if(v!==" "&&v!=="\t"){t.message(o,d);break}}}}}},,function(e,t,r){e.exports=realpath;realpath.realpath=realpath;realpath.sync=realpathSync;realpath.realpathSync=realpathSync;realpath.monkeypatch=monkeypatch;realpath.unmonkeypatch=unmonkeypatch;var i=r(66);var n=i.realpath;var a=i.realpathSync;var u=process.version;var s=/^v[0-5]\./.test(u);var o=r(544);function newError(e){return e&&e.syscall==="realpath"&&(e.code==="ELOOP"||e.code==="ENOMEM"||e.code==="ENAMETOOLONG")}function realpath(e,t,r){if(s){return n(e,t,r)}if(typeof t==="function"){r=t;t=null}n(e,t,function(i,n){if(newError(i)){o.realpath(e,t,r)}else{r(i,n)}})}function realpathSync(e,t){if(s){return a(e,t)}try{return a(e,t)}catch(r){if(newError(r)){return o.realpathSync(e,t)}else{throw r}}}function monkeypatch(){i.realpath=realpath;i.realpathSync=realpathSync}function unmonkeypatch(){i.realpath=n;i.realpathSync=a}},,,,,,function(e){"use strict";var t={}.hasOwnProperty;e.exports=stringify;function stringify(e){if(!e||typeof e!=="object"){return""}if(t.call(e,"position")||t.call(e,"type")){return position(e.position)}if(t.call(e,"start")||t.call(e,"end")){return position(e)}if(t.call(e,"line")||t.call(e,"column")){return point(e)}return""}function point(e){if(!e||typeof e!=="object"){e={}}return index(e.line)+":"+index(e.column)}function position(e){if(!e||typeof e!=="object"){e={}}return point(e.start)+"-"+point(e.end)}function index(e){return e&&typeof e==="number"?e:1}},,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(839);var u=r(526);e.exports=i("remark-lint:fenced-code-flag",fencedCodeFlag);var s=a.start;var o=a.end;var l=/^ {0,3}([~`])\1{2,}/;var f="Invalid code-language flag";var c="Missing code-language flag";function fencedCodeFlag(e,t,r){var i=String(t);var a=false;var h=[];if(typeof r==="object"&&!("length"in r)){a=Boolean(r.allowEmpty);r=r.flags}if(typeof r==="object"&&"length"in r){h=String(r).split(",")}n(e,"code",visitor);function visitor(e){var r;if(!u(e)){if(e.lang){if(h.length!==0&&h.indexOf(e.lang)===-1){t.message(f,e)}}else{r=i.slice(s(e).offset,o(e).offset);if(!a&&l.test(r)){t.message(c,e)}}}}}},function(e){"use strict";e.exports=alphabetical;function alphabetical(e){var t=typeof e==="string"?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}},function(e){"use strict";e.exports=locate;var t=["https://","http://","mailto:"];function locate(e,r){var i=t.length;var n=-1;var a=-1;var u;if(!this.options.gfm){return-1}while(++na){i[n-a]=e[n]}return i}},,,,,,,,,function(e,t,r){"use strict";var i=r(211);var n=Object.prototype.hasOwnProperty;var a=Object.prototype.toString;function resolveYamlOmap(e){if(e===null)return true;var t=[],r,i,u,s,o,l=e;for(r=0,i=l.length;r-1){a.splice(u,1)}var s=r;a.forEach(function _buildSubObj(e,r){if(!e||typeof s!=="object")return;if(r===a.length-1)s[e]=t[n];if(s[e]===undefined)s[e]={};s=s[e]})}}return r};var c=t.find=function(){var e=a.join.apply(null,[].slice.call(arguments));function find(e,t){var r=a.join(e,t);try{i.statSync(r);return r}catch(r){if(a.dirname(e)!==e)return find(a.dirname(e),t)}}return find(process.cwd(),e)}},,,,function(e,t,r){"use strict";const i=r(202);const n=r(751);const a=i("JSONError",{fileName:i.append("in %s")});e.exports=((e,t,r)=>{if(typeof t==="string"){r=t;t=null}try{try{return JSON.parse(e,t)}catch(r){n(e,t);throw r}}catch(e){e.message=e.message.replace(/\n/g,"");const t=new a(e);if(r){t.fileName=r}throw t}})},function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(839);var u=r(526);e.exports=i("remark-lint:maximum-line-length",maximumLineLength);var s=a.start;var o=a.end;function maximumLineLength(e,t,r){var i=typeof r==="number"&&!isNaN(r)?r:80;var a=String(t);var l=a.split(/\r?\n/);var f=l.length;var c=-1;var h;n(e,["heading","table","code","definition","html","jsx"],ignore);n(e,["link","image","inlineCode"],inline);while(++ci){t.message("Line must be at most "+i+" characters",{line:c+1,column:h+1})}}function inline(e,t,r){var n=r.children[t+1];var a;var l;if(u(e)){return}a=s(e);l=o(e);if(a.column>i||l.column0?"Add":"Remove")+" "+Math.abs(i)+" "+n("space",i)+" between blockquote and content";t.message(a,u.start(e.children[0]))}}else{r=check(e)}}}function check(e){var t=e.children[0];var r=u.start(t).column-u.start(e).column;var i=o(t).match(/^ +/);if(i){r+=i[0].length}return r}},,,,,function(e){"use strict";e.exports=whitespace;var t=String.fromCharCode;var r=/\s/;function whitespace(e){return r.test(typeof e==="number"?t(e):e.charAt(0))}},,,function(e,t,r){"use strict";var i=r(814);var n="\n";var a=" ";var u=":";var s="[";var o="]";var l="^";var f=4;var c=n+n;var h=i(a,f);e.exports=footnoteDefinition;function footnoteDefinition(e){var t=this.all(e).join(c+h);return s+l+(e.label||e.identifier)+o+u+a+t}},function(e){"use strict";e.exports=collapse;function collapse(e){return String(e).replace(/\s+/g," ")}},function(e){"use strict";e.exports=label;var t="[";var r="]";var i="shortcut";var n="collapsed";function label(e){var a=e.referenceType;if(a===i){return""}return t+(a===n?"":e.label||e.identifier)+r}},,,,,function(e,t,r){"use strict";var i=r(814);var n=r(705);e.exports=listItem;var a="\n";var u=" ";var s="[";var o="]";var l="x";var f=Math.ceil;var c=a+a;var h=4;function listItem(e,t,r,p){var v=this;var d=v.options.listItemIndent;var D=p||v.options.bullet;var m=e.spread==null?true:e.spread;var g=e.checked;var E=e.children;var A=E.length;var C=[];var y=-1;var w;var x;var b;while(++y",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"}},,,,,function(e,t,r){"use strict";var i=r(64);var n=r(753);var a=function errorEx(e,t){if(!e||e.constructor!==String){t=e||{};e=Error.name}var r=function ErrorEXError(i){if(!this){return new ErrorEXError(i)}i=i instanceof Error?i.message:i||this.message;Error.call(this,i);Error.captureStackTrace(this,r);this.name=e;Object.defineProperty(this,"message",{configurable:true,enumerable:false,get:function(){var e=i.split(/\r?\n/g);for(var r in t){if(!t.hasOwnProperty(r)){continue}var a=t[r];if("message"in a){e=a.message(this[r],e)||e;if(!n(e)){e=[e]}}}return e.join("\n")},set:function(e){i=e}});var a=null;var u=Object.getOwnPropertyDescriptor(this,"stack");var s=u.get;var o=u.value;delete u.value;delete u.writable;u.set=function(e){a=e};u.get=function(){var e=(a||(s?s.call(this):o)).split(/\r?\n+/g);if(!a){e[0]=this.name+": "+this.message}var r=1;for(var i in t){if(!t.hasOwnProperty(i)){continue}var n=t[i];if("line"in n){var u=n.line(this[i]);if(u){e.splice(r++,0," "+u)}}if("stack"in n){n.stack(this[i],e)}}return e.join("\n")};Object.defineProperty(this,"stack",u)};if(Object.setPrototypeOf){Object.setPrototypeOf(r.prototype,Error.prototype);Object.setPrototypeOf(r,Error)}else{i.inherits(r,Error)}return r};a.append=function(e,t){return{message:function(r,i){r=r||t;if(r){i[0]+=" "+e.replace("%s",r.toString())}return i}}};a.line=function(e,t){return{line:function(r){r=r||t;if(r){return e.replace("%s",r.toString())}return null}}};e.exports=a},,,,,function(e,t,r){"use strict";var i=r(211);e.exports=new i("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})},,,function(e,t,r){"use strict";var i=r(589);function replaceExt(e,t){if(typeof e!=="string"){return e}if(e.length===0){return e}var r=i.basename(e,i.extname(e))+t;return i.join(i.dirname(e),r)}e.exports=replaceExt},function(e,t,r){"use strict";var i=r(833);var n=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"];var a=["scalar","sequence","mapping"];function compileStyleAliases(e){var t={};if(e!==null){Object.keys(e).forEach(function(r){e[r].forEach(function(e){t[String(e)]=r})})}return t}function Type(e,t){t=t||{};Object.keys(t).forEach(function(t){if(n.indexOf(t)===-1){throw new i('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}});this.tag=e;this.kind=t["kind"]||null;this.resolve=t["resolve"]||function(){return true};this.construct=t["construct"]||function(e){return e};this.instanceOf=t["instanceOf"]||null;this.predicate=t["predicate"]||null;this.represent=t["represent"]||null;this.defaultStyle=t["defaultStyle"]||null;this.styleAliases=compileStyleAliases(t["styleAliases"]||null);if(a.indexOf(this.kind)===-1){throw new i('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}}e.exports=Type},function(e,t,r){"use strict";var i=r(876);var n=true;try{n="inspect"in r(64)}catch(e){n=false}e.exports=n?inspect:noColor;inspect.color=inspect;noColor.color=inspect;inspect.noColor=noColor;noColor.noColor=noColor;var a=ansiColor(2,22);var u=ansiColor(33,39);var s=ansiColor(32,39);var o=new RegExp("(?:"+"(?:\\u001b\\[)|"+"\\u009b"+")"+"(?:"+"(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m]"+")|"+"\\u001b[A-M]","g");var l=["type","value","children","position"];function noColor(e,t){return stripColor(inspect(e,t))}function inspect(e,t){var r;var i;var n;var a;if(e&&Boolean(e.length)&&typeof e!=="string"){a=e.length;n=-1;r=[];while(++n|$))/i;var l=/<\/(script|pre|style)>/i;var f=/^/;var h=/^<\?/;var p=/\?>/;var v=/^/;var D=/^/;var g=/^$/;var E=new RegExp(i.source+"\\s*$");function blockHtml(e,t,r){var i=this;var A=i.options.blocks.join("|");var C=new RegExp("^|$))","i");var y=t.length;var w=0;var x;var b;var F;var S;var B;var k;var O;var P=[[o,l,true],[f,c,true],[h,p,true],[v,d,true],[D,m,true],[C,g,true],[E,g,false]];while(w0&&v.indenta){return}if(!m||!l&&u.charAt(c+1)===n){return}f=u.length+1;D="";while(++c0){const t=peek();if(!i.isHexDigit(t)){throw invalidChar(read())}e+=read()}return String.fromCodePoint(parseInt(e,16))}const E={start(){if(f.type==="eof"){throw invalidEOF()}push()},beforePropertyName(){switch(f.type){case"identifier":case"string":c=f.value;a="afterPropertyName";return;case"punctuator":pop();return;case"eof":throw invalidEOF()}},afterPropertyName(){if(f.type==="eof"){throw invalidEOF()}a="beforePropertyValue"},beforePropertyValue(){if(f.type==="eof"){throw invalidEOF()}push()},beforeArrayValue(){if(f.type==="eof"){throw invalidEOF()}if(f.type==="punctuator"&&f.value==="]"){pop();return}push()},afterPropertyValue(){if(f.type==="eof"){throw invalidEOF()}switch(f.value){case",":a="beforePropertyName";return;case"}":pop()}},afterArrayValue(){if(f.type==="eof"){throw invalidEOF()}switch(f.value){case",":a="beforeArrayValue";return;case"]":pop()}},end(){}};function push(){let e;switch(f.type){case"punctuator":switch(f.value){case"{":e={};break;case"[":e=[];break}break;case"null":case"boolean":case"numeric":case"string":e=f.value;break}if(h===undefined){h=e}else{const t=u[u.length-1];if(Array.isArray(t)){t.push(e)}else{t[c]=e}}if(e!==null&&typeof e==="object"){u.push(e);if(Array.isArray(e)){a="beforeArrayValue"}else{a="beforePropertyName"}}else{const e=u[u.length-1];if(e==null){a="end"}else if(Array.isArray(e)){a="afterArrayValue"}else{a="afterPropertyValue"}}}function pop(){u.pop();const e=u[u.length-1];if(e==null){a="end"}else if(Array.isArray(e)){a="afterArrayValue"}else{a="afterPropertyValue"}}function invalidChar(e){if(e===undefined){return syntaxError(`JSON5: invalid end of input at ${o}:${l}`)}return syntaxError(`JSON5: invalid character '${formatChar(e)}' at ${o}:${l}`)}function invalidEOF(){return syntaxError(`JSON5: invalid end of input at ${o}:${l}`)}function invalidIdentifier(){l-=5;return syntaxError(`JSON5: invalid identifier character at ${o}:${l}`)}function separatorChar(e){console.warn(`JSON5: '${formatChar(e)}' in strings is not valid ECMAScript; consider escaping`)}function formatChar(e){const t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(t[e]){return t[e]}if(e<" "){const t=e.charCodeAt(0).toString(16);return"\\x"+("00"+t).substring(t.length)}return e}function syntaxError(e){const t=new SyntaxError(e);t.lineNumber=o;t.columnNumber=l;return t}},,function(e,t,r){"use strict";var i=r(66);var n=r(589);var a=r(345);var u=r(347)("unified-engine:find-up");var s=r(692);e.exports=FindUp;var o=i.readFile;var l=n.resolve;var f=n.relative;var c=n.join;var h=n.dirname;FindUp.prototype.load=load;function FindUp(e){var t=this;var r=e.filePath;t.cache={};t.cwd=e.cwd;t.detect=e.detect;t.names=e.names;t.create=e.create;if(r){t.givenFilePath=l(e.cwd,r)}}function load(e,t){var r=this;var i=r.cache;var n=r.givenFilePath;var p=r.givenFile;var v=r.names;var d=r.create;var D=r.cwd;var m;if(n){if(p){apply(t,p)}else{p=[t];r.givenFile=p;u("Checking given file `%s`",n);o(n,loadGiven)}return}if(!r.detect){return t()}e=l(D,e);m=h(e);if(m in i){apply(t,i[m])}else{i[m]=[t];find(m)}function loadGiven(e,t){var i=r.givenFile;var s;if(e){s=a("Cannot read given file `%s`\n%s",f(D,n),e.stack);s.code="ENOENT";s.path=e.path;s.syscall=e.syscall}else{try{s=d(t,n);u("Read given file `%s`",n)}catch(e){s=a("Cannot parse given file `%s`\n%s",f(D,n),e.stack);u(e.message)}}p=s;r.givenFile=s;applyAll(i,s)}function find(t){var r=-1;var n=v.length;next();function next(){var a;if(++r{if(e)console.error(e);process.exit(t)})},,,,,,,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(839);var u=r(526);e.exports=i("remark-lint:code-block-style",codeBlockStyle);var s=a.start;var o=a.end;var l={null:true,fenced:true,indented:true};function codeBlockStyle(e,t,r){var i=String(t);r=typeof r==="string"&&r!=="consistent"?r:null;if(l[r]!==true){t.fail("Invalid code block style `"+r+"`: use either `'consistent'`, `'fenced'`, or `'indented'`")}n(e,"code",visitor);function visitor(e){var i=check(e);if(i){if(!r){r=i}else if(r!==i){t.message("Code blocks should be "+r,e)}}}function check(e){var t=s(e).offset;var r=o(e).offset;if(u(e)){return null}return e.lang||/^\s*([~`])\1{2,}/.test(i.slice(t,r))?"fenced":"indented"}}},,,function(e,t,r){"use strict";var i=r(589);var n=r(77);var a=r(289);e.exports=Ignore;Ignore.prototype.check=check;var u=i.dirname;var s=i.relative;var o=i.resolve;function Ignore(e){this.cwd=e.cwd;this.findUp=new a({filePath:e.ignorePath,cwd:e.cwd,detect:e.detectIgnore,names:e.ignoreName?[e.ignoreName]:[],create:create})}function check(e,t){var r=this;r.findUp.load(e,done);function done(i,n){var a;if(i){t(i)}else if(n){a=s(n.filePath,o(r.cwd,e));t(null,a?n.ignores(a):false)}else{t(null,false)}}}function create(e,t){var r=n().add(String(e));r.filePath=u(t);return r}},,,,function(e){e.exports={nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"}},,,,function(e,t,r){"use strict";var i=r(54);e.exports=enclose;var n="(";var a=")";var u="<";var s=">";var o=/\s/;function enclose(e,t){if(t||e.length===0||o.test(e)||i(e,n)!==i(e,a)){return u+e+s}return e}},,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(839);var u=r(526);e.exports=i("remark-lint:table-pipes",tablePipes);var s=a.start;var o=a.end;var l="Missing initial pipe in table fence";var f="Missing final pipe in table fence";function tablePipes(e,t){var r=String(t);n(e,"table",visitor);function visitor(e){var i=e.children;var n=i.length;var a=-1;var c;var h;var p;var v;var d;var D;while(++a0?parseInt(t):null};for(;i1)return true;for(var a=0;athis.maxLength)return t();if(!this.stat&&m(this.cache,r)){var a=this.cache[r];if(Array.isArray(a))a="DIR";if(!n||a==="DIR")return t(null,a);if(n&&a==="FILE")return t()}var u;var s=this.statCache[r];if(s!==undefined){if(s===false)return t(null,s);else{var o=s.isDirectory()?"DIR":"FILE";if(n&&o==="FILE")return t();else return t(null,o,s)}}var l=this;var f=g("stat\0"+r,lstatcb_);if(f)i.lstat(r,f);function lstatcb_(n,a){if(a&&a.isSymbolicLink()){return i.stat(r,function(i,n){if(i)l._stat2(e,r,null,a,t);else l._stat2(e,r,i,n,t)})}else{l._stat2(e,r,n,a,t)}}};Glob.prototype._stat2=function(e,t,r,i,n){if(r&&(r.code==="ENOENT"||r.code==="ENOTDIR")){this.statCache[t]=false;return n()}var a=e.slice(-1)==="/";this.statCache[t]=i;if(t.slice(-1)==="/"&&i&&!i.isDirectory())return n(null,false,i);var u=true;if(i)u=i.isDirectory()?"DIR":"FILE";this.cache[t]=this.cache[t]||u;if(a&&u==="FILE")return n();return n(null,u,i)}},function(e,t,r){"use strict";var i=r(36);var n=r(439);var a=r(934);var u=r(724);e.exports=paragraph;var s="\t";var o="\n";var l=" ";var f=4;function paragraph(e,t,r){var c=this;var h=c.options;var p=h.commonmark;var v=h.gfm;var d=c.blockTokenizers;var D=c.interruptParagraph;var m=t.indexOf(o);var g=t.length;var E;var A;var C;var y;var w;while(m=f&&C!==o){m=t.indexOf(o,m+1);continue}}A=t.slice(m+1);if(u(D,d,c,[e,A,true])){break}if(d.list.call(c,e,A,true)&&(c.inList||p||v&&!n(i.left(A).charAt(0)))){break}E=m;m=t.indexOf(o,m+1);if(m!==-1&&i(t.slice(E,m))===""){m=E;break}}A=t.slice(0,m);if(i(A)===""){e(A);return null}if(r){return true}w=e.now();A=a(A);return e(A)({type:"paragraph",children:c.tokenizeInline(A,w)})}},function(e,t,r){"use strict";var i;var n;try{var a=i;n=r(644)}catch(e){if(typeof window!=="undefined")n=window.esprima}var u=r(211);function resolveJavascriptFunction(e){if(e===null)return false;try{var t="("+e+")",r=n.parse(t,{range:true});if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression"){return false}return true}catch(e){return false}}function constructJavascriptFunction(e){var t="("+e+")",r=n.parse(t,{range:true}),i=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression"){throw new Error("Failed to resolve function")}r.body[0].expression.params.forEach(function(e){i.push(e.name)});a=r.body[0].expression.body.range;if(r.body[0].expression.body.type==="BlockStatement"){return new Function(i,t.slice(a[0]+1,a[1]-1))}return new Function(i,"return "+t.slice(a[0],a[1]))}function representJavascriptFunction(e){return e.toString()}function isFunction(e){return Object.prototype.toString.call(e)==="[object Function]"}e.exports=new u("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:resolveJavascriptFunction,construct:constructJavascriptFunction,predicate:isFunction,represent:representJavascriptFunction})},,,function(e,t,r){"use strict";var i=r(171);var n=r(984);var a=r(426);e.exports=reference;reference.locator=n;var u="link";var s="image";var o="footnote";var l="shortcut";var f="collapsed";var c="full";var h=" ";var p="!";var v="[";var d="\\";var D="]";var m="^";function reference(e,t,r){var n=this;var g=n.options.commonmark;var E=t.charAt(0);var A=0;var C=t.length;var y="";var w="";var x=u;var b=l;var F;var S;var B;var k;var O;var P;var T;var I;if(E===p){x=s;w=E;E=t.charAt(++A)}if(E!==v){return}A++;w+=E;P="";if(n.options.footnotes&&t.charAt(A)===m){if(x===s){return}w+=m;A++;x=o}I=0;while(A "+h.destination:""}if(!h.stats.total){p+=p?": ":"";if(h.stored){p+=m.yellow.open+"written"+m.yellow.close}else{p+="no issues found"}}if(p){l.push(p)}}else{g=m[h.label==="error"?"red":"yellow"];E=h.reason;A="";C=E.indexOf("\n");if(C!==-1){A=E.slice(C);E=E.slice(0,C)}l.push(["",padLeft(h.location,e.location),padRight(g.open+h.label+g.close,e.label),padRight(E,e.reason),padRight(h.ruleId,e.ruleId),h.source||""].join(" ").replace(c,"")+A)}}if(a.fatal||a.warn){p=[];if(a.fatal){p.push([m.red.open+f.error+m.red.close,a.fatal,plural(D.true,a.fatal)].join(" "))}if(a.warn){p.push([m.yellow.open+f.warning+m.yellow.close,a.warn,plural(D.false,a.warn)].join(" "))}p=p.join(", ");if(a.total!==a.fatal&&a.total!==a.warn){p=a.total+" messages ("+p+")"}l.push("",p)}return l.join("\n")}function applicable(e,t){var r=e.messages;var i=r.length;var n=-1;var a=[];if(t.silent){while(++n64)continue;if(t<0)return false;i+=6}return i%8===0}function constructYamlBinary(e){var t,r,i=e.replace(/[\r\n=]/g,""),a=i.length,u=s,o=0,l=[];for(t=0;t>16&255);l.push(o>>8&255);l.push(o&255)}o=o<<6|u.indexOf(i.charAt(t))}r=a%4*6;if(r===0){l.push(o>>16&255);l.push(o>>8&255);l.push(o&255)}else if(r===18){l.push(o>>10&255);l.push(o>>2&255)}else if(r===12){l.push(o>>4&255)}if(n){return n.from?n.from(l):new n(l)}return l}function representYamlBinary(e){var t="",r=0,i,n,a=e.length,u=s;for(i=0;i>18&63];t+=u[r>>12&63];t+=u[r>>6&63];t+=u[r&63]}r=(r<<8)+e[i]}n=a%3;if(n===0){t+=u[r>>18&63];t+=u[r>>12&63];t+=u[r>>6&63];t+=u[r&63]}else if(n===2){t+=u[r>>10&63];t+=u[r>>4&63];t+=u[r<<2&63];t+=u[64]}else if(n===1){t+=u[r>>2&63];t+=u[r<<4&63];t+=u[64];t+=u[64]}return t}function isBinary(e){return n&&n.isBuffer(e)}e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary})},function(e){"use strict";var t=[].slice;e.exports=wrap;function wrap(e,r){var i;return wrapped;function wrapped(){var r=t.call(arguments,0);var n=e.length>r.length;var a;if(n){r.push(done)}try{a=e.apply(null,r)}catch(e){if(n&&i){throw e}return done(e)}if(!n){if(a&&typeof a.then==="function"){a.then(then,done)}else if(a instanceof Error){done(a)}else{then(a)}}}function done(){if(!i){i=true;r.apply(null,arguments)}}function then(e){done(null,e)}}},function(e){e.exports=extend;var t=Object.prototype.hasOwnProperty;function extend(){var e={};for(var r=0;ri){t.message("Move definitions to the end of the file (after the node at line `"+r+"`)",e)}}else if(r===null){r=i}}}},function(e){var t=Object.prototype.toString;e.exports=isString;function isString(e){return t.call(e)==="[object String]"}},function(e,t,r){"use strict";var i=r(874);e.exports=configure;function configure(e,t){e.configuration=new i(t)}},,,,function(e,t,r){"use strict";var i=r(323);var n=create(Error);e.exports=n;n.eval=create(EvalError);n.range=create(RangeError);n.reference=create(ReferenceError);n.syntax=create(SyntaxError);n.type=create(TypeError);n.uri=create(URIError);n.create=create;function create(e){FormattedError.displayName=e.displayName||e.name;return FormattedError;function FormattedError(t){if(t){t=i.apply(null,arguments)}return new e(t)}}},,function(e,t,r){"use strict";if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=r(470)}else{e.exports=r(970)}},function(e,t,r){var i=r(20);var n=r(491);e.exports=expandTop;var a="\0SLASH"+Math.random()+"\0";var u="\0OPEN"+Math.random()+"\0";var s="\0CLOSE"+Math.random()+"\0";var o="\0COMMA"+Math.random()+"\0";var l="\0PERIOD"+Math.random()+"\0";function numeric(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function escapeBraces(e){return e.split("\\\\").join(a).split("\\{").join(u).split("\\}").join(s).split("\\,").join(o).split("\\.").join(l)}function unescapeBraces(e){return e.split(a).join("\\").split(u).join("{").split(s).join("}").split(o).join(",").split(l).join(".")}function parseCommaParts(e){if(!e)return[""];var t=[];var r=n("{","}",e);if(!r)return e.split(",");var i=r.pre;var a=r.body;var u=r.post;var s=i.split(",");s[s.length-1]+="{"+a+"}";var o=parseCommaParts(u);if(u.length){s[s.length-1]+=o.shift();s.push.apply(s,o)}t.push.apply(t,s);return t}function expandTop(e){if(!e)return[];if(e.substr(0,2)==="{}"){e="\\{\\}"+e.substr(2)}return expand(escapeBraces(e),true).map(unescapeBraces)}function identity(e){return e}function embrace(e){return"{"+e+"}"}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,t){return e<=t}function gte(e,t){return e>=t}function expand(e,t){var r=[];var a=n("{","}",e);if(!a||/\$$/.test(a.pre))return[e];var u=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(a.body);var o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(a.body);var l=u||o;var f=a.body.indexOf(",")>=0;if(!l&&!f){if(a.post.match(/,.*\}/)){e=a.pre+"{"+a.body+s+a.post;return expand(e)}return[e]}var c;if(l){c=a.body.split(/\.\./)}else{c=parseCommaParts(a.body);if(c.length===1){c=expand(c[0],false).map(embrace);if(c.length===1){var h=a.post.length?expand(a.post,false):[""];return h.map(function(e){return a.pre+c[0]+e})}}}var p=a.pre;var h=a.post.length?expand(a.post,false):[""];var v;if(l){var d=numeric(c[0]);var D=numeric(c[1]);var m=Math.max(c[0].length,c[1].length);var g=c.length==3?Math.abs(numeric(c[2])):1;var E=lte;var A=D0){var b=new Array(x+1).join("0");if(y<0)w="-"+b+w.slice(1);else w=b+w}}}v.push(w)}}else{v=i(c,function(e){return expand(e,false)})}for(var F=0;F>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,t,r){var i=t.length-1;if(i=0){if(n>0)e.lastNeed=n-1;return n}if(--i=0){if(n>0)e.lastNeed=n-2;return n}if(--i=0){if(n>0){if(n===2)n=0;else e.lastNeed=n-3}return n}return 0}function utf8CheckExtraBytes(e,t,r){if((t[0]&192)!==128){e.lastNeed=0;return"�"}if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128){e.lastNeed=1;return"�"}if(e.lastNeed>2&&t.length>2){if((t[2]&192)!==128){e.lastNeed=2;return"�"}}}}function utf8FillLast(e){var t=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,e,t);if(r!==undefined)return r;if(this.lastNeed<=e.length){e.copy(this.lastChar,t,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,t,0,e.length);this.lastNeed-=e.length}function utf8Text(e,t){var r=utf8CheckIncomplete(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var i=e.length-(r-this.lastNeed);e.copy(this.lastChar,0,i);return e.toString("utf8",t,i)}function utf8End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+"�";return t}function utf16Text(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString("utf16le",t,e.length-1)}function utf16End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function base64Text(e,t){var r=(e.length-t)%3;if(r===0)return e.toString("base64",t);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString("base64",t,e.length-r)}function base64End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+this.lastChar.toString("base64",0,3-this.lastNeed);return t}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):""}},,,,function(e,t,r){"use strict";var i=r(186);e.exports=VMessage;function VMessagePrototype(){}VMessagePrototype.prototype=Error.prototype;VMessage.prototype=new VMessagePrototype;var n=VMessage.prototype;n.file="";n.name="";n.reason="";n.message="";n.stack="";n.fatal=null;n.column=null;n.line=null;function VMessage(e,t,r){var n;var a;var u;if(typeof t==="string"){r=t;t=null}n=parseOrigin(r);a=i(t)||"1:1";u={start:{line:null,column:null},end:{line:null,column:null}};if(t&&t.position){t=t.position}if(t){if(t.start){u=t;t=t.start}else{u.start=t}}if(e.stack){this.stack=e.stack;e=e.message}this.message=e;this.name=a;this.reason=e;this.line=t?t.line:null;this.column=t?t.column:null;this.location=u;this.source=n[0];this.ruleId=n[1]}function parseOrigin(e){var t=[null,null];var r;if(typeof e==="string"){r=e.indexOf(":");if(r===-1){t[1]=e}else{t[0]=e.slice(0,r);t[1]=e.slice(r+1)}}return t}},,function(e,t,r){"use strict";var i=r(171);var n=r(902);var a=r(49);e.exports=autoLink;autoLink.locator=a;autoLink.notInLink=true;var u="<";var s=">";var o="@";var l="/";var f="mailto:";var c=f.length;function autoLink(e,t,r){var a=this;var h="";var p=t.length;var v=0;var d="";var D=false;var m="";var g;var E;var A;var C;var y;if(t.charAt(0)!==u){return}v++;h=u;while(v0||H===x&&I.inLink||M&&H===B&&t.charAt(W+1)===B||M&&H===S&&(I.inTable||alignment(t,W))||H===b&&W>0&&W=e.expected){e.emit("done")}}},,function(e,t,r){"use strict";var i=r(897);var n=r(336);var a=r(860);e.exports=parse;parse.Parser=a;function parse(e){var t=this.data("settings");var r=i(a);r.prototype.options=n(r.prototype.options,t,e);this.Parser=r}},,,,,,function(e,t,r){"use strict";var i=r(176);e.exports=imageReference;var n="[";var a="]";var u="!";function imageReference(e){return u+n+(this.encode(e.alt,e)||"")+a+i(e)}},,,,,,function(e,t,r){"use strict";var i=r(495);e.exports=i("remark-lint:no-file-name-consecutive-dashes",noFileNameConsecutiveDashes);var n="Do not use consecutive dashes in a file name";function noFileNameConsecutiveDashes(e,t){if(t.stem&&/-{2,}/.test(t.stem)){t.message(n)}}},,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(839);var u=r(526);e.exports=i("remark-lint:ordered-list-marker-style",orderedListMarkerStyle);var s=a.start;var o={")":true,".":true,null:true};function orderedListMarkerStyle(e,t,r){var i=String(t);r=typeof r!=="string"||r==="consistent"?null:r;if(o[r]!==true){t.fail("Invalid ordered list-item marker style `"+r+"`: use either `'.'` or `')'`")}n(e,"list",visitor);function visitor(e){var n=e.children;var a=e.ordered?n.length:0;var o=-1;var l;var f;while(++o=s&&(!p||p===r)){h+=D;if(l){return true}return e(h)({type:"thematicBreak"})}else{return}}}},,function(e){e.exports=require("assert")},,,,,,,function(e,t,r){"use strict";var i=r(774);var n=r(176);e.exports=linkReference;var a="[";var u="]";var s="shortcut";var o="collapsed";function linkReference(e){var t=this;var r=e.referenceType;var l=t.enterLinkReference(t,e);var f=t.all(e).join("");l();if(r===s||r===o){f=i(f,e.label||e.identifier)}return a+f+u+n(e)}},function(e){"use strict";e.exports=lineBreak;var t="\\";var r="\n";var i=" ";var n=t+r;var a=i+i+r;function lineBreak(){return this.options.commonmark?n:a}},function(e,t,r){"use strict";function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var i=r(945).Buffer;var n=r(64);function copyBuffer(e,t,r){e.copy(t,r)}e.exports=function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0}BufferList.prototype.push=function push(e){var t={data:e,next:null};if(this.length>0)this.tail.next=t;else this.head=t;this.tail=t;++this.length};BufferList.prototype.unshift=function unshift(e){var t={data:e,next:this.head};if(this.length===0)this.tail=t;this.head=t;++this.length};BufferList.prototype.shift=function shift(){if(this.length===0)return;var e=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return e};BufferList.prototype.clear=function clear(){this.head=this.tail=null;this.length=0};BufferList.prototype.join=function join(e){if(this.length===0)return"";var t=this.head;var r=""+t.data;while(t=t.next){r+=e+t.data}return r};BufferList.prototype.concat=function concat(e){if(this.length===0)return i.alloc(0);if(this.length===1)return this.head.data;var t=i.allocUnsafe(e>>>0);var r=this.head;var n=0;while(r){copyBuffer(r.data,t,n);n+=r.data.length;r=r.next}return t};return BufferList}();if(n&&n.inspect&&n.inspect.custom){e.exports.prototype[n.inspect.custom]=function(){var e=n.inspect({length:this.length});return this.constructor.name+" "+e}}},function(e,t,r){"use strict";var i=r(336);var n=r(109);var a=r(694);e.exports=setOptions;function setOptions(e){var t=this;var r=t.options;var u;var s;if(e==null){e={}}else if(typeof e==="object"){e=i(e)}else{throw new Error("Invalid value `"+e+"` for setting `options`")}for(u in a){s=e[u];if(s==null){s=r[u]}if(u!=="blocks"&&typeof s!=="boolean"||u==="blocks"&&typeof s!=="object"){throw new Error("Invalid value `"+s+"` for setting `options."+u+"`")}e[u]=s}t.options=e;t.escape=n(e);return t}},,function(e){var t=Array.prototype.slice;e.exports=co;function co(e){var r=isGeneratorFunction(e);return function(i){var n=this;var a=e;if(r){var u=t.call(arguments),s=u.length;var o=s&&"function"==typeof u[s-1];i=o?u.pop():error;a=e.apply(this,u)}else{i=i||error}next();function exit(e,t){setImmediate(function(){i.call(n,e,t)})}function next(e,r){var i;if(arguments.length>2)r=t.call(arguments,1);if(e){try{i=a.throw(e)}catch(e){return exit(e)}}if(!e){try{i=a.next(r)}catch(e){return exit(e)}}if(i.done)return exit(null,i.value);i.value=toThunk(i.value,n);if("function"==typeof i.value){var u=false;try{i.value.call(n,function(){if(u)return;u=true;next.apply(n,arguments)})}catch(e){setImmediate(function(){if(u)return;u=true;next(e)})}return}next(new TypeError("You may only yield a function, promise, generator, array, or object, "+'but the following was passed: "'+String(i.value)+'"'))}}}function toThunk(e,t){if(isGeneratorFunction(e)){return co(e.call(t))}if(isGenerator(e)){return co(e)}if(isPromise(e)){return promiseToThunk(e)}if("function"==typeof e){return e}if(isObject(e)||Array.isArray(e)){return objectToThunk.call(t,e)}return e}function objectToThunk(e){var t=this;var r=Array.isArray(e);return function(i){var n=Object.keys(e);var a=n.length;var u=r?new Array(a):new e.constructor;var s;if(!a){setImmediate(function(){i(null,u)});return}if(!r){for(var o=0;or){t.splice(0,r);process.nextTick(function(){RES.apply(null,i)})}else{delete n[e]}}})}function slice(e){var t=e.length;var r=[];for(var i=0;ii){o+=" with 1 space, not "+u;if(size(a)=48&&t<=57}},function(e,t,r){"use strict";var i=r(308);var n=r(197);var a=r(25);var u=r(908);var s=r(617);e.exports=encode;encode.escape=escape;var o={}.hasOwnProperty;var l=['"',"'","<",">","&","`"];var f=construct();var c=toExpression(l);var h=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var p=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;function encode(e,t){var r=t||{};var i=r.subset;var n=i?toExpression(i):c;var a=r.escapeOnly;var u=r.omitOptionalSemicolons;e=e.replace(n,function(e,t,i){return one(e,i.charAt(t+1),r)});if(i||a){return e}return e.replace(h,replaceSurrogatePair).replace(p,replaceBmp);function replaceSurrogatePair(e,t,r){return toHexReference((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,r.charAt(t+2),u)}function replaceBmp(e,t,i){return one(e,i.charAt(t+1),r)}}function escape(e){return encode(e,{escapeOnly:true,useNamedReferences:true})}function one(e,t,r){var i=r.useShortestReferences;var n=r.omitOptionalSemicolons;var a;var u;if((i||r.useNamedReferences)&&o.call(f,e)){a=toNamed(f[e],t,n,r.attribute)}if(i||!a){u=toHexReference(e.charCodeAt(0),t,n)}if(a&&(!i||a.length/i;function inlineHTML(e,t,r){var n=this;var h=t.length;var p;var v;if(t.charAt(0)!==u||h<3){return}p=t.charAt(1);if(!i(p)&&p!==s&&p!==o&&p!==l){return}v=t.match(a);if(!v){return}if(r){return true}v=v[0];if(!n.inLink&&f.test(v)){n.inLink=true}else if(n.inLink&&c.test(v)){n.inLink=false}return e(v)({type:"html",value:v})}},function(e){e.exports=["md","markdown","mdown","mkdn","mkd","mdwn","mkdown","ron"]},,,,function(e,t,r){"use strict";var i=r(495);e.exports=i("remark-lint:file-extension",fileExtension);function fileExtension(e,t,r){var i=t.extname;r=typeof r==="string"?r:"md";if(i&&i.slice(1)!==r){t.message("Invalid extension: use `"+r+"`")}}},function(e){"use strict";e.exports=factory;var t="\\";function factory(e,r){return unescape;function unescape(i){var n=0;var a=i.indexOf(t);var u=e[r];var s=[];var o;while(a!==-1){s.push(i.slice(n,a));n=a+1;o=i.charAt(n);if(!o||u.indexOf(o)===-1){s.push(t)}a=i.indexOf(t,n+1)}s.push(i.slice(n));return s.join("")}}},,,function(e,t,r){"use strict";const i=r(495);const n=r(682);e.exports=i("remark-lint:prohibited-strings",prohibitedStrings);function testProhibited(e,t){const r=new RegExp(`(\\.|@[a-z0-9/-]*)?\\b(${e.no})\\b(\\.\\w)?`,"g");let i=null;while(i=r.exec(t)){if(!i[1]&&!i[3]){return i[2]}}return false}function prohibitedStrings(e,t,r){n(e,"text",checkText);function checkText(e){const i=e.value;r.forEach(r=>{const n=testProhibited(r,i);if(n){t.message(`Use "${r.yes}" instead of "${n}"`,e)}})}}},,,,,function(e){"use strict";e.exports=hidden;function hidden(e){if(typeof e!=="string"){throw new Error("Expected string")}return e.charAt(0)==="."}},,,,,function(e,t,r){"use strict";var i=r(171);var n=r(426);e.exports=footnoteDefinition;footnoteDefinition.notInList=true;footnoteDefinition.notInBlock=true;var a="\\";var u="\n";var s="\t";var o=" ";var l="[";var f="]";var c="^";var h=":";var p=/^( {4}|\t)?/gm;function footnoteDefinition(e,t,r){var v=this;var d=v.offset;var D;var m;var g;var E;var A;var C;var y;var w;var x;var b;var F;var S;if(!v.options.footnotes){return}D=0;m=t.length;g="";E=e.now();A=E.line;while(D=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(t){t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var i=0;var n=0;t[0].replace(/%[a-zA-Z%]/g,function(e){if(e==="%%"){return}i++;if(e==="%c"){n=i}});t.splice(n,0,r)}function log(){var e;return(typeof console==="undefined"?"undefined":_typeof(console))==="object"&&console.log&&(e=console).log.apply(e,arguments)}function save(e){try{if(e){t.storage.setItem("debug",e)}else{t.storage.removeItem("debug")}}catch(e){}}function load(){var e;try{e=t.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=r(772)(t);var i=e.exports.formatters;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},,,,function(e,t,r){var i=r(159);var n=r(589).join;var a=r(281);var u="/etc";var s=process.platform==="win32";var o=s?process.env.USERPROFILE:process.env.HOME;e.exports=function(e,t,l,f){if("string"!==typeof e)throw new Error("rc(name): name *must* be string");if(!l)l=r(359)(process.argv.slice(2));t=("string"===typeof t?i.json(t):t)||{};f=f||i.parse;var c=i.env(e+"_");var h=[t];var p=[];function addConfigFile(e){if(p.indexOf(e)>=0)return;var t=i.file(e);if(t){h.push(f(t));p.push(e)}}if(!s)[n(u,e,"config"),n(u,e+"rc")].forEach(addConfigFile);if(o)[n(o,".config",e,"config"),n(o,".config",e),n(o,"."+e,"config"),n(o,"."+e+"rc")].forEach(addConfigFile);addConfigFile(i.find("."+e+"rc"));if(c.config)addConfigFile(c.config);if(l.config)addConfigFile(l.config);return a.apply(null,h.concat([c,l,p.length?{configs:p,config:p[p.length-1]}:undefined]))}},,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(526);e.exports=i("remark-lint:no-shortcut-reference-link",noShortcutReferenceLink);var u="Use the trailing [] on reference links";function noShortcutReferenceLink(e,t){n(e,"linkReference",visitor);function visitor(e){if(!a(e)&&e.referenceType==="shortcut"){t.message(u,e)}}}},,,,,,,,function(e){e.exports={_from:"remark@^10.0.1",_id:"remark@10.0.1",_inBundle:false,_integrity:"sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==",_location:"/remark",_phantomChildren:{},_requested:{type:"range",registry:true,raw:"remark@^10.0.1",name:"remark",escapedName:"remark",rawSpec:"^10.0.1",saveSpec:null,fetchSpec:"^10.0.1"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/remark/-/remark-10.0.1.tgz",_shasum:"3058076dc41781bf505d8978c291485fe47667df",_spec:"remark@^10.0.1",_where:"/Users/trott/io.js/tools/node-lint-md-cli-rollup",author:{name:"Titus Wormer",email:"tituswormer@gmail.com",url:"https://wooorm.com"},bugs:{url:"https://github.com/remarkjs/remark/issues"},bundleDependencies:false,contributors:[{name:"Titus Wormer",email:"tituswormer@gmail.com",url:"https://wooorm.com"}],dependencies:{"remark-parse":"^6.0.0","remark-stringify":"^6.0.0",unified:"^7.0.0"},deprecated:false,description:"Markdown processor powered by plugins",devDependencies:{tape:"^4.9.1"},files:["index.js"],homepage:"https://remark.js.org",keywords:["markdown","abstract","syntax","tree","ast","parse","stringify","process"],license:"MIT",name:"remark",repository:{type:"git",url:"https://github.com/remarkjs/remark/tree/master/packages/remark"},scripts:{test:"tape test.js"},version:"10.0.1",xo:false}},function(e){e.exports=require("events")},,function(e,t,r){e.exports=globSync;globSync.GlobSync=GlobSync;var i=r(66);var n=r(129);var a=r(620);var u=a.Minimatch;var s=r(327).Glob;var o=r(64);var l=r(589);var f=r(393);var c=r(969);var h=r(922);var p=h.alphasort;var v=h.alphasorti;var d=h.setopts;var D=h.ownProp;var m=h.childrenIgnored;var g=h.isIgnored;function globSync(e,t){if(typeof t==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");return new GlobSync(e,t).found}function GlobSync(e,t){if(!e)throw new Error("must provide pattern");if(typeof t==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof GlobSync))return new GlobSync(e,t);d(this,e,t);if(this.noprocess)return this;var r=this.minimatch.set.length;this.matches=new Array(r);for(var i=0;ithis.maxLength)return false;if(!this.stat&&D(this.cache,t)){var n=this.cache[t];if(Array.isArray(n))n="DIR";if(!r||n==="DIR")return n;if(r&&n==="FILE")return false}var a;var u=this.statCache[t];if(!u){var s;try{s=i.lstatSync(t)}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR")){this.statCache[t]=false;return false}}if(s&&s.isSymbolicLink()){try{u=i.statSync(t)}catch(e){u=s}}else{u=s}}this.statCache[t]=u;var n=true;if(u)n=u.isDirectory()?"DIR":"FILE";this.cache[t]=this.cache[t]||n;if(r&&n==="FILE")return false;return n};GlobSync.prototype._mark=function(e){return h.mark(this,e)};GlobSync.prototype._makeAbs=function(e){return h.makeAbs(this,e)}},,,,function(e){"use strict";e.exports=balanced;function balanced(e,t,r){if(e instanceof RegExp)e=maybeMatch(e,r);if(t instanceof RegExp)t=maybeMatch(t,r);var i=range(e,t,r);return i&&{start:i[0],end:i[1],pre:r.slice(0,i[0]),body:r.slice(i[0]+e.length,i[1]),post:r.slice(i[1]+t.length)}}function maybeMatch(e,t){var r=t.match(e);return r?r[0]:null}balanced.range=range;function range(e,t,r){var i,n,a,u,s;var o=r.indexOf(e);var l=r.indexOf(t,o+1);var f=o;if(o>=0&&l>0){i=[];a=r.length;while(f>=0&&!s){if(f==o){i.push(f);o=r.indexOf(e,f+1)}else if(i.length==1){s=[i.pop(),l]}else{n=i.pop();if(n=0?o:l}if(i.length){s=[a,u]}}return s}},,,,function(e,t,r){"use strict";var i=r(659);e.exports=factory;function factory(e,t){var r=e.split(":");var n=r[0];var a=r[1];var u=i(t);if(!a){a=n;n=null}attacher.displayName=e;return attacher;function attacher(e){var t=coerce(a,e);var r=t[0];var i=t[1];var s=r===2;return r?transformer:undefined;function transformer(e,t,r){var o=t.messages.length;u(e,t,i,done);function done(e){var i=t.messages;var u;if(e&&i.indexOf(e)===-1){try{t.fail(e)}catch(e){}}while(o2){throw new Error("Invalid severity `"+n+"` for `"+e+"`, "+"expected 0, 1, or 2")}i[0]=n;return i}},,,,,,,function(e,t,r){"use strict";e.exports=PassThrough;var i=r(955);var n=r(683);n.inherits=r(780);n.inherits(PassThrough,i);function PassThrough(e){if(!(this instanceof PassThrough))return new PassThrough(e);i.call(this,e)}PassThrough.prototype._transform=function(e,t,r){r(null,e)}},function(e,t,r){"use strict";var i=r(353);var n=r(320);e.exports=n;var a=n.prototype;a.message=message;a.info=info;a.fail=fail;a.warn=message;function message(e,t,r){var n=this.path;var a=new i(e,t,r);if(n){a.name=n+":"+a.name;a.file=n}a.fatal=false;this.messages.push(a);return a}function fail(){var e=this.message.apply(this,arguments);e.fatal=true;throw e}function info(){var e=this.message.apply(this,arguments);e.fatal=null;return e}},,,,function(e,t,r){e.exports=r(64).deprecate},,,,function(e){"use strict";e.exports=locate;function locate(e,t){var r=e.indexOf("**",t);var i=e.indexOf("__",t);if(i===-1){return r}if(r===-1){return i}return ii&&e[c+1]!==" ";c=a}}else if(!isPrintable(u)){return j}h=h&&isPlainSafe(u)}o=o||l&&(a-c-1>i&&e[c+1]!==" ")}if(!s&&!o){return h&&!n(e)?I:M}if(r>9&&needIndentIndicator(e)){return j}return o?R:L}function writeScalar(e,t,r,i){e.dump=function(){if(t.length===0){return"''"}if(!e.noCompatMode&&T.indexOf(t)!==-1){return"'"+t+"'"}var a=e.indent*Math.max(1,r);var u=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a);var s=i||e.flowLevel>-1&&r>=e.flowLevel;function testAmbiguity(t){return testImplicitResolving(e,t)}switch(chooseScalarStyle(t,s,e.indent,u,testAmbiguity)){case I:return t;case M:return"'"+t.replace(/'/g,"''")+"'";case L:return"|"+blockHeader(t,e.indent)+dropEndingNewline(indentString(t,a));case R:return">"+blockHeader(t,e.indent)+dropEndingNewline(indentString(foldString(t,u),a));case j:return'"'+escapeString(t,u)+'"';default:throw new n("impossible error: invalid scalar style")}}()}function blockHeader(e,t){var r=needIndentIndicator(e)?String(t):"";var i=e[e.length-1]==="\n";var n=i&&(e[e.length-2]==="\n"||e==="\n");var a=n?"+":i?"":"-";return r+a+"\n"}function dropEndingNewline(e){return e[e.length-1]==="\n"?e.slice(0,-1):e}function foldString(e,t){var r=/(\n+)([^\n]*)/g;var i=function(){var i=e.indexOf("\n");i=i!==-1?i:e.length;r.lastIndex=i;return foldLine(e.slice(0,i),t)}();var n=e[0]==="\n"||e[0]===" ";var a;var u;while(u=r.exec(e)){var s=u[1],o=u[2];a=o[0]===" ";i+=s+(!n&&!a&&o!==""?"\n":"")+foldLine(o,t);n=a}return i}function foldLine(e,t){if(e===""||e[0]===" ")return e;var r=/ [^ ]/g;var i;var n=0,a,u=0,s=0;var o="";while(i=r.exec(e)){s=i.index;if(s-n>t){a=u>n?u:s;o+="\n"+e.slice(n,a);n=a+1}u=s}o+="\n";if(e.length-n>t&&u>n){o+=e.slice(n,u)+"\n"+e.slice(u+1)}else{o+=e.slice(n)}return o.slice(1)}function escapeString(e){var t="";var r,i;var n;for(var a=0;a=55296&&r<=56319){i=e.charCodeAt(a+1);if(i>=56320&&i<=57343){t+=encodeHex((r-55296)*1024+i-56320+65536);a++;continue}}n=P[r];t+=!n&&isPrintable(r)?e[a]:n||encodeHex(r)}return t}function writeFlowSequence(e,t,r){var i="",n=e.tag,a,u;for(a=0,u=r.length;a1024)f+="? ";f+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" ");if(!writeNode(e,t,l,false,false)){continue}f+=e.dump;i+=f}e.tag=n;e.dump="{"+i+"}"}function writeBlockMapping(e,t,r,i){var a="",u=e.tag,s=Object.keys(r),o,l,c,h,p,v;if(e.sortKeys===true){s.sort()}else if(typeof e.sortKeys==="function"){s.sort(e.sortKeys)}else if(e.sortKeys){throw new n("sortKeys must be a boolean or a function")}for(o=0,l=s.length;o1024;if(p){if(e.dump&&f===e.dump.charCodeAt(0)){v+="?"}else{v+="? "}}v+=e.dump;if(p){v+=generateNextLine(e,t)}if(!writeNode(e,t+1,h,true,p)){continue}if(e.dump&&f===e.dump.charCodeAt(0)){v+=":"}else{v+=": "}v+=e.dump;a+=v}e.tag=u;e.dump=a||"{}"}function detectType(e,t,r){var i,a,u,l,f,c;a=r?e.explicitTypes:e.implicitTypes;for(u=0,l=a.length;u tag resolver accepts not "'+c+'" style')}e.dump=i}return true}}return false}function writeNode(e,t,r,i,a,u){e.tag=null;e.dump=r;if(!detectType(e,r,false)){detectType(e,r,true)}var o=s.call(e.dump);if(i){i=e.flowLevel<0||e.flowLevel>t}var l=o==="[object Object]"||o==="[object Array]",f,c;if(l){f=e.duplicates.indexOf(r);c=f!==-1}if(e.tag!==null&&e.tag!=="?"||c||e.indent!==2&&t>0){a=false}if(c&&e.usedDuplicates[f]){e.dump="*ref_"+f}else{if(l&&c&&!e.usedDuplicates[f]){e.usedDuplicates[f]=true}if(o==="[object Object]"){if(i&&Object.keys(e.dump).length!==0){writeBlockMapping(e,t,e.dump,a);if(c){e.dump="&ref_"+f+e.dump}}else{writeFlowMapping(e,t,e.dump);if(c){e.dump="&ref_"+f+" "+e.dump}}}else if(o==="[object Array]"){var h=e.noArrayIndent&&t>0?t-1:t;if(i&&e.dump.length!==0){writeBlockSequence(e,h,e.dump,a);if(c){e.dump="&ref_"+f+e.dump}}else{writeFlowSequence(e,h,e.dump);if(c){e.dump="&ref_"+f+" "+e.dump}}}else if(o==="[object String]"){if(e.tag!=="?"){writeScalar(e,e.dump,t,u)}}else{if(e.skipInvalid)return false;throw new n("unacceptable kind of an object to dump "+o)}if(e.tag!==null&&e.tag!=="?"){e.dump="!<"+e.tag+"> "+e.dump}}return true}function getDuplicateReferences(e,t){var r=[],i=[],n,a;inspectNode(e,r,i);for(n=0,a=i.length;n=e.length){if(t)t[u]=e;return r(null,e)}o.lastIndex=c;var i=o.exec(e);v=h;h+=i[0];p=v+i[1];c=o.lastIndex;if(f[p]||t&&t[p]===p){return process.nextTick(LOOP)}if(t&&Object.prototype.hasOwnProperty.call(t,p)){return gotResolvedLink(t[p])}return a.lstat(p,gotStat)}function gotStat(e,i){if(e)return r(e);if(!i.isSymbolicLink()){f[p]=true;if(t)t[p]=p;return process.nextTick(LOOP)}if(!n){var u=i.dev.toString(32)+":"+i.ino.toString(32);if(s.hasOwnProperty(u)){return gotTarget(null,s[u],p)}}a.stat(p,function(e){if(e)return r(e);a.readlink(p,function(e,t){if(!n)s[u]=t;gotTarget(e,t)})})}function gotTarget(e,n,a){if(e)return r(e);var u=i.resolve(v,n);if(t)t[a]=u;gotResolvedLink(u)}function gotResolvedLink(t){e=i.resolve(t,e.slice(c));start()}}},,function(e){e.exports=[{long:"help",description:"output usage information",short:"h",type:"boolean",default:false},{long:"version",description:"output version number",short:"v",type:"boolean",default:false},{long:"output",description:"specify output location",short:"o",value:"[path]"},{long:"rc-path",description:"specify configuration file",short:"r",type:"string",value:""},{long:"ignore-path",description:"specify ignore file",short:"i",type:"string",value:""},{long:"setting",description:"specify settings",short:"s",type:"string",value:""},{long:"ext",description:"specify extensions",short:"e",type:"string",value:""},{long:"use",description:"use plugins",short:"u",type:"string",value:""},{long:"watch",description:"watch for changes and reprocess",short:"w",type:"boolean",default:false},{long:"quiet",description:"output only warnings and errors",short:"q",type:"boolean",default:false},{long:"silent",description:"output only errors",short:"S",type:"boolean",default:false},{long:"frail",description:"exit with 1 on warnings",short:"f",type:"boolean",default:false},{long:"tree",description:"specify input and output as syntax tree",short:"t",type:"boolean",default:false},{long:"report",description:"specify reporter",type:"string",value:""},{long:"file-path",description:"specify path to process as",type:"string",value:""},{long:"ignore-pattern",description:"specify ignore patterns",type:"string",value:""},{long:"tree-in",description:"specify input as syntax tree",type:"boolean"},{long:"tree-out",description:"output syntax tree",type:"boolean"},{long:"inspect",description:"output formatted syntax tree",type:"boolean"},{long:"stdout",description:"specify writing to stdout",type:"boolean",truelike:true},{long:"color",description:"specify color in report",type:"boolean",default:true},{long:"config",description:"search for configuration files",type:"boolean",default:true},{long:"ignore",description:"search for ignore files",type:"boolean",default:true}]},,,,function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(839);var u=r(526);e.exports=i("remark-lint:hard-break-spaces",hardBreakSpaces);var s="Use two spaces for hard line breaks";function hardBreakSpaces(e,t){var r=String(t);n(e,"break",visitor);function visitor(e){var i;if(!u(e)){i=r.slice(a.start(e).offset,a.end(e).offset).split("\n",1)[0].replace(/\r$/,"");if(i.length>2){t.message(s,e)}}}}},,,,function(e,t,r){"use strict";var i=r(171);e.exports=table;var n="\t";var a="\n";var u=" ";var s="-";var o=":";var l="\\";var f="`";var c="|";var h=1;var p=2;var v="left";var d="center";var D="right";function table(e,t,r){var m=this;var g;var E;var A;var C;var y;var w;var x;var b;var F;var S;var B;var k;var O;var P;var T;var I;var M;var L;var R;var j;var U;var N;var J;var z;if(!m.options.gfm){return}g=0;L=0;w=t.length+1;x=[];while(gN){if(L1){if(F){C+=b.slice(0,b.length-1);b=b.charAt(b.length-1)}else{C+=b;b=""}}I=e.now();e(C)({type:"tableCell",children:m.tokenizeInline(k,I)},y)}e(b+F);b="";k=""}}else{if(b){k+=b;b=""}k+=F;if(F===l&&g!==w-2){k+=R.charAt(g+1);g++}if(F===f){P=1;while(R.charAt(g+1)===F){k+=F;g++;P++}if(!T){T=P}else if(P>=T){T=0}}}O=false;g++}if(!M){e(a+E)}}return U}},function(e,t,r){"use strict";var i=r(211);function resolveJavascriptRegExp(e){if(e===null)return false;if(e.length===0)return false;var t=e,r=/\/([gim]*)$/.exec(e),i="";if(t[0]==="/"){if(r)i=r[1];if(i.length>3)return false;if(t[t.length-i.length-1]!=="/")return false}return true}function constructJavascriptRegExp(e){var t=e,r=/\/([gim]*)$/.exec(e),i="";if(t[0]==="/"){if(r)i=r[1];t=t.slice(1,t.length-i.length-1)}return new RegExp(t,i)}function representJavascriptRegExp(e){var t="/"+e.source+"/";if(e.global)t+="g";if(e.multiline)t+="m";if(e.ignoreCase)t+="i";return t}function isRegExp(e){return Object.prototype.toString.call(e)==="[object RegExp]"}e.exports=new i("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:resolveJavascriptRegExp,construct:constructJavascriptRegExp,predicate:isRegExp,represent:representJavascriptRegExp})},,,,,function(e,t,r){"use strict";e.exports.plugins=[r(889),r(767),r(850),[r(890),"tab-size"],r(223),r(127),r(701),[r(382),"."],r(550),r(816),r(33),r(9),r(121),r(476),r(280),r(842)]},,,,function(e){"use strict";e.exports=markdownTable;var t=/\./;var r=/\.[^.]*$/;var i="l";var n="r";var a="c";var u=".";var s="";var o=[i,n,a,u,s];var l=3;var f=":";var c="-";var h="|";var p=" ";var v="\n";function markdownTable(e,r){var d=r||{};var D=d.delimiter;var m=d.start;var g=d.end;var E=d.align;var A=d.stringLength||lengthNoop;var C=0;var y=-1;var w=e.length;var x=[];var b;var F;var S;var B;var k;var O;var P;var T;var I;var M;var L;var R;E=E?E.concat():[];if(D===null||D===undefined){D=p+h+p}if(m===null||m===undefined){m=h+p}if(g===null||g===undefined){g=p+h}while(++yC){C=B.length}while(++Ox[O]){x[O]=P}}}if(typeof E==="string"){E=pad(C,E).split("")}O=-1;while(++Ox[O]){x[O]=T}}}y=-1;while(++yl?M:l}else{M=x[O]}b=E[O];I=b===n||b===s?c:f;I+=pad(M-2,c);I+=b!==i&&b!==s?f:c;F[O]=I}S.splice(1,0,F.join(D))}return m+S.join(g+v+m)+g}function stringify(e){return e===null||e===undefined?"":String(e)}function lengthNoop(e){return String(e).length}function pad(e,t){return new Array(e+1).join(t||p)}function dotindex(e){var t=r.exec(e);return t?t.index+1:e.length}},,,,,function(e,t,r){e.exports=r(688)},,,,,function(e,t,r){"use strict";var i=r(12);e.exports=Writable;function WriteReq(e,t,r){this.chunk=e;this.encoding=t;this.callback=r;this.next=null}function CorkedRequest(e){var t=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(t,e)}}var n=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:i.nextTick;var a;Writable.WritableState=WritableState;var u=r(683);u.inherits=r(780);var s={deprecate:r(507)};var o=r(569);var l=r(945).Buffer;var f=global.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return l.from(e)}function _isUint8Array(e){return l.isBuffer(e)||e instanceof f}var c=r(972);u.inherits(Writable,o);function nop(){}function WritableState(e,t){a=a||r(98);e=e||{};var i=t instanceof a;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.writableObjectMode;var n=e.highWaterMark;var u=e.writableHighWaterMark;var s=this.objectMode?16:16*1024;if(n||n===0)this.highWaterMark=n;else if(i&&(u||u===0))this.highWaterMark=u;else this.highWaterMark=s;this.highWaterMark=Math.floor(this.highWaterMark);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var o=e.decodeStrings===false;this.decodeStrings=!o;this.defaultEncoding=e.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(e){onwrite(t,e)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function getBuffer(){var e=this.bufferedRequest;var t=[];while(e){t.push(e);e=e.next}return t};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:s.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer "+"instead.","DEP0003")})}catch(e){}})();var h;if(typeof Symbol==="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==="function"){h=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function(e){if(h.call(this,e))return true;if(this!==Writable)return false;return e&&e._writableState instanceof WritableState}})}else{h=function(e){return e instanceof this}}function Writable(e){a=a||r(98);if(!h.call(Writable,this)&&!(this instanceof a)){return new Writable(e)}this._writableState=new WritableState(e,this);this.writable=true;if(e){if(typeof e.write==="function")this._write=e.write;if(typeof e.writev==="function")this._writev=e.writev;if(typeof e.destroy==="function")this._destroy=e.destroy;if(typeof e.final==="function")this._final=e.final}o.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function writeAfterEnd(e,t){var r=new Error("write after end");e.emit("error",r);i.nextTick(t,r)}function validChunk(e,t,r,n){var a=true;var u=false;if(r===null){u=new TypeError("May not write null values to stream")}else if(typeof r!=="string"&&r!==undefined&&!t.objectMode){u=new TypeError("Invalid non-string/buffer chunk")}if(u){e.emit("error",u);i.nextTick(n,u);a=false}return a}Writable.prototype.write=function(e,t,r){var i=this._writableState;var n=false;var a=!i.objectMode&&_isUint8Array(e);if(a&&!l.isBuffer(e)){e=_uint8ArrayToBuffer(e)}if(typeof t==="function"){r=t;t=null}if(a)t="buffer";else if(!t)t=i.defaultEncoding;if(typeof r!=="function")r=nop;if(i.ended)writeAfterEnd(this,r);else if(a||validChunk(this,i,e,r)){i.pendingcb++;n=writeOrBuffer(this,i,a,e,t,r)}return n};Writable.prototype.cork=function(){var e=this._writableState;e.corked++};Writable.prototype.uncork=function(){var e=this._writableState;if(e.corked){e.corked--;if(!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest)clearBuffer(this,e)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(e){if(typeof e==="string")e=e.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);this._writableState.defaultEncoding=e;return this};function decodeChunk(e,t,r){if(!e.objectMode&&e.decodeStrings!==false&&typeof t==="string"){t=l.from(t,r)}return t}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function(){return this._writableState.highWaterMark}});function writeOrBuffer(e,t,r,i,n,a){if(!r){var u=decodeChunk(t,i,n);if(i!==u){r=true;n="buffer";i=u}}var s=t.objectMode?1:i.length;t.length+=s;var o=t.length=b){b=0}}else if(E===v){g++;B+=t.charAt(g)}else if((!b||y)&&E===p){L++}else if((!b||y)&&E===d){if(L){L--}else{if(!A){while(gn){return false}}return check(e,i,r)&&check(e,m)}function isKnown(e,t,r){var i=o?o.indexOf(e)!==-1:true;if(!i){h.warn("Unknown rule: cannot "+t+" `'"+e+"'`",r)}return i}function getState(e){var t=e?D[e]:m;if(t&&t.length!==0){return t[t.length-1].state}if(!e){return!l}if(l){return f.indexOf(e)!==-1}return c.indexOf(e)===-1}function toggle(e,t,r){var i=r?D[r]:m;var n;var a;if(!i){i=[];D[r]=i}a=getState(r);n=t;if(n!==a){i.push({state:n,position:e})}if(!r){for(r in D){toggle(e,t,r)}}}function check(e,t,r){var i=t&&t.length;var n=-1;var a;while(--i>n){a=t[i];if(!a.position||!a.position.line||!a.position.column){continue}if(a.position.line=e){return}if(u){s.push({start:n,end:e});u=false}n=e}}},,function(e){"use strict";e.exports=orderedItems;var t="\n";var r=".";var i=t+t;function orderedItems(e){var n=this;var a=n.visitors.listItem;var u=n.options.incrementListMarker;var s=[];var o=e.start;var l=e.children;var f=l.length;var c=-1;var h;o=o==null?1:o;while(++c1;var p=c;var v=t.path;if(!u(p)){a("Not copying");return i()}p=l(e.cwd,p);a("Copying `%s`",v);s(p,onstatfile);function onstatfile(e,t){if(e){if(e.code!=="ENOENT"||c.charAt(c.length-1)===n.sep){return i(new Error("Cannot read output directory. Error:\n"+e.message))}s(o(p),onstatparent)}else{done(t.isDirectory())}}function onstatparent(e){if(e){i(new Error("Cannot read parent directory. Error:\n"+e.message))}else{done(false)}}function done(e){if(!e&&h){return i(new Error("Cannot write multiple files to single output: "+p))}t[e?"dirname":"path"]=f(t.cwd,p);a("Copying document from %s to %s",v,t.path);i()}}},function(e,t){"use strict";var r="[a-zA-Z_:][a-zA-Z0-9:._-]*";var i="[^\"'=<>`\\u0000-\\u0020]+";var n="'[^']*'";var a='"[^"]*"';var u="(?:"+i+"|"+n+"|"+a+")";var s="(?:\\s+"+r+"(?:\\s*=\\s*"+u+")?)";var o="<[A-Za-z][A-Za-z0-9\\-]*"+s+"*\\s*\\/?>";var l="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>";var f="\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e";var c="<[?].*?[?]>";var h="]*>";var p="";t.openCloseTag=new RegExp("^(?:"+o+"|"+l+")");t.tag=new RegExp("^(?:"+o+"|"+l+"|"+f+"|"+c+"|"+h+"|"+p+")")},,function(e){e.exports=require("path")},,,,function(e,t,r){"use strict";var i=r(36);var n=r(171);var a=r(511);e.exports=strong;strong.locator=a;var u="\\";var s="*";var o="_";function strong(e,t,r){var a=this;var l=0;var f=t.charAt(l);var c;var h;var p;var v;var d;var D;var m;if(f!==s&&f!==o||t.charAt(++l)!==f){return}h=a.options.pedantic;p=f;d=p+p;D=t.length;l++;v="";f="";if(h&&n(t.charAt(l))){return}while(l0){return parse(e)}else if(r==="number"&&isNaN(e)===false){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var s=/^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!s){return}var o=parseFloat(s[1]);var l=(s[2]||"ms").toLowerCase();switch(l){case"years":case"year":case"yrs":case"yr":case"y":return o*u;case"weeks":case"week":case"w":return o*a;case"days":case"day":case"d":return o*n;case"hours":case"hour":case"hrs":case"hr":case"h":return o*i;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return undefined}}function fmtShort(e){var a=Math.abs(e);if(a>=n){return Math.round(e/n)+"d"}if(a>=i){return Math.round(e/i)+"h"}if(a>=r){return Math.round(e/r)+"m"}if(a>=t){return Math.round(e/t)+"s"}return e+"ms"}function fmtLong(e){var a=Math.abs(e);if(a>=n){return plural(e,a,n,"day")}if(a>=i){return plural(e,a,i,"hour")}if(a>=r){return plural(e,a,r,"minute")}if(a>=t){return plural(e,a,t,"second")}return e+" ms"}function plural(e,t,r,i){var n=t>=r*1.5;return Math.round(e/r)+" "+i+(n?"s":"")}},function(e,t){t.parse=t.decode=decode;t.stringify=t.encode=encode;t.safe=safe;t.unsafe=unsafe;var r=typeof process!=="undefined"&&process.platform==="win32"?"\r\n":"\n";function encode(e,t){var i=[];var n="";if(typeof t==="string"){t={section:t,whitespace:false}}else{t=t||{};t.whitespace=t.whitespace===true}var a=t.whitespace?" = ":"=";Object.keys(e).forEach(function(t,u,s){var o=e[t];if(o&&Array.isArray(o)){o.forEach(function(e){n+=safe(t+"[]")+a+safe(e)+"\n"})}else if(o&&typeof o==="object"){i.push(t)}else{n+=safe(t)+a+safe(o)+r}});if(t.section&&n.length){n="["+safe(t.section)+"]"+r+n}i.forEach(function(i,a,u){var s=dotSplit(i).join("\\.");var o=(t.section?t.section+".":"")+s;var l=encode(e[i],{section:o,whitespace:t.whitespace});if(n.length&&l.length){n+=r}n+=l});return n}function dotSplit(e){return e.replace(/\1/g,"LITERAL\\1LITERAL").replace(/\\\./g,"").split(/\./).map(function(e){return e.replace(/\1/g,"\\.").replace(/\2LITERAL\\1LITERAL\2/g,"")})}function decode(e){var t={};var r=t;var i=null;var n=/^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i;var a=e.split(/[\r\n]+/g);a.forEach(function(e,a,u){if(!e||e.match(/^\s*[;#]/))return;var s=e.match(n);if(!s)return;if(s[1]!==undefined){i=unsafe(s[1]);r=t[i]=t[i]||{};return}var o=unsafe(s[2]);var l=s[3]?unsafe(s[4]):true;switch(l){case"true":case"false":case"null":l=JSON.parse(l)}if(o.length>2&&o.slice(-2)==="[]"){o=o.substring(0,o.length-2);if(!r[o]){r[o]=[]}else if(!Array.isArray(r[o])){r[o]=[r[o]]}}if(Array.isArray(r[o])){r[o].push(l)}else{r[o]=l}});Object.keys(t).filter(function(e,r,i){if(!t[e]||typeof t[e]!=="object"||Array.isArray(t[e])){return false}var n=dotSplit(e);var a=t;var u=n.pop();var s=u.replace(/\\\./g,".");n.forEach(function(e,t,r){if(!a[e]||typeof a[e]!=="object")a[e]={};a=a[e]});if(a===t&&s===u){return false}a[s]=t[e];return true}).forEach(function(e,r,i){delete t[e]});return t}function isQuoted(e){return e.charAt(0)==='"'&&e.slice(-1)==='"'||e.charAt(0)==="'"&&e.slice(-1)==="'"}function safe(e){return typeof e!=="string"||e.match(/[=\r\n]/)||e.match(/^\[/)||e.length>1&&isQuoted(e)||e!==e.trim()?JSON.stringify(e):e.replace(/;/g,"\\;").replace(/#/g,"\\#")}function unsafe(e,t){e=(e||"").trim();if(isQuoted(e)){if(e.charAt(0)==="'"){e=e.substr(1,e.length-2)}try{e=JSON.parse(e)}catch(e){}}else{var r=false;var i="";for(var n=0,a=e.length;n="a"&&e<="z"||e>="A"&&e<="Z"||e==="$"||e==="_"||i.ID_Start.test(e)},isIdContinueChar(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||e==="$"||e==="_"||e==="‌"||e==="‍"||i.ID_Continue.test(e)},isDigit(e){return/[0-9]/.test(e)},isHexDigit(e){return/[0-9A-Fa-f]/.test(e)}}},,function(e){"use strict";e.exports=(e=>{if(Number.isNaN(e)){return false}if(e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)){return true}return false})},,,,,,,,,function(e,t,r){"use strict";e.exports.plugins=[r(889),r(560),[r(166),2],[r(112),{checked:"x",unchecked:" "}],r(424),[r(301),"fenced"],r(896),r(137),[r(386),"`"],[r(451),"md"],r(339),[r(284),1],[r(675),"atx"],[r(890),"space"],r(164),r(846),r(667),r(380),r(911),r(758),[r(701),false],r(273),r(926),r(55),r(72),r(522),[r(455),[{no:"End-Of-Life",yes:"End-of-Life"},{no:"End-of-life",yes:"End-of-Life"},{no:"Github",yes:"GitHub"},{no:"[Jj]avascript",yes:"JavaScript"},{no:"Node",yes:"Node.js"},{no:"Node.JS",yes:"Node.js"},{no:"node.js",yes:"Node.js"},{no:"[Nn]ote that",yes:""},{no:"Rfc",yes:"RFC"},{no:"[Rr][Ff][Cc]\\d+",yes:"RFC "},{no:"rfc",yes:"RFC"},{no:"UNIX",yes:"Unix"},{no:"unix",yes:"Unix"},{no:"v8",yes:"V8"}]],r(467),[r(108),"*"],[r(435),"padded"],r(314),[r(4),"*"]]},,function(e){e.exports=["cent","copy","divide","gt","lt","not","para","times"]},,function(e,t,r){"use strict";e.exports=r(447)},function(e,t,r){e.exports=minimatch;minimatch.Minimatch=Minimatch;var i={sep:"/"};try{i=r(589)}catch(e){}var n=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var a=r(348);var u={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var s="[^/]";var o=s+"*?";var l="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var f="(?:(?!(?:\\/|^)\\.).)*?";var c=charSet("().*{}+?[]^$\\!");function charSet(e){return e.split("").reduce(function(e,t){e[t]=true;return e},{})}var h=/\/+/;minimatch.filter=filter;function filter(e,t){t=t||{};return function(r,i,n){return minimatch(r,e,t)}}function ext(e,t){e=e||{};t=t||{};var r={};Object.keys(t).forEach(function(e){r[e]=t[e]});Object.keys(e).forEach(function(t){r[t]=e[t]});return r}minimatch.defaults=function(e){if(!e||!Object.keys(e).length)return minimatch;var t=minimatch;var r=function minimatch(r,i,n){return t.minimatch(r,i,ext(e,n))};r.Minimatch=function Minimatch(r,i){return new t.Minimatch(r,ext(e,i))};return r};Minimatch.defaults=function(e){if(!e||!Object.keys(e).length)return Minimatch;return minimatch.defaults(e).Minimatch};function minimatch(e,t,r){if(typeof t!=="string"){throw new TypeError("glob pattern string required")}if(!r)r={};if(!r.nocomment&&t.charAt(0)==="#"){return false}if(t.trim()==="")return e==="";return new Minimatch(t,r).match(e)}function Minimatch(e,t){if(!(this instanceof Minimatch)){return new Minimatch(e,t)}if(typeof e!=="string"){throw new TypeError("glob pattern string required")}if(!t)t={};e=e.trim();if(i.sep!=="/"){e=e.split(i.sep).join("/")}this.options=t;this.set=[];this.pattern=e;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){if(this._made)return;var e=this.pattern;var t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=true;return}if(!e){this.empty=true;return}this.parseNegate();var r=this.globSet=this.braceExpand();if(t.debug)this.debug=console.error;this.debug(this.pattern,r);r=this.globParts=r.map(function(e){return e.split(h)});this.debug(this.pattern,r);r=r.map(function(e,t,r){return e.map(this.parse,this)},this);this.debug(this.pattern,r);r=r.filter(function(e){return e.indexOf(false)===-1});this.debug(this.pattern,r);this.set=r}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var e=this.pattern;var t=false;var r=this.options;var i=0;if(r.nonegate)return;for(var n=0,a=e.length;n1024*64){throw new TypeError("pattern is too long")}var r=this.options;if(!r.noglobstar&&e==="**")return n;if(e==="")return"";var i="";var a=!!r.nocase;var l=false;var f=[];var h=[];var v;var d=false;var D=-1;var m=-1;var g=e.charAt(0)==="."?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var E=this;function clearStateChar(){if(v){switch(v){case"*":i+=o;a=true;break;case"?":i+=s;a=true;break;default:i+="\\"+v;break}E.debug("clearStateChar %j %j",v,i);v=false}}for(var A=0,C=e.length,y;A-1;k--){var O=h[k];var P=i.slice(0,O.reStart);var T=i.slice(O.reStart,O.reEnd-8);var I=i.slice(O.reEnd-8,O.reEnd);var M=i.slice(O.reEnd);I+=M;var L=P.split("(").length-1;var R=M;for(A=0;A=0;u--){a=e[u];if(a)break}for(u=0;u>> no match, partial?",e,c,t,h);if(c===s)return true}return false}var v;if(typeof l==="string"){if(i.nocase){v=f.toLowerCase()===l.toLowerCase()}else{v=f===l}this.debug("string match",l,f,v)}else{v=f.match(l);this.debug("pattern match",l,f,v)}if(!v)return false}if(a===s&&u===o){return true}else if(a===s){return r}else if(u===o){var d=a===s-1&&e[a]==="";return d}throw new Error("wtf?")};function globUnescape(e){return e.replace(/\\(.)/g,"$1")}function regExpEscape(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}},,,function(e){"use strict";e.exports=function(e){if(typeof e!=="function"){throw new TypeError("Expected a function")}return e.displayName||e.name||(/function ([^\(]+)?\(/.exec(e.toString())||[])[1]||null}},function(e){"use strict";e.exports=(()=>{const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))"].join("|");return new RegExp(e,"g")})},,,function(e,t,r){"use strict";var i=r(304);var n=r(948);e.exports=fileSystem;function fileSystem(e,t,r){var a=e.files;if(a.length===0){r()}else{n(a,{cwd:t.cwd,extensions:t.extensions,silentlyIgnore:t.silentlyIgnore,ignore:new i({cwd:t.cwd,detectIgnore:t.detectIgnore,ignoreName:t.ignoreName,ignorePath:t.ignorePath})},onfound)}function onfound(i,n){var a=n.files;a.sort(sortAlphabetically);a.forEach(markAsGiven);e.files=a;if(t.out===null||t.out===undefined){t.out=n.oneFileMode}r(i)}function markAsGiven(e){e.data.unifiedEngineGiven=true}function sortAlphabetically(e,t){return e.pathi){i=r}}else{r=1}n=a+1;a=e.indexOf(t,n)}return i}},function(e,t,r){"use strict";var i=r(347)("unified-engine:file-pipeline:stdout");var n=r(928);e.exports=stdout;function stdout(e,t,r,a){if(!t.data.unifiedEngineGiven){i("Ignoring programmatically added file");a()}else if(n(t).fatal||e.output||!e.out){i("Ignoring writing to `streamOut`");a()}else{i("Writing document to `streamOut`");e.streamOut.write(t.toString(),a)}}},,,function(e,t,r){"use strict";var i=r(56);var n=r(503);e.exports=toVFile;function toVFile(e){if(typeof e==="string"||i(e)){e={path:String(e)}}return n(e)}},,,,function(e){(function webpackUniversalModuleDefinition(t,r){if(true)e.exports=r();else{}})(this,function(){return function(e){var t={};function __webpack_require__(r){if(t[r])return t[r].exports;var i=t[r]={exports:{},id:r,loaded:false};e[r].call(i.exports,i,i.exports,__webpack_require__);i.loaded=true;return i.exports}__webpack_require__.m=e;__webpack_require__.c=t;__webpack_require__.p="";return __webpack_require__(0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:true});var i=r(1);var n=r(3);var a=r(8);var u=r(15);function parse(e,t,r){var u=null;var s=function(e,t){if(r){r(e,t)}if(u){u.visit(e,t)}};var o=typeof r==="function"?s:null;var l=false;if(t){l=typeof t.comment==="boolean"&&t.comment;var f=typeof t.attachComment==="boolean"&&t.attachComment;if(l||f){u=new i.CommentHandler;u.attach=f;t.comment=true;o=s}}var c=false;if(t&&typeof t.sourceType==="string"){c=t.sourceType==="module"}var h;if(t&&typeof t.jsx==="boolean"&&t.jsx){h=new n.JSXParser(e,t,o)}else{h=new a.Parser(e,t,o)}var p=c?h.parseModule():h.parseScript();var v=p;if(l&&u){v.comments=u.comments}if(h.config.tokens){v.tokens=h.tokens}if(h.config.tolerant){v.errors=h.errorHandler.errors}return v}t.parse=parse;function parseModule(e,t,r){var i=t||{};i.sourceType="module";return parse(e,i,r)}t.parseModule=parseModule;function parseScript(e,t,r){var i=t||{};i.sourceType="script";return parse(e,i,r)}t.parseScript=parseScript;function tokenize(e,t,r){var i=new u.Tokenizer(e,t);var n;n=[];try{while(true){var a=i.getNextToken();if(!a){break}if(r){a=r(a)}n.push(a)}}catch(e){i.errorHandler.tolerate(e)}if(i.errorHandler.tolerant){n.errors=i.errors()}return n}t.tokenize=tokenize;var s=r(2);t.Syntax=s.Syntax;t.version="4.0.1"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:true});var i=r(2);var n=function(){function CommentHandler(){this.attach=false;this.comments=[];this.stack=[];this.leading=[];this.trailing=[]}CommentHandler.prototype.insertInnerComments=function(e,t){if(e.type===i.Syntax.BlockStatement&&e.body.length===0){var r=[];for(var n=this.leading.length-1;n>=0;--n){var a=this.leading[n];if(t.end.offset>=a.start){r.unshift(a.comment);this.leading.splice(n,1);this.trailing.splice(n,1)}}if(r.length){e.innerComments=r}}};CommentHandler.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var i=this.trailing[r];if(i.start>=e.end.offset){t.unshift(i.comment)}}this.trailing.length=0;return t}var n=this.stack[this.stack.length-1];if(n&&n.node.trailingComments){var a=n.node.trailingComments[0];if(a&&a.range[0]>=e.end.offset){t=n.node.trailingComments;delete n.node.trailingComments}}return t};CommentHandler.prototype.findLeadingComments=function(e){var t=[];var r;while(this.stack.length>0){var i=this.stack[this.stack.length-1];if(i&&i.start>=e.start.offset){r=i.node;this.stack.pop()}else{break}}if(r){var n=r.leadingComments?r.leadingComments.length:0;for(var a=n-1;a>=0;--a){var u=r.leadingComments[a];if(u.range[1]<=e.start.offset){t.unshift(u);r.leadingComments.splice(a,1)}}if(r.leadingComments&&r.leadingComments.length===0){delete r.leadingComments}return t}for(var a=this.leading.length-1;a>=0;--a){var i=this.leading[a];if(i.start<=e.start.offset){t.unshift(i.comment);this.leading.splice(a,1)}}return t};CommentHandler.prototype.visitNode=function(e,t){if(e.type===i.Syntax.Program&&e.body.length>0){return}this.insertInnerComments(e,t);var r=this.findTrailingComments(t);var n=this.findLeadingComments(t);if(n.length>0){e.leadingComments=n}if(r.length>0){e.trailingComments=r}this.stack.push({node:e,start:t.start.offset})};CommentHandler.prototype.visitComment=function(e,t){var r=e.type[0]==="L"?"Line":"Block";var i={type:r,value:e.value};if(e.range){i.range=e.range}if(e.loc){i.loc=e.loc}this.comments.push(i);if(this.attach){var n={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};if(e.loc){n.comment.loc=e.loc}e.type=r;this.leading.push(n);this.trailing.push(n)}};CommentHandler.prototype.visit=function(e,t){if(e.type==="LineComment"){this.visitComment(e,t)}else if(e.type==="BlockComment"){this.visitComment(e,t)}else if(this.attach){this.visitNode(e,t)}};return CommentHandler}();t.CommentHandler=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(t.hasOwnProperty(r))e[r]=t[r]};return function(t,r){e(t,r);function __(){this.constructor=t}t.prototype=r===null?Object.create(r):(__.prototype=r.prototype,new __)}}();Object.defineProperty(t,"__esModule",{value:true});var n=r(4);var a=r(5);var u=r(6);var s=r(7);var o=r(8);var l=r(13);var f=r(14);l.TokenName[100]="JSXIdentifier";l.TokenName[101]="JSXText";function getQualifiedElementName(e){var t;switch(e.type){case u.JSXSyntax.JSXIdentifier:var r=e;t=r.name;break;case u.JSXSyntax.JSXNamespacedName:var i=e;t=getQualifiedElementName(i.namespace)+":"+getQualifiedElementName(i.name);break;case u.JSXSyntax.JSXMemberExpression:var n=e;t=getQualifiedElementName(n.object)+"."+getQualifiedElementName(n.property);break;default:break}return t}var c=function(e){i(JSXParser,e);function JSXParser(t,r,i){return e.call(this,t,r,i)||this}JSXParser.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)};JSXParser.prototype.startJSX=function(){this.scanner.index=this.startMarker.index;this.scanner.lineNumber=this.startMarker.line;this.scanner.lineStart=this.startMarker.index-this.startMarker.column};JSXParser.prototype.finishJSX=function(){this.nextToken()};JSXParser.prototype.reenterJSX=function(){this.startJSX();this.expectJSX("}");if(this.config.tokens){this.tokens.pop()}};JSXParser.prototype.createJSXNode=function(){this.collectComments();return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}};JSXParser.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}};JSXParser.prototype.scanXHTMLEntity=function(e){var t="&";var r=true;var i=false;var a=false;var u=false;while(!this.scanner.eof()&&r&&!i){var s=this.scanner.source[this.scanner.index];if(s===e){break}i=s===";";t+=s;++this.scanner.index;if(!i){switch(t.length){case 2:a=s==="#";break;case 3:if(a){u=s==="x";r=u||n.Character.isDecimalDigit(s.charCodeAt(0));a=a&&!u}break;default:r=r&&!(a&&!n.Character.isDecimalDigit(s.charCodeAt(0)));r=r&&!(u&&!n.Character.isHexDigit(s.charCodeAt(0)));break}}}if(r&&i&&t.length>2){var o=t.substr(1,t.length-2);if(a&&o.length>1){t=String.fromCharCode(parseInt(o.substr(1),10))}else if(u&&o.length>2){t=String.fromCharCode(parseInt("0"+o.substr(1),16))}else if(!a&&!u&&f.XHTMLEntities[o]){t=f.XHTMLEntities[o]}}return t};JSXParser.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(e===60||e===62||e===47||e===58||e===61||e===123||e===125){var t=this.scanner.source[this.scanner.index++];return{type:7,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(e===34||e===39){var r=this.scanner.index;var i=this.scanner.source[this.scanner.index++];var a="";while(!this.scanner.eof()){var u=this.scanner.source[this.scanner.index++];if(u===i){break}else if(u==="&"){a+=this.scanXHTMLEntity(i)}else{a+=u}}return{type:8,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:r,end:this.scanner.index}}if(e===46){var s=this.scanner.source.charCodeAt(this.scanner.index+1);var o=this.scanner.source.charCodeAt(this.scanner.index+2);var t=s===46&&o===46?"...":".";var r=this.scanner.index;this.scanner.index+=t.length;return{type:7,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:r,end:this.scanner.index}}if(e===96){return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index}}if(n.Character.isIdentifierStart(e)&&e!==92){var r=this.scanner.index;++this.scanner.index;while(!this.scanner.eof()){var u=this.scanner.source.charCodeAt(this.scanner.index);if(n.Character.isIdentifierPart(u)&&u!==92){++this.scanner.index}else if(u===45){++this.scanner.index}else{break}}var l=this.scanner.source.slice(r,this.scanner.index);return{type:100,value:l,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:r,end:this.scanner.index}}return this.scanner.lex()};JSXParser.prototype.nextJSXToken=function(){this.collectComments();this.startMarker.index=this.scanner.index;this.startMarker.line=this.scanner.lineNumber;this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;if(this.config.tokens){this.tokens.push(this.convertToken(e))}return e};JSXParser.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index;this.startMarker.line=this.scanner.lineNumber;this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.scanner.index;var t="";while(!this.scanner.eof()){var r=this.scanner.source[this.scanner.index];if(r==="{"||r==="<"){break}++this.scanner.index;t+=r;if(n.Character.isLineTerminator(r.charCodeAt(0))){++this.scanner.lineNumber;if(r==="\r"&&this.scanner.source[this.scanner.index]==="\n"){++this.scanner.index}this.scanner.lineStart=this.scanner.index}}this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var i={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};if(t.length>0&&this.config.tokens){this.tokens.push(this.convertToken(i))}return i};JSXParser.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();this.scanner.restoreState(e);return t};JSXParser.prototype.expectJSX=function(e){var t=this.nextJSXToken();if(t.type!==7||t.value!==e){this.throwUnexpectedToken(t)}};JSXParser.prototype.matchJSX=function(e){var t=this.peekJSXToken();return t.type===7&&t.value===e};JSXParser.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode();var t=this.nextJSXToken();if(t.type!==100){this.throwUnexpectedToken(t)}return this.finalize(e,new a.JSXIdentifier(t.value))};JSXParser.prototype.parseJSXElementName=function(){var e=this.createJSXNode();var t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var i=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(r,i))}else if(this.matchJSX(".")){while(this.matchJSX(".")){var n=t;this.expectJSX(".");var u=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXMemberExpression(n,u))}}return t};JSXParser.prototype.parseJSXAttributeName=function(){var e=this.createJSXNode();var t;var r=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=r;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(i,n))}else{t=r}return t};JSXParser.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode();var t=this.nextJSXToken();if(t.type!==8){this.throwUnexpectedToken(t)}var r=this.getTokenRaw(t);return this.finalize(e,new s.Literal(t.value,r))};JSXParser.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{");this.finishJSX();if(this.match("}")){this.tolerateError("JSX attributes must only be assigned a non-empty expression")}var t=this.parseAssignmentExpression();this.reenterJSX();return this.finalize(e,new a.JSXExpressionContainer(t))};JSXParser.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()};JSXParser.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode();var t=this.parseJSXAttributeName();var r=null;if(this.matchJSX("=")){this.expectJSX("=");r=this.parseJSXAttributeValue()}return this.finalize(e,new a.JSXAttribute(t,r))};JSXParser.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{");this.expectJSX("...");this.finishJSX();var t=this.parseAssignmentExpression();this.reenterJSX();return this.finalize(e,new a.JSXSpreadAttribute(t))};JSXParser.prototype.parseJSXAttributes=function(){var e=[];while(!this.matchJSX("/")&&!this.matchJSX(">")){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e};JSXParser.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName();var r=this.parseJSXAttributes();var i=this.matchJSX("/");if(i){this.expectJSX("/")}this.expectJSX(">");return this.finalize(e,new a.JSXOpeningElement(t,i,r))};JSXParser.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();this.expectJSX("<");if(this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();this.expectJSX(">");return this.finalize(e,new a.JSXClosingElement(t))}var r=this.parseJSXElementName();var i=this.parseJSXAttributes();var n=this.matchJSX("/");if(n){this.expectJSX("/")}this.expectJSX(">");return this.finalize(e,new a.JSXOpeningElement(r,n,i))};JSXParser.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();this.collectComments();this.lastMarker.index=this.scanner.index;this.lastMarker.line=this.scanner.lineNumber;this.lastMarker.column=this.scanner.index-this.scanner.lineStart;return this.finalize(e,new a.JSXEmptyExpression)};JSXParser.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;if(this.matchJSX("}")){t=this.parseJSXEmptyExpression();this.expectJSX("}")}else{this.finishJSX();t=this.parseAssignmentExpression();this.reenterJSX()}return this.finalize(e,new a.JSXExpressionContainer(t))};JSXParser.prototype.parseJSXChildren=function(){var e=[];while(!this.scanner.eof()){var t=this.createJSXChildNode();var r=this.nextJSXText();if(r.start0){var s=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing));e=t[t.length-1];e.children.push(s);t.pop()}else{break}}}return e};JSXParser.prototype.parseJSXElement=function(){var e=this.createJSXNode();var t=this.parseJSXOpeningElement();var r=[];var i=null;if(!t.selfClosing){var n=this.parseComplexJSXElement({node:e,opening:t,closing:i,children:r});r=n.children;i=n.closing}return this.finalize(e,new a.JSXElement(t,r,i))};JSXParser.prototype.parseJSXRoot=function(){if(this.config.tokens){this.tokens.pop()}this.startJSX();var e=this.parseJSXElement();this.finishJSX();return e};JSXParser.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")};return JSXParser}(o.Parser);t.JSXParser=c},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return e===10||e===13||e===8232||e===8233},isIdentifierStart:function(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:true});var i=r(6);var n=function(){function JSXClosingElement(e){this.type=i.JSXSyntax.JSXClosingElement;this.name=e}return JSXClosingElement}();t.JSXClosingElement=n;var a=function(){function JSXElement(e,t,r){this.type=i.JSXSyntax.JSXElement;this.openingElement=e;this.children=t;this.closingElement=r}return JSXElement}();t.JSXElement=a;var u=function(){function JSXEmptyExpression(){this.type=i.JSXSyntax.JSXEmptyExpression}return JSXEmptyExpression}();t.JSXEmptyExpression=u;var s=function(){function JSXExpressionContainer(e){this.type=i.JSXSyntax.JSXExpressionContainer;this.expression=e}return JSXExpressionContainer}();t.JSXExpressionContainer=s;var o=function(){function JSXIdentifier(e){this.type=i.JSXSyntax.JSXIdentifier;this.name=e}return JSXIdentifier}();t.JSXIdentifier=o;var l=function(){function JSXMemberExpression(e,t){this.type=i.JSXSyntax.JSXMemberExpression;this.object=e;this.property=t}return JSXMemberExpression}();t.JSXMemberExpression=l;var f=function(){function JSXAttribute(e,t){this.type=i.JSXSyntax.JSXAttribute;this.name=e;this.value=t}return JSXAttribute}();t.JSXAttribute=f;var c=function(){function JSXNamespacedName(e,t){this.type=i.JSXSyntax.JSXNamespacedName;this.namespace=e;this.name=t}return JSXNamespacedName}();t.JSXNamespacedName=c;var h=function(){function JSXOpeningElement(e,t,r){this.type=i.JSXSyntax.JSXOpeningElement;this.name=e;this.selfClosing=t;this.attributes=r}return JSXOpeningElement}();t.JSXOpeningElement=h;var p=function(){function JSXSpreadAttribute(e){this.type=i.JSXSyntax.JSXSpreadAttribute;this.argument=e}return JSXSpreadAttribute}();t.JSXSpreadAttribute=p;var v=function(){function JSXText(e,t){this.type=i.JSXSyntax.JSXText;this.value=e;this.raw=t}return JSXText}();t.JSXText=v},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:true});var i=r(2);var n=function(){function ArrayExpression(e){this.type=i.Syntax.ArrayExpression;this.elements=e}return ArrayExpression}();t.ArrayExpression=n;var a=function(){function ArrayPattern(e){this.type=i.Syntax.ArrayPattern;this.elements=e}return ArrayPattern}();t.ArrayPattern=a;var u=function(){function ArrowFunctionExpression(e,t,r){this.type=i.Syntax.ArrowFunctionExpression;this.id=null;this.params=e;this.body=t;this.generator=false;this.expression=r;this.async=false}return ArrowFunctionExpression}();t.ArrowFunctionExpression=u;var s=function(){function AssignmentExpression(e,t,r){this.type=i.Syntax.AssignmentExpression;this.operator=e;this.left=t;this.right=r}return AssignmentExpression}();t.AssignmentExpression=s;var o=function(){function AssignmentPattern(e,t){this.type=i.Syntax.AssignmentPattern;this.left=e;this.right=t}return AssignmentPattern}();t.AssignmentPattern=o;var l=function(){function AsyncArrowFunctionExpression(e,t,r){this.type=i.Syntax.ArrowFunctionExpression;this.id=null;this.params=e;this.body=t;this.generator=false;this.expression=r;this.async=true}return AsyncArrowFunctionExpression}();t.AsyncArrowFunctionExpression=l;var f=function(){function AsyncFunctionDeclaration(e,t,r){this.type=i.Syntax.FunctionDeclaration;this.id=e;this.params=t;this.body=r;this.generator=false;this.expression=false;this.async=true}return AsyncFunctionDeclaration}();t.AsyncFunctionDeclaration=f;var c=function(){function AsyncFunctionExpression(e,t,r){this.type=i.Syntax.FunctionExpression;this.id=e;this.params=t;this.body=r;this.generator=false;this.expression=false;this.async=true}return AsyncFunctionExpression}();t.AsyncFunctionExpression=c;var h=function(){function AwaitExpression(e){this.type=i.Syntax.AwaitExpression;this.argument=e}return AwaitExpression}();t.AwaitExpression=h;var p=function(){function BinaryExpression(e,t,r){var n=e==="||"||e==="&&";this.type=n?i.Syntax.LogicalExpression:i.Syntax.BinaryExpression;this.operator=e;this.left=t;this.right=r}return BinaryExpression}();t.BinaryExpression=p;var v=function(){function BlockStatement(e){this.type=i.Syntax.BlockStatement;this.body=e}return BlockStatement}();t.BlockStatement=v;var d=function(){function BreakStatement(e){this.type=i.Syntax.BreakStatement;this.label=e}return BreakStatement}();t.BreakStatement=d;var D=function(){function CallExpression(e,t){this.type=i.Syntax.CallExpression;this.callee=e;this.arguments=t}return CallExpression}();t.CallExpression=D;var m=function(){function CatchClause(e,t){this.type=i.Syntax.CatchClause;this.param=e;this.body=t}return CatchClause}();t.CatchClause=m;var g=function(){function ClassBody(e){this.type=i.Syntax.ClassBody;this.body=e}return ClassBody}();t.ClassBody=g;var E=function(){function ClassDeclaration(e,t,r){this.type=i.Syntax.ClassDeclaration;this.id=e;this.superClass=t;this.body=r}return ClassDeclaration}();t.ClassDeclaration=E;var A=function(){function ClassExpression(e,t,r){this.type=i.Syntax.ClassExpression;this.id=e;this.superClass=t;this.body=r}return ClassExpression}();t.ClassExpression=A;var C=function(){function ComputedMemberExpression(e,t){this.type=i.Syntax.MemberExpression;this.computed=true;this.object=e;this.property=t}return ComputedMemberExpression}();t.ComputedMemberExpression=C;var y=function(){function ConditionalExpression(e,t,r){this.type=i.Syntax.ConditionalExpression;this.test=e;this.consequent=t;this.alternate=r}return ConditionalExpression}();t.ConditionalExpression=y;var w=function(){function ContinueStatement(e){this.type=i.Syntax.ContinueStatement;this.label=e}return ContinueStatement}();t.ContinueStatement=w;var x=function(){function DebuggerStatement(){this.type=i.Syntax.DebuggerStatement}return DebuggerStatement}();t.DebuggerStatement=x;var b=function(){function Directive(e,t){this.type=i.Syntax.ExpressionStatement;this.expression=e;this.directive=t}return Directive}();t.Directive=b;var F=function(){function DoWhileStatement(e,t){this.type=i.Syntax.DoWhileStatement;this.body=e;this.test=t}return DoWhileStatement}();t.DoWhileStatement=F;var S=function(){function EmptyStatement(){this.type=i.Syntax.EmptyStatement}return EmptyStatement}();t.EmptyStatement=S;var B=function(){function ExportAllDeclaration(e){this.type=i.Syntax.ExportAllDeclaration;this.source=e}return ExportAllDeclaration}();t.ExportAllDeclaration=B;var k=function(){function ExportDefaultDeclaration(e){this.type=i.Syntax.ExportDefaultDeclaration;this.declaration=e}return ExportDefaultDeclaration}();t.ExportDefaultDeclaration=k;var O=function(){function ExportNamedDeclaration(e,t,r){this.type=i.Syntax.ExportNamedDeclaration;this.declaration=e;this.specifiers=t;this.source=r}return ExportNamedDeclaration}();t.ExportNamedDeclaration=O;var P=function(){function ExportSpecifier(e,t){this.type=i.Syntax.ExportSpecifier;this.exported=t;this.local=e}return ExportSpecifier}();t.ExportSpecifier=P;var T=function(){function ExpressionStatement(e){this.type=i.Syntax.ExpressionStatement;this.expression=e}return ExpressionStatement}();t.ExpressionStatement=T;var I=function(){function ForInStatement(e,t,r){this.type=i.Syntax.ForInStatement;this.left=e;this.right=t;this.body=r;this.each=false}return ForInStatement}();t.ForInStatement=I;var M=function(){function ForOfStatement(e,t,r){this.type=i.Syntax.ForOfStatement;this.left=e;this.right=t;this.body=r}return ForOfStatement}();t.ForOfStatement=M;var L=function(){function ForStatement(e,t,r,n){this.type=i.Syntax.ForStatement;this.init=e;this.test=t;this.update=r;this.body=n}return ForStatement}();t.ForStatement=L;var R=function(){function FunctionDeclaration(e,t,r,n){this.type=i.Syntax.FunctionDeclaration;this.id=e;this.params=t;this.body=r;this.generator=n;this.expression=false;this.async=false}return FunctionDeclaration}();t.FunctionDeclaration=R;var j=function(){function FunctionExpression(e,t,r,n){this.type=i.Syntax.FunctionExpression;this.id=e;this.params=t;this.body=r;this.generator=n;this.expression=false;this.async=false}return FunctionExpression}();t.FunctionExpression=j;var U=function(){function Identifier(e){this.type=i.Syntax.Identifier;this.name=e}return Identifier}();t.Identifier=U;var N=function(){function IfStatement(e,t,r){this.type=i.Syntax.IfStatement;this.test=e;this.consequent=t;this.alternate=r}return IfStatement}();t.IfStatement=N;var J=function(){function ImportDeclaration(e,t){this.type=i.Syntax.ImportDeclaration;this.specifiers=e;this.source=t}return ImportDeclaration}();t.ImportDeclaration=J;var z=function(){function ImportDefaultSpecifier(e){this.type=i.Syntax.ImportDefaultSpecifier;this.local=e}return ImportDefaultSpecifier}();t.ImportDefaultSpecifier=z;var X=function(){function ImportNamespaceSpecifier(e){this.type=i.Syntax.ImportNamespaceSpecifier;this.local=e}return ImportNamespaceSpecifier}();t.ImportNamespaceSpecifier=X;var G=function(){function ImportSpecifier(e,t){this.type=i.Syntax.ImportSpecifier;this.local=e;this.imported=t}return ImportSpecifier}();t.ImportSpecifier=G;var q=function(){function LabeledStatement(e,t){this.type=i.Syntax.LabeledStatement;this.label=e;this.body=t}return LabeledStatement}();t.LabeledStatement=q;var W=function(){function Literal(e,t){this.type=i.Syntax.Literal;this.value=e;this.raw=t}return Literal}();t.Literal=W;var _=function(){function MetaProperty(e,t){this.type=i.Syntax.MetaProperty;this.meta=e;this.property=t}return MetaProperty}();t.MetaProperty=_;var V=function(){function MethodDefinition(e,t,r,n,a){this.type=i.Syntax.MethodDefinition;this.key=e;this.computed=t;this.value=r;this.kind=n;this.static=a}return MethodDefinition}();t.MethodDefinition=V;var Y=function(){function Module(e){this.type=i.Syntax.Program;this.body=e;this.sourceType="module"}return Module}();t.Module=Y;var H=function(){function NewExpression(e,t){this.type=i.Syntax.NewExpression;this.callee=e;this.arguments=t}return NewExpression}();t.NewExpression=H;var $=function(){function ObjectExpression(e){this.type=i.Syntax.ObjectExpression;this.properties=e}return ObjectExpression}();t.ObjectExpression=$;var Z=function(){function ObjectPattern(e){this.type=i.Syntax.ObjectPattern;this.properties=e}return ObjectPattern}();t.ObjectPattern=Z;var Q=function(){function Property(e,t,r,n,a,u){this.type=i.Syntax.Property;this.key=t;this.computed=r;this.value=n;this.kind=e;this.method=a;this.shorthand=u}return Property}();t.Property=Q;var K=function(){function RegexLiteral(e,t,r,n){this.type=i.Syntax.Literal;this.value=e;this.raw=t;this.regex={pattern:r,flags:n}}return RegexLiteral}();t.RegexLiteral=K;var ee=function(){function RestElement(e){this.type=i.Syntax.RestElement;this.argument=e}return RestElement}();t.RestElement=ee;var te=function(){function ReturnStatement(e){this.type=i.Syntax.ReturnStatement;this.argument=e}return ReturnStatement}();t.ReturnStatement=te;var re=function(){function Script(e){this.type=i.Syntax.Program;this.body=e;this.sourceType="script"}return Script}();t.Script=re;var ie=function(){function SequenceExpression(e){this.type=i.Syntax.SequenceExpression;this.expressions=e}return SequenceExpression}();t.SequenceExpression=ie;var ne=function(){function SpreadElement(e){this.type=i.Syntax.SpreadElement;this.argument=e}return SpreadElement}();t.SpreadElement=ne;var ae=function(){function StaticMemberExpression(e,t){this.type=i.Syntax.MemberExpression;this.computed=false;this.object=e;this.property=t}return StaticMemberExpression}();t.StaticMemberExpression=ae;var ue=function(){function Super(){this.type=i.Syntax.Super}return Super}();t.Super=ue;var se=function(){function SwitchCase(e,t){this.type=i.Syntax.SwitchCase;this.test=e;this.consequent=t}return SwitchCase}();t.SwitchCase=se;var oe=function(){function SwitchStatement(e,t){this.type=i.Syntax.SwitchStatement;this.discriminant=e;this.cases=t}return SwitchStatement}();t.SwitchStatement=oe;var le=function(){function TaggedTemplateExpression(e,t){this.type=i.Syntax.TaggedTemplateExpression;this.tag=e;this.quasi=t}return TaggedTemplateExpression}();t.TaggedTemplateExpression=le;var fe=function(){function TemplateElement(e,t){this.type=i.Syntax.TemplateElement;this.value=e;this.tail=t}return TemplateElement}();t.TemplateElement=fe;var ce=function(){function TemplateLiteral(e,t){this.type=i.Syntax.TemplateLiteral;this.quasis=e;this.expressions=t}return TemplateLiteral}();t.TemplateLiteral=ce;var he=function(){function ThisExpression(){this.type=i.Syntax.ThisExpression}return ThisExpression}();t.ThisExpression=he;var pe=function(){function ThrowStatement(e){this.type=i.Syntax.ThrowStatement;this.argument=e}return ThrowStatement}();t.ThrowStatement=pe;var ve=function(){function TryStatement(e,t,r){this.type=i.Syntax.TryStatement;this.block=e;this.handler=t;this.finalizer=r}return TryStatement}();t.TryStatement=ve;var de=function(){function UnaryExpression(e,t){this.type=i.Syntax.UnaryExpression;this.operator=e;this.argument=t;this.prefix=true}return UnaryExpression}();t.UnaryExpression=de;var De=function(){function UpdateExpression(e,t,r){this.type=i.Syntax.UpdateExpression;this.operator=e;this.argument=t;this.prefix=r}return UpdateExpression}();t.UpdateExpression=De;var me=function(){function VariableDeclaration(e,t){this.type=i.Syntax.VariableDeclaration;this.declarations=e;this.kind=t}return VariableDeclaration}();t.VariableDeclaration=me;var ge=function(){function VariableDeclarator(e,t){this.type=i.Syntax.VariableDeclarator;this.id=e;this.init=t}return VariableDeclarator}();t.VariableDeclarator=ge;var Ee=function(){function WhileStatement(e,t){this.type=i.Syntax.WhileStatement;this.test=e;this.body=t}return WhileStatement}();t.WhileStatement=Ee;var Ae=function(){function WithStatement(e,t){this.type=i.Syntax.WithStatement;this.object=e;this.body=t}return WithStatement}();t.WithStatement=Ae;var Ce=function(){function YieldExpression(e,t){this.type=i.Syntax.YieldExpression;this.argument=e;this.delegate=t}return YieldExpression}();t.YieldExpression=Ce},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:true});var i=r(9);var n=r(10);var a=r(11);var u=r(7);var s=r(12);var o=r(2);var l=r(13);var f="ArrowParameterPlaceHolder";var c=function(){function Parser(e,t,r){if(t===void 0){t={}}this.config={range:typeof t.range==="boolean"&&t.range,loc:typeof t.loc==="boolean"&&t.loc,source:null,tokens:typeof t.tokens==="boolean"&&t.tokens,comment:typeof t.comment==="boolean"&&t.comment,tolerant:typeof t.tolerant==="boolean"&&t.tolerant};if(this.config.loc&&t.source&&t.source!==null){this.config.source=String(t.source)}this.delegate=r;this.errorHandler=new n.ErrorHandler;this.errorHandler.tolerant=this.config.tolerant;this.scanner=new s.Scanner(e,this.errorHandler);this.scanner.trackComment=this.config.comment;this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11};this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0};this.hasLineTerminator=false;this.context={isModule:false,await:false,allowIn:true,allowStrictDirective:true,allowYield:true,firstCoverInitializedNameError:null,isAssignmentTarget:false,isBindingElement:false,inFunctionBody:false,inIteration:false,inSwitch:false,labelSet:{},strict:false};this.tokens=[];this.startMarker={index:0,line:this.scanner.lineNumber,column:0};this.lastMarker={index:0,line:this.scanner.lineNumber,column:0};this.nextToken();this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}Parser.prototype.throwError=function(e){var t=[];for(var r=1;r0&&this.delegate){for(var t=0;t>="||e===">>>="||e==="&="||e==="^="||e==="|="};Parser.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement;var r=this.context.isAssignmentTarget;var i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=true;this.context.isAssignmentTarget=true;this.context.firstCoverInitializedNameError=null;var n=e.call(this);if(this.context.firstCoverInitializedNameError!==null){this.throwUnexpectedToken(this.context.firstCoverInitializedNameError)}this.context.isBindingElement=t;this.context.isAssignmentTarget=r;this.context.firstCoverInitializedNameError=i;return n};Parser.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement;var r=this.context.isAssignmentTarget;var i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=true;this.context.isAssignmentTarget=true;this.context.firstCoverInitializedNameError=null;var n=e.call(this);this.context.isBindingElement=this.context.isBindingElement&&t;this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r;this.context.firstCoverInitializedNameError=i||this.context.firstCoverInitializedNameError;return n};Parser.prototype.consumeSemicolon=function(){if(this.match(";")){this.nextToken()}else if(!this.hasLineTerminator){if(this.lookahead.type!==2&&!this.match("}")){this.throwUnexpectedToken(this.lookahead)}this.lastMarker.index=this.startMarker.index;this.lastMarker.line=this.startMarker.line;this.lastMarker.column=this.startMarker.column}};Parser.prototype.parsePrimaryExpression=function(){var e=this.createNode();var t;var r,i;switch(this.lookahead.type){case 3:if((this.context.isModule||this.context.await)&&this.lookahead.value==="await"){this.tolerateUnexpectedToken(this.lookahead)}t=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(e,new u.Identifier(this.nextToken().value));break;case 6:case 8:if(this.context.strict&&this.lookahead.octal){this.tolerateUnexpectedToken(this.lookahead,a.Messages.StrictOctalLiteral)}this.context.isAssignmentTarget=false;this.context.isBindingElement=false;r=this.nextToken();i=this.getTokenRaw(r);t=this.finalize(e,new u.Literal(r.value,i));break;case 1:this.context.isAssignmentTarget=false;this.context.isBindingElement=false;r=this.nextToken();i=this.getTokenRaw(r);t=this.finalize(e,new u.Literal(r.value==="true",i));break;case 5:this.context.isAssignmentTarget=false;this.context.isBindingElement=false;r=this.nextToken();i=this.getTokenRaw(r);t=this.finalize(e,new u.Literal(null,i));break;case 10:t=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=false;t=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":t=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":t=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=false;this.context.isBindingElement=false;this.scanner.index=this.startMarker.index;r=this.nextRegexToken();i=this.getTokenRaw(r);t=this.finalize(e,new u.RegexLiteral(r.regex,i,r.pattern,r.flags));break;default:t=this.throwUnexpectedToken(this.nextToken())}break;case 4:if(!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")){t=this.parseIdentifierName()}else if(!this.context.strict&&this.matchKeyword("let")){t=this.finalize(e,new u.Identifier(this.nextToken().value))}else{this.context.isAssignmentTarget=false;this.context.isBindingElement=false;if(this.matchKeyword("function")){t=this.parseFunctionExpression()}else if(this.matchKeyword("this")){this.nextToken();t=this.finalize(e,new u.ThisExpression)}else if(this.matchKeyword("class")){t=this.parseClassExpression()}else{t=this.throwUnexpectedToken(this.nextToken())}}break;default:t=this.throwUnexpectedToken(this.nextToken())}return t};Parser.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new u.SpreadElement(t))};Parser.prototype.parseArrayInitializer=function(){var e=this.createNode();var t=[];this.expect("[");while(!this.match("]")){if(this.match(",")){this.nextToken();t.push(null)}else if(this.match("...")){var r=this.parseSpreadElement();if(!this.match("]")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;this.expect(",")}t.push(r)}else{t.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(!this.match("]")){this.expect(",")}}}this.expect("]");return this.finalize(e,new u.ArrayExpression(t))};Parser.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var t=this.context.strict;var r=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var i=this.isolateCoverGrammar(this.parseFunctionSourceElements);if(this.context.strict&&e.firstRestricted){this.tolerateUnexpectedToken(e.firstRestricted,e.message)}if(this.context.strict&&e.stricted){this.tolerateUnexpectedToken(e.stricted,e.message)}this.context.strict=t;this.context.allowStrictDirective=r;return i};Parser.prototype.parsePropertyMethodFunction=function(){var e=false;var t=this.createNode();var r=this.context.allowYield;this.context.allowYield=true;var i=this.parseFormalParameters();var n=this.parsePropertyMethod(i);this.context.allowYield=r;return this.finalize(t,new u.FunctionExpression(null,i.params,n,e))};Parser.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode();var t=this.context.allowYield;var r=this.context.await;this.context.allowYield=false;this.context.await=true;var i=this.parseFormalParameters();var n=this.parsePropertyMethod(i);this.context.allowYield=t;this.context.await=r;return this.finalize(e,new u.AsyncFunctionExpression(null,i.params,n))};Parser.prototype.parseObjectPropertyKey=function(){var e=this.createNode();var t=this.nextToken();var r;switch(t.type){case 8:case 6:if(this.context.strict&&t.octal){this.tolerateUnexpectedToken(t,a.Messages.StrictOctalLiteral)}var i=this.getTokenRaw(t);r=this.finalize(e,new u.Literal(t.value,i));break;case 3:case 1:case 5:case 4:r=this.finalize(e,new u.Identifier(t.value));break;case 7:if(t.value==="["){r=this.isolateCoverGrammar(this.parseAssignmentExpression);this.expect("]")}else{r=this.throwUnexpectedToken(t)}break;default:r=this.throwUnexpectedToken(t)}return r};Parser.prototype.isPropertyKey=function(e,t){return e.type===o.Syntax.Identifier&&e.name===t||e.type===o.Syntax.Literal&&e.value===t};Parser.prototype.parseObjectProperty=function(e){var t=this.createNode();var r=this.lookahead;var i;var n=null;var s=null;var o=false;var l=false;var f=false;var c=false;if(r.type===3){var h=r.value;this.nextToken();o=this.match("[");c=!this.hasLineTerminator&&h==="async"&&!this.match(":")&&!this.match("(")&&!this.match("*")&&!this.match(",");n=c?this.parseObjectPropertyKey():this.finalize(t,new u.Identifier(h))}else if(this.match("*")){this.nextToken()}else{o=this.match("[");n=this.parseObjectPropertyKey()}var p=this.qualifiedPropertyName(this.lookahead);if(r.type===3&&!c&&r.value==="get"&&p){i="get";o=this.match("[");n=this.parseObjectPropertyKey();this.context.allowYield=false;s=this.parseGetterMethod()}else if(r.type===3&&!c&&r.value==="set"&&p){i="set";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseSetterMethod()}else if(r.type===7&&r.value==="*"&&p){i="init";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseGeneratorMethod();l=true}else{if(!n){this.throwUnexpectedToken(this.lookahead)}i="init";if(this.match(":")&&!c){if(!o&&this.isPropertyKey(n,"__proto__")){if(e.value){this.tolerateError(a.Messages.DuplicateProtoProperty)}e.value=true}this.nextToken();s=this.inheritCoverGrammar(this.parseAssignmentExpression)}else if(this.match("(")){s=c?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction();l=true}else if(r.type===3){var h=this.finalize(t,new u.Identifier(r.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead;this.nextToken();f=true;var v=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(t,new u.AssignmentPattern(h,v))}else{f=true;s=h}}else{this.throwUnexpectedToken(this.nextToken())}}return this.finalize(t,new u.Property(i,n,o,s,l,f))};Parser.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");var t=[];var r={value:false};while(!this.match("}")){t.push(this.parseObjectProperty(r));if(!this.match("}")){this.expectCommaSeparator()}}this.expect("}");return this.finalize(e,new u.ObjectExpression(t))};Parser.prototype.parseTemplateHead=function(){i.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode();var t=this.nextToken();var r=t.value;var n=t.cooked;return this.finalize(e,new u.TemplateElement({raw:r,cooked:n},t.tail))};Parser.prototype.parseTemplateElement=function(){if(this.lookahead.type!==10){this.throwUnexpectedToken()}var e=this.createNode();var t=this.nextToken();var r=t.value;var i=t.cooked;return this.finalize(e,new u.TemplateElement({raw:r,cooked:i},t.tail))};Parser.prototype.parseTemplateLiteral=function(){var e=this.createNode();var t=[];var r=[];var i=this.parseTemplateHead();r.push(i);while(!i.tail){t.push(this.parseExpression());i=this.parseTemplateElement();r.push(i)}return this.finalize(e,new u.TemplateLiteral(r,t))};Parser.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case o.Syntax.Identifier:case o.Syntax.MemberExpression:case o.Syntax.RestElement:case o.Syntax.AssignmentPattern:break;case o.Syntax.SpreadElement:e.type=o.Syntax.RestElement;this.reinterpretExpressionAsPattern(e.argument);break;case o.Syntax.ArrayExpression:e.type=o.Syntax.ArrayPattern;for(var t=0;t")){this.expect("=>")}e={type:f,params:[],async:false}}else{var t=this.lookahead;var r=[];if(this.match("...")){e=this.parseRestElement(r);this.expect(")");if(!this.match("=>")){this.expect("=>")}e={type:f,params:[e],async:false}}else{var i=false;this.context.isBindingElement=true;e=this.inheritCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];this.context.isAssignmentTarget=false;n.push(e);while(this.lookahead.type!==2){if(!this.match(",")){break}this.nextToken();if(this.match(")")){this.nextToken();for(var a=0;a")){this.expect("=>")}this.context.isBindingElement=false;for(var a=0;a")){if(e.type===o.Syntax.Identifier&&e.name==="yield"){i=true;e={type:f,params:[e],async:false}}if(!i){if(!this.context.isBindingElement){this.throwUnexpectedToken(this.lookahead)}if(e.type===o.Syntax.SequenceExpression){for(var a=0;a")){for(var o=0;o0){this.nextToken();this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var n=[e,this.lookahead];var a=t;var s=this.isolateCoverGrammar(this.parseExponentiationExpression);var o=[a,r.value,s];var l=[i];while(true){i=this.binaryPrecedence(this.lookahead);if(i<=0){break}while(o.length>2&&i<=l[l.length-1]){s=o.pop();var f=o.pop();l.pop();a=o.pop();n.pop();var c=this.startNode(n[n.length-1]);o.push(this.finalize(c,new u.BinaryExpression(f,a,s)))}o.push(this.nextToken().value);l.push(i);n.push(this.lookahead);o.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=o.length-1;t=o[h];var p=n.pop();while(h>1){var v=n.pop();var d=p&&p.lineStart;var c=this.startNode(v,d);var f=o[h-1];t=this.finalize(c,new u.BinaryExpression(f,o[h-2],t));h-=2;p=v}}return t};Parser.prototype.parseConditionalExpression=function(){var e=this.lookahead;var t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=true;var i=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r;this.expect(":");var n=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new u.ConditionalExpression(t,i,n));this.context.isAssignmentTarget=false;this.context.isBindingElement=false}return t};Parser.prototype.checkPatternParam=function(e,t){switch(t.type){case o.Syntax.Identifier:this.validateParam(e,t,t.name);break;case o.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case o.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case o.Syntax.ArrayPattern:for(var r=0;r")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false;var n=e.async;var s=this.reinterpretAsCoverFormalsList(e);if(s){if(this.hasLineTerminator){this.tolerateUnexpectedToken(this.lookahead)}this.context.firstCoverInitializedNameError=null;var l=this.context.strict;var c=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var h=this.context.allowYield;var p=this.context.await;this.context.allowYield=true;this.context.await=n;var v=this.startNode(t);this.expect("=>");var d=void 0;if(this.match("{")){var D=this.context.allowIn;this.context.allowIn=true;d=this.parseFunctionSourceElements();this.context.allowIn=D}else{d=this.isolateCoverGrammar(this.parseAssignmentExpression)}var m=d.type!==o.Syntax.BlockStatement;if(this.context.strict&&s.firstRestricted){this.throwUnexpectedToken(s.firstRestricted,s.message)}if(this.context.strict&&s.stricted){this.tolerateUnexpectedToken(s.stricted,s.message)}e=n?this.finalize(v,new u.AsyncArrowFunctionExpression(s.params,d,m)):this.finalize(v,new u.ArrowFunctionExpression(s.params,d,m));this.context.strict=l;this.context.allowStrictDirective=c;this.context.allowYield=h;this.context.await=p}}else{if(this.matchAssign()){if(!this.context.isAssignmentTarget){this.tolerateError(a.Messages.InvalidLHSInAssignment)}if(this.context.strict&&e.type===o.Syntax.Identifier){var g=e;if(this.scanner.isRestrictedWord(g.name)){this.tolerateUnexpectedToken(r,a.Messages.StrictLHSAssignment)}if(this.scanner.isStrictModeReservedWord(g.name)){this.tolerateUnexpectedToken(r,a.Messages.StrictReservedWord)}}if(!this.match("=")){this.context.isAssignmentTarget=false;this.context.isBindingElement=false}else{this.reinterpretExpressionAsPattern(e)}r=this.nextToken();var E=r.value;var A=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new u.AssignmentExpression(E,e,A));this.context.firstCoverInitializedNameError=null}}}return e};Parser.prototype.parseExpression=function(){var e=this.lookahead;var t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];r.push(t);while(this.lookahead.type!==2){if(!this.match(",")){break}this.nextToken();r.push(this.isolateCoverGrammar(this.parseAssignmentExpression))}t=this.finalize(this.startNode(e),new u.SequenceExpression(r))}return t};Parser.prototype.parseStatementListItem=function(){var e;this.context.isAssignmentTarget=true;this.context.isBindingElement=true;if(this.lookahead.type===4){switch(this.lookahead.value){case"export":if(!this.context.isModule){this.tolerateUnexpectedToken(this.lookahead,a.Messages.IllegalExportDeclaration)}e=this.parseExportDeclaration();break;case"import":if(!this.context.isModule){this.tolerateUnexpectedToken(this.lookahead,a.Messages.IllegalImportDeclaration)}e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:false});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:false}):this.parseStatement();break;default:e=this.parseStatement();break}}else{e=this.parseStatement()}return e};Parser.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");var t=[];while(true){if(this.match("}")){break}t.push(this.parseStatementListItem())}this.expect("}");return this.finalize(e,new u.BlockStatement(t))};Parser.prototype.parseLexicalBinding=function(e,t){var r=this.createNode();var i=[];var n=this.parsePattern(i,e);if(this.context.strict&&n.type===o.Syntax.Identifier){if(this.scanner.isRestrictedWord(n.name)){this.tolerateError(a.Messages.StrictVarName)}}var s=null;if(e==="const"){if(!this.matchKeyword("in")&&!this.matchContextualKeyword("of")){if(this.match("=")){this.nextToken();s=this.isolateCoverGrammar(this.parseAssignmentExpression)}else{this.throwError(a.Messages.DeclarationMissingInitializer,"const")}}}else if(!t.inFor&&n.type!==o.Syntax.Identifier||this.match("=")){this.expect("=");s=this.isolateCoverGrammar(this.parseAssignmentExpression)}return this.finalize(r,new u.VariableDeclarator(n,s))};Parser.prototype.parseBindingList=function(e,t){var r=[this.parseLexicalBinding(e,t)];while(this.match(",")){this.nextToken();r.push(this.parseLexicalBinding(e,t))}return r};Parser.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();this.scanner.restoreState(e);return t.type===3||t.type===7&&t.value==="["||t.type===7&&t.value==="{"||t.type===4&&t.value==="let"||t.type===4&&t.value==="yield"};Parser.prototype.parseLexicalDeclaration=function(e){var t=this.createNode();var r=this.nextToken().value;i.assert(r==="let"||r==="const","Lexical declaration must be either let or const");var n=this.parseBindingList(r,e);this.consumeSemicolon();return this.finalize(t,new u.VariableDeclaration(n,r))};Parser.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var i=this.parsePattern(e,t);return this.finalize(r,new u.RestElement(i))};Parser.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");var i=[];while(!this.match("]")){if(this.match(",")){this.nextToken();i.push(null)}else{if(this.match("...")){i.push(this.parseBindingRestElement(e,t));break}else{i.push(this.parsePatternWithDefault(e,t))}if(!this.match("]")){this.expect(",")}}}this.expect("]");return this.finalize(r,new u.ArrayPattern(i))};Parser.prototype.parsePropertyPattern=function(e,t){var r=this.createNode();var i=false;var n=false;var a=false;var s;var o;if(this.lookahead.type===3){var l=this.lookahead;s=this.parseVariableIdentifier();var f=this.finalize(r,new u.Identifier(l.value));if(this.match("=")){e.push(l);n=true;this.nextToken();var c=this.parseAssignmentExpression();o=this.finalize(this.startNode(l),new u.AssignmentPattern(f,c))}else if(!this.match(":")){e.push(l);n=true;o=f}else{this.expect(":");o=this.parsePatternWithDefault(e,t)}}else{i=this.match("[");s=this.parseObjectPropertyKey();this.expect(":");o=this.parsePatternWithDefault(e,t)}return this.finalize(r,new u.Property("init",s,i,o,a,n))};Parser.prototype.parseObjectPattern=function(e,t){var r=this.createNode();var i=[];this.expect("{");while(!this.match("}")){i.push(this.parsePropertyPattern(e,t));if(!this.match("}")){this.expect(",")}}this.expect("}");return this.finalize(r,new u.ObjectPattern(i))};Parser.prototype.parsePattern=function(e,t){var r;if(this.match("[")){r=this.parseArrayPattern(e,t)}else if(this.match("{")){r=this.parseObjectPattern(e,t)}else{if(this.matchKeyword("let")&&(t==="const"||t==="let")){this.tolerateUnexpectedToken(this.lookahead,a.Messages.LetInLexicalBinding)}e.push(this.lookahead);r=this.parseVariableIdentifier(t)}return r};Parser.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead;var i=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var n=this.context.allowYield;this.context.allowYield=true;var a=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=n;i=this.finalize(this.startNode(r),new u.AssignmentPattern(i,a))}return i};Parser.prototype.parseVariableIdentifier=function(e){var t=this.createNode();var r=this.nextToken();if(r.type===4&&r.value==="yield"){if(this.context.strict){this.tolerateUnexpectedToken(r,a.Messages.StrictReservedWord)}else if(!this.context.allowYield){this.throwUnexpectedToken(r)}}else if(r.type!==3){if(this.context.strict&&r.type===4&&this.scanner.isStrictModeReservedWord(r.value)){this.tolerateUnexpectedToken(r,a.Messages.StrictReservedWord)}else{if(this.context.strict||r.value!=="let"||e!=="var"){this.throwUnexpectedToken(r)}}}else if((this.context.isModule||this.context.await)&&r.type===3&&r.value==="await"){this.tolerateUnexpectedToken(r)}return this.finalize(t,new u.Identifier(r.value))};Parser.prototype.parseVariableDeclaration=function(e){var t=this.createNode();var r=[];var i=this.parsePattern(r,"var");if(this.context.strict&&i.type===o.Syntax.Identifier){if(this.scanner.isRestrictedWord(i.name)){this.tolerateError(a.Messages.StrictVarName)}}var n=null;if(this.match("=")){this.nextToken();n=this.isolateCoverGrammar(this.parseAssignmentExpression)}else if(i.type!==o.Syntax.Identifier&&!e.inFor){this.expect("=")}return this.finalize(t,new u.VariableDeclarator(i,n))};Parser.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor};var r=[];r.push(this.parseVariableDeclaration(t));while(this.match(",")){this.nextToken();r.push(this.parseVariableDeclaration(t))}return r};Parser.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:false});this.consumeSemicolon();return this.finalize(e,new u.VariableDeclaration(t,"var"))};Parser.prototype.parseEmptyStatement=function(){var e=this.createNode();this.expect(";");return this.finalize(e,new u.EmptyStatement)};Parser.prototype.parseExpressionStatement=function(){var e=this.createNode();var t=this.parseExpression();this.consumeSemicolon();return this.finalize(e,new u.ExpressionStatement(t))};Parser.prototype.parseIfClause=function(){if(this.context.strict&&this.matchKeyword("function")){this.tolerateError(a.Messages.StrictFunction)}return this.parseStatement()};Parser.prototype.parseIfStatement=function(){var e=this.createNode();var t;var r=null;this.expectKeyword("if");this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());t=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");t=this.parseIfClause();if(this.matchKeyword("else")){this.nextToken();r=this.parseIfClause()}}return this.finalize(e,new u.IfStatement(i,t,r))};Parser.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=true;var r=this.parseStatement();this.context.inIteration=t;this.expectKeyword("while");this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken())}else{this.expect(")");if(this.match(";")){this.nextToken()}}return this.finalize(e,new u.DoWhileStatement(r,i))};Parser.prototype.parseWhileStatement=function(){var e=this.createNode();var t;this.expectKeyword("while");this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());t=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");var i=this.context.inIteration;this.context.inIteration=true;t=this.parseStatement();this.context.inIteration=i}return this.finalize(e,new u.WhileStatement(r,t))};Parser.prototype.parseForStatement=function(){var e=null;var t=null;var r=null;var i=true;var n,s;var l=this.createNode();this.expectKeyword("for");this.expect("(");if(this.match(";")){this.nextToken()}else{if(this.matchKeyword("var")){e=this.createNode();this.nextToken();var f=this.context.allowIn;this.context.allowIn=false;var c=this.parseVariableDeclarationList({inFor:true});this.context.allowIn=f;if(c.length===1&&this.matchKeyword("in")){var h=c[0];if(h.init&&(h.id.type===o.Syntax.ArrayPattern||h.id.type===o.Syntax.ObjectPattern||this.context.strict)){this.tolerateError(a.Messages.ForInOfLoopInitializer,"for-in")}e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.nextToken();n=e;s=this.parseExpression();e=null}else if(c.length===1&&c[0].init===null&&this.matchContextualKeyword("of")){e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.nextToken();n=e;s=this.parseAssignmentExpression();e=null;i=false}else{e=this.finalize(e,new u.VariableDeclaration(c,"var"));this.expect(";")}}else if(this.matchKeyword("const")||this.matchKeyword("let")){e=this.createNode();var p=this.nextToken().value;if(!this.context.strict&&this.lookahead.value==="in"){e=this.finalize(e,new u.Identifier(p));this.nextToken();n=e;s=this.parseExpression();e=null}else{var f=this.context.allowIn;this.context.allowIn=false;var c=this.parseBindingList(p,{inFor:true});this.context.allowIn=f;if(c.length===1&&c[0].init===null&&this.matchKeyword("in")){e=this.finalize(e,new u.VariableDeclaration(c,p));this.nextToken();n=e;s=this.parseExpression();e=null}else if(c.length===1&&c[0].init===null&&this.matchContextualKeyword("of")){e=this.finalize(e,new u.VariableDeclaration(c,p));this.nextToken();n=e;s=this.parseAssignmentExpression();e=null;i=false}else{this.consumeSemicolon();e=this.finalize(e,new u.VariableDeclaration(c,p))}}}else{var v=this.lookahead;var f=this.context.allowIn;this.context.allowIn=false;e=this.inheritCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=f;if(this.matchKeyword("in")){if(!this.context.isAssignmentTarget||e.type===o.Syntax.AssignmentExpression){this.tolerateError(a.Messages.InvalidLHSInForIn)}this.nextToken();this.reinterpretExpressionAsPattern(e);n=e;s=this.parseExpression();e=null}else if(this.matchContextualKeyword("of")){if(!this.context.isAssignmentTarget||e.type===o.Syntax.AssignmentExpression){this.tolerateError(a.Messages.InvalidLHSInForLoop)}this.nextToken();this.reinterpretExpressionAsPattern(e);n=e;s=this.parseAssignmentExpression();e=null;i=false}else{if(this.match(",")){var d=[e];while(this.match(",")){this.nextToken();d.push(this.isolateCoverGrammar(this.parseAssignmentExpression))}e=this.finalize(this.startNode(v),new u.SequenceExpression(d))}this.expect(";")}}}if(typeof n==="undefined"){if(!this.match(";")){t=this.parseExpression()}this.expect(";");if(!this.match(")")){r=this.parseExpression()}}var D;if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());D=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");var m=this.context.inIteration;this.context.inIteration=true;D=this.isolateCoverGrammar(this.parseStatement);this.context.inIteration=m}return typeof n==="undefined"?this.finalize(l,new u.ForStatement(e,t,r,D)):i?this.finalize(l,new u.ForInStatement(n,s,D)):this.finalize(l,new u.ForOfStatement(n,s,D))};Parser.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();t=r;var i="$"+r.name;if(!Object.prototype.hasOwnProperty.call(this.context.labelSet,i)){this.throwError(a.Messages.UnknownLabel,r.name)}}this.consumeSemicolon();if(t===null&&!this.context.inIteration){this.throwError(a.Messages.IllegalContinue)}return this.finalize(e,new u.ContinueStatement(t))};Parser.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();var i="$"+r.name;if(!Object.prototype.hasOwnProperty.call(this.context.labelSet,i)){this.throwError(a.Messages.UnknownLabel,r.name)}t=r}this.consumeSemicolon();if(t===null&&!this.context.inIteration&&!this.context.inSwitch){this.throwError(a.Messages.IllegalBreak)}return this.finalize(e,new u.BreakStatement(t))};Parser.prototype.parseReturnStatement=function(){if(!this.context.inFunctionBody){this.tolerateError(a.Messages.IllegalReturn)}var e=this.createNode();this.expectKeyword("return");var t=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==2||this.lookahead.type===8||this.lookahead.type===10;var r=t?this.parseExpression():null;this.consumeSemicolon();return this.finalize(e,new u.ReturnStatement(r))};Parser.prototype.parseWithStatement=function(){if(this.context.strict){this.tolerateError(a.Messages.StrictModeWith)}var e=this.createNode();var t;this.expectKeyword("with");this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant){this.tolerateUnexpectedToken(this.nextToken());t=this.finalize(this.createNode(),new u.EmptyStatement)}else{this.expect(")");t=this.parseStatement()}return this.finalize(e,new u.WithStatement(r,t))};Parser.prototype.parseSwitchCase=function(){var e=this.createNode();var t;if(this.matchKeyword("default")){this.nextToken();t=null}else{this.expectKeyword("case");t=this.parseExpression()}this.expect(":");var r=[];while(true){if(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case")){break}r.push(this.parseStatementListItem())}return this.finalize(e,new u.SwitchCase(t,r))};Parser.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch");this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=true;var i=[];var n=false;this.expect("{");while(true){if(this.match("}")){break}var s=this.parseSwitchCase();if(s.test===null){if(n){this.throwError(a.Messages.MultipleDefaultsInSwitch)}n=true}i.push(s)}this.expect("}");this.context.inSwitch=r;return this.finalize(e,new u.SwitchStatement(t,i))};Parser.prototype.parseLabelledStatement=function(){var e=this.createNode();var t=this.parseExpression();var r;if(t.type===o.Syntax.Identifier&&this.match(":")){this.nextToken();var i=t;var n="$"+i.name;if(Object.prototype.hasOwnProperty.call(this.context.labelSet,n)){this.throwError(a.Messages.Redeclaration,"Label",i.name)}this.context.labelSet[n]=true;var s=void 0;if(this.matchKeyword("class")){this.tolerateUnexpectedToken(this.lookahead);s=this.parseClassDeclaration()}else if(this.matchKeyword("function")){var l=this.lookahead;var f=this.parseFunctionDeclaration();if(this.context.strict){this.tolerateUnexpectedToken(l,a.Messages.StrictFunction)}else if(f.generator){this.tolerateUnexpectedToken(l,a.Messages.GeneratorInLegacyContext)}s=f}else{s=this.parseStatement()}delete this.context.labelSet[n];r=new u.LabeledStatement(i,s)}else{this.consumeSemicolon();r=new u.ExpressionStatement(t)}return this.finalize(e,r)};Parser.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw");if(this.hasLineTerminator){this.throwError(a.Messages.NewlineAfterThrow)}var t=this.parseExpression();this.consumeSemicolon();return this.finalize(e,new u.ThrowStatement(t))};Parser.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch");this.expect("(");if(this.match(")")){this.throwUnexpectedToken(this.lookahead)}var t=[];var r=this.parsePattern(t);var i={};for(var n=0;n0){this.tolerateError(a.Messages.BadGetterArity)}var n=this.parsePropertyMethod(i);this.context.allowYield=r;return this.finalize(e,new u.FunctionExpression(null,i.params,n,t))};Parser.prototype.parseSetterMethod=function(){var e=this.createNode();var t=false;var r=this.context.allowYield;this.context.allowYield=!t;var i=this.parseFormalParameters();if(i.params.length!==1){this.tolerateError(a.Messages.BadSetterArity)}else if(i.params[0]instanceof u.RestElement){this.tolerateError(a.Messages.BadSetterRestParameter)}var n=this.parsePropertyMethod(i);this.context.allowYield=r;return this.finalize(e,new u.FunctionExpression(null,i.params,n,t))};Parser.prototype.parseGeneratorMethod=function(){var e=this.createNode();var t=true;var r=this.context.allowYield;this.context.allowYield=true;var i=this.parseFormalParameters();this.context.allowYield=false;var n=this.parsePropertyMethod(i);this.context.allowYield=r;return this.finalize(e,new u.FunctionExpression(null,i.params,n,t))};Parser.prototype.isStartOfExpression=function(){var e=true;var t=this.lookahead.value;switch(this.lookahead.type){case 7:e=t==="["||t==="("||t==="{"||t==="+"||t==="-"||t==="!"||t==="~"||t==="++"||t==="--"||t==="/"||t==="/=";break;case 4:e=t==="class"||t==="delete"||t==="function"||t==="let"||t==="new"||t==="super"||t==="this"||t==="typeof"||t==="void"||t==="yield";break;default:break}return e};Parser.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null;var r=false;if(!this.hasLineTerminator){var i=this.context.allowYield;this.context.allowYield=false;r=this.match("*");if(r){this.nextToken();t=this.parseAssignmentExpression()}else if(this.isStartOfExpression()){t=this.parseAssignmentExpression()}this.context.allowYield=i}return this.finalize(e,new u.YieldExpression(t,r))};Parser.prototype.parseClassElement=function(e){var t=this.lookahead;var r=this.createNode();var i="";var n=null;var s=null;var o=false;var l=false;var f=false;var c=false;if(this.match("*")){this.nextToken()}else{o=this.match("[");n=this.parseObjectPropertyKey();var h=n;if(h.name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))){t=this.lookahead;f=true;o=this.match("[");if(this.match("*")){this.nextToken()}else{n=this.parseObjectPropertyKey()}}if(t.type===3&&!this.hasLineTerminator&&t.value==="async"){var p=this.lookahead.value;if(p!==":"&&p!=="("&&p!=="*"){c=true;t=this.lookahead;n=this.parseObjectPropertyKey();if(t.type===3&&t.value==="constructor"){this.tolerateUnexpectedToken(t,a.Messages.ConstructorIsAsync)}}}}var v=this.qualifiedPropertyName(this.lookahead);if(t.type===3){if(t.value==="get"&&v){i="get";o=this.match("[");n=this.parseObjectPropertyKey();this.context.allowYield=false;s=this.parseGetterMethod()}else if(t.value==="set"&&v){i="set";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseSetterMethod()}}else if(t.type===7&&t.value==="*"&&v){i="init";o=this.match("[");n=this.parseObjectPropertyKey();s=this.parseGeneratorMethod();l=true}if(!i&&n&&this.match("(")){i="init";s=c?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction();l=true}if(!i){this.throwUnexpectedToken(this.lookahead)}if(i==="init"){i="method"}if(!o){if(f&&this.isPropertyKey(n,"prototype")){this.throwUnexpectedToken(t,a.Messages.StaticPrototype)}if(!f&&this.isPropertyKey(n,"constructor")){if(i!=="method"||!l||s&&s.generator){this.throwUnexpectedToken(t,a.Messages.ConstructorSpecialMethod)}if(e.value){this.throwUnexpectedToken(t,a.Messages.DuplicateConstructor)}else{e.value=true}i="constructor"}}return this.finalize(r,new u.MethodDefinition(n,o,s,i,f))};Parser.prototype.parseClassElementList=function(){var e=[];var t={value:false};this.expect("{");while(!this.match("}")){if(this.match(";")){this.nextToken()}else{e.push(this.parseClassElement(t))}}this.expect("}");return e};Parser.prototype.parseClassBody=function(){var e=this.createNode();var t=this.parseClassElementList();return this.finalize(e,new u.ClassBody(t))};Parser.prototype.parseClassDeclaration=function(e){var t=this.createNode();var r=this.context.strict;this.context.strict=true;this.expectKeyword("class");var i=e&&this.lookahead.type!==3?null:this.parseVariableIdentifier();var n=null;if(this.matchKeyword("extends")){this.nextToken();n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall)}var a=this.parseClassBody();this.context.strict=r;return this.finalize(t,new u.ClassDeclaration(i,n,a))};Parser.prototype.parseClassExpression=function(){var e=this.createNode();var t=this.context.strict;this.context.strict=true;this.expectKeyword("class");var r=this.lookahead.type===3?this.parseVariableIdentifier():null;var i=null;if(this.matchKeyword("extends")){this.nextToken();i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall)}var n=this.parseClassBody();this.context.strict=t;return this.finalize(e,new u.ClassExpression(r,i,n))};Parser.prototype.parseModule=function(){this.context.strict=true;this.context.isModule=true;this.scanner.isModule=true;var e=this.createNode();var t=this.parseDirectivePrologues();while(this.lookahead.type!==2){t.push(this.parseStatementListItem())}return this.finalize(e,new u.Module(t))};Parser.prototype.parseScript=function(){var e=this.createNode();var t=this.parseDirectivePrologues();while(this.lookahead.type!==2){t.push(this.parseStatementListItem())}return this.finalize(e,new u.Script(t))};Parser.prototype.parseModuleSpecifier=function(){var e=this.createNode();if(this.lookahead.type!==8){this.throwError(a.Messages.InvalidModuleSpecifier)}var t=this.nextToken();var r=this.getTokenRaw(t);return this.finalize(e,new u.Literal(t.value,r))};Parser.prototype.parseImportSpecifier=function(){var e=this.createNode();var t;var r;if(this.lookahead.type===3){t=this.parseVariableIdentifier();r=t;if(this.matchContextualKeyword("as")){this.nextToken();r=this.parseVariableIdentifier()}}else{t=this.parseIdentifierName();r=t;if(this.matchContextualKeyword("as")){this.nextToken();r=this.parseVariableIdentifier()}else{this.throwUnexpectedToken(this.nextToken())}}return this.finalize(e,new u.ImportSpecifier(r,t))};Parser.prototype.parseNamedImports=function(){this.expect("{");var e=[];while(!this.match("}")){e.push(this.parseImportSpecifier());if(!this.match("}")){this.expect(",")}}this.expect("}");return e};Parser.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode();var t=this.parseIdentifierName();return this.finalize(e,new u.ImportDefaultSpecifier(t))};Parser.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*");if(!this.matchContextualKeyword("as")){this.throwError(a.Messages.NoAsAfterImportNamespace)}this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new u.ImportNamespaceSpecifier(t))};Parser.prototype.parseImportDeclaration=function(){if(this.context.inFunctionBody){this.throwError(a.Messages.IllegalImportDeclaration)}var e=this.createNode();this.expectKeyword("import");var t;var r=[];if(this.lookahead.type===8){t=this.parseModuleSpecifier()}else{if(this.match("{")){r=r.concat(this.parseNamedImports())}else if(this.match("*")){r.push(this.parseImportNamespaceSpecifier())}else if(this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")){r.push(this.parseImportDefaultSpecifier());if(this.match(",")){this.nextToken();if(this.match("*")){r.push(this.parseImportNamespaceSpecifier())}else if(this.match("{")){r=r.concat(this.parseNamedImports())}else{this.throwUnexpectedToken(this.lookahead)}}}else{this.throwUnexpectedToken(this.nextToken())}if(!this.matchContextualKeyword("from")){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();t=this.parseModuleSpecifier()}this.consumeSemicolon();return this.finalize(e,new u.ImportDeclaration(r,t))};Parser.prototype.parseExportSpecifier=function(){var e=this.createNode();var t=this.parseIdentifierName();var r=t;if(this.matchContextualKeyword("as")){this.nextToken();r=this.parseIdentifierName()}return this.finalize(e,new u.ExportSpecifier(t,r))};Parser.prototype.parseExportDeclaration=function(){if(this.context.inFunctionBody){this.throwError(a.Messages.IllegalExportDeclaration)}var e=this.createNode();this.expectKeyword("export");var t;if(this.matchKeyword("default")){this.nextToken();if(this.matchKeyword("function")){var r=this.parseFunctionDeclaration(true);t=this.finalize(e,new u.ExportDefaultDeclaration(r))}else if(this.matchKeyword("class")){var r=this.parseClassDeclaration(true);t=this.finalize(e,new u.ExportDefaultDeclaration(r))}else if(this.matchContextualKeyword("async")){var r=this.matchAsyncFunction()?this.parseFunctionDeclaration(true):this.parseAssignmentExpression();t=this.finalize(e,new u.ExportDefaultDeclaration(r))}else{if(this.matchContextualKeyword("from")){this.throwError(a.Messages.UnexpectedToken,this.lookahead.value)}var r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon();t=this.finalize(e,new u.ExportDefaultDeclaration(r))}}else if(this.match("*")){this.nextToken();if(!this.matchContextualKeyword("from")){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();var n=this.parseModuleSpecifier();this.consumeSemicolon();t=this.finalize(e,new u.ExportAllDeclaration(n))}else if(this.lookahead.type===4){var r=void 0;switch(this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:false});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new u.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction()){var r=this.parseFunctionDeclaration();t=this.finalize(e,new u.ExportNamedDeclaration(r,[],null))}else{var s=[];var o=null;var l=false;this.expect("{");while(!this.match("}")){l=l||this.matchKeyword("default");s.push(this.parseExportSpecifier());if(!this.match("}")){this.expect(",")}}this.expect("}");if(this.matchContextualKeyword("from")){this.nextToken();o=this.parseModuleSpecifier();this.consumeSemicolon()}else if(l){var i=this.lookahead.value?a.Messages.UnexpectedToken:a.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}else{this.consumeSemicolon()}t=this.finalize(e,new u.ExportNamedDeclaration(null,s,o))}return t};return Parser}();t.Parser=c},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});function assert(e,t){if(!e){throw new Error("ASSERT: "+t)}}t.assert=assert},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r=function(){function ErrorHandler(){this.errors=[];this.tolerant=false}ErrorHandler.prototype.recordError=function(e){this.errors.push(e)};ErrorHandler.prototype.tolerate=function(e){if(this.tolerant){this.recordError(e)}else{throw e}};ErrorHandler.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(e){if(Object.create&&Object.defineProperty){r=Object.create(e);Object.defineProperty(r,"column",{value:t})}}return r};ErrorHandler.prototype.createError=function(e,t,r,i){var n="Line "+t+": "+i;var a=this.constructError(n,r);a.index=e;a.lineNumber=t;a.description=i;return a};ErrorHandler.prototype.throwError=function(e,t,r,i){throw this.createError(e,t,r,i)};ErrorHandler.prototype.tolerateError=function(e,t,r,i){var n=this.createError(e,t,r,i);if(this.tolerant){this.recordError(n)}else{throw n}};return ErrorHandler}();t.ErrorHandler=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:true});var i=r(9);var n=r(4);var a=r(11);function hexValue(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function octalValue(e){return"01234567".indexOf(e)}var u=function(){function Scanner(e,t){this.source=e;this.errorHandler=t;this.trackComment=false;this.isModule=false;this.length=e.length;this.index=0;this.lineNumber=e.length>0?1:0;this.lineStart=0;this.curlyStack=[]}Scanner.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}};Scanner.prototype.restoreState=function(e){this.index=e.index;this.lineNumber=e.lineNumber;this.lineStart=e.lineStart};Scanner.prototype.eof=function(){return this.index>=this.length};Scanner.prototype.throwUnexpectedToken=function(e){if(e===void 0){e=a.Messages.UnexpectedTokenIllegal}return this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)};Scanner.prototype.tolerateUnexpectedToken=function(e){if(e===void 0){e=a.Messages.UnexpectedTokenIllegal}this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)};Scanner.prototype.skipSingleLineComment=function(e){var t=[];var r,i;if(this.trackComment){t=[];r=this.index-e;i={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}}}while(!this.eof()){var a=this.source.charCodeAt(this.index);++this.index;if(n.Character.isLineTerminator(a)){if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart-1};var u={multiLine:false,slice:[r+e,this.index-1],range:[r,this.index-1],loc:i};t.push(u)}if(a===13&&this.source.charCodeAt(this.index)===10){++this.index}++this.lineNumber;this.lineStart=this.index;return t}}if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart};var u={multiLine:false,slice:[r+e,this.index],range:[r,this.index],loc:i};t.push(u)}return t};Scanner.prototype.skipMultiLineComment=function(){var e=[];var t,r;if(this.trackComment){e=[];t=this.index-2;r={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}}}while(!this.eof()){var i=this.source.charCodeAt(this.index);if(n.Character.isLineTerminator(i)){if(i===13&&this.source.charCodeAt(this.index+1)===10){++this.index}++this.lineNumber;++this.index;this.lineStart=this.index}else if(i===42){if(this.source.charCodeAt(this.index+1)===47){this.index+=2;if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var a={multiLine:true,slice:[t+2,this.index-2],range:[t,this.index],loc:r};e.push(a)}return e}++this.index}else{++this.index}}if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var a={multiLine:true,slice:[t+2,this.index],range:[t,this.index],loc:r};e.push(a)}this.tolerateUnexpectedToken();return e};Scanner.prototype.scanComments=function(){var e;if(this.trackComment){e=[]}var t=this.index===0;while(!this.eof()){var r=this.source.charCodeAt(this.index);if(n.Character.isWhiteSpace(r)){++this.index}else if(n.Character.isLineTerminator(r)){++this.index;if(r===13&&this.source.charCodeAt(this.index)===10){++this.index}++this.lineNumber;this.lineStart=this.index;t=true}else if(r===47){r=this.source.charCodeAt(this.index+1);if(r===47){this.index+=2;var i=this.skipSingleLineComment(2);if(this.trackComment){e=e.concat(i)}t=true}else if(r===42){this.index+=2;var i=this.skipMultiLineComment();if(this.trackComment){e=e.concat(i)}}else{break}}else if(t&&r===45){if(this.source.charCodeAt(this.index+1)===45&&this.source.charCodeAt(this.index+2)===62){this.index+=3;var i=this.skipSingleLineComment(3);if(this.trackComment){e=e.concat(i)}}else{break}}else if(r===60&&!this.isModule){if(this.source.slice(this.index+1,this.index+4)==="!--"){this.index+=4;var i=this.skipSingleLineComment(4);if(this.trackComment){e=e.concat(i)}}else{break}}else{break}}return e};Scanner.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return true;default:return false}};Scanner.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return true;default:return false}};Scanner.prototype.isRestrictedWord=function(e){return e==="eval"||e==="arguments"};Scanner.prototype.isKeyword=function(e){switch(e.length){case 2:return e==="if"||e==="in"||e==="do";case 3:return e==="var"||e==="for"||e==="new"||e==="try"||e==="let";case 4:return e==="this"||e==="else"||e==="case"||e==="void"||e==="with"||e==="enum";case 5:return e==="while"||e==="break"||e==="catch"||e==="throw"||e==="const"||e==="yield"||e==="class"||e==="super";case 6:return e==="return"||e==="typeof"||e==="delete"||e==="switch"||e==="export"||e==="import";case 7:return e==="default"||e==="finally"||e==="extends";case 8:return e==="function"||e==="continue"||e==="debugger";case 10:return e==="instanceof";default:return false}};Scanner.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);if(r>=56320&&r<=57343){var i=t;t=(i-55296)*1024+r-56320+65536}}return t};Scanner.prototype.scanHexEscape=function(e){var t=e==="u"?4:2;var r=0;for(var i=0;i1114111||e!=="}"){this.throwUnexpectedToken()}return n.Character.fromCodePoint(t)};Scanner.prototype.getIdentifier=function(){var e=this.index++;while(!this.eof()){var t=this.source.charCodeAt(this.index);if(t===92){this.index=e;return this.getComplexIdentifier()}else if(t>=55296&&t<57343){this.index=e;return this.getComplexIdentifier()}if(n.Character.isIdentifierPart(t)){++this.index}else{break}}return this.source.slice(e,this.index)};Scanner.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index);var t=n.Character.fromCodePoint(e);this.index+=t.length;var r;if(e===92){if(this.source.charCodeAt(this.index)!==117){this.throwUnexpectedToken()}++this.index;if(this.source[this.index]==="{"){++this.index;r=this.scanUnicodeCodePointEscape()}else{r=this.scanHexEscape("u");if(r===null||r==="\\"||!n.Character.isIdentifierStart(r.charCodeAt(0))){this.throwUnexpectedToken()}}t=r}while(!this.eof()){e=this.codePointAt(this.index);if(!n.Character.isIdentifierPart(e)){break}r=n.Character.fromCodePoint(e);t+=r;this.index+=r.length;if(e===92){t=t.substr(0,t.length-1);if(this.source.charCodeAt(this.index)!==117){this.throwUnexpectedToken()}++this.index;if(this.source[this.index]==="{"){++this.index;r=this.scanUnicodeCodePointEscape()}else{r=this.scanHexEscape("u");if(r===null||r==="\\"||!n.Character.isIdentifierPart(r.charCodeAt(0))){this.throwUnexpectedToken()}}t+=r}}return t};Scanner.prototype.octalToDecimal=function(e){var t=e!=="0";var r=octalValue(e);if(!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))){t=true;r=r*8+octalValue(this.source[this.index++]);if("0123".indexOf(e)>=0&&!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))){r=r*8+octalValue(this.source[this.index++])}}return{code:r,octal:t}};Scanner.prototype.scanIdentifier=function(){var e;var t=this.index;var r=this.source.charCodeAt(t)===92?this.getComplexIdentifier():this.getIdentifier();if(r.length===1){e=3}else if(this.isKeyword(r)){e=4}else if(r==="null"){e=5}else if(r==="true"||r==="false"){e=1}else{e=3}if(e!==3&&t+r.length!==this.index){var i=this.index;this.index=t;this.tolerateUnexpectedToken(a.Messages.InvalidEscapedReservedWord);this.index=i}return{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}};Scanner.prototype.scanPunctuator=function(){var e=this.index;var t=this.source[this.index];switch(t){case"(":case"{":if(t==="{"){this.curlyStack.push("{")}++this.index;break;case".":++this.index;if(this.source[this.index]==="."&&this.source[this.index+1]==="."){this.index+=2;t="..."}break;case"}":++this.index;this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:t=this.source.substr(this.index,4);if(t===">>>="){this.index+=4}else{t=t.substr(0,3);if(t==="==="||t==="!=="||t===">>>"||t==="<<="||t===">>="||t==="**="){this.index+=3}else{t=t.substr(0,2);if(t==="&&"||t==="||"||t==="=="||t==="!="||t==="+="||t==="-="||t==="*="||t==="/="||t==="++"||t==="--"||t==="<<"||t===">>"||t==="&="||t==="|="||t==="^="||t==="%="||t==="<="||t===">="||t==="=>"||t==="**"){this.index+=2}else{t=this.source[this.index];if("<>=!+-*%&|^/".indexOf(t)>=0){++this.index}}}}}if(this.index===e){this.throwUnexpectedToken()}return{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanHexLiteral=function(e){var t="";while(!this.eof()){if(!n.Character.isHexDigit(this.source.charCodeAt(this.index))){break}t+=this.source[this.index++]}if(t.length===0){this.throwUnexpectedToken()}if(n.Character.isIdentifierStart(this.source.charCodeAt(this.index))){this.throwUnexpectedToken()}return{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanBinaryLiteral=function(e){var t="";var r;while(!this.eof()){r=this.source[this.index];if(r!=="0"&&r!=="1"){break}t+=this.source[this.index++]}if(t.length===0){this.throwUnexpectedToken()}if(!this.eof()){r=this.source.charCodeAt(this.index);if(n.Character.isIdentifierStart(r)||n.Character.isDecimalDigit(r)){this.throwUnexpectedToken()}}return{type:6,value:parseInt(t,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}};Scanner.prototype.scanOctalLiteral=function(e,t){var r="";var i=false;if(n.Character.isOctalDigit(e.charCodeAt(0))){i=true;r="0"+this.source[this.index++]}else{++this.index}while(!this.eof()){if(!n.Character.isOctalDigit(this.source.charCodeAt(this.index))){break}r+=this.source[this.index++]}if(!i&&r.length===0){this.throwUnexpectedToken()}if(n.Character.isIdentifierStart(this.source.charCodeAt(this.index))||n.Character.isDecimalDigit(this.source.charCodeAt(this.index))){this.throwUnexpectedToken()}return{type:6,value:parseInt(r,8),octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}};Scanner.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0){i=i.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,t,i){var u=parseInt(t||i,16);if(u>1114111){n.throwUnexpectedToken(a.Messages.InvalidRegExp)}if(u<=65535){return String.fromCharCode(u)}return r}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,r)}try{RegExp(i)}catch(e){this.throwUnexpectedToken(a.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}};Scanner.prototype.scanRegExpBody=function(){var e=this.source[this.index];i.assert(e==="/","Regular expression literal must start with a slash");var t=this.source[this.index++];var r=false;var u=false;while(!this.eof()){e=this.source[this.index++];t+=e;if(e==="\\"){e=this.source[this.index++];if(n.Character.isLineTerminator(e.charCodeAt(0))){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}t+=e}else if(n.Character.isLineTerminator(e.charCodeAt(0))){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}else if(r){if(e==="]"){r=false}}else{if(e==="/"){u=true;break}else if(e==="["){r=true}}}if(!u){this.throwUnexpectedToken(a.Messages.UnterminatedRegExp)}return t.substr(1,t.length-2)};Scanner.prototype.scanRegExpFlags=function(){var e="";var t="";while(!this.eof()){var r=this.source[this.index];if(!n.Character.isIdentifierPart(r.charCodeAt(0))){break}++this.index;if(r==="\\"&&!this.eof()){r=this.source[this.index];if(r==="u"){++this.index;var i=this.index;var a=this.scanHexEscape("u");if(a!==null){t+=a;for(e+="\\u";i=55296&&e<57343){if(n.Character.isIdentifierStart(this.codePointAt(this.index))){return this.scanIdentifier()}}return this.scanPunctuator()};return Scanner}();t.Scanner=u},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.TokenName={};t.TokenName[1]="Boolean";t.TokenName[2]="";t.TokenName[3]="Identifier";t.TokenName[4]="Keyword";t.TokenName[5]="Null";t.TokenName[6]="Numeric";t.TokenName[7]="Punctuator";t.TokenName[8]="String";t.TokenName[9]="RegularExpression";t.TokenName[10]="Template"},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:true});var i=r(10);var n=r(12);var a=r(13);var u=function(){function Reader(){this.values=[];this.curly=this.paren=-1}Reader.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0};Reader.prototype.isRegexStart=function(){var e=this.values[this.values.length-1];var t=e!==null;switch(e){case"this":case"]":t=false;break;case")":var r=this.values[this.paren-1];t=r==="if"||r==="while"||r==="for"||r==="with";break;case"}":t=false;if(this.values[this.curly-3]==="function"){var i=this.values[this.curly-4];t=i?!this.beforeFunctionExpression(i):false}else if(this.values[this.curly-4]==="function"){var i=this.values[this.curly-5];t=i?!this.beforeFunctionExpression(i):true}break;default:break}return t};Reader.prototype.push=function(e){if(e.type===7||e.type===4){if(e.value==="{"){this.curly=this.values.length}else if(e.value==="("){this.paren=this.values.length}this.values.push(e.value)}else{this.values.push(null)}};return Reader}();var s=function(){function Tokenizer(e,t){this.errorHandler=new i.ErrorHandler;this.errorHandler.tolerant=t?typeof t.tolerant==="boolean"&&t.tolerant:false;this.scanner=new n.Scanner(e,this.errorHandler);this.scanner.trackComment=t?typeof t.comment==="boolean"&&t.comment:false;this.trackRange=t?typeof t.range==="boolean"&&t.range:false;this.trackLoc=t?typeof t.loc==="boolean"&&t.loc:false;this.buffer=[];this.reader=new u}Tokenizer.prototype.errors=function(){return this.errorHandler.errors};Tokenizer.prototype.getNextToken=function(){if(this.buffer.length===0){var e=this.scanner.scanComments();if(this.scanner.trackComment){for(var t=0;tt){if(e.charAt(r-1)!==" "){break}r--}return r}},,function(e,t,r){"use strict";var i=r(347)("unified-engine:file-pipeline:stringify");var n=r(928);var a=r(212);e.exports=stringify;function stringify(e,t){var r=e.processor;var u=e.tree;var s;if(n(t).fatal){i("Not compiling failed document");return}if(!e.output&&!e.out&&!e.alwaysStringify){i("Not compiling document without output settings");return}i("Compiling `%s`",t.path);if(e.inspect){if(t.path){t.extname=".txt"}s=a[e.color?"color":"noColor"](u)+"\n"}else if(e.treeOut){if(t.path){t.extname=".json"}s=JSON.stringify(u,null,2)+"\n"}else{s=r.stringify(u,t)}t.contents=s;i("Compiled document")}},,,function(e,t,r){"use strict";const i=r(624);e.exports=(e=>typeof e==="string"?e.replace(i(),""):e)},,function(e,t,r){"use strict";var i=r(260);function Mark(e,t,r,i,n){this.name=e;this.buffer=t;this.position=r;this.line=i;this.column=n}Mark.prototype.getSnippet=function getSnippet(e,t){var r,n,a,u,s;if(!this.buffer)return null;e=e||4;t=t||75;r="";n=this.position;while(n>0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(n-1))===-1){n-=1;if(this.position-n>t/2-1){r=" ... ";n+=5;break}}a="";u=this.position;while(ut/2-1){a=" ... ";u-=5;break}}s=this.buffer.slice(n,u);return i.repeat(" ",e)+r+s+a+"\n"+i.repeat(" ",e+this.position-n+r.length)+"^"};Mark.prototype.toString=function toString(e){var t,r="";if(this.name){r+='in "'+this.name+'" '}r+="at line "+(this.line+1)+", column "+(this.column+1);if(!e){t=this.getSnippet();if(t){r+=":\n"+t}}return r};e.exports=Mark},function(e,t,r){var i=r(148);var n=function(){};var a=r(405);e.exports=wrapped;function wrapped(e){function wrap(){var t=i(arguments);var r=t[t.length-1];var u=this;var s=typeof r=="function"?t.pop():n;if(!e){return s.apply(u,[null].concat(t))}if(generator(e)){return a(e).apply(u,t.concat(s))}if(e.length>t.length){try{return e.apply(u,t.concat(s))}catch(e){return s(e)}}return sync(e,s).apply(u,t)}return wrap}function sync(e,t){return function(){var r;try{r=e.apply(this,arguments)}catch(e){return t(e)}if(promise(r)){r.then(function(e){t(null,e)},t)}else{r instanceof Error?t(r):t(null,r)}}}function generator(e){return e&&e.constructor&&"GeneratorFunction"==e.constructor.name}function promise(e){return e&&"function"==typeof e.then}},,,,,,,,function(e,t,r){"use strict";var i=r(495);e.exports=i("remark-lint:no-file-name-articles",noFileNameArticles);function noFileNameArticles(e,t){var r=t.stem&&t.stem.match(/^(the|teh|an?)\b/i);if(r){t.message("Do not start file names with `"+r[0]+"`")}}},,,function(e,t,r){"use strict";var i=r(171);e.exports=newline;var n="\n";function newline(e,t,r){var a=t.charAt(0);var u;var s;var o;var l;if(a!==n){return}if(r){return true}l=1;u=t.length;s=a;o="";while(l{if(typeof e!=="string"||e.length===0){return 0}e=i(e);let t=0;for(let r=0;r=127&&i<=159){continue}if(i>=768&&i<=879){continue}if(i>65535){r++}t+=n(i)?2:1}return t})},,,,function(e){e.exports=require("stream")},,,,function(e){"use strict";e.exports=function isObject(e){return typeof e==="object"&&e!==null}},,function(e,t,r){"use strict";e.exports={position:true,gfm:true,commonmark:false,footnotes:false,pedantic:false,blocks:r(676)}},,,function(e,t,r){"use strict";var i=r(211);var n=Object.prototype.toString;function resolveYamlPairs(e){if(e===null)return true;var t,r,i,a,u,s=e;u=new Array(s.length);for(t=0,r=s.length;t=0){t=t.slice(1)}if(t===".inf"){return r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY}else if(t===".nan"){return NaN}else if(t.indexOf(":")>=0){t.split(":").forEach(function(e){n.unshift(parseFloat(e,10))});t=0;i=1;n.forEach(function(e){t+=e*i;i*=60});return r*t}return r*parseFloat(t,10)}var u=/^[-+]?[0-9]+e/;function representYamlFloat(e,t){var r;if(isNaN(e)){switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}}else if(Number.POSITIVE_INFINITY===e){switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}}else if(Number.NEGATIVE_INFINITY===e){switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}}else if(i.isNegativeZero(e)){return"-0.0"}r=e.toString(10);return u.test(r)?r.replace("e",".e"):r}function isFloat(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||i.isNegativeZero(e))}e.exports=new n("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"})},,function(e,t,r){"use strict";const i=r(947);e.exports=((e,t,r)=>{if(typeof t==="number"){r=t}if(i.has(e.toLowerCase())){t=i.get(e.toLowerCase());const r=e.charAt(0);const n=r===r.toUpperCase();if(n){t=r.toUpperCase()+t.slice(1)}const a=e===e.toUpperCase();if(a){t=t.toUpperCase()}}else if(typeof t!=="string"){t=(e.replace(/(?:s|x|z|ch|sh)$/i,"$&e").replace(/([^aeiou])y$/i,"$1ie")+"s").replace(/i?e?s$/i,t=>{const r=e.slice(-1)===e.slice(-1).toLowerCase();return r?t.toLowerCase():t.toUpperCase()})}return Math.abs(r)===1?e:t})},function(e,t,r){"use strict";var i=r(814);e.exports=pad;var n="\n";var a=" ";var u=4;function pad(e,t){var r=e.split(n);var s=r.length;var o=i(a,t*u);while(s--){if(r[s].length!==0){r[s]=o+r[s]}}return r.join(n)}},,,,function(e){e.exports=function(e,t){return e.replace(/(\\*)(\$([_a-z0-9]+)|\${([_a-z0-9]+)})/gi,function(e,r,i,n,a){if(!(r.length%2)){return r.substring(Math.ceil(r.length/2))+(t[n||a]||"")}else{return r.substring(1)+i}})}},,,,function(e,t,r){"use strict";var i=r(211);var n=Object.prototype.hasOwnProperty;function resolveYamlSet(e){if(e===null)return true;var t,r=e;for(t in r){if(n.call(r,t)){if(r[t]!==null)return false}}return true}function constructYamlSet(e){return e!==null?e:{}}e.exports=new i("tag:yaml.org,2002:set",{kind:"mapping",resolve:resolveYamlSet,construct:constructYamlSet})},function(e){if(typeof Object.create==="function"){e.exports=function inherits(e,t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}else{e.exports=function inherits(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype;e.prototype=new r;e.prototype.constructor=e}}},,,,,function(e){var t=Object.prototype.toString;var r=typeof Buffer.alloc==="function"&&typeof Buffer.allocUnsafe==="function"&&typeof Buffer.from==="function";function isArrayBuffer(e){return t.call(e).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(e,t,i){t>>>=0;var n=e.byteLength-t;if(n<0){throw new RangeError("'offset' is out of bounds")}if(i===undefined){i=n}else{i>>>=0;if(i>n){throw new RangeError("'length' is out of bounds")}}return r?Buffer.from(e.slice(t,t+i)):new Buffer(new Uint8Array(e.slice(t,t+i)))}function fromString(e,t){if(typeof t!=="string"||t===""){t="utf8"}if(!Buffer.isEncoding(t)){throw new TypeError('"encoding" must be a valid string encoding')}return r?Buffer.from(e,t):new Buffer(e,t)}function bufferFrom(e,t,i){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,t,i)}if(typeof e==="string"){return fromString(e,t)}return r?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},,function(e){e.exports={AEli:"Æ",AElig:"Æ",AM:"&",AMP:"&",Aacut:"Á",Aacute:"Á",Abreve:"Ă",Acir:"Â",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrav:"À",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Arin:"Å",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atild:"Ã",Atilde:"Ã",Aum:"Ä",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COP:"©",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedi:"Ç",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ET:"Ð",ETH:"Ð",Eacut:"É",Eacute:"É",Ecaron:"Ě",Ecir:"Ê",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrav:"È",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Eum:"Ë",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",G:">",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacut:"Í",Iacute:"Í",Icir:"Î",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrav:"Ì",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Ium:"Ï",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",L:"<",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntild:"Ñ",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacut:"Ó",Oacute:"Ó",Ocir:"Ô",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograv:"Ò",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslas:"Ø",Oslash:"Ø",Otild:"Õ",Otilde:"Õ",Otimes:"⨷",Oum:"Ö",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUO:'"',QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",RE:"®",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THOR:"Þ",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacut:"Ú",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucir:"Û",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrav:"Ù",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uum:"Ü",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacut:"Ý",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacut:"á",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acir:"â",acirc:"â",acut:"´",acute:"´",acy:"а",aeli:"æ",aelig:"æ",af:"⁡",afr:"𝔞",agrav:"à",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",am:"&",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",arin:"å",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atild:"ã",atilde:"ã",aum:"ä",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvba:"¦",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedi:"ç",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedi:"¸",cedil:"¸",cemptyv:"⦲",cen:"¢",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",cop:"©",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curre:"¤",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",de:"°",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divid:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacut:"é",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"ê",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrav:"è",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",et:"ð",eth:"ð",eum:"ë",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac1:"¼",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac3:"¾",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",g:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacut:"í",iacute:"í",ic:"⁣",icir:"î",icirc:"î",icy:"и",iecy:"е",iexc:"¡",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrav:"ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iques:"¿",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",ium:"ï",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laqu:"«",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",l:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",mac:"¯",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micr:"µ",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middo:"·",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbs:" ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",no:"¬",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntild:"ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacut:"ó",oacute:"ó",oast:"⊛",ocir:"ô",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograv:"ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"º",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslas:"ø",oslash:"ø",osol:"⊘",otild:"õ",otilde:"õ",otimes:"⊗",otimesas:"⨶",oum:"ö",ouml:"ö",ovbar:"⌽",par:"¶",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusm:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",poun:"£",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quo:'"',quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raqu:"»",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",re:"®",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sec:"§",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",sh:"­",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szli:"ß",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thor:"þ",thorn:"þ",tilde:"˜",time:"×",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacut:"ú",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucir:"û",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrav:"ù",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",um:"¨",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uum:"ü",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacut:"ý",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",ye:"¥",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yum:"ÿ",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},function(e,t,r){const i=r(287);const n=r(809);const a={parse:i,stringify:n};e.exports=a},,function(e){"use strict";e.exports=interrupt;function interrupt(e,t,r,i){var n=e.length;var a=-1;var u;var s;while(++a>0},ToUint32:function(e){return e>>>0}}}();var u=Math.LN2,s=Math.abs,o=Math.floor,l=Math.log,f=Math.min,c=Math.pow,h=Math.round;function configureProperties(e){if(v&&p){var t=v(e),r;for(r=0;rn)throw new RangeError("Array too large for polyfill");function makeArrayAccessor(t){p(e,t,{get:function(){return e._getter(t)},set:function(r){e._setter(t,r)},enumerable:true,configurable:false})}var t;for(t=0;t>r}function as_unsigned(e,t){var r=32-t;return e<>>r}function packI8(e){return[e&255]}function unpackI8(e){return as_signed(e[0],8)}function packU8(e){return[e&255]}function unpackU8(e){return as_unsigned(e[0],8)}function packU8Clamped(e){e=h(Number(e));return[e<0?0:e>255?255:e&255]}function packI16(e){return[e>>8&255,e&255]}function unpackI16(e){return as_signed(e[0]<<8|e[1],16)}function packU16(e){return[e>>8&255,e&255]}function unpackU16(e){return as_unsigned(e[0]<<8|e[1],16)}function packI32(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}function unpackI32(e){return as_signed(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function packU32(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}function unpackU32(e){return as_unsigned(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function packIEEE754(e,t,r){var i=(1<.5)return t+1;return t%2?t+1:t}if(e!==e){a=(1<=c(2,1-i)){a=f(o(l(e)/u),1023);h=roundToEven(e/c(2,a)*c(2,r));if(h/c(2,r)>=2){a=a+1;h=1}if(a>i){a=(1<>1}}i.reverse();s=i.join("");o=(1<0){return l*c(2,f-o)*(1+h/c(2,r))}else if(h!==0){return l*c(2,-(o-1))*(h/c(2,r))}else{return l<0?-0:0}}function unpackF64(e){return unpackIEEE754(e,11,52)}function packF64(e){return packIEEE754(e,11,52)}function unpackF32(e){return unpackIEEE754(e,8,23)}function packF32(e){return packIEEE754(e,8,23)}(function(){var e=function ArrayBuffer(e){e=a.ToInt32(e);if(e<0)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=e;this._bytes=[];this._bytes.length=e;var t;for(t=0;tthis.buffer.byteLength){throw new RangeError("byteOffset out of range")}if(this.byteOffset%this.BYTES_PER_ELEMENT){throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.")}if(arguments.length<3){this.byteLength=this.buffer.byteLength-this.byteOffset;if(this.byteLength%this.BYTES_PER_ELEMENT){throw new RangeError("length of buffer minus byteOffset not a multiple of the element size")}this.length=this.byteLength/this.BYTES_PER_ELEMENT}else{this.length=a.ToUint32(i);this.byteLength=this.length*this.BYTES_PER_ELEMENT}if(this.byteOffset+this.byteLength>this.buffer.byteLength){throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}}else{throw new TypeError("Unexpected argument type(s)")}this.constructor=s;configureProperties(this);makeArrayAccessors(this)};s.prototype=new r;s.prototype.BYTES_PER_ELEMENT=t;s.prototype._pack=n;s.prototype._unpack=u;s.BYTES_PER_ELEMENT=t;s.prototype._getter=function(e){if(arguments.length<1)throw new SyntaxError("Not enough arguments");e=a.ToUint32(e);if(e>=this.length){return i}var t=[],r,n;for(r=0,n=this.byteOffset+e*this.BYTES_PER_ELEMENT;r=this.length){return i}var r=this._pack(t),n,u;for(n=0,u=this.byteOffset+e*this.BYTES_PER_ELEMENT;nthis.length){throw new RangeError("Offset plus length of array is out of range")}f=this.byteOffset+n*this.BYTES_PER_ELEMENT;c=r.length*this.BYTES_PER_ELEMENT;if(r.buffer===this.buffer){h=[];for(s=0,o=r.byteOffset;sthis.length){throw new RangeError("Offset plus length of array is out of range")}for(s=0;sr?r:e}e=a.ToInt32(e);t=a.ToInt32(t);if(arguments.length<1){e=0}if(arguments.length<2){t=this.length}if(e<0){e=this.length+e}if(t<0){t=this.length+t}e=clamp(e,0,this.length);t=clamp(t,0,this.length);var r=t-e;if(r<0){r=0}return new this.constructor(this.buffer,this.byteOffset+e*this.BYTES_PER_ELEMENT,r)};return s}var n=makeConstructor(1,packI8,unpackI8);var u=makeConstructor(1,packU8,unpackU8);var s=makeConstructor(1,packU8Clamped,unpackU8);var o=makeConstructor(2,packI16,unpackI16);var l=makeConstructor(2,packU16,unpackU16);var f=makeConstructor(4,packI32,unpackI32);var c=makeConstructor(4,packU32,unpackU32);var h=makeConstructor(4,packF32,unpackF32);var p=makeConstructor(8,packF64,unpackF64);t.Int8Array=t.Int8Array||n;t.Uint8Array=t.Uint8Array||u;t.Uint8ClampedArray=t.Uint8ClampedArray||s;t.Int16Array=t.Int16Array||o;t.Uint16Array=t.Uint16Array||l;t.Int32Array=t.Int32Array||f;t.Uint32Array=t.Uint32Array||c;t.Float32Array=t.Float32Array||h;t.Float64Array=t.Float64Array||p})();(function(){function r(e,t){return a.IsCallable(e.get)?e.get(t):e[t]}var e=function(){var e=new t.Uint16Array([4660]),i=new t.Uint8Array(e.buffer);return r(i,0)===18}();var i=function DataView(e,r,i){if(arguments.length===0){e=new t.ArrayBuffer(0)}else if(!(e instanceof t.ArrayBuffer||a.Class(e)==="ArrayBuffer")){throw new TypeError("TypeError")}this.buffer=e||new t.ArrayBuffer(0);this.byteOffset=a.ToUint32(r);if(this.byteOffset>this.buffer.byteLength){throw new RangeError("byteOffset out of range")}if(arguments.length<3){this.byteLength=this.buffer.byteLength-this.byteOffset}else{this.byteLength=a.ToUint32(i)}if(this.byteOffset+this.byteLength>this.buffer.byteLength){throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}configureProperties(this)};function makeGetter(i){return function(n,u){n=a.ToUint32(n);if(n+i.BYTES_PER_ELEMENT>this.byteLength){throw new RangeError("Array index out of range")}n+=this.byteOffset;var s=new t.Uint8Array(this.buffer,n,i.BYTES_PER_ELEMENT),o=[],l;for(l=0;lthis.byteLength){throw new RangeError("Array index out of range")}var o=new i([u]),l=new t.Uint8Array(o.buffer),f=[],c,h;for(c=0;c=e.length?e.length:n+r;t.message+=` while parsing near '${i===0?"":"..."}${e.slice(i,a)}${a===e.length?"":"..."}'`}else{t.message+=` while parsing '${e.slice(0,r*2)}'`}throw t}}},,function(e){"use strict";e.exports=function isArrayish(e){if(!e){return false}return e instanceof Array||Array.isArray(e)||e.length>=0&&e.splice instanceof Function}},,,function(e){"use strict";e.exports=strikethrough;var t="~";var r=t+t;function strikethrough(e){return r+this.all(e).join("")+r}},,function(e,t,r){"use strict";var i=r(495);var n=r(704);var a=r(682);var u=r(839);var s=r(526);e.exports=i("remark-lint:no-heading-indent",noHeadingIndent);var o=u.start;function noHeadingIndent(e,t){var r=String(t);var i=r.length;a(e,"heading",visitor);function visitor(e){var a;var u;var l;var f;var c;if(s(e)){return}a=o(e);u=a.offset;l=u-1;while(++l-1&&r.charAt(i)!=="\n"){t.message("Missing newline character at end of file")}}},,,function(e,t,r){"use strict";var i=r(171);var n=r(111);e.exports=strikethrough;strikethrough.locator=n;var a="~";var u="~~";function strikethrough(e,t,r){var n=this;var s="";var o="";var l="";var f="";var c;var h;var p;if(!n.options.gfm||t.charAt(0)!==a||t.charAt(1)!==a||i(t.charAt(2))){return}c=1;h=t.length;p=e.now();p.column+=2;p.offset+=2;while(++c?@[\\\]^`{|}~_]/;function copy(e,t){var r=e.length;var u=t.length;var s=[];var o=0;var l=0;var f;while(l0){r=Math.min(10,Math.floor(r));o=" ".substr(0,r)}}else if(typeof r==="string"){o=r.substr(0,10)}return serializeProperty("",{"":e});function serializeProperty(e,t){let r=t[e];if(r!=null){if(typeof r.toJSON5==="function"){r=r.toJSON5(e)}else if(typeof r.toJSON==="function"){r=r.toJSON(e)}}if(s){r=s.call(t,e,r)}if(r instanceof Number){r=Number(r)}else if(r instanceof String){r=String(r)}else if(r instanceof Boolean){r=r.valueOf()}switch(r){case null:return"null";case true:return"true";case false:return"false"}if(typeof r==="string"){return quoteString(r,false)}if(typeof r==="number"){return String(r)}if(typeof r==="object"){return Array.isArray(r)?serializeArray(r):serializeObject(r)}return undefined}function quoteString(e){const t={"'":.1,'"':.2};const r={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let n="";for(let a=0;at[e]=0){throw TypeError("Converting circular structure to JSON5")}n.push(e);let t=a;a=a+o;let r=u||Object.keys(e);let i=[];for(const t of r){const r=serializeProperty(t,e);if(r!==undefined){let e=serializeKey(t)+":";if(o!==""){e+=" "}e+=r;i.push(e)}}let s;if(i.length===0){s="{}"}else{let e;if(o===""){e=i.join(",");s="{"+e+"}"}else{let r=",\n"+a;e=i.join(r);s="{\n"+a+e+",\n"+t+"}"}}n.pop();a=t;return s}function serializeKey(e){if(e.length===0){return quoteString(e,true)}const t=String.fromCodePoint(e.codePointAt(0));if(!i.isIdStartChar(t)){return quoteString(e,true)}for(let r=t.length;r=0){throw TypeError("Converting circular structure to JSON5")}n.push(e);let t=a;a=a+o;let r=[];for(let t=0;t=n){return t.substr(0,n)}while(n>t.length&&i>1){if(i&1){t+=e}i>>=1;e+=e}t+=e;t=t.substr(0,n);return t}},,function(e,t,r){"use strict";var i=r(495);var n=r(839);var a=r(526);var u=r(135);var s=r(682);e.exports=i("remark-lint:no-duplicate-definitions",noDuplicateDefinitions);var o="Do not use definitions with the same identifier";function noDuplicateDefinitions(e,t){var r={};s(e,["definition","footnoteDefinition"],validate);function validate(e){var i;var s;if(!a(e)){i=e.identifier;s=r[i];if(s&&s.type){t.message(o+" ("+u(n.start(s))+")",e)}r[i]=e}}}},function(e){"use strict";e.exports=is;function is(e,t,r,i,n){var a=i!==null&&i!==undefined;var u=r!==null&&r!==undefined;var s=convert(e);if(u&&(typeof r!=="number"||r<0||r===Infinity)){throw new Error("Expected positive finite index or child node")}if(a&&(!is(null,i)||!i.children)){throw new Error("Expected parent node")}if(!t||!t.type||typeof t.type!=="string"){return false}if(a!==u){throw new Error("Expected both parent and index")}return Boolean(s.call(n,t,r,i))}function convert(e){if(typeof e==="string"){return typeFactory(e)}if(e===null||e===undefined){return ok}if(typeof e==="object"){return("length"in e?anyFactory:matchesFactory)(e)}if(typeof e==="function"){return e}throw new Error("Expected function, string, or object as test")}function convertAll(e){var t=[];var r=e.length;var i=-1;while(++i=u){v--;break}d+=g}D="";m="";while(++v{t=t||process.argv;const r=e.startsWith("-")?"":e.length===1?"-":"--";const i=t.indexOf(r+e);const n=t.indexOf("--");return i!==-1&&(n===-1?true:i0){s="Remove "+u+" "+n("line",u)+" "+(a>0?"before":"after")+" node";t.message(s,r)}}function visitChild(e,t,r){var i=r[t-1];var n=2;if(i&&!s(i)&&!s(e)){if(i.type==="list"&&e.type==="list"||e.type==="code"&&i.type==="list"&&!e.lang){n++}compare(u.end(i),u.start(e),n)}}}},,function(e,t,r){"use strict";var i=r(123);var n=r(341);var a=r(627);var u=r(406);var s=r(803);var o=r(647);e.exports=i().use(n).use(a).use(u).use(s).use(o)},,function(e,t,r){"use strict";var i=r(495);var n=r(704);var a=r(682);var u=r(839);var s=r(526);e.exports=i("remark-lint:list-item-bullet-indent",listItemBulletIndent);var o=u.start;function listItemBulletIndent(e,t){var r=String(t);a(e,"list",visitor);function visitor(e){e.children.forEach(visitItems)}function visitItems(e){var i;var a;var u;if(!s(e)){i=o(e.children[0]);a=r.slice(o(e).offset,i.offset).match(/^\s*/)[0].length;if(a!==0){u="Incorrect indentation before bullet: remove "+a+" "+n("space",a);t.message(u,{line:i.line,column:i.column-a})}}}}},function(e){e.exports=function(e,t){if(!t)t={};var r=t.hsep===undefined?" ":t.hsep;var i=t.align||[];var n=t.stringLength||function(e){return String(e).length};var a=reduce(e,function(e,t){forEach(t,function(t,r){var i=dotindex(t);if(!e[r]||i>e[r])e[r]=i});return e},[]);var u=map(e,function(e){return map(e,function(e,t){var r=String(e);if(i[t]==="."){var u=dotindex(r);var s=a[t]+(/\./.test(r)?1:2)-(n(r)-u);return r+Array(s).join(" ")}else return r})});var s=reduce(u,function(e,t){forEach(t,function(t,r){var i=n(t);if(!e[r]||i>e[r])e[r]=i});return e},[]);return map(u,function(e){return map(e,function(e,t){var r=s[t]-n(e)||0;var a=Array(Math.max(r+1,1)).join(" ");if(i[t]==="r"||i[t]==="."){return a+e}if(i[t]==="c"){return Array(Math.ceil(r/2+1)).join(" ")+e+Array(Math.floor(r/2+1)).join(" ")}return e+a}).join(r).replace(/\s+$/,"")}).join("\n")};function dotindex(e){var t=/\.[^.]*$/.exec(e);return t?t.index+1:e.length}function reduce(e,t,r){if(e.reduce)return e.reduce(t,r);var i=0;var n=arguments.length>=3?r:e[i++];for(;ir&&a0?"add":"remove")+" "+Math.abs(h)+" "+n("space",h);t.message(p,s)}}}}},,,,,function(e,t,r){"use strict";var i=r(721);e.exports=decodeEntity;var n={}.hasOwnProperty;function decodeEntity(e){return n.call(i,e)?i[e]:false}},function(e,t,r){"use strict";var i=r(495);var n=r(682);var a=r(839);var u=r(526);e.exports=i("remark-lint:definition-spacing",definitionSpacing);var s=/^\s*\[((?:\\[\s\S]|[^[\]])+)]/;var o="Do not use consecutive white-space in definition labels";function definitionSpacing(e,t){var r=String(t);n(e,["definition","footnoteDefinition"],validate);function validate(e){var i=a.start(e).offset;var n=a.end(e).offset;if(!u(e)&&/[ \t\n]{2,}/.test(r.slice(i,n).match(s)[1])){t.message(o,e)}}}},function(e,t,r){"use strict";var i=r(336);var n=r(780);e.exports=unherit;function unherit(e){var t;var r;var a;n(Of,e);n(From,Of);t=Of.prototype;for(r in t){a=t[r];if(a&&typeof a==="object"){t[r]="concat"in a?a.concat():i(a)}}return Of;function From(t){return e.apply(this,t)}function Of(){if(!(this instanceof Of)){return new From(arguments)}return e.apply(this,arguments)}}},function(e){"use strict";const t=e=>{let t=false;let r=false;let i=false;for(let n=0;n{if(!(typeof e==="string"||Array.isArray(e))){throw new TypeError("Expected the input to be `string | string[]`")}r=Object.assign({pascalCase:false},r);const i=e=>r.pascalCase?e.charAt(0).toUpperCase()+e.slice(1):e;if(Array.isArray(e)){e=e.map(e=>e.trim()).filter(e=>e.length).join("-")}else{e=e.trim()}if(e.length===0){return""}if(e.length===1){return r.pascalCase?e.toUpperCase():e.toLowerCase()}const n=e!==e.toLowerCase();if(n){e=t(e)}e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(e,t)=>t.toUpperCase()).replace(/\d+(\w|$)/g,e=>e.toUpperCase());return i(e)};e.exports=r;e.exports.default=r},,function(e,t,r){"use strict";var i=r(211);function resolveYamlMerge(e){return e==="<<"||e===null}e.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge})},function(e){"use strict";e.exports={gfm:true,commonmark:false,pedantic:false,entities:"false",setext:false,closeAtx:false,looseTable:false,spacedTable:true,paddedTable:true,stringLength:stringLength,incrementListMarker:true,fences:false,fence:"`",bullet:"-",listItemIndent:"tab",rule:"*",ruleSpaces:true,ruleRepetition:3,strong:"*",emphasis:"_"};function stringLength(e){return e.length}},function(e,t,r){"use strict";var i=r(197);var n=r(520);var a=r(439);var u=r(25);var s=r(908);var o=r(895);e.exports=parseEntities;var l={}.hasOwnProperty;var f=String.fromCharCode;var c=Function.prototype;var h={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:false,nonTerminated:true};var p="named";var v="hexadecimal";var d="decimal";var D={};D[v]=16;D[d]=10;var m={};m[p]=s;m[d]=a;m[v]=u;var g=1;var E=2;var A=3;var C=4;var y=5;var w=6;var x=7;var b={};b[g]="Named character references must be terminated by a semicolon";b[E]="Numeric character references must be terminated by a semicolon";b[A]="Named character references cannot be empty";b[C]="Numeric character references cannot be empty";b[y]="Named character references must be known";b[w]="Numeric character references cannot be disallowed";b[x]="Numeric character references cannot be outside the permissible Unicode range";function parseEntities(e,t){var r={};var i;var n;if(!t){t={}}for(n in h){i=t[n];r[n]=i===null||i===undefined?h[n]:i}if(r.position.indent||r.position.start){r.indent=r.position.indent||[];r.position=r.position.start}return parse(e,r)}function parse(e,t){var r=t.additional;var a=t.nonTerminated;var u=t.text;var h=t.reference;var F=t.warning;var S=t.textContext;var B=t.referenceContext;var k=t.warningContext;var O=t.position;var P=t.indent||[];var T=e.length;var I=0;var M=-1;var L=O.column||1;var R=O.line||1;var j="";var U=[];var N;var J;var z;var X;var G;var q;var W;var _;var V;var Y;var H;var $;var Z;var Q;var K;var ee;var te;var re;var ie;ee=now();_=F?parseError:c;I--;T++;while(++I65535){q-=65536;Y+=f(q>>>(10&1023)|55296);q=56320|q&1023}q=Y+f(q)}}if(!q){X=e.slice(Z-1,ie);j+=X;L+=X.length;I=ie-1}else{flush();ee=now();I=ie-1;L+=ie-Z+1;U.push(q);te=now();te.offset++;if(h){h.call(B,q,{start:ee,end:te},e.slice(Z-1,ie))}ee=te}}}return U.join("");function now(){return{line:R,column:L,offset:I+(O.offset||0)}}function parseError(e,t){var r=now();r.column+=t;r.offset+=t;F.call(k,b[e],r,e)}function at(t){return e.charAt(t)}function flush(){if(j){U.push(j);if(u){u.call(S,j,{start:ee,end:now()})}j=""}}}function prohibited(e){return e>=55296&&e<=57343||e>1114111}function disallowed(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}},,,function(e,t,r){"use strict";var i=r(36);var n=r(116);var a=r(171);var u=r(82);e.exports=emphasis;emphasis.locator=u;var s="*";var o="_";var l="\\";function emphasis(e,t,r){var u=this;var f=0;var c=t.charAt(f);var h;var p;var v;var d;var D;var m;var g;if(c!==s&&c!==o){return}p=u.options.pedantic;D=c;v=c;m=t.length;f++;d="";c="";if(p&&a(t.charAt(f))){return}while(f0){if(typeof t!=="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==l.prototype){t=_uint8ArrayToBuffer(t)}if(i){if(a.endEmitted)e.emit("error",new Error("stream.unshift() after end event"));else addChunk(e,a,t,true)}else if(a.ended){e.emit("error",new Error("stream.push() after EOF"))}else{a.reading=false;if(a.decoder&&!r){t=a.decoder.write(t);if(a.objectMode||t.length!==0)addChunk(e,a,t,false);else maybeReadMore(e,a)}else{addChunk(e,a,t,false)}}}else if(!i){a.reading=false}}return needMoreData(a)}function addChunk(e,t,r,i){if(t.flowing&&t.length===0&&!t.sync){e.emit("data",r);e.read(0)}else{t.length+=t.objectMode?1:r.length;if(i)t.buffer.unshift(r);else t.buffer.push(r);if(t.needReadable)emitReadable(e)}maybeReadMore(e,t)}function chunkInvalid(e,t){var r;if(!_isUint8Array(t)&&typeof t!=="string"&&t!==undefined&&!e.objectMode){r=new TypeError("Invalid non-string/buffer chunk")}return r}function needMoreData(e){return!e.ended&&(e.needReadable||e.length=g){e=g}else{e--;e|=e>>>1;e|=e>>>2;e|=e>>>4;e|=e>>>8;e|=e>>>16;e++}return e}function howMuchToRead(e,t){if(e<=0||t.length===0&&t.ended)return 0;if(t.objectMode)return 1;if(e!==e){if(t.flowing&&t.length)return t.buffer.head.data.length;else return t.length}if(e>t.highWaterMark)t.highWaterMark=computeNewHighWaterMark(e);if(e<=t.length)return e;if(!t.ended){t.needReadable=true;return 0}return t.length}Readable.prototype.read=function(e){p("read",e);e=parseInt(e,10);var t=this._readableState;var r=e;if(e!==0)t.emittedReadable=false;if(e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended)){p("read: emitReadable",t.length,t.ended);if(t.length===0&&t.ended)endReadable(this);else emitReadable(this);return null}e=howMuchToRead(e,t);if(e===0&&t.ended){if(t.length===0)endReadable(this);return null}var i=t.needReadable;p("need readable",i);if(t.length===0||t.length-e0)n=fromList(e,t);else n=null;if(n===null){t.needReadable=true;e=0}else{t.length-=e}if(t.length===0){if(!t.ended)t.needReadable=true;if(r!==e&&t.ended)endReadable(this)}if(n!==null)this.emit("data",n);return n};function onEofChunk(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();if(r&&r.length){t.buffer.push(r);t.length+=t.objectMode?1:r.length}}t.ended=true;emitReadable(e)}function emitReadable(e){var t=e._readableState;t.needReadable=false;if(!t.emittedReadable){p("emitReadable",t.flowing);t.emittedReadable=true;if(t.sync)i.nextTick(emitReadable_,e);else emitReadable_(e)}}function emitReadable_(e){p("emit readable");e.emit("readable");flow(e)}function maybeReadMore(e,t){if(!t.readingMore){t.readingMore=true;i.nextTick(maybeReadMore_,e,t)}}function maybeReadMore_(e,t){var r=t.length;while(!t.reading&&!t.flowing&&!t.ended&&t.length1&&indexOf(n.pipes,e)!==-1)&&!l){p("false write response, pause",r._readableState.awaitDrain);r._readableState.awaitDrain++;f=true}r.pause()}}function onerror(t){p("onerror",t);unpipe();e.removeListener("error",onerror);if(s(e,"error")===0)e.emit("error",t)}prependListener(e,"error",onerror);function onclose(){e.removeListener("finish",onfinish);unpipe()}e.once("close",onclose);function onfinish(){p("onfinish");e.removeListener("close",onclose);unpipe()}e.once("finish",onfinish);function unpipe(){p("unpipe");r.unpipe(e)}e.emit("pipe",r);if(!n.flowing){p("pipe resume");r.resume()}return e};function pipeOnDrain(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain);if(t.awaitDrain)t.awaitDrain--;if(t.awaitDrain===0&&s(e,"data")){t.flowing=true;flow(e)}}}Readable.prototype.unpipe=function(e){var t=this._readableState;var r={hasUnpiped:false};if(t.pipesCount===0)return this;if(t.pipesCount===1){if(e&&e!==t.pipes)return this;if(!e)e=t.pipes;t.pipes=null;t.pipesCount=0;t.flowing=false;if(e)e.emit("unpipe",this,r);return this}if(!e){var i=t.pipes;var n=t.pipesCount;t.pipes=null;t.pipesCount=0;t.flowing=false;for(var a=0;a=t.length){if(t.decoder)r=t.buffer.join("");else if(t.buffer.length===1)r=t.buffer.head.data;else r=t.buffer.concat(t.length);t.buffer.clear()}else{r=fromListPartial(e,t.buffer,t.decoder)}return r}function fromListPartial(e,t,r){var i;if(ea.length?a.length:e;if(u===a.length)n+=a;else n+=a.slice(0,e);e-=u;if(e===0){if(u===a.length){++i;if(r.next)t.head=r.next;else t.head=t.tail=null}else{t.head=r;r.data=a.slice(u)}break}++i}t.length-=i;return n}function copyFromBuffer(e,t){var r=l.allocUnsafe(e);var i=t.head;var n=1;i.data.copy(r);e-=i.data.length;while(i=i.next){var a=i.data;var u=e>a.length?a.length:e;a.copy(r,r.length-e,0,u);e-=u;if(e===0){if(u===a.length){++n;if(i.next)t.head=i.next;else t.head=t.tail=null}else{t.head=i;i.data=a.slice(u)}break}++n}t.length-=n;return r}function endReadable(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');if(!t.endEmitted){t.ended=true;i.nextTick(endReadableNT,t,e)}}function endReadableNT(e,t){if(!e.endEmitted&&e.length===0){e.endEmitted=true;t.readable=false;t.emit("end")}}function indexOf(e,t){for(var r=0,i=e.length;r=f){continue}y="";while(v=2){t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}t.inspectOpts=Object.keys(process.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,t){var r=t.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,t){return t.toUpperCase()});var i=process.env[t];if(/^(yes|on|true|enabled)$/i.test(i)){i=true}else if(/^(no|off|false|disabled)$/i.test(i)){i=false}else if(i==="null"){i=null}else{i=Number(i)}e[r]=i;return e},{});function useColors(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):i.isatty(process.stderr.fd)}function formatArgs(t){var r=this.namespace,i=this.useColors;if(i){var n=this.color;var a="[3"+(n<8?n:"8;5;"+n);var u=" ".concat(a,";1m").concat(r," ");t[0]=u+t[0].split("\n").join("\n"+u);t.push(a+"m+"+e.exports.humanize(this.diff)+"")}else{t[0]=getDate()+r+" "+t[0]}}function getDate(){if(t.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(){return process.stderr.write(n.format.apply(n,arguments)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};var r=Object.keys(t.inspectOpts);for(var i=0;i=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},,,function(e){"use strict";e.exports=locate;function locate(e,t){var r=e.indexOf("[",t);var i=e.indexOf("![",t);if(i===-1){return r}return r"){break}if(v!==" "&&v!=="\t"){r.message(a,D);break}}}}}},function(e,r,t){if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=t(172)}else{e.exports=t(87)}},,function(e,r,t){"use strict";const n=t(365);const i=t(734);const u=process.env;let o;if(i("no-color")||i("no-colors")||i("color=false")){o=false}else if(i("color")||i("colors")||i("color=true")||i("color=always")){o=true}if("FORCE_COLOR"in u){o=u.FORCE_COLOR.length===0||parseInt(u.FORCE_COLOR,10)!==0}function translateLevel(e){if(e===0){return false}return{level:e,hasBasic:true,has256:e>=2,has16m:e>=3}}function supportsColor(e){if(o===false){return 0}if(i("color=16m")||i("color=full")||i("color=truecolor")){return 3}if(i("color=256")){return 2}if(e&&!e.isTTY&&o!==true){return 0}const r=o?1:0;if(process.platform==="win32"){const e=n.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in u){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in u)||u.CI_NAME==="codeship"){return 1}return r}if("TEAMCITY_VERSION"in u){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(u.TEAMCITY_VERSION)?1:0}if(u.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in u){const e=parseInt((u.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(u.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(u.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(u.TERM)){return 1}if("COLORTERM"in u){return 1}if(u.TERM==="dumb"){return r}return r}function getSupportLevel(e){const r=supportsColor(e);return translateLevel(r)}e.exports={supportsColor:getSupportLevel,stdout:getSupportLevel(process.stdout),stderr:getSupportLevel(process.stderr)}},,function(e){"use strict";function isNothing(e){return typeof e==="undefined"||e===null}function isObject(e){return typeof e==="object"&&e!==null}function toArray(e){if(Array.isArray(e))return e;else if(isNothing(e))return[];return[e]}function extend(e,r){var t,n,i,u;if(r){u=Object.keys(r);for(t=0,n=u.length;t",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"}},function(e,r,t){"use strict";var n=t(751);var i=Object.prototype.hasOwnProperty;function resolveYamlSet(e){if(e===null)return true;var r,t=e;for(r in t){if(i.call(t,r)){if(t[r]!==null)return false}}return true}function constructYamlSet(e){return e!==null?e:{}}e.exports=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:resolveYamlSet,construct:constructYamlSet})},,,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:maximum-line-length",maximumLineLength);var s=u.start;var a=u.end;function maximumLineLength(e,r,t){var n=typeof t==="number"&&!isNaN(t)?t:80;var u=String(r);var f=u.split(/\r?\n/);var c=f.length;var l=-1;var p;i(e,["heading","table","code","definition","html","jsx"],ignore);i(e,["link","image","inlineCode"],inline);while(++ln){r.message("Line must be at most "+n+" characters",{line:l+1,column:p+1})}}function inline(e,r,t){var i=t.children[r+1];var u;var f;if(o(e)){return}u=s(e);f=a(e);if(u.column>n||f.column0}function Chalk(e){if(!this||!(this instanceof Chalk)||this.template){const r={};applyOptions(r,e);r.template=function(){const e=[].slice.call(arguments);return chalkTag.apply(null,[r.template].concat(e))};Object.setPrototypeOf(r,Chalk.prototype);Object.setPrototypeOf(r.template,r);r.template.constructor=Chalk;return r.template}applyOptions(this,e)}if(s){i.blue.open=""}for(const e of Object.keys(i)){i[e].closeRe=new RegExp(n(i[e].close),"g");c[e]={get(){const r=i[e];return build.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}}c.visible={get(){return build.call(this,this._styles||[],true,"visible")}};i.color.closeRe=new RegExp(n(i.color.close),"g");for(const e of Object.keys(i.color.ansi)){if(f.has(e)){continue}c[e]={get(){const r=this.level;return function(){const t=i.color[a[r]][e].apply(null,arguments);const n={open:t,close:i.color.close,closeRe:i.color.closeRe};return build.call(this,this._styles?this._styles.concat(n):[n],this._empty,e)}}}}i.bgColor.closeRe=new RegExp(n(i.bgColor.close),"g");for(const e of Object.keys(i.bgColor.ansi)){if(f.has(e)){continue}const r="bg"+e[0].toUpperCase()+e.slice(1);c[r]={get(){const r=this.level;return function(){const t=i.bgColor[a[r]][e].apply(null,arguments);const n={open:t,close:i.bgColor.close,closeRe:i.bgColor.closeRe};return build.call(this,this._styles?this._styles.concat(n):[n],this._empty,e)}}}}const l=Object.defineProperties(()=>{},c);function build(e,r,t){const n=function(){return applyStyle.apply(n,arguments)};n._styles=e;n._empty=r;const i=this;Object.defineProperty(n,"level",{enumerable:true,get(){return i.level},set(e){i.level=e}});Object.defineProperty(n,"enabled",{enumerable:true,get(){return i.enabled},set(e){i.enabled=e}});n.hasGrey=this.hasGrey||t==="gray"||t==="grey";n.__proto__=l;return n}function applyStyle(){const e=arguments;const r=e.length;let t=String(arguments[0]);if(r===0){return""}if(r>1){for(let n=1;n>>=0;var i=e.byteLength-r;if(i<0){throw new RangeError("'offset' is out of bounds")}if(n===undefined){n=i}else{n>>>=0;if(n>i){throw new RangeError("'length' is out of bounds")}}return t?Buffer.from(e.slice(r,r+n)):new Buffer(new Uint8Array(e.slice(r,r+n)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return t?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,n){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,n)}if(typeof e==="string"){return fromString(e,r)}return t?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},function(e){"use strict";function isSpecificValue(e){return e instanceof Buffer||e instanceof Date||e instanceof RegExp?true:false}function cloneSpecificValue(e){if(e instanceof Buffer){var r=Buffer.alloc?Buffer.alloc(e.length):new Buffer(e.length);e.copy(r);return r}else if(e instanceof Date){return new Date(e.getTime())}else if(e instanceof RegExp){return new RegExp(e)}else{throw new Error("Unexpected situation")}}function deepCloneArray(e){var t=[];e.forEach(function(e,n){if(typeof e==="object"&&e!==null){if(Array.isArray(e)){t[n]=deepCloneArray(e)}else if(isSpecificValue(e)){t[n]=cloneSpecificValue(e)}else{t[n]=r({},e)}}else{t[n]=e}});return t}function safeGetProperty(e,r){return r==="__proto__"?undefined:e[r]}var r=e.exports=function(){if(arguments.length<1||typeof arguments[0]!=="object"){return false}if(arguments.length<2){return arguments[0]}var e=arguments[0];var t=Array.prototype.slice.call(arguments,1);var n,i,u;t.forEach(function(t){if(typeof t!=="object"||t===null||Array.isArray(t)){return}Object.keys(t).forEach(function(u){i=safeGetProperty(e,u);n=safeGetProperty(t,u);if(n===e){return}else if(typeof n!=="object"||n===null){e[u]=n;return}else if(Array.isArray(n)){e[u]=deepCloneArray(n);return}else if(isSpecificValue(n)){e[u]=cloneSpecificValue(n);return}else if(typeof i!=="object"||i===null||Array.isArray(i)){e[u]=r({},n);return}else{e[u]=r(i,n);return}})});return e}},,,function(e){e.exports=["md","markdown","mdown","mkdn","mkd","mdwn","mkdown","ron"]},function(e,r,t){"use strict";var n=t(694);var i=t(717);var u=t(787);var o=t(752);e.exports=paragraph;var s="\t";var a="\n";var f=" ";var c=4;function paragraph(e,r,t){var l=this;var p=l.options;var h=p.commonmark;var v=p.gfm;var D=l.blockTokenizers;var d=l.interruptParagraph;var g=r.indexOf(a);var m=r.length;var E;var b;var A;var C;var w;while(g=c&&A!==a){g=r.indexOf(a,g+1);continue}}b=r.slice(g+1);if(o(d,D,l,[e,b,true])){break}if(D.list.call(l,e,b,true)&&(l.inList||h||v&&!i(n.left(b).charAt(0)))){break}E=g;g=r.indexOf(a,g+1);if(g!==-1&&n(r.slice(E,g))===""){g=E;break}}b=r.slice(0,g);if(n(b)===""){e(b);return null}if(t){return true}w=e.now();b=u(b);return e(b)({type:"paragraph",children:l.tokenizeInline(b,w)})}},,function(e,r,t){"use strict";var n=t(541);var i=t(189);var u=t(372);e.exports=n("remark-lint:no-unused-definitions",noUnusedDefinitions);var o="Found unused definition";function noUnusedDefinitions(e,r){var t={};var n;var s;u(e,["definition","footnoteDefinition"],find);u(e,["imageReference","linkReference","footnoteReference"],mark);for(n in t){s=t[n];if(!s.used){r.message(o,s.node)}}function find(e){if(!i(e)){t[e.identifier.toUpperCase()]={node:e,used:false}}}function mark(e){var r=t[e.identifier.toUpperCase()];if(!i(e)&&r){r.used=true}}}},function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:ordered-list-marker-style",orderedListMarkerStyle);var s=u.start;var a={")":true,".":true,null:true};function orderedListMarkerStyle(e,r,t){var n=String(r);t=typeof t!=="string"||t==="consistent"?null:t;if(a[t]!==true){r.fail("Invalid ordered list-item marker style `"+t+"`: use either `'.'` or `')'`")}i(e,"list",visitor);function visitor(e){var i=e.children;var u=e.ordered?i.length:0;var a=-1;var f;var c;while(++a?@[\\\]^`{|}~_]/;function copy(e,r){var t=e.length;var o=r.length;var s=[];var a=0;var f=0;var c;while(f{if(typeof e!=="string"){throw new TypeError("Expected a string")}let t=r||{};let E=typeof t.maxLength==="number"?Math.min(i,t.maxLength):i;if(e.length>E){throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${E})`)}let b={type:"root",input:e,nodes:[]};let A=[b];let C=b;let w=b;let y=0;let F=e.length;let S=0;let _=0;let B;let O={};const x=()=>e[S++];const k=e=>{if(e.type==="text"&&w.type==="dot"){w.type="text"}if(w&&w.type==="text"&&e.type==="text"){w.value+=e.value;return}C.nodes.push(e);e.parent=C;e.prev=w;w=e;return e};k({type:"bos"});while(S0){if(C.ranges>0){C.ranges=0;let e=C.nodes.shift();C.nodes=[e,{type:"text",value:n(C)}]}k({type:"comma",value:B});C.commas++;continue}if(B===a&&_>0&&C.commas===0){let e=C.nodes;if(_===0||e.length===0){k({type:"text",value:B});continue}if(w.type==="dot"){C.range=[];w.value+=B;w.type="range";if(C.nodes.length!==3&&C.nodes.length!==5){C.invalid=true;C.ranges=0;w.type="text";continue}C.ranges++;C.args=[];continue}if(w.type==="range"){e.pop();let r=e[e.length-1];r.value+=w.value+B;w=r;C.ranges--;continue}k({type:"dot",value:B});continue}k({type:"text",value:B})}do{C=A.pop();if(C.type!=="root"){C.nodes.forEach(e=>{if(!e.nodes){if(e.type==="open")e.isOpen=true;if(e.type==="close")e.isClose=true;if(!e.nodes)e.type="text";e.invalid=true}});let e=A[A.length-1];let r=e.nodes.indexOf(C);e.nodes.splice(r,1,...C.nodes)}}while(A.length>0);k({type:"eos"});return b};e.exports=E},,,function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});const n=t(387);const i=t(204);const u="!";const o={returnIndex:false};const s=e=>Array.isArray(e)?e:[e];const a=(e,r)=>{if(typeof e==="function"){return e}if(typeof e==="string"){const t=n(e,r);return r=>e===r||t(r)}if(e instanceof RegExp){return r=>e.test(r)}return e=>false};const f=(e,r,t,n)=>{const u=Array.isArray(t);const o=u?t[0]:t;if(!u&&typeof o!=="string"){throw new TypeError("anymatch: second argument must be a string: got "+Object.prototype.toString.call(o))}const s=i(o);for(let e=0;e{if(e==null){throw new TypeError("anymatch: specify first argument")}const i=typeof t==="boolean"?{returnIndex:t}:t;const c=i.returnIndex||false;const l=s(e);const p=l.filter(e=>typeof e==="string"&&e.charAt(0)===u).map(e=>e.slice(1)).map(e=>n(e,i));const h=l.map(e=>a(e,i));if(r==null){return(e,r=false)=>{const t=typeof r==="boolean"?r:false;return f(h,p,e,t)}}return f(h,p,r,c)};c.default=c;e.exports=c},,function(e,r,t){"use strict";var n=t(141);e.exports=new n({explicit:[t(38),t(959),t(438)]})},function(e){"use strict";const r={};function createErrorType(e,t,n){if(!n){n=Error}function getMessage(e,r,n){if(typeof t==="string"){return t}else{return t(e,r,n)}}class NodeError extends n{constructor(e,r,t){super(getMessage(e,r,t))}}NodeError.prototype.name=n.name;NodeError.prototype.code=e;r[e]=NodeError}function oneOf(e,r){if(Array.isArray(e)){const t=e.length;e=e.map(e=>String(e));if(t>2){return`one of ${r} ${e.slice(0,t-1).join(", ")}, or `+e[t-1]}else if(t===2){return`one of ${r} ${e[0]} or ${e[1]}`}else{return`of ${r} ${e[0]}`}}else{return`of ${r} ${String(e)}`}}function startsWith(e,r,t){return e.substr(!t||t<0?0:+t,r.length)===r}function endsWith(e,r,t){if(t===undefined||t>e.length){t=e.length}return e.substring(t-r.length,t)===r}function includes(e,r,t){if(typeof t!=="number"){t=0}if(t+r.length>e.length){return false}else{return e.indexOf(r,t)!==-1}}createErrorType("ERR_INVALID_OPT_VALUE",function(e,r){return'The value "'+r+'" is invalid for option "'+e+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(e,r,t){let n;if(typeof r==="string"&&startsWith(r,"not ")){n="must not be";r=r.replace(/^not /,"")}else{n="must be"}let i;if(endsWith(e," argument")){i=`The ${e} ${n} ${oneOf(r,"type")}`}else{const t=includes(e,".")?"property":"argument";i=`The "${e}" ${t} ${n} ${oneOf(r,"type")}`}i+=`. Received type ${typeof t}`;return i},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");e.exports.codes=r},,,function(e,r,t){"use strict";const n=t(622);const i="\\\\/";const u=`[^${i}]`;const o="\\.";const s="\\+";const a="\\?";const f="\\/";const c="(?=.)";const l="[^/]";const p=`(?:${f}|$)`;const h=`(?:^|${f})`;const v=`${o}{1,2}${p}`;const D=`(?!${o})`;const d=`(?!${h}${v})`;const g=`(?!${o}{0,1}${p})`;const m=`(?!${v})`;const E=`[^.${f}]`;const b=`${l}*?`;const A={DOT_LITERAL:o,PLUS_LITERAL:s,QMARK_LITERAL:a,SLASH_LITERAL:f,ONE_CHAR:c,QMARK:l,END_ANCHOR:p,DOTS_SLASH:v,NO_DOT:D,NO_DOTS:d,NO_DOT_SLASH:g,NO_DOTS_SLASH:m,QMARK_NO_DOT:E,STAR:b,START_ANCHOR:h};const C={...A,SLASH_LITERAL:`[${i}]`,QMARK:u,STAR:`${u}*?`,DOTS_SLASH:`${o}{1,2}(?:[${i}]|$)`,NO_DOT:`(?!${o})`,NO_DOTS:`(?!(?:^|[${i}])${o}{1,2}(?:[${i}]|$))`,NO_DOT_SLASH:`(?!${o}{0,1}(?:[${i}]|$))`,NO_DOTS_SLASH:`(?!${o}{1,2}(?:[${i}]|$))`,QMARK_NO_DOT:`[^.${i}]`,START_ANCHOR:`(?:^|[${i}])`,END_ANCHOR:`(?:[${i}]|$)`};const w={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};e.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:w,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:n.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===true?C:A}}},,function(e,r,t){"use strict";var n=t(747);var i=t(622);var u=t(7)("unified-engine:file-pipeline:copy");var o=t(378);e.exports=copy;var s=n.stat;var a=i.dirname;var f=i.resolve;var c=i.relative;function copy(e,r,t,n){var l=e.output;var p=t.expected>1;var h=l;var v=r.path;if(!o(h)){u("Not copying");return n()}h=f(e.cwd,h);u("Copying `%s`",v);s(h,onstatfile);function onstatfile(e,r){if(e){if(e.code!=="ENOENT"||l.charAt(l.length-1)===i.sep){return n(new Error("Cannot read output directory. Error:\n"+e.message))}s(a(h),onstatparent)}else{done(r.isDirectory())}}function onstatparent(e){if(e){n(new Error("Cannot read parent directory. Error:\n"+e.message))}else{done(false)}}function done(e){if(!e&&p){return n(new Error("Cannot write multiple files to single output: "+h))}r[e?"dirname":"path"]=c(r.cwd,h);u("Copying document from %s to %s",v,r.path);n()}}},,,,,function(e,r,t){const n=t(867);const i=t(669);r.init=init;r.log=log;r.formatArgs=formatArgs;r.save=save;r.load=load;r.useColors=useColors;r.colors=[6,2,3,4,5,1];try{const e=t(9);if(e&&(e.stderr||e).level>=2){r.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}r.inspectOpts=Object.keys(process.env).filter(e=>{return/^debug_/i.test(e)}).reduce((e,r)=>{const t=r.substring(6).toLowerCase().replace(/_([a-z])/g,(e,r)=>{return r.toUpperCase()});let n=process.env[r];if(/^(yes|on|true|enabled)$/i.test(n)){n=true}else if(/^(no|off|false|disabled)$/i.test(n)){n=false}else if(n==="null"){n=null}else{n=Number(n)}e[t]=n;return e},{});function useColors(){return"colors"in r.inspectOpts?Boolean(r.inspectOpts.colors):n.isatty(process.stderr.fd)}function formatArgs(r){const{namespace:t,useColors:n}=this;if(n){const n=this.color;const i="[3"+(n<8?n:"8;5;"+n);const u=` ${i};1m${t} `;r[0]=u+r[0].split("\n").join("\n"+u);r.push(i+"m+"+e.exports.humanize(this.diff)+"")}else{r[0]=getDate()+t+" "+r[0]}}function getDate(){if(r.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(...e){return process.stderr.write(i.format(...e)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};const t=Object.keys(r.inspectOpts);for(let n=0;n=e.expected){e.emit("done")}}},,,,function(e,r,t){"use strict";var n=t(62);var i=t(26);e.exports=linkReference;var u="[";var o="]";var s="shortcut";var a="collapsed";function linkReference(e){var r=this;var t=e.referenceType;var f=r.enterLinkReference(r,e);var c=r.all(e).join("");f();if(t===s||t===a){c=n(c,e.label||e.identifier)}return u+c+o+i(e)}},,,function(e,r,t){"use strict";var n=t(223);var i=create(Error);e.exports=i;i.eval=create(EvalError);i.range=create(RangeError);i.reference=create(ReferenceError);i.syntax=create(SyntaxError);i.type=create(TypeError);i.uri=create(URIError);i.create=create;function create(e){FormattedError.displayName=e.displayName||e.name;return FormattedError;function FormattedError(r){if(r){r=n.apply(null,arguments)}return new e(r)}}},function(e){"use strict";e.exports=locate;function locate(e,r){return e.indexOf("<",r)}},function(e,r,t){"use strict";var n=t(751);function resolveJavascriptRegExp(e){if(e===null)return false;if(e.length===0)return false;var r=e,t=/\/([gim]*)$/.exec(e),n="";if(r[0]==="/"){if(t)n=t[1];if(n.length>3)return false;if(r[r.length-n.length-1]!=="/")return false}return true}function constructJavascriptRegExp(e){var r=e,t=/\/([gim]*)$/.exec(e),n="";if(r[0]==="/"){if(t)n=t[1];r=r.slice(1,r.length-n.length-1)}return new RegExp(r,n)}function representJavascriptRegExp(e){var r="/"+e.source+"/";if(e.global)r+="g";if(e.multiline)r+="m";if(e.ignoreCase)r+="i";return r}function isRegExp(e){return Object.prototype.toString.call(e)==="[object RegExp]"}e.exports=new n("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:resolveJavascriptRegExp,construct:constructJavascriptRegExp,predicate:isRegExp,represent:representJavascriptRegExp})},,,function(e,r,t){var n=t(413);if(process.env.READABLE_STREAM==="disable"&&n){e.exports=n.Readable;Object.assign(e.exports,n);e.exports.Stream=n}else{r=e.exports=t(739);r.Stream=n||r;r.Readable=r;r.Writable=t(139);r.Duplex=t(864);r.Transform=t(685);r.PassThrough=t(401);r.finished=t(89);r.pipeline=t(528)}},function(e){"use strict";e.exports=function(e){if(typeof e==="number"){return e-e===0}if(typeof e==="string"&&e.trim()!==""){return Number.isFinite?Number.isFinite(+e):isFinite(+e)}return false}},,function(e,r,t){"use strict";var n=t(747);var i=t(622);var u=t(7)("unified-engine:file-pipeline:read");var o=t(877);e.exports=read;var s=i.resolve;var a=n.readFile;function read(e,r,t,n){var i=r.path;if(r.contents||r.data.unifiedEngineStreamIn){u("Not reading file `%s` with contents",i);n()}else if(o(r).fatal){u("Not reading failed file `%s`",i);n()}else{i=s(e.cwd,i);u("Reading `%s` in `%s`",i,"utf8");a(i,"utf8",onread)}function onread(e,t){u("Read `%s` (error: %s)",i,e);r.contents=t||"";n(e)}}},,function(e){"use strict";e.exports=indentation;var r="\t";var t=" ";var n=1;var i=4;function indentation(e){var u=0;var o=0;var s=e.charAt(u);var a={};var f;while(s===r||s===t){f=s===r?i:n;o+=f;if(f>1){o=Math.floor(o/f)*f}a[o]=u;s=e.charAt(++u)}return{indent:o,stops:a}}},function(e,r,t){"use strict";var n=t(747);var i=t(622);var u=t(992);r.read=read;r.write=write;function read(e,r,t){var o=u(e);if(!t&&typeof r==="function"){t=r;r=null}if(!t){return new Promise(executor)}executor(resolve,t);function resolve(e){t(null,e)}function executor(e,t){var u;try{u=i.resolve(o.cwd,o.path)}catch(e){return t(e)}n.readFile(u,r,done);function done(r,n){if(r){t(r)}else{o.contents=n;e(o)}}}}function write(e,r,t){var o=u(e);if(!t&&typeof r==="function"){t=r;r=undefined}if(!t){return new Promise(executor)}executor(resolve,t);function resolve(e){t(null,e)}function executor(e,t){var u;try{u=i.resolve(o.cwd,o.path)}catch(e){return t(e)}n.writeFile(u,o.contents||"",r,done);function done(r){if(r){t(r)}else{e()}}}}},function(e,r,t){"use strict";var n=t(669);var i=t(447);var u=function errorEx(e,r){if(!e||e.constructor!==String){r=e||{};e=Error.name}var t=function ErrorEXError(n){if(!this){return new ErrorEXError(n)}n=n instanceof Error?n.message:n||this.message;Error.call(this,n);Error.captureStackTrace(this,t);this.name=e;Object.defineProperty(this,"message",{configurable:true,enumerable:false,get:function(){var e=n.split(/\r?\n/g);for(var t in r){if(!r.hasOwnProperty(t)){continue}var u=r[t];if("message"in u){e=u.message(this[t],e)||e;if(!i(e)){e=[e]}}}return e.join("\n")},set:function(e){n=e}});var u=null;var o=Object.getOwnPropertyDescriptor(this,"stack");var s=o.get;var a=o.value;delete o.value;delete o.writable;o.set=function(e){u=e};o.get=function(){var e=(u||(s?s.call(this):a)).split(/\r?\n+/g);if(!u){e[0]=this.name+": "+this.message}var t=1;for(var n in r){if(!r.hasOwnProperty(n)){continue}var i=r[n];if("line"in i){var o=i.line(this[n]);if(o){e.splice(t++,0," "+o)}}if("stack"in i){i.stack(this[n],e)}}return e.join("\n")};Object.defineProperty(this,"stack",o)};if(Object.setPrototypeOf){Object.setPrototypeOf(t.prototype,Error.prototype);Object.setPrototypeOf(t,Error)}else{n.inherits(t,Error)}return t};u.append=function(e,r){return{message:function(t,n){t=t||r;if(t){n[0]+=" "+e.replace("%s",t.toString())}return n}}};u.line=function(e,r){return{line:function(t){t=t||r;if(t){return e.replace("%s",t.toString())}return null}}};e.exports=u},function(e){"use strict";e.exports=paragraph;function paragraph(e){return this.all(e).join("")}},function(e){"use strict";e.exports=locate;function locate(e,r){return e.indexOf("\\",r)}},function(e,r,t){"use strict";var n=t(541);var i=t(665);var u=t(372);var o=t(766);var s=t(189);e.exports=n("remark-lint:no-consecutive-blank-lines",noConsecutiveBlankLines);function noConsecutiveBlankLines(e,r){u(e,visitor);function visitor(e){var r=e.children;var t;var n;if(!s(e)&&r){t=r[0];if(t&&!s(t)){compare(o.start(e),o.start(t),0);r.forEach(visitChild);n=r[r.length-1];if(n!==t&&!s(n)){compare(o.end(e),o.end(n),1)}}}}function compare(e,t,n){var u=t.line-e.line;var o=Math.abs(u)-n;var s;if(o>0){s="Remove "+o+" "+i("line",o)+" "+(u>0?"before":"after")+" node";r.message(s,t)}}function visitChild(e,r,t){var n=t[r-1];var i=2;if(n&&!s(n)&&!s(e)){if(n.type==="list"&&e.type==="list"||e.type==="code"&&n.type==="list"&&!e.lang){i++}compare(o.end(n),o.start(e),i)}}}},,function(e,r,t){"use strict";var n=t(324);e.exports=enclose;var i="(";var u=")";var o="<";var s=">";var a=/\s/;function enclose(e,r){if(r||e.length===0||a.test(e)||n(e,i)!==n(e,u)){return o+e+s}return e}},,,,function(e,r,t){const n=t(969);e.exports={isSpaceSeparator(e){return n.Space_Separator.test(e)},isIdStartChar(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="$"||e==="_"||n.ID_Start.test(e)},isIdContinueChar(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||e==="$"||e==="_"||e==="‌"||e==="‍"||n.ID_Continue.test(e)},isDigit(e){return/[0-9]/.test(e)},isHexDigit(e){return/[0-9A-Fa-f]/.test(e)}}},function(e){"use strict";e.exports=locate;function locate(e,r){var t=e.indexOf("*",r);var n=e.indexOf("_",r);if(n===-1){return t}if(t===-1){return n}return nt.length;var u;if(i){t.push(done)}try{u=e.apply(null,t)}catch(e){if(i&&n){throw e}return done(e)}if(!i){if(u&&typeof u.then==="function"){u.then(then,done)}else if(u instanceof Error){done(u)}else{then(u)}}}function done(){if(!n){n=true;t.apply(null,arguments)}}function then(e){done(null,e)}}},function(e){"use strict";e.exports=hexadecimal;function hexadecimal(e){var r=typeof e==="string"?e.charCodeAt(0):e;return r>=97&&r<=102||r>=65&&r<=70||r>=48&&r<=57}},,,,,function(e,r,t){"use strict";var n=t(541);var i=t(731);var u=t(372);var o=t(766);var s=t(189);e.exports=n("remark-lint:checkbox-content-indent",checkboxContentIndent);var a=o.start;var f=o.end;var c="Checkboxes should be followed by a single character";function checkboxContentIndent(e,r){var t=String(r);var n=i(r);u(e,"listItem",visitor);function visitor(e){var i;var u;var o;if(typeof e.checked!=="boolean"||s(e)){return}i=a(e).offset;u=(e.children.length===0?f(e):a(e.children[0])).offset;while(/[^\S\n]/.test(t.charAt(u))){u++}o=t.slice(i,u);o=o.slice(o.indexOf("]")+1);if(o.length!==1){r.message(c,{start:n.toPosition(u-o.length+1),end:n.toPosition(u)})}}}},function(e,r,t){"use strict";e.exports=Writable;function WriteReq(e,r,t){this.chunk=e;this.encoding=r;this.callback=t;this.next=null}function CorkedRequest(e){var r=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(r,e)}}var n;Writable.WritableState=WritableState;var i={deprecate:t(150)};var u=t(927);var o=t(293).Buffer;var s=global.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return o.from(e)}function _isUint8Array(e){return o.isBuffer(e)||e instanceof s}var a=t(318);var f=t(675),c=f.getHighWaterMark;var l=t(77).codes,p=l.ERR_INVALID_ARG_TYPE,h=l.ERR_METHOD_NOT_IMPLEMENTED,v=l.ERR_MULTIPLE_CALLBACK,D=l.ERR_STREAM_CANNOT_PIPE,d=l.ERR_STREAM_DESTROYED,g=l.ERR_STREAM_NULL_VALUES,m=l.ERR_STREAM_WRITE_AFTER_END,E=l.ERR_UNKNOWN_ENCODING;t(744)(Writable,u);function nop(){}function WritableState(e,r,i){n=n||t(864);e=e||{};if(typeof i!=="boolean")i=r instanceof n;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.writableObjectMode;this.highWaterMark=c(this,e,"writableHighWaterMark",i);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var u=e.decodeStrings===false;this.decodeStrings=!u;this.defaultEncoding=e.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(e){onwrite(r,e)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.emitClose=e.emitClose!==false;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function getBuffer(){var e=this.bufferedRequest;var r=[];while(e){r.push(e);e=e.next}return r};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:i.deprecate(function writableStateBufferGetter(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer "+"instead.","DEP0003")})}catch(e){}})();var b;if(typeof Symbol==="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==="function"){b=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function value(e){if(b.call(this,e))return true;if(this!==Writable)return false;return e&&e._writableState instanceof WritableState}})}else{b=function realHasInstance(e){return e instanceof this}}function Writable(e){n=n||t(864);var r=this instanceof n;if(!r&&!b.call(Writable,this))return new Writable(e);this._writableState=new WritableState(e,this,r);this.writable=true;if(e){if(typeof e.write==="function")this._write=e.write;if(typeof e.writev==="function")this._writev=e.writev;if(typeof e.destroy==="function")this._destroy=e.destroy;if(typeof e.final==="function")this._final=e.final}u.call(this)}Writable.prototype.pipe=function(){this.emit("error",new D)};function writeAfterEnd(e,r){var t=new m;e.emit("error",t);process.nextTick(r,t)}function validChunk(e,r,t,n){var i;if(t===null){i=new g}else if(typeof t!=="string"&&!r.objectMode){i=new p("chunk",["string","Buffer"],t)}if(i){e.emit("error",i);process.nextTick(n,i);return false}return true}Writable.prototype.write=function(e,r,t){var n=this._writableState;var i=false;var u=!n.objectMode&&_isUint8Array(e);if(u&&!o.isBuffer(e)){e=_uint8ArrayToBuffer(e)}if(typeof r==="function"){t=r;r=null}if(u)r="buffer";else if(!r)r=n.defaultEncoding;if(typeof t!=="function")t=nop;if(n.ending)writeAfterEnd(this,t);else if(u||validChunk(this,n,e,t)){n.pendingcb++;i=writeOrBuffer(this,n,u,e,r,t)}return i};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){var e=this._writableState;if(e.corked){e.corked--;if(!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest)clearBuffer(this,e)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(e){if(typeof e==="string")e=e.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new E(e);this._writableState.defaultEncoding=e;return this};Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(e,r,t){if(!e.objectMode&&e.decodeStrings!==false&&typeof r==="string"){r=o.from(r,t)}return r}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});function writeOrBuffer(e,r,t,n,i,u){if(!t){var o=decodeChunk(r,n,i);if(n!==o){t=true;i="buffer";n=o}}var s=r.objectMode?1:n.length;r.length+=s;var a=r.length0)this.tail.next=r;else this.head=r;this.tail=r;++this.length};e.unshift=function unshift(e){var r={data:e,next:this.head};if(this.length===0)this.tail=r;this.head=r;++this.length};e.shift=function shift(){if(this.length===0)return;var e=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return e};e.clear=function clear(){this.head=this.tail=null;this.length=0};e.join=function join(e){if(this.length===0)return"";var r=this.head;var t=""+r.data;while(r=r.next){t+=e+r.data}return t};e.concat=function concat(e){if(this.length===0)return i.alloc(0);var r=i.allocUnsafe(e>>>0);var t=this.head;var n=0;while(t){copyBuffer(t.data,r,n);n+=t.data.length;t=t.next}return r};e.consume=function consume(e,r){var t;if(ei.length?i.length:e;if(u===i.length)n+=i;else n+=i.slice(0,e);e-=u;if(e===0){if(u===i.length){++t;if(r.next)this.head=r.next;else this.head=this.tail=null}else{this.head=r;r.data=i.slice(u)}break}++t}this.length-=t;return n};e._getBuffer=function _getBuffer(e){var r=i.allocUnsafe(e);var t=this.head;var n=1;t.data.copy(r);e-=t.data.length;while(t=t.next){var u=t.data;var o=e>u.length?u.length:e;u.copy(r,r.length-e,0,o);e-=o;if(e===0){if(o===u.length){++n;if(t.next)this.head=t.next;else this.head=this.tail=null}else{this.head=t;t.data=u.slice(o)}break}++n}this.length-=n;return r};e[s]=function(e,r){return o(this,_objectSpread({},r,{depth:0,customInspect:false}))};return BufferList}()},,,function(e,r,t){e.exports=t(669).deprecate},,function(e,r,t){"use strict";var n=t(747);var i=t(622);var u=t(7)("unified-engine:file-pipeline:file-system");var o=t(877);e.exports=fileSystem;var s=n.writeFile;var a=i.resolve;function fileSystem(e,r,t,n){var i;if(!e.output){u("Ignoring writing to file-system");return n()}if(!r.data.unifiedEngineGiven){u("Ignoring programmatically added file");return n()}i=r.path;if(!i){u("Cannot write file without a `destinationPath`");return n(new Error("Cannot write file without an output path"))}if(o(r).fatal){u("Cannot write file with a fatal error");return n()}i=a(e.cwd,i);u("Writing document to `%s`",i);r.stored=true;s(i,r.toString(),n)}},,function(e,r,t){"use strict";var n=t(803).Buffer;var i=n.isEncoding||function(e){e=""+e;switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(e){if(!e)return"utf8";var r;while(true){switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(r)return;e=(""+e).toLowerCase();r=true}}}function normalizeEncoding(e){var r=_normalizeEncoding(e);if(typeof r!=="string"&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return r||e}r.StringDecoder=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var r;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;r=4;break;case"utf8":this.fillLast=utf8FillLast;r=4;break;case"base64":this.text=base64Text;this.end=base64End;r=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=n.allocUnsafe(r)}StringDecoder.prototype.write=function(e){if(e.length===0)return"";var r;var t;if(this.lastNeed){r=this.fillLast(e);if(r===undefined)return"";t=this.lastNeed;this.lastNeed=0}else{t=0}if(t>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,r,t){var n=r.length-1;if(n=0){if(i>0)e.lastNeed=i-1;return i}if(--n=0){if(i>0)e.lastNeed=i-2;return i}if(--n=0){if(i>0){if(i===2)i=0;else e.lastNeed=i-3}return i}return 0}function utf8CheckExtraBytes(e,r,t){if((r[0]&192)!==128){e.lastNeed=0;return"�"}if(e.lastNeed>1&&r.length>1){if((r[1]&192)!==128){e.lastNeed=1;return"�"}if(e.lastNeed>2&&r.length>2){if((r[2]&192)!==128){e.lastNeed=2;return"�"}}}}function utf8FillLast(e){var r=this.lastTotal-this.lastNeed;var t=utf8CheckExtraBytes(this,e,r);if(t!==undefined)return t;if(this.lastNeed<=e.length){e.copy(this.lastChar,r,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,r,0,e.length);this.lastNeed-=e.length}function utf8Text(e,r){var t=utf8CheckIncomplete(this,e,r);if(!this.lastNeed)return e.toString("utf8",r);this.lastTotal=t;var n=e.length-(t-this.lastNeed);e.copy(this.lastChar,0,n);return e.toString("utf8",r,n)}function utf8End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed)return r+"�";return r}function utf16Text(e,r){if((e.length-r)%2===0){var t=e.toString("utf16le",r);if(t){var n=t.charCodeAt(t.length-1);if(n>=55296&&n<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return t.slice(0,-1)}}return t}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString("utf16le",r,e.length-1)}function utf16End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,t)}return r}function base64Text(e,r){var t=(e.length-r)%3;if(t===0)return e.toString("base64",r);this.lastNeed=3-t;this.lastTotal=3;if(t===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString("base64",r,e.length-t)}function base64End(e){var r=e&&e.length?this.write(e):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):""}},,,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:final-definition",finalDefinition);var s=u.start;function finalDefinition(e,r){var t=null;i(e,visitor,true);function visitor(e){var n=s(e).line;if(e.type==="root"||o(e)){return}if(e.type==="definition"){if(t!==null&&t>n){r.message("Move definitions to the end of the file (after the node at line `"+t+"`)",e)}}else if(t===null){t=n}}}},,,function(e){"use strict";e.exports=list;function list(e){var r=e.ordered?this.visitOrderedItems:this.visitUnorderedItems;return r.call(this,e)}},,,,function(e){"use strict";var r="";var t;e.exports=repeat;function repeat(e,n){if(typeof e!=="string"){throw new TypeError("expected a string")}if(n===1)return e;if(n===2)return e+e;var i=e.length*n;if(t!==e||typeof t==="undefined"){t=e;r=""}else if(r.length>=i){return r.substr(0,i)}while(i>r.length&&n>1){if(n&1){r+=e}n>>=1;e+=e}r+=e;r=r.substr(0,i);return r}},,,function(e){"use strict";e.exports=footnoteReference;var r="[";var t="]";var n="^";function footnoteReference(e){return r+n+(e.label||e.identifier)+t}},function(e){e.exports=["3dm","3ds","3g2","3gp","7z","a","aac","adp","ai","aif","aiff","alz","ape","apk","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","oga","ogg","ogv","otf","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rtf","rz","s3m","s7z","scpt","sgi","shar","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]},function(e,r,t){"use strict";var n=t(372);e.exports=removePosition;function removePosition(e,r){n(e,r?hard:soft);return e}function hard(e){delete e.position}function soft(e){e.position=undefined}},,,function(e,r,t){r.log=log;r.formatArgs=formatArgs;r.save=save;r.load=load;r.useColors=useColors;r.storage=localstorage();r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(r){r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}const t="color: "+this.color;r.splice(1,0,t,"color: inherit");let n=0;let i=0;r[0].replace(/%[a-zA-Z%]/g,e=>{if(e==="%%"){return}n++;if(e==="%c"){i=n}});r.splice(i,0,t)}function log(...e){return typeof console==="object"&&console.log&&console.log(...e)}function save(e){try{if(e){r.storage.setItem("debug",e)}else{r.storage.removeItem("debug")}}catch(e){}}function load(){let e;try{e=r.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=t(235)(r);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},function(e,r,t){"use strict";var n=t(413).PassThrough;var i=t(877);var u=t(251);e.exports=run;function run(e,r){var t={};var o=new n;var s;var a;var f;var c;var l;try{o=process.stdin}catch(e){}if(!r){throw new Error("Missing `callback`")}if(!e||!e.processor){return next(new Error("Missing `processor`"))}t.processor=e.processor;t.cwd=e.cwd||process.cwd();t.files=e.files||[];t.extensions=(e.extensions||[]).map(extension);t.filePath=e.filePath||null;t.streamIn=e.streamIn||o;t.streamOut=e.streamOut||process.stdout;t.streamError=e.streamError||process.stderr;t.alwaysStringify=e.alwaysStringify;t.output=e.output;t.out=e.out;if(t.output===null||t.output===undefined){t.output=undefined}if(t.output&&t.out){return next(new Error("Cannot accept both `output` and `out`"))}s=e.tree||false;t.treeIn=e.treeIn;t.treeOut=e.treeOut;t.inspect=e.inspect;if(t.treeIn===null||t.treeIn===undefined){t.treeIn=s}if(t.treeOut===null||t.treeOut===undefined){t.treeOut=s}a=e.detectConfig;f=Boolean(e.rcName||e.packageField);if(a&&!f){return next(new Error("Missing `rcName` or `packageField` with `detectConfig`"))}t.detectConfig=a===null||a===undefined?f:a;t.rcName=e.rcName||null;t.rcPath=e.rcPath||null;t.packageField=e.packageField||null;t.settings=e.settings||{};t.configTransform=e.configTransform;t.defaultConfig=e.defaultConfig;c=e.detectIgnore;l=Boolean(e.ignoreName);t.detectIgnore=c===null||c===undefined?l:c;t.ignoreName=e.ignoreName||null;t.ignorePath=e.ignorePath||null;t.ignorePatterns=e.ignorePatterns||[];t.silentlyIgnore=Boolean(e.silentlyIgnore);if(c&&!l){return next(new Error("Missing `ignoreName` with `detectIgnore`"))}t.pluginPrefix=e.pluginPrefix||null;t.plugins=e.plugins||{};t.reporter=e.reporter||null;t.reporterOptions=e.reporterOptions||null;t.color=e.color||false;t.silent=e.silent||false;t.quiet=e.quiet||false;t.frail=e.frail||false;u.run({files:e.files||[]},t,next);function next(e,n){var u=i((n||{}).files);var o=Boolean(t.frail?u.fatal||u.warn:u.fatal);if(e){r(e)}else{r(null,o?1:0,n)}}}function extension(e){return e.charAt(0)==="."?e:"."+e}},,,,,,,function(e,r,t){"use strict";e.exports=t(50)},function(e,r,t){"use strict";var n=t(541);var i=t(665);var u=t(372);var o=t(766);var s=t(189);e.exports=n("remark-lint:list-item-bullet-indent",listItemBulletIndent);var a=o.start;function listItemBulletIndent(e,r){var t=String(r);u(e,"list",visitor);function visitor(e){e.children.forEach(visitItems)}function visitItems(e){var n;var u;var o;if(!s(e)){n=a(e.children[0]);u=t.slice(a(e).offset,n.offset).match(/^\s*/)[0].length;if(u!==0){o="Incorrect indentation before bullet: remove "+u+" "+i("space",u);r.message(o,{line:n.line,column:n.column-u})}}}}},,,,function(e,r,t){"use strict";var n=t(992);var i=t(882);var u=t(116);e.exports=n;n.read=u.read;n.readSync=i.read;n.write=u.write;n.writeSync=i.write},function(e){e.exports={addendum:"addenda",aircraft:"aircraft",alga:"algae",alumna:"alumnae",alumnus:"alumni",amoeba:"amoebae",analysis:"analyses",antenna:"antennae",antithesis:"antitheses",apex:"apices",appendix:"appendices",automaton:"automata",axis:"axes",bacillus:"bacilli",bacterium:"bacteria",barracks:"barracks",basis:"bases",beau:"beaux",bison:"bison",buffalo:"buffalo",bureau:"bureaus",cactus:"cacti",calf:"calves",carp:"carp",census:"censuses",chassis:"chassis",cherub:"cherubim",child:"children","château":"châteaus",cod:"cod",codex:"codices",concerto:"concerti",corpus:"corpora",crisis:"crises",criterion:"criteria",curriculum:"curricula",datum:"data",deer:"deer",diagnosis:"diagnoses",die:"dice",dwarf:"dwarfs",echo:"echoes",elf:"elves",elk:"elk",ellipsis:"ellipses",embargo:"embargoes",emphasis:"emphases",erratum:"errata","faux pas":"faux pas",fez:"fezes",firmware:"firmware",fish:"fish",focus:"foci",foot:"feet",formula:"formulae",fungus:"fungi",gallows:"gallows",genus:"genera",goose:"geese",graffito:"graffiti",grouse:"grouse",half:"halves",hero:"heroes",hoof:"hooves",hovercraft:"hovercraft",hypothesis:"hypotheses",index:"indices",kakapo:"kakapo",knife:"knives",larva:"larvae",leaf:"leaves",libretto:"libretti",life:"lives",loaf:"loaves",locus:"loci",louse:"lice",man:"men",matrix:"matrices",means:"means",medium:"media",memorandum:"memoranda",millennium:"millennia",minutia:"minutiae",moose:"moose",mouse:"mice",nebula:"nebulae",nemesis:"nemeses",neurosis:"neuroses",news:"news",nucleus:"nuclei",oasis:"oases",offspring:"offspring",opus:"opera",ovum:"ova",ox:"oxen",paralysis:"paralyses",parenthesis:"parentheses",person:"people",phenomenon:"phenomena",phylum:"phyla",pike:"pike",polyhedron:"polyhedra",potato:"potatoes",prognosis:"prognoses",quiz:"quizzes",radius:"radii",referendum:"referenda",salmon:"salmon",scarf:"scarves",self:"selves",series:"series",sheep:"sheep",shelf:"shelves",shrimp:"shrimp",spacecraft:"spacecraft",species:"species",spectrum:"spectra",squid:"squid",stimulus:"stimuli",stratum:"strata",swine:"swine",syllabus:"syllabi",symposium:"symposia",synopsis:"synopses",synthesis:"syntheses",tableau:"tableaus",that:"those",thesis:"theses",thief:"thieves",this:"these",tomato:"tomatoes",tooth:"teeth",trout:"trout",tuna:"tuna",vertebra:"vertebrae",vertex:"vertices",veto:"vetoes",vita:"vitae",vortex:"vortices",watercraft:"watercraft",wharf:"wharves",wife:"wives",wolf:"wolves",woman:"women"}},,,function(e){"use strict";e.exports=generated;function generated(e){var r=optional(optional(e).position);var t=optional(r.start);var n=optional(r.end);return!t.line||!t.column||!n.line||!n.column}function optional(e){return e&&typeof e==="object"?e:{}}},,function(e,r,t){"use strict";var n=t(694);var i=t(731);var u=t(372);var o={enable:true,disable:true,ignore:true};e.exports=messageControl;function messageControl(e){var r=e&&e.name;var t=e&&e.marker;var n=e&&e.test;var s;var a;var f;var c;var l;if(!r){throw new Error("Expected `name` in `options`, got `"+r+"`")}if(!t){throw new Error("Expected `name` in `options`, got `"+r+"`")}if(!n){throw new Error("Expected `test` in `options`, got `"+n+"`")}a=e.known;f=e.reset;c=e.enable||[];l=e.disable||[];s=e.source;if(!s){s=[r]}else if(typeof s==="string"){s=[s]}return transformer;function transformer(r,p){var h=i(p).toOffset;var v=!f;var D=detectGaps(r,p);var d={};var g=[];u(r,n,visitor);p.messages=p.messages.filter(filter);function visitor(r,n,i){var u=t(r);var s;var a;var c;var l;var h;var v;var D;var d;if(!u||u.name!==e.name){return}s=u.attributes.split(/\s/g);c=s.shift();v=i.children[n+1];D=u.node.position&&u.node.position.start;d=v&&v.position&&v.position.end;if(!c||!o[c]===true){p.fail("Unknown keyword `"+c+"`: expected "+"`'enable'`, `'disable'`, or `'ignore'`",u.node)}h=s.length;l=-1;while(++li){return false}}return check(e,n,t)&&check(e,g)}function isKnown(e,r,t){var n=a?a.indexOf(e)!==-1:true;if(!n){p.warn("Unknown rule: cannot "+r+" `'"+e+"'`",t)}return n}function getState(e){var r=e?d[e]:g;if(r&&r.length!==0){return r[r.length-1].state}if(!e){return!f}if(f){return c.indexOf(e)!==-1}return l.indexOf(e)===-1}function toggle(e,r,t){var n=t?d[t]:g;var i;var u;if(!n){n=[];d[t]=n}u=getState(t);i=r;if(i!==u){n.push({state:i,position:e})}if(!t){for(t in d){toggle(e,r,t)}}}function check(e,r,t){var n=r&&r.length;var i=-1;var u;while(--n>i){u=r[n];if(!u.position||!u.position.line||!u.position.column){continue}if(u.position.line=e){return}if(o){s.push({start:i,end:e});o=false}i=e}}},,,,,,,function(e,r,t){"use strict";var n=t(227);e.exports=normalize;function normalize(e){return n(e).toLowerCase()}},function(e){"use strict";e.exports=marker;var r=/\s+/g;var t=/\s+([-a-z0-9_]+)(?:=(?:"((?:\\[\s\S]|[^"])+)"|'((?:\\[\s\S]|[^'])+)'|((?:\\[\s\S]|[^"'\s])+)))?/gi;var n=/\s*([a-zA-Z0-9-]+)(\s+([\s\S]*))?\s*/;var i=new RegExp("(\\s*\x3c!--"+n.source+"--\x3e\\s*)");function marker(e){var r;var t;var u;var o;if(!e){return null}r=e.type;if(r!=="html"&&r!=="comment"){return null}t=e.value;u=t.match(r==="comment"?n:i);if(!u||u[0].length!==t.length){return null}u=u.slice(e.type==="comment"?1:2);o=parameters(u[1]||"");if(!o){return null}return{name:u[0],attributes:u[2]||"",parameters:o,node:e}}function parameters(e){var n={};var i=e.replace(t,replacer);return i.replace(r,"")?null:n;function replacer(e,r,t,i,u){var o=t||i||u||"";if(o==="true"||o===""){o=true}else if(o==="false"){o=false}else if(!isNaN(o)){o=Number(o)}n[r]=o;return""}}},function(e,r,t){"use strict";var n=t(164);e.exports=strong;function strong(e){var r=n(this.options.strong,2);return r+this.all(e).join("")+r}},function(e){e.exports=function isExtglob(e){if(typeof e!=="string"||e===""){return false}var r;while(r=/(\\).|([@?!+*]\(.*\))/g.exec(e)){if(r[2])return true;e=e.slice(r.index+r[0].length)}return false}},function(e,r,t){"use strict";var n=t(122);var i=t(425);e.exports=image;var u=" ";var o="(";var s=")";var a="[";var f="]";var c="!";function image(e){var r=this;var t=n(r.encode(e.url||"",e));var l=r.enterLink();var p=r.encode(r.escape(e.alt||"",e));l();if(e.title){t+=u+i(r.encode(e.title,e))}return c+a+p+f+o+t+s}},function(e,r,t){"use strict";var n=t(7)("unified-engine:file-pipeline:transform");var i=t(877);e.exports=transform;function transform(e,r,t,u){if(i(r).fatal){u()}else{n("Transforming document `%s`",r.path);e.processor.run(e.tree,r,onrun)}function onrun(r,t){n("Transformed document (error: %s)",r);e.tree=t;u(r)}}},function(e){e.exports=function(e,r){if(typeof e!=="string"){throw new TypeError("expected path to be a string")}if(e==="\\"||e==="/")return"/";var t=e.length;if(t<=1)return e;var n="";if(t>4&&e[3]==="\\"){var i=e[2];if((i==="?"||i===".")&&e.slice(0,2)==="\\\\"){e=e.slice(2);n="//"}}var u=e.split(/[/\\]+/);if(r!==false&&u[u.length-1]===""){u.pop()}return n+u.join("/")}},,,,,,,,,,,,function(e){"use strict";e.exports=setextHeading;var r="\n";var t="\t";var n=" ";var i="=";var u="-";var o=3;var s=1;var a=2;function setextHeading(e,f,c){var l=this;var p=e.now();var h=f.length;var v=-1;var D="";var d;var g;var m;var E;var b;while(++v=o){v--;break}D+=m}d="";g="";while(++v0?parseInt(r):null};for(;nisNaN(e)?{}:{depth:e};const O=u(n.stat);const x=u(n.open);const k=u(n.close);const R=u(n.lstat);const T=u(n.realpath);const I={stat:O,lstat:R};const L=new Map;const M=10;const j=new Set([69888,70400,71424,72704,73472,131328,131840,262912]);const P=(e,r)=>{const t=o.watch(e,r);return{stop:t}};function setFSEventsListener(e,r,t,n,u){let s=i.extname(e)?i.dirname(e):e;const a=i.dirname(s);let f=L.get(s);if(N(a)){s=a}const c=i.resolve(e);const l=c!==r;const p=(e,n,u)=>{if(l)e=e.replace(r,c);if(e===c||!e.indexOf(c+i.sep))t(e,n,u)};let h=false;for(const e of L.keys()){if(r.indexOf(i.resolve(e)+i.sep)===0){s=e;f=L.get(s);h=true;break}}if(f||h){f.listeners.add(p)}else{f={listeners:new Set([p]),rawEmitter:n,watcher:P(s,(e,r)=>{if(u.closed)return;const t=o.getInfo(e,r);f.listeners.forEach(n=>{n(e,r,t)});f.rawEmitter(t.event,e,t)})};L.set(s,f)}return()=>{const e=f.listeners;e.delete(p);if(!e.size){L.delete(s);if(f.watcher)return f.watcher.stop().then(()=>{f.rawEmitter=f.watcher=undefined;Object.freeze(f)})}}}const N=e=>{let r=0;for(const t of L.keys()){if(t.indexOf(e)===0){r++;if(r>=M){return true}}}return false};const $=()=>o&&L.size<128;const H=(e,r)=>{let t=0;while(!e.indexOf(r)&&(e=i.dirname(e))!==r)t++;return t};class FsEventsHandler{constructor(e){this.fsw=e}checkIgnored(e,r){const t=this.fsw._ignoredPaths;if(this.fsw._isIgnored(e,r)){t.add(e);if(r&&r.isDirectory()){t.add(e+A)}return true}t.delete(e);t.delete(e+A)}addOrChange(e,r,t,n,i,u,o,f){const c=i.has(u)?a:s;this.handleEvent(c,e,r,t,n,i,u,o,f)}async checkFd(e,r,t,n,i,u,o,s){try{const a=await x(e,_);if(this.fsw.closed)return;await k(a);if(this.fsw.closed)return;this.addOrChange(e,r,t,n,i,u,o,s)}catch(a){if(a.code==="EACCES"){this.addOrChange(e,r,t,n,i,u,o,s)}else{this.handleEvent(c,e,r,t,n,i,u,o,s)}}}handleEvent(e,r,t,n,i,u,o,a,l){if(this.fsw.closed||this.checkIgnored(r))return;if(e===c){if(a.type===E||u.has(o)){this.fsw._remove(i,o)}}else{if(e===s){if(a.type===E)this.fsw._getWatchedDir(r);if(a.type===b&&l.followSymlinks){const e=l.depth===undefined?undefined:H(t,n)+1;return this._addToFsEvents(r,false,true,e)}this.fsw._getWatchedDir(i).add(o)}const u=a.type===E?e+C:e;this.fsw._emit(u,r);if(u===f)this._addToFsEvents(r,false,true)}}_watchWithFsEvents(e,r,t,n){if(this.fsw.closed)return;if(this.fsw._isIgnored(e))return;const u=this.fsw.options;const o=async(o,s,a)=>{if(this.fsw.closed)return;if(u.depth!==undefined&&H(o,r)>u.depth)return;const f=t(i.join(e,i.relative(e,o)));if(n&&!n(f))return;const l=i.dirname(f);const p=i.basename(f);const h=this.fsw._getWatchedDir(a.type===E?f:l);if(j.has(s)||a.event===m){if(typeof u.ignored===y){let e;try{e=await O(f)}catch(e){}if(this.fsw.closed)return;if(this.checkIgnored(f,e))return;if(e){this.addOrChange(f,o,r,l,h,p,a,u)}else{this.handleEvent(c,f,o,r,l,h,p,a,u)}}else{this.checkFd(f,o,r,l,h,p,a,u)}}else{switch(a.event){case v:case D:return this.addOrChange(f,o,r,l,h,p,a,u);case d:case g:return this.checkFd(f,o,r,l,h,p,a,u)}}};const s=setFSEventsListener(e,r,o,this.fsw._emitRaw,this.fsw);this.fsw._emitReady();return s}async _handleFsEventsSymlink(e,r,t,n){if(this.fsw.closed||this.fsw._symlinkPaths.has(r))return;this.fsw._symlinkPaths.set(r,true);this.fsw._incrReadyCount();try{const r=await T(e);if(this.fsw.closed)return;if(this.fsw._isIgnored(r)){return this.fsw._emitReady()}this.fsw._incrReadyCount();this._addToFsEvents(r||e,n=>{let u=e;if(r&&r!==w){u=n.replace(r,e)}else if(n!==w){u=i.join(e,n)}return t(u)},false,n)}catch(e){if(this.fsw._handleError(e)){return this.fsw._emitReady()}}}emitAdd(e,r,t,n,u){const o=t(e);const a=r.isDirectory();const c=this.fsw._getWatchedDir(i.dirname(o));const l=i.basename(o);if(a)this.fsw._getWatchedDir(o);if(c.has(l))return;c.add(l);if(!n.ignoreInitial||u===true){this.fsw._emit(a?f:s,o,r)}}initWatch(e,r,t,n){if(this.fsw.closed)return;const u=this._watchWithFsEvents(t.watchPath,i.resolve(e||t.watchPath),n,t.globFilter);this.fsw._addPathCloser(r,u)}async _addToFsEvents(e,r,t,n){if(this.fsw.closed){return}const u=this.fsw.options;const o=typeof r===y?r:S;const s=this.fsw._getWatchHelpers(e);try{const r=await I[s.statMethod](s.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(s.watchPath,r)){throw null}if(r.isDirectory()){if(!s.globFilter)this.emitAdd(o(e),r,o,u,t);if(n&&n>u.depth)return;this.fsw._readdirp(s.watchPath,{fileFilter:e=>s.filterPath(e),directoryFilter:e=>s.filterDir(e),...B(u.depth-(n||0))}).on(p,e=>{if(this.fsw.closed){return}if(e.stats.isDirectory()&&!s.filterPath(e))return;const r=i.join(s.watchPath,e.path);const{fullPath:n}=e;if(s.followSymlinks&&e.stats.isSymbolicLink()){const e=u.depth===undefined?undefined:H(r,i.resolve(s.watchPath))+1;this._handleFsEventsSymlink(r,n,o,e)}else{this.emitAdd(r,e.stats,o,u,t)}}).on(l,F).on(h,()=>{this.fsw._emitReady()})}else{this.emitAdd(s.watchPath,r,o,u,t);this.fsw._emitReady()}}catch(e){if(!e||this.fsw._handleError(e)){this.fsw._emitReady();this.fsw._emitReady()}}if(u.persistent&&t!==true){if(typeof r===y){this.initWatch(undefined,e,s,o)}else{let r;try{r=await T(s.watchPath)}catch(e){}this.initWatch(r,e,s,o)}}}}e.exports=FsEventsHandler;e.exports.canUse=$},function(e,r,t){"use strict";var n=t(679);e.exports=length;var i="&";function length(e){var r;if(e.charAt(0)!==i){return 0}r=e.split(i,2).join(i);return r.length-n(r).length}},,,function(e,r,t){function setup(e){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=t(750);Object.keys(e).forEach(r=>{createDebug[r]=e[r]});createDebug.instances=[];createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(e){let r=0;for(let t=0;t{if(r==="%%"){return r}u++;const i=createDebug.formatters[n];if(typeof i==="function"){const n=e[u];r=i.call(t,n);e.splice(u,1);u--}return r});createDebug.formatArgs.call(t,e);const o=t.log||createDebug.log;o.apply(t,e)}debug.namespace=e;debug.enabled=createDebug.enabled(e);debug.useColors=createDebug.useColors();debug.color=selectColor(e);debug.destroy=destroy;debug.extend=extend;if(typeof createDebug.init==="function"){createDebug.init(debug)}createDebug.instances.push(debug);return debug}function destroy(){const e=createDebug.instances.indexOf(this);if(e!==-1){createDebug.instances.splice(e,1);return true}return false}function extend(e,r){const t=createDebug(this.namespace+(typeof r==="undefined"?":":r)+e);t.log=this.log;return t}function enable(e){createDebug.save(e);createDebug.names=[];createDebug.skips=[];let r;const t=(typeof e==="string"?e:"").split(/[\s,]+/);const n=t.length;for(r=0;r"-"+e)].join(",");createDebug.enable("");return e}function enabled(e){if(e[e.length-1]==="*"){return true}let r;let t;for(r=0,t=createDebug.skips.length;re[t])e[t]=n});return e},[]);var o=map(e,function(e){return map(e,function(e,r){var t=String(e);if(n[r]==="."){var o=dotindex(t);var s=u[r]+(/\./.test(t)?1:2)-(i(t)-o);return t+Array(s).join(" ")}else return t})});var s=reduce(o,function(e,r){forEach(r,function(r,t){var n=i(r);if(!e[t]||n>e[t])e[t]=n});return e},[]);return map(o,function(e){return map(e,function(e,r){var t=s[r]-i(e)||0;var u=Array(Math.max(t+1,1)).join(" ");if(n[r]==="r"||n[r]==="."){return u+e}if(n[r]==="c"){return Array(Math.ceil(t/2+1)).join(" ")+e+Array(Math.floor(t/2+1)).join(" ")}return e+u}).join(t).replace(/\s+$/,"")}).join("\n")};function dotindex(e){var r=/\.[^.]*$/.exec(e);return r?r.index+1:e.length}function reduce(e,r,t){if(e.reduce)return e.reduce(r,t);var n=0;var i=arguments.length>=3?t:e[n++];for(;n{const i=testProhibited(t,n);if(i){r.message(`Use "${t.yes}" instead of "${i}"`,e)}})}}},function(e,r,t){"use strict";var n=t(7)("unified-engine:file-pipeline:stringify");var i=t(877);var u=t(962);e.exports=stringify;function stringify(e,r){var t=e.processor;var o=e.tree;var s;if(i(r).fatal){n("Not compiling failed document");return}if(!e.output&&!e.out&&!e.alwaysStringify){n("Not compiling document without output settings");return}n("Compiling `%s`",r.path);if(e.inspect){if(r.path){r.extname=".txt"}s=u[e.color?"color":"noColor"](o)+"\n"}else if(e.treeOut){if(r.path){r.extname=".json"}s=JSON.stringify(o,null,2)+"\n"}else{s=t.stringify(o,r)}r.contents=s;n("Compiled document")}},,function(e,r,t){"use strict";var n=t(141);e.exports=n.DEFAULT=new n({include:[t(240)],explicit:[t(32),t(107),t(439)]})},function(e,r,t){"use strict";const n=t(747);const i=t(622);const{promisify:u}=t(669);const o=t(374);const{isWindows:s,EMPTY_FN:a,EMPTY_STR:f,KEY_LISTENERS:c,KEY_ERR:l,KEY_RAW:p,HANDLER_KEYS:h,EV_CHANGE:v,EV_ADD:D,EV_ADD_DIR:d,EV_ERROR:g,STR_DATA:m,STR_END:E,BRACE_START:b,STAR:A}=t(287);const C="watch";const w=u(n.open);const y=u(n.stat);const F=u(n.lstat);const S=u(n.close);const _=u(n.realpath);const B={lstat:F,stat:y};const O=(e,r)=>{if(e instanceof Set){e.forEach(r)}else{r(e)}};const x=(e,r,t)=>{let n=e[r];if(!(n instanceof Set)){e[r]=n=new Set([n])}n.add(t)};const k=e=>r=>{const t=e[r];if(t instanceof Set){t.clear()}else{delete e[r]}};const R=(e,r,t)=>{const n=e[r];if(n instanceof Set){n.delete(t)}else if(n===t){delete e[r]}};const T=e=>e instanceof Set?e.size===0:!e;const I=new Map;function createFsWatchInstance(e,r,t,u,o){const s=(r,n)=>{t(e);o(r,n,{watchedPath:e});if(n&&e!==n){L(i.resolve(e,n),c,i.join(e,n))}};try{return n.watch(e,r,s)}catch(e){u(e)}}const L=(e,r,t,n,i)=>{const u=I.get(e);if(!u)return;O(u[r],e=>{e(t,n,i)})};const M=(e,r,t,n)=>{const{listener:i,errHandler:u,rawEmitter:o}=n;let a=I.get(r);let f;if(!t.persistent){f=createFsWatchInstance(e,t,i,u,o);return f.close.bind(f)}if(a){x(a,c,i);x(a,l,u);x(a,p,o)}else{f=createFsWatchInstance(e,t,L.bind(null,r,c),u,L.bind(null,r,p));if(!f)return;f.on(g,async t=>{const n=L.bind(null,r,l);a.watcherUnusable=true;if(s&&t.code==="EPERM"){try{const r=await w(e,"r");await S(r);n(t)}catch(e){}}else{n(t)}});a={listeners:i,errHandlers:u,rawEmitters:o,watcher:f};I.set(r,a)}return()=>{R(a,c,i);R(a,l,u);R(a,p,o);if(T(a.listeners)){a.watcher.close();I.delete(r);h.forEach(k(a));a.watcher=undefined;Object.freeze(a)}}};const j=new Map;const P=(e,r,t,i)=>{const{listener:u,rawEmitter:o}=i;let s=j.get(r);let a=new Set;let f=new Set;const l=s&&s.options;if(l&&(l.persistentt.interval)){a=s.listeners;f=s.rawEmitters;n.unwatchFile(r);s=undefined}if(s){x(s,c,u);x(s,p,o)}else{s={listeners:u,rawEmitters:o,options:t,watcher:n.watchFile(r,t,(t,n)=>{O(s.rawEmitters,e=>{e(v,r,{curr:t,prev:n})});const i=t.mtimeMs;if(t.size!==n.size||i>n.mtimeMs||i===0){O(s.listeners,r=>r(e,t))}})};j.set(r,s)}return()=>{R(s,c,u);R(s,p,o);if(T(s.listeners)){j.delete(r);n.unwatchFile(r);s.options=s.watcher=undefined;Object.freeze(s)}}};class NodeFsHandler{constructor(e){this.fsw=e;this._boundHandleError=(r=>e._handleError(r))}_watchWithNodeFs(e,r){const t=this.fsw.options;const n=i.dirname(e);const u=i.basename(e);const s=this.fsw._getWatchedDir(n);s.add(u);const f=i.resolve(e);const c={persistent:t.persistent};if(!r)r=a;let l;if(t.usePolling){c.interval=t.enableBinaryInterval&&o(u)?t.binaryInterval:t.interval;l=P(e,f,c,{listener:r,rawEmitter:this.fsw._emitRaw})}else{l=M(e,f,c,{listener:r,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw})}return l}_handleFile(e,r,t){if(this.fsw.closed){return}const n=i.dirname(e);const u=i.basename(e);const o=this.fsw._getWatchedDir(n);let s=r;if(o.has(u))return;const a=this._watchWithNodeFs(e,async(r,t)=>{if(!this.fsw._throttle(C,e,5))return;if(!t||t.mtimeMs===0){try{const r=await y(e);if(this.fsw.closed)return;const t=r.atimeMs;const i=r.mtimeMs;if(!t||t<=i||i!==s.mtimeMs){this.fsw._emit(v,e,r)}s=r}catch(e){this.fsw._remove(n,u)}}else if(o.has(u)){const r=t.atimeMs;const n=t.mtimeMs;if(!r||r<=n||n!==s.mtimeMs){this.fsw._emit(v,e,t)}s=t}});if(!(t&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(D,e,0))return;this.fsw._emit(D,e,r)}return a}async _handleSymlink(e,r,t,n){if(this.fsw.closed){return}const i=e.fullPath;const u=this.fsw._getWatchedDir(r);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();const r=await _(t);if(this.fsw.closed)return;if(u.has(n)){if(this.fsw._symlinkPaths.get(i)!==r){this.fsw._symlinkPaths.set(i,r);this.fsw._emit(v,t,e.stats)}}else{u.add(n);this.fsw._symlinkPaths.set(i,r);this.fsw._emit(D,t,e.stats)}this.fsw._emitReady();return true}if(this.fsw._symlinkPaths.has(i)){return true}this.fsw._symlinkPaths.set(i,true)}_handleRead(e,r,t,n,u,o,s){e=i.join(e,f);if(!t.hasGlob){s=this.fsw._throttle("readdir",e,1e3);if(!s)return}const a=this.fsw._getWatchedDir(t.path);const c=new Set;let l=this.fsw._readdirp(e,{fileFilter:e=>t.filterPath(e),directoryFilter:e=>t.filterDir(e),depth:0}).on(m,async s=>{if(this.fsw.closed){l=undefined;return}const f=s.path;let p=i.join(e,f);c.add(f);if(s.stats.isSymbolicLink()&&await this._handleSymlink(s,e,p,f)){return}if(this.fsw.closed){l=undefined;return}if(f===n||!n&&!a.has(f)){this.fsw._incrReadyCount();p=i.join(u,i.relative(u,p));this._addToNodeFs(p,r,t,o+1)}}).on(g,this._boundHandleError);return new Promise(r=>l.once(E,()=>{if(this.fsw.closed){l=undefined;return}const f=s?s.clear():false;r();a.getChildren().filter(r=>{return r!==e&&!c.has(r)&&(!t.hasGlob||t.filterPath({fullPath:i.resolve(e,r)}))}).forEach(r=>{this.fsw._remove(e,r)});l=undefined;if(f)this._handleRead(e,false,t,n,u,o,s)}))}async _handleDir(e,r,t,n,u,o,s){const a=this.fsw._getWatchedDir(i.dirname(e));const f=a.has(i.basename(e));if(!(t&&this.fsw.options.ignoreInitial)&&!u&&!f){if(!o.hasGlob||o.globFilter(e))this.fsw._emit(d,e,r)}a.add(i.basename(e));this.fsw._getWatchedDir(e);let c;let l;const p=this.fsw.options.depth;if((p==null||n<=p)&&!this.fsw._symlinkPaths.has(s)){if(!u){await this._handleRead(e,t,o,u,e,n,c);if(this.fsw.closed)return}l=this._watchWithNodeFs(e,(r,t)=>{if(t&&t.mtimeMs===0)return;this._handleRead(r,false,o,u,e,n,c)})}return l}async _addToNodeFs(e,r,t,n,u){const o=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed){o();return false}const s=this.fsw._getWatchHelpers(e,n);if(!s.hasGlob&&t){s.hasGlob=t.hasGlob;s.globFilter=t.globFilter;s.filterPath=(e=>t.filterPath(e));s.filterDir=(e=>t.filterDir(e))}try{const t=await B[s.statMethod](s.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(s.watchPath,t)){o();return false}const a=this.fsw.options.followSymlinks&&!e.includes(A)&&!e.includes(b);let f;if(t.isDirectory()){const i=a?await _(e):e;if(this.fsw.closed)return;f=await this._handleDir(s.watchPath,t,r,n,u,s,i);if(this.fsw.closed)return;if(e!==i&&i!==undefined){this.fsw._symlinkPaths.set(i,true)}}else if(t.isSymbolicLink()){const u=a?await _(e):e;if(this.fsw.closed)return;const o=i.dirname(s.watchPath);this.fsw._getWatchedDir(o).add(s.watchPath);this.fsw._emit(D,s.watchPath,t);f=await this._handleDir(o,t,r,n,e,s,u);if(this.fsw.closed)return;if(u!==undefined){this.fsw._symlinkPaths.set(i.resolve(e),u)}}else{f=this._handleFile(s.watchPath,t,r)}o();this.fsw._addPathCloser(e,f);return false}catch(r){if(this.fsw._handleError(r)){o();return e}}}}e.exports=NodeFsHandler},function(e,r,t){var n=t(622);var i=process.platform==="win32";var u=t(747);var o=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function rethrow(){var e;if(o){var r=new Error;e=debugCallback}else e=missingCallback;return e;function debugCallback(e){if(e){r.message=e.message;e=r;missingCallback(e)}}function missingCallback(e){if(e){if(process.throwDeprecation)throw e;else if(!process.noDeprecation){var r="fs: missing callback "+(e.stack||e.message);if(process.traceDeprecation)console.trace(r);else console.error(r)}}}}function maybeCallback(e){return typeof e==="function"?e:rethrow()}var s=n.normalize;if(i){var a=/(.*?)(?:[\/\\]+|$)/g}else{var a=/(.*?)(?:[\/]+|$)/g}if(i){var f=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/}else{var f=/^[\/]*/}r.realpathSync=function realpathSync(e,r){e=n.resolve(e);if(r&&Object.prototype.hasOwnProperty.call(r,e)){return r[e]}var t=e,o={},s={};var c;var l;var p;var h;start();function start(){var r=f.exec(e);c=r[0].length;l=r[0];p=r[0];h="";if(i&&!s[p]){u.lstatSync(p);s[p]=true}}while(c=e.length){if(r)r[o]=e;return t(null,e)}a.lastIndex=l;var n=a.exec(e);v=p;p+=n[0];h=v+n[1];l=a.lastIndex;if(c[h]||r&&r[h]===h){return process.nextTick(LOOP)}if(r&&Object.prototype.hasOwnProperty.call(r,h)){return gotResolvedLink(r[h])}return u.lstat(h,gotStat)}function gotStat(e,n){if(e)return t(e);if(!n.isSymbolicLink()){c[h]=true;if(r)r[h]=h;return process.nextTick(LOOP)}if(!i){var o=n.dev.toString(32)+":"+n.ino.toString(32);if(s.hasOwnProperty(o)){return gotTarget(null,s[o],h)}}u.stat(h,function(e){if(e)return t(e);u.readlink(h,function(e,r){if(!i)s[o]=r;gotTarget(e,r)})})}function gotTarget(e,i,u){if(e)return t(e);var o=n.resolve(v,i);if(r)r[u]=o;gotResolvedLink(o)}function gotResolvedLink(r){e=n.resolve(r,e.slice(l));start()}}},,function(e,r,t){"use strict";var n=t(98);var i=t(515);e.exports=transform;function transform(e,r,t){var u=new n;e.fileSet=u;u.on("add",add).on("done",t);if(e.files.length===0){t()}else{e.files.forEach(u.add,u)}function add(t){i.run({configuration:e.configuration,processor:r.processor(),cwd:r.cwd,extensions:r.extensions,pluginPrefix:r.pluginPrefix,treeIn:r.treeIn,treeOut:r.treeOut,inspect:r.inspect,color:r.color,out:r.out,output:r.output,streamOut:r.streamOut,alwaysStringify:r.alwaysStringify},t,u,done);function done(e){if(e){e=t.message(e);e.fatal=true}u.emit("one",t)}}}},function(e,r,t){var n=t(757);e.exports=n(once);e.exports.strict=n(onceStrict);once.proto=once(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})});function once(e){var r=function(){if(r.called)return r.value;r.called=true;return r.value=e.apply(this,arguments)};r.called=false;return r}function onceStrict(e){var r=function(){if(r.called)throw new Error(r.onceError);r.called=true;return r.value=e.apply(this,arguments)};var t=e.name||"Function wrapped with `once`";r.onceError=t+" shouldn't be called more than once";r.called=false;return r}},function(e,r,t){"use strict";var n=t(354);var i=t(339);e.exports=i;var u=i.prototype;u.message=message;u.info=info;u.fail=fail;function message(e,r,t){var i=this.path;var u=new n(e,r,t);if(i){u.name=i+":"+u.name;u.file=i}u.fatal=false;this.messages.push(u);return u}function fail(){var e=this.message.apply(this,arguments);e.fatal=true;throw e}function info(){var e=this.message.apply(this,arguments);e.fatal=null;return e}},function(e){"use strict";e.exports=function(e){if(typeof e!=="string"){throw new TypeError("Expected a string")}return!/[^0-9a-z\xDF-\xFF]/.test(e.toLowerCase())}},,,,function(e,r,t){"use strict";e.exports=t(816)},function(e,r,t){"use strict";e.exports=t(185)},,function(e,r,t){"use strict";var n=t(191);var i=t(199);var u=t(983);e.exports=messageControl;function messageControl(e){return n(u({marker:i,test:"html"},e))}},function(e){"use strict";e.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},,function(e,r,t){var n=t(3);var i={};for(var u in n){if(n.hasOwnProperty(u)){i[n[u]]=u}}var o=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var s in o){if(o.hasOwnProperty(s)){if(!("channels"in o[s])){throw new Error("missing channels property: "+s)}if(!("labels"in o[s])){throw new Error("missing channel labels property: "+s)}if(o[s].labels.length!==o[s].channels){throw new Error("channel and label counts mismatch: "+s)}var a=o[s].channels;var f=o[s].labels;delete o[s].channels;delete o[s].labels;Object.defineProperty(o[s],"channels",{value:a});Object.defineProperty(o[s],"labels",{value:f})}}o.rgb.hsl=function(e){var r=e[0]/255;var t=e[1]/255;var n=e[2]/255;var i=Math.min(r,t,n);var u=Math.max(r,t,n);var o=u-i;var s;var a;var f;if(u===i){s=0}else if(r===u){s=(t-n)/o}else if(t===u){s=2+(n-r)/o}else if(n===u){s=4+(r-t)/o}s=Math.min(s*60,360);if(s<0){s+=360}f=(i+u)/2;if(u===i){a=0}else if(f<=.5){a=o/(u+i)}else{a=o/(2-u-i)}return[s,a*100,f*100]};o.rgb.hsv=function(e){var r;var t;var n;var i;var u;var o=e[0]/255;var s=e[1]/255;var a=e[2]/255;var f=Math.max(o,s,a);var c=f-Math.min(o,s,a);var l=function(e){return(f-e)/6/c+1/2};if(c===0){i=u=0}else{u=c/f;r=l(o);t=l(s);n=l(a);if(o===f){i=n-t}else if(s===f){i=1/3+r-n}else if(a===f){i=2/3+t-r}if(i<0){i+=1}else if(i>1){i-=1}}return[i*360,u*100,f*100]};o.rgb.hwb=function(e){var r=e[0];var t=e[1];var n=e[2];var i=o.rgb.hsl(e)[0];var u=1/255*Math.min(r,Math.min(t,n));n=1-1/255*Math.max(r,Math.max(t,n));return[i,u*100,n*100]};o.rgb.cmyk=function(e){var r=e[0]/255;var t=e[1]/255;var n=e[2]/255;var i;var u;var o;var s;s=Math.min(1-r,1-t,1-n);i=(1-r-s)/(1-s)||0;u=(1-t-s)/(1-s)||0;o=(1-n-s)/(1-s)||0;return[i*100,u*100,o*100,s*100]};function comparativeDistance(e,r){return Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2)+Math.pow(e[2]-r[2],2)}o.rgb.keyword=function(e){var r=i[e];if(r){return r}var t=Infinity;var u;for(var o in n){if(n.hasOwnProperty(o)){var s=n[o];var a=comparativeDistance(e,s);if(a.04045?Math.pow((r+.055)/1.055,2.4):r/12.92;t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92;n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92;var i=r*.4124+t*.3576+n*.1805;var u=r*.2126+t*.7152+n*.0722;var o=r*.0193+t*.1192+n*.9505;return[i*100,u*100,o*100]};o.rgb.lab=function(e){var r=o.rgb.xyz(e);var t=r[0];var n=r[1];var i=r[2];var u;var s;var a;t/=95.047;n/=100;i/=108.883;t=t>.008856?Math.pow(t,1/3):7.787*t+16/116;n=n>.008856?Math.pow(n,1/3):7.787*n+16/116;i=i>.008856?Math.pow(i,1/3):7.787*i+16/116;u=116*n-16;s=500*(t-n);a=200*(n-i);return[u,s,a]};o.hsl.rgb=function(e){var r=e[0]/360;var t=e[1]/100;var n=e[2]/100;var i;var u;var o;var s;var a;if(t===0){a=n*255;return[a,a,a]}if(n<.5){u=n*(1+t)}else{u=n+t-n*t}i=2*n-u;s=[0,0,0];for(var f=0;f<3;f++){o=r+1/3*-(f-1);if(o<0){o++}if(o>1){o--}if(6*o<1){a=i+(u-i)*6*o}else if(2*o<1){a=u}else if(3*o<2){a=i+(u-i)*(2/3-o)*6}else{a=i}s[f]=a*255}return s};o.hsl.hsv=function(e){var r=e[0];var t=e[1]/100;var n=e[2]/100;var i=t;var u=Math.max(n,.01);var o;var s;n*=2;t*=n<=1?n:2-n;i*=u<=1?u:2-u;s=(n+t)/2;o=n===0?2*i/(u+i):2*t/(n+t);return[r,o*100,s*100]};o.hsv.rgb=function(e){var r=e[0]/60;var t=e[1]/100;var n=e[2]/100;var i=Math.floor(r)%6;var u=r-Math.floor(r);var o=255*n*(1-t);var s=255*n*(1-t*u);var a=255*n*(1-t*(1-u));n*=255;switch(i){case 0:return[n,a,o];case 1:return[s,n,o];case 2:return[o,n,a];case 3:return[o,s,n];case 4:return[a,o,n];case 5:return[n,o,s]}};o.hsv.hsl=function(e){var r=e[0];var t=e[1]/100;var n=e[2]/100;var i=Math.max(n,.01);var u;var o;var s;s=(2-t)*n;u=(2-t)*i;o=t*i;o/=u<=1?u:2-u;o=o||0;s/=2;return[r,o*100,s*100]};o.hwb.rgb=function(e){var r=e[0]/360;var t=e[1]/100;var n=e[2]/100;var i=t+n;var u;var o;var s;var a;if(i>1){t/=i;n/=i}u=Math.floor(6*r);o=1-n;s=6*r-u;if((u&1)!==0){s=1-s}a=t+s*(o-t);var f;var c;var l;switch(u){default:case 6:case 0:f=o;c=a;l=t;break;case 1:f=a;c=o;l=t;break;case 2:f=t;c=o;l=a;break;case 3:f=t;c=a;l=o;break;case 4:f=a;c=t;l=o;break;case 5:f=o;c=t;l=a;break}return[f*255,c*255,l*255]};o.cmyk.rgb=function(e){var r=e[0]/100;var t=e[1]/100;var n=e[2]/100;var i=e[3]/100;var u;var o;var s;u=1-Math.min(1,r*(1-i)+i);o=1-Math.min(1,t*(1-i)+i);s=1-Math.min(1,n*(1-i)+i);return[u*255,o*255,s*255]};o.xyz.rgb=function(e){var r=e[0]/100;var t=e[1]/100;var n=e[2]/100;var i;var u;var o;i=r*3.2406+t*-1.5372+n*-.4986;u=r*-.9689+t*1.8758+n*.0415;o=r*.0557+t*-.204+n*1.057;i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*12.92;u=u>.0031308?1.055*Math.pow(u,1/2.4)-.055:u*12.92;o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92;i=Math.min(Math.max(0,i),1);u=Math.min(Math.max(0,u),1);o=Math.min(Math.max(0,o),1);return[i*255,u*255,o*255]};o.xyz.lab=function(e){var r=e[0];var t=e[1];var n=e[2];var i;var u;var o;r/=95.047;t/=100;n/=108.883;r=r>.008856?Math.pow(r,1/3):7.787*r+16/116;t=t>.008856?Math.pow(t,1/3):7.787*t+16/116;n=n>.008856?Math.pow(n,1/3):7.787*n+16/116;i=116*t-16;u=500*(r-t);o=200*(t-n);return[i,u,o]};o.lab.xyz=function(e){var r=e[0];var t=e[1];var n=e[2];var i;var u;var o;u=(r+16)/116;i=t/500+u;o=u-n/200;var s=Math.pow(u,3);var a=Math.pow(i,3);var f=Math.pow(o,3);u=s>.008856?s:(u-16/116)/7.787;i=a>.008856?a:(i-16/116)/7.787;o=f>.008856?f:(o-16/116)/7.787;i*=95.047;u*=100;o*=108.883;return[i,u,o]};o.lab.lch=function(e){var r=e[0];var t=e[1];var n=e[2];var i;var u;var o;i=Math.atan2(n,t);u=i*360/2/Math.PI;if(u<0){u+=360}o=Math.sqrt(t*t+n*n);return[r,o,u]};o.lch.lab=function(e){var r=e[0];var t=e[1];var n=e[2];var i;var u;var o;o=n/360*2*Math.PI;i=t*Math.cos(o);u=t*Math.sin(o);return[r,i,u]};o.rgb.ansi16=function(e){var r=e[0];var t=e[1];var n=e[2];var i=1 in arguments?arguments[1]:o.rgb.hsv(e)[2];i=Math.round(i/50);if(i===0){return 30}var u=30+(Math.round(n/255)<<2|Math.round(t/255)<<1|Math.round(r/255));if(i===2){u+=60}return u};o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])};o.rgb.ansi256=function(e){var r=e[0];var t=e[1];var n=e[2];if(r===t&&t===n){if(r<8){return 16}if(r>248){return 231}return Math.round((r-8)/247*24)+232}var i=16+36*Math.round(r/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5);return i};o.ansi16.rgb=function(e){var r=e%10;if(r===0||r===7){if(e>50){r+=3.5}r=r/10.5*255;return[r,r,r]}var t=(~~(e>50)+1)*.5;var n=(r&1)*t*255;var i=(r>>1&1)*t*255;var u=(r>>2&1)*t*255;return[n,i,u]};o.ansi256.rgb=function(e){if(e>=232){var r=(e-232)*10+8;return[r,r,r]}e-=16;var t;var n=Math.floor(e/36)/5*255;var i=Math.floor((t=e%36)/6)/5*255;var u=t%6/5*255;return[n,i,u]};o.rgb.hex=function(e){var r=((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255);var t=r.toString(16).toUpperCase();return"000000".substring(t.length)+t};o.hex.rgb=function(e){var r=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!r){return[0,0,0]}var t=r[0];if(r[0].length===3){t=t.split("").map(function(e){return e+e}).join("")}var n=parseInt(t,16);var i=n>>16&255;var u=n>>8&255;var o=n&255;return[i,u,o]};o.rgb.hcg=function(e){var r=e[0]/255;var t=e[1]/255;var n=e[2]/255;var i=Math.max(Math.max(r,t),n);var u=Math.min(Math.min(r,t),n);var o=i-u;var s;var a;if(o<1){s=u/(1-o)}else{s=0}if(o<=0){a=0}else if(i===r){a=(t-n)/o%6}else if(i===t){a=2+(n-r)/o}else{a=4+(r-t)/o+4}a/=6;a%=1;return[a*360,o*100,s*100]};o.hsl.hcg=function(e){var r=e[1]/100;var t=e[2]/100;var n=1;var i=0;if(t<.5){n=2*r*t}else{n=2*r*(1-t)}if(n<1){i=(t-.5*n)/(1-n)}return[e[0],n*100,i*100]};o.hsv.hcg=function(e){var r=e[1]/100;var t=e[2]/100;var n=r*t;var i=0;if(n<1){i=(t-n)/(1-n)}return[e[0],n*100,i*100]};o.hcg.rgb=function(e){var r=e[0]/360;var t=e[1]/100;var n=e[2]/100;if(t===0){return[n*255,n*255,n*255]}var i=[0,0,0];var u=r%1*6;var o=u%1;var s=1-o;var a=0;switch(Math.floor(u)){case 0:i[0]=1;i[1]=o;i[2]=0;break;case 1:i[0]=s;i[1]=1;i[2]=0;break;case 2:i[0]=0;i[1]=1;i[2]=o;break;case 3:i[0]=0;i[1]=s;i[2]=1;break;case 4:i[0]=o;i[1]=0;i[2]=1;break;default:i[0]=1;i[1]=0;i[2]=s}a=(1-t)*n;return[(t*i[0]+a)*255,(t*i[1]+a)*255,(t*i[2]+a)*255]};o.hcg.hsv=function(e){var r=e[1]/100;var t=e[2]/100;var n=r+t*(1-r);var i=0;if(n>0){i=r/n}return[e[0],i*100,n*100]};o.hcg.hsl=function(e){var r=e[1]/100;var t=e[2]/100;var n=t*(1-r)+.5*r;var i=0;if(n>0&&n<.5){i=r/(2*n)}else if(n>=.5&&n<1){i=r/(2*(1-n))}return[e[0],i*100,n*100]};o.hcg.hwb=function(e){var r=e[1]/100;var t=e[2]/100;var n=r+t*(1-r);return[e[0],(n-r)*100,(1-n)*100]};o.hwb.hcg=function(e){var r=e[1]/100;var t=e[2]/100;var n=1-t;var i=n-r;var u=0;if(i<1){u=(n-i)/(1-i)}return[e[0],i*100,u*100]};o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};o.gray.hsl=o.gray.hsv=function(e){return[0,0,e[0]]};o.gray.hwb=function(e){return[0,100,e[0]]};o.gray.cmyk=function(e){return[0,0,0,e[0]]};o.gray.lab=function(e){return[e[0],0,0]};o.gray.hex=function(e){var r=Math.round(e[0]/100*255)&255;var t=(r<<16)+(r<<8)+r;var n=t.toString(16).toUpperCase();return"000000".substring(n.length)+n};o.rgb.gray=function(e){var r=(e[0]+e[1]+e[2])/3;return[r/255*100]}},function(e){"use strict";e.exports=identity;function identity(e){return e}},,,function(e){e.exports=require("module")},,,function(e,r,t){"use strict";const n=t(747);const{Readable:i}=t(413);const u=t(622);const o=t(387);const{promisify:s}=t(669);const[a,f,c]=[s(n.readdir),s(n.stat),s(n.lstat)];const l="Dirent"in n;const p=process.platform==="win32";const h=typeof BigInt==="function";const v="!";const D=new Set(["ENOENT","EPERM","EACCES","ELOOP"]);const d=3;const g="files";const m="directories";const E="files_directories";const b="all";const A=new Set([g,E,b]);const C=new Set([m,E,b]);const w=[g,m,E,b];const y=e=>D.has(e);const F=e=>e(entry.basename);const S=e=>{if(e===undefined)return;if(typeof e==="function")return e;if(typeof e==="string"){const r=o(e.trim());return e=>r(e.basename)}if(Array.isArray(e)){const r=[];const t=[];for(const n of e){const e=n.trim();if(e.charAt(0)===v){t.push(o(e.slice(1)))}else{r.push(o(e))}}if(t.length>0){if(r.length>0){return e=>r.some(r=>r(e.basename))&&!t.some(r=>r(e.basename))}else{return e=>!t.some(r=>r(e.basename))}}else{return e=>r.some(r=>r(e.basename))}}};class ExploringDir{constructor(e,r){this.path=e;this.depth=r}}class ReaddirpStream extends i{static get defaultOptions(){return{root:".",fileFilter:e=>true,directoryFilter:e=>true,type:"files",lstat:false,depth:2147483648,alwaysStat:false}}constructor(e={}){super({objectMode:true,highWaterMark:1,autoDestroy:true});const r=Object.assign({},ReaddirpStream.defaultOptions,e);const{root:t}=r;this._fileFilter=S(r.fileFilter);this._directoryFilter=S(r.directoryFilter);this._statMethod=r.lstat?c:f;this._statOpts={bigint:p};this._maxDepth=r.depth;this._entryType=r.type;this._root=u.resolve(t);this._isDirent=!r.alwaysStat&&l;this._statsProp=this._isDirent?"dirent":"stats";this._readdir_options={encoding:"utf8",withFileTypes:this._isDirent};this.parents=[new ExploringDir(t,0)];this.filesToRead=0}async _read(){do{if(this.destroyed)return;const e=this.parents.pop();if(!e){break}await this._exploreDirectory(e)}while(!this.isPaused()&&!this._isQueueEmpty());this._endStreamIfQueueIsEmpty()}async _exploreDirectory(e){let r=[];this.filesToRead++;try{r=await a(e.path,this._readdir_options)}catch(e){if(y(e.code)){this._handleError(e)}else{this._handleFatalError(e)}}this.filesToRead--;if(this.destroyed)return;this.filesToRead+=r.length;const t=await Promise.all(r.map(r=>this._formatEntry(r,e)));if(this.destroyed)return;for(let r=0;r{this.push(e)};if(this._isDirent)setImmediate(r);else r()}}_emitPushIfUserWantsFile(e){if(A.has(this._entryType)){this.push(e)}}_handleError(e){if(!this.destroyed){this.emit("warn",e)}}_handleFatalError(e){this.destroy(e)}}const _=(e,r={})=>{let t=r["entryType"]||r.type;if(t==="both")t=E;if(t)r.type=t;if(e==null||typeof e==="undefined"){throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)")}else if(typeof e!=="string"){throw new Error(`readdirp: root argument must be a string. Usage: readdirp(root, options)`)}else if(t&&!w.includes(t)){throw new Error(`readdirp: Invalid type passed. Use one of ${w.join(", ")}`)}r.root=e;return new ReaddirpStream(r)};const B=(e,r={})=>{return new Promise((t,n)=>{const i=[];_(e,r).on("data",e=>i.push(e)).on("end",()=>t(i)).on("error",e=>n(e))})};_.promise=B;_.ReaddirpStream=ReaddirpStream;_.default=_;e.exports=_},,function(e,r,t){"use strict";const{sep:n}=t(622);const{platform:i}=process;r.EV_ALL="all";r.EV_READY="ready";r.EV_ADD="add";r.EV_CHANGE="change";r.EV_ADD_DIR="addDir";r.EV_UNLINK="unlink";r.EV_UNLINK_DIR="unlinkDir";r.EV_RAW="raw";r.EV_ERROR="error";r.STR_DATA="data";r.STR_END="end";r.STR_CLOSE="close";r.FSEVENT_CREATED="created";r.FSEVENT_MODIFIED="modified";r.FSEVENT_DELETED="deleted";r.FSEVENT_MOVED="moved";r.FSEVENT_CLONED="cloned";r.FSEVENT_UNKNOWN="unknown";r.FSEVENT_TYPE_DIRECTORY="directory";r.FSEVENT_TYPE_SYMLINK="symlink";r.KEY_LISTENERS="listeners";r.KEY_ERR="errHandlers";r.KEY_RAW="rawEmitters";r.HANDLER_KEYS=[r.KEY_LISTENERS,r.KEY_ERR,r.KEY_RAW];r.DOT_SLASH=`.${n}`;r.BACK_SLASH_RE=/\\/g;r.DOUBLE_SLASH_RE=/\/\//;r.SLASH_OR_BACK_SLASH_RE=/[/\\]/;r.DOT_RE=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/;r.REPLACER_RE=/^\.[/\\]/;r.SLASH="/";r.BRACE_START="{";r.BANG="!";r.ONE_DOT=".";r.TWO_DOTS="..";r.STAR="*";r.GLOBSTAR="**";r.ROOT_GLOBSTAR="/**/*";r.SLASH_GLOBSTAR="/**";r.DIR_SUFFIX="Dir";r.ANYMATCH_OPTS={dot:true};r.STRING_TYPE="string";r.FUNCTION_TYPE="function";r.EMPTY_STR="";r.EMPTY_FN=(()=>{});r.IDENTITY_FN=(e=>e);r.isWindows=i==="win32";r.isMacos=i==="darwin"},function(e,r,t){"use strict";var n=t(7)("unified-engine:file-set-pipeline:stdin");var i=t(273);var u=t(582);e.exports=stdin;function stdin(e,r,t){var o=r.streamIn;var s;if(r.files&&r.files.length!==0){n("Ignoring `streamIn`");if(r.filePath){s=new Error("Do not pass both `--file-path` and real files.\nDid you mean to pass stdin instead of files?")}t(s);return}if(o.isTTY){n("Cannot read from `tty` stream");t(new Error("No input"));return}n("Reading from `streamIn`");o.pipe(u({encoding:"string"},read));function read(u){var o=i(r.filePath||undefined);n("Read from `streamIn`");o.cwd=r.cwd;o.contents=u;o.data.unifiedEngineGiven=true;o.data.unifiedEngineStreamIn=true;e.files=[o];r.out=r.out===null||r.out===undefined?true:r.out;t()}}},,,,,function(e){e.exports=require("buffer")},,function(e,r,t){"use strict";var n=t(358);e.exports=inlineCode;inlineCode.locator=n;var i=10;var u=32;var o=96;function inlineCode(e,r,t){var n=r.length;var s=0;var a;var f;var c;var l;var p;var h;while(s2&&(l===u||l===i)&&(p===u||p===i)){s++;n--;while(s2){r.message(s,e)}}}}},function(e,r,t){"use strict";var n=t(540);var i=t(198);e.exports=footnoteDefinition;footnoteDefinition.notInList=true;footnoteDefinition.notInBlock=true;var u="\\";var o="\n";var s="\t";var a=" ";var f="[";var c="]";var l="^";var p=":";var h=/^( {4}|\t)?/gm;function footnoteDefinition(e,r,t){var v=this;var D=v.offset;var d;var g;var m;var E;var b;var A;var C;var w;var y;var F;var S;var _;if(!v.options.footnotes){return}d=0;g=r.length;m="";E=e.now();b=E.line;while(dtypeof e==="string"?e.replace(n(),""):e)},function(e,r,t){var n=t(726);var i=t(737);e.exports=expandTop;var u="\0SLASH"+Math.random()+"\0";var o="\0OPEN"+Math.random()+"\0";var s="\0CLOSE"+Math.random()+"\0";var a="\0COMMA"+Math.random()+"\0";var f="\0PERIOD"+Math.random()+"\0";function numeric(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function escapeBraces(e){return e.split("\\\\").join(u).split("\\{").join(o).split("\\}").join(s).split("\\,").join(a).split("\\.").join(f)}function unescapeBraces(e){return e.split(u).join("\\").split(o).join("{").split(s).join("}").split(a).join(",").split(f).join(".")}function parseCommaParts(e){if(!e)return[""];var r=[];var t=i("{","}",e);if(!t)return e.split(",");var n=t.pre;var u=t.body;var o=t.post;var s=n.split(",");s[s.length-1]+="{"+u+"}";var a=parseCommaParts(o);if(o.length){s[s.length-1]+=a.shift();s.push.apply(s,a)}r.push.apply(r,s);return r}function expandTop(e){if(!e)return[];if(e.substr(0,2)==="{}"){e="\\{\\}"+e.substr(2)}return expand(escapeBraces(e),true).map(unescapeBraces)}function identity(e){return e}function embrace(e){return"{"+e+"}"}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,r){return e<=r}function gte(e,r){return e>=r}function expand(e,r){var t=[];var u=i("{","}",e);if(!u||/\$$/.test(u.pre))return[e];var o=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(u.body);var a=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(u.body);var f=o||a;var c=u.body.indexOf(",")>=0;if(!f&&!c){if(u.post.match(/,.*\}/)){e=u.pre+"{"+u.body+s+u.post;return expand(e)}return[e]}var l;if(f){l=u.body.split(/\.\./)}else{l=parseCommaParts(u.body);if(l.length===1){l=expand(l[0],false).map(embrace);if(l.length===1){var p=u.post.length?expand(u.post,false):[""];return p.map(function(e){return u.pre+l[0]+e})}}}var h=u.pre;var p=u.post.length?expand(u.post,false):[""];var v;if(f){var D=numeric(l[0]);var d=numeric(l[1]);var g=Math.max(l[0].length,l[1].length);var m=l.length==3?Math.abs(numeric(l[2])):1;var E=lte;var b=d0){var F=new Array(y+1).join("0");if(C<0)w="-"+F+w.slice(1);else w=F+w}}}v.push(w)}}else{v=n(l,function(e){return expand(e,false)})}for(var S=0;S=0)return;var r=n.file(e);if(r){p.push(c(r));h.push(e)}}if(!s)[i(o,e,"config"),i(o,e+"rc")].forEach(addConfigFile);if(a)[i(a,".config",e,"config"),i(a,".config",e),i(a,"."+e,"config"),i(a,"."+e+"rc")].forEach(addConfigFile);addConfigFile(n.find("."+e+"rc"));if(l.config)addConfigFile(l.config);if(f.config)addConfigFile(f.config);return u.apply(null,p.concat([l,f,h.length?{configs:h,config:h[h.length-1]}:undefined]))}},,function(e,r,t){"use strict";var n=t(540);var i=t(238);e.exports=link;link.locator=i;var u="\n";var o="!";var s='"';var a="'";var f="(";var c=")";var l="<";var p=">";var h="[";var v="\\";var D="]";var d="`";function link(e,r,t){var i=this;var g="";var m=0;var E=r.charAt(0);var b=i.options.pedantic;var A=i.options.commonmark;var C=i.options.gfm;var w;var y;var F;var S;var _;var B;var O;var x;var k;var R;var T;var I;var L;var M;var j;var P;var N;var $;if(E===o){x=true;g=E;E=r.charAt(++m)}if(E!==h){return}if(!x&&i.inLink){return}g+=E;M="";m++;T=r.length;P=e.now();L=0;P.column+=m;P.offset+=m;while(m=F){F=0}}else if(E===v){m++;B+=r.charAt(m)}else if((!F||C)&&E===h){L++}else if((!F||C)&&E===D){if(L){L--}else{if(!b){while(m{if(typeof r.expandRange==="function"){return r.expandRange(...e,r)}e.sort();const t=`[${e.join("-")}]`;try{new RegExp(t)}catch(r){return e.map(e=>i.escapeRegex(e)).join("..")}return t};const l=(e,r)=>{return`Missing ${e}: "${r}" - use "\\\\${r}" to match literal characters`};const p=(e,r)=>{if(typeof e!=="string"){throw new TypeError("Expected a string")}e=f[e]||e;const t={...r};const p=typeof t.maxLength==="number"?Math.min(u,t.maxLength):u;let h=e.length;if(h>p){throw new SyntaxError(`Input length: ${h}, exceeds maximum allowed length: ${p}`)}const v={type:"bos",value:"",output:t.prepend||""};const D=[v];const d=t.capture?"":"?:";const g=i.isWindows(r);const m=n.globChars(g);const E=n.extglobChars(m);const{DOT_LITERAL:b,PLUS_LITERAL:A,SLASH_LITERAL:C,ONE_CHAR:w,DOTS_SLASH:y,NO_DOT:F,NO_DOT_SLASH:S,NO_DOTS_SLASH:_,QMARK:B,QMARK_NO_DOT:O,STAR:x,START_ANCHOR:k}=m;const R=e=>{return`(${d}(?:(?!${k}${e.dot?y:b}).)*?)`};const T=t.dot?"":F;const I=t.dot?B:O;let L=t.bash===true?R(t):x;if(t.capture){L=`(${L})`}if(typeof t.noext==="boolean"){t.noextglob=t.noext}const M={input:e,index:-1,start:0,dot:t.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,tokens:D};e=i.removePrefix(e,M);h=e.length;const j=[];const P=[];let N=v;let $;const H=()=>M.index===h-1;const U=M.peek=((r=1)=>e[M.index+r]);const W=M.advance=(()=>e[++M.index]);const G=()=>e.slice(M.index+1);const q=(e="",r=0)=>{M.consumed+=e;M.index+=r};const Y=e=>{M.output+=e.output!=null?e.output:e.value;q(e.value)};const z=()=>{let e=1;while(U()==="!"&&(U(2)!=="("||U(3)==="?")){W();M.start++;e++}if(e%2===0){return false}M.negated=true;M.start++;return true};const V=e=>{M[e]++;P.push(e)};const J=e=>{M[e]--;P.pop()};const Z=e=>{if(N.type==="globstar"){const r=M.braces>0&&(e.type==="comma"||e.type==="brace");const t=e.extglob===true||j.length&&(e.type==="pipe"||e.type==="paren");if(e.type!=="slash"&&e.type!=="paren"&&!r&&!t){M.output=M.output.slice(0,-N.output.length);N.type="star";N.value="*";N.output=L;M.output+=N.output}}if(j.length&&e.type!=="paren"&&!E[e.value]){j[j.length-1].inner+=e.value}if(e.value||e.output)Y(e);if(N&&N.type==="text"&&e.type==="text"){N.value+=e.value;return}e.prev=N;D.push(e);N=e};const Q=(e,r)=>{const n={...E[r],conditions:1,inner:""};n.prev=N;n.parens=M.parens;n.output=M.output;const i=(t.capture?"(":"")+n.open;V("parens");Z({type:e,value:r,output:M.output?"":w});Z({type:"paren",extglob:true,value:W(),output:i});j.push(n)};const X=e=>{let r=e.close+(t.capture?")":"");if(e.type==="negate"){let n=L;if(e.inner&&e.inner.length>1&&e.inner.includes("/")){n=R(t)}if(n!==L||H()||/^\)+$/.test(G())){r=e.close=")$))"+n}if(e.prev.type==="bos"&&H()){M.negatedExtglob=true}}Z({type:"paren",extglob:true,value:$,output:r});J("parens")};if(t.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(e)){let n=false;let u=e.replace(a,(e,r,t,i,u,o)=>{if(i==="\\"){n=true;return e}if(i==="?"){if(r){return r+i+(u?B.repeat(u.length):"")}if(o===0){return I+(u?B.repeat(u.length):"")}return B.repeat(t.length)}if(i==="."){return b.repeat(t.length)}if(i==="*"){if(r){return r+i+(u?L:"")}return L}return r?e:"\\"+e});if(n===true){if(t.unescape===true){u=u.replace(/\\/g,"")}else{u=u.replace(/\\+/g,e=>{return e.length%2===0?"\\\\":e?"\\":""})}}if(u===e&&t.contains===true){M.output=e;return M}M.output=i.wrapOutput(u,M,r);return M}while(!H()){$=W();if($==="\0"){continue}if($==="\\"){const e=U();if(e==="/"&&t.bash!==true){continue}if(e==="."||e===";"){continue}if(!e){$+="\\";Z({type:"text",value:$});continue}const r=/^\\+/.exec(G());let n=0;if(r&&r[0].length>2){n=r[0].length;M.index+=n;if(n%2!==0){$+="\\"}}if(t.unescape===true){$=W()||""}else{$+=W()||""}if(M.brackets===0){Z({type:"text",value:$});continue}}if(M.brackets>0&&($!=="]"||N.value==="["||N.value==="[^")){if(t.posix!==false&&$===":"){const e=N.value.slice(1);if(e.includes("[")){N.posix=true;if(e.includes(":")){const e=N.value.lastIndexOf("[");const r=N.value.slice(0,e);const t=N.value.slice(e+2);const n=o[t];if(n){N.value=r+n;M.backtrack=true;W();if(!v.output&&D.indexOf(N)===1){v.output=w}continue}}}}if($==="["&&U()!==":"||$==="-"&&U()==="]"){$="\\"+$}if($==="]"&&(N.value==="["||N.value==="[^")){$="\\"+$}if(t.posix===true&&$==="!"&&N.value==="["){$="^"}N.value+=$;Y({value:$});continue}if(M.quotes===1&&$!=='"'){$=i.escapeRegex($);N.value+=$;Y({value:$});continue}if($==='"'){M.quotes=M.quotes===1?0:1;if(t.keepQuotes===true){Z({type:"text",value:$})}continue}if($==="("){V("parens");Z({type:"paren",value:$});continue}if($===")"){if(M.parens===0&&t.strictBrackets===true){throw new SyntaxError(l("opening","("))}const e=j[j.length-1];if(e&&M.parens===e.parens+1){X(j.pop());continue}Z({type:"paren",value:$,output:M.parens?")":"\\)"});J("parens");continue}if($==="["){if(t.nobracket===true||!G().includes("]")){if(t.nobracket!==true&&t.strictBrackets===true){throw new SyntaxError(l("closing","]"))}$="\\"+$}else{V("brackets")}Z({type:"bracket",value:$});continue}if($==="]"){if(t.nobracket===true||N&&N.type==="bracket"&&N.value.length===1){Z({type:"text",value:$,output:"\\"+$});continue}if(M.brackets===0){if(t.strictBrackets===true){throw new SyntaxError(l("opening","["))}Z({type:"text",value:$,output:"\\"+$});continue}J("brackets");const e=N.value.slice(1);if(N.posix!==true&&e[0]==="^"&&!e.includes("/")){$="/"+$}N.value+=$;Y({value:$});if(t.literalBrackets===false||i.hasRegexChars(e)){continue}const r=i.escapeRegex(N.value);M.output=M.output.slice(0,-N.value.length);if(t.literalBrackets===true){M.output+=r;N.value=r;continue}N.value=`(${d}${r}|${N.value})`;M.output+=N.value;continue}if($==="{"&&t.nobrace!==true){V("braces");Z({type:"brace",value:$,output:"("});continue}if($==="}"){if(t.nobrace===true||M.braces===0){Z({type:"text",value:$,output:$});continue}let e=")";if(M.dots===true){const r=D.slice();const n=[];for(let e=r.length-1;e>=0;e--){D.pop();if(r[e].type==="brace"){break}if(r[e].type!=="dots"){n.unshift(r[e].value)}}e=c(n,t);M.backtrack=true}Z({type:"brace",value:$,output:e});J("braces");continue}if($==="|"){if(j.length>0){j[j.length-1].conditions++}Z({type:"text",value:$});continue}if($===","){let e=$;if(M.braces>0&&P[P.length-1]==="braces"){e="|"}Z({type:"comma",value:$,output:e});continue}if($==="/"){if(N.type==="dot"&&M.index===M.start+1){M.start=M.index+1;M.consumed="";M.output="";D.pop();N=v;continue}Z({type:"slash",value:$,output:C});continue}if($==="."){if(M.braces>0&&N.type==="dot"){if(N.value===".")N.output=b;N.type="dots";N.output+=$;N.value+=$;M.dots=true;continue}if(M.braces+M.parens===0&&N.type!=="bos"&&N.type!=="slash"){Z({type:"text",value:$,output:b});continue}Z({type:"dot",value:$,output:b});continue}if($==="?"){const e=N&&N.value==="(";if(!e&&t.noextglob!==true&&U()==="("&&U(2)!=="?"){Q("qmark",$);continue}if(N&&N.type==="paren"){const e=U();let r=$;if(e==="<"&&!i.supportsLookbehinds()){throw new Error("Node.js v10 or higher is required for regex lookbehinds")}if(N.value==="("&&!/[!=<:]/.test(e)||e==="<"&&!/<([!=]|\w+>)/.test(G())){r="\\"+$}Z({type:"text",value:$,output:r});continue}if(t.dot!==true&&(N.type==="slash"||N.type==="bos")){Z({type:"qmark",value:$,output:O});continue}Z({type:"qmark",value:$,output:B});continue}if($==="!"){if(t.noextglob!==true&&U()==="("){if(U(2)!=="?"||!/[!=<:]/.test(U(3))){Q("negate",$);continue}}if(t.nonegate!==true&&M.index===0){z(M);continue}}if($==="+"){if(t.noextglob!==true&&U()==="("&&U(2)!=="?"){Q("plus",$);continue}if(N&&N.value==="("||t.regex===false){Z({type:"plus",value:$,output:A});continue}if(N&&(N.type==="bracket"||N.type==="paren"||N.type==="brace")||M.parens>0){Z({type:"plus",value:$});continue}Z({type:"plus",value:A});continue}if($==="@"){if(t.noextglob!==true&&U()==="("&&U(2)!=="?"){Z({type:"at",extglob:true,value:$,output:""});continue}Z({type:"text",value:$});continue}if($!=="*"){if($==="$"||$==="^"){$="\\"+$}const e=s.exec(G());if(e){$+=e[0];M.index+=e[0].length}Z({type:"text",value:$});continue}if(N&&(N.type==="globstar"||N.star===true)){N.type="star";N.star=true;N.value+=$;N.output=L;M.backtrack=true;q($);continue}let r=G();if(t.noextglob!==true&&/^\([^?]/.test(r)){Q("star",$);continue}if(N.type==="star"){if(t.noglobstar===true){q($);continue}const n=N.prev;const i=n.prev;const u=n.type==="slash"||n.type==="bos";const o=i&&(i.type==="star"||i.type==="globstar");if(t.bash===true&&(!u||r[0]&&r[0]!=="/")){Z({type:"star",value:$,output:""});continue}const s=M.braces>0&&(n.type==="comma"||n.type==="brace");const a=j.length&&(n.type==="pipe"||n.type==="paren");if(!u&&n.type!=="paren"&&!s&&!a){Z({type:"star",value:$,output:""});continue}while(r.slice(0,3)==="/**"){const t=e[M.index+4];if(t&&t!=="/"){break}r=r.slice(3);q("/**",3)}if(n.type==="bos"&&H()){N.type="globstar";N.value+=$;N.output=R(t);M.output=N.output;q($);continue}if(n.type==="slash"&&n.prev.type!=="bos"&&!o&&H()){M.output=M.output.slice(0,-(n.output+N.output).length);n.output="(?:"+n.output;N.type="globstar";N.output=R(t)+(t.strictSlashes?")":"|$)");N.value+=$;M.output+=n.output+N.output;q($);continue}if(n.type==="slash"&&n.prev.type!=="bos"&&r[0]==="/"){const e=r[1]!==void 0?"|$":"";M.output=M.output.slice(0,-(n.output+N.output).length);n.output="(?:"+n.output;N.type="globstar";N.output=`${R(t)}${C}|${C}${e})`;N.value+=$;M.output+=n.output+N.output;q($+W());Z({type:"slash",value:$,output:""});continue}if(n.type==="bos"&&r[0]==="/"){N.type="globstar";N.value+=$;N.output=`(?:^|${C}|${R(t)}${C})`;M.output=N.output;q($+W());Z({type:"slash",value:$,output:""});continue}M.output=M.output.slice(0,-N.output.length);N.type="globstar";N.output=R(t);N.value+=$;M.output+=N.output;q($);continue}const n={type:"star",value:$,output:L};if(t.bash===true){n.output=".*?";if(N.type==="bos"||N.type==="slash"){n.output=T+n.output}Z(n);continue}if(N&&(N.type==="bracket"||N.type==="paren")&&t.regex===true){n.output=$;Z(n);continue}if(M.index===M.start||N.type==="slash"||N.type==="dot"){if(N.type==="dot"){M.output+=S;N.output+=S}else if(t.dot===true){M.output+=_;N.output+=_}else{M.output+=T;N.output+=T}if(U()!=="*"){M.output+=w;N.output+=w}}Z(n)}while(M.brackets>0){if(t.strictBrackets===true)throw new SyntaxError(l("closing","]"));M.output=i.escapeLast(M.output,"[");J("brackets")}while(M.parens>0){if(t.strictBrackets===true)throw new SyntaxError(l("closing",")"));M.output=i.escapeLast(M.output,"(");J("parens")}while(M.braces>0){if(t.strictBrackets===true)throw new SyntaxError(l("closing","}"));M.output=i.escapeLast(M.output,"{");J("braces")}if(t.strictSlashes!==true&&(N.type==="star"||N.type==="bracket")){Z({type:"maybe_slash",value:"",output:`${C}?`})}if(M.backtrack===true){M.output="";for(const e of M.tokens){M.output+=e.output!=null?e.output:e.value;if(e.suffix){M.output+=e.suffix}}}return M};p.fastpaths=((e,r)=>{const t={...r};const o=typeof t.maxLength==="number"?Math.min(u,t.maxLength):u;const s=e.length;if(s>o){throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${o}`)}e=f[e]||e;const a=i.isWindows(r);const{DOT_LITERAL:c,SLASH_LITERAL:l,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:v,NO_DOTS:D,NO_DOTS_SLASH:d,STAR:g,START_ANCHOR:m}=n.globChars(a);const E=t.dot?D:v;const b=t.dot?d:v;const A=t.capture?"":"?:";const C={negated:false,prefix:""};let w=t.bash===true?".*?":g;if(t.capture){w=`(${w})`}const y=e=>{if(e.noglobstar===true)return w;return`(${A}(?:(?!${m}${e.dot?h:c}).)*?)`};const F=e=>{switch(e){case"*":return`${E}${p}${w}`;case".*":return`${c}${p}${w}`;case"*.*":return`${E}${w}${c}${p}${w}`;case"*/*":return`${E}${w}${l}${p}${b}${w}`;case"**":return E+y(t);case"**/*":return`(?:${E}${y(t)}${l})?${b}${p}${w}`;case"**/*.*":return`(?:${E}${y(t)}${l})?${b}${w}${c}${p}${w}`;case"**/.*":return`(?:${E}${y(t)}${l})?${c}${p}${w}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const n=F(t[1],r);if(!n)return;return n+c+t[2]}}};const S=i.removePrefix(e,C);let _=F(S);if(_&&t.strictSlashes!==true){_+=`${l}?`}return _});e.exports=p},function(e){var r=Array.prototype.slice;e.exports=co;function co(e){var t=isGeneratorFunction(e);return function(n){var i=this;var u=e;if(t){var o=r.call(arguments),s=o.length;var a=s&&"function"==typeof o[s-1];n=a?o.pop():error;u=e.apply(this,o)}else{n=n||error}next();function exit(e,r){setImmediate(function(){n.call(i,e,r)})}function next(e,t){var n;if(arguments.length>2)t=r.call(arguments,1);if(e){try{n=u.throw(e)}catch(e){return exit(e)}}if(!e){try{n=u.next(t)}catch(e){return exit(e)}}if(n.done)return exit(null,n.value);n.value=toThunk(n.value,i);if("function"==typeof n.value){var o=false;try{n.value.call(i,function(){if(o)return;o=true;next.apply(i,arguments)})}catch(e){setImmediate(function(){if(o)return;o=true;next(e)})}return}next(new TypeError("You may only yield a function, promise, generator, array, or object, "+'but the following was passed: "'+String(n.value)+'"'))}}}function toThunk(e,r){if(isGeneratorFunction(e)){return co(e.call(r))}if(isGenerator(e)){return co(e)}if(isPromise(e)){return promiseToThunk(e)}if("function"==typeof e){return e}if(isObject(e)||Array.isArray(e)){return objectToThunk.call(r,e)}return e}function objectToThunk(e){var r=this;var t=Array.isArray(e);return function(n){var i=Object.keys(e);var u=i.length;var o=t?new Array(u):new e.constructor;var s;if(!u){setImmediate(function(){n(null,o)});return}if(!t){for(var a=0;a|$))/i;var f=/<\/(script|pre|style)>/i;var c=/^/;var p=/^<\?/;var h=/\?>/;var v=/^/;var d=/^/;var m=/^$/;var E=new RegExp(n.source+"\\s*$");function blockHtml(e,r,t){var n=this;var b=n.options.blocks.join("|");var A=new RegExp("^|$))","i");var C=r.length;var w=0;var y;var F;var S;var _;var B;var O;var x;var k=[[a,f,true],[c,l,true],[p,h,true],[v,D,true],[d,g,true],[A,m,true],[E,m,false]];while(wu.has(n.extname(e).slice(1).toLowerCase()))},,function(e){e.exports={_args:[["remark@11.0.2","/home/derek/node-runtime/tools/node-lint-md-cli-rollup"]],_from:"remark@11.0.2",_id:"remark@11.0.2",_inBundle:false,_integrity:"sha512-bh+eJgn8wgmbHmIBOuwJFdTVRVpl3fcVP6HxmpPWO0ULGP9Qkh6INJh0N5Uy7GqlV7DQYGoqaKiEIpM5LLvJ8w==",_location:"/remark",_phantomChildren:{},_requested:{type:"version",registry:true,raw:"remark@11.0.2",name:"remark",escapedName:"remark",rawSpec:"11.0.2",saveSpec:null,fetchSpec:"11.0.2"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/remark/-/remark-11.0.2.tgz",_spec:"11.0.2",_where:"/home/derek/node-runtime/tools/node-lint-md-cli-rollup",author:{name:"Titus Wormer",email:"tituswormer@gmail.com",url:"https://wooorm.com"},bugs:{url:"https://github.com/remarkjs/remark/issues"},contributors:[{name:"Titus Wormer",email:"tituswormer@gmail.com",url:"https://wooorm.com"}],dependencies:{"remark-parse":"^7.0.0","remark-stringify":"^7.0.0",unified:"^8.2.0"},description:"Markdown processor powered by plugins",files:["index.js","types/index.d.ts"],funding:{type:"opencollective",url:"https://opencollective.com/unified"},homepage:"https://remark.js.org",keywords:["unified","remark","markdown","mdast","abstract","syntax","tree","ast","parse","stringify","process"],license:"MIT",name:"remark",repository:{type:"git",url:"https://github.com/remarkjs/remark/tree/master/packages/remark"},scripts:{test:"tape test.js"},types:"types/index.d.ts",version:"11.0.2",xo:false}},function(e,r,t){var n=t(278);function buildGraph(){var e={};var r=Object.keys(n);for(var t=r.length,i=0;i{let t=[];if(Array.isArray(e)){for(let n of e){let e=s.create(n,r);if(Array.isArray(e)){t.push(...e)}else{t.push(e)}}}else{t=[].concat(s.create(e,r))}if(r&&r.expand===true&&r.nodupes===true){t=[...new Set(t)]}return t};s.parse=((e,r={})=>o(e,r));s.stringify=((e,r={})=>{if(typeof e==="string"){return n(s.parse(e,r),r)}return n(e,r)});s.compile=((e,r={})=>{if(typeof e==="string"){e=s.parse(e,r)}return i(e,r)});s.expand=((e,r={})=>{if(typeof e==="string"){e=s.parse(e,r)}let t=u(e,r);if(r.noempty===true){t=t.filter(Boolean)}if(r.nodupes===true){t=[...new Set(t)]}return t});s.create=((e,r={})=>{if(e===""||e.length<3){return[e]}return r.expand!==true?s.compile(e,r):s.expand(e,r)});e.exports=s},function(e,r,t){"use strict";var n=t(983);var i=t(679);e.exports=factory;function factory(e){decoder.raw=decodeRaw;return decoder;function normalize(r){var t=e.offset;var n=r.line;var i=[];while(++n){if(!(n in t)){break}i.push((t[n]||0)+1)}return{start:r,indent:i}}function decoder(r,t,n){i(r,{position:normalize(t),warning:handleWarning,text:n,reference:n,textContext:e,referenceContext:e})}function decodeRaw(e,r,t){return i(e,n(t,{position:normalize(r),warning:handleWarning}))}function handleWarning(r,t,n){if(n!==3){e.file.message(r,t)}}}},function(e,r,t){"use strict";e.exports=t(906)},,function(e,r,t){"use strict";var n=t(541);var i=t(665);var u=t(372);var o=t(766);var s=t(189);e.exports=n("remark-lint:list-item-indent",listItemIndent);var a=o.start;var f={"tab-size":true,mixed:true,space:true};function listItemIndent(e,r,t){var n=String(r);t=typeof t==="string"?t:"tab-size";if(f[t]!==true){r.fail("Invalid list-item indent style `"+t+"`: use either `'tab-size'`, `'space'`, or `'mixed'`")}u(e,"list",visitor);function visitor(e){var u=e.spread||e.loose;if(!s(e)){e.children.forEach(visitItem)}function visitItem(e){var o=e.children[0];var s=a(o);var f;var c;var l;var p;var h;f=n.slice(a(e).offset,s.offset).replace(/\[[x ]?]\s*$/i,"");c=f.trimRight().length;l=t==="tab-size"||t==="mixed"&&u?Math.ceil(c/4)*4:c+1;if(f.length!==l){p=l-f.length;h="Incorrect list-item indent: "+(p>0?"add":"remove")+" "+Math.abs(p)+" "+i("space",p);r.message(h,s)}}}}},,,,function(e,r,t){"use strict";var n=t(751);var i=new RegExp("^([0-9][0-9][0-9][0-9])"+"-([0-9][0-9])"+"-([0-9][0-9])$");var u=new RegExp("^([0-9][0-9][0-9][0-9])"+"-([0-9][0-9]?)"+"-([0-9][0-9]?)"+"(?:[Tt]|[ \\t]+)"+"([0-9][0-9]?)"+":([0-9][0-9])"+":([0-9][0-9])"+"(?:\\.([0-9]*))?"+"(?:[ \\t]*(Z|([-+])([0-9][0-9]?)"+"(?::([0-9][0-9]))?))?$");function resolveYamlTimestamp(e){if(e===null)return false;if(i.exec(e)!==null)return true;if(u.exec(e)!==null)return true;return false}function constructYamlTimestamp(e){var r,t,n,o,s,a,f,c=0,l=null,p,h,v;r=i.exec(e);if(r===null)r=u.exec(e);if(r===null)throw new Error("Date resolve error");t=+r[1];n=+r[2]-1;o=+r[3];if(!r[4]){return new Date(Date.UTC(t,n,o))}s=+r[4];a=+r[5];f=+r[6];if(r[7]){c=r[7].slice(0,3);while(c.length<3){c+="0"}c=+c}if(r[9]){p=+r[10];h=+(r[11]||0);l=(p*60+h)*6e4;if(r[9]==="-")l=-l}v=new Date(Date.UTC(t,n,o,s,a,f,c));if(l)v.setTime(v.getTime()-l);return v}function representYamlTimestamp(e){return e.toISOString()}e.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp})},,,,,,,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:fenced-code-marker",fencedCodeMarker);var s={"`":true,"~":true,null:true};function fencedCodeMarker(e,r,t){var n=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(s[t]!==true){r.fail("Invalid fenced code marker `"+t+"`: use either `'consistent'`, `` '`' ``, or `'~'`")}i(e,"code",visitor);function visitor(e){var i;if(!o(e)){i=n.substr(u.start(e).offset,4).trimLeft().charAt(0);if(s[i]===true){if(t){if(i!==t){r.message("Fenced code should use "+t+" as a marker",e)}}else{t=i}}}}}},function(e,r,t){"use strict";e.exports=PassThrough;var n=t(685);t(744)(PassThrough,n);function PassThrough(e){if(!(this instanceof PassThrough))return new PassThrough(e);n.call(this,e)}PassThrough.prototype._transform=function(e,r,t){t(null,e)}},,,function(e,r,t){"use strict";var n=t(647).stderr.hasBasic;var i=t(527);var u=t(725);var o=t(164);var s=t(877);var a=t(25);e.exports=reporter;var f=process.platform==="win32";var c=f?{error:"×",warning:"‼"}:{error:"✖",warning:"⚠"};var l=/\s*$/;var p="";var h={open:"",close:""};var v={underline:{open:"",close:""},red:{open:"",close:""},yellow:{open:"",close:""},green:{open:"",close:""}};var D={underline:h,red:h,yellow:h,green:h};var d={true:"error",false:"warning",null:"info",undefined:"info"};function reporter(e,r){var t=r||{};var n;if(!e){return""}if("name"in e&&"message"in e){return String(e.stack||e)}if(!("length"in e)){n=true;e=[e]}return compile(parse(filter(e,t),t),n,t)}function filter(e,r){var t=[];var n=e.length;var i=-1;var u;if(!r.quiet&&!r.silent){return e.concat()}while(++i "+p.destination:""}if(!p.stats.total){h+=h?": ":"";if(p.stored){h+=g.yellow.open+"written"+g.yellow.close}else{h+="no issues found"}}if(h){f.push(h)}}else{m=g[p.label==="error"?"red":"yellow"];E=p.reason;b="";A=E.indexOf("\n");if(A!==-1){b=E.slice(A);E=E.slice(0,A)}f.push(["",padLeft(p.location,e.location),padRight(m.open+p.label+m.close,e.label),padRight(E,e.reason),padRight(p.ruleId,e.ruleId),p.source||""].join(" ").replace(l,"")+b)}}if(u.fatal||u.warn){h=[];if(u.fatal){h.push([g.red.open+c.error+g.red.close,u.fatal,plural(d.true,u.fatal)].join(" "))}if(u.warn){h.push([g.yellow.open+c.warning+g.yellow.close,u.warn,plural(d.false,u.warn)].join(" "))}h=h.join(", ");if(u.total!==u.fatal&&u.total!==u.warn){h=u.total+" messages ("+h+")"}f.push("",h)}return f.join("\n")}function applicable(e,r){var t=e.messages;var n=t.length;var i=-1;var u=[];if(r.silent){while(++i",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"}},function(e,r,t){"use strict";e.exports=visitParents;var n=t(539);var i=true;var u="skip";var o=false;visitParents.CONTINUE=i;visitParents.SKIP=u;visitParents.EXIT=o;function visitParents(e,r,t,i){if(typeof r==="function"&&typeof t!=="function"){i=t;t=r;r=null}one(e,null,[]);function one(e,i,s){var a;if(!r||n(r,e,i,s[s.length-1]||null)){a=t(e,s);if(a===o){return a}}if(e.children&&a!==u){return all(e.children,s.concat(e))===o?o:a}return a}function all(e,r){var t=-1;var n=i?-1:1;var u=(i?e.length:t)+n;var s;var a;while(u>t&&u{if(Object.prototype.toString.call(e)!=="[object Object]"){return false}const r=Object.getPrototypeOf(e);return r===null||r===Object.getPrototypeOf({})})},function(e,r,t){"use strict";var n=t(679);var i=t(540);var u=t(631);e.exports=url;url.locator=u;url.notInLink=true;var o='"';var s="'";var a="(";var f=")";var c=",";var l=".";var p=":";var h=";";var v="<";var D="@";var d="[";var g="]";var m="http://";var E="https://";var b="mailto:";var A=[m,E,b];var C=A.length;function url(e,r,t){var u=this;var m;var E;var w;var y;var F;var S;var _;var B;var O;var x;var k;var R;var T;if(!u.options.gfm){return}m="";y=-1;while(++y1){r.message(s,e)}}}},function(e,r,t){"use strict";var n=t(983);var i=t(58);var u=t(404);var o=t(378);e.exports=log;var s="vfile-reporter";function log(e,r,t){var a=r.reporter||u;var f;if(o(a)){try{a=i(a,{cwd:r.cwd,prefix:s})}catch(e){t(new Error("Could not find reporter `"+a+"`"));return}}f=a(e.files.filter(given),n(r.reporterOptions,{quiet:r.quiet,silent:r.silent,color:r.color}));if(f){if(f.charAt(f.length-1)!=="\n"){f+="\n"}r.streamError.write(f,t)}else{t()}}function given(e){return e.data.unifiedEngineGiven}},,,,,function(e){"use strict";e.exports=function isArrayish(e){if(!e){return false}return e instanceof Array||Array.isArray(e)||e.length>=0&&e.splice instanceof Function}},,,,,,,,,,,,,,,function(e){var r=Object.prototype.hasOwnProperty;var t=Object.prototype.toString;function isEmpty(e){if(e==null)return true;if("boolean"==typeof e)return false;if("number"==typeof e)return e===0;if("string"==typeof e)return e.length===0;if("function"==typeof e)return e.length===0;if(Array.isArray(e))return e.length===0;if(e instanceof Error)return e.message==="";if(e.toString==t){switch(e.toString()){case"[object File]":case"[object Map]":case"[object Set]":{return e.size===0}case"[object Object]":{for(var n in e){if(r.call(e,n))return false}return true}}}return false}e.exports=isEmpty},,,function(e){e.exports={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"}},,,,,,,function(e,r,t){"use strict";var n=t(694);var i=t(829);var u=t(540);var o=t(127);e.exports=emphasis;emphasis.locator=o;var s="*";var a="_";var f="\\";function emphasis(e,r,t){var o=this;var c=0;var l=r.charAt(c);var p;var h;var v;var D;var d;var g;var m;if(l!==s&&l!==a){return}h=o.options.pedantic;d=l;v=l;g=r.length;c++;D="";l="";if(h&&u(r.charAt(c))){return}while(c0?"Add":"Remove")+" "+Math.abs(n)+" "+i("space",n)+" between blockquote and content";r.message(u,o.start(e.children[0]))}}else{t=check(e)}}}function check(e){var r=e.children[0];var t=o.start(r).column-o.start(e).column;var n=a(r).match(/^ +/);if(n){t+=n[0].length}return t}},,,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(189);e.exports=n("remark-lint:no-shortcut-reference-image",noShortcutReferenceImage);var o="Use the trailing [] on reference images";function noShortcutReferenceImage(e,r){i(e,"imageReference",visitor);function visitor(e){if(!u(e)&&e.referenceType==="shortcut"){r.message(o,e)}}}},,,function(e){"use strict";var r={}.hasOwnProperty;e.exports=stringify;function stringify(e){if(!e||typeof e!=="object"){return""}if(r.call(e,"position")||r.call(e,"type")){return position(e.position)}if(r.call(e,"start")||r.call(e,"end")){return position(e)}if(r.call(e,"line")||r.call(e,"column")){return point(e)}return""}function point(e){if(!e||typeof e!=="object"){e={}}return index(e.line)+":"+index(e.column)}function position(e){if(!e||typeof e!=="object"){e={}}return point(e.start)+"-"+point(e.end)}function index(e){return e&&typeof e==="number"?e:1}},,,function(e,r,t){e.exports=globSync;globSync.GlobSync=GlobSync;var n=t(747);var i=t(972);var u=t(908);var o=u.Minimatch;var s=t(722).Glob;var a=t(669);var f=t(622);var c=t(357);var l=t(5);var p=t(564);var h=p.alphasort;var v=p.alphasorti;var D=p.setopts;var d=p.ownProp;var g=p.childrenIgnored;var m=p.isIgnored;function globSync(e,r){if(typeof r==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");return new GlobSync(e,r).found}function GlobSync(e,r){if(!e)throw new Error("must provide pattern");if(typeof r==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof GlobSync))return new GlobSync(e,r);D(this,e,r);if(this.noprocess)return this;var t=this.minimatch.set.length;this.matches=new Array(t);for(var n=0;nthis.maxLength)return false;if(!this.stat&&d(this.cache,r)){var i=this.cache[r];if(Array.isArray(i))i="DIR";if(!t||i==="DIR")return i;if(t&&i==="FILE")return false}var u;var o=this.statCache[r];if(!o){var s;try{s=n.lstatSync(r)}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR")){this.statCache[r]=false;return false}}if(s&&s.isSymbolicLink()){try{o=n.statSync(r)}catch(e){o=s}}else{o=s}}this.statCache[r]=o;var i=true;if(o)i=o.isDirectory()?"DIR":"FILE";this.cache[r]=this.cache[r]||i;if(t&&i==="FILE")return false;return i};GlobSync.prototype._mark=function(e){return p.mark(this,e)};GlobSync.prototype._makeAbs=function(e){return p.makeAbs(this,e)}},,,,,function(e){"use strict";e.exports=lineBreak;var r="\\";var t="\n";var n=" ";var i=r+t;var u=n+n+t;function lineBreak(){return this.options.commonmark?i:u}},,,,,,function(e){"use strict";e.exports=toString;function toString(e){return valueOf(e)||e.children&&e.children.map(toString).join("")||""}function valueOf(e){return(e&&e.value?e.value:e.alt?e.alt:e.title)||""}},function(e,r,t){"use strict";var n=t(756);var i=t(164);e.exports=inlineCode;var u="`";var o=10;var s=32;var a=96;function inlineCode(e){var r=e.value;var t=i(u,n(r,u)+1);var o=t;var s=t;var f=r.charCodeAt(0);var c=r.charCodeAt(r.length-1);var l=false;var p;var h;if(f===a||c===a){l=true}else if(r.length>2&&ws(f)&&ws(c)){p=1;h=r.length-1;while(++p{if(typeof e==="number"){return Number.isInteger(e)}if(typeof e==="string"&&e.trim()!==""){return Number.isInteger(Number(e))}return false});r.find=((e,r)=>e.nodes.find(e=>e.type===r));r.exceedsLimit=((e,t,n=1,i)=>{if(i===false)return false;if(!r.isInteger(e)||!r.isInteger(t))return false;return(Number(t)-Number(e))/Number(n)>=i});r.escapeNode=((e,r=0,t)=>{let n=e.nodes[r];if(!n)return;if(t&&n.type===t||n.type==="open"||n.type==="close"){if(n.escaped!==true){n.value="\\"+n.value;n.escaped=true}}});r.encloseBrace=(e=>{if(e.type!=="brace")return false;if(e.commas>>0+e.ranges>>0===0){e.invalid=true;return true}return false});r.isInvalidBrace=(e=>{if(e.type!=="brace")return false;if(e.invalid===true||e.dollar)return true;if(e.commas>>0+e.ranges>>0===0){e.invalid=true;return true}if(e.open!==true||e.close!==true){e.invalid=true;return true}return false});r.isOpenOrClose=(e=>{if(e.type==="open"||e.type==="close"){return true}return e.open===true||e.close===true});r.reduce=(e=>e.reduce((e,r)=>{if(r.type==="text")e.push(r.value);if(r.type==="range")r.type="text";return e},[]));r.flatten=((...e)=>{const r=[];const t=e=>{for(let n=0;n{e=e.replace(u()," ");if(typeof e!=="string"||e.length===0){return 0}e=n(e);let r=0;for(let t=0;t=127&&n<=159){continue}if(n>=768&&n<=879){continue}if(n>65535){t++}r+=i(n)?2:1}return r};e.exports=o;e.exports.default=o},function(e,r,t){"use strict";var n;function once(e){var r=false;return function(){if(r)return;r=true;e.apply(void 0,arguments)}}var i=t(77).codes,u=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function noop(e){if(e)throw e}function isRequest(e){return e.setHeader&&typeof e.abort==="function"}function destroyer(e,r,i,u){u=once(u);var s=false;e.on("close",function(){s=true});if(n===undefined)n=t(89);n(e,{readable:r,writable:i},function(e){if(e)return u(e);s=true;u()});var a=false;return function(r){if(s)return;if(a)return;a=true;if(isRequest(e))return e.abort();if(typeof e.destroy==="function")return e.destroy();u(r||new o("pipe"))}}function call(e){e()}function pipe(e,r){return e.pipe(r)}function popCallback(e){if(!e.length)return noop;if(typeof e[e.length-1]!=="function")return noop;return e.pop()}function pipeline(){for(var e=arguments.length,r=new Array(e),t=0;t0;return destroyer(e,u,s,function(e){if(!i)i=e;if(e)o.forEach(call);if(u)return;o.forEach(call);n(i)})});return r.reduce(pipe)}e.exports=pipeline},,,function(e){function makeArray(e){return Array.isArray(e)?e:[e]}const r=/^\s+$/;const t=/^\\!/;const n=/^\\#/;const i=/\r?\n/g;const u=/^\.*\/|^\.+$/;const o="/";const s=typeof Symbol!=="undefined"?Symbol.for("node-ignore"):"node-ignore";const a=(e,r,t)=>Object.defineProperty(e,r,{value:t});const f=/([0-z])-([0-z])/g;const c=e=>e.replace(f,(e,r,t)=>r.charCodeAt(0)<=t.charCodeAt(0)?e:"");const l=[[/\\?\s+$/,e=>e.indexOf("\\")===0?" ":""],[/\\\s/g,()=>" "],[/[\\^$.|*+(){]/g,e=>`\\${e}`],[/\[([^\]/]*)($|\])/g,(e,r,t)=>t==="]"?`[${c(r)}]`:`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/^(?=[^^])/,function startingReplacer(){return!/\/(?!$)/.test(this)?"(?:^|\\/)":"^"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,r,t)=>r+6`${r}[^\\/]*`],[/(\^|\\\/)?\\\*$/,(e,r)=>{const t=r?`${r}[^/]+`:"[^/]*";return`${t}(?=$|\\/$)`}],[/\\\\\\/g,()=>"\\"]];const p=Object.create(null);const h=(e,r,t)=>{const n=p[e];if(n){return n}const i=l.reduce((r,t)=>r.replace(t[0],t[1].bind(e)),e);return p[e]=t?new RegExp(i,"i"):new RegExp(i)};const v=e=>typeof e==="string";const D=e=>e&&v(e)&&!r.test(e)&&e.indexOf("#")!==0;const d=e=>e.split(i);class IgnoreRule{constructor(e,r,t,n){this.origin=e;this.pattern=r;this.negative=t;this.regex=n}}const g=(e,r)=>{const i=e;let u=false;if(e.indexOf("!")===0){u=true;e=e.substr(1)}e=e.replace(t,"!").replace(n,"#");const o=h(e,u,r);return new IgnoreRule(i,e,u,o)};const m=(e,r)=>{throw new r(e)};const E=(e,r,t)=>{if(!v(e)){return t(`path must be a string, but got \`${r}\``,TypeError)}if(!e){return t(`path must not be empty`,TypeError)}if(E.isNotRelative(e)){const e="`path.relative()`d";return t(`path should be a ${e} string, but got "${r}"`,RangeError)}return true};const b=e=>u.test(e);E.isNotRelative=b;E.convert=(e=>e);class Ignore{constructor({ignorecase:e=true}={}){this._rules=[];this._ignorecase=e;a(this,s,true);this._initCache()}_initCache(){this._ignoreCache=Object.create(null);this._testCache=Object.create(null)}_addPattern(e){if(e&&e[s]){this._rules=this._rules.concat(e._rules);this._added=true;return}if(D(e)){const r=g(e,this._ignorecase);this._added=true;this._rules.push(r)}}add(e){this._added=false;makeArray(v(e)?d(e):e).forEach(this._addPattern,this);if(this._added){this._initCache()}return this}addPattern(e){return this.add(e)}_testOne(e,r){let t=false;let n=false;this._rules.forEach(i=>{const{negative:u}=i;if(n===u&&t!==n||u&&!t&&!n&&!r){return}const o=i.regex.test(e);if(o){t=!u;n=u}});return{ignored:t,unignored:n}}_test(e,r,t,n){const i=e&&E.convert(e);E(i,e,m);return this._t(i,r,t,n)}_t(e,r,t,n){if(e in r){return r[e]}if(!n){n=e.split(o)}n.pop();if(!n.length){return r[e]=this._testOne(e,t)}const i=this._t(n.join(o)+o,r,t,n);return r[e]=i.ignored?i:this._testOne(e,t)}ignores(e){return this._test(e,this._ignoreCache,false).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return makeArray(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,true)}}const A=e=>new Ignore(e);const C=()=>false;const w=e=>E(e&&E.convert(e),e,C);A.isPathValid=w;A.default=A;e.exports=A;if(typeof process!=="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){const e=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,"/");E.convert=e;const r=/^[a-z]:\//i;E.isNotRelative=(e=>r.test(e)||b(e))}},,function(e){"use strict";e.exports=strikethrough;var r="~";var t=r+r;function strikethrough(e){return t+this.all(e).join("")+t}},,,function(e){"use strict";e.exports=fencedCode;var r="\n";var t="\t";var n=" ";var i="~";var u="`";var o=3;var s=4;function fencedCode(e,a,f){var c=this;var l=c.options.gfm;var p=a.length+1;var h=0;var v="";var D;var d;var g;var m;var E;var b;var A;var C;var w;var y;var F;var S;var _;if(!l){return}while(h=s){continue}A="";while(h2){throw new Error("Invalid severity `"+i+"` for `"+e+"`, "+"expected 0, 1, or 2")}n[0]=i;return n}},,function(e,r,t){"use strict";var n=t(717);var i=t(268);var u=t(540);var o=t(831);var s=t(232);e.exports=factory;var a="\t";var f="\n";var c=" ";var l="#";var p="&";var h="(";var v=")";var D="*";var d="+";var g="-";var m=".";var E=":";var b="<";var A=">";var C="[";var w="\\";var y="]";var F="_";var S="`";var _="|";var B="~";var O="!";var x={"<":"<",":":":","&":"&","|":"|","~":"~"};var k="shortcut";var R="mailto";var T="https";var I="http";var L=/\n\s*$/;function factory(e){return escape;function escape(r,t,R){var T=this;var I=e.gfm;var M=e.commonmark;var j=e.pedantic;var P=M?[m,v]:[m];var N=R&&R.children;var $=N&&N.indexOf(t);var H=N&&N[$-1];var U=N&&N[$+1];var W=r.length;var G=o(e);var q=-1;var Y=[];var z=Y;var V;var J;var Z;var Q;var X;var K;if(H){V=text(H)&&L.test(H.value)}else{V=!R||R.type==="root"||R.type==="paragraph"}while(++q0||J===y&&T.inLink||I&&J===B&&r.charAt(q+1)===B||I&&J===_&&(T.inTable||alignment(r,q))||J===F&&q>0&&q{let n=[];e=[].concat(e);r=[].concat(r);if(!r.length)return e;if(!e.length){return t?u.flatten(r).map(e=>`{${e}}`):r}for(let i of e){if(Array.isArray(i)){for(let e of i){n.push(o(e,r,t))}}else{for(let e of r){if(t===true&&typeof e==="string")e=`{${e}}`;n.push(Array.isArray(e)?o(i,e,t):i+e)}}}return u.flatten(n)};const s=(e,r={})=>{let t=r.rangeLimit===void 0?1e3:r.rangeLimit;let s=(e,a={})=>{e.queue=[];let f=a;let c=a.queue;while(f.type!=="brace"&&f.type!=="root"&&f.parent){f=f.parent;c=f.queue}if(e.invalid||e.dollar){c.push(o(c.pop(),i(e,r)));return}if(e.type==="brace"&&e.invalid!==true&&e.nodes.length===2){c.push(o(c.pop(),["{}"]));return}if(e.nodes&&e.ranges>0){let s=u.reduce(e.nodes);if(u.exceedsLimit(...s,r.step,t)){throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.")}let a=n(...s,r);if(a.length===0){a=i(e,r)}c.push(o(c.pop(),a));e.nodes=[];return}let l=u.encloseBrace(e);let p=e.queue;let h=e;while(h.type!=="brace"&&h.type!=="root"&&h.parent){h=h.parent;p=h.queue}for(let r=0;r=97&&r<=122||r>=65&&r<=90}},function(e,r,t){"use strict";var n=t(541);var i=t(766);var u=t(189);var o=t(317);var s=t(372);e.exports=n("remark-lint:no-duplicate-definitions",noDuplicateDefinitions);var a="Do not use definitions with the same identifier";function noDuplicateDefinitions(e,r){var t={};s(e,["definition","footnoteDefinition"],validate);function validate(e){var n;var s;if(!u(e)){n=e.identifier;s=t[n];if(s&&s.type){r.message(a+" ("+o(i.start(s))+")",e)}t[n]=e}}}},,function(e){"use strict";e.exports=hidden;function hidden(e){if(typeof e!=="string"){throw new Error("Expected string")}return e.charAt(0)==="."}},function(e,r,t){"use strict";var n=t(122);var i=t(425);e.exports=link;var u=" ";var o="[";var s="]";var a="(";var f=")";var c=/^[a-z][a-z+.-]+:\/?/i;function link(e){var r=this;var t=r.encode(e.url||"",e);var l=r.enterLink();var p=r.encode(r.escape(e.url||"",e));var h=r.all(e).join("");l();if(e.title==null&&c.test(t)&&p===h){return n(r.encode(e.url),true)}t=n(t);if(e.title){t+=u+i(r.encode(r.escape(e.title,e),e))}return o+h+s+a+t+f}},,,,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:fenced-code-flag",fencedCodeFlag);var s=u.start;var a=u.end;var f=/^ {0,3}([~`])\1{2,}/;var c="Invalid code-language flag";var l="Missing code-language flag";function fencedCodeFlag(e,r,t){var n=String(r);var u=false;var p=[];if(typeof t==="object"&&!("length"in t)){u=Boolean(t.allowEmpty);t=t.flags}if(typeof t==="object"&&"length"in t){p=String(t).split(",")}i(e,"code",visitor);function visitor(e){var t;if(!o(e)){if(e.lang){if(p.length!==0&&p.indexOf(e.lang)===-1){r.message(c,e)}}else{t=n.slice(s(e).offset,a(e).offset);if(!u&&f.test(t)){r.message(l,e)}}}}}},,function(e,r,t){r.alphasort=alphasort;r.alphasorti=alphasorti;r.setopts=setopts;r.ownProp=ownProp;r.makeAbs=makeAbs;r.finish=finish;r.mark=mark;r.isIgnored=isIgnored;r.childrenIgnored=childrenIgnored;function ownProp(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var n=t(622);var i=t(908);var u=t(5);var o=i.Minimatch;function alphasorti(e,r){return e.toLowerCase().localeCompare(r.toLowerCase())}function alphasort(e,r){return e.localeCompare(r)}function setupIgnores(e,r){e.ignore=r.ignore||[];if(!Array.isArray(e.ignore))e.ignore=[e.ignore];if(e.ignore.length){e.ignore=e.ignore.map(ignoreMap)}}function ignoreMap(e){var r=null;if(e.slice(-3)==="/**"){var t=e.replace(/(\/\*\*)+$/,"");r=new o(t,{dot:true})}return{matcher:new o(e,{dot:true}),gmatcher:r}}function setopts(e,r,t){if(!t)t={};if(t.matchBase&&-1===r.indexOf("/")){if(t.noglobstar){throw new Error("base matching requires globstar")}r="**/"+r}e.silent=!!t.silent;e.pattern=r;e.strict=t.strict!==false;e.realpath=!!t.realpath;e.realpathCache=t.realpathCache||Object.create(null);e.follow=!!t.follow;e.dot=!!t.dot;e.mark=!!t.mark;e.nodir=!!t.nodir;if(e.nodir)e.mark=true;e.sync=!!t.sync;e.nounique=!!t.nounique;e.nonull=!!t.nonull;e.nosort=!!t.nosort;e.nocase=!!t.nocase;e.stat=!!t.stat;e.noprocess=!!t.noprocess;e.absolute=!!t.absolute;e.maxLength=t.maxLength||Infinity;e.cache=t.cache||Object.create(null);e.statCache=t.statCache||Object.create(null);e.symlinks=t.symlinks||Object.create(null);setupIgnores(e,t);e.changedCwd=false;var i=process.cwd();if(!ownProp(t,"cwd"))e.cwd=i;else{e.cwd=n.resolve(t.cwd);e.changedCwd=e.cwd!==i}e.root=t.root||n.resolve(e.cwd,"/");e.root=n.resolve(e.root);if(process.platform==="win32")e.root=e.root.replace(/\\/g,"/");e.cwdAbs=u(e.cwd)?e.cwd:makeAbs(e,e.cwd);if(process.platform==="win32")e.cwdAbs=e.cwdAbs.replace(/\\/g,"/");e.nomount=!!t.nomount;t.nonegate=true;t.nocomment=true;e.minimatch=new o(r,t);e.options=e.minimatch.options}function finish(e){var r=e.nounique;var t=r?[]:Object.create(null);for(var n=0,i=e.matches.length;nM){if(R1){if(F){b+=y.slice(0,y.length-1);y=y.charAt(y.length-1)}else{b+=y;y=""}}x=e.now();e(b)({type:"tableCell",children:d.tokenizeInline(B,x)},A)}e(y+F);y="";B=""}}else{if(y){B+=y;y=""}B+=F;if(F===f&&g!==C-2){B+=T.charAt(g+1);g++}}O=false;g++}if(!k){e(u+m)}}return L}},,function(e,r,t){"use strict";var n=t(119);e.exports=escape;escape.locator=n;var i="\n";var u="\\";function escape(e,r,t){var n=this;var o;var s;if(r.charAt(0)===u){o=r.charAt(1);if(n.escape.indexOf(o)!==-1){if(t){return true}if(o===i){s={type:"break"}}else{s={type:"text",value:o}}return e(u+o)(s)}}}},,,,,function(e,r,t){"use strict";var n=t(747);var i=t(622);var u=t(105);var o=t(7)("unified-engine:find-up");var s=t(838);e.exports=FindUp;var a=n.readFile;var f=i.resolve;var c=i.relative;var l=i.join;var p=i.dirname;FindUp.prototype.load=load;function FindUp(e){var r=this;var t=e.filePath;r.cache={};r.cwd=e.cwd;r.detect=e.detect;r.names=e.names;r.create=e.create;if(t){r.givenFilePath=f(e.cwd,t)}}function load(e,r){var t=this;var n=t.cache;var i=t.givenFilePath;var h=t.givenFile;var v=t.names;var D=t.create;var d=t.cwd;var g;if(i){if(h){apply(r,h)}else{h=[r];t.givenFile=h;o("Checking given file `%s`",i);a(i,loadGiven)}return}if(!t.detect){return r()}e=f(d,e);g=p(e);if(g in n){apply(r,n[g])}else{n[g]=[r];find(g)}function loadGiven(e,r){var n=t.givenFile;var s;if(e){s=u("Cannot read given file `%s`\n%s",c(d,i),e.stack);s.code="ENOENT";s.path=e.path;s.syscall=e.syscall}else{try{s=D(r,i);o("Read given file `%s`",i)}catch(e){s=u("Cannot parse given file `%s`\n%s",c(d,i),e.stack);o(e.message)}}h=s;t.givenFile=s;applyAll(n,s)}function find(r){var t=-1;var i=v.length;next();function next(){var u;if(++t1){r=Array.prototype.slice.call(arguments)}return e(r)};if("conversion"in e){r.conversion=e.conversion}return r}function wrapRounded(e){var r=function(r){if(r===undefined||r===null){return r}if(arguments.length>1){r=Array.prototype.slice.call(arguments)}var t=e(r);if(typeof t==="object"){for(var n=t.length,i=0;i{if(typeof e!=="string"){throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof e}\``)}if(typeof r!=="string"){throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof r}\``)}try{e=u.realpathSync(e)}catch(r){if(r.code==="ENOENT"){e=n.resolve(e)}else if(t){return}else{throw r}}const o=n.join(e,"noop.js");const s=()=>i._resolveFilename(r,{id:o,filename:o,paths:i._nodeModulePaths(e)});if(t){try{return s()}catch(e){return}}return s()};e.exports=((e,r)=>o(e,r));e.exports.silent=((e,r)=>o(e,r,true))},,,,,,,,,function(e,r,t){"use strict";var n=t(541);e.exports=n("remark-lint:no-file-name-outer-dashes",noFileNameOuterDashes);var i="Do not use initial or final dashes in a file name";function noFileNameOuterDashes(e,r){if(r.stem&&/^-|-$/.test(r.stem)){r.message(i)}}},,function(e,r,t){"use strict";var n=t(227);var i=t(541);var u=t(189);var o=t(372);e.exports=i("remark-lint:no-undefined-references",noUndefinedReferences);var s="Found reference to undefined definition";function normalize(e){return n(e.toUpperCase())}function noUndefinedReferences(e,r,t){var n=t!=null&&Array.isArray(t.allow)?t.allow.map(normalize):[];var i={};o(e,["definition","footnoteDefinition"],mark);o(e,["imageReference","linkReference","footnoteReference"],find);function mark(e){if(!u(e)){i[normalize(e.identifier)]=true}}function find(e){if(!(u(e)||n.includes(normalize(e.identifier))||normalize(e.identifier)in i)){r.message(s,e)}}}},,function(e){"use strict";e.exports=(({onlyFirst:e=false}={})=>{const r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?undefined:"g")})},,,function(e,r,t){var n=t(201);var i={"{":"}","(":")","[":"]"};var u=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/;var o=/\\(.)|(^!|[*?{}()[\]]|\(\?)/;e.exports=function isGlob(e,r){if(typeof e!=="string"||e===""){return false}if(n(e)){return true}var t=u;var s;if(r&&r.strict===false){t=o}while(s=t.exec(e)){if(s[2])return true;var a=s.index+s[0].length;var f=s[1];var c=f?i[f]:null;if(f&&c){var l=e.indexOf(c,a);if(l!==-1){a=l+1}}e=e.slice(a)}return false}},function(e){"use strict";const r=e=>{let r=false;let t=false;let n=false;for(let i=0;i{if(!(typeof e==="string"||Array.isArray(e))){throw new TypeError("Expected the input to be `string | string[]`")}t=Object.assign({pascalCase:false},t);const n=e=>t.pascalCase?e.charAt(0).toUpperCase()+e.slice(1):e;if(Array.isArray(e)){e=e.map(e=>e.trim()).filter(e=>e.length).join("-")}else{e=e.trim()}if(e.length===0){return""}if(e.length===1){return t.pascalCase?e.toUpperCase():e.toLowerCase()}const i=e!==e.toLowerCase();if(i){e=r(e)}e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(e,r)=>r.toUpperCase()).replace(/\d+(\w|$)/g,e=>e.toUpperCase());return n(e)};e.exports=t;e.exports.default=t},,function(e,r,t){"use strict";var n=t(11);var i=t(751);var u=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?"+"|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?"+"|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*"+"|[-+]?\\.(?:inf|Inf|INF)"+"|\\.(?:nan|NaN|NAN))$");function resolveYamlFloat(e){if(e===null)return false;if(!u.test(e)||e[e.length-1]==="_"){return false}return true}function constructYamlFloat(e){var r,t,n,i;r=e.replace(/_/g,"").toLowerCase();t=r[0]==="-"?-1:1;i=[];if("+-".indexOf(r[0])>=0){r=r.slice(1)}if(r===".inf"){return t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY}else if(r===".nan"){return NaN}else if(r.indexOf(":")>=0){r.split(":").forEach(function(e){i.unshift(parseFloat(e,10))});r=0;n=1;i.forEach(function(e){r+=e*n;n*=60});return t*r}return t*parseFloat(r,10)}var o=/^[-+]?[0-9]+e/;function representYamlFloat(e,r){var t;if(isNaN(e)){switch(r){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}}else if(Number.POSITIVE_INFINITY===e){switch(r){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}}else if(Number.NEGATIVE_INFINITY===e){switch(r){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}}else if(n.isNegativeZero(e)){return"-0.0"}t=e.toString(10);return o.test(t)?t.replace("e",".e"):t}function isFloat(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||n.isNegativeZero(e))}e.exports=new i("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"})},,function(e){"use strict";e.exports=markdownTable;var r=/\./;var t=/\.[^.]*$/;var n=" ";var i="\n";var u="-";var o=".";var s=":";var a="c";var f="l";var c="r";var l="|";var p=3;function markdownTable(e,t){var h=t||{};var v=h.delimiter;var D=h.start;var d=h.end;var g=h.align;var m=h.stringLength||lengthNoop;var E=0;var b=-1;var A=e.length;var C=[];var w;var y;var F;var S;var _;var B;var O;var x;var k;var R;var T;var I;g=g?g.concat():[];if(v===null||v===undefined){v=n+l+n}if(D===null||D===undefined){D=l+n}if(d===null||d===undefined){d=n+l}while(++bE){E=S.length}while(++BC[B]){C[B]=O}}}if(typeof g==="string"){g=pad(E,g).split("")}B=-1;while(++BC[B]){C[B]=x}}}b=-1;while(++bp?R:p}else{R=C[B]}w=g[B];k=w===c||w===""?u:s;k+=pad(R-2,u);k+=w!==f&&w!==""?s:u;y[B]=k}F.splice(1,0,y.join(v))}return D+F.join(d+i+D)+d}function stringify(e){return e===null||e===undefined?"":String(e)}function lengthNoop(e){return String(e).length}function pad(e,r){return new Array(e+1).join(r||n)}function dotindex(e){var r=t.exec(e);return r?r.index+1:e.length}},function(e){"use strict";e.exports=locate;function locate(e,r){var t=e.indexOf("**",r);var n=e.indexOf("__",r);if(n===-1){return t}if(t===-1){return n}return n/i;function inlineHTML(e,r,t){var i=this;var p=r.length;var h;var v;if(r.charAt(0)!==o||p<3){return}h=r.charAt(1);if(!n(h)&&h!==s&&h!==a&&h!==f){return}v=r.match(u);if(!v){return}if(t){return true}v=v[0];if(!i.inLink&&c.test(v)){i.inLink=true}else if(i.inLink&&l.test(v)){i.inLink=false}return e(v)({type:"html",value:v})}},,,,function(e){"use strict";e.exports=one;function one(e,r){var t=this;var n=t.visitors;if(typeof n[e.type]!=="function"){t.file.fail(new Error("Missing compiler for node of type `"+e.type+"`: `"+e+"`"),e)}return n[e.type].call(t,e,r)}},,function(e){e.exports=require("path")},function(e){e.exports=function(e,r){if(!r)r={};var t={bools:{},strings:{},unknownFn:null};if(typeof r["unknown"]==="function"){t.unknownFn=r["unknown"]}if(typeof r["boolean"]==="boolean"&&r["boolean"]){t.allBools=true}else{[].concat(r["boolean"]).filter(Boolean).forEach(function(e){t.bools[e]=true})}var n={};Object.keys(r.alias||{}).forEach(function(e){n[e]=[].concat(r.alias[e]);n[e].forEach(function(r){n[r]=[e].concat(n[e].filter(function(e){return r!==e}))})});[].concat(r.string).filter(Boolean).forEach(function(e){t.strings[e]=true;if(n[e]){t.strings[n[e]]=true}});var i=r["default"]||{};var u={_:[]};Object.keys(t.bools).forEach(function(e){setArg(e,i[e]===undefined?false:i[e])});var o=[];if(e.indexOf("--")!==-1){o=e.slice(e.indexOf("--")+1);e=e.slice(0,e.indexOf("--"))}function argDefined(e,r){return t.allBools&&/^--[^=]+$/.test(r)||t.strings[e]||t.bools[e]||n[e]}function setArg(e,r,i){if(i&&t.unknownFn&&!argDefined(e,i)){if(t.unknownFn(i)===false)return}var o=!t.strings[e]&&isNumber(r)?Number(r):r;setKey(u,e.split("."),o);(n[e]||[]).forEach(function(e){setKey(u,e.split("."),o)})}function setKey(e,r,n){var i=e;r.slice(0,-1).forEach(function(e){if(i[e]===undefined)i[e]={};i=i[e]});var u=r[r.length-1];if(i[u]===undefined||t.bools[u]||typeof i[u]==="boolean"){i[u]=n}else if(Array.isArray(i[u])){i[u].push(n)}else{i[u]=[i[u],n]}}function aliasIsBoolean(e){return n[e].some(function(e){return t.bools[e]})}for(var s=0;s",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacut:"Í",Iacute:"Í",Icir:"Î",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrav:"Ì",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Ium:"Ï",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",L:"<",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntild:"Ñ",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacut:"Ó",Oacute:"Ó",Ocir:"Ô",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograv:"Ò",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslas:"Ø",Oslash:"Ø",Otild:"Õ",Otilde:"Õ",Otimes:"⨷",Oum:"Ö",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUO:'"',QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",RE:"®",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THOR:"Þ",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacut:"Ú",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucir:"Û",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrav:"Ù",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uum:"Ü",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacut:"Ý",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacut:"á",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acir:"â",acirc:"â",acut:"´",acute:"´",acy:"а",aeli:"æ",aelig:"æ",af:"⁡",afr:"𝔞",agrav:"à",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",am:"&",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",arin:"å",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atild:"ã",atilde:"ã",aum:"ä",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvba:"¦",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedi:"ç",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedi:"¸",cedil:"¸",cemptyv:"⦲",cen:"¢",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",cop:"©",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curre:"¤",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",de:"°",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divid:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacut:"é",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"ê",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrav:"è",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",et:"ð",eth:"ð",eum:"ë",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac1:"¼",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac3:"¾",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",g:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacut:"í",iacute:"í",ic:"⁣",icir:"î",icirc:"î",icy:"и",iecy:"е",iexc:"¡",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrav:"ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iques:"¿",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",ium:"ï",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laqu:"«",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",l:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",mac:"¯",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micr:"µ",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middo:"·",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbs:" ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",no:"¬",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntild:"ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacut:"ó",oacute:"ó",oast:"⊛",ocir:"ô",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograv:"ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"º",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslas:"ø",oslash:"ø",osol:"⊘",otild:"õ",otilde:"õ",otimes:"⊗",otimesas:"⨶",oum:"ö",ouml:"ö",ovbar:"⌽",par:"¶",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusm:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",poun:"£",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quo:'"',quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raqu:"»",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",re:"®",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sec:"§",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",sh:"­",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szli:"ß",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thor:"þ",thorn:"þ",tilde:"˜",time:"×",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacut:"ú",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucir:"û",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrav:"ù",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",um:"¨",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uum:"ü",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacut:"ý",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",ye:"¥",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yum:"ÿ",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},function(e){"use strict";e.exports=blockquote;var r="\n";var t=" ";var n=">";function blockquote(e){var i=this.block(e).split(r);var u=[];var o=i.length;var s=-1;var a;while(++s=2,has16m:e>=3}}function supportsColor(e){if(o===0){return 0}if(i("color=16m")||i("color=full")||i("color=truecolor")){return 3}if(i("color=256")){return 2}if(e&&!e.isTTY&&o===undefined){return 0}const r=o||0;if(u.TERM==="dumb"){return r}if(process.platform==="win32"){const e=n.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in u){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in u)||u.CI_NAME==="codeship"){return 1}return r}if("TEAMCITY_VERSION"in u){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(u.TEAMCITY_VERSION)?1:0}if(u.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in u){const e=parseInt((u.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(u.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(u.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(u.TERM)){return 1}if("COLORTERM"in u){return 1}return r}function getSupportLevel(e){const r=supportsColor(e);return translateLevel(r)}e.exports={supportsColor:getSupportLevel,stdout:getSupportLevel(process.stdout),stderr:getSupportLevel(process.stderr)}},function(e){"use strict";e.exports=factory;function factory(e,r,t){return enter;function enter(){var n=t||this;var i=n[e];n[e]=!r;return exit;function exit(){n[e]=i}}}},function(e,r,t){"use strict";var n=t(540);var i=t(479);e.exports=strikethrough;strikethrough.locator=i;var u="~";var o="~~";function strikethrough(e,r,t){var i=this;var s="";var a="";var f="";var c="";var l;var p;var h;if(!i.options.gfm||r.charAt(0)!==u||r.charAt(1)!==u||n(r.charAt(2))){return}l=1;p=r.length;h=e.now();h.column+=2;h.offset+=2;while(++lr){if(e.charAt(t-1)!==" "){break}t--}return t}},,function(e,r,t){"use strict";var n=t(983);var i=t(840);var u=t(640);var o=t(543);var s=t(279);e.exports=setOptions;var a={entities:{true:true,false:true,numbers:true,escape:true},bullet:{"*":true,"-":true,"+":true},rule:{"-":true,_:true,"*":true},listItemIndent:{tab:true,mixed:true,1:true},emphasis:{_:true,"*":true},strong:{_:true,"*":true},fence:{"`":true,"~":true}};var f={boolean:validateBoolean,string:validateString,number:validateNumber,function:validateFunction};function setOptions(e){var r=this;var t=r.options;var i;var s;if(e==null){e={}}else if(typeof e==="object"){e=n(e)}else{throw new Error("Invalid value `"+e+"` for setting `options`")}for(s in u){f[typeof u[s]](e,s,t[s],a[s])}i=e.ruleRepetition;if(i&&i<3){raise(i,"options.ruleRepetition")}r.encode=encodeFactory(String(e.entities));r.escape=o(e);r.options=e;return r}function validateBoolean(e,r,t){var n=e[r];if(n==null){n=t}if(typeof n!=="boolean"){raise(n,"options."+r)}e[r]=n}function validateNumber(e,r,t){var n=e[r];if(n==null){n=t}if(isNaN(n)){raise(n,"options."+r)}e[r]=n}function validateString(e,r,t,n){var i=e[r];if(i==null){i=t}i=String(i);if(!(i in n)){raise(i,"options."+r)}e[r]=i}function validateFunction(e,r,t){var n=e[r];if(n==null){n=t}if(typeof n!=="function"){raise(n,"options."+r)}e[r]=n}function encodeFactory(e){var r={};if(e==="false"){return s}if(e==="true"){r.useNamedReferences=true}if(e==="escape"){r.escapeOnly=true;r.useNamedReferences=true}return wrapped;function wrapped(e){return i(e,r)}}function raise(e,r){throw new Error("Invalid value `"+e+"` for setting `"+r+"`")}},function(e){"use strict";e.exports=thematicBreak;var r="\t";var t="\n";var n=" ";var i="*";var u="-";var o="_";var s=3;function thematicBreak(e,a,f){var c=-1;var l=a.length+1;var p="";var h;var v;var D;var d;while(++c=s&&(!h||h===t)){p+=d;if(f){return true}return e(p)({type:"thematicBreak"})}else{return}}}},,function(e,r,t){"use strict";const n=t(793);e.exports=((e,r,t)=>{if(typeof r==="number"){t=r}if(n.has(e.toLowerCase())){r=n.get(e.toLowerCase());const t=e.charAt(0);const i=t===t.toUpperCase();if(i){r=t.toUpperCase()+r.slice(1)}const u=e===e.toUpperCase();if(u){r=r.toUpperCase()}}else if(typeof r!=="string"){r=(e.replace(/(?:s|x|z|ch|sh)$/i,"$&e").replace(/([^aeiou])y$/i,"$1ie")+"s").replace(/i?e?s$/i,r=>{const t=e.slice(-1)===e.slice(-1).toLowerCase();return t?r.toLowerCase():r.toUpperCase()})}return Math.abs(t)===1?e:r})},,,,function(e){e.exports=require("util")},,,,,function(e,r,t){const n=t(126);e.exports=function stringify(e,r,t){const i=[];let u="";let o;let s;let a="";let f;if(r!=null&&typeof r==="object"&&!Array.isArray(r)){t=r.space;f=r.quote;r=r.replacer}if(typeof r==="function"){s=r}else if(Array.isArray(r)){o=[];for(const e of r){let r;if(typeof e==="string"){r=e}else if(typeof e==="number"||e instanceof String||e instanceof Number){r=String(e)}if(r!==undefined&&o.indexOf(r)<0){o.push(r)}}}if(t instanceof Number){t=Number(t)}else if(t instanceof String){t=String(t)}if(typeof t==="number"){if(t>0){t=Math.min(10,Math.floor(t));a=" ".substr(0,t)}}else if(typeof t==="string"){a=t.substr(0,10)}return serializeProperty("",{"":e});function serializeProperty(e,r){let t=r[e];if(t!=null){if(typeof t.toJSON5==="function"){t=t.toJSON5(e)}else if(typeof t.toJSON==="function"){t=t.toJSON(e)}}if(s){t=s.call(r,e,t)}if(t instanceof Number){t=Number(t)}else if(t instanceof String){t=String(t)}else if(t instanceof Boolean){t=t.valueOf()}switch(t){case null:return"null";case true:return"true";case false:return"false"}if(typeof t==="string"){return quoteString(t,false)}if(typeof t==="number"){return String(t)}if(typeof t==="object"){return Array.isArray(t)?serializeArray(t):serializeObject(t)}return undefined}function quoteString(e){const r={"'":.1,'"':.2};const t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let i="";for(let u=0;ur[e]=0){throw TypeError("Converting circular structure to JSON5")}i.push(e);let r=u;u=u+a;let t=o||Object.keys(e);let n=[];for(const r of t){const t=serializeProperty(r,e);if(t!==undefined){let e=serializeKey(r)+":";if(a!==""){e+=" "}e+=t;n.push(e)}}let s;if(n.length===0){s="{}"}else{let e;if(a===""){e=n.join(",");s="{"+e+"}"}else{let t=",\n"+u;e=n.join(t);s="{\n"+u+e+",\n"+r+"}"}}i.pop();u=r;return s}function serializeKey(e){if(e.length===0){return quoteString(e,true)}const r=String.fromCodePoint(e.codePointAt(0));if(!n.isIdStartChar(r)){return quoteString(e,true)}for(let t=r.length;t=0){throw TypeError("Converting circular structure to JSON5")}i.push(e);let r=u;u=u+a;let t=[];for(let r=0;r65535){te-=65536;oe+=c(te>>>(10&1023)|55296);te=56320|te&1023}te=oe+c(te)}}if(te){flush();pe=now();q=De-1;z+=De-fe+1;Z.push(te);he=now();he.offset++;if(p){p.call($,te,{start:pe,end:he},e.slice(fe-1,De))}pe=he}else{ee=e.slice(fe-1,De);J+=ee;z+=ee.length;q=De-1}}else{if(re===10){V++;Y++;z=0}if(re===re){J+=c(re);z++}else{flush()}}}return Z.join("");function now(){return{line:V,column:z,offset:q+(U.offset||0)}}function parseError(e,r){var t=now();t.column+=r;t.offset+=r;P.call(H,j[e],t,e)}function flush(){if(J){Z.push(J);if(o){o.call(N,J,{start:pe,end:now()})}J=""}}}function prohibited(e){return e>=55296&&e<=57343||e>1114111}function disallowed(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}},,function(e,r,t){"use strict";var n;try{var i=require;n=i("buffer").Buffer}catch(e){}var u=t(751);var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function resolveYamlBinary(e){if(e===null)return false;var r,t,n=0,i=e.length,u=o;for(t=0;t64)continue;if(r<0)return false;n+=6}return n%8===0}function constructYamlBinary(e){var r,t,i=e.replace(/[\r\n=]/g,""),u=i.length,s=o,a=0,f=[];for(r=0;r>16&255);f.push(a>>8&255);f.push(a&255)}a=a<<6|s.indexOf(i.charAt(r))}t=u%4*6;if(t===0){f.push(a>>16&255);f.push(a>>8&255);f.push(a&255)}else if(t===18){f.push(a>>10&255);f.push(a>>2&255)}else if(t===12){f.push(a>>4&255)}if(n){return n.from?n.from(f):new n(f)}return f}function representYamlBinary(e){var r="",t=0,n,i,u=e.length,s=o;for(n=0;n>18&63];r+=s[t>>12&63];r+=s[t>>6&63];r+=s[t&63]}t=(t<<8)+e[n]}i=u%3;if(i===0){r+=s[t>>18&63];r+=s[t>>12&63];r+=s[t>>6&63];r+=s[t&63]}else if(i===2){r+=s[t>>10&63];r+=s[t>>4&63];r+=s[t<<2&63];r+=s[64]}else if(i===1){r+=s[t>>2&63];r+=s[t<<4&63];r+=s[64];r+=s[64]}return r}function isBinary(e){return n&&n.isBuffer(e)}e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary})},function(e,r,t){"use strict";var n=t(751);function resolveYamlBoolean(e){if(e===null)return false;var r=e.length;return r===4&&(e==="true"||e==="True"||e==="TRUE")||r===5&&(e==="false"||e==="False"||e==="FALSE")}function constructYamlBoolean(e){return e==="true"||e==="True"||e==="TRUE"}function isBoolean(e){return Object.prototype.toString.call(e)==="[object Boolean]"}e.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:resolveYamlBoolean,construct:constructYamlBoolean,predicate:isBoolean,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},,function(e){"use strict";e.exports=block;var r="\n";var t=r+r;var n=t+r;var i=t+"\x3c!----\x3e"+t;function block(e){var r=this;var u=r.options;var o=u.fences;var s=u.commonmark?i:n;var a=[];var f=e.children;var c=f.length;var l=-1;var p;var h;while(++l0?"Remove":"Add")+" "+Math.abs(v)+" "+o("space",v)+" before this heading’s content";r.message(g,f(i[0]))}}if(s==="atx-closed"){h=c(i[i.length-1]);v=c(e).column-h.column-1-n;if(v){g="Remove "+v+" "+o("space",v)+" after this heading’s content";r.message(g,h)}}}}},function(e,r,t){"use strict";var n=t(122);var i=t(425);e.exports=definition;var u=" ";var o=":";var s="[";var a="]";function definition(e){var r=n(e.url);if(e.title){r+=u+i(e.title)}return s+(e.label||e.identifier)+a+o+u+r}},,,,,,,function(e,r,t){"use strict";var n=t(983);var i=t(169);e.exports=parse;var u="\n";var o=/\r\n|\r/g;function parse(){var e=this;var r=String(e.file);var t={line:1,column:1,offset:0};var s=n(t);var a;r=r.replace(o,u);if(r.charCodeAt(0)===65279){r=r.slice(1);s.column++;s.offset++}a={type:"root",children:e.tokenizeBlock(r,s),position:{start:t,end:e.eof||n(t)}};if(!e.options.position){i(a,true)}return a}},,,function(e,r,t){"use strict";var n=t(540);var i=t(198);e.exports=definition;var u='"';var o="'";var s="\\";var a="\n";var f="\t";var c=" ";var l="[";var p="]";var h="(";var v=")";var D=":";var d="<";var g=">";function definition(e,r,t){var n=this;var g=n.options.commonmark;var m=0;var E=r.length;var b="";var A;var C;var w;var y;var F;var S;var _;var B;while(m-1){u.splice(o,1)}var s=t;u.forEach(function _buildSubObj(e,t){if(!e||typeof s!=="object")return;if(t===u.length-1)s[e]=r[i];if(s[e]===undefined)s[e]={};s=s[e]})}}return t};var l=r.find=function(){var e=u.join.apply(null,[].slice.call(arguments));function find(e,r){var t=u.join(e,r);try{n.statSync(t);return t}catch(t){if(u.dirname(e)!==e)return find(u.dirname(e),r)}}return find(process.cwd(),e)}},,function(e){"use strict";e.exports=decimal;function decimal(e){var r=typeof e==="string"?e.charCodeAt(0):e;return r>=48&&r<=57}},,,function(e,r,t){"use strict";var n=t(7)("unified-engine:file-pipeline:parse");var i=t(877);var u=t(919);e.exports=parse;function parse(e,r){var t;if(i(r).fatal){return}if(e.treeIn){n("Not parsing already parsed document");try{e.tree=u(r.toString())}catch(e){t=r.message(new Error("Cannot read file as JSON\n"+e.message));t.fatal=true}if(r.path){r.extname=e.extensions[0]}r.contents="";return}n("Parsing `%s`",r.path);e.tree=e.processor.parse(r);n("Parsed document")}},,function(e,r,t){e.exports=glob;var n=t(747);var i=t(972);var u=t(908);var o=u.Minimatch;var s=t(744);var a=t(614).EventEmitter;var f=t(622);var c=t(357);var l=t(5);var p=t(495);var h=t(564);var v=h.alphasort;var D=h.alphasorti;var d=h.setopts;var g=h.ownProp;var m=t(853);var E=t(669);var b=h.childrenIgnored;var A=h.isIgnored;var C=t(266);function glob(e,r,t){if(typeof r==="function")t=r,r={};if(!r)r={};if(r.sync){if(t)throw new TypeError("callback provided to sync glob");return p(e,r)}return new Glob(e,r,t)}glob.sync=p;var w=glob.GlobSync=p.GlobSync;glob.glob=glob;function extend(e,r){if(r===null||typeof r!=="object"){return e}var t=Object.keys(r);var n=t.length;while(n--){e[t[n]]=r[t[n]]}return e}glob.hasMagic=function(e,r){var t=extend({},r);t.noprocess=true;var n=new Glob(e,t);var i=n.minimatch.set;if(!e)return false;if(i.length>1)return true;for(var u=0;uthis.maxLength)return r();if(!this.stat&&g(this.cache,t)){var u=this.cache[t];if(Array.isArray(u))u="DIR";if(!i||u==="DIR")return r(null,u);if(i&&u==="FILE")return r()}var o;var s=this.statCache[t];if(s!==undefined){if(s===false)return r(null,s);else{var a=s.isDirectory()?"DIR":"FILE";if(i&&a==="FILE")return r();else return r(null,a,s)}}var f=this;var c=m("stat\0"+t,lstatcb_);if(c)n.lstat(t,c);function lstatcb_(i,u){if(u&&u.isSymbolicLink()){return n.stat(t,function(n,i){if(n)f._stat2(e,t,null,u,r);else f._stat2(e,t,n,i,r)})}else{f._stat2(e,t,i,u,r)}}};Glob.prototype._stat2=function(e,r,t,n,i){if(t&&(t.code==="ENOENT"||t.code==="ENOTDIR")){this.statCache[r]=false;return i()}var u=e.slice(-1)==="/";this.statCache[r]=n;if(r.slice(-1)==="/"&&n&&!n.isDirectory())return i(null,false,n);var o=true;if(n)o=n.isDirectory()?"DIR":"FILE";this.cache[r]=this.cache[r]||o;if(u&&o==="FILE")return i();return i(null,o,n)}},function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:strong-marker",strongMarker);var s={"*":true,_:true,null:true};function strongMarker(e,r,t){var n=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(s[t]!==true){r.fail("Invalid strong marker `"+t+"`: use either `'consistent'`, `'*'`, or `'_'`")}i(e,"strong",visitor);function visitor(e){var i=n.charAt(u.start(e).offset);if(!o(e)){if(t){if(i!==t){r.message("Strong should use `"+t+"` as a marker",e)}}else{t=i}}}}},,function(e){"use strict";var r={}.hasOwnProperty;e.exports=stringify;function stringify(e){if(!e||typeof e!=="object"){return""}if(r.call(e,"position")||r.call(e,"type")){return position(e.position)}if(r.call(e,"start")||r.call(e,"end")){return position(e)}if(r.call(e,"line")||r.call(e,"column")){return point(e)}return""}function point(e){if(!e||typeof e!=="object"){e={}}return index(e.line)+":"+index(e.column)}function position(e){if(!e||typeof e!=="object"){e={}}return point(e.start)+"-"+point(e.end)}function index(e){return e&&typeof e==="number"?e:1}},function(e){e.exports=function(e,t){var n=[];for(var i=0;ir){return{line:t+1,column:r-(e[t-1]||0)+1,offset:r}}}return{}}}function positionToOffsetFactory(e){return positionToOffset;function positionToOffset(r){var t=r&&r.line;var n=r&&r.column;if(!isNaN(t)&&!isNaN(n)&&t-1 in e){return(e[t-2]||0)+n-1||0}return-1}}function indices(e){var r=[];var t=e.indexOf("\n");while(t!==-1){r.push(t+1);t=e.indexOf("\n",t+1)}r.push(e.length+1);return r}},,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:table-cell-padding",tableCellPadding);var s=u.start;var a=u.end;var f={null:true,padded:true,compact:true};function tableCellPadding(e,r,t){var n=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(f[t]!==true){r.fail("Invalid table-cell-padding style `"+t+"`")}i(e,"table",visitor);function visitor(e){var r=e.children;var u=new Array(e.align.length);var f=o(e)?-1:r.length;var c=-1;var l=[];var p;var h;var v;var D;var d;var g;var m;var E;var b;var A;var C;while(++cn){a+=" with 1 space, not "+o;if(size(u){r=r||process.argv;const t=e.startsWith("-")?"":e.length===1?"-":"--";const n=r.indexOf(t+e);const i=r.indexOf("--");return n!==-1&&(i===-1?true:n=0&&f>0){n=[];u=t.length;while(c>=0&&!s){if(c==a){n.push(c);a=t.indexOf(e,c+1)}else if(n.length==1){s=[n.pop(),f]}else{i=n.pop();if(i=0?a:f}if(n.length){s=[u,o]}}return s}},function(e,r,t){"use strict";const n=t(958);const{CHAR_ASTERISK:i,CHAR_AT:u,CHAR_BACKWARD_SLASH:o,CHAR_COMMA:s,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:f,CHAR_FORWARD_SLASH:c,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:p,CHAR_LEFT_SQUARE_BRACKET:h,CHAR_PLUS:v,CHAR_QUESTION_MARK:D,CHAR_RIGHT_CURLY_BRACE:d,CHAR_RIGHT_PARENTHESES:g,CHAR_RIGHT_SQUARE_BRACKET:m}=t(80);const E=e=>{return e===c||e===o};e.exports=((e,r)=>{const t=r||{};const b=e.length-1;let A=-1;let C=0;let w=0;let y=false;let F=false;let S=false;let _=0;let B;let O;let x=false;const k=()=>A>=b;const R=()=>{B=O;return e.charCodeAt(++A)};while(A0){T=e.slice(0,C);e=e.slice(C);w-=C}if(L&&y===true&&w>0){L=e.slice(0,w);M=e.slice(w)}else if(y===true){L="";M=e}else{L=e}if(L&&L!==""&&L!=="/"&&L!==e){if(E(L.charCodeAt(L.length-1))){L=L.slice(0,-1)}}if(t.unescape===true){if(M)M=n.removeBackslashes(M);if(L&&F===true){L=n.removeBackslashes(L)}}return{prefix:T,input:I,base:L,glob:M,negated:S,isGlob:y}})},function(e,r,t){"use strict";e.exports=Readable;var n;Readable.ReadableState=ReadableState;var i=t(614).EventEmitter;var u=function EElistenerCount(e,r){return e.listeners(r).length};var o=t(927);var s=t(293).Buffer;var a=global.Uint8Array||function(){};function _uint8ArrayToBuffer(e){return s.from(e)}function _isUint8Array(e){return s.isBuffer(e)||e instanceof a}var f=t(669);var c;if(f&&f.debuglog){c=f.debuglog("stream")}else{c=function debug(){}}var l=t(147);var p=t(318);var h=t(675),v=h.getHighWaterMark;var D=t(77).codes,d=D.ERR_INVALID_ARG_TYPE,g=D.ERR_STREAM_PUSH_AFTER_EOF,m=D.ERR_METHOD_NOT_IMPLEMENTED,E=D.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;var b=t(4),A=b.emitExperimentalWarning;var C;var w;t(744)(Readable,o);var y=["error","close","destroy","pause","resume"];function prependListener(e,r,t){if(typeof e.prependListener==="function")return e.prependListener(r,t);if(!e._events||!e._events[r])e.on(r,t);else if(Array.isArray(e._events[r]))e._events[r].unshift(t);else e._events[r]=[t,e._events[r]]}function ReadableState(e,r,i){n=n||t(864);e=e||{};if(typeof i!=="boolean")i=r instanceof n;this.objectMode=!!e.objectMode;if(i)this.objectMode=this.objectMode||!!e.readableObjectMode;this.highWaterMark=v(this,e,"readableHighWaterMark",i);this.buffer=new l;this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.paused=true;this.emitClose=e.emitClose!==false;this.destroyed=false;this.defaultEncoding=e.defaultEncoding||"utf8";this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(e.encoding){if(!C)C=t(154).StringDecoder;this.decoder=new C(e.encoding);this.encoding=e.encoding}}function Readable(e){n=n||t(864);if(!(this instanceof Readable))return new Readable(e);var r=this instanceof n;this._readableState=new ReadableState(e,this,r);this.readable=true;if(e){if(typeof e.read==="function")this._read=e.read;if(typeof e.destroy==="function")this._destroy=e.destroy}o.call(this)}Object.defineProperty(Readable.prototype,"destroyed",{enumerable:false,get:function get(){if(this._readableState===undefined){return false}return this._readableState.destroyed},set:function set(e){if(!this._readableState){return}this._readableState.destroyed=e}});Readable.prototype.destroy=p.destroy;Readable.prototype._undestroy=p.undestroy;Readable.prototype._destroy=function(e,r){r(e)};Readable.prototype.push=function(e,r){var t=this._readableState;var n;if(!t.objectMode){if(typeof e==="string"){r=r||t.defaultEncoding;if(r!==t.encoding){e=s.from(e,r);r=""}n=true}}else{n=true}return readableAddChunk(this,e,r,false,n)};Readable.prototype.unshift=function(e){return readableAddChunk(this,e,null,true,false)};function readableAddChunk(e,r,t,n,i){c("readableAddChunk",r);var u=e._readableState;if(r===null){u.reading=false;onEofChunk(e,u)}else{var o;if(!i)o=chunkInvalid(u,r);if(o){e.emit("error",o)}else if(u.objectMode||r&&r.length>0){if(typeof r!=="string"&&!u.objectMode&&Object.getPrototypeOf(r)!==s.prototype){r=_uint8ArrayToBuffer(r)}if(n){if(u.endEmitted)e.emit("error",new E);else addChunk(e,u,r,true)}else if(u.ended){e.emit("error",new g)}else if(u.destroyed){return false}else{u.reading=false;if(u.decoder&&!t){r=u.decoder.write(r);if(u.objectMode||r.length!==0)addChunk(e,u,r,false);else maybeReadMore(e,u)}else{addChunk(e,u,r,false)}}}else if(!n){u.reading=false;maybeReadMore(e,u)}}return!u.ended&&(u.length=F){e=F}else{e--;e|=e>>>1;e|=e>>>2;e|=e>>>4;e|=e>>>8;e|=e>>>16;e++}return e}function howMuchToRead(e,r){if(e<=0||r.length===0&&r.ended)return 0;if(r.objectMode)return 1;if(e!==e){if(r.flowing&&r.length)return r.buffer.head.data.length;else return r.length}if(e>r.highWaterMark)r.highWaterMark=computeNewHighWaterMark(e);if(e<=r.length)return e;if(!r.ended){r.needReadable=true;return 0}return r.length}Readable.prototype.read=function(e){c("read",e);e=parseInt(e,10);var r=this._readableState;var t=e;if(e!==0)r.emittedReadable=false;if(e===0&&r.needReadable&&((r.highWaterMark!==0?r.length>=r.highWaterMark:r.length>0)||r.ended)){c("read: emitReadable",r.length,r.ended);if(r.length===0&&r.ended)endReadable(this);else emitReadable(this);return null}e=howMuchToRead(e,r);if(e===0&&r.ended){if(r.length===0)endReadable(this);return null}var n=r.needReadable;c("need readable",n);if(r.length===0||r.length-e0)i=fromList(e,r);else i=null;if(i===null){r.needReadable=true;e=0}else{r.length-=e;r.awaitDrain=0}if(r.length===0){if(!r.ended)r.needReadable=true;if(t!==e&&r.ended)endReadable(this)}if(i!==null)this.emit("data",i);return i};function onEofChunk(e,r){if(r.ended)return;if(r.decoder){var t=r.decoder.end();if(t&&t.length){r.buffer.push(t);r.length+=r.objectMode?1:t.length}}r.ended=true;if(r.sync){emitReadable(e)}else{r.needReadable=false;if(!r.emittedReadable){r.emittedReadable=true;emitReadable_(e)}}}function emitReadable(e){var r=e._readableState;r.needReadable=false;if(!r.emittedReadable){c("emitReadable",r.flowing);r.emittedReadable=true;process.nextTick(emitReadable_,e)}}function emitReadable_(e){var r=e._readableState;c("emitReadable_",r.destroyed,r.length,r.ended);if(!r.destroyed&&(r.length||r.ended)){e.emit("readable")}r.needReadable=!r.flowing&&!r.ended&&r.length<=r.highWaterMark;flow(e)}function maybeReadMore(e,r){if(!r.readingMore){r.readingMore=true;process.nextTick(maybeReadMore_,e,r)}}function maybeReadMore_(e,r){while(!r.reading&&!r.ended&&(r.length1&&indexOf(n.pipes,e)!==-1)&&!a){c("false write response, pause",n.awaitDrain);n.awaitDrain++}t.pause()}}function onerror(r){c("onerror",r);unpipe();e.removeListener("error",onerror);if(u(e,"error")===0)e.emit("error",r)}prependListener(e,"error",onerror);function onclose(){e.removeListener("finish",onfinish);unpipe()}e.once("close",onclose);function onfinish(){c("onfinish");e.removeListener("close",onclose);unpipe()}e.once("finish",onfinish);function unpipe(){c("unpipe");t.unpipe(e)}e.emit("pipe",t);if(!n.flowing){c("pipe resume");t.resume()}return e};function pipeOnDrain(e){return function pipeOnDrainFunctionResult(){var r=e._readableState;c("pipeOnDrain",r.awaitDrain);if(r.awaitDrain)r.awaitDrain--;if(r.awaitDrain===0&&u(e,"data")){r.flowing=true;flow(e)}}}Readable.prototype.unpipe=function(e){var r=this._readableState;var t={hasUnpiped:false};if(r.pipesCount===0)return this;if(r.pipesCount===1){if(e&&e!==r.pipes)return this;if(!e)e=r.pipes;r.pipes=null;r.pipesCount=0;r.flowing=false;if(e)e.emit("unpipe",this,t);return this}if(!e){var n=r.pipes;var i=r.pipesCount;r.pipes=null;r.pipesCount=0;r.flowing=false;for(var u=0;u0;if(n.flowing!==false)this.resume()}else if(e==="readable"){if(!n.endEmitted&&!n.readableListening){n.readableListening=n.needReadable=true;n.flowing=false;n.emittedReadable=false;c("on readable",n.length,n.reading);if(n.length){emitReadable(this)}else if(!n.reading){process.nextTick(nReadingNextTick,this)}}}return t};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(e,r){var t=o.prototype.removeListener.call(this,e,r);if(e==="readable"){process.nextTick(updateReadableListening,this)}return t};Readable.prototype.removeAllListeners=function(e){var r=o.prototype.removeAllListeners.apply(this,arguments);if(e==="readable"||e===undefined){process.nextTick(updateReadableListening,this)}return r};function updateReadableListening(e){var r=e._readableState;r.readableListening=e.listenerCount("readable")>0;if(r.resumeScheduled&&!r.paused){r.flowing=true}else if(e.listenerCount("data")>0){e.resume()}}function nReadingNextTick(e){c("readable nexttick read 0");e.read(0)}Readable.prototype.resume=function(){var e=this._readableState;if(!e.flowing){c("resume");e.flowing=!e.readableListening;resume(this,e)}e.paused=false;return this};function resume(e,r){if(!r.resumeScheduled){r.resumeScheduled=true;process.nextTick(resume_,e,r)}}function resume_(e,r){c("resume",r.reading);if(!r.reading){e.read(0)}r.resumeScheduled=false;e.emit("resume");flow(e);if(r.flowing&&!r.reading)e.read(0)}Readable.prototype.pause=function(){c("call pause flowing=%j",this._readableState.flowing);if(this._readableState.flowing!==false){c("pause");this._readableState.flowing=false;this.emit("pause")}this._readableState.paused=true;return this};function flow(e){var r=e._readableState;c("flow",r.flowing);while(r.flowing&&e.read()!==null){}}Readable.prototype.wrap=function(e){var r=this;var t=this._readableState;var n=false;e.on("end",function(){c("wrapped end");if(t.decoder&&!t.ended){var e=t.decoder.end();if(e&&e.length)r.push(e)}r.push(null)});e.on("data",function(i){c("wrapped data");if(t.decoder)i=t.decoder.write(i);if(t.objectMode&&(i===null||i===undefined))return;else if(!t.objectMode&&(!i||!i.length))return;var u=r.push(i);if(!u){n=true;e.pause()}});for(var i in e){if(this[i]===undefined&&typeof e[i]==="function"){this[i]=function methodWrap(r){return function methodWrapReturnFunction(){return e[r].apply(e,arguments)}}(i)}}for(var u=0;u=r.length){if(r.decoder)t=r.buffer.join("");else if(r.buffer.length===1)t=r.buffer.first();else t=r.buffer.concat(r.length);r.buffer.clear()}else{t=r.buffer.consume(e,r.decoder)}return t}function endReadable(e){var r=e._readableState;c("endReadable",r.endEmitted);if(!r.endEmitted){r.ended=true;process.nextTick(endReadableNT,r,e)}}function endReadableNT(e,r){c("endReadableNT",e.endEmitted,e.length);if(!e.endEmitted&&e.length===0){e.endEmitted=true;r.readable=false;r.emit("end")}}function indexOf(e,r){for(var t=0,n=e.length;t0){return parse(e)}else if(t==="number"&&isFinite(e)){return r.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var s=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!s){return}var a=parseFloat(s[1]);var f=(s[2]||"ms").toLowerCase();switch(f){case"years":case"year":case"yrs":case"yr":case"y":return a*o;case"weeks":case"week":case"w":return a*u;case"days":case"day":case"d":return a*i;case"hours":case"hour":case"hrs":case"hr":case"h":return a*n;case"minutes":case"minute":case"mins":case"min":case"m":return a*t;case"seconds":case"second":case"secs":case"sec":case"s":return a*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return undefined}}function fmtShort(e){var u=Math.abs(e);if(u>=i){return Math.round(e/i)+"d"}if(u>=n){return Math.round(e/n)+"h"}if(u>=t){return Math.round(e/t)+"m"}if(u>=r){return Math.round(e/r)+"s"}return e+"ms"}function fmtLong(e){var u=Math.abs(e);if(u>=i){return plural(e,u,i,"day")}if(u>=n){return plural(e,u,n,"hour")}if(u>=t){return plural(e,u,t,"minute")}if(u>=r){return plural(e,u,r,"second")}return e+" ms"}function plural(e,r,t,n){var i=r>=t*1.5;return Math.round(e/t)+" "+n+(i?"s":"")}},function(e,r,t){"use strict";var n=t(977);var i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"];var u=["scalar","sequence","mapping"];function compileStyleAliases(e){var r={};if(e!==null){Object.keys(e).forEach(function(t){e[t].forEach(function(e){r[String(e)]=t})})}return r}function Type(e,r){r=r||{};Object.keys(r).forEach(function(r){if(i.indexOf(r)===-1){throw new n('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}});this.tag=e;this.kind=r["kind"]||null;this.resolve=r["resolve"]||function(){return true};this.construct=r["construct"]||function(e){return e};this.instanceOf=r["instanceOf"]||null;this.predicate=r["predicate"]||null;this.represent=r["represent"]||null;this.defaultStyle=r["defaultStyle"]||null;this.styleAliases=compileStyleAliases(r["styleAliases"]||null);if(u.indexOf(this.kind)===-1){throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}}e.exports=Type},function(e){"use strict";e.exports=interrupt;function interrupt(e,r,t,n){var i=e.length;var u=-1;var o;var s;while(++un){n=t}}else{t=1}i=u+1;u=e.indexOf(r,i)}return n}},function(e){e.exports=wrappy;function wrappy(e,r){if(e&&r)return wrappy(e)(r);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach(function(r){wrapper[r]=e[r]});return wrapper;function wrapper(){var r=new Array(arguments.length);for(var t=0;t=E){return}_=r.charAt(A);if(_===f||_===l||_===p){B=_;S=false}else{S=true;F="";while(A=E){z=true}if($&&y>=$.indent){z=true}_=r.charAt(A);R=null;if(!z){if(_===f||_===l||_===p){R=_;A++;y++}else{F="";while(A=$.indent||y>E}k=false;A=x}I=r.slice(x,O);T=x===A?I:r.slice(A,O);if(R===f||R===c||R===p){if(m.thematicBreak.call(i,e,I,true)){break}}L=M;M=!k&&!n(T).length;if(z&&$){$.value=$.value.concat(N,I);P=P.concat(N,I);N=[]}else if(k){if(N.length!==0){W=true;$.value.push("");$.trail=N.concat()}$={value:[I],indent:y,trail:[]};j.push($);P=P.concat(N,I);N=[]}else if(M){if(L&&!o){break}N.push(I)}else{if(L){break}if(a(b,m,i,[e,I,true])){break}$.value=$.value.concat(N,I);P=P.concat(N,I);N=[]}A=O+1}G=e(P.join(D)).reset({type:"list",ordered:S,start:w,spread:W,children:[]});H=i.enterList();U=i.enterBlock();A=-1;C=j.length;while(++Ae!==null&&typeof e==="object"&&!Array.isArray(e);const o=e=>{return r=>e===true?Number(r):String(r)};const s=e=>{return typeof e==="number"||typeof e==="string"&&e!==""};const a=e=>Number.isInteger(+e);const f=e=>{let r=`${e}`;let t=-1;if(r[0]==="-")r=r.slice(1);if(r==="0")return false;while(r[++t]==="0");return t>0};const c=(e,r,t)=>{if(typeof e==="string"||typeof r==="string"){return true}return t.stringify===true};const l=(e,r,t)=>{if(r>0){let t=e[0]==="-"?"-":"";if(t)e=e.slice(1);e=t+e.padStart(t?r-1:r,"0")}if(t===false){return String(e)}return e};const p=(e,r)=>{let t=e[0]==="-"?"-":"";if(t){e=e.slice(1);r--}while(e.length{e.negatives.sort((e,r)=>er?1:0);e.positives.sort((e,r)=>er?1:0);let t=r.capture?"":"?:";let n="";let i="";let u;if(e.positives.length){n=e.positives.join("|")}if(e.negatives.length){i=`-(${t}${e.negatives.join("|")})`}if(n&&i){u=`${n}|${i}`}else{u=n||i}if(r.wrap){return`(${t}${u})`}return u};const v=(e,r,t,n)=>{if(t){return i(e,r,{wrap:false,...n})}let u=String.fromCharCode(e);if(e===r)return u;let o=String.fromCharCode(r);return`[${u}-${o}]`};const D=(e,r,t)=>{if(Array.isArray(e)){let r=t.wrap===true;let n=t.capture?"":"?:";return r?`(${n}${e.join("|")})`:e.join("|")}return i(e,r,t)};const d=(...e)=>{return new RangeError("Invalid range arguments: "+n.inspect(...e))};const g=(e,r,t)=>{if(t.strictRanges===true)throw d([e,r]);return[]};const m=(e,r)=>{if(r.strictRanges===true){throw new TypeError(`Expected step "${e}" to be a number`)}return[]};const E=(e,r,t=1,n={})=>{let i=Number(e);let u=Number(r);if(!Number.isInteger(i)||!Number.isInteger(u)){if(n.strictRanges===true)throw d([e,r]);return[]}if(i===0)i=0;if(u===0)u=0;let s=i>u;let a=String(e);let g=String(r);let m=String(t);t=Math.max(Math.abs(t),1);let E=f(a)||f(g)||f(m);let b=E?Math.max(a.length,g.length,m.length):0;let A=E===false&&c(e,r,n)===false;let C=n.transform||o(A);if(n.toRegex&&t===1){return v(p(e,b),p(r,b),true,n)}let w={negatives:[],positives:[]};let y=e=>w[e<0?"negatives":"positives"].push(Math.abs(e));let F=[];let S=0;while(s?i>=u:i<=u){if(n.toRegex===true&&t>1){y(i)}else{F.push(l(C(i,S),b,A))}i=s?i-t:i+t;S++}if(n.toRegex===true){return t>1?h(w,n):D(F,null,{wrap:false,...n})}return F};const b=(e,r,t=1,n={})=>{if(!a(e)&&e.length>1||!a(r)&&r.length>1){return g(e,r,n)}let i=n.transform||(e=>String.fromCharCode(e));let u=`${e}`.charCodeAt(0);let o=`${r}`.charCodeAt(0);let s=u>o;let f=Math.min(u,o);let c=Math.max(u,o);if(n.toRegex&&t===1){return v(f,c,false,n)}let l=[];let p=0;while(s?u>=o:u<=o){l.push(i(u,p));u=s?u-t:u+t;p++}if(n.toRegex===true){return D(l,null,{wrap:false,options:n})}return l};const A=(e,r,t,n={})=>{if(r==null&&s(e)){return[e]}if(!s(e)||!s(r)){return g(e,r,n)}if(typeof t==="function"){return A(e,r,1,{transform:t})}if(u(t)){return A(e,r,0,t)}let i={...n};if(i.capture===true)i.wrap=true;t=t||i.step||1;if(!a(t)){if(t!=null&&!u(t))return m(t,i);return A(e,r,1,t)}if(a(e)&&a(r)){return E(e,r,t,i)}return b(e,r,Math.max(Math.abs(t),1),i)};e.exports=A},,,,,function(e,r,t){"use strict";e=t.nmd(e);const n=t(186);const i=new Map;for(const e of Object.keys(n)){i.set(e,n[e])}Object.defineProperty(e,"exports",{get(){return i}})},function(e,r,t){"use strict";var n=t(164);e.exports=thematic;var i=" ";function thematic(){var e=this.options;var r=n(e.rule,e.ruleRepetition);return e.ruleSpaces?r.split("").join(i):r}},,,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:definition-spacing",definitionSpacing);var s=/^\s*\[((?:\\[\s\S]|[^[\]])+)]/;var a="Do not use consecutive white-space in definition labels";function definitionSpacing(e,r){var t=String(r);i(e,["definition","footnoteDefinition"],validate);function validate(e){var n=u.start(e).offset;var i=u.end(e).offset;if(!o(e)&&/[ \t\n]{2,}/.test(t.slice(n,i).match(s)[1])){r.message(a,e)}}}},function(e){e.exports=function(e,r,t){var n=[];var i=e.length;if(0===i)return n;var u=r<0?Math.max(0,r+i):r||0;if(t!==undefined){i=t<0?t+i:t}while(i-- >u){n[i-u]=e[i]}return n}},,,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(766);var o=t(189);e.exports=n("remark-lint:unordered-list-marker-style",unorderedListMarkerStyle);var s=u.start;var a={"-":true,"*":true,"+":true,null:true};function unorderedListMarkerStyle(e,r,t){var n=String(r);t=typeof t==="string"&&t!=="consistent"?t:null;if(a[t]!==true){r.fail("Invalid unordered list-item marker style `"+t+"`: use either `'-'`, `'*'`, or `'+'`")}i(e,"list",visitor);function visitor(e){var i=e.children;var u=e.ordered?0:i.length;var a=-1;var f;var c;while(++a0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i-1))===-1){i-=1;if(this.position-i>r/2-1){t=" ... ";i+=5;break}}u="";o=this.position;while(or/2-1){u=" ... ";o-=5;break}}s=this.buffer.slice(i,o);return n.repeat(" ",e)+t+s+u+"\n"+n.repeat(" ",e+this.position-i+t.length)+"^"};Mark.prototype.toString=function toString(e){var r,t="";if(this.name){t+='in "'+this.name+'" '}t+="at line "+(this.line+1)+", column "+(this.column+1);if(!e){r=this.getSnippet();if(r){t+=":\n"+r}}return t};e.exports=Mark},,,function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(189);e.exports=n("remark-lint:first-heading-level",firstHeadingLevel);var o=/{if(n(e)===false){throw new TypeError("toRegexRange: expected the first argument to be a number")}if(r===void 0||e===r){return String(e)}if(n(r)===false){throw new TypeError("toRegexRange: expected the second argument to be a number.")}let u={relaxZeros:true,...t};if(typeof u.strictZeros==="boolean"){u.relaxZeros=u.strictZeros===false}let o=String(u.relaxZeros);let s=String(u.shorthand);let a=String(u.capture);let f=String(u.wrap);let c=e+":"+r+"="+o+s+a+f;if(i.cache.hasOwnProperty(c)){return i.cache[c].result}let l=Math.min(e,r);let p=Math.max(e,r);if(Math.abs(l-p)===1){let t=e+"|"+r;if(u.capture){return`(${t})`}if(u.wrap===false){return t}return`(?:${t})`}let h=hasPadding(e)||hasPadding(r);let v={min:e,max:r,a:l,b:p};let D=[];let d=[];if(h){v.isPadded=h;v.maxLen=String(v.max).length}if(l<0){let e=p<0?Math.abs(p):1;d=splitToPatterns(e,Math.abs(l),v,u);l=v.a=0}if(p>=0){D=splitToPatterns(l,p,v,u)}v.negatives=d;v.positives=D;v.result=collatePatterns(d,D,u);if(u.capture===true){v.result=`(${v.result})`}else if(u.wrap!==false&&D.length+d.length>1){v.result=`(?:${v.result})`}i.cache[c]=v;return v.result};function collatePatterns(e,r,t){let n=filterPatterns(e,r,"-",false,t)||[];let i=filterPatterns(r,e,"",false,t)||[];let u=filterPatterns(e,r,"-?",true,t)||[];let o=n.concat(u).concat(i);return o.join("|")}function splitToRanges(e,r){let t=1;let n=1;let i=countNines(e,t);let u=new Set([r]);while(e<=i&&i<=r){u.add(i);t+=1;i=countNines(e,t)}i=countZeros(r+1,n)-1;while(e1){s.count.pop()}s.count.push(a.count[0]);s.string=s.pattern+toQuantifier(s.count);o=r+1;continue}if(t.isPadded){f=padZeros(r,t,n)}a.string=f+a.pattern+toQuantifier(a.count);u.push(a);o=r+1;s=a}return u}function filterPatterns(e,r,t,n,i){let u=[];for(let i of e){let{string:e}=i;if(!n&&!contains(r,"string",e)){u.push(t+e)}if(n&&contains(r,"string",e)){u.push(t+e)}}return u}function zip(e,r){let t=[];for(let n=0;nr?1:r>e?-1:0}function contains(e,r,t){return e.some(e=>e[r]===t)}function countNines(e,r){return Number(String(e).slice(0,-r)+"9".repeat(r))}function countZeros(e,r){return e-e%Math.pow(10,r)}function toQuantifier(e){let[r=0,t=""]=e;if(t||r>1){return`{${r+(t?","+t:"")}}`}return""}function toCharacterClass(e,r,t){return`[${e}${r-e===1?"":"-"}${r}]`}function hasPadding(e){return/^-?(0+)\d/.test(e)}function padZeros(e,r,t){if(!r.isPadded){return e}let n=Math.abs(r.maxLen-String(e).length);let i=t.relaxZeros!==false;switch(n){case 0:return"";case 1:return i?"0?":"0";case 2:return i?"0{0,2}":"00";default:{return i?`0{0,${n}}`:`0{${n}}`}}}i.cache={};i.clearCache=(()=>i.cache={});e.exports=i},function(e,r,t){"use strict";const{EventEmitter:n}=t(614);const i=t(747);const u=t(622);const{promisify:o}=t(669);const s=t(285);const a=t(74).default;const f=t(782);const c=t(607);const l=t(385);const p=t(204);const h=t(262);const v=t(231);const{EV_ALL:D,EV_READY:d,EV_ADD:g,EV_CHANGE:m,EV_UNLINK:E,EV_ADD_DIR:b,EV_UNLINK_DIR:A,EV_RAW:C,EV_ERROR:w,STR_CLOSE:y,STR_END:F,BACK_SLASH_RE:S,DOUBLE_SLASH_RE:_,SLASH_OR_BACK_SLASH_RE:B,DOT_RE:O,REPLACER_RE:x,SLASH:k,BRACE_START:R,BANG:T,ONE_DOT:I,TWO_DOTS:L,GLOBSTAR:M,SLASH_GLOBSTAR:j,ANYMATCH_OPTS:P,STRING_TYPE:N,FUNCTION_TYPE:$,EMPTY_STR:H,EMPTY_FN:U,isWindows:W,isMacos:G}=t(287);const q=o(i.stat);const Y=o(i.readdir);const z=(e=[])=>Array.isArray(e)?e:[e];const V=(e,r=[])=>{e.forEach(e=>{if(Array.isArray(e)){V(e,r)}else{r.push(e)}});return r};const J=e=>{const r=V(z(e));if(!r.every(e=>typeof e===N)){throw new TypeError(`Non-string provided as watch path: ${r}`)}return r.map(Q)};const Z=e=>{let r=e.replace(S,k);while(r.match(_)){r=r.replace(_,k)}return r};const Q=e=>Z(u.normalize(Z(e)));const X=(e=H)=>r=>{if(typeof r!==N)return r;return Q(u.isAbsolute(r)?r:u.join(e,r))};const K=(e,r)=>{if(u.isAbsolute(e)){return e}if(e.startsWith(T)){return T+u.join(r,e.slice(1))}return u.join(r,e)};const ee=(e,r)=>e[r]===undefined;class DirEntry{constructor(e,r){this.path=e;this._removeWatcher=r;this.items=new Set}add(e){const{items:r}=this;if(!r)return;if(e!==I&&e!==L)r.add(e)}async remove(e){const{items:r}=this;if(!r)return;r.delete(e);if(!r.size){const e=this.path;try{await Y(e)}catch(r){this._removeWatcher(u.dirname(e),u.basename(e))}}}has(e){const{items:r}=this;if(!r)return;return r.has(e)}getChildren(){const{items:e}=this;if(!e)return;return[...e.values()]}dispose(){this.items.clear();delete this.path;delete this._removeWatcher;delete this.items;Object.freeze(this)}}const re="stat";const te="lstat";class WatchHelper{constructor(e,r,t,n){this.fsw=n;this.path=e=e.replace(x,H);this.watchPath=r;this.fullWatchPath=u.resolve(r);this.hasGlob=r!==e;if(e===H)this.hasGlob=false;this.globSymlink=this.hasGlob&&t?undefined:false;this.globFilter=this.hasGlob?a(e,undefined,P):false;this.dirParts=this.getDirParts(e);this.dirParts.forEach(e=>{if(e.length>1)e.pop()});this.followSymlinks=t;this.statMethod=t?re:te}checkGlobSymlink(e){if(this.globSymlink===undefined){this.globSymlink=e.fullParentDir===this.fullWatchPath?false:{realPath:e.fullParentDir,linkPath:this.fullWatchPath}}if(this.globSymlink){return e.fullPath.replace(this.globSymlink.realPath,this.globSymlink.linkPath)}return e.fullPath}entryPath(e){return u.join(this.watchPath,u.relative(this.watchPath,this.checkGlobSymlink(e)))}filterPath(e){const{stats:r}=e;if(r&&r.isSymbolicLink())return this.filterDir(e);const t=this.entryPath(e);const n=this.hasGlob&&typeof this.globFilter===$?this.globFilter(t):true;return n&&this.fsw._isntIgnored(t,r)&&this.fsw._hasReadPermissions(r)}getDirParts(e){if(!this.hasGlob)return[];const r=[];const t=e.includes(R)?l.expand(e):[e];t.forEach(e=>{r.push(u.relative(this.watchPath,e).split(B))});return r}filterDir(e){if(this.hasGlob){const r=this.getDirParts(this.checkGlobSymlink(e));let t=false;this.unmatchedGlob=!this.dirParts.some(e=>{return e.every((e,n)=>{if(e===M)t=true;return t||!r[0][n]||a(e,r[0][n],P)})})}return!this.unmatchedGlob&&this.fsw._isntIgnored(this.entryPath(e),e.stats)}}class FSWatcher extends n{constructor(e){super();const r={};if(e)Object.assign(r,e);this._watched=new Map;this._closers=new Map;this._ignoredPaths=new Set;this._throttled=new Map;this._symlinkPaths=new Map;this._streams=new Set;this.closed=false;if(ee(r,"persistent"))r.persistent=true;if(ee(r,"ignoreInitial"))r.ignoreInitial=false;if(ee(r,"ignorePermissionErrors"))r.ignorePermissionErrors=false;if(ee(r,"interval"))r.interval=100;if(ee(r,"binaryInterval"))r.binaryInterval=300;if(ee(r,"disableGlobbing"))r.disableGlobbing=false;r.enableBinaryInterval=r.binaryInterval!==r.interval;if(ee(r,"useFsEvents"))r.useFsEvents=!r.usePolling;const t=v.canUse();if(!t)r.useFsEvents=false;if(ee(r,"usePolling")&&!r.useFsEvents){r.usePolling=G}const n=process.env.CHOKIDAR_USEPOLLING;if(n!==undefined){const e=n.toLowerCase();if(e==="false"||e==="0"){r.usePolling=false}else if(e==="true"||e==="1"){r.usePolling=true}else{r.usePolling=!!e}}const i=process.env.CHOKIDAR_INTERVAL;if(i){r.interval=Number.parseInt(i,10)}if(ee(r,"atomic"))r.atomic=!r.usePolling&&!r.useFsEvents;if(r.atomic)this._pendingUnlinks=new Map;if(ee(r,"followSymlinks"))r.followSymlinks=true;if(ee(r,"awaitWriteFinish"))r.awaitWriteFinish=false;if(r.awaitWriteFinish===true)r.awaitWriteFinish={};const u=r.awaitWriteFinish;if(u){if(!u.stabilityThreshold)u.stabilityThreshold=2e3;if(!u.pollInterval)u.pollInterval=100;this._pendingWrites=new Map}if(r.ignored)r.ignored=z(r.ignored);let o=0;this._emitReady=(()=>{o++;if(o>=this._readyCount){this._emitReady=U;this._readyEmitted=true;process.nextTick(()=>this.emit(d))}});this._emitRaw=((...e)=>this.emit(C,...e));this._readyEmitted=false;this.options=r;if(r.useFsEvents){this._fsEventsHandler=new v(this)}else{this._nodeFsHandler=new h(this)}Object.freeze(r)}add(e,r,t){const{cwd:n,disableGlobbing:i}=this.options;this.closed=false;let o=J(e);if(n){o=o.map(e=>{const r=K(e,n);if(i||!c(e)){return r}return p(r)})}o=o.filter(e=>{if(e.startsWith(T)){this._ignoredPaths.add(e.slice(1));return false}this._ignoredPaths.delete(e);this._ignoredPaths.delete(e+j);this._userIgnored=undefined;return true});if(this.options.useFsEvents&&this._fsEventsHandler){if(!this._readyCount)this._readyCount=o.length;if(this.options.persistent)this._readyCount*=2;o.forEach(e=>this._fsEventsHandler._addToFsEvents(e))}else{if(!this._readyCount)this._readyCount=0;this._readyCount+=o.length;Promise.all(o.map(async e=>{const n=await this._nodeFsHandler._addToNodeFs(e,!t,0,0,r);if(n)this._emitReady();return n})).then(e=>{if(this.closed)return;e.filter(e=>e).forEach(e=>{this.add(u.dirname(e),u.basename(r||e))})})}return this}unwatch(e){if(this.closed)return this;const r=J(e);const{cwd:t}=this.options;r.forEach(e=>{if(!u.isAbsolute(e)&&!this._closers.has(e)){if(t)e=u.join(t,e);e=u.resolve(e)}this._closePath(e);this._ignoredPaths.add(e);if(this._watched.has(e)){this._ignoredPaths.add(e+j)}this._userIgnored=undefined});return this}close(){if(this.closed)return this;this.closed=true;this.removeAllListeners();const e=[];this._closers.forEach(r=>r.forEach(r=>{const t=r();if(t instanceof Promise)e.push(t)}));this._streams.forEach(e=>e.destroy());this._userIgnored=undefined;this._readyCount=0;this._readyEmitted=false;this._watched.forEach(e=>e.dispose());["closers","watched","streams","symlinkPaths","throttled"].forEach(e=>{this[`_${e}`].clear()});return e.length?Promise.all(e).then(()=>undefined):Promise.resolve()}getWatched(){const e={};this._watched.forEach((r,t)=>{const n=this.options.cwd?u.relative(this.options.cwd,t):t;e[n||I]=r.getChildren().sort()});return e}emitWithAll(e,r){this.emit(...r);if(e!==w)this.emit(D,...r)}async _emit(e,r,t,n,i){if(this.closed)return;const o=this.options;if(W)r=u.normalize(r);if(o.cwd)r=u.relative(o.cwd,r);const s=[e,r];if(i!==undefined)s.push(t,n,i);else if(n!==undefined)s.push(t,n);else if(t!==undefined)s.push(t);const a=o.awaitWriteFinish;let f;if(a&&(f=this._pendingWrites.get(r))){f.lastChange=new Date;return this}if(o.atomic){if(e===E){this._pendingUnlinks.set(r,s);setTimeout(()=>{this._pendingUnlinks.forEach((e,r)=>{this.emit(...e);this.emit(D,...e);this._pendingUnlinks.delete(r)})},typeof o.atomic==="number"?o.atomic:100);return this}if(e===g&&this._pendingUnlinks.has(r)){e=s[0]=m;this._pendingUnlinks.delete(r)}}if(a&&(e===g||e===m)&&this._readyEmitted){const t=(r,t)=>{if(r){e=s[0]=w;s[1]=r;this.emitWithAll(e,s)}else if(t){if(s.length>2){s[2]=t}else{s.push(t)}this.emitWithAll(e,s)}};this._awaitWriteFinish(r,a.stabilityThreshold,e,t);return this}if(e===m){const e=!this._throttle(m,r,50);if(e)return this}if(o.alwaysStat&&t===undefined&&(e===g||e===b||e===m)){const t=o.cwd?u.join(o.cwd,r):r;try{const r=await q(t);if(!r)return;s.push(r);this.emitWithAll(e,s)}catch(e){}}else{this.emitWithAll(e,s)}return this}_handleError(e){const r=e&&e.code;if(e&&r!=="ENOENT"&&r!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||r!=="EPERM"&&r!=="EACCES")){this.emit(w,e)}return e||this.closed}_throttle(e,r,t){if(!this._throttled.has(e)){this._throttled.set(e,new Map)}const n=this._throttled.get(e);const i=n.get(r);if(i){i.count++;return false}let u;const o=()=>{const e=n.get(r);const t=e?e.count:0;n.delete(r);clearTimeout(u);if(e)clearTimeout(e.timeoutObject);return t};u=setTimeout(o,t);const s={timeoutObject:u,clear:o,count:0};n.set(r,s);return s}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,r,t,n){let o;let s=e;if(this.options.cwd&&!u.isAbsolute(e)){s=u.join(this.options.cwd,e)}const a=new Date;const f=t=>{i.stat(s,(i,u)=>{if(i||!this._pendingWrites.has(e)){if(i&&i.code!=="ENOENT")n(i);return}const s=Number(new Date);if(t&&u.size!==t.size){this._pendingWrites.get(e).lastChange=s}const a=this._pendingWrites.get(e);const c=s-a.lastChange;if(c>=r){this._pendingWrites.delete(e);n(undefined,u)}else{o=setTimeout(f,this.options.awaitWriteFinish.pollInterval,u)}})};if(!this._pendingWrites.has(e)){this._pendingWrites.set(e,{lastChange:a,cancelWait:()=>{this._pendingWrites.delete(e);clearTimeout(o);return t}});o=setTimeout(f,this.options.awaitWriteFinish.pollInterval)}}_getGlobIgnored(){return[...this._ignoredPaths.values()]}_isIgnored(e,r){if(this.options.atomic&&O.test(e))return true;if(!this._userIgnored){const{cwd:e}=this.options;const r=this.options.ignored;const t=r&&r.map(X(e));const n=z(t).filter(e=>typeof e===N&&!c(e)).map(e=>e+j);const i=this._getGlobIgnored().map(X(e)).concat(t,n);this._userIgnored=a(i,undefined,P)}return this._userIgnored([e,r])}_isntIgnored(e,r){return!this._isIgnored(e,r)}_getWatchHelpers(e,r){const t=r||this.options.disableGlobbing||!c(e)?e:f(e);const n=this.options.followSymlinks;return new WatchHelper(e,t,n,this)}_getWatchedDir(e){if(!this._boundRemove)this._boundRemove=this._remove.bind(this);const r=u.resolve(e);if(!this._watched.has(r))this._watched.set(r,new DirEntry(r,this._boundRemove));return this._watched.get(r)}_hasReadPermissions(e){if(this.options.ignorePermissionErrors)return true;const r=e&&Number.parseInt(e.mode,10);const t=r&511;const n=Number.parseInt(t.toString(8)[0],10);return Boolean(4&n)}_remove(e,r){const t=u.join(e,r);const n=u.resolve(t);const i=this._watched.has(t)||this._watched.has(n);if(!this._throttle("remove",t,100))return;if(!i&&!this.options.useFsEvents&&this._watched.size===1){this.add(e,r,true)}const o=this._getWatchedDir(t);const s=o.getChildren();s.forEach(e=>this._remove(t,e));const a=this._getWatchedDir(e);const f=a.has(r);a.remove(r);let c=t;if(this.options.cwd)c=u.relative(this.options.cwd,t);if(this.options.awaitWriteFinish&&this._pendingWrites.has(c)){const e=this._pendingWrites.get(c).cancelWait();if(e===g)return}this._watched.delete(t);this._watched.delete(n);const l=i?A:E;if(f&&!this._isIgnored(t))this._emit(l,t);if(!this.options.useFsEvents){this._closePath(t)}}_closePath(e){const r=this._closers.get(e);if(!r)return;r.forEach(e=>e());this._closers.delete(e);const t=u.dirname(e);this._getWatchedDir(t).remove(u.basename(e))}_addPathCloser(e,r){if(!r)return;let t=this._closers.get(e);if(!t){t=[];this._closers.set(e,t)}t.push(r)}_readdirp(e,r){if(this.closed)return;const t={type:D,alwaysStat:true,lstat:true,...r};let n=s(e,t);this._streams.add(n);n.once(y,()=>{n=undefined});n.once(F,()=>{if(n){this._streams.delete(n);n=undefined}});return n}}r.FSWatcher=FSWatcher;const ne=(e,r)=>{const t=new FSWatcher(r);t.add(e);return t};r.watch=ne},,,function(e,r,t){"use strict";const n=t(788);const i=t(508);const u=(e,r={})=>{let t=(e,u={})=>{let o=i.isInvalidBrace(u);let s=e.invalid===true&&r.escapeInvalid===true;let a=o===true||s===true;let f=r.escapeInvalid===true?"\\":"";let c="";if(e.isOpen===true){return f+e.value}if(e.isClose===true){return f+e.value}if(e.type==="open"){return a?f+e.value:"("}if(e.type==="close"){return a?f+e.value:")"}if(e.type==="comma"){return e.prev.type==="comma"?"":a?e.value:"|"}if(e.value){return e.value}if(e.nodes&&e.ranges>0){let t=i.reduce(e.nodes);let u=n(...t,{...r,wrap:false,toRegex:true});if(u.length!==0){return t.length>1&&u.length>1?`(${u})`:u}}if(e.nodes){for(let r of e.nodes){c+=t(r,e)}}return c};return t(e)};e.exports=u},,function(e,r,t){"use strict";var n=t(612);e.exports=table;var i=" ";var u="|";function table(e){var r=this;var t=r.options;var o=t.looseTable;var s=t.spacedTable;var a=t.paddedTable;var f=t.stringLength;var c=e.children;var l=c.length;var p=r.enterTable();var h=[];var v;var D;while(l--){h[l]=r.all(c[l])}p();if(o){v="";D=""}else if(s){v=u+i;D=i+u}else{v=u;D=u}return n(h,{align:e.align,pad:a,start:v,end:D,stringLength:f,delimiter:s?i+u+i:u})}},function(e,r,t){"use strict";var n=t(751);function resolveYamlNull(e){if(e===null)return true;var r=e.length;return r===1&&e==="~"||r===4&&(e==="null"||e==="Null"||e==="NULL")}function constructYamlNull(){return null}function isNull(e){return e===null}e.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:resolveYamlNull,construct:constructYamlNull,predicate:isNull,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},,,function(e){"use strict";e.exports=parseJson;function parseJson(e,r,t){t=t||20;try{return JSON.parse(e,r)}catch(r){if(typeof e!=="string"){const r=Array.isArray(e)&&e.length===0;const t="Cannot parse "+(r?"an empty array":String(e));throw new TypeError(t)}const n=r.message.match(/^Unexpected token.*position\s+(\d+)/i);const i=n?+n[1]:r.message.match(/^Unexpected end of JSON.*/i)?e.length-1:null;if(i!=null){const n=i<=t?0:i-t;const u=i+t>=e.length?e.length:i+t;r.message+=` while parsing near '${n===0?"":"..."}${e.slice(n,u)}${u===e.length?"":"..."}'`}else{r.message+=` while parsing '${e.slice(0,t*2)}'`}throw r}}},function(e){"use strict";e.exports=wordCharacter;var r=String.fromCharCode;var t=/\w/;function wordCharacter(e){return t.test(typeof e==="number"?r(e):e.charAt(0))}},,function(e){"use strict";e.exports=escapes;var r=["\\","`","*","{","}","[","]","(",")","#","+","-",".","!","_",">"];var t=r.concat(["~","|"]);var n=t.concat(["\n",'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);escapes.default=r;escapes.gfm=t;escapes.commonmark=n;function escapes(e){var i=e||{};if(i.commonmark){return n}return i.gfm?t:r}},,,,function(e){"use strict";e.exports=orderedItems;var r="\n";var t=".";var n=r+r;function orderedItems(e){var i=this;var u=i.visitors.listItem;var o=i.options.incrementListMarker;var s=[];var a=e.start;var f=e.children;var c=f.length;var l=-1;var p;a=a==null?1:a;while(++l","&","`"];var l=construct();var p=toExpression(c);var h=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var v=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;function encode(e,r){var t=r||{};var n=t.subset;var i=n?toExpression(n):p;var u=t.escapeOnly;var o=t.omitOptionalSemicolons;e=e.replace(i,replace);if(n||u){return e}return e.replace(h,replaceSurrogatePair).replace(v,replace);function replaceSurrogatePair(e,r,t){return toHexReference((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,t.charAt(r+2),o)}function replace(e,r,n){return one(e,n.charAt(r+1),t)}}function escape(e){return encode(e,{escapeOnly:true,useNamedReferences:true})}function one(e,r,t){var n=t.useShortestReferences;var i=t.omitOptionalSemicolons;var u;var o;var s;var a;if((n||t.useNamedReferences)&&f.call(l,e)){u=toNamed(l[e],r,i,t.attribute)}if(n||!u){o=e.charCodeAt(0);s=toHexReference(o,r,i);if(n){a=toDecimalReference(o,r,i);if(a.length"},{no:"Rfc",yes:"RFC"},{no:"[Rr][Ff][Cc]\\d+",yes:"RFC "},{no:"rfc",yes:"RFC"},{no:"UNIX",yes:"Unix"},{no:"unix",yes:"Unix"},{no:"v8",yes:"V8"}]],t(522),[t(723),"*"],[t(733),"padded"],t(248),[t(801),"*"]]},,function(e,r,t){var n=t(757);var i=Object.create(null);var u=t(266);e.exports=n(inflight);function inflight(e,r){if(i[e]){i[e].push(r);return null}else{i[e]=[r];return makeres(e)}}function makeres(e){return u(function RES(){var r=i[e];var t=r.length;var n=slice(arguments);try{for(var u=0;ut){r.splice(0,t);process.nextTick(function(){RES.apply(null,n)})}else{delete i[e]}}})}function slice(e){var r=e.length;var t=[];for(var n=0;nr?unescape(r):t))}else{throw new Error(`Invalid Chalk template style argument: ${r} (in style '${e}')`)}}return t}function parseStyle(e){t.lastIndex=0;const r=[];let n;while((n=t.exec(e))!==null){const e=n[1];if(n[2]){const t=parseArguments(e,n[2]);r.push([e].concat(t))}else{r.push([e])}}return r}function buildStyle(e,r){const t={};for(const e of r){for(const r of e.styles){t[r[0]]=e.inverse?null:r.slice(1)}}let n=e;for(const e of Object.keys(t)){if(Array.isArray(t[e])){if(!(e in n)){throw new Error(`Unknown Chalk style: ${e}`)}if(t[e].length>0){n=n[e].apply(n,t[e])}else{n=n[e]}}}return n}e.exports=((e,t)=>{const n=[];const i=[];let u=[];t.replace(r,(r,t,o,s,a,f)=>{if(t){u.push(unescape(t))}else if(s){const r=u.join("");u=[];i.push(n.length===0?r:buildStyle(e,n)(r));n.push({inverse:o,styles:parseStyle(s)})}else if(a){if(n.length===0){throw new Error("Found extraneous } in Chalk template literal")}i.push(buildStyle(e,n)(u.join("")));u=[];n.pop()}else{u.push(f)}});i.push(u.join(""));if(n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${n.length===1?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")})},function(e){"use strict";e.exports=factory;function factory(e){return tokenize;function tokenize(r,t){var n=this;var i=n.offset;var u=[];var o=n[e+"Methods"];var s=n[e+"Tokenizers"];var a=t.line;var f=t.column;var c;var l;var p;var h;var v;var D;if(!r){return u}eat.now=now;eat.file=n.file;updatePosition("");while(r){c=-1;l=o.length;v=false;while(++cu){return}if(!g||!f&&o.charAt(l+1)===i){return}c=o.length+1;d="";while(++l>0},ToUint32:function(e){return e>>>0}}}();var o=Math.LN2,s=Math.abs,a=Math.floor,f=Math.log,c=Math.min,l=Math.pow,p=Math.round;function configureProperties(e){if(v&&h){var r=v(e),t;for(t=0;ti)throw new RangeError("Array too large for polyfill");function makeArrayAccessor(r){h(e,r,{get:function(){return e._getter(r)},set:function(t){e._setter(r,t)},enumerable:true,configurable:false})}var r;for(r=0;r>t}function as_unsigned(e,r){var t=32-r;return e<>>t}function packI8(e){return[e&255]}function unpackI8(e){return as_signed(e[0],8)}function packU8(e){return[e&255]}function unpackU8(e){return as_unsigned(e[0],8)}function packU8Clamped(e){e=p(Number(e));return[e<0?0:e>255?255:e&255]}function packI16(e){return[e>>8&255,e&255]}function unpackI16(e){return as_signed(e[0]<<8|e[1],16)}function packU16(e){return[e>>8&255,e&255]}function unpackU16(e){return as_unsigned(e[0]<<8|e[1],16)}function packI32(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}function unpackI32(e){return as_signed(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function packU32(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}function unpackU32(e){return as_unsigned(e[0]<<24|e[1]<<16|e[2]<<8|e[3],32)}function packIEEE754(e,r,t){var n=(1<.5)return r+1;return r%2?r+1:r}if(e!==e){u=(1<=l(2,1-n)){u=c(a(f(e)/o),1023);p=roundToEven(e/l(2,u)*l(2,t));if(p/l(2,t)>=2){u=u+1;p=1}if(u>n){u=(1<>1}}n.reverse();s=n.join("");a=(1<0){return f*l(2,c-a)*(1+p/l(2,t))}else if(p!==0){return f*l(2,-(a-1))*(p/l(2,t))}else{return f<0?-0:0}}function unpackF64(e){return unpackIEEE754(e,11,52)}function packF64(e){return packIEEE754(e,11,52)}function unpackF32(e){return unpackIEEE754(e,8,23)}function packF32(e){return packIEEE754(e,8,23)}(function(){var e=function ArrayBuffer(e){e=u.ToInt32(e);if(e<0)throw new RangeError("ArrayBuffer size is not a small enough positive integer");this.byteLength=e;this._bytes=[];this._bytes.length=e;var r;for(r=0;rthis.buffer.byteLength){throw new RangeError("byteOffset out of range")}if(this.byteOffset%this.BYTES_PER_ELEMENT){throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.")}if(arguments.length<3){this.byteLength=this.buffer.byteLength-this.byteOffset;if(this.byteLength%this.BYTES_PER_ELEMENT){throw new RangeError("length of buffer minus byteOffset not a multiple of the element size")}this.length=this.byteLength/this.BYTES_PER_ELEMENT}else{this.length=u.ToUint32(n);this.byteLength=this.length*this.BYTES_PER_ELEMENT}if(this.byteOffset+this.byteLength>this.buffer.byteLength){throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}}else{throw new TypeError("Unexpected argument type(s)")}this.constructor=s;configureProperties(this);makeArrayAccessors(this)};s.prototype=new r;s.prototype.BYTES_PER_ELEMENT=t;s.prototype._pack=i;s.prototype._unpack=o;s.BYTES_PER_ELEMENT=t;s.prototype._getter=function(e){if(arguments.length<1)throw new SyntaxError("Not enough arguments");e=u.ToUint32(e);if(e>=this.length){return n}var r=[],t,i;for(t=0,i=this.byteOffset+e*this.BYTES_PER_ELEMENT;t=this.length){return n}var t=this._pack(r),i,o;for(i=0,o=this.byteOffset+e*this.BYTES_PER_ELEMENT;ithis.length){throw new RangeError("Offset plus length of array is out of range")}c=this.byteOffset+i*this.BYTES_PER_ELEMENT;l=t.length*this.BYTES_PER_ELEMENT;if(t.buffer===this.buffer){p=[];for(s=0,a=t.byteOffset;sthis.length){throw new RangeError("Offset plus length of array is out of range")}for(s=0;st?t:e}e=u.ToInt32(e);r=u.ToInt32(r);if(arguments.length<1){e=0}if(arguments.length<2){r=this.length}if(e<0){e=this.length+e}if(r<0){r=this.length+r}e=clamp(e,0,this.length);r=clamp(r,0,this.length);var t=r-e;if(t<0){t=0}return new this.constructor(this.buffer,this.byteOffset+e*this.BYTES_PER_ELEMENT,t)};return s}var i=makeConstructor(1,packI8,unpackI8);var o=makeConstructor(1,packU8,unpackU8);var s=makeConstructor(1,packU8Clamped,unpackU8);var a=makeConstructor(2,packI16,unpackI16);var f=makeConstructor(2,packU16,unpackU16);var c=makeConstructor(4,packI32,unpackI32);var l=makeConstructor(4,packU32,unpackU32);var p=makeConstructor(4,packF32,unpackF32);var h=makeConstructor(8,packF64,unpackF64);t.Int8Array=t.Int8Array||i;t.Uint8Array=t.Uint8Array||o;t.Uint8ClampedArray=t.Uint8ClampedArray||s;t.Int16Array=t.Int16Array||a;t.Uint16Array=t.Uint16Array||f;t.Int32Array=t.Int32Array||c;t.Uint32Array=t.Uint32Array||l;t.Float32Array=t.Float32Array||p;t.Float64Array=t.Float64Array||h})();(function(){function r(e,r){return u.IsCallable(e.get)?e.get(r):e[r]}var e=function(){var e=new t.Uint16Array([4660]),n=new t.Uint8Array(e.buffer);return r(n,0)===18}();var n=function DataView(e,r,n){if(arguments.length===0){e=new t.ArrayBuffer(0)}else if(!(e instanceof t.ArrayBuffer||u.Class(e)==="ArrayBuffer")){throw new TypeError("TypeError")}this.buffer=e||new t.ArrayBuffer(0);this.byteOffset=u.ToUint32(r);if(this.byteOffset>this.buffer.byteLength){throw new RangeError("byteOffset out of range")}if(arguments.length<3){this.byteLength=this.buffer.byteLength-this.byteOffset}else{this.byteLength=u.ToUint32(n)}if(this.byteOffset+this.byteLength>this.buffer.byteLength){throw new RangeError("byteOffset and length reference an area beyond the end of the buffer")}configureProperties(this)};function makeGetter(n){return function(i,o){i=u.ToUint32(i);if(i+n.BYTES_PER_ELEMENT>this.byteLength){throw new RangeError("Array index out of range")}i+=this.byteOffset;var s=new t.Uint8Array(this.buffer,i,n.BYTES_PER_ELEMENT),a=[],f;for(f=0;fthis.byteLength){throw new RangeError("Array index out of range")}var a=new n([o]),f=new t.Uint8Array(a.buffer),c=[],l,p;for(l=0;l{let t=(e,i={})=>{let u=r.escapeInvalid&&n.isInvalidBrace(i);let o=e.invalid===true&&r.escapeInvalid===true;let s="";if(e.value){if((u||o)&&n.isOpenOrClose(e)){return"\\"+e.value}return e.value}if(e.value){return e.value}if(e.nodes){for(let r of e.nodes){s+=t(r)}}return s};return t(e)})},function(e){"use strict";e.exports=statistics;function statistics(e){var r={true:0,false:0,null:0};count(e);return{fatal:r.true,nonfatal:r.false+r.null,warn:r.false,info:r.null,total:r.true+r.false+r.null};function count(e){if(e){if(e[0]&&e[0].messages){countInAll(e)}else{countAll(e.messages||e)}}}function countInAll(e){var r=e.length;var t=-1;while(++t>10)+55296,(e-65536&1023)+56320)}var A=new Array(256);var C=new Array(256);for(var w=0;w<256;w++){A[w]=simpleEscapeSequence(w)?1:0;C[w]=simpleEscapeSequence(w)}function State(e,r){this.input=e;this.filename=r["filename"]||null;this.schema=r["schema"]||s;this.onWarning=r["onWarning"]||null;this.legacy=r["legacy"]||false;this.json=r["json"]||false;this.listener=r["listener"]||null;this.implicitTypes=this.schema.compiledImplicit;this.typeMap=this.schema.compiledTypeMap;this.length=e.length;this.position=0;this.line=0;this.lineStart=0;this.lineIndent=0;this.documents=[]}function generateError(e,r){return new i(r,new u(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function throwError(e,r){throw generateError(e,r)}function throwWarning(e,r){if(e.onWarning){e.onWarning.call(null,generateError(e,r))}}var y={YAML:function handleYamlDirective(e,r,t){var n,i,u;if(e.version!==null){throwError(e,"duplication of %YAML directive")}if(t.length!==1){throwError(e,"YAML directive accepts exactly one argument")}n=/^([0-9]+)\.([0-9]+)$/.exec(t[0]);if(n===null){throwError(e,"ill-formed argument of the YAML directive")}i=parseInt(n[1],10);u=parseInt(n[2],10);if(i!==1){throwError(e,"unacceptable YAML version of the document")}e.version=t[0];e.checkLineBreaks=u<2;if(u!==1&&u!==2){throwWarning(e,"unsupported YAML version of the document")}},TAG:function handleTagDirective(e,r,t){var n,i;if(t.length!==2){throwError(e,"TAG directive accepts exactly two arguments")}n=t[0];i=t[1];if(!E.test(n)){throwError(e,"ill-formed tag handle (first argument) of the TAG directive")}if(a.call(e.tagMap,n)){throwError(e,'there is a previously declared suffix for "'+n+'" tag handle')}if(!b.test(i)){throwError(e,"ill-formed tag prefix (second argument) of the TAG directive")}e.tagMap[n]=i}};function captureSegment(e,r,t,n){var i,u,o,s;if(r1){e.result+=n.repeat("\n",r-1)}}function readPlainScalar(e,r,t){var n,i,u,o,s,a,f,c,l=e.kind,p=e.result,h;h=e.input.charCodeAt(e.position);if(is_WS_OR_EOL(h)||is_FLOW_INDICATOR(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96){return false}if(h===63||h===45){i=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(i)||t&&is_FLOW_INDICATOR(i)){return false}}e.kind="scalar";e.result="";u=o=e.position;s=false;while(h!==0){if(h===58){i=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(i)||t&&is_FLOW_INDICATOR(i)){break}}else if(h===35){n=e.input.charCodeAt(e.position-1);if(is_WS_OR_EOL(n)){break}}else if(e.position===e.lineStart&&testDocumentSeparator(e)||t&&is_FLOW_INDICATOR(h)){break}else if(is_EOL(h)){a=e.line;f=e.lineStart;c=e.lineIndent;skipSeparationSpace(e,false,-1);if(e.lineIndent>=r){s=true;h=e.input.charCodeAt(e.position);continue}else{e.position=o;e.line=a;e.lineStart=f;e.lineIndent=c;break}}if(s){captureSegment(e,u,o,false);writeFoldedLines(e,e.line-a);u=o=e.position;s=false}if(!is_WHITE_SPACE(h)){o=e.position+1}h=e.input.charCodeAt(++e.position)}captureSegment(e,u,o,false);if(e.result){return true}e.kind=l;e.result=p;return false}function readSingleQuotedScalar(e,r){var t,n,i;t=e.input.charCodeAt(e.position);if(t!==39){return false}e.kind="scalar";e.result="";e.position++;n=i=e.position;while((t=e.input.charCodeAt(e.position))!==0){if(t===39){captureSegment(e,n,e.position,true);t=e.input.charCodeAt(++e.position);if(t===39){n=e.position;e.position++;i=e.position}else{return true}}else if(is_EOL(t)){captureSegment(e,n,i,true);writeFoldedLines(e,skipSeparationSpace(e,false,r));n=i=e.position}else if(e.position===e.lineStart&&testDocumentSeparator(e)){throwError(e,"unexpected end of the document within a single quoted scalar")}else{e.position++;i=e.position}}throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,r){var t,n,i,u,o,s;s=e.input.charCodeAt(e.position);if(s!==34){return false}e.kind="scalar";e.result="";e.position++;t=n=e.position;while((s=e.input.charCodeAt(e.position))!==0){if(s===34){captureSegment(e,t,e.position,true);e.position++;return true}else if(s===92){captureSegment(e,t,e.position,true);s=e.input.charCodeAt(++e.position);if(is_EOL(s)){skipSeparationSpace(e,false,r)}else if(s<256&&A[s]){e.result+=C[s];e.position++}else if((o=escapedHexLen(s))>0){i=o;u=0;for(;i>0;i--){s=e.input.charCodeAt(++e.position);if((o=fromHexCode(s))>=0){u=(u<<4)+o}else{throwError(e,"expected hexadecimal character")}}e.result+=charFromCodepoint(u);e.position++}else{throwError(e,"unknown escape sequence")}t=n=e.position}else if(is_EOL(s)){captureSegment(e,t,n,true);writeFoldedLines(e,skipSeparationSpace(e,false,r));t=n=e.position}else if(e.position===e.lineStart&&testDocumentSeparator(e)){throwError(e,"unexpected end of the document within a double quoted scalar")}else{e.position++;n=e.position}}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,r){var t=true,n,i=e.tag,u,o=e.anchor,s,a,c,l,p,h={},v,D,d,g;g=e.input.charCodeAt(e.position);if(g===91){a=93;p=false;u=[]}else if(g===123){a=125;p=true;u={}}else{return false}if(e.anchor!==null){e.anchorMap[e.anchor]=u}g=e.input.charCodeAt(++e.position);while(g!==0){skipSeparationSpace(e,true,r);g=e.input.charCodeAt(e.position);if(g===a){e.position++;e.tag=i;e.anchor=o;e.kind=p?"mapping":"sequence";e.result=u;return true}else if(!t){throwError(e,"missed comma between flow collection entries")}D=v=d=null;c=l=false;if(g===63){s=e.input.charCodeAt(e.position+1);if(is_WS_OR_EOL(s)){c=l=true;e.position++;skipSeparationSpace(e,true,r)}}n=e.line;composeNode(e,r,f,false,true);D=e.tag;v=e.result;skipSeparationSpace(e,true,r);g=e.input.charCodeAt(e.position);if((l||e.line===n)&&g===58){c=true;g=e.input.charCodeAt(++e.position);skipSeparationSpace(e,true,r);composeNode(e,r,f,false,true);d=e.result}if(p){storeMappingPair(e,u,h,D,v,d)}else if(c){u.push(storeMappingPair(e,null,h,D,v,d))}else{u.push(v)}skipSeparationSpace(e,true,r);g=e.input.charCodeAt(e.position);if(g===44){t=true;g=e.input.charCodeAt(++e.position)}else{t=false}}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,r){var t,i,u=h,o=false,s=false,a=r,f=0,c=false,l,p;p=e.input.charCodeAt(e.position);if(p===124){i=false}else if(p===62){i=true}else{return false}e.kind="scalar";e.result="";while(p!==0){p=e.input.charCodeAt(++e.position);if(p===43||p===45){if(h===u){u=p===43?D:v}else{throwError(e,"repeat of a chomping mode identifier")}}else if((l=fromDecimalCode(p))>=0){if(l===0){throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one")}else if(!s){a=r+l-1;s=true}else{throwError(e,"repeat of an indentation width identifier")}}else{break}}if(is_WHITE_SPACE(p)){do{p=e.input.charCodeAt(++e.position)}while(is_WHITE_SPACE(p));if(p===35){do{p=e.input.charCodeAt(++e.position)}while(!is_EOL(p)&&p!==0)}}while(p!==0){readLineBreak(e);e.lineIndent=0;p=e.input.charCodeAt(e.position);while((!s||e.lineIndenta){a=e.lineIndent}if(is_EOL(p)){f++;continue}if(e.lineIndentr)&&a!==0){throwError(e,"bad indentation of a sequence entry")}else if(e.lineIndentr){if(composeNode(e,r,p,true,i)){if(d){v=e.result}else{D=e.result}}if(!d){storeMappingPair(e,f,l,h,v,D,u,o);h=v=D=null}skipSeparationSpace(e,true,-1);m=e.input.charCodeAt(e.position)}if(e.lineIndent>r&&m!==0){throwError(e,"bad indentation of a mapping entry")}else if(e.lineIndentr){h=1}else if(e.lineIndent===r){h=0}else if(e.lineIndentr){h=1}else if(e.lineIndent===r){h=0}else if(e.lineIndent tag; it should be "'+m.kind+'", not "'+e.kind+'"')}if(!m.resolve(e.result)){throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}else{e.result=m.construct(e.result);if(e.anchor!==null){e.anchorMap[e.anchor]=e.result}}}else{throwError(e,"unknown tag !<"+e.tag+">")}}if(e.listener!==null){e.listener("close",e)}return e.tag!==null||e.anchor!==null||D}function readDocument(e){var r=e.position,t,n,i,u=false,o;e.version=null;e.checkLineBreaks=e.legacy;e.tagMap={};e.anchorMap={};while((o=e.input.charCodeAt(e.position))!==0){skipSeparationSpace(e,true,-1);o=e.input.charCodeAt(e.position);if(e.lineIndent>0||o!==37){break}u=true;o=e.input.charCodeAt(++e.position);t=e.position;while(o!==0&&!is_WS_OR_EOL(o)){o=e.input.charCodeAt(++e.position)}n=e.input.slice(t,e.position);i=[];if(n.length<1){throwError(e,"directive name must not be less than one character in length")}while(o!==0){while(is_WHITE_SPACE(o)){o=e.input.charCodeAt(++e.position)}if(o===35){do{o=e.input.charCodeAt(++e.position)}while(o!==0&&!is_EOL(o));break}if(is_EOL(o))break;t=e.position;while(o!==0&&!is_WS_OR_EOL(o)){o=e.input.charCodeAt(++e.position)}i.push(e.input.slice(t,e.position))}if(o!==0)readLineBreak(e);if(a.call(y,n)){y[n](e,n,i)}else{throwWarning(e,'unknown document directive "'+n+'"')}}skipSeparationSpace(e,true,-1);if(e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45){e.position+=3;skipSeparationSpace(e,true,-1)}else if(u){throwError(e,"directives end mark is expected")}composeNode(e,e.lineIndent-1,p,false,true);skipSeparationSpace(e,true,-1);if(e.checkLineBreaks&&g.test(e.input.slice(r,e.position))){throwWarning(e,"non-ASCII line breaks are interpreted as content")}e.documents.push(e.result);if(e.position===e.lineStart&&testDocumentSeparator(e)){if(e.input.charCodeAt(e.position)===46){e.position+=3;skipSeparationSpace(e,true,-1)}return}if(e.position{if(Array.isArray(e)){const n=e.map(e=>a(e,r,t));return e=>{for(const r of n){const t=r(e);if(t)return t}return false}}if(typeof e!=="string"||e===""){throw new TypeError("Expected pattern to be a non-empty string")}const n=r||{};const i=o.isWindows(r);const u=a.makeRe(e,r,false,true);const s=u.state;delete u.state;let f=()=>false;if(n.ignore){const e={...r,ignore:null,onMatch:null,onResult:null};f=a(n.ignore,e,t)}const c=(t,o=false)=>{const{isMatch:c,match:l,output:p}=a.test(t,u,r,{glob:e,posix:i});const h={glob:e,state:s,regex:u,posix:i,input:t,output:p,match:l,isMatch:c};if(typeof n.onResult==="function"){n.onResult(h)}if(c===false){h.isMatch=false;return o?h:false}if(f(t)){if(typeof n.onIgnore==="function"){n.onIgnore(h)}h.isMatch=false;return o?h:false}if(typeof n.onMatch==="function"){n.onMatch(h)}return o?h:true};if(t){c.state=s}return c};a.test=((e,r,t,{glob:n,posix:i}={})=>{if(typeof e!=="string"){throw new TypeError("Expected input to be a string")}if(e===""){return{isMatch:false,output:""}}const u=t||{};const s=u.format||(i?o.toPosixSlashes:null);let f=e===n;let c=f&&s?s(e):e;if(f===false){c=s?s(e):e;f=c===n}if(f===false||u.capture===true){if(u.matchBase===true||u.basename===true){f=a.matchBase(e,r,t,i)}else{f=r.exec(c)}}return{isMatch:!!f,match:f,output:c}});a.matchBase=((e,r,t,i=o.isWindows(t))=>{const u=r instanceof RegExp?r:a.makeRe(r,t);return u.test(n.basename(e))});a.isMatch=((e,r,t)=>a(r,t)(e));a.parse=((e,r)=>u(e,r));a.scan=((e,r)=>i(e,r));a.makeRe=((e,r,t=false,n=false)=>{if(!e||typeof e!=="string"){throw new TypeError("Expected a non-empty string")}const i=r||{};const o=i.contains?"":"^";const s=i.contains?"":"$";let f={negated:false,fastpaths:true};let c="";let l;if(e.startsWith("./")){e=e.slice(2);c=f.prefix="./"}if(i.fastpaths!==false&&(e[0]==="."||e[0]==="*")){l=u.fastpaths(e,r)}if(l===void 0){f=a.parse(e,r);f.prefix=c+(f.prefix||"");l=f.output}if(t===true){return l}let p=`${o}(?:${l})${s}`;if(f&&f.negated===true){p=`^(?!${p}).*$`}const h=a.toRegex(p,r);if(n===true){h.state=f}return h});a.toRegex=((e,r)=>{try{const t=r||{};return new RegExp(e,t.flags||(t.nocase?"i":""))}catch(e){if(r&&r.debug===true)throw e;return/$^/}});a.constants=s;e.exports=a},,function(e,r,t){e.exports=minimatch;minimatch.Minimatch=Minimatch;var n={sep:"/"};try{n=t(622)}catch(e){}var i=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var u=t(336);var o={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var s="[^/]";var a=s+"*?";var f="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var c="(?:(?!(?:\\/|^)\\.).)*?";var l=charSet("().*{}+?[]^$\\!");function charSet(e){return e.split("").reduce(function(e,r){e[r]=true;return e},{})}var p=/\/+/;minimatch.filter=filter;function filter(e,r){r=r||{};return function(t,n,i){return minimatch(t,e,r)}}function ext(e,r){e=e||{};r=r||{};var t={};Object.keys(r).forEach(function(e){t[e]=r[e]});Object.keys(e).forEach(function(r){t[r]=e[r]});return t}minimatch.defaults=function(e){if(!e||!Object.keys(e).length)return minimatch;var r=minimatch;var t=function minimatch(t,n,i){return r.minimatch(t,n,ext(e,i))};t.Minimatch=function Minimatch(t,n){return new r.Minimatch(t,ext(e,n))};return t};Minimatch.defaults=function(e){if(!e||!Object.keys(e).length)return Minimatch;return minimatch.defaults(e).Minimatch};function minimatch(e,r,t){if(typeof r!=="string"){throw new TypeError("glob pattern string required")}if(!t)t={};if(!t.nocomment&&r.charAt(0)==="#"){return false}if(r.trim()==="")return e==="";return new Minimatch(r,t).match(e)}function Minimatch(e,r){if(!(this instanceof Minimatch)){return new Minimatch(e,r)}if(typeof e!=="string"){throw new TypeError("glob pattern string required")}if(!r)r={};e=e.trim();if(n.sep!=="/"){e=e.split(n.sep).join("/")}this.options=r;this.set=[];this.pattern=e;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){if(this._made)return;var e=this.pattern;var r=this.options;if(!r.nocomment&&e.charAt(0)==="#"){this.comment=true;return}if(!e){this.empty=true;return}this.parseNegate();var t=this.globSet=this.braceExpand();if(r.debug)this.debug=console.error;this.debug(this.pattern,t);t=this.globParts=t.map(function(e){return e.split(p)});this.debug(this.pattern,t);t=t.map(function(e,r,t){return e.map(this.parse,this)},this);this.debug(this.pattern,t);t=t.filter(function(e){return e.indexOf(false)===-1});this.debug(this.pattern,t);this.set=t}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var e=this.pattern;var r=false;var t=this.options;var n=0;if(t.nonegate)return;for(var i=0,u=e.length;i1024*64){throw new TypeError("pattern is too long")}var t=this.options;if(!t.noglobstar&&e==="**")return i;if(e==="")return"";var n="";var u=!!t.nocase;var f=false;var c=[];var p=[];var v;var D=false;var d=-1;var g=-1;var m=e.charAt(0)==="."?"":t.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var E=this;function clearStateChar(){if(v){switch(v){case"*":n+=a;u=true;break;case"?":n+=s;u=true;break;default:n+="\\"+v;break}E.debug("clearStateChar %j %j",v,n);v=false}}for(var b=0,A=e.length,C;b-1;O--){var x=p[O];var k=n.slice(0,x.reStart);var R=n.slice(x.reStart,x.reEnd-8);var T=n.slice(x.reEnd-8,x.reEnd);var I=n.slice(x.reEnd);T+=I;var L=k.split("(").length-1;var M=I;for(b=0;b=0;o--){u=e[o];if(u)break}for(o=0;o>> no match, partial?",e,l,r,p);if(l===s)return true}return false}var v;if(typeof f==="string"){if(n.nocase){v=c.toLowerCase()===f.toLowerCase()}else{v=c===f}this.debug("string match",f,c,v)}else{v=c.match(f);this.debug("pattern match",f,c,v)}if(!v)return false}if(u===s&&o===a){return true}else if(u===s){return t}else if(o===a){var D=u===s-1&&e[u]==="";return D}throw new Error("wtf?")};function globUnescape(e){return e.replace(/\\(.)/g,"$1")}function regExpEscape(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}},function(e,r,t){"use strict";var n=t(11);var i=t(977);var u=t(261);var o=t(240);var s=Object.prototype.toString;var a=Object.prototype.hasOwnProperty;var f=9;var c=10;var l=32;var p=33;var h=34;var v=35;var D=37;var d=38;var g=39;var m=42;var E=44;var b=45;var A=58;var C=62;var w=63;var y=64;var F=91;var S=93;var _=96;var B=123;var O=124;var x=125;var k={};k[0]="\\0";k[7]="\\a";k[8]="\\b";k[9]="\\t";k[10]="\\n";k[11]="\\v";k[12]="\\f";k[13]="\\r";k[27]="\\e";k[34]='\\"';k[92]="\\\\";k[133]="\\N";k[160]="\\_";k[8232]="\\L";k[8233]="\\P";var R=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function compileStyleMap(e,r){var t,n,i,u,o,s,f;if(r===null)return{};t={};n=Object.keys(r);for(i=0,u=n.length;in&&e[l+1]!==" ";l=u}}else if(!isPrintable(o)){return j}p=p&&isPlainSafe(o)}a=a||f&&(u-l-1>n&&e[l+1]!==" ")}if(!s&&!a){return p&&!i(e)?T:I}if(t>9&&needIndentIndicator(e)){return j}return a?M:L}function writeScalar(e,r,t,n){e.dump=function(){if(r.length===0){return"''"}if(!e.noCompatMode&&R.indexOf(r)!==-1){return"'"+r+"'"}var u=e.indent*Math.max(1,t);var o=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-u);var s=n||e.flowLevel>-1&&t>=e.flowLevel;function testAmbiguity(r){return testImplicitResolving(e,r)}switch(chooseScalarStyle(r,s,e.indent,o,testAmbiguity)){case T:return r;case I:return"'"+r.replace(/'/g,"''")+"'";case L:return"|"+blockHeader(r,e.indent)+dropEndingNewline(indentString(r,u));case M:return">"+blockHeader(r,e.indent)+dropEndingNewline(indentString(foldString(r,o),u));case j:return'"'+escapeString(r,o)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function blockHeader(e,r){var t=needIndentIndicator(e)?String(r):"";var n=e[e.length-1]==="\n";var i=n&&(e[e.length-2]==="\n"||e==="\n");var u=i?"+":n?"":"-";return t+u+"\n"}function dropEndingNewline(e){return e[e.length-1]==="\n"?e.slice(0,-1):e}function foldString(e,r){var t=/(\n+)([^\n]*)/g;var n=function(){var n=e.indexOf("\n");n=n!==-1?n:e.length;t.lastIndex=n;return foldLine(e.slice(0,n),r)}();var i=e[0]==="\n"||e[0]===" ";var u;var o;while(o=t.exec(e)){var s=o[1],a=o[2];u=a[0]===" ";n+=s+(!i&&!u&&a!==""?"\n":"")+foldLine(a,r);i=u}return n}function foldLine(e,r){if(e===""||e[0]===" ")return e;var t=/ [^ ]/g;var n;var i=0,u,o=0,s=0;var a="";while(n=t.exec(e)){s=n.index;if(s-i>r){u=o>i?o:s;a+="\n"+e.slice(i,u);i=u+1}o=s}a+="\n";if(e.length-i>r&&o>i){a+=e.slice(i,o)+"\n"+e.slice(o+1)}else{a+=e.slice(i)}return a.slice(1)}function escapeString(e){var r="";var t,n;var i;for(var u=0;u=55296&&t<=56319){n=e.charCodeAt(u+1);if(n>=56320&&n<=57343){r+=encodeHex((t-55296)*1024+n-56320+65536);u++;continue}}i=k[t];r+=!i&&isPrintable(t)?e[u]:i||encodeHex(t)}return r}function writeFlowSequence(e,r,t){var n="",i=e.tag,u,o;for(u=0,o=t.length;u1024)c+="? ";c+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" ");if(!writeNode(e,r,f,false,false)){continue}c+=e.dump;n+=c}e.tag=i;e.dump="{"+n+"}"}function writeBlockMapping(e,r,t,n){var u="",o=e.tag,s=Object.keys(t),a,f,l,p,h,v;if(e.sortKeys===true){s.sort()}else if(typeof e.sortKeys==="function"){s.sort(e.sortKeys)}else if(e.sortKeys){throw new i("sortKeys must be a boolean or a function")}for(a=0,f=s.length;a1024;if(h){if(e.dump&&c===e.dump.charCodeAt(0)){v+="?"}else{v+="? "}}v+=e.dump;if(h){v+=generateNextLine(e,r)}if(!writeNode(e,r+1,p,true,h)){continue}if(e.dump&&c===e.dump.charCodeAt(0)){v+=":"}else{v+=": "}v+=e.dump;u+=v}e.tag=o;e.dump=u||"{}"}function detectType(e,r,t){var n,u,o,f,c,l;u=t?e.explicitTypes:e.implicitTypes;for(o=0,f=u.length;o tag resolver accepts not "'+l+'" style')}e.dump=n}return true}}return false}function writeNode(e,r,t,n,u,o){e.tag=null;e.dump=t;if(!detectType(e,t,false)){detectType(e,t,true)}var a=s.call(e.dump);if(n){n=e.flowLevel<0||e.flowLevel>r}var f=a==="[object Object]"||a==="[object Array]",c,l;if(f){c=e.duplicates.indexOf(t);l=c!==-1}if(e.tag!==null&&e.tag!=="?"||l||e.indent!==2&&r>0){u=false}if(l&&e.usedDuplicates[c]){e.dump="*ref_"+c}else{if(f&&l&&!e.usedDuplicates[c]){e.usedDuplicates[c]=true}if(a==="[object Object]"){if(n&&Object.keys(e.dump).length!==0){writeBlockMapping(e,r,e.dump,u);if(l){e.dump="&ref_"+c+e.dump}}else{writeFlowMapping(e,r,e.dump);if(l){e.dump="&ref_"+c+" "+e.dump}}}else if(a==="[object Array]"){var p=e.noArrayIndent&&r>0?r-1:r;if(n&&e.dump.length!==0){writeBlockSequence(e,p,e.dump,u);if(l){e.dump="&ref_"+c+e.dump}}else{writeFlowSequence(e,p,e.dump);if(l){e.dump="&ref_"+c+" "+e.dump}}}else if(a==="[object String]"){if(e.tag!=="?"){writeScalar(e,e.dump,r,o)}}else{if(e.skipInvalid)return false;throw new i("unacceptable kind of an object to dump "+a)}if(e.tag!==null&&e.tag!=="?"){e.dump="!<"+e.tag+"> "+e.dump}}return true}function getDuplicateReferences(e,r){var t=[],n=[],i,u;inspectNode(e,t,n);for(i=0,u=n.length;i(function(){const t=e.apply(n,arguments);return`[${t+r}m`});const u=(e,r)=>(function(){const t=e.apply(n,arguments);return`[${38+r};5;${t}m`});const o=(e,r)=>(function(){const t=e.apply(n,arguments);return`[${38+r};2;${t[0]};${t[1]};${t[2]}m`});function assembleStyles(){const e=new Map;const r={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};r.color.grey=r.color.gray;for(const t of Object.keys(r)){const n=r[t];for(const t of Object.keys(n)){const i=n[t];r[t]={open:`[${i[0]}m`,close:`[${i[1]}m`};n[t]=r[t];e.set(i[0],i[1])}Object.defineProperty(r,t,{value:n,enumerable:false});Object.defineProperty(r,"codes",{value:e,enumerable:false})}const t=e=>e;const s=(e,r,t)=>[e,r,t];r.color.close="";r.bgColor.close="";r.color.ansi={ansi:i(t,0)};r.color.ansi256={ansi256:u(t,0)};r.color.ansi16m={rgb:o(s,0)};r.bgColor.ansi={ansi:i(t,10)};r.bgColor.ansi256={ansi256:u(t,10)};r.bgColor.ansi16m={rgb:o(s,10)};for(let e of Object.keys(n)){if(typeof n[e]!=="object"){continue}const t=n[e];if(e==="ansi16"){e="ansi"}if("ansi16"in t){r.color.ansi[e]=i(t.ansi16,0);r.bgColor.ansi[e]=i(t.ansi16,10)}if("ansi256"in t){r.color.ansi256[e]=u(t.ansi256,0);r.bgColor.ansi256[e]=u(t.ansi256,10)}if("rgb"in t){r.color.ansi16m[e]=o(t.rgb,0);r.bgColor.ansi16m[e]=o(t.rgb,10)}}return r}Object.defineProperty(e,"exports",{enumerable:true,get:assembleStyles})},function(e,r,t){"use strict";var n=t(250);var i=t(608);var u=t(623);var o=t(754);var s=t(105);var a=t(973);e.exports=options;var f={unknown:handleUnknownArgument,default:{},alias:{},string:[],boolean:[]};a.forEach(addEach);function options(e,r){var t=r.extensions[0];var n=r.name;var i=toCamelCase(u(e,f));var o;var c;var l;a.forEach(function(e){if(e.type==="string"&&i[e.long]===""){throw s("Missing value:%s",inspect(e).join(" "))}});c=commaSeparated(i.ext);l=reporter(i.report);o=[inspectAll(a),"","Examples:",""," # Process `input."+t+"`"," $ "+n+" input."+t+" -o output."+t,""," # Pipe"," $ "+n+" < input."+t+" > output."+t,""," # Rewrite all applicable files"," $ "+n+" . -o"].join("\n");return{helpMessage:o,cwd:r.cwd,processor:r.processor,help:i.help,version:i.version,files:i._,filePath:i.filePath,watch:i.watch,extensions:c.length===0?r.extensions:c,output:i.output,out:i.stdout,tree:i.tree,treeIn:i.treeIn,treeOut:i.treeOut,inspect:i.inspect,rcName:r.rcName,packageField:r.packageField,rcPath:i.rcPath,detectConfig:i.config,settings:settings(i.setting),ignoreName:r.ignoreName,ignorePath:i.ignorePath,ignorePatterns:commaSeparated(i.ignorePattern),detectIgnore:i.ignore,pluginPrefix:r.pluginPrefix,plugins:plugins(i.use),reporter:l[0],reporterOptions:l[1],color:i.color,silent:i.silent,quiet:i.quiet,frail:i.frail}}function addEach(e){var r=e.default;f.default[e.long]=r===undefined?null:r;if(e.type in f){f[e.type].push(e.long)}if(e.short){f.alias[e.short]=e.long}}function commaSeparated(e){return flatten(normalize(e).map(splitList))}function plugins(e){var r={};normalize(e).map(splitOptions).forEach(function(e){r[e[0]]=e[1]?parseConfig(e[1],{}):null});return r}function reporter(e){var r=normalize(e).map(splitOptions).map(function(e){return[e[0],e[1]?parseConfig(e[1],{}):null]});return r[r.length-1]||[]}function settings(e){var r={};normalize(e).forEach(function(e){parseConfig(e,r)});return r}function parseConfig(e,r){var t;var n;try{e=toCamelCase(parseJSON(e))}catch(r){n=r.message.replace(/at(?= position)/,"around");throw s("Cannot parse `%s` as JSON: %s",e,n)}for(t in e){r[t]=e[t]}return r}function handleUnknownArgument(e){if(e.charAt(0)!=="-"){return}if(e.charAt(1)==="-"){throw s("Unknown option `%s`, expected:\n%s",e,inspectAll(a))}e.slice(1).split("").forEach(each);function each(e){var r=a.length;var t=-1;var n;while(++t{if(typeof r==="string"){t=r;r=null}try{try{return JSON.parse(e,r)}catch(t){i(e,r);throw t}}catch(e){e.message=e.message.replace(/\n/g,"");const r=new u(e);if(t){r.fileName=t}throw r}})},,function(e,r,t){"use strict";var n=t(279);e.exports=enter;function enter(e,r){var t=e.encode;var i=e.escape;var u=e.enterLink();if(r.referenceType!=="shortcut"&&r.referenceType!=="collapsed"){return u}e.escape=n;e.encode=n;return exit;function exit(){e.encode=t;e.escape=i;u()}}},function(e,r,t){var n=t(798);var i=function(){};var u=t(362);e.exports=wrapped;function wrapped(e){function wrap(){var r=n(arguments);var t=r[r.length-1];var o=this;var s=typeof t=="function"?r.pop():i;if(!e){return s.apply(o,[null].concat(r))}if(generator(e)){return u(e).apply(o,r.concat(s))}if(e.length>r.length){try{return e.apply(o,r.concat(s))}catch(e){return s(e)}}return sync(e,s).apply(o,r)}return wrap}function sync(e,r){return function(){var t;try{t=e.apply(this,arguments)}catch(e){return r(e)}if(promise(t)){t.then(function(e){r(null,e)},r)}else{t instanceof Error?r(t):r(null,t)}}}function generator(e){return e&&e.constructor&&"GeneratorFunction"==e.constructor.name}function promise(e){return e&&"function"==typeof e.then}},,,function(e){"use strict";e.exports=unorderedItems;var r="\n";var t=r+r;function unorderedItems(e){var n=this;var i=n.options.bullet;var u=n.visitors.listItem;var o=e.children;var s=o.length;var a=-1;var f=[];while(++a2&&a.slice(-2)==="[]"){a=a.substring(0,a.length-2);if(!t[a]){t[a]=[]}else if(!Array.isArray(t[a])){t[a]=[t[a]]}}if(Array.isArray(t[a])){t[a].push(f)}else{t[a]=f}});Object.keys(r).filter(function(e,t,n){if(!r[e]||typeof r[e]!=="object"||Array.isArray(r[e])){return false}var i=dotSplit(e);var u=r;var o=i.pop();var s=o.replace(/\\\./g,".");i.forEach(function(e,r,t){if(!u[e]||typeof u[e]!=="object")u[e]={};u=u[e]});if(u===r&&s===o){return false}u[s]=r[e];return true}).forEach(function(e,t,n){delete r[e]});return r}function isQuoted(e){return e.charAt(0)==='"'&&e.slice(-1)==='"'||e.charAt(0)==="'"&&e.slice(-1)==="'"}function safe(e){return typeof e!=="string"||e.match(/[=\r\n]/)||e.match(/^\[/)||e.length>1&&isQuoted(e)||e!==e.trim()?JSON.stringify(e):e.replace(/;/g,"\\;").replace(/#/g,"\\#")}function unsafe(e,r){e=(e||"").trim();if(isQuoted(e)){if(e.charAt(0)==="'"){e=e.substr(1,e.length-2)}try{e=JSON.parse(e)}catch(e){}}else{var t=false;var n="";for(var i=0,u=e.length;i-1&&t.charAt(n)!=="\n"){r.message("Missing newline character at end of file")}}},,function(e,r){"use strict";var t="[a-zA-Z_:][a-zA-Z0-9:._-]*";var n="[^\"'=<>`\\u0000-\\u0020]+";var i="'[^']*'";var u='"[^"]*"';var o="(?:"+n+"|"+i+"|"+u+")";var s="(?:\\s+"+t+"(?:\\s*=\\s*"+o+")?)";var a="<[A-Za-z][A-Za-z0-9\\-]*"+s+"*\\s*\\/?>";var f="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>";var c="\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e";var l="<[?].*?[?]>";var p="]*>";var h="";r.openCloseTag=new RegExp("^(?:"+a+"|"+f+")");r.tag=new RegExp("^(?:"+a+"|"+f+"|"+c+"|"+l+"|"+p+"|"+h+")")},,,,function(e,r,t){"use strict";const n=t(622);const i=process.platform==="win32";const{REGEX_BACKSLASH:u,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_GLOBAL:a}=t(80);r.isObject=(e=>e!==null&&typeof e==="object"&&!Array.isArray(e));r.hasRegexChars=(e=>s.test(e));r.isRegexChar=(e=>e.length===1&&r.hasRegexChars(e));r.escapeRegex=(e=>e.replace(a,"\\$1"));r.toPosixSlashes=(e=>e.replace(u,"/"));r.removeBackslashes=(e=>{return e.replace(o,e=>{return e==="\\"?"":e})});r.supportsLookbehinds=(()=>{const e=process.version.slice(1).split(".").map(Number);if(e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10){return true}return false});r.isWindows=(e=>{if(e&&typeof e.windows==="boolean"){return e.windows}return i===true||n.sep==="\\"});r.escapeLast=((e,t,n)=>{const i=e.lastIndexOf(t,n);if(i===-1)return e;if(e[i-1]==="\\")return r.escapeLast(e,t,i-1);return e.slice(0,i)+"\\"+e.slice(i)});r.removePrefix=((e,r={})=>{let t=e;if(t.startsWith("./")){t=t.slice(2);r.prefix="./"}return t});r.wrapOutput=((e,r={},t={})=>{const n=t.contains?"":"^";const i=t.contains?"":"$";let u=`${n}(?:${e})${i}`;if(r.negated===true){u=`(?:^(?!${u}).*$)`}return u})},function(e,r,t){"use strict";var n=t(751);e.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})},function(e,r,t){"use strict";var n=t(540);var i=t(679);var u=t(106);e.exports=autoLink;autoLink.locator=u;autoLink.notInLink=true;var o="<";var s=">";var a="@";var f="/";var c="mailto:";var l=c.length;function autoLink(e,r,t){var u=this;var p="";var h=r.length;var v=0;var D="";var d=false;var g="";var m;var E;var b;var A;var C;if(r.charAt(0)!==o){return}v++;p=o;while(v=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,r,t){"use strict";var n=t(541);var i=t(372);var u=t(189);e.exports=n("remark-lint:no-shell-dollars",noShellDollars);var o="Do not use dollar signs before shell-commands";var s=["sh","bash","bats","cgi","command","fcgi","ksh","tmux","tool","zsh"];function noShellDollars(e,r){i(e,"code",visitor);function visitor(e){var t;var n;var i;var a;if(!u(e)&&e.lang&&s.indexOf(e.lang)!==-1){t=e.value.split("\n");i=t.length;a=-1;if(i<=1){return}while(++a{if(Number.isNaN(e)){return false}if(e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)){return true}return false};e.exports=r;e.exports.default=r},,function(e,r,t){e.exports=realpath;realpath.realpath=realpath;realpath.sync=realpathSync;realpath.realpathSync=realpathSync;realpath.monkeypatch=monkeypatch;realpath.unmonkeypatch=unmonkeypatch;var n=t(747);var i=n.realpath;var u=n.realpathSync;var o=process.version;var s=/^v[0-5]\./.test(o);var a=t(263);function newError(e){return e&&e.syscall==="realpath"&&(e.code==="ELOOP"||e.code==="ENOMEM"||e.code==="ENAMETOOLONG")}function realpath(e,r,t){if(s){return i(e,r,t)}if(typeof r==="function"){t=r;r=null}i(e,r,function(n,i){if(newError(n)){a.realpath(e,r,t)}else{t(n,i)}})}function realpathSync(e,r){if(s){return u(e,r)}try{return u(e,r)}catch(t){if(newError(t)){return a.realpathSync(e,r)}else{throw t}}}function monkeypatch(){n.realpath=realpath;n.realpathSync=realpathSync}function unmonkeypatch(){n.realpath=i;n.realpathSync=u}},function(e){e.exports=[{long:"help",description:"output usage information",short:"h",type:"boolean",default:false},{long:"version",description:"output version number",short:"v",type:"boolean",default:false},{long:"output",description:"specify output location",short:"o",value:"[path]"},{long:"rc-path",description:"specify configuration file",short:"r",type:"string",value:""},{long:"ignore-path",description:"specify ignore file",short:"i",type:"string",value:""},{long:"setting",description:"specify settings",short:"s",type:"string",value:""},{long:"ext",description:"specify extensions",short:"e",type:"string",value:""},{long:"use",description:"use plugins",short:"u",type:"string",value:""},{long:"watch",description:"watch for changes and reprocess",short:"w",type:"boolean",default:false},{long:"quiet",description:"output only warnings and errors",short:"q",type:"boolean",default:false},{long:"silent",description:"output only errors",short:"S",type:"boolean",default:false},{long:"frail",description:"exit with 1 on warnings",short:"f",type:"boolean",default:false},{long:"tree",description:"specify input and output as syntax tree",short:"t",type:"boolean",default:false},{long:"report",description:"specify reporter",type:"string",value:""},{long:"file-path",description:"specify path to process as",type:"string",value:""},{long:"ignore-pattern",description:"specify ignore patterns",type:"string",value:""},{long:"tree-in",description:"specify input as syntax tree",type:"boolean"},{long:"tree-out",description:"output syntax tree",type:"boolean"},{long:"inspect",description:"output formatted syntax tree",type:"boolean"},{long:"stdout",description:"specify writing to stdout",type:"boolean",truelike:true},{long:"color",description:"specify color in report",type:"boolean",default:true},{long:"config",description:"search for configuration files",type:"boolean",default:true},{long:"ignore",description:"search for ignore files",type:"boolean",default:true}]},,function(e){"use strict";e.exports=text;function text(e,r){return this.encode(this.escape(e.value,e,r),e)}},,function(e){"use strict";function YAMLException(e,r){Error.call(this);this.name="YAMLException";this.reason=e;this.mark=r;this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"");if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}else{this.stack=(new Error).stack||""}}YAMLException.prototype=Object.create(Error.prototype);YAMLException.prototype.constructor=YAMLException;YAMLException.prototype.toString=function toString(e){var r=this.name+": ";r+=this.reason||"(unknown reason)";if(!e&&this.mark){r+=" "+this.mark.toString()}return r};e.exports=YAMLException},,,,function(e){e.exports=function isBuffer(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)}},,function(e){e.exports=extend;var r=Object.prototype.hasOwnProperty;function extend(){var e={};for(var t=0;t0){const r=peek();if(!n.isHexDigit(r)){throw invalidChar(read())}e+=read()}return String.fromCodePoint(parseInt(e,16))}const E={start(){if(c.type==="eof"){throw invalidEOF()}push()},beforePropertyName(){switch(c.type){case"identifier":case"string":l=c.value;u="afterPropertyName";return;case"punctuator":pop();return;case"eof":throw invalidEOF()}},afterPropertyName(){if(c.type==="eof"){throw invalidEOF()}u="beforePropertyValue"},beforePropertyValue(){if(c.type==="eof"){throw invalidEOF()}push()},beforeArrayValue(){if(c.type==="eof"){throw invalidEOF()}if(c.type==="punctuator"&&c.value==="]"){pop();return}push()},afterPropertyValue(){if(c.type==="eof"){throw invalidEOF()}switch(c.value){case",":u="beforePropertyName";return;case"}":pop()}},afterArrayValue(){if(c.type==="eof"){throw invalidEOF()}switch(c.value){case",":u="beforeArrayValue";return;case"]":pop()}},end(){}};function push(){let e;switch(c.type){case"punctuator":switch(c.value){case"{":e={};break;case"[":e=[];break}break;case"null":case"boolean":case"numeric":case"string":e=c.value;break}if(p===undefined){p=e}else{const r=o[o.length-1];if(Array.isArray(r)){r.push(e)}else{r[l]=e}}if(e!==null&&typeof e==="object"){o.push(e);if(Array.isArray(e)){u="beforeArrayValue"}else{u="beforePropertyName"}}else{const e=o[o.length-1];if(e==null){u="end"}else if(Array.isArray(e)){u="afterArrayValue"}else{u="afterPropertyValue"}}}function pop(){o.pop();const e=o[o.length-1];if(e==null){u="end"}else if(Array.isArray(e)){u="afterArrayValue"}else{u="afterPropertyValue"}}function invalidChar(e){if(e===undefined){return syntaxError(`JSON5: invalid end of input at ${a}:${f}`)}return syntaxError(`JSON5: invalid character '${formatChar(e)}' at ${a}:${f}`)}function invalidEOF(){return syntaxError(`JSON5: invalid end of input at ${a}:${f}`)}function invalidIdentifier(){f-=5;return syntaxError(`JSON5: invalid identifier character at ${a}:${f}`)}function separatorChar(e){console.warn(`JSON5: '${formatChar(e)}' in strings is not valid ECMAScript; consider escaping`)}function formatChar(e){const r={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(r[e]){return r[e]}if(e<" "){const r=e.charCodeAt(0).toString(16);return"\\x"+("00"+r).substring(r.length)}return e}function syntaxError(e){const r=new SyntaxError(e);r.lineNumber=a;r.columnNumber=f;return r}},function(e){"use strict";e.exports=tableCell;var r=/\r?\n/g;function tableCell(e){return this.all(e).join("").replace(r," ")}},,,,,,,function(e,r,t){"use strict";var n=t(981);var i=t(408);e.exports=toVFile;function toVFile(e){if(typeof e==="string"||n(e)){e={path:String(e)}}return i(e)}},,,function(e){"use strict";e.exports=style;function style(e,r){var t=e.children[e.children.length-1];var n=e.depth;var i=e&&e.position&&e.position.end;var u=t&&t.position&&t.position.end;if(!i){return null}if(!t){if(i.column-1<=n*2){return consolidate(n,r)}return"atx-closed"}if(u.line+1===i.line){return"setext"}if(u.column+n0&&v.indent { - if (err) console.error(err); - process.exit(code); + extensions: extensions, + detectConfig: false, }); From 10a77d3cd1c453ac894708e6af4bf1444d4e344d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Reis?= Date: Fri, 13 Dec 2019 03:36:14 +0000 Subject: [PATCH 32/70] build,win: fix goto exit in vcbuild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/30931 Reviewed-By: Richard Lau Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott Reviewed-By: Tobias Nießen --- vcbuild.bat | 1 + 1 file changed, 1 insertion(+) diff --git a/vcbuild.bat b/vcbuild.bat index 3754d5f1b5715c..7c25233b561566 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -720,6 +720,7 @@ echo vcbuild.bat no-cctest : skip building cctest.exe goto exit :exit +if %errorlevel% neq 0 exit /b %errorlevel% exit /b %exit_code% From b6b917dda0c77f53b3f36107b976b651206925df Mon Sep 17 00:00:00 2001 From: Gerhard Stoebich <18708370+Flarna@users.noreply.github.com> Date: Fri, 13 Dec 2019 00:28:24 +0100 Subject: [PATCH 33/70] test: avoid leftover report file test-windows-failed-heap-allocation forces a out of mem crash resulting in a report file. To avoid a leftover in repo the child is started in a tmp folder like in test-report-fatal-error. PR-URL: https://github.com/nodejs/node/pull/30925 Reviewed-By: Anna Henningsen Reviewed-By: Gireesh Punathil Reviewed-By: Ruben Bridgewater Reviewed-By: Richard Lau Reviewed-By: Colin Ihrig Reviewed-By: Jiawen Geng Reviewed-By: David Carlier Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca --- test/parallel/test-windows-failed-heap-allocation.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/parallel/test-windows-failed-heap-allocation.js b/test/parallel/test-windows-failed-heap-allocation.js index ff8062855d6428..1681f0d871e416 100644 --- a/test/parallel/test-windows-failed-heap-allocation.js +++ b/test/parallel/test-windows-failed-heap-allocation.js @@ -14,9 +14,13 @@ if (process.argv[2] === 'heapBomb') { fn(2); } +// Run child in tmpdir to avoid report files in repo +const tmpdir = require('../common/tmpdir'); +tmpdir.refresh(); + // --max-old-space-size=3 is the min 'old space' in V8, explodes fast const cmd = `"${process.execPath}" --max-old-space-size=3 "${__filename}"`; -exec(`${cmd} heapBomb`, common.mustCall((err) => { +exec(`${cmd} heapBomb`, { cwd: tmpdir.path }, common.mustCall((err) => { const msg = `Wrong exit code of ${err.code}! Expected 134 for abort`; // Note: common.nodeProcessAborted() is not asserted here because it // returns true on 134 as well as 0xC0000005 (V8's base::OS::Abort) From f830a7dd7399c7558b39a9640c6868c17e05360b Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Sat, 2 Nov 2019 18:50:09 +0100 Subject: [PATCH 34/70] util: refactor inspect code for constistency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This removes the special handling to inspect iterable objects with a null prototype. It is now handled together with the regular prototype. PR-URL: https://github.com/nodejs/node/pull/30225 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/internal/util/inspect.js | 159 ++++++++++++----------------- test/parallel/test-util-inspect.js | 13 +++ 2 files changed, 80 insertions(+), 92 deletions(-) diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 1dc09a8aa06020..7a34454bb3b287 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -10,6 +10,7 @@ const { DatePrototypeToString, ErrorPrototypeToString, JSONStringify, + MapPrototype, MapPrototypeEntries, MathFloor, MathMax, @@ -21,10 +22,8 @@ const { NumberPrototypeValueOf, ObjectAssign, ObjectCreate, - ObjectDefineProperties, ObjectDefineProperty, ObjectGetOwnPropertyDescriptor, - ObjectGetOwnPropertyDescriptors, ObjectGetOwnPropertyNames, ObjectGetOwnPropertySymbols, ObjectGetPrototypeOf, @@ -34,6 +33,7 @@ const { ObjectPrototypePropertyIsEnumerable, ObjectSeal, RegExpPrototypeToString, + SetPrototype, SetPrototypeValues, StringPrototypeValueOf, SymbolPrototypeToString, @@ -113,6 +113,11 @@ const assert = require('internal/assert'); const { NativeModule } = require('internal/bootstrap/loaders'); +const setSizeGetter = uncurryThis( + ObjectGetOwnPropertyDescriptor(SetPrototype, 'size').get); +const mapSizeGetter = uncurryThis( + ObjectGetOwnPropertyDescriptor(MapPrototype, 'size').get); + let hexSlice; const builtInObjects = new Set( @@ -646,51 +651,6 @@ function findTypedConstructor(value) { } } -let lazyNullPrototypeCache; -// Creates a subclass and name -// the constructor as `${clazz} : null prototype` -function clazzWithNullPrototype(clazz, name) { - if (lazyNullPrototypeCache === undefined) { - lazyNullPrototypeCache = new Map(); - } else { - const cachedClass = lazyNullPrototypeCache.get(clazz); - if (cachedClass !== undefined) { - return cachedClass; - } - } - class NullPrototype extends clazz { - get [SymbolToStringTag]() { - return ''; - } - } - ObjectDefineProperty(NullPrototype.prototype.constructor, 'name', - { value: `[${name}: null prototype]` }); - lazyNullPrototypeCache.set(clazz, NullPrototype); - return NullPrototype; -} - -function noPrototypeIterator(ctx, value, recurseTimes) { - let newVal; - if (isSet(value)) { - const clazz = clazzWithNullPrototype(Set, 'Set'); - newVal = new clazz(SetPrototypeValues(value)); - } else if (isMap(value)) { - const clazz = clazzWithNullPrototype(Map, 'Map'); - newVal = new clazz(MapPrototypeEntries(value)); - } else if (ArrayIsArray(value)) { - const clazz = clazzWithNullPrototype(Array, 'Array'); - newVal = new clazz(value.length); - } else if (isTypedArray(value)) { - const constructor = findTypedConstructor(value); - const clazz = clazzWithNullPrototype(constructor, constructor.name); - newVal = new clazz(value); - } - if (newVal !== undefined) { - ObjectDefineProperties(newVal, ObjectGetOwnPropertyDescriptors(value)); - return formatRaw(ctx, newVal, recurseTimes); - } -} - // Note: using `formatValue` directly requires the indentation level to be // corrected by setting `ctx.indentationLvL += diff` and then to decrease the // value afterwards again. @@ -793,7 +753,9 @@ function formatRaw(ctx, value, recurseTimes, typedArray) { let extrasType = kObjectType; // Iterators and the rest are split to reduce checks. - if (value[SymbolIterator]) { + // We have to check all values in case the constructor is set to null. + // Otherwise it would not possible to identify all types properly. + if (value[SymbolIterator] || constructor === null) { noIterator = false; if (ArrayIsArray(value)) { keys = getOwnNonIndexProperties(value, filter); @@ -805,37 +767,66 @@ function formatRaw(ctx, value, recurseTimes, typedArray) { extrasType = kArrayExtrasType; formatter = formatArray; } else if (isSet(value)) { + const size = setSizeGetter(value); keys = getKeys(value, ctx.showHidden); - const prefix = getPrefix(constructor, tag, 'Set'); - if (value.size === 0 && keys.length === 0 && protoProps === undefined) + let prefix = ''; + if (constructor !== null) { + if (constructor === tag) + tag = ''; + prefix = getPrefix(`${constructor}`, tag, ''); + formatter = formatSet.bind(null, value, size); + } else { + prefix = getPrefix(constructor, tag, 'Set'); + formatter = formatSet.bind(null, SetPrototypeValues(value), size); + } + if (size === 0 && keys.length === 0 && protoProps === undefined) return `${prefix}{}`; braces = [`${prefix}{`, '}']; - formatter = formatSet; } else if (isMap(value)) { + const size = mapSizeGetter(value); keys = getKeys(value, ctx.showHidden); - const prefix = getPrefix(constructor, tag, 'Map'); - if (value.size === 0 && keys.length === 0 && protoProps === undefined) + let prefix = ''; + if (constructor !== null) { + if (constructor === tag) + tag = ''; + prefix = getPrefix(`${constructor}`, tag, ''); + formatter = formatMap.bind(null, value, size); + } else { + prefix = getPrefix(constructor, tag, 'Map'); + formatter = formatMap.bind(null, MapPrototypeEntries(value), size); + } + if (size === 0 && keys.length === 0 && protoProps === undefined) return `${prefix}{}`; braces = [`${prefix}{`, '}']; - formatter = formatMap; } else if (isTypedArray(value)) { keys = getOwnNonIndexProperties(value, filter); - const prefix = constructor !== null ? - getPrefix(constructor, tag) : - getPrefix(constructor, tag, findTypedConstructor(value).name); + let bound = value; + let prefix = ''; + if (constructor === null) { + const constr = findTypedConstructor(value); + prefix = getPrefix(constructor, tag, constr.name); + // Reconstruct the array information. + bound = new constr(value); + } else { + prefix = getPrefix(constructor, tag); + } braces = [`${prefix}[`, ']']; if (value.length === 0 && keys.length === 0 && !ctx.showHidden) return `${braces[0]}]`; - formatter = formatTypedArray; + // Special handle the value. The original value is required below. The + // bound function is required to reconstruct missing information. + formatter = formatTypedArray.bind(null, bound); extrasType = kArrayExtrasType; } else if (isMapIterator(value)) { keys = getKeys(value, ctx.showHidden); braces = getIteratorBraces('Map', tag); - formatter = formatIterator; + // Add braces to the formatter parameters. + formatter = formatIterator.bind(null, braces); } else if (isSetIterator(value)) { keys = getKeys(value, ctx.showHidden); braces = getIteratorBraces('Set', tag); - formatter = formatIterator; + // Add braces to the formatter parameters. + formatter = formatIterator.bind(null, braces); } else { noIterator = true; } @@ -913,36 +904,20 @@ function formatRaw(ctx, value, recurseTimes, typedArray) { formatter = ctx.showHidden ? formatWeakMap : formatWeakCollection; } else if (isModuleNamespaceObject(value)) { braces[0] = `[${tag}] {`; - formatter = formatNamespaceObject; + // Special handle keys for namespace objects. + formatter = formatNamespaceObject.bind(null, keys); } else if (isBoxedPrimitive(value)) { base = getBoxedBase(value, ctx, keys, constructor, tag); if (keys.length === 0 && protoProps === undefined) { return base; } } else { - // The input prototype got manipulated. Special handle these. We have to - // rebuild the information so we are able to display everything. - if (constructor === null) { - const specialIterator = noPrototypeIterator(ctx, value, recurseTimes); - if (specialIterator) { - return specialIterator; - } - } - if (isMapIterator(value)) { - braces = getIteratorBraces('Map', tag); - formatter = formatIterator; - } else if (isSetIterator(value)) { - braces = getIteratorBraces('Set', tag); - formatter = formatIterator; - // Handle other regular objects again. - } else { - if (keys.length === 0 && protoProps === undefined) { - if (isExternal(value)) - return ctx.stylize('[External]', 'special'); - return `${getCtxStyle(value, constructor, tag)}{}`; - } - braces[0] = `${getCtxStyle(value, constructor, tag)}{`; + if (keys.length === 0 && protoProps === undefined) { + if (isExternal(value)) + return ctx.stylize('[External]', 'special'); + return `${getCtxStyle(value, constructor, tag)}{}`; } + braces[0] = `${getCtxStyle(value, constructor, tag)}{`; } } @@ -959,7 +934,7 @@ function formatRaw(ctx, value, recurseTimes, typedArray) { let output; const indentationLvl = ctx.indentationLvl; try { - output = formatter(ctx, value, recurseTimes, keys, braces); + output = formatter(ctx, value, recurseTimes); for (i = 0; i < keys.length; i++) { output.push( formatProperty(ctx, value, recurseTimes, keys[i], extrasType)); @@ -1317,7 +1292,7 @@ function formatPrimitive(fn, value, ctx) { return fn(SymbolPrototypeToString(value), 'symbol'); } -function formatNamespaceObject(ctx, value, recurseTimes, keys) { +function formatNamespaceObject(keys, ctx, value, recurseTimes) { const output = new Array(keys.length); for (let i = 0; i < keys.length; i++) { try { @@ -1419,7 +1394,7 @@ function formatArray(ctx, value, recurseTimes) { return output; } -function formatTypedArray(ctx, value, recurseTimes) { +function formatTypedArray(value, ctx, ignored, recurseTimes) { const maxLength = MathMin(MathMax(0, ctx.maxArrayLength), value.length); const remaining = value.length - maxLength; const output = new Array(maxLength); @@ -1450,7 +1425,7 @@ function formatTypedArray(ctx, value, recurseTimes) { return output; } -function formatSet(ctx, value, recurseTimes) { +function formatSet(value, size, ctx, ignored, recurseTimes) { const output = []; ctx.indentationLvl += 2; for (const v of value) { @@ -1461,11 +1436,11 @@ function formatSet(ctx, value, recurseTimes) { // arrays. For consistency's sake, do the same for `size`, even though this // property isn't selected by ObjectGetOwnPropertyNames(). if (ctx.showHidden) - output.push(`[size]: ${ctx.stylize(`${value.size}`, 'number')}`); + output.push(`[size]: ${ctx.stylize(`${size}`, 'number')}`); return output; } -function formatMap(ctx, value, recurseTimes) { +function formatMap(value, size, ctx, ignored, recurseTimes) { const output = []; ctx.indentationLvl += 2; for (const [k, v] of value) { @@ -1475,7 +1450,7 @@ function formatMap(ctx, value, recurseTimes) { ctx.indentationLvl -= 2; // See comment in formatSet if (ctx.showHidden) - output.push(`[size]: ${ctx.stylize(`${value.size}`, 'number')}`); + output.push(`[size]: ${ctx.stylize(`${size}`, 'number')}`); return output; } @@ -1553,7 +1528,7 @@ function formatWeakMap(ctx, value, recurseTimes) { return formatMapIterInner(ctx, recurseTimes, entries, kWeak); } -function formatIterator(ctx, value, recurseTimes, keys, braces) { +function formatIterator(braces, ctx, value, recurseTimes) { const [entries, isKeyValue] = previewEntries(value, true); if (isKeyValue) { // Mark entry iterators as such. @@ -1588,7 +1563,7 @@ function formatProperty(ctx, value, recurseTimes, key, type, desc) { desc = desc || ObjectGetOwnPropertyDescriptor(value, key) || { value: value[key], enumerable: true }; if (desc.value !== undefined) { - const diff = (type !== kObjectType || ctx.compact !== true) ? 2 : 3; + const diff = (ctx.compact !== true || type !== kObjectType) ? 2 : 3; ctx.indentationLvl += diff; str = formatValue(ctx, desc.value, recurseTimes); if (diff === 3) { diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index 098aee4adc9bb6..52d9f893d23614 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -2219,6 +2219,19 @@ assert.strictEqual( configurable: true }); assert.strictEqual(util.inspect(obj), '[Set: null prototype] { 1, 2 }'); + Object.defineProperty(obj, Symbol.iterator, { + value: true, + configurable: true + }); + Object.defineProperty(obj, 'size', { + value: NaN, + configurable: true, + enumerable: true + }); + assert.strictEqual( + util.inspect(obj), + '[Set: null prototype] { 1, 2, size: NaN }' + ); } // Check the getter option. From f62a7679a30fb02739e6cba2206fbabe6372a332 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Sat, 2 Nov 2019 19:13:51 +0100 Subject: [PATCH 35/70] util: add Set and map size to inspect output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds the size of a set and map to the output. This aligns the output with the one from Chromium. PR-URL: https://github.com/nodejs/node/pull/30225 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- doc/api/util.md | 8 +-- lib/internal/util/inspect.js | 16 ++---- test/parallel/test-assert-deep.js | 2 +- test/parallel/test-util-inspect.js | 91 +++++++++++++++--------------- 4 files changed, 54 insertions(+), 63 deletions(-) diff --git a/doc/api/util.md b/doc/api/util.md index f4e689a2130bd5..4727cdb88e9678 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -576,7 +576,7 @@ console.log(util.inspect(o, { compact: true, depth: 5, breakLength: 80 })); // 'test', // 'foo' ] ], // 4 ], -// b: Map { 'za' => 1, 'zb' => 'test' } } +// b: Map(2) { 'za' => 1, 'zb' => 'test' } } // Setting `compact` to false changes the output to be more reader friendly. console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 })); @@ -597,7 +597,7 @@ console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 })); // ], // 4 // ], -// b: Map { +// b: Map(2) { // 'za' => 1, // 'zb' => 'test' // } @@ -639,9 +639,9 @@ const o1 = { c: new Set([2, 3, 1]) }; console.log(inspect(o1, { sorted: true })); -// { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set { 1, 2, 3 } } +// { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } } console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) })); -// { c: Set { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' } +// { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' } const o2 = { c: new Set([2, 1, 3]), diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 7a34454bb3b287..5f07afe65fbd6a 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -773,10 +773,10 @@ function formatRaw(ctx, value, recurseTimes, typedArray) { if (constructor !== null) { if (constructor === tag) tag = ''; - prefix = getPrefix(`${constructor}`, tag, ''); + prefix = getPrefix(`${constructor}(${size})`, tag, ''); formatter = formatSet.bind(null, value, size); } else { - prefix = getPrefix(constructor, tag, 'Set'); + prefix = getPrefix(constructor, tag, `Set(${size})`); formatter = formatSet.bind(null, SetPrototypeValues(value), size); } if (size === 0 && keys.length === 0 && protoProps === undefined) @@ -789,10 +789,10 @@ function formatRaw(ctx, value, recurseTimes, typedArray) { if (constructor !== null) { if (constructor === tag) tag = ''; - prefix = getPrefix(`${constructor}`, tag, ''); + prefix = getPrefix(`${constructor}(${size})`, tag, ''); formatter = formatMap.bind(null, value, size); } else { - prefix = getPrefix(constructor, tag, 'Map'); + prefix = getPrefix(constructor, tag, `Map(${size})`); formatter = formatMap.bind(null, MapPrototypeEntries(value), size); } if (size === 0 && keys.length === 0 && protoProps === undefined) @@ -1432,11 +1432,6 @@ function formatSet(value, size, ctx, ignored, recurseTimes) { output.push(formatValue(ctx, v, recurseTimes)); } ctx.indentationLvl -= 2; - // With `showHidden`, `length` will display as a hidden property for - // arrays. For consistency's sake, do the same for `size`, even though this - // property isn't selected by ObjectGetOwnPropertyNames(). - if (ctx.showHidden) - output.push(`[size]: ${ctx.stylize(`${size}`, 'number')}`); return output; } @@ -1448,9 +1443,6 @@ function formatMap(value, size, ctx, ignored, recurseTimes) { formatValue(ctx, v, recurseTimes)); } ctx.indentationLvl -= 2; - // See comment in formatSet - if (ctx.showHidden) - output.push(`[size]: ${ctx.stylize(`${size}`, 'number')}`); return output; } diff --git a/test/parallel/test-assert-deep.js b/test/parallel/test-assert-deep.js index fcc3765105f57c..f98ab14bffc12d 100644 --- a/test/parallel/test-assert-deep.js +++ b/test/parallel/test-assert-deep.js @@ -524,7 +524,7 @@ assertNotDeepOrStrict( { code: 'ERR_ASSERTION', message: `${defaultMsgStartFull}\n\n` + - " Map {\n+ 1 => 1\n- 1 => '1'\n }" + " Map(1) {\n+ 1 => 1\n- 1 => '1'\n }" } ); } diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index 52d9f893d23614..4a25013355703e 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -576,9 +576,9 @@ assert.strictEqual(util.inspect(-5e-324), '-5e-324'); let obj = vm.runInNewContext('(function(){return {}})()', {}); assert.strictEqual(util.inspect(obj), '{}'); obj = vm.runInNewContext('var m=new Map();m.set(1,2);m', {}); - assert.strictEqual(util.inspect(obj), 'Map { 1 => 2 }'); + assert.strictEqual(util.inspect(obj), 'Map(1) { 1 => 2 }'); obj = vm.runInNewContext('var s=new Set();s.add(1);s.add(2);s', {}); - assert.strictEqual(util.inspect(obj), 'Set { 1, 2 }'); + assert.strictEqual(util.inspect(obj), 'Set(2) { 1, 2 }'); obj = vm.runInNewContext('fn=function(){};new Promise(fn,fn)', {}); assert.strictEqual(util.inspect(obj), 'Promise { }'); } @@ -1067,13 +1067,13 @@ if (typeof Symbol !== 'undefined') { // Test Set. { - assert.strictEqual(util.inspect(new Set()), 'Set {}'); - assert.strictEqual(util.inspect(new Set([1, 2, 3])), 'Set { 1, 2, 3 }'); + assert.strictEqual(util.inspect(new Set()), 'Set(0) {}'); + assert.strictEqual(util.inspect(new Set([1, 2, 3])), 'Set(3) { 1, 2, 3 }'); const set = new Set(['foo']); set.bar = 42; assert.strictEqual( util.inspect(set, { showHidden: true }), - "Set { 'foo', [size]: 1, bar: 42 }" + "Set(1) { 'foo', bar: 42 }" ); } @@ -1081,33 +1081,39 @@ if (typeof Symbol !== 'undefined') { { const set = new Set(); set.add(set); - assert.strictEqual(util.inspect(set), ' Set { [Circular *1] }'); + assert.strictEqual(util.inspect(set), ' Set(1) { [Circular *1] }'); } // Test Map. { - assert.strictEqual(util.inspect(new Map()), 'Map {}'); + assert.strictEqual(util.inspect(new Map()), 'Map(0) {}'); assert.strictEqual(util.inspect(new Map([[1, 'a'], [2, 'b'], [3, 'c']])), - "Map { 1 => 'a', 2 => 'b', 3 => 'c' }"); + "Map(3) { 1 => 'a', 2 => 'b', 3 => 'c' }"); const map = new Map([['foo', null]]); map.bar = 42; assert.strictEqual(util.inspect(map, true), - "Map { 'foo' => null, [size]: 1, bar: 42 }"); + "Map(1) { 'foo' => null, bar: 42 }"); } // Test circular Map. { const map = new Map(); map.set(map, 'map'); - assert.strictEqual(inspect(map), " Map { [Circular *1] => 'map' }"); + assert.strictEqual( + inspect(map), + " Map(1) { [Circular *1] => 'map' }" + ); map.set(map, map); assert.strictEqual( inspect(map), - ' Map { [Circular *1] => [Circular *1] }' + ' Map(1) { [Circular *1] => [Circular *1] }' ); map.delete(map); map.set('map', map); - assert.strictEqual(inspect(map), " Map { 'map' => [Circular *1] }"); + assert.strictEqual( + inspect(map), + " Map(1) { 'map' => [Circular *1] }" + ); } // Test multiple circular references. @@ -1273,10 +1279,10 @@ if (typeof Symbol !== 'undefined') { }); checkAlignment(obj, '{', " 'X': null", '}'); - checkAlignment(new Set(bigArray), 'Set {', ' X', '}'); + checkAlignment(new Set(bigArray), 'Set(100) {', ' X', '}'); checkAlignment( new Map(bigArray.map((number) => [number, null])), - 'Map {', ' X => null', '}' + 'Map(100) {', ' X => null', '}' ); } @@ -1296,9 +1302,9 @@ if (typeof Symbol !== 'undefined') { assert.strictEqual(util.inspect(new ArraySubclass(1, 2, 3)), 'ArraySubclass [ 1, 2, 3 ]'); assert.strictEqual(util.inspect(new SetSubclass([1, 2, 3])), - 'SetSubclass [Set] { 1, 2, 3 }'); + 'SetSubclass(3) [Set] { 1, 2, 3 }'); assert.strictEqual(util.inspect(new MapSubclass([['foo', 42]])), - "MapSubclass [Map] { 'foo' => 42 }"); + "MapSubclass(1) [Map] { 'foo' => 42 }"); assert.strictEqual(util.inspect(new PromiseSubclass(() => {})), 'PromiseSubclass [Promise] { }'); assert.strictEqual( @@ -1557,7 +1563,7 @@ util.inspect(process); " 'test',", " 'foo' ] ],", ' 4 ],', - " b: Map { 'za' => 1, 'zb' => 'test' } }", + " b: Map(2) { 'za' => 1, 'zb' => 'test' } }", ].join('\n'); assert.strictEqual(out, expect); @@ -1578,7 +1584,7 @@ util.inspect(process); ' ],', ' 4', ' ],', - ' b: Map {', + ' b: Map(2) {', " 'za' => 1,", " 'zb' => 'test'", ' }', @@ -1658,18 +1664,17 @@ util.inspect(process); let out = util.inspect(map, { compact: false, showHidden: true, depth: 9 }); let expected = [ - 'Map {', + 'Map(2) {', ' Promise {', ' [', ' [', ' 1,', - ' Set {', + ' Set(1) {', ' [', ' 1,', ' 2,', ' [length]: 2', - ' ],', - ' [size]: 1', + ' ]', ' },', ' [length]: 2', ' ],', @@ -1703,8 +1708,7 @@ util.inspect(process); ' }', ' ],', ' [Circular *1]', - ' },', - ' [size]: 2', + ' }', '}' ].join('\n'); @@ -1713,12 +1717,12 @@ util.inspect(process); out = util.inspect(map, { compact: 2, showHidden: true, depth: 9 }); expected = [ - 'Map {', + 'Map(2) {', ' Promise {', ' [', ' [', ' 1,', - ' Set { [ 1, 2, [length]: 2 ], [size]: 1 },', + ' Set(1) { [ 1, 2, [length]: 2 ] },', ' [length]: 2', ' ],', ' [length]: 1', @@ -1739,8 +1743,7 @@ util.inspect(process); ' [buffer]: ArrayBuffer { byteLength: 0, foo: true }', ' ],', ' [Circular *1]', - ' },', - ' [size]: 2', + ' }', '}' ].join('\n'); @@ -1750,14 +1753,13 @@ util.inspect(process); showHidden: true, depth: 9, breakLength: 4, compact: true }); expected = [ - 'Map {', + 'Map(2) {', ' Promise {', ' [ [ 1,', - ' Set {', + ' Set(1) {', ' [ 1,', ' 2,', - ' [length]: 2 ],', - ' [size]: 1 },', + ' [length]: 2 ] },', ' [length]: 2 ],', ' [length]: 1 ] } => Uint8Array [', ' [BYTES_PER_ELEMENT]: 1,', @@ -1779,8 +1781,7 @@ util.inspect(process); ' [buffer]: ArrayBuffer {', ' byteLength: 0,', ' foo: true } ],', - ' [Circular *1] },', - ' [size]: 2 }' + ' [Circular *1] } }' ].join('\n'); assert.strict.equal(out, expected); @@ -1944,8 +1945,8 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); [[1, 2], '[ 1, 2 ]'], [[, , 5, , , , ], '[ <2 empty items>, 5, <3 empty items> ]'], [{ a: 5 }, '{ a: 5 }'], - [new Set([1, 2]), 'Set { 1, 2 }'], - [new Map([[1, 2]]), 'Map { 1 => 2 }'], + [new Set([1, 2]), 'Set(2) { 1, 2 }'], + [new Map([[1, 2]]), 'Map(1) { 1 => 2 }'], [new Set([1, 2]).entries(), '[Set Entries] { [ 1, 1 ], [ 2, 2 ] }'], [new Map([[1, 2]]).keys(), '[Map Iterator] { 1 }'], [new Date(2000), '1970-01-01T00:00:02.000Z'], @@ -1976,8 +1977,8 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); // Verify that having no prototype still produces nice results. [ [[1, 3, 4], '[Array: null prototype] [ 1, 3, 4 ]'], - [new Set([1, 2]), '[Set: null prototype] { 1, 2 }'], - [new Map([[1, 2]]), '[Map: null prototype] { 1 => 2 }'], + [new Set([1, 2]), '[Set(2): null prototype] { 1, 2 }'], + [new Map([[1, 2]]), '[Map(1): null prototype] { 1 => 2 }'], [new Promise((resolve) => setTimeout(resolve, 10)), '[Promise: null prototype] { }'], [new WeakSet(), '[WeakSet: null prototype] { }'], @@ -2218,7 +2219,7 @@ assert.strictEqual( value: iterator, configurable: true }); - assert.strictEqual(util.inspect(obj), '[Set: null prototype] { 1, 2 }'); + assert.strictEqual(util.inspect(obj), '[Set(2): null prototype] { 1, 2 }'); Object.defineProperty(obj, Symbol.iterator, { value: true, configurable: true @@ -2230,7 +2231,7 @@ assert.strictEqual( }); assert.strictEqual( util.inspect(obj), - '[Set: null prototype] { 1, 2, size: NaN }' + '[Set(2): null prototype] { 1, 2, size: NaN }' ); } @@ -2263,7 +2264,7 @@ assert.strictEqual( getset.foo = new Set([[{ a: true }, 2, {}], 'foobar', { x: 1 }]); assert.strictEqual( inspect(getset, { getters: true }), - '{\n foo: [Getter/Setter] Set { [ [Object], 2, {} ], ' + + '{\n foo: [Getter/Setter] Set(3) { [ [Object], 2, {} ], ' + "'foobar', { x: 1 } },\n inc: [Getter: NaN]\n}"); } @@ -2654,12 +2655,11 @@ assert.strictEqual( assert.strictEqual( inspect(bar), - 'Bar [Map] { prop: true, prop2: true, abc: true }' + 'Bar(0) [Map] { prop: true, prop2: true, abc: true }' ); assert.strictEqual( inspect(bar, { showHidden: true, getters: true, colors: false }), - 'Bar [Map] {\n' + - ' [size]: 0,\n' + + 'Bar(0) [Map] {\n' + ' prop: true,\n' + ' prop2: true,\n' + ' abc: true,\n' + @@ -2669,8 +2669,7 @@ assert.strictEqual( ); assert.strictEqual( inspect(bar, { showHidden: true, getters: false, colors: true }), - 'Bar [Map] {\n' + - ' [size]: \x1B[33m0\x1B[39m,\n' + + 'Bar(0) [Map] {\n' + ' prop: \x1B[33mtrue\x1B[39m,\n' + ' prop2: \x1B[33mtrue\x1B[39m,\n' + ' abc: \x1B[33mtrue\x1B[39m,\n' + From eb6443dc11d45a7cd008e296ab13e5f9186aa4ca Mon Sep 17 00:00:00 2001 From: Derek Lewis Date: Thu, 12 Dec 2019 16:47:31 -0500 Subject: [PATCH 36/70] doc: clarify expectations for PR commit messages Prior to this commit, new contributors were suggested to use a utility to validate commit messages. Although not inaccurate, this utility produces misleading results. * Remove reference to `core-validate-commit` PR-URL: https://github.com/nodejs/node/pull/30922 Reviewed-By: Myles Borins Reviewed-By: Anna Henningsen Reviewed-By: Gireesh Punathil Reviewed-By: Rich Trott --- doc/guides/contributing/pull-requests.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/doc/guides/contributing/pull-requests.md b/doc/guides/contributing/pull-requests.md index cd1bccd20cd691..7f4ab4e83e049b 100644 --- a/doc/guides/contributing/pull-requests.md +++ b/doc/guides/contributing/pull-requests.md @@ -192,9 +192,6 @@ One of the existing contributors will help get things situated and the contributor landing the Pull Request will ensure that everything follows the project guidelines. -See [core-validate-commit](https://github.com/nodejs/core-validate-commit) - -A utility that ensures commits follow the commit formatting guidelines. - ### Step 5: Rebase As a best practice, once you have committed your changes, it is a good idea From 69aaab0e2ca8c6e35b4f0c9060be25918435e1e8 Mon Sep 17 00:00:00 2001 From: Kirill Ponomarev Date: Tue, 3 Dec 2019 19:25:02 +0300 Subject: [PATCH 37/70] test: improve dns lookup coverage Adding tests covering promises-related code paths. PR-URL: https://github.com/nodejs/node/pull/30777 Reviewed-By: Rich Trott Reviewed-By: Ben Coe Reviewed-By: Ruben Bridgewater --- test/parallel/test-dns-lookup-promises.js | 139 ++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 test/parallel/test-dns-lookup-promises.js diff --git a/test/parallel/test-dns-lookup-promises.js b/test/parallel/test-dns-lookup-promises.js new file mode 100644 index 00000000000000..3e8e202c94c112 --- /dev/null +++ b/test/parallel/test-dns-lookup-promises.js @@ -0,0 +1,139 @@ +// Flags: --expose-internals +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { internalBinding } = require('internal/test/binding'); +const cares = internalBinding('cares_wrap'); + +// Stub `getaddrinfo` to proxy its call dynamic stub. This has to be done before +// we load the `dns` module to guarantee that the `dns` module uses the stub. +let getaddrinfoStub = null; +cares.getaddrinfo = (req) => getaddrinfoStub(req); + +const dnsPromises = require('dns').promises; + +function getaddrinfoNegative() { + return function getaddrinfoNegativeHandler(req) { + const originalReject = req.reject; + req.resolve = common.mustNotCall(); + req.reject = common.mustCall(originalReject); + req.oncomplete(internalBinding('uv').UV_ENOMEM); + }; +} + +function getaddrinfoPositive(addresses) { + return function getaddrinfo_positive(req) { + const originalResolve = req.resolve; + req.reject = common.mustNotCall(); + req.resolve = common.mustCall(originalResolve); + req.oncomplete(null, addresses); + }; +} + +async function lookupPositive() { + [ + { + stub: getaddrinfoPositive(['::1']), + factory: () => dnsPromises.lookup('example.com'), + expectation: { address: '::1', family: 6 } + }, + { + stub: getaddrinfoPositive(['127.0.0.1']), + factory: () => dnsPromises.lookup('example.com'), + expectation: { address: '127.0.0.1', family: 4 } + }, + { + stub: getaddrinfoPositive(['127.0.0.1'], { family: 4 }), + factory: () => dnsPromises.lookup('example.com'), + expectation: { address: '127.0.0.1', family: 4 } + }, + { + stub: getaddrinfoPositive(['some-address']), + factory: () => dnsPromises.lookup('example.com'), + expectation: { address: 'some-address', family: 0 } + }, + { + stub: getaddrinfoPositive(['some-address2']), + factory: () => dnsPromises.lookup('example.com', { family: 6 }), + expectation: { address: 'some-address2', family: 6 } + } + ].forEach(async ({ stub, factory, expectation }) => { + getaddrinfoStub = stub; + assert.deepStrictEqual(await factory(), expectation); + }); +} + +async function lookupNegative() { + getaddrinfoStub = getaddrinfoNegative(); + const expected = { + code: 'ENOMEM', + hostname: 'example.com', + syscall: 'getaddrinfo' + }; + return assert.rejects(dnsPromises.lookup('example.com'), expected); +} + +async function lookupallPositive() { + [ + { + stub: getaddrinfoPositive(['::1', '::2']), + factory: () => dnsPromises.lookup('example', { all: true }), + expectation: [ + { address: '::1', family: 6 }, + { address: '::2', family: 6 } + ] + }, + { + stub: getaddrinfoPositive(['::1', '::2']), + factory: () => dnsPromises.lookup('example', { all: true, family: 4 }), + expectation: [ + { address: '::1', family: 4 }, + { address: '::2', family: 4 } + ] + }, + { + stub: getaddrinfoPositive(['127.0.0.1', 'some-address']), + factory: () => dnsPromises.lookup('example', { all: true }), + expectation: [ + { address: '127.0.0.1', family: 4 }, + { address: 'some-address', family: 0 } + ] + }, + { + stub: getaddrinfoPositive(['127.0.0.1', 'some-address']), + factory: () => dnsPromises.lookup('example', { all: true, family: 6 }), + expectation: [ + { address: '127.0.0.1', family: 6 }, + { address: 'some-address', family: 6 } + ] + }, + { + stub: getaddrinfoPositive([]), + factory: () => dnsPromises.lookup('example', { all: true }), + expectation: [] + } + ].forEach(async ({ stub, factory, expectation }) => { + getaddrinfoStub = stub; + assert.deepStrictEqual(await factory(), expectation); + }); +} + +async function lookupallNegative() { + getaddrinfoStub = getaddrinfoNegative(); + const expected = { + code: 'ENOMEM', + hostname: 'example.com', + syscall: 'getaddrinfo' + }; + return assert.rejects(dnsPromises.lookup('example.com', { all: true }), + expected); +} + +(async () => { + await Promise.all([ + lookupPositive(), + lookupNegative(), + lookupallPositive(), + lookupallNegative() + ]).then(common.mustCall()); +})(); From d549daef18b6735d49cf1d316270b20a54b6a75c Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 10 Dec 2019 17:27:22 +0100 Subject: [PATCH 38/70] repl: remove dead code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The .scope command was used only in the old debugger. Since that's not part of core anymore it's does not have any use. I tried to replicate the expected behavior but it even results in just exiting the repl immediately when using the completion similar to the removed test case. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/repl.js | 48 +++++++++------------------ test/parallel/test-repl-eval-scope.js | 24 -------------- 2 files changed, 15 insertions(+), 57 deletions(-) delete mode 100644 test/parallel/test-repl-eval-scope.js diff --git a/lib/repl.js b/lib/repl.js index 4d40da4daabd95..5d932dda3f7052 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -43,7 +43,6 @@ 'use strict'; const { - ArrayIsArray, MathMax, NumberIsNaN, ObjectAssign, @@ -1277,40 +1276,23 @@ function complete(line, callback) { // Resolve expr and get its completions. const memberGroups = []; if (!expr) { - // If context is instance of vm.ScriptContext // Get global vars synchronously - if (this.useGlobal || vm.isContext(this.context)) { - completionGroups.push(getGlobalLexicalScopeNames(this[kContextId])); - let contextProto = this.context; - while (contextProto = ObjectGetPrototypeOf(contextProto)) { - completionGroups.push( - filteredOwnPropertyNames.call(this, contextProto)); - } - const contextOwnNames = - filteredOwnPropertyNames.call(this, this.context); - if (!this.useGlobal) { - // When the context is not `global`, builtins are not own - // properties of it. - contextOwnNames.push(...globalBuiltins); - } - completionGroups.push(contextOwnNames); - if (filter !== '') addCommonWords(completionGroups); - completionGroupsLoaded(); - } else { - this.eval('.scope', this.context, 'repl', function ev(err, globals) { - if (err || !ArrayIsArray(globals)) { - if (filter !== '') addCommonWords(completionGroups); - } else if (ArrayIsArray(globals[0])) { - // Add grouped globals - for (let n = 0; n < globals.length; n++) - completionGroups.push(globals[n]); - } else { - completionGroups.push(globals); - if (filter !== '') addCommonWords(completionGroups); - } - completionGroupsLoaded(); - }); + completionGroups.push(getGlobalLexicalScopeNames(this[kContextId])); + let contextProto = this.context; + while (contextProto = ObjectGetPrototypeOf(contextProto)) { + completionGroups.push( + filteredOwnPropertyNames.call(this, contextProto)); + } + const contextOwnNames = + filteredOwnPropertyNames.call(this, this.context); + if (!this.useGlobal) { + // When the context is not `global`, builtins are not own + // properties of it. + contextOwnNames.push(...globalBuiltins); } + completionGroups.push(contextOwnNames); + if (filter !== '') addCommonWords(completionGroups); + completionGroupsLoaded(); } else { const evalExpr = `try { ${expr} } catch {}`; this.eval(evalExpr, this.context, 'repl', (e, obj) => { diff --git a/test/parallel/test-repl-eval-scope.js b/test/parallel/test-repl-eval-scope.js deleted file mode 100644 index 702b6056f101a5..00000000000000 --- a/test/parallel/test-repl-eval-scope.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; -const common = require('../common'); -const ArrayStream = require('../common/arraystream'); -const assert = require('assert'); -const repl = require('repl'); - -{ - const stream = new ArrayStream(); - const options = { - eval: common.mustCall((cmd, context) => { - assert.strictEqual(cmd, '.scope\n'); - assert.deepStrictEqual(context, { animal: 'Sterrance' }); - }), - input: stream, - output: stream, - terminal: true - }; - - const r = repl.start(options); - r.context = { animal: 'Sterrance' }; - - stream.emit('data', '\t'); - stream.emit('.exit\n'); -} From f7eeb8cc0b6d5843874789e8326272849029408a Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 10 Dec 2019 17:31:13 +0100 Subject: [PATCH 39/70] repl: simplify repl autocompletion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This simplifies calling `filteredOwnPropertyNames()`. The context is not used in that function, so there's no need to call the function as such. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/repl.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/repl.js b/lib/repl.js index 5d932dda3f7052..eeee83fee3c70f 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -1280,11 +1280,9 @@ function complete(line, callback) { completionGroups.push(getGlobalLexicalScopeNames(this[kContextId])); let contextProto = this.context; while (contextProto = ObjectGetPrototypeOf(contextProto)) { - completionGroups.push( - filteredOwnPropertyNames.call(this, contextProto)); + completionGroups.push(filteredOwnPropertyNames(contextProto)); } - const contextOwnNames = - filteredOwnPropertyNames.call(this, this.context); + const contextOwnNames = filteredOwnPropertyNames(this.context); if (!this.useGlobal) { // When the context is not `global`, builtins are not own // properties of it. @@ -1299,7 +1297,7 @@ function complete(line, callback) { if (obj != null) { if (typeof obj === 'object' || typeof obj === 'function') { try { - memberGroups.push(filteredOwnPropertyNames.call(this, obj)); + memberGroups.push(filteredOwnPropertyNames(obj)); } catch { // Probably a Proxy object without `getOwnPropertyNames` trap. // We simply ignore it here, as we don't want to break the @@ -1317,7 +1315,7 @@ function complete(line, callback) { p = obj.constructor ? obj.constructor.prototype : null; } while (p !== null) { - memberGroups.push(filteredOwnPropertyNames.call(this, p)); + memberGroups.push(filteredOwnPropertyNames(p)); p = ObjectGetPrototypeOf(p); // Circular refs possible? Let's guard against that. sentinel--; From 8b92223ed1cf670c77ee2a627e40c01f24a63af5 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 10 Dec 2019 18:17:01 +0100 Subject: [PATCH 40/70] repl: simplify code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This simplifies some repl code and removes a code branch that is unreachable. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/repl.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/repl.js b/lib/repl.js index eeee83fee3c70f..1e7ab29bac03ab 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -953,7 +953,7 @@ REPLServer.prototype.createContext = function() { } const module = new CJSModule(''); - module.paths = CJSModule._resolveLookupPaths('', parentModule) || []; + module.paths = CJSModule._resolveLookupPaths('', parentModule); ObjectDefineProperty(context, 'module', { configurable: true, @@ -1307,21 +1307,17 @@ function complete(line, callback) { } // Works for non-objects try { - let sentinel = 5; let p; if (typeof obj === 'object' || typeof obj === 'function') { p = ObjectGetPrototypeOf(obj); } else { p = obj.constructor ? obj.constructor.prototype : null; } - while (p !== null) { + // Circular refs possible? Let's guard against that. + let sentinel = 5; + while (p !== null && sentinel-- !== 0) { memberGroups.push(filteredOwnPropertyNames(p)); p = ObjectGetPrototypeOf(p); - // Circular refs possible? Let's guard against that. - sentinel--; - if (sentinel <= 0) { - break; - } } } catch {} } From 424c37baba5c9a9c3ad0767158a8ea8115049dbe Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 11 Dec 2019 11:12:26 +0100 Subject: [PATCH 41/70] readline: update ansi-regex MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This updates the used regular expression to the latest version. It includes a number of additional escape codes. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/internal/readline/utils.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/internal/readline/utils.js b/lib/internal/readline/utils.js index 510acf221831a0..084976f440dfeb 100644 --- a/lib/internal/readline/utils.js +++ b/lib/internal/readline/utils.js @@ -7,12 +7,13 @@ const { // Regex used for ansi escape code splitting // Adopted from https://github.com/chalk/ansi-regex/blob/master/index.js -// License: MIT, authors: @sindresorhus, Qix-, and arjunmehta +// License: MIT, authors: @sindresorhus, Qix-, arjunmehta and LitoMore // Matches all ansi escape code sequences in a string -/* eslint-disable no-control-regex */ -const ansi = - /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; -/* eslint-enable no-control-regex */ +const ansiPattern = '[\\u001B\\u009B][[\\]()#;?]*' + + '(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)' + + '|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'; +const ansi = new RegExp(ansiPattern, 'g'); + const kUTF16SurrogateThreshold = 0x10000; // 2 ** 16 const kEscape = '\x1b'; From f6f298e3cf3ba21c51a5a5c686f3c0bb9e58e0a3 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 11 Dec 2019 19:21:40 +0100 Subject: [PATCH 42/70] repl,readline: refactor common code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This renames some variables for clarity and moves the common substring part into a shared file. One algorithm was more efficient than the other but the functionality itself was identical. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/internal/readline/utils.js | 24 ++++++++++++++++++++++-- lib/readline.js | 28 ++++++++-------------------- lib/repl.js | 24 ++++-------------------- test/parallel/test-readline-csi.js | 10 +++++----- 4 files changed, 39 insertions(+), 47 deletions(-) diff --git a/lib/internal/readline/utils.js b/lib/internal/readline/utils.js index 084976f440dfeb..ee3a477744d10e 100644 --- a/lib/internal/readline/utils.js +++ b/lib/internal/readline/utils.js @@ -31,8 +31,8 @@ function CSI(strings, ...args) { } CSI.kEscape = kEscape; -CSI.kClearToBeginning = CSI`1K`; -CSI.kClearToEnd = CSI`0K`; +CSI.kClearToLineBeginning = CSI`1K`; +CSI.kClearToLineEnd = CSI`0K`; CSI.kClearLine = CSI`2K`; CSI.kClearScreenDown = CSI`0J`; @@ -445,7 +445,27 @@ function* emitKeys(stream) { } } +// This runs in O(n log n). +function commonPrefix(strings) { + if (!strings || strings.length === 0) { + return ''; + } + if (strings.length === 1) { + return strings[0]; + } + const sorted = strings.slice().sort(); + const min = sorted[0]; + const max = sorted[sorted.length - 1]; + for (let i = 0; i < min.length; i++) { + if (min[i] !== max[i]) { + return min.slice(0, i); + } + } + return min; +} + module.exports = { + commonPrefix, emitKeys, getStringWidth, isFullWidthCodePoint, diff --git a/lib/readline.js b/lib/readline.js index ea53cd1bbf80c8..9a306c654b50a5 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -48,6 +48,7 @@ const { validateString } = require('internal/validators'); const { inspect } = require('internal/util/inspect'); const EventEmitter = require('events'); const { + commonPrefix, CSI, emitKeys, getStringWidth, @@ -59,8 +60,8 @@ const { const { clearTimeout, setTimeout } = require('timers'); const { kEscape, - kClearToBeginning, - kClearToEnd, + kClearToLineBeginning, + kClearToLineEnd, kClearLine, kClearScreenDown } = CSI; @@ -567,23 +568,6 @@ function handleGroup(self, group, width, maxColumns) { self._writeToOutput('\r\n'); } -function commonPrefix(strings) { - if (!strings || strings.length === 0) { - return ''; - } - if (strings.length === 1) return strings[0]; - const sorted = strings.slice().sort(); - const min = sorted[0]; - const max = sorted[sorted.length - 1]; - for (let i = 0, len = min.length; i < len; i++) { - if (min[i] !== max[i]) { - return min.slice(0, i); - } - } - return min; -} - - Interface.prototype._wordLeft = function() { if (this.cursor > 0) { // Reverse the string and match a word near beginning @@ -1268,7 +1252,11 @@ function clearLine(stream, dir, callback) { return true; } - const type = dir < 0 ? kClearToBeginning : dir > 0 ? kClearToEnd : kClearLine; + const type = dir < 0 ? + kClearToLineBeginning : + dir > 0 ? + kClearToLineEnd : + kClearLine; return stream.write(type, callback); } diff --git a/lib/repl.js b/lib/repl.js index 1e7ab29bac03ab..221b5f1f612d92 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -77,6 +77,9 @@ const vm = require('vm'); const path = require('path'); const fs = require('fs'); const { Interface } = require('readline'); +const { + commonPrefix +} = require('internal/readline/utils'); const { Console } = require('console'); const CJSModule = require('internal/modules/cjs/loader').Module; const domain = require('domain'); @@ -1387,25 +1390,6 @@ function complete(line, callback) { } } -function longestCommonPrefix(arr = []) { - const cnt = arr.length; - if (cnt === 0) return ''; - if (cnt === 1) return arr[0]; - - const first = arr[0]; - // complexity: O(m * n) - for (let m = 0; m < first.length; m++) { - const c = first[m]; - for (let n = 1; n < cnt; n++) { - const entry = arr[n]; - if (m >= entry.length || c !== entry[m]) { - return first.substring(0, m); - } - } - } - return first; -} - REPLServer.prototype.completeOnEditorMode = (callback) => (err, results) => { if (err) return callback(err); @@ -1418,7 +1402,7 @@ REPLServer.prototype.completeOnEditorMode = (callback) => (err, results) => { const trimCompleteOnPrefix = (v) => v.substring(prefixLength); const data = completions.filter(isNotEmpty).map(trimCompleteOnPrefix); - callback(null, [[`${completeOn}${longestCommonPrefix(data)}`], completeOn]); + callback(null, [[`${completeOn}${commonPrefix(data)}`], completeOn]); }; REPLServer.prototype.defineCommand = function(keyword, cmd) { diff --git a/test/parallel/test-readline-csi.js b/test/parallel/test-readline-csi.js index 27bfd2bce5173b..53b07d7bd939fd 100644 --- a/test/parallel/test-readline-csi.js +++ b/test/parallel/test-readline-csi.js @@ -9,8 +9,8 @@ const { CSI } = require('internal/readline/utils'); { assert(CSI); - assert.strictEqual(CSI.kClearToBeginning, '\x1b[1K'); - assert.strictEqual(CSI.kClearToEnd, '\x1b[0K'); + assert.strictEqual(CSI.kClearToLineBeginning, '\x1b[1K'); + assert.strictEqual(CSI.kClearToLineEnd, '\x1b[0K'); assert.strictEqual(CSI.kClearLine, '\x1b[2K'); assert.strictEqual(CSI.kClearScreenDown, '\x1b[0J'); assert.strictEqual(CSI`1${2}3`, '\x1b[123'); @@ -45,11 +45,11 @@ assert.strictEqual(readline.clearScreenDown(undefined, common.mustCall()), writable.data = ''; assert.strictEqual(readline.clearLine(writable, -1), true); -assert.deepStrictEqual(writable.data, CSI.kClearToBeginning); +assert.deepStrictEqual(writable.data, CSI.kClearToLineBeginning); writable.data = ''; assert.strictEqual(readline.clearLine(writable, 1), true); -assert.deepStrictEqual(writable.data, CSI.kClearToEnd); +assert.deepStrictEqual(writable.data, CSI.kClearToLineEnd); writable.data = ''; assert.strictEqual(readline.clearLine(writable, 0), true); @@ -57,7 +57,7 @@ assert.deepStrictEqual(writable.data, CSI.kClearLine); writable.data = ''; assert.strictEqual(readline.clearLine(writable, -1, common.mustCall()), true); -assert.deepStrictEqual(writable.data, CSI.kClearToBeginning); +assert.deepStrictEqual(writable.data, CSI.kClearToLineBeginning); // Verify that clearLine() throws on invalid callback. assert.throws(() => { From 3906e145cae4e69053d2821deac2ab9d27c205f2 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 11 Dec 2019 19:24:39 +0100 Subject: [PATCH 43/70] repl,readline: refactor for simplicity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This just refactors code without changing the behavior. Especially the REPL code is difficult to read and deeply indented. This reduces the indentation to improve that. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/readline.js | 64 ++++++----- lib/repl.js | 296 ++++++++++++++++++++++++------------------------ 2 files changed, 179 insertions(+), 181 deletions(-) diff --git a/lib/readline.js b/lib/readline.js index 9a306c654b50a5..0ba30cc04b1124 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -505,41 +505,43 @@ Interface.prototype._tabComplete = function(lastKeypressWasTab) { return; } - const completions = rv[0]; - const completeOn = rv[1]; // The text that was completed - if (completions && completions.length) { - // Apply/show completions. - if (lastKeypressWasTab) { - self._writeToOutput('\r\n'); - const width = completions.reduce(function completionReducer(a, b) { - return a.length > b.length ? a : b; - }).length + 2; // 2 space padding - let maxColumns = MathFloor(self.columns / width); - if (!maxColumns || maxColumns === Infinity) { - maxColumns = 1; - } - let group = []; - for (let i = 0; i < completions.length; i++) { - const c = completions[i]; - if (c === '') { - handleGroup(self, group, width, maxColumns); - group = []; - } else { - group.push(c); - } - } - handleGroup(self, group, width, maxColumns); - } + // Result and the text that was completed. + const [completions, completeOn] = rv; + + if (!completions || completions.length === 0) { + return; + } - // If there is a common prefix to all matches, then apply that portion. - const f = completions.filter((e) => e); - const prefix = commonPrefix(f); - if (prefix.length > completeOn.length) { - self._insertString(prefix.slice(completeOn.length)); + // Apply/show completions. + if (lastKeypressWasTab) { + self._writeToOutput('\r\n'); + const width = completions.reduce((a, b) => { + return a.length > b.length ? a : b; + }).length + 2; // 2 space padding + let maxColumns = MathFloor(self.columns / width); + if (!maxColumns || maxColumns === Infinity) { + maxColumns = 1; } + let group = []; + for (const c of completions) { + if (c === '') { + handleGroup(self, group, width, maxColumns); + group = []; + } else { + group.push(c); + } + } + handleGroup(self, group, width, maxColumns); + } - self._refreshLine(); + // If there is a common prefix to all matches, then apply that portion. + const f = completions.filter((e) => e); + const prefix = commonPrefix(f); + if (prefix.length > completeOn.length) { + self._insertString(prefix.slice(completeOn.length)); } + + self._refreshLine(); }); }; diff --git a/lib/repl.js b/lib/repl.js index 221b5f1f612d92..4f32c9c28ced3d 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -52,7 +52,6 @@ const { ObjectGetOwnPropertyNames, ObjectGetPrototypeOf, ObjectKeys, - ObjectPrototypeHasOwnProperty, ObjectSetPrototypeOf, Symbol, } = primordials; @@ -1164,7 +1163,7 @@ function complete(line, callback) { completeOn = match[1]; const subdir = match[2] || ''; filter = match[1]; - let dir, files, name, base, ext, abs, subfiles, isDirectory; + let dir, files, subfiles, isDirectory; group = []; let paths = []; @@ -1186,14 +1185,14 @@ function complete(line, callback) { continue; } for (let f = 0; f < files.length; f++) { - name = files[f]; - ext = path.extname(name); - base = name.slice(0, -ext.length); + const name = files[f]; + const ext = path.extname(name); + const base = name.slice(0, -ext.length); if (versionedFileNamesRe.test(base) || name === '.npm') { // Exclude versioned names that 'npm' installs. continue; } - abs = path.resolve(dir, name); + const abs = path.resolve(dir, name); try { isDirectory = fs.statSync(abs).isDirectory(); } catch { @@ -1261,86 +1260,87 @@ function complete(line, callback) { // foo.<|> # completions for 'foo' with filter '' } else if (line.length === 0 || /\w|\.|\$/.test(line[line.length - 1])) { match = simpleExpressionRE.exec(line); - if (line.length === 0 || match) { - let expr; - completeOn = (match ? match[0] : ''); - if (line.length === 0) { - filter = ''; - expr = ''; - } else if (line[line.length - 1] === '.') { - filter = ''; - expr = match[0].slice(0, match[0].length - 1); - } else { - const bits = match[0].split('.'); - filter = bits.pop(); - expr = bits.join('.'); + if (line.length !== 0 && !match) { + completionGroupsLoaded(); + return; + } + let expr; + completeOn = (match ? match[0] : ''); + if (line.length === 0) { + filter = ''; + expr = ''; + } else if (line[line.length - 1] === '.') { + filter = ''; + expr = match[0].slice(0, match[0].length - 1); + } else { + const bits = match[0].split('.'); + filter = bits.pop(); + expr = bits.join('.'); + } + + // Resolve expr and get its completions. + const memberGroups = []; + if (!expr) { + // Get global vars synchronously + completionGroups.push(getGlobalLexicalScopeNames(this[kContextId])); + let contextProto = this.context; + while (contextProto = ObjectGetPrototypeOf(contextProto)) { + completionGroups.push(filteredOwnPropertyNames(contextProto)); } + const contextOwnNames = filteredOwnPropertyNames(this.context); + if (!this.useGlobal) { + // When the context is not `global`, builtins are not own + // properties of it. + contextOwnNames.push(...globalBuiltins); + } + completionGroups.push(contextOwnNames); + if (filter !== '') addCommonWords(completionGroups); + completionGroupsLoaded(); + return; + } - // Resolve expr and get its completions. - const memberGroups = []; - if (!expr) { - // Get global vars synchronously - completionGroups.push(getGlobalLexicalScopeNames(this[kContextId])); - let contextProto = this.context; - while (contextProto = ObjectGetPrototypeOf(contextProto)) { - completionGroups.push(filteredOwnPropertyNames(contextProto)); - } - const contextOwnNames = filteredOwnPropertyNames(this.context); - if (!this.useGlobal) { - // When the context is not `global`, builtins are not own - // properties of it. - contextOwnNames.push(...globalBuiltins); + const evalExpr = `try { ${expr} } catch {}`; + this.eval(evalExpr, this.context, 'repl', (e, obj) => { + if (obj != null) { + if (typeof obj === 'object' || typeof obj === 'function') { + try { + memberGroups.push(filteredOwnPropertyNames(obj)); + } catch { + // Probably a Proxy object without `getOwnPropertyNames` trap. + // We simply ignore it here, as we don't want to break the + // autocompletion. Fixes the bug + // https://github.com/nodejs/node/issues/2119 + } } - completionGroups.push(contextOwnNames); - if (filter !== '') addCommonWords(completionGroups); - completionGroupsLoaded(); - } else { - const evalExpr = `try { ${expr} } catch {}`; - this.eval(evalExpr, this.context, 'repl', (e, obj) => { - if (obj != null) { - if (typeof obj === 'object' || typeof obj === 'function') { - try { - memberGroups.push(filteredOwnPropertyNames(obj)); - } catch { - // Probably a Proxy object without `getOwnPropertyNames` trap. - // We simply ignore it here, as we don't want to break the - // autocompletion. Fixes the bug - // https://github.com/nodejs/node/issues/2119 - } - } - // Works for non-objects - try { - let p; - if (typeof obj === 'object' || typeof obj === 'function') { - p = ObjectGetPrototypeOf(obj); - } else { - p = obj.constructor ? obj.constructor.prototype : null; - } - // Circular refs possible? Let's guard against that. - let sentinel = 5; - while (p !== null && sentinel-- !== 0) { - memberGroups.push(filteredOwnPropertyNames(p)); - p = ObjectGetPrototypeOf(p); - } - } catch {} + // Works for non-objects + try { + let p; + if (typeof obj === 'object' || typeof obj === 'function') { + p = ObjectGetPrototypeOf(obj); + } else { + p = obj.constructor ? obj.constructor.prototype : null; } - - if (memberGroups.length) { - for (let i = 0; i < memberGroups.length; i++) { - completionGroups.push( - memberGroups[i].map((member) => `${expr}.${member}`)); - } - if (filter) { - filter = `${expr}.${filter}`; - } + // Circular refs possible? Let's guard against that. + let sentinel = 5; + while (p !== null && sentinel-- !== 0) { + memberGroups.push(filteredOwnPropertyNames(p)); + p = ObjectGetPrototypeOf(p); } + } catch {} + } - completionGroupsLoaded(); - }); + if (memberGroups.length) { + for (let i = 0; i < memberGroups.length; i++) { + completionGroups.push( + memberGroups[i].map((member) => `${expr}.${member}`)); + } + if (filter) { + filter = `${expr}.${filter}`; + } } - } else { + completionGroupsLoaded(); - } + }); } else { completionGroupsLoaded(); } @@ -1361,32 +1361,32 @@ function complete(line, callback) { completionGroups = newCompletionGroups; } - let completions; - - if (completionGroups.length) { - const uniq = {}; // Unique completions across all groups - completions = []; - // Completion group 0 is the "closest" - // (least far up the inheritance chain) - // so we put its completions last: to be closest in the REPL. - for (let i = 0; i < completionGroups.length; i++) { - group = completionGroups[i]; - group.sort(); - for (let j = group.length - 1; j >= 0; j--) { - const c = group[j]; - if (!ObjectPrototypeHasOwnProperty(uniq, c)) { - completions.unshift(c); - uniq[c] = true; - } + const completions = []; + // Unique completions across all groups. + const uniqueSet = new Set(['']); + // Completion group 0 is the "closest" (least far up the inheritance + // chain) so we put its completions last: to be closest in the REPL. + for (const group of completionGroups) { + group.sort((a, b) => (b > a ? 1 : -1)); + const setSize = uniqueSet.size; + for (const entry of group) { + if (!uniqueSet.has(entry)) { + completions.unshift(entry); + uniqueSet.add(entry); } - completions.unshift(''); // Separator btwn groups } - while (completions.length && completions[0] === '') { - completions.shift(); + // Add a separator between groups. + if (uniqueSet.size !== setSize) { + completions.unshift(''); } } - callback(null, [completions || [], completeOn]); + // Remove obsolete group entry, if present. + if (completions[0] === '') { + completions.shift(); + } + + callback(null, [completions, completeOn]); } } @@ -1419,6 +1419,9 @@ REPLServer.prototype.memory = deprecate( 'REPLServer.memory() is deprecated', 'DEP0082'); +// TODO(BridgeAR): This should be replaced with acorn to build an AST. The +// language became more complex and using a simple approach like this is not +// sufficient anymore. function _memory(cmd) { const self = this; self.lines = self.lines || []; @@ -1426,7 +1429,6 @@ function _memory(cmd) { // Save the line so I can do magic later if (cmd) { - // TODO should I tab the level? const len = self.lines.level.length ? self.lines.level.length - 1 : 0; self.lines.push(' '.repeat(len) + cmd); } else { @@ -1434,61 +1436,55 @@ function _memory(cmd) { self.lines.push(''); } + if (!cmd) { + self.lines.level = []; + return; + } + // I need to know "depth." // Because I can not tell the difference between a } that // closes an object literal and a } that closes a function - if (cmd) { - // Going down is { and ( e.g. function() { - // going up is } and ) - let dw = cmd.match(/[{(]/g); - let up = cmd.match(/[})]/g); - up = up ? up.length : 0; - dw = dw ? dw.length : 0; - let depth = dw - up; - - if (depth) { - (function workIt() { - if (depth > 0) { - // Going... down. - // Push the line#, depth count, and if the line is a function. - // Since JS only has functional scope I only need to remove - // "function() {" lines, clearly this will not work for - // "function() - // {" but nothing should break, only tab completion for local - // scope will not work for this function. - self.lines.level.push({ - line: self.lines.length - 1, - depth: depth, - isFunction: /\bfunction\b/.test(cmd) - }); - } else if (depth < 0) { - // Going... up. - const curr = self.lines.level.pop(); - if (curr) { - const tmp = curr.depth + depth; - if (tmp < 0) { - // More to go, recurse - depth += curr.depth; - workIt(); - } else if (tmp > 0) { - // Remove and push back - curr.depth += depth; - self.lines.level.push(curr); - } + + // Going down is { and ( e.g. function() { + // going up is } and ) + let dw = cmd.match(/[{(]/g); + let up = cmd.match(/[})]/g); + up = up ? up.length : 0; + dw = dw ? dw.length : 0; + let depth = dw - up; + + if (depth) { + (function workIt() { + if (depth > 0) { + // Going... down. + // Push the line#, depth count, and if the line is a function. + // Since JS only has functional scope I only need to remove + // "function() {" lines, clearly this will not work for + // "function() + // {" but nothing should break, only tab completion for local + // scope will not work for this function. + self.lines.level.push({ + line: self.lines.length - 1, + depth: depth, + isFunction: /\bfunction\b/.test(cmd) + }); + } else if (depth < 0) { + // Going... up. + const curr = self.lines.level.pop(); + if (curr) { + const tmp = curr.depth + depth; + if (tmp < 0) { + // More to go, recurse + depth += curr.depth; + workIt(); + } else if (tmp > 0) { + // Remove and push back + curr.depth += depth; + self.lines.level.push(curr); } } - }()); - } - - // It is possible to determine a syntax error at this point. - // if the REPL still has a bufferedCommand and - // self.lines.level.length === 0 - // TODO? keep a log of level so that any syntax breaking lines can - // be cleared on .break and in the case of a syntax error? - // TODO? if a log was kept, then I could clear the bufferedCommand and - // eval these lines and throw the syntax error - } else { - self.lines.level = []; + } + }()); } } From 1a8f828c171236476cad599fe7eeae27692113f9 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 11 Dec 2019 19:26:47 +0100 Subject: [PATCH 44/70] repl: improve completion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This improves the completion output by removing the nested special handling. It never fully worked as expected and required a lot of hacks to even keep it working halfway reliable. Our tests did not cover syntax errors though and those can not be handled by this implementation. Those break the layout and confuse the REPL. Besides that the completion now also works in case the current line has leading whitespace. Also improve the error output in case the completion fails. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/readline.js | 2 +- lib/repl.js | 70 +++---------------- .../repl-tab-completion-nested-repls.js | 2 +- test/parallel/test-repl-save-load.js | 5 +- .../test-repl-tab-complete-nested-repls.js | 2 + test/parallel/test-repl-tab-complete.js | 29 +++----- 6 files changed, 27 insertions(+), 83 deletions(-) diff --git a/lib/readline.js b/lib/readline.js index 0ba30cc04b1124..d471d512f485d5 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -501,7 +501,7 @@ Interface.prototype._tabComplete = function(lastKeypressWasTab) { self.resume(); if (err) { - self._writeToOutput(`tab completion error ${inspect(err)}`); + self._writeToOutput(`Tab completion error: ${inspect(err)}`); return; } diff --git a/lib/repl.js b/lib/repl.js index 4f32c9c28ced3d..cd8240dd743919 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -71,7 +71,6 @@ const { deprecate } = require('internal/util'); const { inspect } = require('internal/util/inspect'); -const Stream = require('stream'); const vm = require('vm'); const path = require('path'); const fs = require('fs'); @@ -115,7 +114,6 @@ const { } = internalBinding('contextify'); const history = require('internal/repl/history'); -const { setImmediate } = require('timers'); // Lazy-loaded. let processTopLevelAwait; @@ -124,7 +122,6 @@ const globalBuiltins = new Set(vm.runInNewContext('Object.getOwnPropertyNames(globalThis)')); const parentModule = module; -const replMap = new WeakMap(); const domainSet = new WeakSet(); const kBufferedCommandSymbol = Symbol('bufferedCommand'); @@ -550,14 +547,13 @@ function REPLServer(prompt, self.lastError = e; } - const top = replMap.get(self); if (options[kStandaloneREPL] && process.listenerCount('uncaughtException') !== 0) { process.nextTick(() => { process.emit('uncaughtException', e); - top.clearBufferedCommand(); - top.lines.level = []; - top.displayPrompt(); + self.clearBufferedCommand(); + self.lines.level = []; + self.displayPrompt(); }); } else { if (errStack === '') { @@ -583,10 +579,10 @@ function REPLServer(prompt, } // Normalize line endings. errStack += errStack.endsWith('\n') ? '' : '\n'; - top.outputStream.write(errStack); - top.clearBufferedCommand(); - top.lines.level = []; - top.displayPrompt(); + self.outputStream.write(errStack); + self.clearBufferedCommand(); + self.lines.level = []; + self.displayPrompt(); } }); @@ -897,7 +893,6 @@ exports.start = function(prompt, ignoreUndefined, replMode); if (!exports.repl) exports.repl = repl; - replMap.set(repl, repl); return repl; }; @@ -1034,23 +1029,6 @@ REPLServer.prototype.turnOffEditorMode = deprecate( 'REPLServer.turnOffEditorMode() is deprecated', 'DEP0078'); -// A stream to push an array into a REPL -// used in REPLServer.complete -function ArrayStream() { - Stream.call(this); - - this.run = function(data) { - for (let n = 0; n < data.length; n++) - this.emit('data', `${data[n]}\n`); - }; -} -ObjectSetPrototypeOf(ArrayStream.prototype, Stream.prototype); -ObjectSetPrototypeOf(ArrayStream, Stream); -ArrayStream.prototype.readable = true; -ArrayStream.prototype.writable = true; -ArrayStream.prototype.resume = function() {}; -ArrayStream.prototype.write = function() {}; - const requireRE = /\brequire\s*\(['"](([\w@./-]+\/)?(?:[\w@./-]*))/; const fsAutoCompleteRE = /fs(?:\.promises)?\.\s*[a-z][a-zA-Z]+\(\s*["'](.*)/; const simpleExpressionRE = @@ -1110,38 +1088,13 @@ REPLServer.prototype.complete = function() { // Warning: This eval's code like "foo.bar.baz", so it will run property // getter code. function complete(line, callback) { - // There may be local variables to evaluate, try a nested REPL - if (this[kBufferedCommandSymbol] !== undefined && - this[kBufferedCommandSymbol].length) { - // Get a new array of inputted lines - const tmp = this.lines.slice(); - // Kill off all function declarations to push all local variables into - // global scope - for (let n = 0; n < this.lines.level.length; n++) { - const kill = this.lines.level[n]; - if (kill.isFunction) - tmp[kill.line] = ''; - } - const flat = new ArrayStream(); // Make a new "input" stream. - const magic = new REPLServer('', flat); // Make a nested REPL. - replMap.set(magic, replMap.get(this)); - flat.run(tmp); // `eval` the flattened code. - // All this is only profitable if the nested REPL does not have a - // bufferedCommand. - if (!magic[kBufferedCommandSymbol]) { - magic._domain.on('error', (err) => { - setImmediate(() => { - throw err; - }); - }); - return magic.complete(line, callback); - } - } - // List of completion lists, one for each inheritance "level" let completionGroups = []; let completeOn, group; + // Ignore right whitespace. It could change the outcome. + line = line.trimLeft(); + // REPL commands (e.g. ".break"). let filter; let match = line.match(/^\s*\.(\w*)$/); @@ -1465,8 +1418,7 @@ function _memory(cmd) { // scope will not work for this function. self.lines.level.push({ line: self.lines.length - 1, - depth: depth, - isFunction: /\bfunction\b/.test(cmd) + depth: depth }); } else if (depth < 0) { // Going... up. diff --git a/test/fixtures/repl-tab-completion-nested-repls.js b/test/fixtures/repl-tab-completion-nested-repls.js index ceff6e79453705..1d2b154f2b3341 100644 --- a/test/fixtures/repl-tab-completion-nested-repls.js +++ b/test/fixtures/repl-tab-completion-nested-repls.js @@ -31,7 +31,7 @@ const repl = require('repl'); const putIn = new ArrayStream(); const testMe = repl.start('', putIn); -// Some errors are passed to the domain, but do not callback +// Some errors are passed to the domain, but do not callback. testMe._domain.on('error', function(err) { throw err; }); diff --git a/test/parallel/test-repl-save-load.js b/test/parallel/test-repl-save-load.js index ef9ff8f6498877..f6ecc8d4ab67e9 100644 --- a/test/parallel/test-repl-save-load.js +++ b/test/parallel/test-repl-save-load.js @@ -44,8 +44,9 @@ testMe._domain.on('error', function(reason) { }); const testFile = [ - 'let top = function() {', - 'let inner = {one:1};' + 'let inner = (function() {', + ' return {one:1};', + '})()' ]; const saveFileName = join(tmpdir.path, 'test.save.js'); diff --git a/test/parallel/test-repl-tab-complete-nested-repls.js b/test/parallel/test-repl-tab-complete-nested-repls.js index 36547e8d9fb5be..3cac02f20562bc 100644 --- a/test/parallel/test-repl-tab-complete-nested-repls.js +++ b/test/parallel/test-repl-tab-complete-nested-repls.js @@ -19,3 +19,5 @@ const result = spawnSync(process.execPath, [testFile]); // test here is to make sure that the error information bubbles up to the // calling process. assert.ok(result.status, 'testFile swallowed its error'); +const err = result.stderr.toString(); +assert.ok(err.includes('fhqwhgads'), err); diff --git a/test/parallel/test-repl-tab-complete.js b/test/parallel/test-repl-tab-complete.js index 1c66f9a3238230..6cf689c4b11074 100644 --- a/test/parallel/test-repl-tab-complete.js +++ b/test/parallel/test-repl-tab-complete.js @@ -54,12 +54,9 @@ const putIn = new ArrayStream(); const testMe = repl.start('', putIn); // Some errors are passed to the domain, but do not callback -testMe._domain.on('error', function(err) { - assert.ifError(err); -}); +testMe._domain.on('error', assert.ifError); // Tab Complete will not break in an object literal -putIn.run(['.clear']); putIn.run([ 'var inner = {', 'one:1' @@ -93,9 +90,7 @@ putIn.run([ 'var top = function() {', 'var inner = {one:1};' ]); -testMe.complete('inner.o', common.mustCall(function(error, data) { - assert.deepStrictEqual(data, works); -})); +testMe.complete('inner.o', getNoResultsFunction()); // When you close the function scope tab complete will not return the // locally scoped variable @@ -111,9 +106,7 @@ putIn.run([ ' one:1', '};' ]); -testMe.complete('inner.o', common.mustCall(function(error, data) { - assert.deepStrictEqual(data, works); -})); +testMe.complete('inner.o', getNoResultsFunction()); putIn.run(['.clear']); @@ -125,9 +118,7 @@ putIn.run([ ' one:1', '};' ]); -testMe.complete('inner.o', common.mustCall(function(error, data) { - assert.deepStrictEqual(data, works); -})); +testMe.complete('inner.o', getNoResultsFunction()); putIn.run(['.clear']); @@ -140,9 +131,7 @@ putIn.run([ ' one:1', '};' ]); -testMe.complete('inner.o', common.mustCall(function(error, data) { - assert.deepStrictEqual(data, works); -})); +testMe.complete('inner.o', getNoResultsFunction()); putIn.run(['.clear']); @@ -155,9 +144,7 @@ putIn.run([ ' one:1', '};' ]); -testMe.complete('inner.o', common.mustCall(function(error, data) { - assert.deepStrictEqual(data, works); -})); +testMe.complete('inner.o', getNoResultsFunction()); putIn.run(['.clear']); @@ -204,7 +191,9 @@ const spaceTimeout = setTimeout(function() { }, 1000); testMe.complete(' ', common.mustCall(function(error, data) { - assert.deepStrictEqual(data, [[], undefined]); + assert.ifError(error); + assert.strictEqual(data[1], ''); + assert.ok(data[0].includes('globalThis')); clearTimeout(spaceTimeout); })); From 6a3e79f9536e192bef2aaafcbf5c73542173c405 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 11 Dec 2019 19:33:53 +0100 Subject: [PATCH 45/70] repl: add completion preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This improves the already existing preview functionality by also checking for the input completion. In case there's only a single completion, it will automatically be visible to the user in grey. If colors are deactivated, it will be visible as comment. This also changes some keys by automatically accepting the preview by moving the cursor behind the current input end. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- doc/api/repl.md | 5 +- lib/internal/repl/utils.js | 170 ++++++++++++++++++--- lib/readline.js | 8 +- lib/repl.js | 8 +- test/parallel/test-repl-editor.js | 9 +- test/parallel/test-repl-multiline.js | 13 +- test/parallel/test-repl-preview.js | 8 +- test/parallel/test-repl-top-level-await.js | 122 +++++++++------ 8 files changed, 262 insertions(+), 81 deletions(-) diff --git a/doc/api/repl.md b/doc/api/repl.md index a8e89e4ef51fea..4703022d3b5ea4 100644 --- a/doc/api/repl.md +++ b/doc/api/repl.md @@ -565,8 +565,9 @@ changes: * `breakEvalOnSigint` {boolean} Stop evaluating the current piece of code when `SIGINT` is received, such as when `Ctrl+C` is pressed. This cannot be used together with a custom `eval` function. **Default:** `false`. - * `preview` {boolean} Defines if the repl prints output previews or not. - **Default:** `true`. Always `false` in case `terminal` is falsy. + * `preview` {boolean} Defines if the repl prints autocomplete and output + previews or not. **Default:** `true`. If `terminal` is falsy, then there are + no previews and the value of `preview` has no effect. * Returns: {repl.REPLServer} The `repl.start()` method creates and starts a [`repl.REPLServer`][] instance. diff --git a/lib/internal/repl/utils.js b/lib/internal/repl/utils.js index c4280c1d1fe9e2..bdc402ee08715d 100644 --- a/lib/internal/repl/utils.js +++ b/lib/internal/repl/utils.js @@ -28,6 +28,10 @@ const { moveCursor, } = require('readline'); +const { + commonPrefix +} = require('internal/readline/utils'); + const { inspect } = require('util'); const debug = require('internal/util/debuglog').debuglog('repl'); @@ -119,24 +123,103 @@ function isRecoverableError(e, code) { function setupPreview(repl, contextSymbol, bufferSymbol, active) { // Simple terminals can't handle previews. if (process.env.TERM === 'dumb' || !active) { - return { showInputPreview() {}, clearPreview() {} }; + return { showPreview() {}, clearPreview() {} }; } - let preview = null; - let lastPreview = ''; + let inputPreview = null; + let lastInputPreview = ''; + + let previewCompletionCounter = 0; + let completionPreview = null; const clearPreview = () => { - if (preview !== null) { + if (inputPreview !== null) { moveCursor(repl.output, 0, 1); clearLine(repl.output); moveCursor(repl.output, 0, -1); - lastPreview = preview; - preview = null; + lastInputPreview = inputPreview; + inputPreview = null; + } + if (completionPreview !== null) { + // Prevent cursor moves if not necessary! + const move = repl.line.length !== repl.cursor; + if (move) { + cursorTo(repl.output, repl._prompt.length + repl.line.length); + } + clearLine(repl.output, 1); + if (move) { + cursorTo(repl.output, repl._prompt.length + repl.cursor); + } + completionPreview = null; } }; + function showCompletionPreview(line, insertPreview) { + previewCompletionCounter++; + + const count = previewCompletionCounter; + + repl.completer(line, (error, data) => { + // Tab completion might be async and the result might already be outdated. + if (count !== previewCompletionCounter) { + return; + } + + if (error) { + debug('Error while generating completion preview', error); + return; + } + + // Result and the text that was completed. + const [rawCompletions, completeOn] = data; + + if (!rawCompletions || rawCompletions.length === 0) { + return; + } + + // If there is a common prefix to all matches, then apply that portion. + const completions = rawCompletions.filter((e) => e); + const prefix = commonPrefix(completions); + + // No common prefix found. + if (prefix.length <= completeOn.length) { + return; + } + + const suffix = prefix.slice(completeOn.length); + + const totalLength = repl.line.length + + repl._prompt.length + + suffix.length + + (repl.useColors ? 0 : 4); + + // TODO(BridgeAR): Fix me. This should not be necessary. See similar + // comment in `showPreview()`. + if (totalLength > repl.columns) { + return; + } + + if (insertPreview) { + repl._insertString(suffix); + return; + } + + completionPreview = suffix; + + const result = repl.useColors ? + `\u001b[90m${suffix}\u001b[39m` : + ` // ${suffix}`; + + if (repl.line.length !== repl.cursor) { + cursorTo(repl.output, repl._prompt.length + repl.line.length); + } + repl.output.write(result); + cursorTo(repl.output, repl._prompt.length + repl.cursor); + }); + } + // This returns a code preview for arbitrary input code. - function getPreviewInput(input, callback) { + function getInputPreview(input, callback) { // For similar reasons as `defaultEval`, wrap expressions starting with a // curly brace with parenthesis. if (input.startsWith('{') && !input.endsWith(';')) { @@ -184,23 +267,41 @@ function setupPreview(repl, contextSymbol, bufferSymbol, active) { }, () => callback(new ERR_INSPECTOR_NOT_AVAILABLE())); } - const showInputPreview = () => { + const showPreview = () => { // Prevent duplicated previews after a refresh. - if (preview !== null) { + if (inputPreview !== null) { return; } const line = repl.line.trim(); - // Do not preview if the command is buffered or if the line is empty. - if (repl[bufferSymbol] || line === '') { + // Do not preview in case the line only contains whitespace. + if (line === '') { + return; + } + + // Add the autocompletion preview. + // TODO(BridgeAR): Trigger the input preview after the completion preview. + // That way it's possible to trigger the input prefix including the + // potential completion suffix. To do so, we also have to change the + // behavior of `enter` and `escape`: + // Enter should automatically add the suffix to the current line as long as + // escape was not pressed. We might even remove the preview in case any + // cursor movement is triggered. + if (typeof repl.completer === 'function') { + const insertPreview = false; + showCompletionPreview(repl.line, insertPreview); + } + + // Do not preview if the command is buffered. + if (repl[bufferSymbol]) { return; } - getPreviewInput(line, (error, inspected) => { + getInputPreview(line, (error, inspected) => { // Ignore the output if the value is identical to the current line and the // former preview is not identical to this preview. - if ((line === inspected && lastPreview !== inspected) || + if ((line === inspected && lastInputPreview !== inspected) || inspected === null) { return; } @@ -215,7 +316,7 @@ function setupPreview(repl, contextSymbol, bufferSymbol, active) { return; } - preview = inspected; + inputPreview = inspected; // Limit the output to maximum 250 characters. Otherwise it becomes a) // difficult to read and b) non terminal REPLs would visualize the whole @@ -235,21 +336,50 @@ function setupPreview(repl, contextSymbol, bufferSymbol, active) { repl.output.write(`\n${result}`); moveCursor(repl.output, 0, -1); - cursorTo(repl.output, repl.cursor + repl._prompt.length); + cursorTo(repl.output, repl._prompt.length + repl.cursor); }); }; + // -------------------------------------------------------------------------// + // Replace multiple interface functions. This is required to fully support // + // previews without changing readlines behavior. // + // -------------------------------------------------------------------------// + // Refresh prints the whole screen again and the preview will be removed // during that procedure. Print the preview again. This also makes sure // the preview is always correct after resizing the terminal window. - const tmpRefresh = repl._refreshLine.bind(repl); + const originalRefresh = repl._refreshLine.bind(repl); repl._refreshLine = () => { - preview = null; - tmpRefresh(); - showInputPreview(); + inputPreview = null; + originalRefresh(); + showPreview(); + }; + + let insertCompletionPreview = true; + // Insert the longest common suffix of the current input in case the user + // moves to the right while already being at the current input end. + const originalMoveCursor = repl._moveCursor.bind(repl); + repl._moveCursor = (dx) => { + const currentCursor = repl.cursor; + originalMoveCursor(dx); + if (currentCursor + dx > repl.line.length && + typeof repl.completer === 'function' && + insertCompletionPreview) { + const insertPreview = true; + showCompletionPreview(repl.line, insertPreview); + } + }; + + // This is the only function that interferes with the completion insertion. + // Monkey patch it to prevent inserting the completion when it shouldn't be. + const originalClearLine = repl.clearLine.bind(repl); + repl.clearLine = () => { + insertCompletionPreview = false; + originalClearLine(); + insertCompletionPreview = true; }; - return { showInputPreview, clearPreview }; + return { showPreview, clearPreview }; } module.exports = { diff --git a/lib/readline.js b/lib/readline.js index d471d512f485d5..daf30969408222 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -601,8 +601,11 @@ function charLengthLeft(str, i) { } function charLengthAt(str, i) { - if (str.length <= i) - return 0; + if (str.length <= i) { + // Pretend to move to the right. This is necessary to autocomplete while + // moving to the right. + return 1; + } return str.codePointAt(i) >= kUTF16SurrogateThreshold ? 2 : 1; } @@ -956,6 +959,7 @@ Interface.prototype._ttyWrite = function(s, key) { } break; + // TODO(BridgeAR): This seems broken? case 'w': // Delete backwards to a word boundary case 'backspace': this._deleteWordLeft(); diff --git a/lib/repl.js b/lib/repl.js index cd8240dd743919..24948477fea65e 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -810,7 +810,7 @@ function REPLServer(prompt, const { clearPreview, - showInputPreview + showPreview } = setupPreview( this, kContextId, @@ -821,7 +821,6 @@ function REPLServer(prompt, // Wrap readline tty to enable editor mode and pausing. const ttyWrite = self._ttyWrite.bind(self); self._ttyWrite = (d, key) => { - clearPreview(); key = key || {}; if (paused && !(self.breakEvalOnSigint && key.ctrl && key.name === 'c')) { pausedBuffer.push(['key', [d, key]]); @@ -833,14 +832,17 @@ function REPLServer(prompt, self.cursor === 0 && self.line.length === 0) { self.clearLine(); } + clearPreview(); ttyWrite(d, key); - showInputPreview(); + showPreview(); return; } // Editor mode if (key.ctrl && !key.shift) { switch (key.name) { + // TODO(BridgeAR): There should not be a special mode necessary for full + // multiline support. case 'd': // End editor mode _turnOffEditorMode(self); sawCtrlD = true; diff --git a/test/parallel/test-repl-editor.js b/test/parallel/test-repl-editor.js index 969f6172b3fb70..b340bd66313971 100644 --- a/test/parallel/test-repl-editor.js +++ b/test/parallel/test-repl-editor.js @@ -5,10 +5,11 @@ const assert = require('assert'); const repl = require('repl'); const ArrayStream = require('../common/arraystream'); -// \u001b[1G - Moves the cursor to 1st column +// \u001b[nG - Moves the cursor to n st column // \u001b[0J - Clear screen -// \u001b[3G - Moves the cursor to 3rd column +// \u001b[0K - Clear to line end const terminalCode = '\u001b[1G\u001b[0J> \u001b[3G'; +const previewCode = (str, n) => ` // ${str}\x1B[${n}G\x1B[0K`; const terminalCodeRegex = new RegExp(terminalCode.replace(/\[/g, '\\['), 'g'); function run({ input, output, event, checkTerminalCodes = true }) { @@ -17,7 +18,9 @@ function run({ input, output, event, checkTerminalCodes = true }) { stream.write = (msg) => found += msg.replace('\r', ''); - let expected = `${terminalCode}.editor\n` + + let expected = `${terminalCode}.ed${previewCode('itor', 6)}i` + + `${previewCode('tor', 7)}t${previewCode('or', 8)}o` + + `${previewCode('r', 9)}r\n` + '// Entering editor mode (^D to finish, ^C to cancel)\n' + `${input}${output}\n${terminalCode}`; diff --git a/test/parallel/test-repl-multiline.js b/test/parallel/test-repl-multiline.js index 6498923b62ecfc..f99b91c84b0a85 100644 --- a/test/parallel/test-repl-multiline.js +++ b/test/parallel/test-repl-multiline.js @@ -23,14 +23,23 @@ function run({ useColors }) { r.on('exit', common.mustCall(() => { const actual = output.split('\n'); + const firstLine = useColors ? + '\x1B[1G\x1B[0J \x1B[1Gco\x1B[90mn\x1B[39m\x1B[3G\x1B[0Knst ' + + 'fo\x1B[90mr\x1B[39m\x1B[9G\x1B[0Ko = {' : + '\x1B[1G\x1B[0J \x1B[1Gco // n\x1B[3G\x1B[0Knst ' + + 'fo // r\x1B[9G\x1B[0Ko = {'; + // Validate the output, which contains terminal escape codes. assert.strictEqual(actual.length, 6 + process.features.inspector); - assert.ok(actual[0].endsWith(input[0])); + assert.strictEqual(actual[0], firstLine); assert.ok(actual[1].includes('... ')); assert.ok(actual[1].endsWith(input[1])); assert.ok(actual[2].includes('undefined')); - assert.ok(actual[3].endsWith(input[2])); if (process.features.inspector) { + assert.ok( + actual[3].endsWith(input[2]), + `"${actual[3]}" should end with "${input[2]}"` + ); assert.ok(actual[4].includes(actual[5])); assert.strictEqual(actual[4].includes('//'), !useColors); } diff --git a/test/parallel/test-repl-preview.js b/test/parallel/test-repl-preview.js index 92e73dd245056f..65b56904cb03b9 100644 --- a/test/parallel/test-repl-preview.js +++ b/test/parallel/test-repl-preview.js @@ -72,13 +72,13 @@ async function tests(options) { '\x1B[36m[Function: foo]\x1B[39m', '\x1B[1G\x1B[0Jrepl > \x1B[8G'], ['koo', [2, 4], '[Function: koo]', - 'koo', + 'k\x1B[90moo\x1B[39m\x1B[9G\x1B[0Ko\x1B[90mo\x1B[39m\x1B[10G\x1B[0Ko', '\x1B[90m[Function: koo]\x1B[39m\x1B[1A\x1B[11G\x1B[1B\x1B[2K\x1B[1A\r', '\x1B[36m[Function: koo]\x1B[39m', '\x1B[1G\x1B[0Jrepl > \x1B[8G'], ['a', [1, 2], undefined], ['{ a: true }', [2, 3], '{ a: \x1B[33mtrue\x1B[39m }', - '{ a: true }\r', + '{ a: tru\x1B[90me\x1B[39m\x1B[16G\x1B[0Ke }\r', '{ a: \x1B[33mtrue\x1B[39m }', '\x1B[1G\x1B[0Jrepl > \x1B[8G'], ['1n + 2n', [2, 5], '\x1B[33m3n\x1B[39m', @@ -88,12 +88,12 @@ async function tests(options) { '\x1B[33m3n\x1B[39m', '\x1B[1G\x1B[0Jrepl > \x1B[8G'], ['{ a: true };', [2, 4], '\x1B[33mtrue\x1B[39m', - '{ a: true };', + '{ a: tru\x1B[90me\x1B[39m\x1B[16G\x1B[0Ke };', '\x1B[90mtrue\x1B[39m\x1B[1A\x1B[20G\x1B[1B\x1B[2K\x1B[1A\r', '\x1B[33mtrue\x1B[39m', '\x1B[1G\x1B[0Jrepl > \x1B[8G'], [' \t { a: true};', [2, 5], '\x1B[33mtrue\x1B[39m', - ' \t { a: true}', + ' \t { a: tru\x1B[90me\x1B[39m\x1B[19G\x1B[0Ke}', '\x1B[90m{ a: true }\x1B[39m\x1B[1A\x1B[21G\x1B[1B\x1B[2K\x1B[1A;', '\x1B[90mtrue\x1B[39m\x1B[1A\x1B[22G\x1B[1B\x1B[2K\x1B[1A\r', '\x1B[33mtrue\x1B[39m', diff --git a/test/parallel/test-repl-top-level-await.js b/test/parallel/test-repl-top-level-await.js index cecbd3ab4563d0..47fcb8530dee77 100644 --- a/test/parallel/test-repl-top-level-await.js +++ b/test/parallel/test-repl-top-level-await.js @@ -60,7 +60,7 @@ const testMe = repl.start({ prompt: PROMPT, stream: putIn, terminal: true, - useColors: false, + useColors: true, breakEvalOnSigint: true }); @@ -84,69 +84,99 @@ async function ordinaryTests() { 'function koo() { return Promise.resolve(4); }' ]); const testCases = [ - [ 'await Promise.resolve(0)', '0' ], - [ '{ a: await Promise.resolve(1) }', '{ a: 1 }' ], - [ '_', '// { a: 1 }\r', { line: 0 } ], + [ 'await Promise.resolve(0)', + // Auto completion preview with colors stripped. + ['awaitaititt Proroomiseisesee.resolveolvelvevee(0)\r', '0'] + ], + [ '{ a: await Promise.resolve(1) }', + // Auto completion preview with colors stripped. + ['{ a: awaitaititt Proroomiseisesee.resolveolvelvevee(1) }\r', + '{ a: 1 }'] + ], + [ '_', '{ a: 1 }\r', { line: 0 } ], [ 'let { aa, bb } = await Promise.resolve({ aa: 1, bb: 2 }), f = 5;', - 'undefined' ], - [ 'aa', ['// 1\r', '1'] ], - [ 'bb', ['// 2\r', '2'] ], - [ 'f', ['// 5\r', '5'] ], - [ 'let cc = await Promise.resolve(2)', 'undefined' ], - [ 'cc', ['// 2\r', '2'] ], - [ 'let dd;', 'undefined' ], - [ 'dd', 'undefined' ], - [ 'let [ii, { abc: { kk } }] = [0, { abc: { kk: 1 } }];', 'undefined' ], - [ 'ii', ['// 0\r', '0'] ], - [ 'kk', ['// 1\r', '1'] ], - [ 'var ll = await Promise.resolve(2);', 'undefined' ], - [ 'll', ['// 2\r', '2'] ], + [ + 'letett { aa, bb } = awaitaititt Proroomiseisesee.resolveolvelvevee' + + '({ aa: 1, bb: 2 }), f = 5;\r' + ] + ], + [ 'aa', ['1\r', '1'] ], + [ 'bb', ['2\r', '2'] ], + [ 'f', ['5\r', '5'] ], + [ 'let cc = await Promise.resolve(2)', + ['letett cc = awaitaititt Proroomiseisesee.resolveolvelvevee(2)\r'] + ], + [ 'cc', ['2\r', '2'] ], + [ 'let dd;', ['letett dd;\r'] ], + [ 'dd', ['undefined\r'] ], + [ 'let [ii, { abc: { kk } }] = [0, { abc: { kk: 1 } }];', + ['letett [ii, { abc: { kook } }] = [0, { abc: { kook: 1 } }];\r'] ], + [ 'ii', ['0\r', '0'] ], + [ 'kk', ['1\r', '1'] ], + [ 'var ll = await Promise.resolve(2);', + ['var letl = awaitaititt Proroomiseisesee.resolveolvelvevee(2);\r'] + ], + [ 'll', ['2\r', '2'] ], [ 'foo(await koo())', - [ 'f', '// 5oo', '// [Function: foo](await koo())\r', '4' ] ], - [ '_', ['// 4\r', '4'] ], + ['f', '5oo', '[Function: foo](awaitaititt kooo())\r', '4'] ], + [ '_', ['4\r', '4'] ], [ 'const m = foo(await koo());', - [ 'const m = foo(await koo());\r', 'undefined' ] ], - [ 'm', ['// 4\r', '4' ] ], + ['connst module = foo(awaitaititt kooo());\r'] ], + [ 'm', ['4\r', '4' ] ], [ 'const n = foo(await\nkoo());', - [ 'const n = foo(await\r', '... koo());\r', 'undefined' ] ], - [ 'n', ['// 4\r', '4' ] ], + ['connst n = foo(awaitaititt\r', '... kooo());\r', 'undefined'] ], + [ 'n', ['4\r', '4'] ], // eslint-disable-next-line no-template-curly-in-string [ '`status: ${(await Promise.resolve({ status: 200 })).status}`', - "'status: 200'"], + [ + '`stratus: ${(awaitaititt Proroomiseisesee.resolveolvelvevee' + + '({ stratus: 200 })).stratus}`\r', + "'status: 200'" + ] + ], [ 'for (let i = 0; i < 2; ++i) await i', - ['f', '// 5or (let i = 0; i < 2; ++i) await i\r', 'undefined'] ], + ['f', '5or (lett i = 0; i < 2; ++i) awaitaititt i\r', 'undefined'] ], [ 'for (let i = 0; i < 2; ++i) { await i }', - [ 'f', '// 5or (let i = 0; i < 2; ++i) { await i }\r', 'undefined' ] ], - [ 'await 0', ['await 0\r', '0'] ], + ['f', '5or (lett i = 0; i < 2; ++i) { awaitaititt i }\r', 'undefined'] + ], + [ 'await 0', ['awaitaititt 0\r', '0'] ], [ 'await 0; function foo() {}', - ['await 0; function foo() {}\r', 'undefined'] ], + ['awaitaititt 0; functionnctionctiontioniononn foo() {}\r'] + ], [ 'foo', - ['f', '// 5oo', '// [Function: foo]\r', '[Function: foo]'] ], - [ 'class Foo {}; await 1;', ['class Foo {}; await 1;\r', '1'] ], - [ 'Foo', ['// [Function: Foo]\r', '[Function: Foo]'] ], + ['f', '5oo', '[Function: foo]\r', '[Function: foo]'] ], + [ 'class Foo {}; await 1;', ['class Foo {}; awaitaititt 1;\r', '1'] ], + [ 'Foo', ['Fooo', '[Function: Foo]\r', '[Function: Foo]'] ], [ 'if (await true) { function bar() {}; }', - ['if (await true) { function bar() {}; }\r', 'undefined'] ], - [ 'bar', ['// [Function: bar]\r', '[Function: bar]'] ], - [ 'if (await true) { class Bar {}; }', 'undefined' ], + ['if (awaitaititt truee) { functionnctionctiontioniononn bar() {}; }\r'] + ], + [ 'bar', ['barr', '[Function: bar]\r', '[Function: bar]'] ], + [ 'if (await true) { class Bar {}; }', + ['if (awaitaititt truee) { class Bar {}; }\r'] + ], [ 'Bar', 'Uncaught ReferenceError: Bar is not defined' ], - [ 'await 0; function* gen(){}', 'undefined' ], + [ 'await 0; function* gen(){}', + ['awaitaititt 0; functionnctionctiontioniononn* globalen(){}\r'] + ], [ 'for (var i = 0; i < 10; ++i) { await i; }', - ['f', '// 5or (var i = 0; i < 10; ++i) { await i; }\r', 'undefined'] ], - [ 'i', ['// 10\r', '10'] ], + ['f', '5or (var i = 0; i < 10; ++i) { awaitaititt i; }\r', 'undefined'] ], + [ 'i', ['10\r', '10'] ], [ 'for (let j = 0; j < 5; ++j) { await j; }', - ['f', '// 5or (let j = 0; j < 5; ++j) { await j; }\r', 'undefined'] ], + ['f', '5or (lett j = 0; j < 5; ++j) { awaitaititt j; }\r', 'undefined'] ], [ 'j', 'Uncaught ReferenceError: j is not defined', { line: 0 } ], - [ 'gen', ['// [GeneratorFunction: gen]\r', '[GeneratorFunction: gen]'] ], + [ 'gen', + ['genn', '[GeneratorFunction: gen]\r', '[GeneratorFunction: gen]'] + ], [ 'return 42; await 5;', 'Uncaught SyntaxError: Illegal return statement', { line: 3 } ], - [ 'let o = await 1, p', 'undefined' ], - [ 'p', 'undefined' ], - [ 'let q = 1, s = await 2', 'undefined' ], - [ 's', ['// 2\r', '2'] ], + [ 'let o = await 1, p', ['lett os = awaitaititt 1, p\r'] ], + [ 'p', ['undefined\r'] ], + [ 'let q = 1, s = await 2', ['lett que = 1, s = awaitaititt 2\r'] ], + [ 's', ['2\r', '2'] ], [ 'for await (let i of [1,2,3]) console.log(i)', [ 'f', - '// 5or await (let i of [1,2,3]) console.log(i)\r', + '5or awaitaititt (lett i of [1,2,3]) connsolelee.logogg(i)\r', '1', '2', '3', @@ -160,6 +190,8 @@ async function ordinaryTests() { const toBeRun = input.split('\n'); const lines = await runAndWait(toBeRun); if (Array.isArray(expected)) { + if (expected.length === 1) + expected.push('undefined'); if (lines[0] === input) lines.shift(); assert.deepStrictEqual(lines, [...expected, PROMPT]); @@ -184,7 +216,7 @@ async function ctrlCTest() { 'await timeout(100000)', { ctrl: true, name: 'c' } ]), [ - 'await timeout(100000)\r', + 'awaitaititt timeoutmeouteoutoututt(100000)\r', 'Uncaught:', '[Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' + 'Script execution was interrupted by `SIGINT`] {', From 02f3fe4b607258e1fd13f1721318b3780f12feab Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Wed, 11 Dec 2019 19:37:44 +0100 Subject: [PATCH 46/70] repl: fix preview bug in case of long lines MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This addresses an issue that is caused by lines that exceed the current window columns. That would cause the preview to confuse the REPL. This is meant as hot fix. The preview should be able to handle these cases appropriately as well later on. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- lib/internal/repl/utils.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/internal/repl/utils.js b/lib/internal/repl/utils.js index bdc402ee08715d..c54e173bdf3e1c 100644 --- a/lib/internal/repl/utils.js +++ b/lib/internal/repl/utils.js @@ -280,6 +280,16 @@ function setupPreview(repl, contextSymbol, bufferSymbol, active) { return; } + // Do not show previews in case the current line is longer than the column + // width. + // TODO(BridgeAR): Fix me. This should not be necessary. It currently breaks + // the output though. We also have to check for characters that have more + // than a single byte as length. Check Interface.prototype._moveCursor. It + // contains the necessary logic. + if (repl.line.length + repl._prompt.length > repl.columns) { + return; + } + // Add the autocompletion preview. // TODO(BridgeAR): Trigger the input preview after the completion preview. // That way it's possible to trigger the input prefix including the From f30b771fd214d6b6f115c07571b8416bc6ab6944 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Fri, 13 Dec 2019 02:44:32 +0100 Subject: [PATCH 47/70] test: add multiple repl preview tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This improves the coverage for the preview feature signficantly. Quite a few edge cases get testet here to prevent regressions. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso Reviewed-By: Rich Trott --- test/parallel/test-repl-history-navigation.js | 214 +++++++++++++++++- test/parallel/test-repl-preview.js | 4 +- test/root.status | 1 + 3 files changed, 206 insertions(+), 13 deletions(-) diff --git a/test/parallel/test-repl-history-navigation.js b/test/parallel/test-repl-history-navigation.js index 3bd198880fc015..f73fbb9b0fd278 100644 --- a/test/parallel/test-repl-history-navigation.js +++ b/test/parallel/test-repl-history-navigation.js @@ -8,6 +8,7 @@ const REPL = require('internal/repl'); const assert = require('assert'); const fs = require('fs'); const path = require('path'); +const { inspect } = require('util'); const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); @@ -17,6 +18,7 @@ const defaultHistoryPath = path.join(tmpdir.path, '.node_repl_history'); // Create an input stream specialized for testing an array of actions class ActionStream extends stream.Stream { run(data) { + let reallyWait = true; const _iter = data[Symbol.iterator](); const doAction = () => { const next = _iter.next(); @@ -32,24 +34,34 @@ class ActionStream extends stream.Stream { } else { this.emit('data', `${action}`); } - setImmediate(doAction); + if (action === WAIT && reallyWait) { + setTimeout(doAction, common.platformTimeout(50)); + reallyWait = false; + } else { + setImmediate(doAction); + } }; - setImmediate(doAction); + doAction(); } resume() {} pause() {} } ActionStream.prototype.readable = true; - // Mock keys const ENTER = { name: 'enter' }; const UP = { name: 'up' }; const DOWN = { name: 'down' }; const LEFT = { name: 'left' }; +const RIGHT = { name: 'right' }; const DELETE = { name: 'delete' }; +const BACKSPACE = { name: 'backspace' }; +const WORD_LEFT = { name: 'left', ctrl: true }; +const WORD_RIGHT = { name: 'right', ctrl: true }; +const GO_TO_END = { name: 'end' }; const prompt = '> '; +const WAIT = '€'; const prev = process.features.inspector; @@ -91,6 +103,162 @@ const tests = [ ' 2025, 2116, 2209, ...', prompt].filter((e) => typeof e === 'string'), clean: true + }, + { + env: { NODE_REPL_HISTORY: defaultHistoryPath }, + skip: !process.features.inspector, + test: [ + `const ${'veryLongName'.repeat(30)} = 'I should not be previewed'`, + ENTER, + 'const e = new RangeError("visible\\ninvisible")', + ENTER, + 'e', + ENTER, + 'veryLongName'.repeat(30), + ENTER, + `${'\x1B[90m \x1B[39m'.repeat(235)} fun`, + ENTER, + `${' '.repeat(236)} fun`, + ENTER + ], + expected: [], + clean: false + }, + { + env: { NODE_REPL_HISTORY: defaultHistoryPath }, + columns: 250, + skip: !process.features.inspector, + test: [ + UP, + UP, + UP, + UP, + BACKSPACE + ], + expected: [ + prompt, + // This exceeds the maximum columns (250): + // Whitespace + prompt + ' // '.length + 'function'.length + // 236 + 2 + 4 + 8 + `${prompt}${' '.repeat(236)} fun`, + `${prompt}${' '.repeat(235)} fun`, + ' // ction', + ' // ction', + `${prompt}${'veryLongName'.repeat(30)}`, + `${prompt}e`, + '\n// RangeError: visible', + prompt + ], + clean: true + }, + { + env: { NODE_REPL_HISTORY: defaultHistoryPath }, + showEscapeCodes: true, + skip: !process.features.inspector, + test: [ + 'fun', + RIGHT, + BACKSPACE, + LEFT, + LEFT, + 'A', + BACKSPACE, + GO_TO_END, + BACKSPACE, + WORD_LEFT, + WORD_RIGHT, + ENTER + ], + // C = Cursor forward + // D = Cursor back + // G = Cursor to column n + // J = Erase in screen + // K = Erase in line + expected: [ + // 0. + // 'f' + '\x1B[1G', '\x1B[0J', prompt, '\x1B[3G', 'f', + // 'u' + 'u', ' // nction', '\x1B[5G', + // 'n' - Cleanup + '\x1B[0K', + 'n', ' // ction', '\x1B[6G', + // 1. Right. Cleanup + '\x1B[0K', + 'ction', + // 2. Backspace. Refresh + '\x1B[1G', '\x1B[0J', `${prompt}functio`, '\x1B[10G', + // Autocomplete and refresh? + ' // n', '\x1B[10G', ' // n', '\x1B[10G', + // 3. Left. Cleanup + '\x1B[0K', + '\x1B[1D', '\x1B[10G', ' // n', '\x1B[9G', + // 4. Left. Cleanup + '\x1B[10G', '\x1B[0K', '\x1B[9G', + '\x1B[1D', '\x1B[10G', ' // n', '\x1B[8G', + // 5. 'A' - Cleanup + '\x1B[10G', '\x1B[0K', '\x1B[8G', + // Refresh + '\x1B[1G', '\x1B[0J', `${prompt}functAio`, '\x1B[9G', + // 6. Backspace. Refresh + '\x1B[1G', '\x1B[0J', `${prompt}functio`, '\x1B[8G', '\x1B[10G', ' // n', + '\x1B[8G', '\x1B[10G', ' // n', + '\x1B[8G', '\x1B[10G', + // 7. Go to end. Cleanup + '\x1B[0K', '\x1B[8G', '\x1B[2C', + 'n', + // 8. Backspace. Refresh + '\x1B[1G', '\x1B[0J', `${prompt}functio`, '\x1B[10G', + // Autocomplete + ' // n', '\x1B[10G', ' // n', '\x1B[10G', + // 9. Word left. Cleanup + '\x1B[0K', '\x1B[7D', '\x1B[10G', ' // n', '\x1B[3G', '\x1B[10G', + // 10. Word right. Cleanup + '\x1B[0K', '\x1B[3G', '\x1B[7C', ' // n', '\x1B[10G', + '\x1B[0K', + ], + clean: true + }, + { + // Check that the completer ignores completions that are outdated. + env: { NODE_REPL_HISTORY: defaultHistoryPath }, + completer(line, callback) { + if (line.endsWith(WAIT)) { + setTimeout( + callback, + common.platformTimeout(40), + null, + [[`${WAIT}WOW`], line] + ); + } else { + callback(null, [[' Always visible'], line]); + } + }, + skip: !process.features.inspector, + test: [ + WAIT, // The first call is awaited before new input is triggered! + BACKSPACE, + 's', + BACKSPACE, + WAIT, // The second call is not awaited. It won't trigger the preview. + BACKSPACE, + 's', + BACKSPACE + ], + expected: [ + prompt, + WAIT, + ' // WOW', + prompt, + 's', + ' // Always visible', + prompt, + WAIT, + prompt, + 's', + ' // Always visible', + ], + clean: true } ]; const numtests = tests.length; @@ -112,29 +280,47 @@ function runTest() { const opts = tests.shift(); if (!opts) return; // All done - const env = opts.env; - const test = opts.test; - const expected = opts.expected; + const { expected, skip } = opts; + + // Test unsupported on platform. + if (skip) { + setImmediate(runTestWrap, true); + return; + } + + const lastChunks = []; - REPL.createInternalRepl(env, { + REPL.createInternalRepl(opts.env, { input: new ActionStream(), output: new stream.Writable({ write(chunk, _, next) { const output = chunk.toString(); - if (output.charCodeAt(0) === 27 || /^[\r\n]+$/.test(output)) { + if (!opts.showEscapeCodes && + output.charCodeAt(0) === 27 || /^[\r\n]+$/.test(output)) { return next(); } + lastChunks.push(inspect(output)); + if (expected.length) { - assert.strictEqual(output, expected[0]); + try { + assert.strictEqual(output, expected[0]); + } catch (e) { + console.error(`Failed test # ${numtests - tests.length}`); + console.error('Last outputs: ' + inspect(lastChunks, { + breakLength: 5, colors: true + })); + throw e; + } expected.shift(); } next(); } }), - prompt: prompt, + completer: opts.completer, + prompt, useColors: false, terminal: true }, function(err, repl) { @@ -153,7 +339,13 @@ function runTest() { setImmediate(runTestWrap, true); }); - repl.inputStream.run(test); + if (opts.columns) { + Object.defineProperty(repl, 'columns', { + value: opts.columns, + enumerable: true + }); + } + repl.inputStream.run(opts.test); }); } diff --git a/test/parallel/test-repl-preview.js b/test/parallel/test-repl-preview.js index 65b56904cb03b9..cd34c461d80671 100644 --- a/test/parallel/test-repl-preview.js +++ b/test/parallel/test-repl-preview.js @@ -3,7 +3,7 @@ const common = require('../common'); const ArrayStream = require('../common/arraystream'); const assert = require('assert'); -const Repl = require('repl'); +const { REPLServer } = require('repl'); common.skipIfInspectorDisabled(); @@ -52,7 +52,7 @@ function runAndWait(cmds, repl) { } async function tests(options) { - const repl = Repl.start({ + const repl = REPLServer({ prompt: PROMPT, stream: new REPLStream(), ignoreUndefined: true, diff --git a/test/root.status b/test/root.status index 91aad08caa3527..6edb9ddec34ca2 100644 --- a/test/root.status +++ b/test/root.status @@ -66,6 +66,7 @@ parallel/test-next-tick-fixed-queue-regression: SLOW parallel/test-npm-install: SLOW parallel/test-preload: SLOW parallel/test-repl: SLOW +parallel/test-repl-history-navigation.js: SLOW parallel/test-repl-tab-complete: SLOW parallel/test-repl-top-level-await: SLOW parallel/test-stdio-pipe-access: SLOW From 559284b20ade0821dc31c94aea2610e76040f5cf Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 13 Dec 2019 10:18:33 -0500 Subject: [PATCH 48/70] doc: add "Be direct." to the style guide I've been doing a lot of work on-and-off to reduce unnecessary wordiness in our docs. Codify it in the style guide. PR-URL: https://github.com/nodejs/node/pull/30935 Reviewed-By: David Carlier Reviewed-By: Ruben Bridgewater Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat Reviewed-By: James M Snell --- doc/STYLE_GUIDE.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/STYLE_GUIDE.md b/doc/STYLE_GUIDE.md index 9784787428dbf1..f0221991b79be2 100644 --- a/doc/STYLE_GUIDE.md +++ b/doc/STYLE_GUIDE.md @@ -55,10 +55,15 @@ * OK: JavaScript, Google's V8 * NOT OK: Javascript, Google's v8 - * Use _Node.js_ and not _Node_, _NodeJS_, or similar variants. * When referring to the executable, _`node`_ is acceptable. +* Be direct. + * OK: The return value is a string. + + * NOT OK: It is important to note that, in all cases, the return value will be + a string regardless. + See also API documentation structure overview in [doctools README][]. From 698e0a20958fffb011f5312604026bf038306c7a Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Sat, 30 Nov 2019 20:12:58 +0100 Subject: [PATCH 49/70] lib: add TypedArray constructors to primordials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/30740 Reviewed-By: Michaël Zasso Reviewed-By: James M Snell --- lib/internal/per_context/primordials.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/internal/per_context/primordials.js b/lib/internal/per_context/primordials.js index 9e17b3541c78af..46ce4457d1e814 100644 --- a/lib/internal/per_context/primordials.js +++ b/lib/internal/per_context/primordials.js @@ -104,10 +104,17 @@ primordials.SafePromise = makeSafe( 'Array', 'ArrayBuffer', 'BigInt', + 'BigInt64Array', + 'BigUint64Array', 'Boolean', 'Date', 'Error', + 'Float32Array', + 'Float64Array', 'Function', + 'Int16Array', + 'Int32Array', + 'Int8Array', 'Map', 'Number', 'Object', @@ -115,6 +122,10 @@ primordials.SafePromise = makeSafe( 'Set', 'String', 'Symbol', + 'Uint16Array', + 'Uint32Array', + 'Uint8Array', + 'Uint8ClampedArray', 'WeakMap', 'WeakSet', ].forEach((name) => { From 2b0e2c280fc8e7a64734e45180e07f4fed876b51 Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Sat, 30 Nov 2019 20:13:55 +0100 Subject: [PATCH 50/70] v8: use of TypedArray constructors from primordials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/30740 Reviewed-By: Michaël Zasso Reviewed-By: James M Snell --- lib/v8.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/v8.js b/lib/v8.js index cabe96f345293c..c328a3c573275c 100644 --- a/lib/v8.js +++ b/lib/v8.js @@ -16,8 +16,18 @@ const { Array, + ArrayBuffer, + Float32Array, + Float64Array, + Int16Array, + Int32Array, + Int8Array, ObjectPrototypeToString, Symbol, + Uint16Array, + Uint32Array, + Uint8Array, + Uint8ClampedArray, } = primordials; const { Buffer } = require('buffer'); From 19f05cab396d708f4cd7a56e63d55739f03b7ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Fri, 13 Dec 2019 16:46:35 +0100 Subject: [PATCH 51/70] lib: enforce use of Promise from primordials PR-URL: https://github.com/nodejs/node/pull/30936 Refs: https://github.com/nodejs/node/issues/30697 Reviewed-By: Rich Trott Reviewed-By: David Carlier Reviewed-By: Ruben Bridgewater Reviewed-By: Colin Ihrig Reviewed-By: Trivikram Kamat Reviewed-By: James M Snell Reviewed-By: Joyee Cheung --- lib/.eslintrc.yaml | 2 ++ lib/child_process.js | 1 + lib/events.js | 1 + lib/fs.js | 1 + lib/internal/dns/promises.js | 1 + lib/internal/fs/rimraf.js | 5 +++++ lib/internal/http2/core.js | 1 + lib/internal/modules/esm/module_job.js | 3 ++- lib/internal/per_context/primordials.js | 28 +++++++++++++++++++++++++ lib/internal/process/execution.js | 3 ++- lib/internal/streams/async_iterator.js | 9 +++++--- lib/internal/util.js | 1 + lib/internal/worker.js | 6 ++++-- lib/repl.js | 4 +++- lib/timers.js | 1 + 15 files changed, 59 insertions(+), 8 deletions(-) diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index 81042a5c9d6f27..8299e79a00eba0 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -23,6 +23,8 @@ rules: message: "Use `const { Number } = primordials;` instead of the global." - name: Object message: "Use `const { Object } = primordials;` instead of the global." + - name: Promise + message: "Use `const { Promise } = primordials;` instead of the global." - name: Reflect message: "Use `const { Reflect } = primordials;` instead of the global." - name: Symbol diff --git a/lib/child_process.js b/lib/child_process.js index 2a0d471c02a74d..0549e5daf7d10a 100644 --- a/lib/child_process.js +++ b/lib/child_process.js @@ -27,6 +27,7 @@ const { ObjectAssign, ObjectDefineProperty, ObjectPrototypeHasOwnProperty, + Promise, } = primordials; const { diff --git a/lib/events.js b/lib/events.js index 13ecbd9ea87433..fc530ff7f3fc15 100644 --- a/lib/events.js +++ b/lib/events.js @@ -30,6 +30,7 @@ const { ObjectDefineProperty, ObjectGetPrototypeOf, ObjectKeys, + Promise, ReflectApply, ReflectOwnKeys, Symbol, diff --git a/lib/fs.js b/lib/fs.js index de37a0c2a0a704..32429a70896101 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -30,6 +30,7 @@ const { ObjectCreate, ObjectDefineProperties, ObjectDefineProperty, + Promise, } = primordials; const { fs: constants } = internalBinding('constants'); diff --git a/lib/internal/dns/promises.js b/lib/internal/dns/promises.js index c4bbc21ae5528c..ae007fd31934e2 100644 --- a/lib/internal/dns/promises.js +++ b/lib/internal/dns/promises.js @@ -3,6 +3,7 @@ const { ObjectCreate, ObjectDefineProperty, + Promise, } = primordials; const { diff --git a/lib/internal/fs/rimraf.js b/lib/internal/fs/rimraf.js index 3402af60a4022f..02cdfdf4b5da3f 100644 --- a/lib/internal/fs/rimraf.js +++ b/lib/internal/fs/rimraf.js @@ -5,6 +5,11 @@ // - Bring your own custom fs module is not currently supported. // - Some basic code cleanup. 'use strict'; + +const { + Promise, +} = primordials; + const { Buffer } = require('buffer'); const { chmod, diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index abd9c8f417b81b..0bbf74cdc71ded 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -10,6 +10,7 @@ const { ObjectCreate, ObjectDefineProperty, ObjectPrototypeHasOwnProperty, + Promise, ReflectGetPrototypeOf, Symbol, } = primordials; diff --git a/lib/internal/modules/esm/module_job.js b/lib/internal/modules/esm/module_job.js index e4a9040217689d..01a574044b4f4a 100644 --- a/lib/internal/modules/esm/module_job.js +++ b/lib/internal/modules/esm/module_job.js @@ -2,6 +2,7 @@ const { ObjectSetPrototypeOf, + PromiseAll, SafeSet, SafePromise, } = primordials; @@ -79,7 +80,7 @@ class ModuleJob { } jobsInGraph.add(moduleJob); const dependencyJobs = await moduleJob.linked; - return Promise.all(dependencyJobs.map(addJobsToDependencyGraph)); + return PromiseAll(dependencyJobs.map(addJobsToDependencyGraph)); }; await addJobsToDependencyGraph(this); try { diff --git a/lib/internal/per_context/primordials.js b/lib/internal/per_context/primordials.js index 46ce4457d1e814..09bea0fc7fc523 100644 --- a/lib/internal/per_context/primordials.js +++ b/lib/internal/per_context/primordials.js @@ -47,6 +47,22 @@ function copyPropsRenamed(src, dest, prefix) { } } +function copyPropsRenamedBound(src, dest, prefix) { + for (const key of Reflect.ownKeys(src)) { + if (typeof key === 'string') { + const desc = Reflect.getOwnPropertyDescriptor(src, key); + if (typeof desc.value === 'function') { + desc.value = desc.value.bind(src); + } + Reflect.defineProperty( + dest, + `${prefix}${key[0].toUpperCase()}${key.slice(1)}`, + desc + ); + } + } +} + function copyPrototype(src, dest, prefix) { for (const key of Reflect.ownKeys(src)) { if (typeof key === 'string') { @@ -135,5 +151,17 @@ primordials.SafePromise = makeSafe( copyPrototype(original.prototype, primordials, `${name}Prototype`); }); +// Create copies of intrinsic objects that require a valid `this` to call +// static methods. +// Refs: https://www.ecma-international.org/ecma-262/#sec-promise.all +[ + 'Promise', +].forEach((name) => { + const original = global[name]; + primordials[name] = original; + copyPropsRenamedBound(original, primordials, name); + copyPrototype(original.prototype, primordials, `${name}Prototype`); +}); + Object.setPrototypeOf(primordials, null); Object.freeze(primordials); diff --git a/lib/internal/process/execution.js b/lib/internal/process/execution.js index 8b15fbbae46f26..d9567e643d7c85 100644 --- a/lib/internal/process/execution.js +++ b/lib/internal/process/execution.js @@ -2,6 +2,7 @@ const { JSONStringify, + PromiseResolve, } = primordials; const path = require('path'); @@ -41,7 +42,7 @@ function evalModule(source, print) { const { log, error } = require('internal/console/global'); const { decorateErrorStack } = require('internal/util'); const asyncESM = require('internal/process/esm_loader'); - Promise.resolve(asyncESM.ESMLoader).then(async (loader) => { + PromiseResolve(asyncESM.ESMLoader).then(async (loader) => { const { result } = await loader.eval(source); if (print) { log(result); diff --git a/lib/internal/streams/async_iterator.js b/lib/internal/streams/async_iterator.js index a6b8bd9d181c38..ced9c77c4f50e2 100644 --- a/lib/internal/streams/async_iterator.js +++ b/lib/internal/streams/async_iterator.js @@ -4,6 +4,9 @@ const { ObjectCreate, ObjectGetPrototypeOf, ObjectSetPrototypeOf, + Promise, + PromiseReject, + PromiseResolve, Symbol, } = primordials; @@ -67,11 +70,11 @@ const ReadableStreamAsyncIteratorPrototype = ObjectSetPrototypeOf({ // reject straight away. const error = this[kError]; if (error !== null) { - return Promise.reject(error); + return PromiseReject(error); } if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)); + return PromiseResolve(createIterResult(undefined, true)); } if (this[kStream].destroyed) { @@ -103,7 +106,7 @@ const ReadableStreamAsyncIteratorPrototype = ObjectSetPrototypeOf({ // without triggering the next() queue. const data = this[kStream].read(); if (data !== null) { - return Promise.resolve(createIterResult(data, false)); + return PromiseResolve(createIterResult(data, false)); } promise = new Promise(this[kHandlePromise]); diff --git a/lib/internal/util.js b/lib/internal/util.js index f80c9212304a03..8d4f66a0be26ff 100644 --- a/lib/internal/util.js +++ b/lib/internal/util.js @@ -10,6 +10,7 @@ const { ObjectGetOwnPropertyDescriptors, ObjectGetPrototypeOf, ObjectSetPrototypeOf, + Promise, ReflectConstruct, Symbol, SymbolFor, diff --git a/lib/internal/worker.js b/lib/internal/worker.js index 6cdd6cba0b18bc..f078d5329d6017 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js @@ -7,6 +7,8 @@ const { MathMax, ObjectCreate, ObjectEntries, + Promise, + PromiseResolve, Symbol, SymbolFor, } = primordials; @@ -259,11 +261,11 @@ class Worker extends EventEmitter { 'Passing a callback to worker.terminate() is deprecated. ' + 'It returns a Promise instead.', 'DeprecationWarning', 'DEP0132'); - if (this[kHandle] === null) return Promise.resolve(); + if (this[kHandle] === null) return PromiseResolve(); this.once('exit', (exitCode) => callback(null, exitCode)); } - if (this[kHandle] === null) return Promise.resolve(); + if (this[kHandle] === null) return PromiseResolve(); this[kHandle].stopThread(); diff --git a/lib/repl.js b/lib/repl.js index 24948477fea65e..181556a2316c2d 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -53,6 +53,8 @@ const { ObjectGetPrototypeOf, ObjectKeys, ObjectSetPrototypeOf, + Promise, + PromiseRace, Symbol, } = primordials; @@ -460,7 +462,7 @@ function REPLServer(prompt, }; prioritizedSigintQueue.add(sigintListener); }); - promise = Promise.race([promise, interrupt]); + promise = PromiseRace([promise, interrupt]); } promise.then((result) => { diff --git a/lib/timers.js b/lib/timers.js index 68327e2c3e5947..643fb06d2ea49c 100644 --- a/lib/timers.js +++ b/lib/timers.js @@ -23,6 +23,7 @@ const { MathTrunc, + Promise, } = primordials; const { From 92475e998dd1e99c79cd18987827ca0d442ca57e Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Fri, 13 Dec 2019 22:01:47 +0100 Subject: [PATCH 52/70] lib: replace Symbol.asyncIterator by SymbolAsyncIterator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/30947 Reviewed-By: Anna Henningsen Reviewed-By: Michaël Zasso Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Trivikram Kamat Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- lib/_stream_readable.js | 4 ++-- lib/internal/fs/dir.js | 3 ++- lib/internal/streams/from.js | 6 +++--- lib/readline.js | 5 +++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 6226bbf5eb4063..1dcac413caa4f3 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -27,7 +27,7 @@ const { NumberIsNaN, ObjectDefineProperty, ObjectSetPrototypeOf, - Symbol, + SymbolAsyncIterator, } = primordials; module.exports = Readable; @@ -1096,7 +1096,7 @@ Readable.prototype.wrap = function(stream) { return this; }; -Readable.prototype[Symbol.asyncIterator] = function() { +Readable.prototype[SymbolAsyncIterator] = function() { if (createReadableStreamAsyncIterator === undefined) { createReadableStreamAsyncIterator = require('internal/streams/async_iterator'); diff --git a/lib/internal/fs/dir.js b/lib/internal/fs/dir.js index 749e22ee696c6f..1351ce6c245281 100644 --- a/lib/internal/fs/dir.js +++ b/lib/internal/fs/dir.js @@ -3,6 +3,7 @@ const { ObjectDefineProperty, Symbol, + SymbolAsyncIterator, } = primordials; const pathModule = require('path'); @@ -175,7 +176,7 @@ class Dir { } } -ObjectDefineProperty(Dir.prototype, Symbol.asyncIterator, { +ObjectDefineProperty(Dir.prototype, SymbolAsyncIterator, { value: Dir.prototype.entries, enumerable: false, writable: true, diff --git a/lib/internal/streams/from.js b/lib/internal/streams/from.js index 474db60b8930a2..ab6db00a125a0b 100644 --- a/lib/internal/streams/from.js +++ b/lib/internal/streams/from.js @@ -1,7 +1,7 @@ 'use strict'; const { - Symbol, + SymbolAsyncIterator, SymbolIterator } = primordials; const { Buffer } = require('buffer'); @@ -23,8 +23,8 @@ function from(Readable, iterable, opts) { }); } - if (iterable && iterable[Symbol.asyncIterator]) - iterator = iterable[Symbol.asyncIterator](); + if (iterable && iterable[SymbolAsyncIterator]) + iterator = iterable[SymbolAsyncIterator](); else if (iterable && iterable[SymbolIterator]) iterator = iterable[SymbolIterator](); else diff --git a/lib/readline.js b/lib/readline.js index daf30969408222..2823b246519caf 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -37,6 +37,7 @@ const { ObjectDefineProperty, ObjectSetPrototypeOf, Symbol, + SymbolAsyncIterator, } = primordials; const { @@ -1078,7 +1079,7 @@ Interface.prototype._ttyWrite = function(s, key) { } }; -Interface.prototype[Symbol.asyncIterator] = function() { +Interface.prototype[SymbolAsyncIterator] = function() { if (this[kLineObjectStream] === undefined) { if (Readable === undefined) { Readable = require('stream').Readable; @@ -1108,7 +1109,7 @@ Interface.prototype[Symbol.asyncIterator] = function() { this[kLineObjectStream] = readable; } - return this[kLineObjectStream][Symbol.asyncIterator](); + return this[kLineObjectStream][SymbolAsyncIterator](); }; /** From f51b5bd3dcb2269dc6fd2fb7ca493091c17f497b Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Fri, 13 Dec 2019 22:13:49 +0100 Subject: [PATCH 53/70] lib: replace Symbol.hasInstance by SymbolHasInstance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/30948 Reviewed-By: Michaël Zasso Reviewed-By: Colin Ihrig Reviewed-By: Trivikram Kamat Reviewed-By: David Carlier Reviewed-By: Matteo Collina Reviewed-By: Rich Trott Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- lib/_stream_writable.js | 7 ++++--- lib/internal/console/constructor.js | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js index 5a88c817bd9fcc..e2e1900506acc9 100644 --- a/lib/_stream_writable.js +++ b/lib/_stream_writable.js @@ -30,6 +30,7 @@ const { ObjectDefineProperty, ObjectSetPrototypeOf, Symbol, + SymbolHasInstance, } = primordials; module.exports = Writable; @@ -203,9 +204,9 @@ ObjectDefineProperty(WritableState.prototype, 'buffer', { // Test _writableState for inheritance to account for Duplex streams, // whose prototype chain only points to Readable. var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance) { - realHasInstance = Function.prototype[Symbol.hasInstance]; - ObjectDefineProperty(Writable, Symbol.hasInstance, { +if (typeof Symbol === 'function' && SymbolHasInstance) { + realHasInstance = Function.prototype[SymbolHasInstance]; + ObjectDefineProperty(Writable, SymbolHasInstance, { value: function(object) { if (realHasInstance.call(this, object)) return true; diff --git a/lib/internal/console/constructor.js b/lib/internal/console/constructor.js index d785b7f8dea292..aff24f93455c8b 100644 --- a/lib/internal/console/constructor.js +++ b/lib/internal/console/constructor.js @@ -16,6 +16,7 @@ const { ObjectValues, ReflectOwnKeys, Symbol, + SymbolHasInstance, } = primordials; const { trace } = internalBinding('trace_events'); @@ -133,7 +134,7 @@ const consolePropAttributes = { }; // Fixup global.console instanceof global.console.Console -ObjectDefineProperty(Console, Symbol.hasInstance, { +ObjectDefineProperty(Console, SymbolHasInstance, { value(instance) { return instance[kIsConsole]; } From 88731adff6c0ac867d9a2f7305e57e976a19e545 Mon Sep 17 00:00:00 2001 From: Sebastien Ahkrin Date: Fri, 13 Dec 2019 22:47:39 +0100 Subject: [PATCH 54/70] lib: replace Symbol.species by SymbolSpecies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/30950 Reviewed-By: Colin Ihrig Reviewed-By: Michaël Zasso Reviewed-By: Trivikram Kamat Reviewed-By: David Carlier Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- lib/buffer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/buffer.js b/lib/buffer.js index 955a240fa39bf3..74d6511b35f59c 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -34,7 +34,7 @@ const { ObjectDefineProperties, ObjectDefineProperty, ObjectSetPrototypeOf, - Symbol, + SymbolSpecies, SymbolToPrimitive, } = primordials; @@ -268,7 +268,7 @@ function Buffer(arg, encodingOrOffset, length) { return Buffer.from(arg, encodingOrOffset, length); } -ObjectDefineProperty(Buffer, Symbol.species, { +ObjectDefineProperty(Buffer, SymbolSpecies, { enumerable: false, configurable: true, get() { return FastBuffer; } From 954793f363565f209f93bd83fe0f83cacf949c7b Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Sat, 14 Dec 2019 13:53:14 +0800 Subject: [PATCH 55/70] process: fix promise catching Fixes: https://github.com/nodejs/node/issues/30953 PR-URL: https://github.com/nodejs/node/pull/30957 Reviewed-By: Anna Henningsen Reviewed-By: Anatoli Papirovski Reviewed-By: Benjamin Gruenbaum Reviewed-By: Colin Ihrig Reviewed-By: David Carlier Reviewed-By: Rich Trott Reviewed-By: Gus Caplan Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- lib/internal/process/promises.js | 3 ++- test/parallel/test-promises-unhandled-rejections.js | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/internal/process/promises.js b/lib/internal/process/promises.js index 35ebb39115f3be..7cd40f96cc9812 100644 --- a/lib/internal/process/promises.js +++ b/lib/internal/process/promises.js @@ -125,7 +125,8 @@ function handledRejection(promise) { return; } } - setHasRejectionToWarn(false); + if (maybeUnhandledPromises.size === 0 && asyncHandledRejections.length === 0) + setHasRejectionToWarn(false); } const unhandledRejectionErrName = 'UnhandledPromiseRejectionWarning'; diff --git a/test/parallel/test-promises-unhandled-rejections.js b/test/parallel/test-promises-unhandled-rejections.js index 176bae8a73ed1a..f4294800fa9dab 100644 --- a/test/parallel/test-promises-unhandled-rejections.js +++ b/test/parallel/test-promises-unhandled-rejections.js @@ -718,3 +718,15 @@ asyncTest( let timer = setTimeout(common.mustNotCall(), 10000); }, ); + +// https://github.com/nodejs/node/issues/30953 +asyncTest( + 'Catching a promise should not take effect on previous promises', + function(done) { + onUnhandledSucceed(done, function(reason, promise) { + assert.strictEqual(reason, '1'); + }); + Promise.reject('1'); + Promise.reject('2').catch(function() {}); + } +); From b6ddbc12918bc21ba45fb35f6cb0bb7d1ac06ded Mon Sep 17 00:00:00 2001 From: dnlup Date: Fri, 13 Dec 2019 18:43:41 +0100 Subject: [PATCH 56/70] benchmark: use let/const instead of var in buffers PR-URL: https://github.com/nodejs/node/pull/30945 Reviewed-By: Ruben Bridgewater Reviewed-By: Trivikram Kamat --- benchmark/buffers/buffer-bytelength.js | 4 ++-- .../buffers/buffer-compare-instance-method.js | 11 +++++------ benchmark/buffers/buffer-hex.js | 5 ++--- benchmark/buffers/buffer-indexof.js | 2 +- benchmark/buffers/buffer-iterate.js | 8 ++++---- benchmark/buffers/buffer-swap.js | 4 ++-- benchmark/buffers/buffer-tostring.js | 9 ++++----- benchmark/buffers/buffer-write-string.js | 14 ++++++-------- 8 files changed, 26 insertions(+), 31 deletions(-) diff --git a/benchmark/buffers/buffer-bytelength.js b/benchmark/buffers/buffer-bytelength.js index 3246a42d96b34c..1b324a49f89de8 100644 --- a/benchmark/buffers/buffer-bytelength.js +++ b/benchmark/buffers/buffer-bytelength.js @@ -16,8 +16,8 @@ const chars = [ ]; function main({ n, len, encoding }) { - var strings = []; - var results = [ len * 16 ]; + let strings = []; + let results = [ len * 16 ]; if (encoding === 'buffer') { strings = [ Buffer.alloc(len * 16, 'a') ]; } else { diff --git a/benchmark/buffers/buffer-compare-instance-method.js b/benchmark/buffers/buffer-compare-instance-method.js index 284001c236d99d..eb18fa518037f4 100644 --- a/benchmark/buffers/buffer-compare-instance-method.js +++ b/benchmark/buffers/buffer-compare-instance-method.js @@ -12,7 +12,6 @@ function main({ n, size, args }) { const b1 = Buffer.alloc(size, 'a'); const b0Len = b0.length; const b1Len = b1.length; - var i; b1[size - 1] = 'b'.charCodeAt(0); @@ -20,7 +19,7 @@ function main({ n, size, args }) { case 2: b0.compare(b1, 0); bench.start(); - for (i = 0; i < n; i++) { + for (let i = 0; i < n; i++) { b0.compare(b1, 0); } bench.end(n); @@ -28,7 +27,7 @@ function main({ n, size, args }) { case 3: b0.compare(b1, 0, b1Len); bench.start(); - for (i = 0; i < n; i++) { + for (let i = 0; i < n; i++) { b0.compare(b1, 0, b1Len); } bench.end(n); @@ -36,7 +35,7 @@ function main({ n, size, args }) { case 4: b0.compare(b1, 0, b1Len, 0); bench.start(); - for (i = 0; i < n; i++) { + for (let i = 0; i < n; i++) { b0.compare(b1, 0, b1Len, 0); } bench.end(n); @@ -44,7 +43,7 @@ function main({ n, size, args }) { case 5: b0.compare(b1, 0, b1Len, 0, b0Len); bench.start(); - for (i = 0; i < n; i++) { + for (let i = 0; i < n; i++) { b0.compare(b1, 0, b1Len, 0, b0Len); } bench.end(n); @@ -52,7 +51,7 @@ function main({ n, size, args }) { default: b0.compare(b1); bench.start(); - for (i = 0; i < n; i++) { + for (let i = 0; i < n; i++) { b0.compare(b1); } bench.end(n); diff --git a/benchmark/buffers/buffer-hex.js b/benchmark/buffers/buffer-hex.js index 1b49ca745381da..33d2b44d6a5950 100644 --- a/benchmark/buffers/buffer-hex.js +++ b/benchmark/buffers/buffer-hex.js @@ -9,16 +9,15 @@ const bench = common.createBenchmark(main, { function main({ len, n }) { const buf = Buffer.alloc(len); - var i; - for (i = 0; i < buf.length; i++) + for (let i = 0; i < buf.length; i++) buf[i] = i & 0xff; const hex = buf.toString('hex'); bench.start(); - for (i = 0; i < n; i += 1) + for (let i = 0; i < n; i += 1) Buffer.from(hex, 'hex'); bench.end(n); diff --git a/benchmark/buffers/buffer-indexof.js b/benchmark/buffers/buffer-indexof.js index e635da2351c4a7..4c0993a1ef0ef9 100644 --- a/benchmark/buffers/buffer-indexof.js +++ b/benchmark/buffers/buffer-indexof.js @@ -25,7 +25,7 @@ const bench = common.createBenchmark(main, { }); function main({ n, search, encoding, type }) { - var aliceBuffer = fs.readFileSync( + let aliceBuffer = fs.readFileSync( path.resolve(__dirname, '../fixtures/alice.html') ); diff --git a/benchmark/buffers/buffer-iterate.js b/benchmark/buffers/buffer-iterate.js index e81ce2b3035d90..de002108a95d65 100644 --- a/benchmark/buffers/buffer-iterate.js +++ b/benchmark/buffers/buffer-iterate.js @@ -29,15 +29,15 @@ function main({ size, type, method, n }) { } function benchFor(buffer, n) { - for (var k = 0; k < n; k++) { - for (var i = 0; i < buffer.length; i++) { + for (let k = 0; k < n; k++) { + for (let i = 0; i < buffer.length; i++) { assert(buffer[i] === 0); } } } function benchForOf(buffer, n) { - for (var k = 0; k < n; k++) { + for (let k = 0; k < n; k++) { for (const b of buffer) { assert(b === 0); } @@ -45,7 +45,7 @@ function benchForOf(buffer, n) { } function benchIterator(buffer, n) { - for (var k = 0; k < n; k++) { + for (let k = 0; k < n; k++) { const iter = buffer[Symbol.iterator](); let cur = iter.next(); diff --git a/benchmark/buffers/buffer-swap.js b/benchmark/buffers/buffer-swap.js index d22bf2fd5504ea..a33bac4ae3ed78 100644 --- a/benchmark/buffers/buffer-swap.js +++ b/benchmark/buffers/buffer-swap.js @@ -36,7 +36,7 @@ Buffer.prototype.htons = function htons() { Buffer.prototype.htonl = function htonl() { if (this.length % 4 !== 0) throw new RangeError(); - for (var i = 0; i < this.length; i += 4) { + for (let i = 0; i < this.length; i += 4) { swap(this, i, i + 3); swap(this, i + 1, i + 2); } @@ -66,7 +66,7 @@ function createBuffer(len, aligned) { function genMethod(method) { const fnString = ` return function ${method}(n, buf) { - for (var i = 0; i <= n; i++) + for (let i = 0; i <= n; i++) buf.${method}(); }`; return (new Function(fnString))(); diff --git a/benchmark/buffers/buffer-tostring.js b/benchmark/buffers/buffer-tostring.js index 88543d8fd3af5a..98d6ab3fa08311 100644 --- a/benchmark/buffers/buffer-tostring.js +++ b/benchmark/buffers/buffer-tostring.js @@ -15,29 +15,28 @@ function main({ encoding, args, len, n }) { if (encoding.length === 0) encoding = undefined; - var i; switch (args) { case 1: bench.start(); - for (i = 0; i < n; i += 1) + for (let i = 0; i < n; i += 1) buf.toString(encoding); bench.end(n); break; case 2: bench.start(); - for (i = 0; i < n; i += 1) + for (let i = 0; i < n; i += 1) buf.toString(encoding, 0); bench.end(n); break; case 3: bench.start(); - for (i = 0; i < n; i += 1) + for (let i = 0; i < n; i += 1) buf.toString(encoding, 0, len); bench.end(n); break; default: bench.start(); - for (i = 0; i < n; i += 1) + for (let i = 0; i < n; i += 1) buf.toString(); bench.end(n); break; diff --git a/benchmark/buffers/buffer-write-string.js b/benchmark/buffers/buffer-write-string.js index b30edcf8867adf..cd24d379728cda 100644 --- a/benchmark/buffers/buffer-write-string.js +++ b/benchmark/buffers/buffer-write-string.js @@ -15,21 +15,19 @@ function main({ len, n, encoding, args }) { let start = 0; const buf = Buffer.allocUnsafe(len); - var i; - switch (args) { case 'offset': string = 'a'.repeat(Math.floor(len / 2)); start = len - string.length; if (encoding) { bench.start(); - for (i = 0; i < n; ++i) { + for (let i = 0; i < n; ++i) { buf.write(string, start, encoding); } bench.end(n); } else { bench.start(); - for (i = 0; i < n; ++i) { + for (let i = 0; i < n; ++i) { buf.write(string, start); } bench.end(n); @@ -39,13 +37,13 @@ function main({ len, n, encoding, args }) { string = 'a'.repeat(len); if (encoding) { bench.start(); - for (i = 0; i < n; ++i) { + for (let i = 0; i < n; ++i) { buf.write(string, 0, buf.length, encoding); } bench.end(n); } else { bench.start(); - for (i = 0; i < n; ++i) { + for (let i = 0; i < n; ++i) { buf.write(string, 0, buf.length); } bench.end(n); @@ -55,13 +53,13 @@ function main({ len, n, encoding, args }) { string = 'a'.repeat(len); if (encoding) { bench.start(); - for (i = 0; i < n; ++i) { + for (let i = 0; i < n; ++i) { buf.write(string, encoding); } bench.end(n); } else { bench.start(); - for (i = 0; i < n; ++i) { + for (let i = 0; i < n; ++i) { buf.write(string); } bench.end(n); From 13b5ace4dbcfae422fa1a1d347a4b994973987bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Mon, 9 Dec 2019 01:16:54 -0400 Subject: [PATCH 57/70] doc: explain napi_run_script PR-URL: https://github.com/nodejs/node/pull/30918 Reviewed-By: Luigi Pinca Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott Reviewed-By: Chengzhong Wu Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- doc/api/n-api.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 1eecb7f1129c40..ffb8eb8e9714a7 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -4929,6 +4929,19 @@ NAPI_EXTERN napi_status napi_run_script(napi_env env, * `[in] script`: A JavaScript string containing the script to execute. * `[out] result`: The value resulting from having executed the script. +This function executes a string of JavaScript code and returns its result with +the following caveats: + +* Unlike `eval`, this function does not allow the script to access the current + lexical scope, and therefore also does not allow to access the + [module scope][], meaning that pseudo-globals such as `require` will not be + available. +* The script can access the [global scope][]. Function and `var` declarations + in the script will be added to the [`global`][] object. Variable declarations + made using `let` and `const` will be visible globally, but will not be added + to the [`global`][] object. +* The value of `this` is [`global`][] within the script. + ## libuv event loop N-API provides a function for getting the current event loop associated with @@ -5291,6 +5304,7 @@ This API may only be called from the main thread. [Xcode]: https://developer.apple.com/xcode/ [`Number.MAX_SAFE_INTEGER`]: https://tc39.github.io/ecma262/#sec-number.max_safe_integer [`Number.MIN_SAFE_INTEGER`]: https://tc39.github.io/ecma262/#sec-number.min_safe_integer +[`global`]: globals.html#globals_global [`init` hooks]: async_hooks.html#async_hooks_init_asyncid_type_triggerasyncid_resource [`napi_add_finalizer`]: #n_api_napi_add_finalizer [`napi_async_init`]: #n_api_napi_async_init @@ -5341,6 +5355,8 @@ This API may only be called from the main thread. [async_hooks `type`]: async_hooks.html#async_hooks_type [context-aware addons]: addons.html#addons_context_aware_addons [docs]: https://github.com/nodejs/node-addon-api#api-documentation +[global scope]: globals.html +[module scope]: modules.html#modules_the_module_scope [node-addon-api]: https://github.com/nodejs/node-addon-api [node-gyp]: https://github.com/nodejs/node-gyp [node-pre-gyp]: https://github.com/mapbox/node-pre-gyp From 5b49ded22a1c48d279a326fb3d147a284a1a26ab Mon Sep 17 00:00:00 2001 From: Jeremy Albright Date: Wed, 27 Nov 2019 11:02:02 -0900 Subject: [PATCH 58/70] readline: promote _getCursorPos to public api Alias _getCursorPos() = getCursorPos() for backwards compatibility. Refs: https://github.com/nodejs/node/issues/30347 PR-URL: https://github.com/nodejs/node/pull/30687 Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Anna Henningsen Reviewed-By: Ben Noordhuis Reviewed-By: Ruben Bridgewater --- doc/api/readline.md | 13 +++++ lib/readline.js | 11 ++-- test/parallel/test-readline-interface.js | 68 ++++++++++++------------ test/parallel/test-readline-position.js | 2 +- 4 files changed, 54 insertions(+), 40 deletions(-) diff --git a/doc/api/readline.md b/doc/api/readline.md index ce63dbaa3905f6..bae063f0b2193c 100644 --- a/doc/api/readline.md +++ b/doc/api/readline.md @@ -398,6 +398,19 @@ reading input from a TTY stream. The position of cursor determines the portion of the input string that will be modified as input is processed, as well as the column where the terminal caret will be rendered. +### rl.getCursorPos() + + +* Returns: {Object} + * `rows` {number} the row of the prompt the cursor currently lands on + * `cols` {number} the screen column the cursor currently lands on + +Returns the real position of the cursor in relation to the input +prompt + string. Long input (wrapping) strings, as well as multiple +line prompts are included in the calculations. + ## readline.clearLine(stream, dir\[, callback\]) + +Prints a stack trace whenever an environment is exited proactively, +i.e. invoking `process.exit()`. + ### `--trace-sync-io` Prints a stack trace whenever an environment is exited proactively, diff --git a/doc/api/readline.md b/doc/api/readline.md index bae063f0b2193c..b98f7055045ef1 100644 --- a/doc/api/readline.md +++ b/doc/api/readline.md @@ -400,7 +400,7 @@ as well as the column where the terminal caret will be rendered. ### rl.getCursorPos() * Returns: {Object} diff --git a/doc/api/util.md b/doc/api/util.md index 4727cdb88e9678..ae435365b91d16 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -398,7 +398,7 @@ stream.write('With ES6');