You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
4.7 MiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"version":3,"file":"dep-1be34a63.js","sources":["../../../../../node_modules/color-name/index.js","../../../../../node_modules/ansi-styles/node_modules/color-convert/conversions.js","../../../../../node_modules/ansi-styles/node_modules/color-convert/route.js","../../../../../node_modules/ansi-styles/node_modules/color-convert/index.js","../../../../../node_modules/ansi-styles/index.js","../../../../../node_modules/has-flag/index.js","../../../../../node_modules/supports-color/index.js","../../../../../node_modules/chalk/source/util.js","../../../../../node_modules/chalk/source/templates.js","../../../../../node_modules/chalk/source/index.js","../../../../../node_modules/duplexer/index.js","../../../../../node_modules/brotli-size/dist/index.js","../../../../../node_modules/debug/node_modules/ms/index.js","../../../../../node_modules/debug/src/common.js","../../../../../node_modules/debug/src/browser.js","../../../../../node_modules/debug/src/node.js","../../../../../node_modules/debug/src/index.js","../../../src/node/constants.ts","../../../../../node_modules/builtin-modules/index.js","../../../../../node_modules/@ampproject/remapping/dist/remapping.mjs","../../../src/node/utils.ts","../../../src/node/logger.ts","../../../src/node/plugins/reporter.ts","../../../../../node_modules/sourcemap-codec/dist/sourcemap-codec.es.js","../../../../../node_modules/magic-string/dist/magic-string.es.js","../../../../../node_modules/mime/Mime.js","../../../../../node_modules/mime/types/standard.js","../../../../../node_modules/mime/lite.js","../../../src/node/plugins/asset.ts","../../../../../node_modules/fast-glob/out/utils/array.js","../../../../../node_modules/fast-glob/out/utils/errno.js","../../../../../node_modules/fast-glob/out/utils/fs.js","../../../../../node_modules/fast-glob/out/utils/path.js","../../../../../node_modules/is-extglob/index.js","../../../../../node_modules/is-glob/index.js","../../../../../node_modules/glob-parent/index.js","../../../../../node_modules/braces/lib/utils.js","../../../../../node_modules/braces/lib/stringify.js","../../../../../node_modules/is-number/index.js","../../../../../node_modules/to-regex-range/index.js","../../../../../node_modules/fill-range/index.js","../../../../../node_modules/braces/lib/compile.js","../../../../../node_modules/braces/lib/expand.js","../../../../../node_modules/braces/lib/constants.js","../../../../../node_modules/braces/lib/parse.js","../../../../../node_modules/braces/index.js","../../../../../node_modules/picomatch/lib/constants.js","../../../../../node_modules/picomatch/lib/utils.js","../../../../../node_modules/picomatch/lib/scan.js","../../../../../node_modules/picomatch/lib/parse.js","../../../../../node_modules/picomatch/lib/picomatch.js","../../../../../node_modules/picomatch/index.js","../../../../../node_modules/micromatch/index.js","../../../../../node_modules/fast-glob/out/utils/pattern.js","../../../../../node_modules/merge2/index.js","../../../../../node_modules/fast-glob/out/utils/stream.js","../../../../../node_modules/fast-glob/out/utils/string.js","../../../../../node_modules/fast-glob/out/utils/index.js","../../../../../node_modules/fast-glob/out/managers/tasks.js","../../../../../node_modules/@nodelib/fs.stat/out/providers/async.js","../../../../../node_modules/@nodelib/fs.stat/out/providers/sync.js","../../../../../node_modules/@nodelib/fs.stat/out/adapters/fs.js","../../../../../node_modules/@nodelib/fs.stat/out/settings.js","../../../../../node_modules/@nodelib/fs.stat/out/index.js","../../../../../node_modules/queue-microtask/index.js","../../../../../node_modules/run-parallel/index.js","../../../../../node_modules/@nodelib/fs.scandir/out/constants.js","../../../../../node_modules/@nodelib/fs.scandir/out/utils/fs.js","../../../../../node_modules/@nodelib/fs.scandir/out/utils/index.js","../../../../../node_modules/@nodelib/fs.scandir/out/providers/common.js","../../../../../node_modules/@nodelib/fs.scandir/out/providers/async.js","../../../../../node_modules/@nodelib/fs.scandir/out/providers/sync.js","../../../../../node_modules/@nodelib/fs.scandir/out/adapters/fs.js","../../../../../node_modules/@nodelib/fs.scandir/out/settings.js","../../../../../node_modules/@nodelib/fs.scandir/out/index.js","../../../../../node_modules/reusify/reusify.js","../../../../../node_modules/fastq/queue.js","../../../../../node_modules/@nodelib/fs.walk/out/readers/common.js","../../../../../node_modules/@nodelib/fs.walk/out/readers/reader.js","../../../../../node_modules/@nodelib/fs.walk/out/readers/async.js","../../../../../node_modules/@nodelib/fs.walk/out/providers/async.js","../../../../../node_modules/@nodelib/fs.walk/out/providers/stream.js","../../../../../node_modules/@nodelib/fs.walk/out/readers/sync.js","../../../../../node_modules/@nodelib/fs.walk/out/providers/sync.js","../../../../../node_modules/@nodelib/fs.walk/out/settings.js","../../../../../node_modules/@nodelib/fs.walk/out/index.js","../../../../../node_modules/fast-glob/out/readers/reader.js","../../../../../node_modules/fast-glob/out/readers/stream.js","../../../../../node_modules/fast-glob/out/providers/matchers/matcher.js","../../../../../node_modules/fast-glob/out/providers/matchers/partial.js","../../../../../node_modules/fast-glob/out/providers/filters/deep.js","../../../../../node_modules/fast-glob/out/providers/filters/entry.js","../../../../../node_modules/fast-glob/out/providers/filters/error.js","../../../../../node_modules/fast-glob/out/providers/transformers/entry.js","../../../../../node_modules/fast-glob/out/providers/provider.js","../../../../../node_modules/fast-glob/out/providers/async.js","../../../../../node_modules/fast-glob/out/providers/stream.js","../../../../../node_modules/fast-glob/out/readers/sync.js","../../../../../node_modules/fast-glob/out/providers/sync.js","../../../../../node_modules/fast-glob/out/settings.js","../../../../../node_modules/fast-glob/out/index.js","../../../../../node_modules/lilconfig/dist/index.js","../../../../../node_modules/yaml/dist/PlainValue-ec8e588e.js","../../../../../node_modules/yaml/dist/parse-cst.js","../../../../../node_modules/yaml/dist/resolveSeq-d03cb037.js","../../../../../node_modules/yaml/dist/warnings-1000a372.js","../../../../../node_modules/yaml/dist/Schema-88e323a7.js","../../../../../node_modules/yaml/dist/Document-9b4560a1.js","../../../../../node_modules/yaml/dist/index.js","../../../../../node_modules/yaml/index.js","../../../../../node_modules/resolve-from/index.js","../../../../../node_modules/import-from/index.js","../../../../../node_modules/import-cwd/index.js","../../../../../node_modules/postcss-load-config/src/options.js","../../../../../node_modules/postcss-load-config/src/plugins.js","../../../../../node_modules/@cspotcode/source-map-consumer/lib/util.js","../../../../../node_modules/@cspotcode/source-map-consumer/lib/binary-search.js","../../../../../node_modules/@cspotcode/source-map-consumer/lib/array-set.js","../../../../../node_modules/@cspotcode/source-map-consumer/lib/read-wasm.js","../../../../../node_modules/@cspotcode/source-map-consumer/lib/wasm.js","../../../../../node_modules/@cspotcode/source-map-consumer/lib/source-map-consumer.js","../../../../../node_modules/@cspotcode/source-map-consumer/source-map.js","../../../../../node_modules/@cspotcode/source-map-support/source-map-support.js","../../../../../node_modules/make-error/index.js","../../../../../node_modules/yn/lenient.js","../../../../../node_modules/yn/index.js","../../../../../node_modules/create-require/create-require.js","../../../../../node_modules/ts-node/dist/util.js","../../../../../node_modules/ts-node/dist/ts-internals.js","../../../../../node_modules/ts-node/dist/tsconfigs.js","../../../../../node_modules/ts-node/dist/configuration.js","../../../../../node_modules/ts-node/dist/module-type-classifier.js","../../../../../node_modules/ts-node/dist/resolver-functions.js","../../../../../node_modules/diff/lib/index.es6.js","../../../../../node_modules/ts-node/dist-raw/node-primordials.js","../../../../../node_modules/acorn/dist/acorn.js","../../../../../node_modules/ts-node/node_modules/acorn-walk/dist/walk.js","../../../../../node_modules/ts-node/dist-raw/node-repl-await.js","../../../../../node_modules/ts-node/dist/repl.js","../../../../../node_modules/ts-node/dist-raw/node-internal-fs.js","../../../../../node_modules/arg/index.js","../../../../../node_modules/ts-node/dist-raw/node-package-json-reader.js","../../../../../node_modules/ts-node/dist-raw/node-cjs-loader-utils.js","../../../../../node_modules/ts-node/dist/index.js","../../../../../node_modules/postcss-load-config/src/index.js","../../../node_modules/@rollup/pluginutils/dist/es/index.js","../../../src/node/plugins/css.ts","../../../../../node_modules/es-module-lexer/dist/lexer.js","../../../src/node/importGlob.ts","../../../src/node/plugins/importAnalysisBuild.ts","../../../src/node/plugins/modulePreloadPolyfill.ts","../../../src/node/plugins/html.ts","../../../node_modules/strip-bom/index.js","../../../../../node_modules/strip-json-comments/index.js","../../../src/node/plugins/esbuild.ts","../../../../../node_modules/okie/dist/index.js","../../../src/node/plugins/terser.ts","../../../src/node/plugins/manifest.ts","../../../../../node_modules/@rollup/pluginutils/dist/es/index.js","../../../../../node_modules/commondir/index.js","../../../../../node_modules/fs.realpath/old.js","../../../../../node_modules/fs.realpath/index.js","../../../../../node_modules/concat-map/index.js","../../../../../node_modules/balanced-match/index.js","../../../../../node_modules/brace-expansion/index.js","../../../../../node_modules/minimatch/minimatch.js","../../../../../node_modules/inherits/inherits_browser.js","../../../../../node_modules/inherits/inherits.js","../../../../../node_modules/path-is-absolute/index.js","../../../../../node_modules/glob/common.js","../../../../../node_modules/glob/sync.js","../../../../../node_modules/wrappy/wrappy.js","../../../../../node_modules/once/once.js","../../../../../node_modules/inflight/inflight.js","../../../../../node_modules/glob/glob.js","../../../../../node_modules/estree-walker/dist/esm/estree-walker.js","../../../../../node_modules/is-reference/dist/is-reference.es.js","../../../../../node_modules/@rollup/plugin-commonjs/dist/index.es.js","../../../../../node_modules/array-union/index.js","../../../../../node_modules/path-type/index.js","../../../../../node_modules/dir-glob/index.js","../../../../../node_modules/globby/node_modules/ignore/index.js","../../../../../node_modules/slash/index.js","../../../../../node_modules/globby/gitignore.js","../../../../../node_modules/globby/stream-utils.js","../../../../../node_modules/globby/index.js","../../../../../node_modules/@rollup/plugin-dynamic-import-vars/dist/index.es.js","../../../src/node/plugins/dataUri.ts","../../../../../node_modules/resolve.exports/dist/index.mjs","../../../src/node/plugins/resolve.ts","../../../src/node/ssr/ssrExternal.ts","../../../src/node/ssr/ssrManifestPlugin.ts","../../../../../node_modules/acorn/dist/acorn.mjs","../../../../../node_modules/acorn-private-class-elements/index.js","../../../../../node_modules/acorn-class-fields/index.js","../../../../../node_modules/acorn-numeric-separator/dist/acorn-numeric-separator.mjs","../../../../../node_modules/acorn-static-class-features/index.js","../../../../../node_modules/ansi-regex/index.js","../../../../../node_modules/strip-ansi/index.js","../../../src/node/server/middlewares/error.ts","../../../src/node/server/pluginContainer.ts","../../../src/node/optimizer/scan.ts","../../../src/node/plugins/assetImportMetaUrl.ts","../../../src/node/plugins/loadFallback.ts","../../../src/node/build.ts","../../../../../node_modules/ms/index.js","../../../../../node_modules/connect/node_modules/debug/src/debug.js","../../../../../node_modules/connect/node_modules/debug/src/browser.js","../../../../../node_modules/connect/node_modules/debug/src/node.js","../../../../../node_modules/connect/node_modules/debug/src/index.js","../../../../../node_modules/finalhandler/node_modules/debug/src/debug.js","../../../../../node_modules/finalhandler/node_modules/debug/src/browser.js","../../../../../node_modules/finalhandler/node_modules/debug/src/node.js","../../../../../node_modules/finalhandler/node_modules/debug/src/index.js","../../../../../node_modules/encodeurl/index.js","../../../../../node_modules/escape-html/index.js","../../../../../node_modules/ee-first/index.js","../../../../../node_modules/on-finished/index.js","../../../../../node_modules/parseurl/index.js","../../../../../node_modules/statuses/index.js","../../../../../node_modules/unpipe/index.js","../../../../../node_modules/finalhandler/index.js","../../../../../node_modules/utils-merge/index.js","../../../../../node_modules/connect/index.js","../../../../../node_modules/object-assign/index.js","../../../../../node_modules/vary/index.js","../../../../../node_modules/cors/lib/index.js","../../../../../node_modules/readdirp/index.js","../../../../../node_modules/normalize-path/index.js","../../../../../node_modules/anymatch/index.js","../../../../../node_modules/binary-extensions/index.js","../../../../../node_modules/is-binary-path/index.js","../../../../../node_modules/chokidar/lib/constants.js","../../../../../node_modules/chokidar/lib/nodefs-handler.js","../../../../../node_modules/chokidar/lib/fsevents-handler.js","../../../../../node_modules/chokidar/index.js","../../../src/node/server/http.ts","../../../../../node_modules/ws/lib/constants.js","../../../../../node_modules/ws/lib/buffer-util.js","../../../../../node_modules/ws/lib/limiter.js","../../../../../node_modules/ws/lib/permessage-deflate.js","../../../../../node_modules/ws/lib/validation.js","../../../../../node_modules/ws/lib/receiver.js","../../../../../node_modules/ws/lib/sender.js","../../../../../node_modules/ws/lib/event-target.js","../../../../../node_modules/ws/lib/extension.js","../../../../../node_modules/ws/lib/websocket.js","../../../../../node_modules/ws/lib/stream.js","../../../../../node_modules/ws/lib/websocket-server.js","../../../../../node_modules/ws/index.js","../../../src/node/server/ws.ts","../../../src/node/server/middlewares/base.ts","../../../../../node_modules/eventemitter3/index.js","../../../../../node_modules/requires-port/index.js","../../../../../node_modules/http-proxy/lib/http-proxy/common.js","../../../../../node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js","../../../../../node_modules/follow-redirects/debug.js","../../../../../node_modules/follow-redirects/index.js","../../../../../node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js","../../../../../node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js","../../../../../node_modules/http-proxy/lib/http-proxy/index.js","../../../../../node_modules/http-proxy/lib/http-proxy.js","../../../../../node_modules/http-proxy/index.js","../../../src/node/server/middlewares/proxy.ts","../../../../../node_modules/etag/index.js","../../../src/node/server/send.ts","../../../../../node_modules/safe-buffer/index.js","../../../../../node_modules/convert-source-map/index.js","../../../../../node_modules/periscopic/dist/periscopic.mjs","../../../src/node/ssr/ssrTransform.ts","../../../src/node/server/sourcemap.ts","../../../../../node_modules/@polka/url/build.mjs","../../../../../node_modules/totalist/sync/index.mjs","../../../../../node_modules/sirv/build.mjs","../../../src/node/server/middlewares/static.ts","../../../src/node/server/transformRequest.ts","../../../src/node/server/middlewares/transform.ts","../../../src/node/server/middlewares/indexHtml.ts","../../../../../node_modules/connect-history-api-fallback/lib/index.js","../../../src/node/server/middlewares/time.ts","../../../src/node/server/moduleGraph.ts","../../../src/node/server/hmr.ts","../../../../../node_modules/is-docker/index.js","../../../../../node_modules/is-wsl/index.js","../../../../../node_modules/define-lazy-prop/index.js","../../../../../node_modules/open/index.js","../../../../../node_modules/isexe/windows.js","../../../../../node_modules/isexe/mode.js","../../../../../node_modules/isexe/index.js","../../../../../node_modules/cross-spawn/node_modules/which/which.js","../../../../../node_modules/cross-spawn/node_modules/path-key/index.js","../../../../../node_modules/cross-spawn/lib/util/resolveCommand.js","../../../../../node_modules/cross-spawn/lib/util/escape.js","../../../../../node_modules/cross-spawn/node_modules/shebang-regex/index.js","../../../../../node_modules/cross-spawn/node_modules/shebang-command/index.js","../../../../../node_modules/cross-spawn/lib/util/readShebang.js","../../../../../node_modules/cross-spawn/lib/parse.js","../../../../../node_modules/cross-spawn/lib/enoent.js","../../../../../node_modules/cross-spawn/index.js","../../../../../node_modules/strip-final-newline/index.js","../../../../../node_modules/npm-run-path/node_modules/path-key/index.js","../../../../../node_modules/npm-run-path/index.js","../../../../../node_modules/mimic-fn/index.js","../../../../../node_modules/onetime/index.js","../../../../../node_modules/human-signals/build/src/core.js","../../../../../node_modules/human-signals/build/src/realtime.js","../../../../../node_modules/human-signals/build/src/signals.js","../../../../../node_modules/human-signals/build/src/main.js","../../../../../node_modules/execa/lib/error.js","../../../../../node_modules/execa/lib/stdio.js","../../../../../node_modules/signal-exit/signals.js","../../../../../node_modules/signal-exit/index.js","../../../../../node_modules/execa/lib/kill.js","../../../../../node_modules/is-stream/index.js","../../../../../node_modules/get-stream/buffer-stream.js","../../../../../node_modules/get-stream/index.js","../../../../../node_modules/merge-stream/index.js","../../../../../node_modules/execa/lib/stream.js","../../../../../node_modules/execa/lib/promise.js","../../../../../node_modules/execa/lib/command.js","../../../../../node_modules/execa/index.js","../../../src/node/server/openBrowser.ts","../../../../../node_modules/launch-editor/node_modules/escape-string-regexp/index.js","../../../../../node_modules/color-convert/node_modules/color-name/index.js","../../../../../node_modules/color-convert/conversions.js","../../../../../node_modules/color-convert/route.js","../../../../../node_modules/color-convert/index.js","../../../../../node_modules/launch-editor/node_modules/ansi-styles/index.js","../../../../../node_modules/launch-editor/node_modules/has-flag/index.js","../../../../../node_modules/launch-editor/node_modules/supports-color/index.js","../../../../../node_modules/launch-editor/node_modules/chalk/templates.js","../../../../../node_modules/launch-editor/node_modules/chalk/index.js","../../../../../node_modules/shell-quote/index.js","../../../../../node_modules/launch-editor/editor-info/osx.js","../../../../../node_modules/launch-editor/editor-info/linux.js","../../../../../node_modules/launch-editor/editor-info/windows.js","../../../../../node_modules/launch-editor/guess.js","../../../../../node_modules/launch-editor/get-args.js","../../../../../node_modules/launch-editor/index.js","../../../../../node_modules/launch-editor-middleware/index.js","../../../src/node/optimizer/esbuildDepPlugin.ts","../../../src/node/optimizer/index.ts","../../../../../node_modules/source-map/lib/base64.js","../../../../../node_modules/source-map/lib/base64-vlq.js","../../../../../node_modules/source-map/lib/util.js","../../../../../node_modules/source-map/lib/array-set.js","../../../../../node_modules/source-map/lib/mapping-list.js","../../../../../node_modules/source-map/lib/source-map-generator.js","../../../../../node_modules/source-map/lib/binary-search.js","../../../../../node_modules/source-map/lib/quick-sort.js","../../../../../node_modules/source-map/lib/source-map-consumer.js","../../../../../node_modules/source-map/lib/source-node.js","../../../../../node_modules/source-map/source-map.js","../../../src/node/ssr/ssrStacktrace.ts","../../../src/node/ssr/ssrModuleLoader.ts","../../../src/node/optimizer/registerMissing.ts","../../../src/node/server/searchRoot.ts","../../../src/node/server/index.ts","../../../../../node_modules/@rollup/plugin-alias/dist/index.es.js","../../../src/node/plugins/json.ts","../../../src/node/plugins/importAnalysis.ts","../../../src/node/plugins/clientInjections.ts","../../../src/node/plugins/wasm.ts","../../../src/node/plugins/worker.ts","../../../src/node/plugins/preAlias.ts","../../../src/node/plugins/define.ts","../../../src/node/plugins/index.ts","../../../../../node_modules/dotenv/lib/main.js","../../../../../node_modules/dotenv-expand/lib/main.js","../../../src/node/config.ts"],"sourcesContent":["'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n","var Stream = require(\"stream\")\nvar writeMethods = [\"write\", \"end\", \"destroy\"]\nvar readMethods = [\"resume\", \"pause\"]\nvar readEvents = [\"data\", \"close\"]\nvar slice = Array.prototype.slice\n\nmodule.exports = duplex\n\nfunction forEach (arr, fn) {\n if (arr.forEach) {\n return arr.forEach(fn)\n }\n\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i], i)\n }\n}\n\nfunction duplex(writer, reader) {\n var stream = new Stream()\n var ended = false\n\n forEach(writeMethods, proxyWriter)\n\n forEach(readMethods, proxyReader)\n\n forEach(readEvents, proxyStream)\n\n reader.on(\"end\", handleEnd)\n\n writer.on(\"drain\", function() {\n stream.emit(\"drain\")\n })\n\n writer.on(\"error\", reemit)\n reader.on(\"error\", reemit)\n\n stream.writable = writer.writable\n stream.readable = reader.readable\n\n return stream\n\n function proxyWriter(methodName) {\n stream[methodName] = method\n\n function method() {\n return writer[methodName].apply(writer, arguments)\n }\n }\n\n function proxyReader(methodName) {\n stream[methodName] = method\n\n function method() {\n stream.emit(methodName)\n var func = reader[methodName]\n if (func) {\n return func.apply(reader, arguments)\n }\n reader.emit(methodName)\n }\n }\n\n function proxyStream(methodName) {\n reader.on(methodName, reemit)\n\n function reemit() {\n var args = slice.call(arguments)\n args.unshift(methodName)\n stream.emit.apply(stream, args)\n }\n }\n\n function handleEnd() {\n if (ended) {\n return\n }\n ended = true\n var args = slice.call(arguments)\n args.unshift(\"end\")\n stream.emit.apply(stream, args)\n }\n\n function reemit(err) {\n stream.emit(\"error\", err)\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst zlib_1 = require(\"zlib\");\nconst stream_1 = require(\"stream\");\nconst fs_1 = require(\"fs\");\nconst util_1 = require(\"util\");\nconst duplexer = require('duplexer');\nconst readFilePromise = util_1.promisify(fs_1.readFile);\nconst bufferFormatter = (incoming) => typeof incoming === 'string' ? Buffer.from(incoming, 'utf8') : incoming;\nconst optionFormatter = (passed, toEncode) => ({\n params: {\n [zlib_1.constants.BROTLI_PARAM_MODE]: passed && 'mode' in passed && passed.mode || zlib_1.constants.BROTLI_DEFAULT_MODE,\n [zlib_1.constants.BROTLI_PARAM_QUALITY]: passed && 'quality' in passed && passed.quality || zlib_1.constants.BROTLI_MAX_QUALITY,\n [zlib_1.constants.BROTLI_PARAM_SIZE_HINT]: toEncode ? toEncode.byteLength : 0,\n }\n});\n/**\n * @param incoming Either a Buffer or string of the value to encode.\n * @param options Subset of Encoding Parameters.\n * @return Promise that resolves with the encoded Buffer length.\n */\nasync function size(incoming, options) {\n const buffer = bufferFormatter(incoming);\n return new Promise(function (resolve, reject) {\n zlib_1.brotliCompress(buffer, optionFormatter(options, buffer), (error, result) => {\n if (error !== null) {\n reject(error);\n }\n resolve(result.byteLength);\n });\n });\n}\nexports.default = size;\n/**\n * @param incoming Either a Buffer or string of the value to encode.\n * @param options Subset of Encoding Parameters.\n * @return Length of encoded Buffer.\n */\nfunction sync(incoming, options) {\n const buffer = bufferFormatter(incoming);\n return zlib_1.brotliCompressSync(buffer, optionFormatter(options, buffer)).byteLength;\n}\nexports.sync = sync;\n/**\n * @param options\n * @return PassThroughStream for the contents being compressed\n */\nfunction stream(options) {\n const input = new stream_1.PassThrough();\n const output = new stream_1.PassThrough();\n const wrapper = duplexer(input, output);\n let size = 0;\n const brotli = zlib_1.createBrotliCompress(optionFormatter(options))\n .on('data', buf => {\n size += buf.length;\n })\n .on('error', () => {\n wrapper.brotliSize = 0;\n })\n .on('end', () => {\n wrapper.brotliSize = size;\n wrapper.emit('brotli-size', size);\n output.end();\n });\n input.pipe(brotli);\n input.pipe(output, { end: false });\n return wrapper;\n}\nexports.stream = stream;\n/**\n * @param path File Path for the file to compress.\n * @param options Subset of Encoding Parameters.\n * @return Promise that resolves with size of encoded file.\n */\nasync function file(path, options) {\n const file = await readFilePromise(path);\n return (await size(file, options));\n}\nexports.file = file;\n/**\n * @param path File Path for the file to compress.\n * @param options Subset of Encoding Parameters.\n * @return size of encoded file.\n */\nfunction fileSync(path, options) {\n const file = fs_1.readFileSync(path);\n return sync(file, options);\n}\nexports.fileSync = fileSync;\n//# sourceMappingURL=index.js.map","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","import path from 'path'\n\nexport const DEFAULT_MAIN_FIELDS = [\n 'module',\n 'jsnext:main', // moment still uses this...\n 'jsnext'\n]\n\nexport const DEFAULT_EXTENSIONS = [\n '.mjs',\n '.js',\n '.ts',\n '.jsx',\n '.tsx',\n '.json'\n]\n\nexport const JS_TYPES_RE = /\\.(?:j|t)sx?$|\\.mjs$/\n\nexport const OPTIMIZABLE_ENTRY_RE = /\\.(?:m?js|ts)$/\n\nexport const SPECIAL_QUERY_RE = /[\\?&](?:worker|sharedworker|raw|url)\\b/\n\n/**\n * Prefix for resolved fs paths, since windows paths may not be valid as URLs.\n */\nexport const FS_PREFIX = `/@fs/`\n\n/**\n * Prefix for resolved Ids that are not valid browser import specifiers\n */\nexport const VALID_ID_PREFIX = `/@id/`\n\n/**\n * Some Rollup plugins use ids that starts with the null byte \\0 to avoid\n * collisions, but it is not permitted in import URLs so we have to replace\n * them.\n */\nexport const NULL_BYTE_PLACEHOLDER = `__x00__`\n\nexport const CLIENT_PUBLIC_PATH = `/@vite/client`\nexport const ENV_PUBLIC_PATH = `/@vite/env`\n// eslint-disable-next-line node/no-missing-require\nexport const CLIENT_ENTRY = require.resolve('vite/dist/client/client.mjs')\n// eslint-disable-next-line node/no-missing-require\nexport const ENV_ENTRY = require.resolve('vite/dist/client/env.mjs')\nexport const CLIENT_DIR = path.dirname(CLIENT_ENTRY)\n\n// ** READ THIS ** before editing `KNOWN_ASSET_TYPES`.\n// If you add an asset to `KNOWN_ASSET_TYPES`, make sure to also add it\n// to the TypeScript declaration file `packages/vite/client.d.ts`.\nexport const KNOWN_ASSET_TYPES = [\n // images\n 'png',\n 'jpe?g',\n 'gif',\n 'svg',\n 'ico',\n 'webp',\n 'avif',\n\n // media\n 'mp4',\n 'webm',\n 'ogg',\n 'mp3',\n 'wav',\n 'flac',\n 'aac',\n\n // fonts\n 'woff2?',\n 'eot',\n 'ttf',\n 'otf',\n\n // other\n 'wasm',\n 'webmanifest',\n 'pdf'\n]\n\nexport const DEFAULT_ASSETS_RE = new RegExp(\n `\\\\.(` + KNOWN_ASSET_TYPES.join('|') + `)(\\\\?.*)?$`\n)\n\nexport const DEP_VERSION_RE = /[\\?&](v=[\\w\\.-]+)\\b/\n","'use strict';\nconst {builtinModules} = require('module');\n\nconst ignoreList = [\n\t'sys'\n];\n\n// eslint-disable-next-line node/no-deprecated-api\nmodule.exports = (builtinModules || Object.keys(process.binding('natives')))\n\t.filter(x => !/^_|^(internal|v8|node-inspect)\\/|\\//.test(x) && !ignoreList.includes(x))\n\t.sort();\n","var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nfor (var i = 0; i < chars.length; i++) {\n charToInteger[chars.charCodeAt(i)] = i;\n}\nfunction decode(mappings) {\n var decoded = [];\n var line = [];\n var segment = [\n 0,\n 0,\n 0,\n 0,\n 0,\n ];\n var j = 0;\n for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {\n var c = mappings.charCodeAt(i);\n if (c === 44) { // \",\"\n segmentify(line, segment, j);\n j = 0;\n }\n else if (c === 59) { // \";\"\n segmentify(line, segment, j);\n j = 0;\n decoded.push(line);\n line = [];\n segment[0] = 0;\n }\n else {\n var integer = charToInteger[c];\n if (integer === undefined) {\n throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n }\n var hasContinuationBit = integer & 32;\n integer &= 31;\n value += integer << shift;\n if (hasContinuationBit) {\n shift += 5;\n }\n else {\n var shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = value === 0 ? -0x80000000 : -value;\n }\n segment[j] += value;\n j++;\n value = shift = 0; // reset\n }\n }\n }\n segmentify(line, segment, j);\n decoded.push(line);\n return decoded;\n}\nfunction segmentify(line, segment, j) {\n // This looks ugly, but we're creating specialized arrays with a specific\n // length. This is much faster than creating a new array (which v8 expands to\n // a capacity of 17 after pushing the first item), or slicing out a subarray\n // (which is slow). Length 4 is assumed to be the most frequent, followed by\n // length 5 (since not everything will have an associated name), followed by\n // length 1 (it's probably rare for a source substring to not have an\n // associated segment data).\n if (j === 4)\n line.push([segment[0], segment[1], segment[2], segment[3]]);\n else if (j === 5)\n line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);\n else if (j === 1)\n line.push([segment[0]]);\n}\nfunction encode(decoded) {\n var sourceFileIndex = 0; // second field\n var sourceCodeLine = 0; // third field\n var sourceCodeColumn = 0; // fourth field\n var nameIndex = 0; // fifth field\n var mappings = '';\n for (var i = 0; i < decoded.length; i++) {\n var line = decoded[i];\n if (i > 0)\n mappings += ';';\n if (line.length === 0)\n continue;\n var generatedCodeColumn = 0; // first field\n var lineMappings = [];\n for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n var segment = line_1[_i];\n var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n generatedCodeColumn = segment[0];\n if (segment.length > 1) {\n segmentMappings +=\n encodeInteger(segment[1] - sourceFileIndex) +\n encodeInteger(segment[2] - sourceCodeLine) +\n encodeInteger(segment[3] - sourceCodeColumn);\n sourceFileIndex = segment[1];\n sourceCodeLine = segment[2];\n sourceCodeColumn = segment[3];\n }\n if (segment.length === 5) {\n segmentMappings += encodeInteger(segment[4] - nameIndex);\n nameIndex = segment[4];\n }\n lineMappings.push(segmentMappings);\n }\n mappings += lineMappings.join(',');\n }\n return mappings;\n}\nfunction encodeInteger(num) {\n var result = '';\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n var clamped = num & 31;\n num >>>= 5;\n if (num > 0) {\n clamped |= 32;\n }\n result += chars[clamped];\n } while (num > 0);\n return result;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Creates a brand new (prototype-less) object with the enumerable-own\n * properties of `target`. Any enumerable-own properties from `source` which\n * are not present on `target` will be copied as well.\n */\nfunction defaults(target, source) {\n return Object.assign(Object.create(null), source, target);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Decodes an input sourcemap into a `DecodedSourceMap` sourcemap object.\n *\n * Valid input maps include a `DecodedSourceMap`, a `RawSourceMap`, or JSON\n * representations of either type.\n */\nfunction decodeSourceMap(map) {\n if (typeof map === 'string') {\n map = JSON.parse(map);\n }\n let { mappings } = map;\n if (typeof mappings === 'string') {\n mappings = sortMappings(decode(mappings), true);\n }\n else {\n // Clone the Line so that we can sort it. We don't want to mutate an array\n // that we don't own directly.\n mappings = sortMappings(mappings, false);\n }\n return defaults({ mappings }, map);\n}\nfunction firstUnsortedSegmentLine(mappings) {\n for (let i = 0; i < mappings.length; i++) {\n const segments = mappings[i];\n for (let j = 1; j < segments.length; j++) {\n if (segments[j][0] < segments[j - 1][0]) {\n return i;\n }\n }\n }\n return mappings.length;\n}\nfunction sortMappings(mappings, owned) {\n const unosrtedIndex = firstUnsortedSegmentLine(mappings);\n if (unosrtedIndex === mappings.length)\n return mappings;\n if (!owned)\n mappings = mappings.slice();\n for (let i = unosrtedIndex; i < mappings.length; i++) {\n mappings[i] = sortSegments(mappings[i], owned);\n }\n return mappings;\n}\nfunction sortSegments(segments, owned) {\n if (!owned)\n segments = segments.slice();\n return segments.sort(segmentComparator);\n}\nfunction segmentComparator(a, b) {\n return a[0] - b[0];\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A \"leaf\" node in the sourcemap tree, representing an original, unmodified\n * source file. Recursive segment tracing ends at the `OriginalSource`.\n */\nclass OriginalSource {\n constructor(filename, content) {\n this.filename = filename;\n this.content = content;\n }\n /**\n * Tracing a `SourceMapSegment` ends when we get to an `OriginalSource`,\n * meaning this line/column location originated from this source file.\n */\n traceSegment(line, column, name) {\n return { column, line, name, source: this };\n }\n}\n\n/* istanbul ignore next */\nconst Url = (typeof URL !== 'undefined' ? URL : require('url').URL);\n// Matches \"..\", which must be preceeded by \"/\" or the start of the string, and\n// must be followed by a \"/\". We do not eat the following \"/\", so that the next\n// iteration can match on it.\nconst parentRegex = /(^|\\/)\\.\\.(?=\\/|$)/g;\nfunction isAbsoluteUrl(url) {\n try {\n return !!new Url(url);\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Creates a directory name that is guaranteed to not be in `str`.\n */\nfunction uniqInStr(str) {\n let uniq = String(Math.random()).slice(2);\n while (str.indexOf(uniq) > -1) {\n /* istanbul ignore next */\n uniq += uniq;\n }\n return uniq;\n}\n/**\n * Removes the filename from the path (everything trailing the last \"/\"). This\n * is only safe to call on a path, never call with an absolute or protocol\n * relative URL.\n */\nfunction stripPathFilename(path) {\n path = normalizePath(path);\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n/**\n * Normalizes a protocol-relative URL, but keeps it protocol relative by\n * stripping out the protocl before returning it.\n */\nfunction normalizeProtocolRelative(input, absoluteBase) {\n const { href, protocol } = new Url(input, absoluteBase);\n return href.slice(protocol.length);\n}\n/**\n * Normalizes a simple path (one that has no \"..\"s, or is absolute so \"..\"s can\n * be normalized absolutely).\n */\nfunction normalizeSimplePath(input) {\n const { href } = new Url(input, 'https://foo.com/');\n return href.slice('https://foo.com/'.length);\n}\n/**\n * Normalizes a path, ensuring that excess \"..\"s are preserved for relative\n * paths in the output.\n *\n * If the input is absolute, this will return an absolutey normalized path, but\n * it will not have a leading \"/\".\n *\n * If the input has a leading \"..\", the output will have a leading \"..\".\n *\n * If the input has a leading \".\", the output will not have a leading \".\"\n * unless there are too many \"..\"s, in which case there will be a leading \"..\".\n */\nfunction normalizePath(input) {\n // If there are no \"..\"s, we can treat this as if it were an absolute path.\n // The return won't be an absolute path, so it's easy.\n if (!parentRegex.test(input))\n return normalizeSimplePath(input);\n // We already found one \"..\". Let's see how many there are.\n let total = 1;\n while (parentRegex.test(input))\n total++;\n // If there are \"..\"s, we need to prefix the the path with the same number of\n // unique directories. This is to ensure that we \"remember\" how many parent\n // directories we are accessing. Eg, \"../../..\" must keep 3, and \"foo/../..\"\n // must keep 1.\n const uniqDirectory = `z${uniqInStr(input)}/`;\n // uniqDirectory is just a \"z\", followed by numbers, followed by a \"/\". So\n // generating a runtime regex from it is safe. We'll use this search regex to\n // strip out our uniq directory names and insert any needed \"..\"s.\n const search = new RegExp(`^(?:${uniqDirectory})*`);\n // Now we can resolve the total path. If there are excess \"..\"s, they will\n // eliminate one or more of the unique directories we prefix with.\n const relative = normalizeSimplePath(uniqDirectory.repeat(total) + input);\n // We can now count the number of unique directories that were eliminated. If\n // there were 3, and 1 was eliminated, we know we only need to add 1 \"..\". If\n // 2 were eliminated, we need to insert 2 \"..\"s. If all 3 were eliminated,\n // then we need 3, etc. This replace is guranteed to match (it may match 0 or\n // more times), and we can count the total match to see how many were eliminated.\n return relative.replace(search, (all) => {\n const leftover = all.length / uniqDirectory.length;\n return '../'.repeat(total - leftover);\n });\n}\n/**\n * Attempts to resolve `input` URL relative to `base`.\n */\nfunction resolve(input, base) {\n if (!base)\n base = '';\n // Absolute URLs are very easy to resolve right.\n if (isAbsoluteUrl(input))\n return new Url(input).href;\n if (base) {\n // Absolute URLs are easy...\n if (isAbsoluteUrl(base))\n return new Url(input, base).href;\n // If base is protocol relative, we'll resolve with it but keep the result\n // protocol relative.\n if (base.startsWith('//'))\n return normalizeProtocolRelative(input, `https:${base}`);\n }\n // Normalize input, but keep it protocol relative. We know base doesn't supply\n // a protocol, because that would have been handled above.\n if (input.startsWith('//'))\n return normalizeProtocolRelative(input, 'https://foo.com/');\n // We now know that base (if there is one) and input are paths. We've handled\n // both absolute and protocol-relative variations above.\n // Absolute paths don't need any special handling, because they cannot have\n // extra \".\" or \"..\"s. That'll all be stripped away. Input takes priority here,\n // because if input is an absolute path, base path won't affect it in any way.\n if (input.startsWith('/'))\n return '/' + normalizeSimplePath(input);\n // Since input and base are paths, we need to join them to do any further\n // processing. Paths are joined at the directory level, so we need to remove\n // the base's filename before joining. We also know that input does not have a\n // leading slash, and that the stripped base will have a trailing slash if\n // there are any directories (or it'll be empty).\n const joined = stripPathFilename(base) + input;\n // If base is an absolute path, then input will be relative to it.\n if (base.startsWith('/'))\n return '/' + normalizeSimplePath(joined);\n // We now know both base (if there is one) and input are relative paths.\n const relative = normalizePath(joined);\n // If base started with a leading \".\", or there is no base and input started\n // with a \".\", then we need to ensure that the relative path starts with a\n // \".\". We don't know if relative starts with a \"..\", though, so check before\n // prepending.\n if ((base || input).startsWith('.') && !relative.startsWith('.')) {\n return './' + relative;\n }\n return relative;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction resolve$1(input, base) {\n // The base is always treated as a directory, if it's not empty.\n // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327\n // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401\n if (base && !base.endsWith('/'))\n base += '/';\n return resolve(input, base);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A binary search implementation that returns the index if a match is found,\n * or the negated index of where the `needle` should be inserted.\n *\n * The `comparator` callback receives both the `item` under comparison and the\n * needle we are searching for. It must return `0` if the `item` is a match,\n * any negative number if `item` is too small (and we must search after it), or\n * any positive number if the `item` is too large (and we must search before\n * it).\n *\n * If no match is found, a negated index of where to insert the `needle` is\n * returned. This negated index is guaranteed to be less than 0. To insert an\n * item, negate it (again) and splice:\n *\n * ```js\n * const array = [1, 3];\n * const needle = 2;\n * const index = binarySearch(array, needle, (item, needle) => item - needle);\n *\n * assert.equal(index, -2);\n * assert.equal(~index, 1);\n * array.splice(~index, 0, needle);\n * assert.deepEqual(array, [1, 2, 3]);\n * ```\n */\nfunction binarySearch(haystack, needle, comparator, low, high) {\n low = Math.max(low, 0);\n while (low <= high) {\n const mid = low + ((high - low) >> 1);\n const cmp = comparator(haystack[mid], needle);\n if (cmp === 0) {\n return mid;\n }\n if (cmp < 0) {\n low = mid + 1;\n }\n else {\n high = mid - 1;\n }\n }\n return ~low;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * FastStringArray acts like a `Set` (allowing only one occurrence of a string\n * `key`), but provides the index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of\n * the backing array, like how `sourcesContent[i]` is the source content\n * associated with `source[i]`, and there are never duplicates.\n */\nclass FastStringArray {\n constructor() {\n this.indexes = Object.create(null);\n this.array = [];\n }\n /**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\n put(key) {\n const { array, indexes } = this;\n // The key may or may not be present. If it is present, it's a number.\n let index = indexes[key];\n // If it's not yet present, we need to insert it and track the index in the\n // indexes.\n if (index === undefined) {\n index = indexes[key] = array.length;\n array.push(key);\n }\n return index;\n }\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * SourceMapTree represents a single sourcemap, with the ability to trace\n * mappings into its child nodes (which may themselves be SourceMapTrees).\n */\nclass SourceMapTree {\n constructor(map, sources) {\n this.map = map;\n this.sources = sources;\n this.lastLine = 0;\n this.lastColumn = 0;\n this.lastIndex = 0;\n }\n /**\n * traceMappings is only called on the root level SourceMapTree, and begins\n * the process of resolving each mapping in terms of the original source\n * files.\n */\n traceMappings() {\n const mappings = [];\n const names = new FastStringArray();\n const sources = new FastStringArray();\n const sourcesContent = [];\n const { mappings: rootMappings, names: rootNames } = this.map;\n for (let i = 0; i < rootMappings.length; i++) {\n const segments = rootMappings[i];\n const tracedSegments = [];\n let lastTraced = undefined;\n for (let j = 0; j < segments.length; j++) {\n const segment = segments[j];\n // 1-length segments only move the current generated column, there's no\n // source information to gather from it.\n if (segment.length === 1)\n continue;\n const source = this.sources[segment[1]];\n const traced = source.traceSegment(segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : '');\n if (!traced)\n continue;\n // So we traced a segment down into its original source file. Now push a\n // new segment pointing to this location.\n const { column, line, name } = traced;\n const { content, filename } = traced.source;\n // Store the source location, and ensure we keep sourcesContent up to\n // date with the sources array.\n const sourceIndex = sources.put(filename);\n sourcesContent[sourceIndex] = content;\n if (lastTraced &&\n lastTraced[1] === sourceIndex &&\n lastTraced[2] === line &&\n lastTraced[3] === column) {\n // This is a duplicate mapping pointing at the exact same starting point in the source file.\n // It doesn't provide any new information, and only bloats the sourcemap.\n continue;\n }\n // This looks like unnecessary duplication, but it noticeably increases\n // performance. If we were to push the nameIndex onto length-4 array, v8\n // would internally allocate 22 slots! That's 68 wasted bytes! Array\n // literals have the same capacity as their length, saving memory.\n if (name) {\n lastTraced = [segment[0], sourceIndex, line, column, names.put(name)];\n }\n else {\n lastTraced = [segment[0], sourceIndex, line, column];\n }\n tracedSegments.push(lastTraced);\n }\n mappings.push(tracedSegments);\n }\n // TODO: Make all sources relative to the sourceRoot.\n return defaults({\n mappings,\n names: names.array,\n sources: sources.array,\n sourcesContent,\n }, this.map);\n }\n /**\n * traceSegment is only called on children SourceMapTrees. It recurses down\n * into its own child SourceMapTrees, until we find the original source map.\n */\n traceSegment(line, column, name) {\n const { mappings, names } = this.map;\n // It's common for parent sourcemaps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= mappings.length)\n return null;\n const segments = mappings[line];\n if (segments.length === 0)\n return null;\n let low = 0;\n let high = segments.length - 1;\n if (line === this.lastLine) {\n if (column >= this.lastColumn) {\n low = this.lastIndex;\n }\n else {\n high = this.lastIndex;\n }\n }\n let index = binarySearch(segments, column, segmentComparator$1, low, high);\n this.lastLine = line;\n this.lastColumn = column;\n if (index === -1) {\n this.lastIndex = index;\n return null; // we come before any mapped segment\n }\n // If we can't find a segment that lines up to this column, we use the\n // segment before.\n if (index < 0) {\n index = ~index - 1;\n }\n this.lastIndex = index;\n const segment = segments[index];\n // 1-length segments only move the current generated column, there's no\n // source information to gather from it.\n if (segment.length === 1)\n return null;\n const source = this.sources[segment[1]];\n // So now we can recurse down, until we hit the original source file.\n return source.traceSegment(segment[2], segment[3], \n // A child map's recorded name for this segment takes precedence over the\n // parent's mapped name. Imagine a mangler changing the name over, etc.\n segment.length === 5 ? names[segment[4]] : name);\n }\n}\nfunction segmentComparator$1(segment, column) {\n return segment[0] - column;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Removes the filename from a path.\n */\nfunction stripFilename(path) {\n if (!path)\n return '';\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction asArray(value) {\n if (Array.isArray(value))\n return value;\n return [value];\n}\n/**\n * Recursively builds a tree structure out of sourcemap files, with each node\n * being either an `OriginalSource` \"leaf\" or a `SourceMapTree` composed of\n * `OriginalSource`s and `SourceMapTree`s.\n *\n * Every sourcemap is composed of a collection of source files and mappings\n * into locations of those source files. When we generate a `SourceMapTree` for\n * the sourcemap, we attempt to load each source file's own sourcemap. If it\n * does not have an associated sourcemap, it is considered an original,\n * unmodified source file.\n */\nfunction buildSourceMapTree(input, loader, relativeRoot) {\n const maps = asArray(input).map(decodeSourceMap);\n const map = maps.pop();\n for (let i = 0; i < maps.length; i++) {\n if (maps[i].sources.length !== 1) {\n throw new Error(`Transformation map ${i} must have exactly one source file.\\n` +\n 'Did you specify these with the most recent transformation maps first?');\n }\n }\n const { sourceRoot, sources, sourcesContent } = map;\n const children = sources.map((sourceFile, i) => {\n // Each source file is loaded relative to the sourcemap's own sourceRoot,\n // which is itself relative to the sourcemap's parent.\n const uri = resolve$1(sourceFile || '', resolve$1(sourceRoot || '', stripFilename(relativeRoot)));\n // Use the provided loader callback to retrieve the file's sourcemap.\n // TODO: We should eventually support async loading of sourcemap files.\n const sourceMap = loader(uri);\n // If there is no sourcemap, then it is an unmodified source file.\n if (!sourceMap) {\n // The source file's actual contents must be included in the sourcemap\n // (done when generating the sourcemap) for it to be included as a\n // sourceContent in the output sourcemap.\n const sourceContent = sourcesContent ? sourcesContent[i] : null;\n return new OriginalSource(uri, sourceContent);\n }\n // Else, it's a real sourcemap, and we need to recurse into it to load its\n // source files.\n return buildSourceMapTree(decodeSourceMap(sourceMap), loader, uri);\n });\n let tree = new SourceMapTree(map, children);\n for (let i = maps.length - 1; i >= 0; i--) {\n tree = new SourceMapTree(maps[i], [tree]);\n }\n return tree;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A SourceMap v3 compatible sourcemap, which only includes fields that were\n * provided to it.\n */\nclass SourceMap {\n constructor(map, options) {\n this.version = 3; // SourceMap spec says this should be first.\n if ('file' in map)\n this.file = map.file;\n this.mappings = options.decodedMappings ? map.mappings : encode(map.mappings);\n this.names = map.names;\n // TODO: We first need to make all source URIs relative to the sourceRoot\n // before we can support a sourceRoot.\n // if ('sourceRoot' in map) this.sourceRoot = map.sourceRoot;\n this.sources = map.sources;\n if (!options.excludeContent && 'sourcesContent' in map) {\n this.sourcesContent = map.sourcesContent;\n }\n }\n toString() {\n return JSON.stringify(this);\n }\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Traces through all the mappings in the root sourcemap, through the sources\n * (and their sourcemaps), all the way back to the original source location.\n *\n * `loader` will be called every time we encounter a source file. If it returns\n * a sourcemap, we will recurse into that sourcemap to continue the trace. If\n * it returns a falsey value, that source file is treated as an original,\n * unmodified source file.\n *\n * Pass `excludeContent` to exclude any self-containing source file content\n * from the output sourcemap.\n *\n * Pass `decodedMappings` to receive a SourceMap with decoded (instead of\n * VLQ encoded) mappings.\n */\nfunction remapping(input, loader, options) {\n const opts = typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false };\n const graph = buildSourceMapTree(input, loader);\n return new SourceMap(graph.traceMappings(), opts);\n}\n\nexport default remapping;\n//# sourceMappingURL=remapping.mjs.map\n","import debug from 'debug'\nimport chalk from 'chalk'\nimport fs from 'fs'\nimport os from 'os'\nimport path from 'path'\nimport { pathToFileURL, URL } from 'url'\nimport {\n FS_PREFIX,\n DEFAULT_EXTENSIONS,\n VALID_ID_PREFIX,\n CLIENT_PUBLIC_PATH,\n ENV_PUBLIC_PATH\n} from './constants'\nimport resolve from 'resolve'\nimport builtins from 'builtin-modules'\nimport { FSWatcher } from 'chokidar'\nimport remapping from '@ampproject/remapping'\nimport {\n DecodedSourceMap,\n RawSourceMap\n} from '@ampproject/remapping/dist/types/types'\n\nexport function slash(p: string): string {\n return p.replace(/\\\\/g, '/')\n}\n\n// Strip valid id prefix. This is prepended to resolved Ids that are\n// not valid browser import specifiers by the importAnalysis plugin.\nexport function unwrapId(id: string): string {\n return id.startsWith(VALID_ID_PREFIX) ? id.slice(VALID_ID_PREFIX.length) : id\n}\n\nexport const flattenId = (id: string): string =>\n id.replace(/(\\s*>\\s*)/g, '__').replace(/[\\/\\.]/g, '_')\n\nexport const normalizeId = (id: string): string =>\n id.replace(/(\\s*>\\s*)/g, ' > ')\n\nexport function isBuiltin(id: string): boolean {\n return builtins.includes(id)\n}\n\nexport const bareImportRE = /^[\\w@](?!.*:\\/\\/)/\nexport const deepImportRE = /^([^@][^/]*)\\/|^(@[^/]+\\/[^/]+)\\//\n\nexport let isRunningWithYarnPnp: boolean\ntry {\n isRunningWithYarnPnp = Boolean(require('pnpapi'))\n} catch {}\n\nconst ssrExtensions = ['.js', '.cjs', '.json', '.node']\n\nexport function resolveFrom(id: string, basedir: string, ssr = false): string {\n return resolve.sync(id, {\n basedir,\n extensions: ssr ? ssrExtensions : DEFAULT_EXTENSIONS,\n // necessary to work with pnpm\n preserveSymlinks: isRunningWithYarnPnp || false\n })\n}\n\n/**\n * like `resolveFrom` but supports resolving `>` path in `id`,\n * for example: `foo > bar > baz`\n */\nexport function nestedResolveFrom(id: string, basedir: string): string {\n const pkgs = id.split('>').map((pkg) => pkg.trim())\n try {\n for (const pkg of pkgs) {\n basedir = resolveFrom(pkg, basedir)\n }\n } catch {}\n return basedir\n}\n\n// set in bin/vite.js\nconst filter = process.env.VITE_DEBUG_FILTER\n\nconst DEBUG = process.env.DEBUG\n\ninterface DebuggerOptions {\n onlyWhenFocused?: boolean | string\n}\n\nexport type ViteDebugScope = `vite:${string}`\n\nexport function createDebugger(\n namespace: ViteDebugScope,\n options: DebuggerOptions = {}\n): debug.Debugger['log'] {\n const log = debug(namespace)\n const { onlyWhenFocused } = options\n const focus =\n typeof onlyWhenFocused === 'string' ? onlyWhenFocused : namespace\n return (msg: string, ...args: any[]) => {\n if (filter && !msg.includes(filter)) {\n return\n }\n if (onlyWhenFocused && !DEBUG?.includes(focus)) {\n return\n }\n log(msg, ...args)\n }\n}\n\nexport const isWindows = os.platform() === 'win32'\nconst VOLUME_RE = /^[A-Z]:/i\n\nexport function normalizePath(id: string): string {\n return path.posix.normalize(isWindows ? slash(id) : id)\n}\n\nexport function fsPathFromId(id: string): string {\n const fsPath = normalizePath(id.slice(FS_PREFIX.length))\n return fsPath.startsWith('/') || fsPath.match(VOLUME_RE)\n ? fsPath\n : `/${fsPath}`\n}\n\nexport function ensureVolumeInPath(file: string): string {\n return isWindows ? path.resolve(file) : file\n}\n\nexport const queryRE = /\\?.*$/s\nexport const hashRE = /#.*$/s\n\nexport const cleanUrl = (url: string): string =>\n url.replace(hashRE, '').replace(queryRE, '')\n\nexport const externalRE = /^(https?:)?\\/\\//\nexport const isExternalUrl = (url: string): boolean => externalRE.test(url)\n\nexport const dataUrlRE = /^\\s*data:/i\nexport const isDataUrl = (url: string): boolean => dataUrlRE.test(url)\n\nconst knownJsSrcRE = /\\.((j|t)sx?|mjs|vue|marko|svelte)($|\\?)/\nexport const isJSRequest = (url: string): boolean => {\n url = cleanUrl(url)\n if (knownJsSrcRE.test(url)) {\n return true\n }\n if (!path.extname(url) && !url.endsWith('/')) {\n return true\n }\n return false\n}\n\nconst importQueryRE = /(\\?|&)import=?(?:&|$)/\nconst internalPrefixes = [\n FS_PREFIX,\n VALID_ID_PREFIX,\n CLIENT_PUBLIC_PATH,\n ENV_PUBLIC_PATH\n]\nconst InternalPrefixRE = new RegExp(`^(?:${internalPrefixes.join('|')})`)\nconst trailingSeparatorRE = /[\\?&]$/\nexport const isImportRequest = (url: string): boolean => importQueryRE.test(url)\nexport const isInternalRequest = (url: string): boolean =>\n InternalPrefixRE.test(url)\n\nexport function removeImportQuery(url: string): string {\n return url.replace(importQueryRE, '$1').replace(trailingSeparatorRE, '')\n}\n\nexport function injectQuery(url: string, queryToInject: string): string {\n // encode percents for consistent behavior with pathToFileURL\n // see #2614 for details\n let resolvedUrl = new URL(url.replace(/%/g, '%25'), 'relative:///')\n if (resolvedUrl.protocol !== 'relative:') {\n resolvedUrl = pathToFileURL(url)\n }\n let { protocol, pathname, search, hash } = resolvedUrl\n if (protocol === 'file:') {\n pathname = pathname.slice(1)\n }\n pathname = decodeURIComponent(pathname)\n return `${pathname}?${queryToInject}${search ? `&` + search.slice(1) : ''}${\n hash || ''\n }`\n}\n\nconst timestampRE = /\\bt=\\d{13}&?\\b/\nexport function removeTimestampQuery(url: string): string {\n return url.replace(timestampRE, '').replace(trailingSeparatorRE, '')\n}\n\nexport async function asyncReplace(\n input: string,\n re: RegExp,\n replacer: (match: RegExpExecArray) => string | Promise<string>\n): Promise<string> {\n let match: RegExpExecArray | null\n let remaining = input\n let rewritten = ''\n while ((match = re.exec(remaining))) {\n rewritten += remaining.slice(0, match.index)\n rewritten += await replacer(match)\n remaining = remaining.slice(match.index + match[0].length)\n }\n rewritten += remaining\n return rewritten\n}\n\nexport function timeFrom(start: number, subtract = 0): string {\n const time: number | string = Date.now() - start - subtract\n const timeString = (time + `ms`).padEnd(5, ' ')\n if (time < 10) {\n return chalk.green(timeString)\n } else if (time < 50) {\n return chalk.yellow(timeString)\n } else {\n return chalk.red(timeString)\n }\n}\n\n/**\n * pretty url for logging.\n */\nexport function prettifyUrl(url: string, root: string): string {\n url = removeTimestampQuery(url)\n const isAbsoluteFile = url.startsWith(root)\n if (isAbsoluteFile || url.startsWith(FS_PREFIX)) {\n let file = path.relative(root, isAbsoluteFile ? url : fsPathFromId(url))\n const seg = file.split('/')\n const npmIndex = seg.indexOf(`node_modules`)\n const isSourceMap = file.endsWith('.map')\n if (npmIndex > 0) {\n file = seg[npmIndex + 1]\n if (file.startsWith('@')) {\n file = `${file}/${seg[npmIndex + 2]}`\n }\n file = `npm: ${chalk.dim(file)}${isSourceMap ? ` (source map)` : ``}`\n }\n return chalk.dim(file)\n } else {\n return chalk.dim(url)\n }\n}\n\nexport function isObject(value: unknown): value is Record<string, any> {\n return Object.prototype.toString.call(value) === '[object Object]'\n}\n\nexport function isDefined<T>(value: T | undefined | null): value is T {\n return value != null\n}\n\nexport function lookupFile(\n dir: string,\n formats: string[],\n pathOnly = false\n): string | undefined {\n for (const format of formats) {\n const fullPath = path.join(dir, format)\n if (fs.existsSync(fullPath) && fs.statSync(fullPath).isFile()) {\n return pathOnly ? fullPath : fs.readFileSync(fullPath, 'utf-8')\n }\n }\n const parentDir = path.dirname(dir)\n if (parentDir !== dir) {\n return lookupFile(parentDir, formats, pathOnly)\n }\n}\n\nconst splitRE = /\\r?\\n/\n\nconst range: number = 2\n\nexport function pad(source: string, n = 2): string {\n const lines = source.split(splitRE)\n return lines.map((l) => ` `.repeat(n) + l).join(`\\n`)\n}\n\nexport function posToNumber(\n source: string,\n pos: number | { line: number; column: number }\n): number {\n if (typeof pos === 'number') return pos\n const lines = source.split(splitRE)\n const { line, column } = pos\n let start = 0\n for (let i = 0; i < line - 1; i++) {\n start += lines[i].length + 1\n }\n return start + column\n}\n\nexport function numberToPos(\n source: string,\n offset: number | { line: number; column: number }\n): { line: number; column: number } {\n if (typeof offset !== 'number') return offset\n if (offset > source.length) {\n throw new Error('offset is longer than source length!')\n }\n const lines = source.split(splitRE)\n let counted = 0\n let line = 0\n let column = 0\n for (; line < lines.length; line++) {\n const lineLength = lines[line].length + 1\n if (counted + lineLength >= offset) {\n column = offset - counted + 1\n break\n }\n counted += lineLength\n }\n return { line: line + 1, column }\n}\n\nexport function generateCodeFrame(\n source: string,\n start: number | { line: number; column: number } = 0,\n end?: number\n): string {\n start = posToNumber(source, start)\n end = end || start\n const lines = source.split(splitRE)\n let count = 0\n const res: string[] = []\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue\n const line = j + 1\n res.push(\n `${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${\n lines[j]\n }`\n )\n const lineLength = lines[j].length\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n )\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length))\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1)\n res.push(` | ` + '^'.repeat(length))\n }\n count += lineLength + 1\n }\n }\n break\n }\n }\n return res.join('\\n')\n}\n\nexport function writeFile(\n filename: string,\n content: string | Uint8Array\n): void {\n const dir = path.dirname(filename)\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n fs.writeFileSync(filename, content)\n}\n\n/**\n * Delete every file and subdirectory. **The given directory must exist.**\n * Pass an optional `skip` array to preserve files in the root directory.\n */\nexport function emptyDir(dir: string, skip?: string[]): void {\n for (const file of fs.readdirSync(dir)) {\n if (skip?.includes(file)) {\n continue\n }\n const abs = path.resolve(dir, file)\n // baseline is Node 12 so can't use rmSync :(\n if (fs.lstatSync(abs).isDirectory()) {\n emptyDir(abs)\n fs.rmdirSync(abs)\n } else {\n fs.unlinkSync(abs)\n }\n }\n}\n\nexport function copyDir(srcDir: string, destDir: string): void {\n fs.mkdirSync(destDir, { recursive: true })\n for (const file of fs.readdirSync(srcDir)) {\n const srcFile = path.resolve(srcDir, file)\n if (srcFile === destDir) {\n continue\n }\n const destFile = path.resolve(destDir, file)\n const stat = fs.statSync(srcFile)\n if (stat.isDirectory()) {\n copyDir(srcFile, destFile)\n } else {\n fs.copyFileSync(srcFile, destFile)\n }\n }\n}\n\nexport function ensureLeadingSlash(path: string): string {\n return !path.startsWith('/') ? '/' + path : path\n}\n\nexport function ensureWatchedFile(\n watcher: FSWatcher,\n file: string | null,\n root: string\n): void {\n if (\n file &&\n // only need to watch if out of root\n !file.startsWith(root + '/') &&\n // some rollup plugins use null bytes for private resolved Ids\n !file.includes('\\0') &&\n fs.existsSync(file)\n ) {\n // resolve file to normalized system path\n watcher.add(path.resolve(file))\n }\n}\n\ninterface ImageCandidate {\n url: string\n descriptor: string\n}\nconst escapedSpaceCharacters = /( |\\\\t|\\\\n|\\\\f|\\\\r)+/g\nexport async function processSrcSet(\n srcs: string,\n replacer: (arg: ImageCandidate) => Promise<string>\n): Promise<string> {\n const imageCandidates: ImageCandidate[] = srcs\n .split(',')\n .map((s) => {\n const [url, descriptor] = s\n .replace(escapedSpaceCharacters, ' ')\n .trim()\n .split(' ', 2)\n return { url, descriptor }\n })\n .filter(({ url }) => !!url)\n\n const ret = await Promise.all(\n imageCandidates.map(async ({ url, descriptor }) => {\n return {\n url: await replacer({ url, descriptor }),\n descriptor\n }\n })\n )\n\n const url = ret.reduce((prev, { url, descriptor }, index) => {\n descriptor = descriptor || ''\n return (prev +=\n url + ` ${descriptor}${index === ret.length - 1 ? '' : ', '}`)\n }, '')\n\n return url\n}\n\n// based on https://github.com/sveltejs/svelte/blob/abf11bb02b2afbd3e4cac509a0f70e318c306364/src/compiler/utils/mapped_code.ts#L221\nconst nullSourceMap: RawSourceMap = {\n names: [],\n sources: [],\n mappings: '',\n version: 3\n}\nexport function combineSourcemaps(\n filename: string,\n sourcemapList: Array<DecodedSourceMap | RawSourceMap>\n): RawSourceMap {\n if (\n sourcemapList.length === 0 ||\n sourcemapList.every((m) => m.sources.length === 0)\n ) {\n return { ...nullSourceMap }\n }\n\n // We don't declare type here so we can convert/fake/map as RawSourceMap\n let map //: SourceMap\n let mapIndex = 1\n const useArrayInterface =\n sourcemapList.slice(0, -1).find((m) => m.sources.length !== 1) === undefined\n if (useArrayInterface) {\n map = remapping(sourcemapList, () => null, true)\n } else {\n map = remapping(\n sourcemapList[0],\n function loader(sourcefile) {\n if (sourcefile === filename && sourcemapList[mapIndex]) {\n return sourcemapList[mapIndex++]\n } else {\n return { ...nullSourceMap }\n }\n },\n true\n )\n }\n if (!map.file) {\n delete map.file\n }\n\n return map as RawSourceMap\n}\n\nexport function unique<T>(arr: T[]): T[] {\n return Array.from(new Set(arr))\n}\n\nexport interface Hostname {\n // undefined sets the default behaviour of server.listen\n host: string | undefined\n // resolve to localhost when possible\n name: string\n}\n\nexport function resolveHostname(\n optionsHost: string | boolean | undefined\n): Hostname {\n let host: string | undefined\n if (\n optionsHost === undefined ||\n optionsHost === false ||\n optionsHost === 'localhost'\n ) {\n // Use a secure default\n host = '127.0.0.1'\n } else if (optionsHost === true) {\n // If passed --host in the CLI without arguments\n host = undefined // undefined typically means 0.0.0.0 or :: (listen on all IPs)\n } else {\n host = optionsHost\n }\n\n // Set host name to localhost when possible, unless the user explicitly asked for '127.0.0.1'\n const name =\n (optionsHost !== '127.0.0.1' && host === '127.0.0.1') ||\n host === '0.0.0.0' ||\n host === '::' ||\n host === undefined\n ? 'localhost'\n : host\n\n return { host, name }\n}\n\nexport function arraify<T>(target: T | T[]): T[] {\n return Array.isArray(target) ? target : [target]\n}\n\nexport const multilineCommentsRE = /\\/\\*(.|[\\r\\n])*?\\*\\//gm\nexport const singlelineCommentsRE = /\\/\\/.*/g\n","/* eslint no-console: 0 */\n\nimport chalk from 'chalk'\nimport readline from 'readline'\nimport os from 'os'\nimport { RollupError } from 'rollup'\nimport { Hostname } from './utils'\n\nexport type LogType = 'error' | 'warn' | 'info'\nexport type LogLevel = LogType | 'silent'\nexport interface Logger {\n info(msg: string, options?: LogOptions): void\n warn(msg: string, options?: LogOptions): void\n warnOnce(msg: string, options?: LogOptions): void\n error(msg: string, options?: LogErrorOptions): void\n clearScreen(type: LogType): void\n hasErrorLogged(error: Error | RollupError): boolean\n hasWarned: boolean\n}\n\nexport interface LogOptions {\n clear?: boolean\n timestamp?: boolean\n}\n\nexport interface LogErrorOptions extends LogOptions {\n error?: Error | RollupError | null\n}\n\nexport const LogLevels: Record<LogLevel, number> = {\n silent: 0,\n error: 1,\n warn: 2,\n info: 3\n}\n\nlet lastType: LogType | undefined\nlet lastMsg: string | undefined\nlet sameCount = 0\n\nfunction clearScreen() {\n const repeatCount = process.stdout.rows - 2\n const blank = repeatCount > 0 ? '\\n'.repeat(repeatCount) : ''\n console.log(blank)\n readline.cursorTo(process.stdout, 0, 0)\n readline.clearScreenDown(process.stdout)\n}\n\nexport interface LoggerOptions {\n prefix?: string\n allowClearScreen?: boolean\n customLogger?: Logger\n}\n\nexport function createLogger(\n level: LogLevel = 'info',\n options: LoggerOptions = {}\n): Logger {\n if (options.customLogger) {\n return options.customLogger\n }\n\n const loggedErrors = new WeakSet<Error | RollupError>()\n const { prefix = '[vite]', allowClearScreen = true } = options\n const thresh = LogLevels[level]\n const clear =\n allowClearScreen && process.stdout.isTTY && !process.env.CI\n ? clearScreen\n : () => {}\n\n function output(type: LogType, msg: string, options: LogErrorOptions = {}) {\n if (thresh >= LogLevels[type]) {\n const method = type === 'info' ? 'log' : type\n const format = () => {\n if (options.timestamp) {\n const tag =\n type === 'info'\n ? chalk.cyan.bold(prefix)\n : type === 'warn'\n ? chalk.yellow.bold(prefix)\n : chalk.red.bold(prefix)\n return `${chalk.dim(new Date().toLocaleTimeString())} ${tag} ${msg}`\n } else {\n return msg\n }\n }\n if (options.error) {\n loggedErrors.add(options.error)\n }\n if (type === lastType && msg === lastMsg) {\n sameCount++\n clear()\n console[method](format(), chalk.yellow(`(x${sameCount + 1})`))\n } else {\n sameCount = 0\n lastMsg = msg\n lastType = type\n if (options.clear) {\n clear()\n }\n console[method](format())\n }\n }\n }\n\n const warnedMessages = new Set<string>()\n\n const logger: Logger = {\n hasWarned: false,\n info(msg, opts) {\n output('info', msg, opts)\n },\n warn(msg, opts) {\n logger.hasWarned = true\n output('warn', msg, opts)\n },\n warnOnce(msg, opts) {\n if (warnedMessages.has(msg)) return\n logger.hasWarned = true\n output('warn', msg, opts)\n warnedMessages.add(msg)\n },\n error(msg, opts) {\n logger.hasWarned = true\n output('error', msg, opts)\n },\n clearScreen(type) {\n if (thresh >= LogLevels[type]) {\n clear()\n }\n },\n hasErrorLogged(error) {\n return loggedErrors.has(error)\n }\n }\n\n return logger\n}\n\nexport function printServerUrls(\n hostname: Hostname,\n protocol: string,\n port: number,\n base: string,\n info: Logger['info']\n): void {\n if (hostname.host === '127.0.0.1') {\n const url = `${protocol}://${hostname.name}:${chalk.bold(port)}${base}`\n info(` > Local: ${chalk.cyan(url)}`)\n if (hostname.name !== '127.0.0.1') {\n info(` > Network: ${chalk.dim('use `--host` to expose')}`)\n }\n } else {\n Object.values(os.networkInterfaces())\n .flatMap((nInterface) => nInterface ?? [])\n .filter((detail) => detail.family === 'IPv4')\n .map((detail) => {\n const type = detail.address.includes('127.0.0.1')\n ? 'Local: '\n : 'Network: '\n const host = detail.address.replace('127.0.0.1', hostname.name)\n const url = `${protocol}://${host}:${chalk.bold(port)}${base}`\n return ` > ${type} ${chalk.cyan(url)}`\n })\n .forEach((msg) => info(msg))\n }\n}\n","import path from 'path'\nimport chalk from 'chalk'\nimport { Plugin } from 'rollup'\nimport { ResolvedConfig } from '../config'\nimport size from 'brotli-size'\nimport { normalizePath } from '../utils'\nimport { LogLevels } from '../logger'\n\nconst enum WriteType {\n JS,\n CSS,\n ASSET,\n HTML,\n SOURCE_MAP\n}\n\nconst writeColors = {\n [WriteType.JS]: chalk.cyan,\n [WriteType.CSS]: chalk.magenta,\n [WriteType.ASSET]: chalk.green,\n [WriteType.HTML]: chalk.blue,\n [WriteType.SOURCE_MAP]: chalk.gray\n}\n\nexport function buildReporterPlugin(config: ResolvedConfig): Plugin {\n const chunkLimit = config.build.chunkSizeWarningLimit\n\n function isLarge(code: string | Uint8Array): boolean {\n // bail out on particularly large chunks\n return code.length / 1024 > chunkLimit\n }\n\n async function getCompressedSize(code: string | Uint8Array): Promise<string> {\n if (config.build.ssr || !config.build.brotliSize) {\n return ''\n }\n if (isLarge(code)) {\n return ' / brotli: skipped (large chunk)'\n }\n return ` / brotli: ${(\n (await size(typeof code === 'string' ? code : Buffer.from(code))) / 1024\n ).toFixed(2)} KiB`\n }\n\n function printFileInfo(\n filePath: string,\n content: string | Uint8Array,\n type: WriteType,\n maxLength: number,\n compressedSize = ''\n ) {\n const outDir =\n normalizePath(\n path.relative(\n config.root,\n path.resolve(config.root, config.build.outDir)\n )\n ) + '/'\n const kibs = content.length / 1024\n const sizeColor = kibs > chunkLimit ? chalk.yellow : chalk.dim\n config.logger.info(\n `${chalk.gray(chalk.white.dim(outDir))}${writeColors[type](\n filePath.padEnd(maxLength + 2)\n )} ${sizeColor(`${kibs.toFixed(2)} KiB${compressedSize}`)}`\n )\n }\n\n const tty = process.stdout.isTTY && !process.env.CI\n const shouldLogInfo = LogLevels[config.logLevel || 'info'] >= LogLevels.info\n let hasTransformed = false\n let hasRenderedChunk = false\n let transformedCount = 0\n let chunkCount = 0\n\n const logTransform = throttle((id: string) => {\n writeLine(\n `transforming (${transformedCount}) ${chalk.dim(\n path.relative(config.root, id)\n )}`\n )\n })\n\n return {\n name: 'vite:reporter',\n\n transform(_, id) {\n transformedCount++\n if (shouldLogInfo) {\n if (!tty) {\n if (!hasTransformed) {\n config.logger.info(`transforming...`)\n }\n } else {\n if (id.includes(`?`)) return\n logTransform(id)\n }\n hasTransformed = true\n }\n return null\n },\n\n buildEnd() {\n if (shouldLogInfo) {\n if (tty) {\n process.stdout.clearLine(0)\n process.stdout.cursorTo(0)\n }\n config.logger.info(\n `${chalk.green(`✓`)} ${transformedCount} modules transformed.`\n )\n }\n },\n\n renderStart() {\n chunkCount = 0\n },\n\n renderChunk() {\n chunkCount++\n if (shouldLogInfo) {\n if (!tty) {\n if (!hasRenderedChunk) {\n config.logger.info('rendering chunks...')\n }\n } else {\n writeLine(`rendering chunks (${chunkCount})...`)\n }\n hasRenderedChunk = true\n }\n return null\n },\n\n generateBundle() {\n if (shouldLogInfo && tty) {\n process.stdout.clearLine(0)\n process.stdout.cursorTo(0)\n }\n },\n\n async writeBundle(_, output) {\n let hasLargeChunks = false\n\n if (shouldLogInfo) {\n let longest = 0\n for (const file in output) {\n const l = output[file].fileName.length\n if (l > longest) longest = l\n }\n\n // large chunks are deferred to be logged at the end so they are more\n // visible.\n const deferredLogs: (() => void)[] = []\n\n await Promise.all(\n Object.keys(output).map(async (file) => {\n const chunk = output[file]\n if (chunk.type === 'chunk') {\n const log = async () => {\n printFileInfo(\n chunk.fileName,\n chunk.code,\n WriteType.JS,\n longest,\n await getCompressedSize(chunk.code)\n )\n if (chunk.map) {\n printFileInfo(\n chunk.fileName + '.map',\n chunk.map.toString(),\n WriteType.SOURCE_MAP,\n longest\n )\n }\n }\n if (isLarge(chunk.code)) {\n hasLargeChunks = true\n deferredLogs.push(log)\n } else {\n await log()\n }\n } else if (chunk.source) {\n const isCSS = chunk.fileName.endsWith('.css')\n printFileInfo(\n chunk.fileName,\n chunk.source,\n isCSS ? WriteType.CSS : WriteType.ASSET,\n longest,\n isCSS ? await getCompressedSize(chunk.source) : undefined\n )\n }\n })\n )\n\n await Promise.all(deferredLogs.map((l) => l()))\n } else {\n hasLargeChunks = Object.keys(output).some((file) => {\n const chunk = output[file]\n return chunk.type === 'chunk' && chunk.code.length / 1024 > chunkLimit\n })\n }\n\n if (\n hasLargeChunks &&\n config.build.minify &&\n !config.build.lib &&\n !config.build.ssr\n ) {\n config.logger.warn(\n chalk.yellow(\n `\\n(!) Some chunks are larger than ${chunkLimit} KiB after minification. Consider:\\n` +\n `- Using dynamic import() to code-split the application\\n` +\n `- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/guide/en/#outputmanualchunks\\n` +\n `- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.`\n )\n )\n }\n }\n }\n}\n\nfunction writeLine(output: string) {\n process.stdout.clearLine(0)\n process.stdout.cursorTo(0)\n if (output.length < process.stdout.columns) {\n process.stdout.write(output)\n } else {\n process.stdout.write(output.substring(0, process.stdout.columns - 1))\n }\n}\n\nfunction throttle(fn: Function) {\n let timerHandle: NodeJS.Timeout | null = null\n return (...args: any[]) => {\n if (timerHandle) return\n fn(...args)\n timerHandle = setTimeout(() => {\n timerHandle = null\n }, 100)\n }\n}\n","var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nfor (var i = 0; i < chars.length; i++) {\n charToInteger[chars.charCodeAt(i)] = i;\n}\nfunction decode(mappings) {\n var decoded = [];\n var line = [];\n var segment = [\n 0,\n 0,\n 0,\n 0,\n 0,\n ];\n var j = 0;\n for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {\n var c = mappings.charCodeAt(i);\n if (c === 44) { // \",\"\n segmentify(line, segment, j);\n j = 0;\n }\n else if (c === 59) { // \";\"\n segmentify(line, segment, j);\n j = 0;\n decoded.push(line);\n line = [];\n segment[0] = 0;\n }\n else {\n var integer = charToInteger[c];\n if (integer === undefined) {\n throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n }\n var hasContinuationBit = integer & 32;\n integer &= 31;\n value += integer << shift;\n if (hasContinuationBit) {\n shift += 5;\n }\n else {\n var shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = value === 0 ? -0x80000000 : -value;\n }\n segment[j] += value;\n j++;\n value = shift = 0; // reset\n }\n }\n }\n segmentify(line, segment, j);\n decoded.push(line);\n return decoded;\n}\nfunction segmentify(line, segment, j) {\n // This looks ugly, but we're creating specialized arrays with a specific\n // length. This is much faster than creating a new array (which v8 expands to\n // a capacity of 17 after pushing the first item), or slicing out a subarray\n // (which is slow). Length 4 is assumed to be the most frequent, followed by\n // length 5 (since not everything will have an associated name), followed by\n // length 1 (it's probably rare for a source substring to not have an\n // associated segment data).\n if (j === 4)\n line.push([segment[0], segment[1], segment[2], segment[3]]);\n else if (j === 5)\n line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);\n else if (j === 1)\n line.push([segment[0]]);\n}\nfunction encode(decoded) {\n var sourceFileIndex = 0; // second field\n var sourceCodeLine = 0; // third field\n var sourceCodeColumn = 0; // fourth field\n var nameIndex = 0; // fifth field\n var mappings = '';\n for (var i = 0; i < decoded.length; i++) {\n var line = decoded[i];\n if (i > 0)\n mappings += ';';\n if (line.length === 0)\n continue;\n var generatedCodeColumn = 0; // first field\n var lineMappings = [];\n for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n var segment = line_1[_i];\n var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n generatedCodeColumn = segment[0];\n if (segment.length > 1) {\n segmentMappings +=\n encodeInteger(segment[1] - sourceFileIndex) +\n encodeInteger(segment[2] - sourceCodeLine) +\n encodeInteger(segment[3] - sourceCodeColumn);\n sourceFileIndex = segment[1];\n sourceCodeLine = segment[2];\n sourceCodeColumn = segment[3];\n }\n if (segment.length === 5) {\n segmentMappings += encodeInteger(segment[4] - nameIndex);\n nameIndex = segment[4];\n }\n lineMappings.push(segmentMappings);\n }\n mappings += lineMappings.join(',');\n }\n return mappings;\n}\nfunction encodeInteger(num) {\n var result = '';\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n var clamped = num & 31;\n num >>>= 5;\n if (num > 0) {\n clamped |= 32;\n }\n result += chars[clamped];\n } while (num > 0);\n return result;\n}\n\nexport { decode, encode };\n//# sourceMappingURL=sourcemap-codec.es.js.map\n","import { encode } from 'sourcemap-codec';\n\nvar BitSet = function BitSet(arg) {\n\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n};\n\nBitSet.prototype.add = function add (n) {\n\tthis.bits[n >> 5] |= 1 << (n & 31);\n};\n\nBitSet.prototype.has = function has (n) {\n\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n};\n\nvar Chunk = function Chunk(start, end, content) {\n\tthis.start = start;\n\tthis.end = end;\n\tthis.original = content;\n\n\tthis.intro = '';\n\tthis.outro = '';\n\n\tthis.content = content;\n\tthis.storeName = false;\n\tthis.edited = false;\n\n\t// we make these non-enumerable, for sanity while debugging\n\tObject.defineProperties(this, {\n\t\tprevious: { writable: true, value: null },\n\t\tnext: { writable: true, value: null }\n\t});\n};\n\nChunk.prototype.appendLeft = function appendLeft (content) {\n\tthis.outro += content;\n};\n\nChunk.prototype.appendRight = function appendRight (content) {\n\tthis.intro = this.intro + content;\n};\n\nChunk.prototype.clone = function clone () {\n\tvar chunk = new Chunk(this.start, this.end, this.original);\n\n\tchunk.intro = this.intro;\n\tchunk.outro = this.outro;\n\tchunk.content = this.content;\n\tchunk.storeName = this.storeName;\n\tchunk.edited = this.edited;\n\n\treturn chunk;\n};\n\nChunk.prototype.contains = function contains (index) {\n\treturn this.start < index && index < this.end;\n};\n\nChunk.prototype.eachNext = function eachNext (fn) {\n\tvar chunk = this;\n\twhile (chunk) {\n\t\tfn(chunk);\n\t\tchunk = chunk.next;\n\t}\n};\n\nChunk.prototype.eachPrevious = function eachPrevious (fn) {\n\tvar chunk = this;\n\twhile (chunk) {\n\t\tfn(chunk);\n\t\tchunk = chunk.previous;\n\t}\n};\n\nChunk.prototype.edit = function edit (content, storeName, contentOnly) {\n\tthis.content = content;\n\tif (!contentOnly) {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t}\n\tthis.storeName = storeName;\n\n\tthis.edited = true;\n\n\treturn this;\n};\n\nChunk.prototype.prependLeft = function prependLeft (content) {\n\tthis.outro = content + this.outro;\n};\n\nChunk.prototype.prependRight = function prependRight (content) {\n\tthis.intro = content + this.intro;\n};\n\nChunk.prototype.split = function split (index) {\n\tvar sliceIndex = index - this.start;\n\n\tvar originalBefore = this.original.slice(0, sliceIndex);\n\tvar originalAfter = this.original.slice(sliceIndex);\n\n\tthis.original = originalBefore;\n\n\tvar newChunk = new Chunk(index, this.end, originalAfter);\n\tnewChunk.outro = this.outro;\n\tthis.outro = '';\n\n\tthis.end = index;\n\n\tif (this.edited) {\n\t\t// TODO is this block necessary?...\n\t\tnewChunk.edit('', false);\n\t\tthis.content = '';\n\t} else {\n\t\tthis.content = originalBefore;\n\t}\n\n\tnewChunk.next = this.next;\n\tif (newChunk.next) { newChunk.next.previous = newChunk; }\n\tnewChunk.previous = this;\n\tthis.next = newChunk;\n\n\treturn newChunk;\n};\n\nChunk.prototype.toString = function toString () {\n\treturn this.intro + this.content + this.outro;\n};\n\nChunk.prototype.trimEnd = function trimEnd (rx) {\n\tthis.outro = this.outro.replace(rx, '');\n\tif (this.outro.length) { return true; }\n\n\tvar trimmed = this.content.replace(rx, '');\n\n\tif (trimmed.length) {\n\t\tif (trimmed !== this.content) {\n\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t}\n\t\treturn true;\n\n\t} else {\n\t\tthis.edit('', undefined, true);\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) { return true; }\n\t}\n};\n\nChunk.prototype.trimStart = function trimStart (rx) {\n\tthis.intro = this.intro.replace(rx, '');\n\tif (this.intro.length) { return true; }\n\n\tvar trimmed = this.content.replace(rx, '');\n\n\tif (trimmed.length) {\n\t\tif (trimmed !== this.content) {\n\t\t\tthis.split(this.end - trimmed.length);\n\t\t\tthis.edit('', undefined, true);\n\t\t}\n\t\treturn true;\n\n\t} else {\n\t\tthis.edit('', undefined, true);\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) { return true; }\n\t}\n};\n\nvar btoa = function () {\n\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n};\nif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\tbtoa = function (str) { return window.btoa(unescape(encodeURIComponent(str))); };\n} else if (typeof Buffer === 'function') {\n\tbtoa = function (str) { return Buffer.from(str, 'utf-8').toString('base64'); };\n}\n\nvar SourceMap = function SourceMap(properties) {\n\tthis.version = 3;\n\tthis.file = properties.file;\n\tthis.sources = properties.sources;\n\tthis.sourcesContent = properties.sourcesContent;\n\tthis.names = properties.names;\n\tthis.mappings = encode(properties.mappings);\n};\n\nSourceMap.prototype.toString = function toString () {\n\treturn JSON.stringify(this);\n};\n\nSourceMap.prototype.toUrl = function toUrl () {\n\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n};\n\nfunction guessIndent(code) {\n\tvar lines = code.split('\\n');\n\n\tvar tabbed = lines.filter(function (line) { return /^\\t+/.test(line); });\n\tvar spaced = lines.filter(function (line) { return /^ {2,}/.test(line); });\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tvar min = spaced.reduce(function (previous, current) {\n\t\tvar numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tvar fromParts = from.split(/[/\\\\]/);\n\tvar toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tvar i = fromParts.length;\n\t\twhile (i--) { fromParts[i] = '..'; }\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tvar originalLines = source.split('\\n');\n\tvar lineOffsets = [];\n\n\tfor (var i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tvar i = 0;\n\t\tvar j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tvar m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tvar line = i - 1;\n\t\tvar column = index - lineOffsets[line];\n\t\treturn { line: line, column: column };\n\t};\n}\n\nvar Mappings = function Mappings(hires) {\n\tthis.hires = hires;\n\tthis.generatedCodeLine = 0;\n\tthis.generatedCodeColumn = 0;\n\tthis.raw = [];\n\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\tthis.pending = null;\n};\n\nMappings.prototype.addEdit = function addEdit (sourceIndex, content, loc, nameIndex) {\n\tif (content.length) {\n\t\tvar segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\tif (nameIndex >= 0) {\n\t\t\tsegment.push(nameIndex);\n\t\t}\n\t\tthis.rawSegments.push(segment);\n\t} else if (this.pending) {\n\t\tthis.rawSegments.push(this.pending);\n\t}\n\n\tthis.advance(content);\n\tthis.pending = null;\n};\n\nMappings.prototype.addUneditedChunk = function addUneditedChunk (sourceIndex, chunk, original, loc, sourcemapLocations) {\n\tvar originalCharIndex = chunk.start;\n\tvar first = true;\n\n\twhile (originalCharIndex < chunk.end) {\n\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\tthis.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);\n\t\t}\n\n\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\tloc.line += 1;\n\t\t\tloc.column = 0;\n\t\t\tthis.generatedCodeLine += 1;\n\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t\tfirst = true;\n\t\t} else {\n\t\t\tloc.column += 1;\n\t\t\tthis.generatedCodeColumn += 1;\n\t\t\tfirst = false;\n\t\t}\n\n\t\toriginalCharIndex += 1;\n\t}\n\n\tthis.pending = null;\n};\n\nMappings.prototype.advance = function advance (str) {\n\tif (!str) { return; }\n\n\tvar lines = str.split('\\n');\n\n\tif (lines.length > 1) {\n\t\tfor (var i = 0; i < lines.length - 1; i++) {\n\t\t\tthis.generatedCodeLine++;\n\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t}\n\t\tthis.generatedCodeColumn = 0;\n\t}\n\n\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n};\n\nvar n = '\\n';\n\nvar warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false\n};\n\nvar MagicString = function MagicString(string, options) {\n\tif ( options === void 0 ) options = {};\n\n\tvar chunk = new Chunk(0, string.length, string);\n\n\tObject.defineProperties(this, {\n\t\toriginal: { writable: true, value: string },\n\t\toutro: { writable: true, value: '' },\n\t\tintro: { writable: true, value: '' },\n\t\tfirstChunk: { writable: true, value: chunk },\n\t\tlastChunk: { writable: true, value: chunk },\n\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\tbyStart: { writable: true, value: {} },\n\t\tbyEnd: { writable: true, value: {} },\n\t\tfilename: { writable: true, value: options.filename },\n\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\tstoredNames: { writable: true, value: {} },\n\t\tindentStr: { writable: true, value: guessIndent(string) }\n\t});\n\n\tthis.byStart[0] = chunk;\n\tthis.byEnd[string.length] = chunk;\n};\n\nMagicString.prototype.addSourcemapLocation = function addSourcemapLocation (char) {\n\tthis.sourcemapLocations.add(char);\n};\n\nMagicString.prototype.append = function append (content) {\n\tif (typeof content !== 'string') { throw new TypeError('outro content must be a string'); }\n\n\tthis.outro += content;\n\treturn this;\n};\n\nMagicString.prototype.appendLeft = function appendLeft (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byEnd[index];\n\n\tif (chunk) {\n\t\tchunk.appendLeft(content);\n\t} else {\n\t\tthis.intro += content;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.appendRight = function appendRight (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byStart[index];\n\n\tif (chunk) {\n\t\tchunk.appendRight(content);\n\t} else {\n\t\tthis.outro += content;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.clone = function clone () {\n\tvar cloned = new MagicString(this.original, { filename: this.filename });\n\n\tvar originalChunk = this.firstChunk;\n\tvar clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\twhile (originalChunk) {\n\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\tvar nextOriginalChunk = originalChunk.next;\n\t\tvar nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\tif (nextClonedChunk) {\n\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\tclonedChunk = nextClonedChunk;\n\t\t}\n\n\t\toriginalChunk = nextOriginalChunk;\n\t}\n\n\tcloned.lastChunk = clonedChunk;\n\n\tif (this.indentExclusionRanges) {\n\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t}\n\n\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\tcloned.intro = this.intro;\n\tcloned.outro = this.outro;\n\n\treturn cloned;\n};\n\nMagicString.prototype.generateDecodedMap = function generateDecodedMap (options) {\n\t\tvar this$1 = this;\n\n\toptions = options || {};\n\n\tvar sourceIndex = 0;\n\tvar names = Object.keys(this.storedNames);\n\tvar mappings = new Mappings(options.hires);\n\n\tvar locate = getLocator(this.original);\n\n\tif (this.intro) {\n\t\tmappings.advance(this.intro);\n\t}\n\n\tthis.firstChunk.eachNext(function (chunk) {\n\t\tvar loc = locate(chunk.start);\n\n\t\tif (chunk.intro.length) { mappings.advance(chunk.intro); }\n\n\t\tif (chunk.edited) {\n\t\t\tmappings.addEdit(\n\t\t\t\tsourceIndex,\n\t\t\t\tchunk.content,\n\t\t\t\tloc,\n\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1\n\t\t\t);\n\t\t} else {\n\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this$1.original, loc, this$1.sourcemapLocations);\n\t\t}\n\n\t\tif (chunk.outro.length) { mappings.advance(chunk.outro); }\n\t});\n\n\treturn {\n\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n\t\tsources: [options.source ? getRelativePath(options.file || '', options.source) : null],\n\t\tsourcesContent: options.includeContent ? [this.original] : [null],\n\t\tnames: names,\n\t\tmappings: mappings.raw\n\t};\n};\n\nMagicString.prototype.generateMap = function generateMap (options) {\n\treturn new SourceMap(this.generateDecodedMap(options));\n};\n\nMagicString.prototype.getIndentString = function getIndentString () {\n\treturn this.indentStr === null ? '\\t' : this.indentStr;\n};\n\nMagicString.prototype.indent = function indent (indentStr, options) {\n\tvar pattern = /^[^\\r\\n]/gm;\n\n\tif (isObject(indentStr)) {\n\t\toptions = indentStr;\n\t\tindentStr = undefined;\n\t}\n\n\tindentStr = indentStr !== undefined ? indentStr : this.indentStr || '\\t';\n\n\tif (indentStr === '') { return this; } // noop\n\n\toptions = options || {};\n\n\t// Process exclusion ranges\n\tvar isExcluded = {};\n\n\tif (options.exclude) {\n\t\tvar exclusions =\n\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\texclusions.forEach(function (exclusion) {\n\t\t\tfor (var i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\tisExcluded[i] = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tvar shouldIndentNextCharacter = options.indentStart !== false;\n\tvar replacer = function (match) {\n\t\tif (shouldIndentNextCharacter) { return (\"\" + indentStr + match); }\n\t\tshouldIndentNextCharacter = true;\n\t\treturn match;\n\t};\n\n\tthis.intro = this.intro.replace(pattern, replacer);\n\n\tvar charIndex = 0;\n\tvar chunk = this.firstChunk;\n\n\twhile (chunk) {\n\t\tvar end = chunk.end;\n\n\t\tif (chunk.edited) {\n\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tcharIndex = chunk.start;\n\n\t\t\twhile (charIndex < end) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tvar char = this.original[charIndex];\n\n\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcharIndex += 1;\n\t\t\t}\n\t\t}\n\n\t\tcharIndex = chunk.end;\n\t\tchunk = chunk.next;\n\t}\n\n\tthis.outro = this.outro.replace(pattern, replacer);\n\n\treturn this;\n};\n\nMagicString.prototype.insert = function insert () {\n\tthrow new Error('magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)');\n};\n\nMagicString.prototype.insertLeft = function insertLeft (index, content) {\n\tif (!warned.insertLeft) {\n\t\tconsole.warn('magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'); // eslint-disable-line no-console\n\t\twarned.insertLeft = true;\n\t}\n\n\treturn this.appendLeft(index, content);\n};\n\nMagicString.prototype.insertRight = function insertRight (index, content) {\n\tif (!warned.insertRight) {\n\t\tconsole.warn('magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'); // eslint-disable-line no-console\n\t\twarned.insertRight = true;\n\t}\n\n\treturn this.prependRight(index, content);\n};\n\nMagicString.prototype.move = function move (start, end, index) {\n\tif (index >= start && index <= end) { throw new Error('Cannot move a selection inside itself'); }\n\n\tthis._split(start);\n\tthis._split(end);\n\tthis._split(index);\n\n\tvar first = this.byStart[start];\n\tvar last = this.byEnd[end];\n\n\tvar oldLeft = first.previous;\n\tvar oldRight = last.next;\n\n\tvar newRight = this.byStart[index];\n\tif (!newRight && last === this.lastChunk) { return this; }\n\tvar newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\tif (oldLeft) { oldLeft.next = oldRight; }\n\tif (oldRight) { oldRight.previous = oldLeft; }\n\n\tif (newLeft) { newLeft.next = first; }\n\tif (newRight) { newRight.previous = last; }\n\n\tif (!first.previous) { this.firstChunk = last.next; }\n\tif (!last.next) {\n\t\tthis.lastChunk = first.previous;\n\t\tthis.lastChunk.next = null;\n\t}\n\n\tfirst.previous = newLeft;\n\tlast.next = newRight || null;\n\n\tif (!newLeft) { this.firstChunk = first; }\n\tif (!newRight) { this.lastChunk = last; }\n\treturn this;\n};\n\nMagicString.prototype.overwrite = function overwrite (start, end, content, options) {\n\tif (typeof content !== 'string') { throw new TypeError('replacement content must be a string'); }\n\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tif (end > this.original.length) { throw new Error('end is out of bounds'); }\n\tif (start === end)\n\t\t{ throw new Error('Cannot overwrite a zero-length range use appendLeft or prependRight instead'); }\n\n\tthis._split(start);\n\tthis._split(end);\n\n\tif (options === true) {\n\t\tif (!warned.storeName) {\n\t\t\tconsole.warn('The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'); // eslint-disable-line no-console\n\t\t\twarned.storeName = true;\n\t\t}\n\n\t\toptions = { storeName: true };\n\t}\n\tvar storeName = options !== undefined ? options.storeName : false;\n\tvar contentOnly = options !== undefined ? options.contentOnly : false;\n\n\tif (storeName) {\n\t\tvar original = this.original.slice(start, end);\n\t\tthis.storedNames[original] = true;\n\t}\n\n\tvar first = this.byStart[start];\n\tvar last = this.byEnd[end];\n\n\tif (first) {\n\t\tif (end > first.end && first.next !== this.byStart[first.end]) {\n\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t}\n\n\t\tfirst.edit(content, storeName, contentOnly);\n\n\t\tif (first !== last) {\n\t\t\tvar chunk = first.next;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tchunk.edit('', false);\n\t\t\t\tchunk = chunk.next;\n\t\t\t}\n\n\t\t\tchunk.edit('', false);\n\t\t}\n\t} else {\n\t\t// must be inserting at the end\n\t\tvar newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\tlast.next = newChunk;\n\t\tnewChunk.previous = last;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.prepend = function prepend (content) {\n\tif (typeof content !== 'string') { throw new TypeError('outro content must be a string'); }\n\n\tthis.intro = content + this.intro;\n\treturn this;\n};\n\nMagicString.prototype.prependLeft = function prependLeft (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byEnd[index];\n\n\tif (chunk) {\n\t\tchunk.prependLeft(content);\n\t} else {\n\t\tthis.intro = content + this.intro;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.prependRight = function prependRight (index, content) {\n\tif (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }\n\n\tthis._split(index);\n\n\tvar chunk = this.byStart[index];\n\n\tif (chunk) {\n\t\tchunk.prependRight(content);\n\t} else {\n\t\tthis.outro = content + this.outro;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.remove = function remove (start, end) {\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tif (start === end) { return this; }\n\n\tif (start < 0 || end > this.original.length) { throw new Error('Character is out of bounds'); }\n\tif (start > end) { throw new Error('end must be greater than start'); }\n\n\tthis._split(start);\n\tthis._split(end);\n\n\tvar chunk = this.byStart[start];\n\n\twhile (chunk) {\n\t\tchunk.intro = '';\n\t\tchunk.outro = '';\n\t\tchunk.edit('');\n\n\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t}\n\treturn this;\n};\n\nMagicString.prototype.lastChar = function lastChar () {\n\tif (this.outro.length)\n\t\t{ return this.outro[this.outro.length - 1]; }\n\tvar chunk = this.lastChunk;\n\tdo {\n\t\tif (chunk.outro.length)\n\t\t\t{ return chunk.outro[chunk.outro.length - 1]; }\n\t\tif (chunk.content.length)\n\t\t\t{ return chunk.content[chunk.content.length - 1]; }\n\t\tif (chunk.intro.length)\n\t\t\t{ return chunk.intro[chunk.intro.length - 1]; }\n\t} while (chunk = chunk.previous);\n\tif (this.intro.length)\n\t\t{ return this.intro[this.intro.length - 1]; }\n\treturn '';\n};\n\nMagicString.prototype.lastLine = function lastLine () {\n\tvar lineIndex = this.outro.lastIndexOf(n);\n\tif (lineIndex !== -1)\n\t\t{ return this.outro.substr(lineIndex + 1); }\n\tvar lineStr = this.outro;\n\tvar chunk = this.lastChunk;\n\tdo {\n\t\tif (chunk.outro.length > 0) {\n\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1)\n\t\t\t\t{ return chunk.outro.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.outro + lineStr;\n\t\t}\n\n\t\tif (chunk.content.length > 0) {\n\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1)\n\t\t\t\t{ return chunk.content.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.content + lineStr;\n\t\t}\n\n\t\tif (chunk.intro.length > 0) {\n\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\tif (lineIndex !== -1)\n\t\t\t\t{ return chunk.intro.substr(lineIndex + 1) + lineStr; }\n\t\t\tlineStr = chunk.intro + lineStr;\n\t\t}\n\t} while (chunk = chunk.previous);\n\tlineIndex = this.intro.lastIndexOf(n);\n\tif (lineIndex !== -1)\n\t\t{ return this.intro.substr(lineIndex + 1) + lineStr; }\n\treturn this.intro + lineStr;\n};\n\nMagicString.prototype.slice = function slice (start, end) {\n\t\tif ( start === void 0 ) start = 0;\n\t\tif ( end === void 0 ) end = this.original.length;\n\n\twhile (start < 0) { start += this.original.length; }\n\twhile (end < 0) { end += this.original.length; }\n\n\tvar result = '';\n\n\t// find start chunk\n\tvar chunk = this.firstChunk;\n\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t// found end chunk before start\n\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\treturn result;\n\t\t}\n\n\t\tchunk = chunk.next;\n\t}\n\n\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t{ throw new Error((\"Cannot use replaced character \" + start + \" as slice start anchor.\")); }\n\n\tvar startChunk = chunk;\n\twhile (chunk) {\n\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\tresult += chunk.intro;\n\t\t}\n\n\t\tvar containsEnd = chunk.start < end && chunk.end >= end;\n\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t{ throw new Error((\"Cannot use replaced character \" + end + \" as slice end anchor.\")); }\n\n\t\tvar sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\tvar sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\tresult += chunk.outro;\n\t\t}\n\n\t\tif (containsEnd) {\n\t\t\tbreak;\n\t\t}\n\n\t\tchunk = chunk.next;\n\t}\n\n\treturn result;\n};\n\n// TODO deprecate this? not really very useful\nMagicString.prototype.snip = function snip (start, end) {\n\tvar clone = this.clone();\n\tclone.remove(0, start);\n\tclone.remove(end, clone.original.length);\n\n\treturn clone;\n};\n\nMagicString.prototype._split = function _split (index) {\n\tif (this.byStart[index] || this.byEnd[index]) { return; }\n\n\tvar chunk = this.lastSearchedChunk;\n\tvar searchForward = index > chunk.end;\n\n\twhile (chunk) {\n\t\tif (chunk.contains(index)) { return this._splitChunk(chunk, index); }\n\n\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\t}\n};\n\nMagicString.prototype._splitChunk = function _splitChunk (chunk, index) {\n\tif (chunk.edited && chunk.content.length) {\n\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\tvar loc = getLocator(this.original)(index);\n\t\tthrow new Error(\n\t\t\t(\"Cannot split a chunk that has already been edited (\" + (loc.line) + \":\" + (loc.column) + \" \\\"\" + (chunk.original) + \"\\\")\")\n\t\t);\n\t}\n\n\tvar newChunk = chunk.split(index);\n\n\tthis.byEnd[index] = chunk;\n\tthis.byStart[index] = newChunk;\n\tthis.byEnd[newChunk.end] = newChunk;\n\n\tif (chunk === this.lastChunk) { this.lastChunk = newChunk; }\n\n\tthis.lastSearchedChunk = chunk;\n\treturn true;\n};\n\nMagicString.prototype.toString = function toString () {\n\tvar str = this.intro;\n\n\tvar chunk = this.firstChunk;\n\twhile (chunk) {\n\t\tstr += chunk.toString();\n\t\tchunk = chunk.next;\n\t}\n\n\treturn str + this.outro;\n};\n\nMagicString.prototype.isEmpty = function isEmpty () {\n\tvar chunk = this.firstChunk;\n\tdo {\n\t\tif (chunk.intro.length && chunk.intro.trim() ||\n\t\t\t\tchunk.content.length && chunk.content.trim() ||\n\t\t\t\tchunk.outro.length && chunk.outro.trim())\n\t\t\t{ return false; }\n\t} while (chunk = chunk.next);\n\treturn true;\n};\n\nMagicString.prototype.length = function length () {\n\tvar chunk = this.firstChunk;\n\tvar length = 0;\n\tdo {\n\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t} while (chunk = chunk.next);\n\treturn length;\n};\n\nMagicString.prototype.trimLines = function trimLines () {\n\treturn this.trim('[\\\\r\\\\n]');\n};\n\nMagicString.prototype.trim = function trim (charType) {\n\treturn this.trimStart(charType).trimEnd(charType);\n};\n\nMagicString.prototype.trimEndAborted = function trimEndAborted (charType) {\n\tvar rx = new RegExp((charType || '\\\\s') + '+$');\n\n\tthis.outro = this.outro.replace(rx, '');\n\tif (this.outro.length) { return true; }\n\n\tvar chunk = this.lastChunk;\n\n\tdo {\n\t\tvar end = chunk.end;\n\t\tvar aborted = chunk.trimEnd(rx);\n\n\t\t// if chunk was trimmed, we have a new lastChunk\n\t\tif (chunk.end !== end) {\n\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t}\n\n\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t}\n\n\t\tif (aborted) { return true; }\n\t\tchunk = chunk.previous;\n\t} while (chunk);\n\n\treturn false;\n};\n\nMagicString.prototype.trimEnd = function trimEnd (charType) {\n\tthis.trimEndAborted(charType);\n\treturn this;\n};\nMagicString.prototype.trimStartAborted = function trimStartAborted (charType) {\n\tvar rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\tthis.intro = this.intro.replace(rx, '');\n\tif (this.intro.length) { return true; }\n\n\tvar chunk = this.firstChunk;\n\n\tdo {\n\t\tvar end = chunk.end;\n\t\tvar aborted = chunk.trimStart(rx);\n\n\t\tif (chunk.end !== end) {\n\t\t\t// special case...\n\t\t\tif (chunk === this.lastChunk) { this.lastChunk = chunk.next; }\n\n\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t}\n\n\t\tif (aborted) { return true; }\n\t\tchunk = chunk.next;\n\t} while (chunk);\n\n\treturn false;\n};\n\nMagicString.prototype.trimStart = function trimStart (charType) {\n\tthis.trimStartAborted(charType);\n\treturn this;\n};\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n\nvar Bundle = function Bundle(options) {\n\tif ( options === void 0 ) options = {};\n\n\tthis.intro = options.intro || '';\n\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\tthis.sources = [];\n\tthis.uniqueSources = [];\n\tthis.uniqueSourceIndexByFilename = {};\n};\n\nBundle.prototype.addSource = function addSource (source) {\n\tif (source instanceof MagicString) {\n\t\treturn this.addSource({\n\t\t\tcontent: source,\n\t\t\tfilename: source.filename,\n\t\t\tseparator: this.separator\n\t\t});\n\t}\n\n\tif (!isObject(source) || !source.content) {\n\t\tthrow new Error('bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`');\n\t}\n\n\t['filename', 'indentExclusionRanges', 'separator'].forEach(function (option) {\n\t\tif (!hasOwnProp.call(source, option)) { source[option] = source.content[option]; }\n\t});\n\n\tif (source.separator === undefined) {\n\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\tsource.separator = this.separator;\n\t}\n\n\tif (source.filename) {\n\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t} else {\n\t\t\tvar uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\tthrow new Error((\"Illegal source: same filename (\" + (source.filename) + \"), different contents\"));\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.sources.push(source);\n\treturn this;\n};\n\nBundle.prototype.append = function append (str, options) {\n\tthis.addSource({\n\t\tcontent: new MagicString(str),\n\t\tseparator: (options && options.separator) || ''\n\t});\n\n\treturn this;\n};\n\nBundle.prototype.clone = function clone () {\n\tvar bundle = new Bundle({\n\t\tintro: this.intro,\n\t\tseparator: this.separator\n\t});\n\n\tthis.sources.forEach(function (source) {\n\t\tbundle.addSource({\n\t\t\tfilename: source.filename,\n\t\t\tcontent: source.content.clone(),\n\t\t\tseparator: source.separator\n\t\t});\n\t});\n\n\treturn bundle;\n};\n\nBundle.prototype.generateDecodedMap = function generateDecodedMap (options) {\n\t\tvar this$1 = this;\n\t\tif ( options === void 0 ) options = {};\n\n\tvar names = [];\n\tthis.sources.forEach(function (source) {\n\t\tObject.keys(source.content.storedNames).forEach(function (name) {\n\t\t\tif (!~names.indexOf(name)) { names.push(name); }\n\t\t});\n\t});\n\n\tvar mappings = new Mappings(options.hires);\n\n\tif (this.intro) {\n\t\tmappings.advance(this.intro);\n\t}\n\n\tthis.sources.forEach(function (source, i) {\n\t\tif (i > 0) {\n\t\t\tmappings.advance(this$1.separator);\n\t\t}\n\n\t\tvar sourceIndex = source.filename ? this$1.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\tvar magicString = source.content;\n\t\tvar locate = getLocator(magicString.original);\n\n\t\tif (magicString.intro) {\n\t\t\tmappings.advance(magicString.intro);\n\t\t}\n\n\t\tmagicString.firstChunk.eachNext(function (chunk) {\n\t\t\tvar loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) { mappings.advance(chunk.intro); }\n\n\t\t\tif (source.filename) {\n\t\t\t\tif (chunk.edited) {\n\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\tloc,\n\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\tchunk,\n\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\tloc,\n\t\t\t\t\t\tmagicString.sourcemapLocations\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmappings.advance(chunk.content);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) { mappings.advance(chunk.outro); }\n\t\t});\n\n\t\tif (magicString.outro) {\n\t\t\tmappings.advance(magicString.outro);\n\t\t}\n\t});\n\n\treturn {\n\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n\t\tsources: this.uniqueSources.map(function (source) {\n\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t}),\n\t\tsourcesContent: this.uniqueSources.map(function (source) {\n\t\t\treturn options.includeContent ? source.content : null;\n\t\t}),\n\t\tnames: names,\n\t\tmappings: mappings.raw\n\t};\n};\n\nBundle.prototype.generateMap = function generateMap (options) {\n\treturn new SourceMap(this.generateDecodedMap(options));\n};\n\nBundle.prototype.getIndentString = function getIndentString () {\n\tvar indentStringCounts = {};\n\n\tthis.sources.forEach(function (source) {\n\t\tvar indentStr = source.content.indentStr;\n\n\t\tif (indentStr === null) { return; }\n\n\t\tif (!indentStringCounts[indentStr]) { indentStringCounts[indentStr] = 0; }\n\t\tindentStringCounts[indentStr] += 1;\n\t});\n\n\treturn (\n\t\tObject.keys(indentStringCounts).sort(function (a, b) {\n\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t})[0] || '\\t'\n\t);\n};\n\nBundle.prototype.indent = function indent (indentStr) {\n\t\tvar this$1 = this;\n\n\tif (!arguments.length) {\n\t\tindentStr = this.getIndentString();\n\t}\n\n\tif (indentStr === '') { return this; } // noop\n\n\tvar trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\tthis.sources.forEach(function (source, i) {\n\t\tvar separator = source.separator !== undefined ? source.separator : this$1.separator;\n\t\tvar indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\tsource.content.indent(indentStr, {\n\t\t\texclude: source.indentExclusionRanges,\n\t\t\tindentStart: indentStart //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t});\n\n\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t});\n\n\tif (this.intro) {\n\t\tthis.intro =\n\t\t\tindentStr +\n\t\t\tthis.intro.replace(/^[^\\n]/gm, function (match, index) {\n\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t});\n\t}\n\n\treturn this;\n};\n\nBundle.prototype.prepend = function prepend (str) {\n\tthis.intro = str + this.intro;\n\treturn this;\n};\n\nBundle.prototype.toString = function toString () {\n\t\tvar this$1 = this;\n\n\tvar body = this.sources\n\t\t.map(function (source, i) {\n\t\t\tvar separator = source.separator !== undefined ? source.separator : this$1.separator;\n\t\t\tvar str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\treturn str;\n\t\t})\n\t\t.join('');\n\n\treturn this.intro + body;\n};\n\nBundle.prototype.isEmpty = function isEmpty () {\n\tif (this.intro.length && this.intro.trim())\n\t\t{ return false; }\n\tif (this.sources.some(function (source) { return !source.content.isEmpty(); }))\n\t\t{ return false; }\n\treturn true;\n};\n\nBundle.prototype.length = function length () {\n\treturn this.sources.reduce(function (length, source) { return length + source.content.length(); }, this.intro.length);\n};\n\nBundle.prototype.trimLines = function trimLines () {\n\treturn this.trim('[\\\\r\\\\n]');\n};\n\nBundle.prototype.trim = function trim (charType) {\n\treturn this.trimStart(charType).trimEnd(charType);\n};\n\nBundle.prototype.trimStart = function trimStart (charType) {\n\tvar rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\tthis.intro = this.intro.replace(rx, '');\n\n\tif (!this.intro) {\n\t\tvar source;\n\t\tvar i = 0;\n\n\t\tdo {\n\t\t\tsource = this.sources[i++];\n\t\t\tif (!source) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimStartAborted(charType));\n\t}\n\n\treturn this;\n};\n\nBundle.prototype.trimEnd = function trimEnd (charType) {\n\tvar rx = new RegExp((charType || '\\\\s') + '+$');\n\n\tvar source;\n\tvar i = this.sources.length - 1;\n\n\tdo {\n\t\tsource = this.sources[i--];\n\t\tif (!source) {\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tbreak;\n\t\t}\n\t} while (!source.content.trimEndAborted(charType));\n\n\treturn this;\n};\n\nexport default MagicString;\nexport { Bundle, SourceMap };\n//# sourceMappingURL=magic-string.es.js.map\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"ecma\",\"es\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/mrb-consumer+xml\":[\"*xdf\"],\"application/mrb-publish+xml\":[\"*xdf\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"*xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-error+xml\":[\"xer\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'));\n","import path from 'path'\nimport { parse as parseUrl } from 'url'\nimport fs, { promises as fsp } from 'fs'\nimport mime from 'mime/lite'\nimport { Plugin } from '../plugin'\nimport { ResolvedConfig } from '../config'\nimport { cleanUrl } from '../utils'\nimport { FS_PREFIX } from '../constants'\nimport { OutputOptions, PluginContext, RenderedChunk } from 'rollup'\nimport MagicString from 'magic-string'\nimport { createHash } from 'crypto'\nimport { normalizePath } from '../utils'\n\nexport const assetUrlRE = /__VITE_ASSET__([a-z\\d]{8})__(?:\\$_(.*?)__)?/g\n\n// urls in JS must be quoted as strings, so when replacing them we need\n// a different regex\nconst assetUrlQuotedRE = /\"__VITE_ASSET__([a-z\\d]{8})__(?:\\$_(.*?)__)?\"/g\n\nconst rawRE = /(\\?|&)raw(?:&|$)/\nconst urlRE = /(\\?|&)url(?:&|$)/\n\nexport const chunkToEmittedAssetsMap = new WeakMap<RenderedChunk, Set<string>>()\n\nconst assetCache = new WeakMap<ResolvedConfig, Map<string, string>>()\n\nconst assetHashToFilenameMap = new WeakMap<\n ResolvedConfig,\n Map<string, string>\n>()\n// save hashes of the files that has been emitted in build watch\nconst emittedHashMap = new WeakMap<ResolvedConfig, Set<string>>()\n\n/**\n * Also supports loading plain strings with import text from './foo.txt?raw'\n */\nexport function assetPlugin(config: ResolvedConfig): Plugin {\n // assetHashToFilenameMap initialization in buildStart causes getAssetFilename to return undefined\n assetHashToFilenameMap.set(config, new Map())\n return {\n name: 'vite:asset',\n\n buildStart() {\n assetCache.set(config, new Map())\n emittedHashMap.set(config, new Set())\n },\n\n resolveId(id) {\n if (!config.assetsInclude(cleanUrl(id))) {\n return\n }\n // imports to absolute urls pointing to files in /public\n // will fail to resolve in the main resolver. handle them here.\n const publicFile = checkPublicFile(id, config)\n if (publicFile) {\n return id\n }\n },\n\n async load(id) {\n if (id.startsWith('\\0')) {\n // Rollup convention, this id should be handled by the\n // plugin that marked it with \\0\n return\n }\n\n // raw requests, read from disk\n if (rawRE.test(id)) {\n const file = checkPublicFile(id, config) || cleanUrl(id)\n // raw query, read file and return as string\n return `export default ${JSON.stringify(\n await fsp.readFile(file, 'utf-8')\n )}`\n }\n\n if (!config.assetsInclude(cleanUrl(id)) && !urlRE.test(id)) {\n return\n }\n\n id = id.replace(urlRE, '$1').replace(/[\\?&]$/, '')\n const url = await fileToUrl(id, config, this)\n return `export default ${JSON.stringify(url)}`\n },\n\n renderChunk(code, chunk) {\n let match: RegExpExecArray | null\n let s: MagicString | undefined\n while ((match = assetUrlQuotedRE.exec(code))) {\n s = s || (s = new MagicString(code))\n const [full, hash, postfix = ''] = match\n // some internal plugins may still need to emit chunks (e.g. worker) so\n // fallback to this.getFileName for that.\n const file = getAssetFilename(hash, config) || this.getFileName(hash)\n registerAssetToChunk(chunk, file)\n const outputFilepath = config.base + file + postfix\n s.overwrite(\n match.index,\n match.index + full.length,\n JSON.stringify(outputFilepath)\n )\n }\n if (s) {\n return {\n code: s.toString(),\n map: config.build.sourcemap ? s.generateMap({ hires: true }) : null\n }\n } else {\n return null\n }\n },\n\n generateBundle(_, bundle) {\n // do not emit assets for SSR build\n if (config.command === 'build' && config.build.ssr) {\n for (const file in bundle) {\n if (\n bundle[file].type === 'asset' &&\n !file.includes('ssr-manifest.json')\n ) {\n delete bundle[file]\n }\n }\n }\n }\n }\n}\n\nexport function registerAssetToChunk(chunk: RenderedChunk, file: string): void {\n let emitted = chunkToEmittedAssetsMap.get(chunk)\n if (!emitted) {\n emitted = new Set()\n chunkToEmittedAssetsMap.set(chunk, emitted)\n }\n emitted.add(cleanUrl(file))\n}\n\nexport function checkPublicFile(\n url: string,\n { publicDir }: ResolvedConfig\n): string | undefined {\n // note if the file is in /public, the resolver would have returned it\n // as-is so it's not going to be a fully resolved path.\n if (!publicDir || !url.startsWith('/')) {\n return\n }\n const publicFile = path.join(publicDir, cleanUrl(url))\n if (fs.existsSync(publicFile)) {\n return publicFile\n } else {\n return\n }\n}\n\nexport function fileToUrl(\n id: string,\n config: ResolvedConfig,\n ctx: PluginContext\n): string | Promise<string> {\n if (config.command === 'serve') {\n return fileToDevUrl(id, config)\n } else {\n return fileToBuiltUrl(id, config, ctx)\n }\n}\n\nfunction fileToDevUrl(id: string, config: ResolvedConfig) {\n let rtn: string\n if (checkPublicFile(id, config)) {\n // in public dir, keep the url as-is\n rtn = id\n } else if (id.startsWith(config.root)) {\n // in project root, infer short public path\n rtn = '/' + path.posix.relative(config.root, id)\n } else {\n // outside of project root, use absolute fs path\n // (this is special handled by the serve static middleware\n rtn = path.posix.join(FS_PREFIX + id)\n }\n return config.base + rtn.replace(/^\\//, '')\n}\n\nexport function getAssetFilename(\n hash: string,\n config: ResolvedConfig\n): string | undefined {\n return assetHashToFilenameMap.get(config)?.get(hash)\n}\n\n/**\n * converts the source filepath of the asset to the output filename based on the assetFileNames option. \\\n * this function imitates the behavior of rollup.js. \\\n * https://rollupjs.org/guide/en/#outputassetfilenames\n *\n * @example\n * ```ts\n * const content = Buffer.from('text');\n * const fileName = assetFileNamesToFileName(\n * 'assets/[name].[hash][extname]',\n * '/path/to/file.txt',\n * getAssetHash(content),\n * content\n * )\n * // fileName: 'assets/file.982d9e3e.txt'\n * ```\n *\n * @param assetFileNames filename pattern. e.g. `'assets/[name].[hash][extname]'`\n * @param file filepath of the asset\n * @param contentHash hash of the asset. used for `'[hash]'` placeholder\n * @param content content of the asset. passed to `assetFileNames` if `assetFileNames` is a function\n * @returns output filename\n */\nexport function assetFileNamesToFileName(\n assetFileNames: Exclude<OutputOptions['assetFileNames'], undefined>,\n file: string,\n contentHash: string,\n content: string | Buffer\n): string {\n const basename = path.basename(file)\n\n // placeholders for `assetFileNames`\n // `hash` is slightly different from the rollup's one\n const extname = path.extname(basename)\n const ext = extname.substr(1)\n const name = basename.slice(0, -extname.length)\n const hash = contentHash\n\n if (typeof assetFileNames === 'function') {\n assetFileNames = assetFileNames({\n name: file,\n source: content,\n type: 'asset'\n })\n if (typeof assetFileNames !== 'string') {\n throw new TypeError('assetFileNames must return a string')\n }\n } else if (typeof assetFileNames !== 'string') {\n throw new TypeError('assetFileNames must be a string or a function')\n }\n\n const fileName = assetFileNames.replace(\n /\\[\\w+\\]/g,\n (placeholder: string): string => {\n switch (placeholder) {\n case '[ext]':\n return ext\n\n case '[extname]':\n return extname\n\n case '[hash]':\n return hash\n\n case '[name]':\n return name\n }\n throw new Error(\n `invalid placeholder ${placeholder} in assetFileNames \"${assetFileNames}\"`\n )\n }\n )\n\n return fileName\n}\n\n/**\n * Register an asset to be emitted as part of the bundle (if necessary)\n * and returns the resolved public URL\n */\nasync function fileToBuiltUrl(\n id: string,\n config: ResolvedConfig,\n pluginContext: PluginContext,\n skipPublicCheck = false\n): Promise<string> {\n if (!skipPublicCheck && checkPublicFile(id, config)) {\n return config.base + id.slice(1)\n }\n\n const cache = assetCache.get(config)!\n const cached = cache.get(id)\n if (cached) {\n return cached\n }\n\n const file = cleanUrl(id)\n const content = await fsp.readFile(file)\n\n let url: string\n if (\n config.build.lib ||\n (!file.endsWith('.svg') &&\n content.length < Number(config.build.assetsInlineLimit))\n ) {\n // base64 inlined as a string\n url = `data:${mime.getType(file)};base64,${content.toString('base64')}`\n } else {\n // emit as asset\n // rollup supports `import.meta.ROLLUP_FILE_URL_*`, but it generates code\n // that uses runtime url sniffing and it can be verbose when targeting\n // non-module format. It also fails to cascade the asset content change\n // into the chunk's hash, so we have to do our own content hashing here.\n // https://bundlers.tooling.report/hashing/asset-cascade/\n // https://github.com/rollup/rollup/issues/3415\n const map = assetHashToFilenameMap.get(config)!\n const contentHash = getAssetHash(content)\n const { search, hash } = parseUrl(id)\n const postfix = (search || '') + (hash || '')\n const output = config.build?.rollupOptions?.output\n const assetFileNames =\n (output && !Array.isArray(output) ? output.assetFileNames : undefined) ??\n // defaults to '<assetsDir>/[name].[hash][extname]'\n // slightly different from rollup's one ('assets/[name]-[hash][extname]')\n path.posix.join(config.build.assetsDir, '[name].[hash][extname]')\n const fileName = assetFileNamesToFileName(\n assetFileNames,\n file,\n contentHash,\n content\n )\n if (!map.has(contentHash)) {\n map.set(contentHash, fileName)\n }\n const emittedSet = emittedHashMap.get(config)!\n if (!emittedSet.has(contentHash)) {\n const name = normalizePath(path.relative(config.root, file))\n pluginContext.emitFile({\n name,\n fileName,\n type: 'asset',\n source: content\n })\n emittedSet.add(contentHash)\n }\n\n url = `__VITE_ASSET__${contentHash}__${postfix ? `$_${postfix}__` : ``}`\n }\n\n cache.set(id, url)\n return url\n}\n\nexport function getAssetHash(content: Buffer): string {\n return createHash('sha256').update(content).digest('hex').slice(0, 8)\n}\n\nexport async function urlToBuiltUrl(\n url: string,\n importer: string,\n config: ResolvedConfig,\n pluginContext: PluginContext\n): Promise<string> {\n if (checkPublicFile(url, config)) {\n return config.base + url.slice(1)\n }\n const file = url.startsWith('/')\n ? path.join(config.root, url)\n : path.join(path.dirname(importer), url)\n return fileToBuiltUrl(\n file,\n config,\n pluginContext,\n // skip public check since we just did it above\n true\n )\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWhen = exports.flatten = void 0;\nfunction flatten(items) {\n return items.reduce((collection, item) => [].concat(collection, item), []);\n}\nexports.flatten = flatten;\nfunction splitWhen(items, predicate) {\n const result = [[]];\n let groupIndex = 0;\n for (const item of items) {\n if (predicate(item)) {\n groupIndex++;\n result[groupIndex] = [];\n }\n else {\n result[groupIndex].push(item);\n }\n }\n return result;\n}\nexports.splitWhen = splitWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEnoentCodeError = void 0;\nfunction isEnoentCodeError(error) {\n return error.code === 'ENOENT';\n}\nexports.isEnoentCodeError = isEnoentCodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0;\nconst path = require(\"path\");\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\nconst UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\())/g;\n/**\n * Designed to work only with simple paths: `dir\\\\file`.\n */\nfunction unixify(filepath) {\n return filepath.replace(/\\\\/g, '/');\n}\nexports.unixify = unixify;\nfunction makeAbsolute(cwd, filepath) {\n return path.resolve(cwd, filepath);\n}\nexports.makeAbsolute = makeAbsolute;\nfunction escape(pattern) {\n return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escape = escape;\nfunction removeLeadingDotSegment(entry) {\n // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n if (entry.charAt(0) === '.') {\n const secondCharactery = entry.charAt(1);\n if (secondCharactery === '/' || secondCharactery === '\\\\') {\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n }\n }\n return entry;\n}\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\n","/*!\n * is-extglob <https://github.com/jonschlinkert/is-extglob>\n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n var match;\n while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n if (match[2]) return true;\n str = str.slice(match.index + match[0].length);\n }\n\n return false;\n};\n","/*!\n * is-glob <https://github.com/jonschlinkert/is-glob>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = require('is-extglob');\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictRegex = /\\\\(.)|(^!|\\*|[\\].+)]\\?|\\[[^\\\\\\]]+\\]|\\{[^\\\\}]+\\}|\\(\\?[:!=][^\\\\)]+\\)|\\([^|]+\\|[^\\\\)]+\\))/;\nvar relaxedRegex = /\\\\(.)|(^!|[*?{}()[\\]]|\\(\\?)/;\n\nmodule.exports = function isGlob(str, options) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n if (isExtglob(str)) {\n return true;\n }\n\n var regex = strictRegex;\n var match;\n\n // optionally relax regex\n if (options && options.strict === false) {\n regex = relaxedRegex;\n }\n\n while ((match = regex.exec(str))) {\n if (match[2]) return true;\n var idx = match.index + match[0].length;\n\n // if an open bracket/brace/paren is escaped,\n // set the index to the next closing character\n var open = match[1];\n var close = open ? chars[open] : null;\n if (open && close) {\n var n = str.indexOf(close, idx);\n if (n !== -1) {\n idx = n + 1;\n }\n }\n\n str = str.slice(idx);\n }\n return false;\n};\n","'use strict';\n\nvar isGlob = require('is-glob');\nvar pathPosixDirname = require('path').posix.dirname;\nvar isWin32 = require('os').platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n var options = Object.assign({ flipBackslashes: true }, opts);\n\n // flip windows path separators\n if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n str = str.replace(backslash, slash);\n }\n\n // special case for strings ending in enclosure containing path separator\n if (enclosure.test(str)) {\n str += slash;\n }\n\n // preserves full path in case of trailing path separator\n str += 'a';\n\n // remove path parts that are globby\n do {\n str = pathPosixDirname(str);\n } while (isGlob(str) || globby.test(str));\n\n // remove escape chars and return result\n return str.replace(escaped, '$1');\n};\n","'use strict';\n\nexports.isInteger = num => {\n if (typeof num === 'number') {\n return Number.isInteger(num);\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isInteger(Number(num));\n }\n return false;\n};\n\n/**\n * Find a node of the given type\n */\n\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\n\n/**\n * Find a node of the given type\n */\n\nexports.exceedsLimit = (min, max, step = 1, limit) => {\n if (limit === false) return false;\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n return ((Number(max) - Number(min)) / Number(step)) >= limit;\n};\n\n/**\n * Escape the given node with '\\\\' before node.value\n */\n\nexports.escapeNode = (block, n = 0, type) => {\n let node = block.nodes[n];\n if (!node) return;\n\n if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\n if (node.escaped !== true) {\n node.value = '\\\\' + node.value;\n node.escaped = true;\n }\n }\n};\n\n/**\n * Returns true if the given brace node should be enclosed in literal braces\n */\n\nexports.encloseBrace = node => {\n if (node.type !== 'brace') return false;\n if ((node.commas >> 0 + node.ranges >> 0) === 0) {\n node.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a brace node is invalid.\n */\n\nexports.isInvalidBrace = block => {\n if (block.type !== 'brace') return false;\n if (block.invalid === true || block.dollar) return true;\n if ((block.commas >> 0 + block.ranges >> 0) === 0) {\n block.invalid = true;\n return true;\n }\n if (block.open !== true || block.close !== true) {\n block.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a node is an open or close node\n */\n\nexports.isOpenOrClose = node => {\n if (node.type === 'open' || node.type === 'close') {\n return true;\n }\n return node.open === true || node.close === true;\n};\n\n/**\n * Reduce an array of text nodes.\n */\n\nexports.reduce = nodes => nodes.reduce((acc, node) => {\n if (node.type === 'text') acc.push(node.value);\n if (node.type === 'range') node.type = 'text';\n return acc;\n}, []);\n\n/**\n * Flatten an array\n */\n\nexports.flatten = (...args) => {\n const result = [];\n const flat = arr => {\n for (let i = 0; i < arr.length; i++) {\n let ele = arr[i];\n Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele);\n }\n return result;\n };\n flat(args);\n return result;\n};\n","'use strict';\n\nconst utils = require('./utils');\n\nmodule.exports = (ast, options = {}) => {\n let stringify = (node, parent = {}) => {\n let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\n let invalidNode = node.invalid === true && options.escapeInvalid === true;\n let output = '';\n\n if (node.value) {\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n return '\\\\' + node.value;\n }\n return node.value;\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes) {\n for (let child of node.nodes) {\n output += stringify(child);\n }\n }\n return output;\n };\n\n return stringify(ast);\n};\n\n","/*!\n * is-number <https://github.com/jonschlinkert/is-number>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(num) {\n if (typeof num === 'number') {\n return num - num === 0;\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n};\n","/*!\n * to-regex-range <https://github.com/micromatch/to-regex-range>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst isNumber = require('is-number');\n\nconst toRegexRange = (min, max, options) => {\n if (isNumber(min) === false) {\n throw new TypeError('toRegexRange: expected the first argument to be a number');\n }\n\n if (max === void 0 || min === max) {\n return String(min);\n }\n\n if (isNumber(max) === false) {\n throw new TypeError('toRegexRange: expected the second argument to be a number.');\n }\n\n let opts = { relaxZeros: true, ...options };\n if (typeof opts.strictZeros === 'boolean') {\n opts.relaxZeros = opts.strictZeros === false;\n }\n\n let relax = String(opts.relaxZeros);\n let shorthand = String(opts.shorthand);\n let capture = String(opts.capture);\n let wrap = String(opts.wrap);\n let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n return toRegexRange.cache[cacheKey].result;\n }\n\n let a = Math.min(min, max);\n let b = Math.max(min, max);\n\n if (Math.abs(a - b) === 1) {\n let result = min + '|' + max;\n if (opts.capture) {\n return `(${result})`;\n }\n if (opts.wrap === false) {\n return result;\n }\n return `(?:${result})`;\n }\n\n let isPadded = hasPadding(min) || hasPadding(max);\n let state = { min, max, a, b };\n let positives = [];\n let negatives = [];\n\n if (isPadded) {\n state.isPadded = isPadded;\n state.maxLen = String(state.max).length;\n }\n\n if (a < 0) {\n let newMin = b < 0 ? Math.abs(b) : 1;\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n a = state.a = 0;\n }\n\n if (b >= 0) {\n positives = splitToPatterns(a, b, state, opts);\n }\n\n state.negatives = negatives;\n state.positives = positives;\n state.result = collatePatterns(negatives, positives, opts);\n\n if (opts.capture === true) {\n state.result = `(${state.result})`;\n } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\n state.result = `(?:${state.result})`;\n }\n\n toRegexRange.cache[cacheKey] = state;\n return state.result;\n};\n\nfunction collatePatterns(neg, pos, options) {\n let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n let nines = 1;\n let zeros = 1;\n\n let stop = countNines(min, nines);\n let stops = new Set([max]);\n\n while (min <= stop && stop <= max) {\n stops.add(stop);\n nines += 1;\n stop = countNines(min, nines);\n }\n\n stop = countZeros(max + 1, zeros) - 1;\n\n while (min < stop && stop <= max) {\n stops.add(stop);\n zeros += 1;\n stop = countZeros(max + 1, zeros) - 1;\n }\n\n stops = [...stops];\n stops.sort(compare);\n return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n if (start === stop) {\n return { pattern: start, count: [], digits: 0 };\n }\n\n let zipped = zip(start, stop);\n let digits = zipped.length;\n let pattern = '';\n let count = 0;\n\n for (let i = 0; i < digits; i++) {\n let [startDigit, stopDigit] = zipped[i];\n\n if (startDigit === stopDigit) {\n pattern += startDigit;\n\n } else if (startDigit !== '0' || stopDigit !== '9') {\n pattern += toCharacterClass(startDigit, stopDigit, options);\n\n } else {\n count++;\n }\n }\n\n if (count) {\n pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n }\n\n return { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n let ranges = splitToRanges(min, max);\n let tokens = [];\n let start = min;\n let prev;\n\n for (let i = 0; i < ranges.length; i++) {\n let max = ranges[i];\n let obj = rangeToPattern(String(start), String(max), options);\n let zeros = '';\n\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n if (prev.count.length > 1) {\n prev.count.pop();\n }\n\n prev.count.push(obj.count[0]);\n prev.string = prev.pattern + toQuantifier(prev.count);\n start = max + 1;\n continue;\n }\n\n if (tok.isPadded) {\n zeros = padZeros(max, tok, options);\n }\n\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n tokens.push(obj);\n start = max + 1;\n prev = obj;\n }\n\n return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n let result = [];\n\n for (let ele of arr) {\n let { string } = ele;\n\n // only push if _both_ are negative...\n if (!intersection && !contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n\n // or _both_ are positive\n if (intersection && contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n }\n return result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b) {\n let arr = [];\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n return arr;\n}\n\nfunction compare(a, b) {\n return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val) {\n return arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len) {\n return Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros) {\n return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n let [start = 0, stop = ''] = digits;\n if (stop || start > 1) {\n return `{${start + (stop ? ',' + stop : '')}}`;\n }\n return '';\n}\n\nfunction toCharacterClass(a, b, options) {\n return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str) {\n return /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options) {\n if (!tok.isPadded) {\n return value;\n }\n\n let diff = Math.abs(tok.maxLen - String(value).length);\n let relax = options.relaxZeros !== false;\n\n switch (diff) {\n case 0:\n return '';\n case 1:\n return relax ? '0?' : '0';\n case 2:\n return relax ? '0{0,2}' : '00';\n default: {\n return relax ? `0{0,${diff}}` : `0{${diff}}`;\n }\n }\n}\n\n/**\n * Cache\n */\n\ntoRegexRange.cache = {};\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n","/*!\n * fill-range <https://github.com/jonschlinkert/fill-range>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nconst util = require('util');\nconst toRegexRange = require('to-regex-range');\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst transform = toNumber => {\n return value => toNumber === true ? Number(value) : String(value);\n};\n\nconst isValidValue = value => {\n return typeof value === 'number' || (typeof value === 'string' && value !== '');\n};\n\nconst isNumber = num => Number.isInteger(+num);\n\nconst zeros = input => {\n let value = `${input}`;\n let index = -1;\n if (value[0] === '-') value = value.slice(1);\n if (value === '0') return false;\n while (value[++index] === '0');\n return index > 0;\n};\n\nconst stringify = (start, end, options) => {\n if (typeof start === 'string' || typeof end === 'string') {\n return true;\n }\n return options.stringify === true;\n};\n\nconst pad = (input, maxLength, toNumber) => {\n if (maxLength > 0) {\n let dash = input[0] === '-' ? '-' : '';\n if (dash) input = input.slice(1);\n input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\n }\n if (toNumber === false) {\n return String(input);\n }\n return input;\n};\n\nconst toMaxLen = (input, maxLength) => {\n let negative = input[0] === '-' ? '-' : '';\n if (negative) {\n input = input.slice(1);\n maxLength--;\n }\n while (input.length < maxLength) input = '0' + input;\n return negative ? ('-' + input) : input;\n};\n\nconst toSequence = (parts, options) => {\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\n let prefix = options.capture ? '' : '?:';\n let positives = '';\n let negatives = '';\n let result;\n\n if (parts.positives.length) {\n positives = parts.positives.join('|');\n }\n\n if (parts.negatives.length) {\n negatives = `-(${prefix}${parts.negatives.join('|')})`;\n }\n\n if (positives && negatives) {\n result = `${positives}|${negatives}`;\n } else {\n result = positives || negatives;\n }\n\n if (options.wrap) {\n return `(${prefix}${result})`;\n }\n\n return result;\n};\n\nconst toRange = (a, b, isNumbers, options) => {\n if (isNumbers) {\n return toRegexRange(a, b, { wrap: false, ...options });\n }\n\n let start = String.fromCharCode(a);\n if (a === b) return start;\n\n let stop = String.fromCharCode(b);\n return `[${start}-${stop}]`;\n};\n\nconst toRegex = (start, end, options) => {\n if (Array.isArray(start)) {\n let wrap = options.wrap === true;\n let prefix = options.capture ? '' : '?:';\n return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\n }\n return toRegexRange(start, end, options);\n};\n\nconst rangeError = (...args) => {\n return new RangeError('Invalid range arguments: ' + util.inspect(...args));\n};\n\nconst invalidRange = (start, end, options) => {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n};\n\nconst invalidStep = (step, options) => {\n if (options.strictRanges === true) {\n throw new TypeError(`Expected step \"${step}\" to be a number`);\n }\n return [];\n};\n\nconst fillNumbers = (start, end, step = 1, options = {}) => {\n let a = Number(start);\n let b = Number(end);\n\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n }\n\n // fix negative zero\n if (a === 0) a = 0;\n if (b === 0) b = 0;\n\n let descending = a > b;\n let startString = String(start);\n let endString = String(end);\n let stepString = String(step);\n step = Math.max(Math.abs(step), 1);\n\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n let toNumber = padded === false && stringify(start, end, options) === false;\n let format = options.transform || transform(toNumber);\n\n if (options.toRegex && step === 1) {\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\n }\n\n let parts = { negatives: [], positives: [] };\n let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n if (options.toRegex === true && step > 1) {\n push(a);\n } else {\n range.push(pad(format(a, index), maxLen, toNumber));\n }\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return step > 1\n ? toSequence(parts, options)\n : toRegex(range, null, { wrap: false, ...options });\n }\n\n return range;\n};\n\nconst fillLetters = (start, end, step = 1, options = {}) => {\n if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\n return invalidRange(start, end, options);\n }\n\n\n let format = options.transform || (val => String.fromCharCode(val));\n let a = `${start}`.charCodeAt(0);\n let b = `${end}`.charCodeAt(0);\n\n let descending = a > b;\n let min = Math.min(a, b);\n let max = Math.max(a, b);\n\n if (options.toRegex && step === 1) {\n return toRange(min, max, false, options);\n }\n\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n range.push(format(a, index));\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return toRegex(range, null, { wrap: false, options });\n }\n\n return range;\n};\n\nconst fill = (start, end, step, options = {}) => {\n if (end == null && isValidValue(start)) {\n return [start];\n }\n\n if (!isValidValue(start) || !isValidValue(end)) {\n return invalidRange(start, end, options);\n }\n\n if (typeof step === 'function') {\n return fill(start, end, 1, { transform: step });\n }\n\n if (isObject(step)) {\n return fill(start, end, 0, step);\n }\n\n let opts = { ...options };\n if (opts.capture === true) opts.wrap = true;\n step = step || opts.step || 1;\n\n if (!isNumber(step)) {\n if (step != null && !isObject(step)) return invalidStep(step, opts);\n return fill(start, end, 1, step);\n }\n\n if (isNumber(start) && isNumber(end)) {\n return fillNumbers(start, end, step, opts);\n }\n\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n};\n\nmodule.exports = fill;\n","'use strict';\n\nconst fill = require('fill-range');\nconst utils = require('./utils');\n\nconst compile = (ast, options = {}) => {\n let walk = (node, parent = {}) => {\n let invalidBlock = utils.isInvalidBrace(parent);\n let invalidNode = node.invalid === true && options.escapeInvalid === true;\n let invalid = invalidBlock === true || invalidNode === true;\n let prefix = options.escapeInvalid === true ? '\\\\' : '';\n let output = '';\n\n if (node.isOpen === true) {\n return prefix + node.value;\n }\n if (node.isClose === true) {\n return prefix + node.value;\n }\n\n if (node.type === 'open') {\n return invalid ? (prefix + node.value) : '(';\n }\n\n if (node.type === 'close') {\n return invalid ? (prefix + node.value) : ')';\n }\n\n if (node.type === 'comma') {\n return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|');\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes && node.ranges > 0) {\n let args = utils.reduce(node.nodes);\n let range = fill(...args, { ...options, wrap: false, toRegex: true });\n\n if (range.length !== 0) {\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\n }\n }\n\n if (node.nodes) {\n for (let child of node.nodes) {\n output += walk(child, node);\n }\n }\n return output;\n };\n\n return walk(ast);\n};\n\nmodule.exports = compile;\n","'use strict';\n\nconst fill = require('fill-range');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\nconst append = (queue = '', stash = '', enclose = false) => {\n let result = [];\n\n queue = [].concat(queue);\n stash = [].concat(stash);\n\n if (!stash.length) return queue;\n if (!queue.length) {\n return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\n }\n\n for (let item of queue) {\n if (Array.isArray(item)) {\n for (let value of item) {\n result.push(append(value, stash, enclose));\n }\n } else {\n for (let ele of stash) {\n if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele));\n }\n }\n }\n return utils.flatten(result);\n};\n\nconst expand = (ast, options = {}) => {\n let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit;\n\n let walk = (node, parent = {}) => {\n node.queue = [];\n\n let p = parent;\n let q = parent.queue;\n\n while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\n p = p.parent;\n q = p.queue;\n }\n\n if (node.invalid || node.dollar) {\n q.push(append(q.pop(), stringify(node, options)));\n return;\n }\n\n if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\n q.push(append(q.pop(), ['{}']));\n return;\n }\n\n if (node.nodes && node.ranges > 0) {\n let args = utils.reduce(node.nodes);\n\n if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\n throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n }\n\n let range = fill(...args, options);\n if (range.length === 0) {\n range = stringify(node, options);\n }\n\n q.push(append(q.pop(), range));\n node.nodes = [];\n return;\n }\n\n let enclose = utils.encloseBrace(node);\n let queue = node.queue;\n let block = node;\n\n while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\n block = block.parent;\n queue = block.queue;\n }\n\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i];\n\n if (child.type === 'comma' && node.type === 'brace') {\n if (i === 1) queue.push('');\n queue.push('');\n continue;\n }\n\n if (child.type === 'close') {\n q.push(append(q.pop(), queue, enclose));\n continue;\n }\n\n if (child.value && child.type !== 'open') {\n queue.push(append(queue.pop(), child.value));\n continue;\n }\n\n if (child.nodes) {\n walk(child, node);\n }\n }\n\n return queue;\n };\n\n return utils.flatten(walk(ast));\n};\n\nmodule.exports = expand;\n","'use strict';\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n\n // Digits\n CHAR_0: '0', /* 0 */\n CHAR_9: '9', /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 'A', /* A */\n CHAR_LOWERCASE_A: 'a', /* a */\n CHAR_UPPERCASE_Z: 'Z', /* Z */\n CHAR_LOWERCASE_Z: 'z', /* z */\n\n CHAR_LEFT_PARENTHESES: '(', /* ( */\n CHAR_RIGHT_PARENTHESES: ')', /* ) */\n\n CHAR_ASTERISK: '*', /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: '&', /* & */\n CHAR_AT: '@', /* @ */\n CHAR_BACKSLASH: '\\\\', /* \\ */\n CHAR_BACKTICK: '`', /* ` */\n CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\n CHAR_COLON: ':', /* : */\n CHAR_COMMA: ',', /* , */\n CHAR_DOLLAR: '$', /* . */\n CHAR_DOT: '.', /* . */\n CHAR_DOUBLE_QUOTE: '\"', /* \" */\n CHAR_EQUAL: '=', /* = */\n CHAR_EXCLAMATION_MARK: '!', /* ! */\n CHAR_FORM_FEED: '\\f', /* \\f */\n CHAR_FORWARD_SLASH: '/', /* / */\n CHAR_HASH: '#', /* # */\n CHAR_HYPHEN_MINUS: '-', /* - */\n CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\n CHAR_LEFT_CURLY_BRACE: '{', /* { */\n CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\n CHAR_LINE_FEED: '\\n', /* \\n */\n CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\n CHAR_PERCENT: '%', /* % */\n CHAR_PLUS: '+', /* + */\n CHAR_QUESTION_MARK: '?', /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\n CHAR_RIGHT_CURLY_BRACE: '}', /* } */\n CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\n CHAR_SEMICOLON: ';', /* ; */\n CHAR_SINGLE_QUOTE: '\\'', /* ' */\n CHAR_SPACE: ' ', /* */\n CHAR_TAB: '\\t', /* \\t */\n CHAR_UNDERSCORE: '_', /* _ */\n CHAR_VERTICAL_LINE: '|', /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\n};\n","'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n CHAR_BACKSLASH, /* \\ */\n CHAR_BACKTICK, /* ` */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n CHAR_DOUBLE_QUOTE, /* \" */\n CHAR_SINGLE_QUOTE, /* ' */\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n let opts = options || {};\n let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n if (input.length > max) {\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n }\n\n let ast = { type: 'root', input, nodes: [] };\n let stack = [ast];\n let block = ast;\n let prev = ast;\n let brackets = 0;\n let length = input.length;\n let index = 0;\n let depth = 0;\n let value;\n let memo = {};\n\n /**\n * Helpers\n */\n\n const advance = () => input[index++];\n const push = node => {\n if (node.type === 'text' && prev.type === 'dot') {\n prev.type = 'text';\n }\n\n if (prev && prev.type === 'text' && node.type === 'text') {\n prev.value += node.value;\n return;\n }\n\n block.nodes.push(node);\n node.parent = block;\n node.prev = prev;\n prev = node;\n return node;\n };\n\n push({ type: 'bos' });\n\n while (index < length) {\n block = stack[stack.length - 1];\n value = advance();\n\n /**\n * Invalid chars\n */\n\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n continue;\n }\n\n /**\n * Escaped chars\n */\n\n if (value === CHAR_BACKSLASH) {\n push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n continue;\n }\n\n /**\n * Right square bracket (literal): ']'\n */\n\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n push({ type: 'text', value: '\\\\' + value });\n continue;\n }\n\n /**\n * Left square bracket: '['\n */\n\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n\n let closed = true;\n let next;\n\n while (index < length && (next = advance())) {\n value += next;\n\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n continue;\n }\n\n if (next === CHAR_BACKSLASH) {\n value += advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n brackets--;\n\n if (brackets === 0) {\n break;\n }\n }\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === CHAR_LEFT_PARENTHESES) {\n block = push({ type: 'paren', nodes: [] });\n stack.push(block);\n push({ type: 'text', value });\n continue;\n }\n\n if (value === CHAR_RIGHT_PARENTHESES) {\n if (block.type !== 'paren') {\n push({ type: 'text', value });\n continue;\n }\n block = stack.pop();\n push({ type: 'text', value });\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Quotes: '|\"|`\n */\n\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n let open = value;\n let next;\n\n if (options.keepQuotes !== true) {\n value = '';\n }\n\n while (index < length && (next = advance())) {\n if (next === CHAR_BACKSLASH) {\n value += next + advance();\n continue;\n }\n\n if (next === open) {\n if (options.keepQuotes === true) value += next;\n break;\n }\n\n value += next;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Left curly brace: '{'\n */\n\n if (value === CHAR_LEFT_CURLY_BRACE) {\n depth++;\n\n let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n let brace = {\n type: 'brace',\n open: true,\n close: false,\n dollar,\n depth,\n commas: 0,\n ranges: 0,\n nodes: []\n };\n\n block = push(brace);\n stack.push(block);\n push({ type: 'open', value });\n continue;\n }\n\n /**\n * Right curly brace: '}'\n */\n\n if (value === CHAR_RIGHT_CURLY_BRACE) {\n if (block.type !== 'brace') {\n push({ type: 'text', value });\n continue;\n }\n\n let type = 'close';\n block = stack.pop();\n block.close = true;\n\n push({ type, value });\n depth--;\n\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Comma: ','\n */\n\n if (value === CHAR_COMMA && depth > 0) {\n if (block.ranges > 0) {\n block.ranges = 0;\n let open = block.nodes.shift();\n block.nodes = [open, { type: 'text', value: stringify(block) }];\n }\n\n push({ type: 'comma', value });\n block.commas++;\n continue;\n }\n\n /**\n * Dot: '.'\n */\n\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n let siblings = block.nodes;\n\n if (depth === 0 || siblings.length === 0) {\n push({ type: 'text', value });\n continue;\n }\n\n if (prev.type === 'dot') {\n block.range = [];\n prev.value += value;\n prev.type = 'range';\n\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n block.invalid = true;\n block.ranges = 0;\n prev.type = 'text';\n continue;\n }\n\n block.ranges++;\n block.args = [];\n continue;\n }\n\n if (prev.type === 'range') {\n siblings.pop();\n\n let before = siblings[siblings.length - 1];\n before.value += prev.value + value;\n prev = before;\n block.ranges--;\n continue;\n }\n\n push({ type: 'dot', value });\n continue;\n }\n\n /**\n * Text\n */\n\n push({ type: 'text', value });\n }\n\n // Mark imbalanced braces and brackets as invalid\n do {\n block = stack.pop();\n\n if (block.type !== 'root') {\n block.nodes.forEach(node => {\n if (!node.nodes) {\n if (node.type === 'open') node.isOpen = true;\n if (node.type === 'close') node.isClose = true;\n if (!node.nodes) node.type = 'text';\n node.invalid = true;\n }\n });\n\n // get the location of the block on parent.nodes (block's siblings)\n let parent = stack[stack.length - 1];\n let index = parent.nodes.indexOf(block);\n // replace the (invalid) block with it's nodes\n parent.nodes.splice(index, 1, ...block.nodes);\n }\n } while (stack.length > 0);\n\n push({ type: 'eos' });\n return ast;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst stringify = require('./lib/stringify');\nconst compile = require('./lib/compile');\nconst expand = require('./lib/expand');\nconst parse = require('./lib/parse');\n\n/**\n * Expand the given pattern or create a regex-compatible string.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nconst braces = (input, options = {}) => {\n let output = [];\n\n if (Array.isArray(input)) {\n for (let pattern of input) {\n let result = braces.create(pattern, options);\n if (Array.isArray(result)) {\n output.push(...result);\n } else {\n output.push(result);\n }\n }\n } else {\n output = [].concat(braces.create(input, options));\n }\n\n if (options && options.expand === true && options.nodupes === true) {\n output = [...new Set(output)];\n }\n return output;\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * // braces.parse(pattern, [, options]);\n * const ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * ```\n * @param {String} pattern Brace pattern to parse\n * @param {Object} options\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = (input, options = {}) => parse(input, options);\n\n/**\n * Creates a braces string from an AST, or an AST node.\n *\n * ```js\n * const braces = require('braces');\n * let ast = braces.parse('foo/{a,b}/bar');\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.stringify = (input, options = {}) => {\n if (typeof input === 'string') {\n return stringify(braces.parse(input, options), options);\n }\n return stringify(input, options);\n};\n\n/**\n * Compiles a brace pattern into a regex-compatible, optimized string.\n * This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.compile('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.compile = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n return compile(input, options);\n};\n\n/**\n * Expands a brace pattern into an array. This method is called by the\n * main [braces](#braces) function when `options.expand` is true. Before\n * using this method it's recommended that you read the [performance notes](#performance))\n * and advantages of using [.compile](#compile) instead.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n\n let result = expand(input, options);\n\n // filter out empty strings if specified\n if (options.noempty === true) {\n result = result.filter(Boolean);\n }\n\n // filter out duplicates if specified\n if (options.nodupes === true) {\n result = [...new Set(result)];\n }\n\n return result;\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array\n * (if `options.expand` is true), a highly optimized regex-compatible string.\n * This method is called by the main [braces](#braces) function.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = (input, options = {}) => {\n if (input === '' || input.length < 3) {\n return [input];\n }\n\n return options.expand !== true\n ? braces.compile(input, options)\n : braces.expand(input, options);\n};\n\n/**\n * Expose \"braces\"\n */\n\nmodule.exports = braces;\n","'use strict';\n\nconst path = require('path');\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n SEP: path.sep,\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst path = require('path');\nconst win32 = process.platform === 'win32';\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split('.').map(Number);\n if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n return true;\n }\n return false;\n};\n\nexports.isWindows = options => {\n if (options && typeof options.windows === 'boolean') {\n return options.windows;\n }\n return win32 === true || path.sep === '\\\\';\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n output = token.close = `)${rest})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = utils.isWindows(options);\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n","'use strict';\n\nconst util = require('util');\nconst braces = require('braces');\nconst picomatch = require('picomatch');\nconst utils = require('picomatch/lib/utils');\nconst isEmptyString = val => val === '' || val === './';\n\n/**\n * Returns an array of strings that match one or more glob patterns.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {String|Array<string>} `list` List of strings to match.\n * @param {String|Array<string>} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options)\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nconst micromatch = (list, patterns, options) => {\n patterns = [].concat(patterns);\n list = [].concat(list);\n\n let omit = new Set();\n let keep = new Set();\n let items = new Set();\n let negatives = 0;\n\n let onResult = state => {\n items.add(state.output);\n if (options && options.onResult) {\n options.onResult(state);\n }\n };\n\n for (let i = 0; i < patterns.length; i++) {\n let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n if (negated) negatives++;\n\n for (let item of list) {\n let matched = isMatch(item, true);\n\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n\n if (negated) {\n omit.add(matched.output);\n } else {\n omit.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n\n let result = negatives === patterns.length ? [...items] : [...keep];\n let matches = result.filter(item => !omit.has(item));\n\n if (options && matches.length === 0) {\n if (options.failglob === true) {\n throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\n }\n\n if (options.nonull === true || options.nullglob === true) {\n return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\n }\n }\n\n return matches;\n};\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.match = micromatch;\n\n/**\n * Returns a matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matcher(pattern[, options]);\n *\n * const isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options`\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.isMatch(string, patterns[, options]);\n *\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `[options]` See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.any = micromatch.isMatch;\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = (list, patterns, options = {}) => {\n patterns = [].concat(patterns).map(String);\n let result = new Set();\n let items = [];\n\n let onResult = state => {\n if (options.onResult) options.onResult(state);\n items.push(state.output);\n };\n\n let matches = micromatch(list, patterns, { ...options, onResult });\n\n for (let item of items) {\n if (!matches.includes(item)) {\n result.add(item);\n }\n }\n return [...result];\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * // mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = (str, pattern, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n if (Array.isArray(pattern)) {\n return pattern.some(p => micromatch.contains(str, p, options));\n }\n\n if (typeof pattern === 'string') {\n if (isEmptyString(str) || isEmptyString(pattern)) {\n return false;\n }\n\n if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\n return true;\n }\n }\n\n return micromatch.isMatch(str, pattern, { ...options, contains: true });\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matchKeys(object, patterns[, options]);\n *\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = (obj, patterns, options) => {\n if (!utils.isObject(obj)) {\n throw new TypeError('Expected the first argument to be an object');\n }\n let keys = micromatch(Object.keys(obj), patterns, options);\n let res = {};\n for (let key of keys) res[key] = obj[key];\n return res;\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\n * @api public\n */\n\nmicromatch.some = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (items.some(item => isMatch(item))) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\n * @api public\n */\n\nmicromatch.every = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (!items.every(item => isMatch(item))) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = (str, patterns, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n return [].concat(patterns).every(p => picomatch(p, options)(str));\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `glob` Glob pattern to use for matching.\n * @param {String} `input` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = (glob, input, options) => {\n let posix = utils.isWindows(options);\n let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n\n if (match) {\n return match.slice(1).map(v => v === void 0 ? '' : v);\n }\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\n\n/**\n * Scan a glob pattern to separate the pattern into segments. Used\n * by the [split](#split) method.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.scan(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\nmicromatch.scan = (...args) => picomatch.scan(...args);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm(pattern[, options]);\n * ```\n * @param {String} `glob`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\n * @api public\n */\n\nmicromatch.parse = (patterns, options) => {\n let res = [];\n for (let pattern of [].concat(patterns || [])) {\n for (let str of braces(String(pattern), options)) {\n res.push(picomatch.parse(str, options));\n }\n }\n return res;\n};\n\n/**\n * Process the given brace `pattern`.\n *\n * ```js\n * const { braces } = require('micromatch');\n * console.log(braces('foo/{a,b,c}/bar'));\n * //=> [ 'foo/(a|b|c)/bar' ]\n *\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\n * ```\n * @param {String} `pattern` String with brace pattern to process.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n if ((options && options.nobrace === true) || !/\\{.*\\}/.test(pattern)) {\n return [pattern];\n }\n return braces(pattern, options);\n};\n\n/**\n * Expand braces\n */\n\nmicromatch.braceExpand = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n return micromatch.braces(pattern, { ...options, expand: true });\n};\n\n/**\n * Expose micromatch\n */\n\nmodule.exports = micromatch;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\nconst path = require(\"path\");\nconst globParent = require(\"glob-parent\");\nconst micromatch = require(\"micromatch\");\nconst GLOBSTAR = '**';\nconst ESCAPE_SYMBOL = '\\\\';\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[.*]/;\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\(.*\\|.*\\)/;\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\(.*\\)/;\nconst BRACE_EXPANSIONS_SYMBOLS_RE = /{.*(?:,|\\.\\.).*}/;\nfunction isStaticPattern(pattern, options = {}) {\n return !isDynamicPattern(pattern, options);\n}\nexports.isStaticPattern = isStaticPattern;\nfunction isDynamicPattern(pattern, options = {}) {\n /**\n * A special case with an empty string is necessary for matching patterns that start with a forward slash.\n * An empty string cannot be a dynamic pattern.\n * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\n */\n if (pattern === '') {\n return false;\n }\n /**\n * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\n * filepath directly (without read directory).\n */\n if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n return true;\n }\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.braceExpansion !== false && BRACE_EXPANSIONS_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n return false;\n}\nexports.isDynamicPattern = isDynamicPattern;\nfunction convertToPositivePattern(pattern) {\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n}\nexports.convertToPositivePattern = convertToPositivePattern;\nfunction convertToNegativePattern(pattern) {\n return '!' + pattern;\n}\nexports.convertToNegativePattern = convertToNegativePattern;\nfunction isNegativePattern(pattern) {\n return pattern.startsWith('!') && pattern[1] !== '(';\n}\nexports.isNegativePattern = isNegativePattern;\nfunction isPositivePattern(pattern) {\n return !isNegativePattern(pattern);\n}\nexports.isPositivePattern = isPositivePattern;\nfunction getNegativePatterns(patterns) {\n return patterns.filter(isNegativePattern);\n}\nexports.getNegativePatterns = getNegativePatterns;\nfunction getPositivePatterns(patterns) {\n return patterns.filter(isPositivePattern);\n}\nexports.getPositivePatterns = getPositivePatterns;\n/**\n * Returns patterns that can be applied inside the current directory.\n *\n * @example\n * // ['./*', '*', 'a/*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsInsideCurrentDirectory(patterns) {\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n}\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n/**\n * Returns patterns to be expanded relative to (outside) the current directory.\n *\n * @example\n * // ['../*', './../*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsOutsideCurrentDirectory(patterns) {\n return patterns.filter(isPatternRelatedToParentDirectory);\n}\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\nfunction isPatternRelatedToParentDirectory(pattern) {\n return pattern.startsWith('..') || pattern.startsWith('./..');\n}\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\nfunction getBaseDirectory(pattern) {\n return globParent(pattern, { flipBackslashes: false });\n}\nexports.getBaseDirectory = getBaseDirectory;\nfunction hasGlobStar(pattern) {\n return pattern.includes(GLOBSTAR);\n}\nexports.hasGlobStar = hasGlobStar;\nfunction endsWithSlashGlobStar(pattern) {\n return pattern.endsWith('/' + GLOBSTAR);\n}\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\nfunction isAffectDepthOfReadingPattern(pattern) {\n const basename = path.basename(pattern);\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n}\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\nfunction expandPatternsWithBraceExpansion(patterns) {\n return patterns.reduce((collection, pattern) => {\n return collection.concat(expandBraceExpansion(pattern));\n }, []);\n}\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\nfunction expandBraceExpansion(pattern) {\n return micromatch.braces(pattern, {\n expand: true,\n nodupes: true\n });\n}\nexports.expandBraceExpansion = expandBraceExpansion;\nfunction getPatternParts(pattern, options) {\n let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\n /**\n * The scan method returns an empty array in some cases.\n * See micromatch/picomatch#58 for more details.\n */\n if (parts.length === 0) {\n parts = [pattern];\n }\n /**\n * The scan method does not return an empty part for the pattern with a forward slash.\n * This is another part of micromatch/picomatch#58.\n */\n if (parts[0].startsWith('/')) {\n parts[0] = parts[0].slice(1);\n parts.unshift('');\n }\n return parts;\n}\nexports.getPatternParts = getPatternParts;\nfunction makeRe(pattern, options) {\n return micromatch.makeRe(pattern, options);\n}\nexports.makeRe = makeRe;\nfunction convertPatternsToRe(patterns, options) {\n return patterns.map((pattern) => makeRe(pattern, options));\n}\nexports.convertPatternsToRe = convertPatternsToRe;\nfunction matchAny(entry, patternsRe) {\n return patternsRe.some((patternRe) => patternRe.test(entry));\n}\nexports.matchAny = matchAny;\n","'use strict'\n/*\n * merge2\n * https://github.com/teambition/merge2\n *\n * Copyright (c) 2014-2020 Teambition\n * Licensed under the MIT license.\n */\nconst Stream = require('stream')\nconst PassThrough = Stream.PassThrough\nconst slice = Array.prototype.slice\n\nmodule.exports = merge2\n\nfunction merge2 () {\n const streamsQueue = []\n const args = slice.call(arguments)\n let merging = false\n let options = args[args.length - 1]\n\n if (options && !Array.isArray(options) && options.pipe == null) {\n args.pop()\n } else {\n options = {}\n }\n\n const doEnd = options.end !== false\n const doPipeError = options.pipeError === true\n if (options.objectMode == null) {\n options.objectMode = true\n }\n if (options.highWaterMark == null) {\n options.highWaterMark = 64 * 1024\n }\n const mergedStream = PassThrough(options)\n\n function addStream () {\n for (let i = 0, len = arguments.length; i < len; i++) {\n streamsQueue.push(pauseStreams(arguments[i], options))\n }\n mergeStream()\n return this\n }\n\n function mergeStream () {\n if (merging) {\n return\n }\n merging = true\n\n let streams = streamsQueue.shift()\n if (!streams) {\n process.nextTick(endStream)\n return\n }\n if (!Array.isArray(streams)) {\n streams = [streams]\n }\n\n let pipesCount = streams.length + 1\n\n function next () {\n if (--pipesCount > 0) {\n return\n }\n merging = false\n mergeStream()\n }\n\n function pipe (stream) {\n function onend () {\n stream.removeListener('merge2UnpipeEnd', onend)\n stream.removeListener('end', onend)\n if (doPipeError) {\n stream.removeListener('error', onerror)\n }\n next()\n }\n function onerror (err) {\n mergedStream.emit('error', err)\n }\n // skip ended stream\n if (stream._readableState.endEmitted) {\n return next()\n }\n\n stream.on('merge2UnpipeEnd', onend)\n stream.on('end', onend)\n\n if (doPipeError) {\n stream.on('error', onerror)\n }\n\n stream.pipe(mergedStream, { end: false })\n // compatible for old stream\n stream.resume()\n }\n\n for (let i = 0; i < streams.length; i++) {\n pipe(streams[i])\n }\n\n next()\n }\n\n function endStream () {\n merging = false\n // emit 'queueDrain' when all streams merged.\n mergedStream.emit('queueDrain')\n if (doEnd) {\n mergedStream.end()\n }\n }\n\n mergedStream.setMaxListeners(0)\n mergedStream.add = addStream\n mergedStream.on('unpipe', function (stream) {\n stream.emit('merge2UnpipeEnd')\n })\n\n if (args.length) {\n addStream.apply(null, args)\n }\n return mergedStream\n}\n\n// check and pause streams for pipe.\nfunction pauseStreams (streams, options) {\n if (!Array.isArray(streams)) {\n // Backwards-compat with old-style streams\n if (!streams._readableState && streams.pipe) {\n streams = streams.pipe(PassThrough(options))\n }\n if (!streams._readableState || !streams.pause || !streams.pipe) {\n throw new Error('Only readable stream can be merged.')\n }\n streams.pause()\n } else {\n for (let i = 0, len = streams.length; i < len; i++) {\n streams[i] = pauseStreams(streams[i], options)\n }\n }\n return streams\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nconst merge2 = require(\"merge2\");\nfunction merge(streams) {\n const mergedStream = merge2(streams);\n streams.forEach((stream) => {\n stream.once('error', (error) => mergedStream.emit('error', error));\n });\n mergedStream.once('close', () => propagateCloseEventToSources(streams));\n mergedStream.once('end', () => propagateCloseEventToSources(streams));\n return mergedStream;\n}\nexports.merge = merge;\nfunction propagateCloseEventToSources(streams) {\n streams.forEach((stream) => stream.emit('close'));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = exports.isString = void 0;\nfunction isString(input) {\n return typeof input === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(input) {\n return input === '';\n}\nexports.isEmpty = isEmpty;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\nconst array = require(\"./array\");\nexports.array = array;\nconst errno = require(\"./errno\");\nexports.errno = errno;\nconst fs = require(\"./fs\");\nexports.fs = fs;\nconst path = require(\"./path\");\nexports.path = path;\nconst pattern = require(\"./pattern\");\nexports.pattern = pattern;\nconst stream = require(\"./stream\");\nexports.stream = stream;\nconst string = require(\"./string\");\nexports.string = string;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\nconst utils = require(\"../utils\");\nfunction generate(patterns, settings) {\n const positivePatterns = getPositivePatterns(patterns);\n const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore);\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\n const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\n return staticTasks.concat(dynamicTasks);\n}\nexports.generate = generate;\n/**\n * Returns tasks grouped by basic pattern directories.\n *\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\n * This is necessary because directory traversal starts at the base directory and goes deeper.\n */\nfunction convertPatternsToTasks(positive, negative, dynamic) {\n const tasks = [];\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n /*\n * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\n * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\n */\n if ('.' in insideCurrentDirectoryGroup) {\n tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\n }\n else {\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n }\n return tasks;\n}\nexports.convertPatternsToTasks = convertPatternsToTasks;\nfunction getPositivePatterns(patterns) {\n return utils.pattern.getPositivePatterns(patterns);\n}\nexports.getPositivePatterns = getPositivePatterns;\nfunction getNegativePatternsAsPositive(patterns, ignore) {\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n const positive = negative.map(utils.pattern.convertToPositivePattern);\n return positive;\n}\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\nfunction groupPatternsByBaseDirectory(patterns) {\n const group = {};\n return patterns.reduce((collection, pattern) => {\n const base = utils.pattern.getBaseDirectory(pattern);\n if (base in collection) {\n collection[base].push(pattern);\n }\n else {\n collection[base] = [pattern];\n }\n return collection;\n }, group);\n}\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\n return Object.keys(positive).map((base) => {\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n });\n}\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\n return {\n dynamic,\n positive,\n negative,\n base,\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n };\n}\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings, callback) {\n settings.fs.lstat(path, (lstatError, lstat) => {\n if (lstatError !== null) {\n callFailureCallback(callback, lstatError);\n return;\n }\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n callSuccessCallback(callback, lstat);\n return;\n }\n settings.fs.stat(path, (statError, stat) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n callFailureCallback(callback, statError);\n return;\n }\n callSuccessCallback(callback, lstat);\n return;\n }\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n callSuccessCallback(callback, stat);\n });\n });\n}\nexports.read = read;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings) {\n const lstat = settings.fs.lstatSync(path);\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n return lstat;\n }\n try {\n const stat = settings.fs.statSync(path);\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n return stat;\n }\n catch (error) {\n if (!settings.throwErrorOnBrokenSymbolicLink) {\n return lstat;\n }\n throw error;\n }\n}\nexports.read = read;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statSync = exports.stat = exports.Settings = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.stat = stat;\nfunction statSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.statSync = statSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n","/*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nmodule.exports = runParallel\n\nconst queueMicrotask = require('queue-microtask')\n\nfunction runParallel (tasks, cb) {\n let results, pending, keys\n let isSync = true\n\n if (Array.isArray(tasks)) {\n results = []\n pending = tasks.length\n } else {\n keys = Object.keys(tasks)\n results = {}\n pending = keys.length\n }\n\n function done (err) {\n function end () {\n if (cb) cb(err, results)\n cb = null\n }\n if (isSync) queueMicrotask(end)\n else end()\n }\n\n function each (i, err, result) {\n results[i] = result\n if (--pending === 0 || err) {\n done(err)\n }\n }\n\n if (!pending) {\n // empty\n done(null)\n } else if (keys) {\n // object\n keys.forEach(function (key) {\n tasks[key](function (err, result) { each(key, err, result) })\n })\n } else {\n // array\n tasks.forEach(function (task, i) {\n task(function (err, result) { each(i, err, result) })\n })\n }\n\n isSync = false\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n}\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\nconst SUPPORTED_MAJOR_VERSION = 10;\nconst SUPPORTED_MINOR_VERSION = 10;\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n/**\n * IS `true` for Node.js 10.10 and greater.\n */\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = void 0;\nconst fs = require(\"./fs\");\nexports.fs = fs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = void 0;\nfunction joinPathSegments(a, b, separator) {\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst rpl = require(\"run-parallel\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings, callback) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n readdirWithFileTypes(directory, settings, callback);\n return;\n }\n readdir(directory, settings, callback);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings, callback) {\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const entries = dirents.map((dirent) => ({\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n }));\n if (!settings.followSymbolicLinks) {\n callSuccessCallback(callback, entries);\n return;\n }\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n rpl(tasks, (rplError, rplEntries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, rplEntries);\n });\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction makeRplTaskEntry(entry, settings) {\n return (done) => {\n if (!entry.dirent.isSymbolicLink()) {\n done(null, entry);\n return;\n }\n settings.fs.stat(entry.path, (statError, stats) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n done(statError);\n return;\n }\n done(null, entry);\n return;\n }\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n done(null, entry);\n });\n };\n}\nfunction readdir(directory, settings, callback) {\n settings.fs.readdir(directory, (readdirError, names) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const tasks = names.map((name) => {\n const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n return (done) => {\n fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\n if (error !== null) {\n done(error);\n return;\n }\n const entry = {\n name,\n path,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n done(null, entry);\n });\n };\n });\n rpl(tasks, (rplError, entries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, entries);\n });\n });\n}\nexports.readdir = readdir;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n return readdirWithFileTypes(directory, settings);\n }\n return readdir(directory, settings);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings) {\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n return dirents.map((dirent) => {\n const entry = {\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n };\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n try {\n const stats = settings.fs.statSync(entry.path);\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n }\n catch (error) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n throw error;\n }\n }\n }\n return entry;\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction readdir(directory, settings) {\n const names = settings.fs.readdirSync(directory);\n return names.map((name) => {\n const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n const entry = {\n name,\n path: entryPath,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n return entry;\n });\n}\nexports.readdir = readdir;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.stats = this._getValue(this._options.stats, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n this.fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this.followSymbolicLinks,\n fs: this.fs,\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.scandir = scandir;\nfunction scandirSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.scandirSync = scandirSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","'use strict'\n\nfunction reusify (Constructor) {\n var head = new Constructor()\n var tail = head\n\n function get () {\n var current = head\n\n if (current.next) {\n head = current.next\n } else {\n head = new Constructor()\n tail = head\n }\n\n current.next = null\n\n return current\n }\n\n function release (obj) {\n tail.next = obj\n tail = obj\n }\n\n return {\n get: get,\n release: release\n }\n}\n\nmodule.exports = reusify\n","'use strict'\n\n/* eslint-disable no-var */\n\nvar reusify = require('reusify')\n\nfunction fastqueue (context, worker, concurrency) {\n if (typeof context === 'function') {\n concurrency = worker\n worker = context\n context = null\n }\n\n if (concurrency < 1) {\n throw new Error('fastqueue concurrency must be greater than 1')\n }\n\n var cache = reusify(Task)\n var queueHead = null\n var queueTail = null\n var _running = 0\n var errorHandler = null\n\n var self = {\n push: push,\n drain: noop,\n saturated: noop,\n pause: pause,\n paused: false,\n concurrency: concurrency,\n running: running,\n resume: resume,\n idle: idle,\n length: length,\n getQueue: getQueue,\n unshift: unshift,\n empty: noop,\n kill: kill,\n killAndDrain: killAndDrain,\n error: error\n }\n\n return self\n\n function running () {\n return _running\n }\n\n function pause () {\n self.paused = true\n }\n\n function length () {\n var current = queueHead\n var counter = 0\n\n while (current) {\n current = current.next\n counter++\n }\n\n return counter\n }\n\n function getQueue () {\n var current = queueHead\n var tasks = []\n\n while (current) {\n tasks.push(current.value)\n current = current.next\n }\n\n return tasks\n }\n\n function resume () {\n if (!self.paused) return\n self.paused = false\n for (var i = 0; i < self.concurrency; i++) {\n _running++\n release()\n }\n }\n\n function idle () {\n return _running === 0 && self.length() === 0\n }\n\n function push (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running === self.concurrency || self.paused) {\n if (queueTail) {\n queueTail.next = current\n queueTail = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function unshift (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n\n if (_running === self.concurrency || self.paused) {\n if (queueHead) {\n current.next = queueHead\n queueHead = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function release (holder) {\n if (holder) {\n cache.release(holder)\n }\n var next = queueHead\n if (next) {\n if (!self.paused) {\n if (queueTail === queueHead) {\n queueTail = null\n }\n queueHead = next.next\n next.next = null\n worker.call(context, next.value, next.worked)\n if (queueTail === null) {\n self.empty()\n }\n } else {\n _running--\n }\n } else if (--_running === 0) {\n self.drain()\n }\n }\n\n function kill () {\n queueHead = null\n queueTail = null\n self.drain = noop\n }\n\n function killAndDrain () {\n queueHead = null\n queueTail = null\n self.drain()\n self.drain = noop\n }\n\n function error (handler) {\n errorHandler = handler\n }\n}\n\nfunction noop () {}\n\nfunction Task () {\n this.value = null\n this.callback = noop\n this.next = null\n this.release = noop\n this.context = null\n this.errorHandler = null\n\n var self = this\n\n this.worked = function worked (err, result) {\n var callback = self.callback\n var errorHandler = self.errorHandler\n var val = self.value\n self.value = null\n self.callback = noop\n if (self.errorHandler) {\n errorHandler(err, val)\n }\n callback.call(self.context, err, result)\n self.release(self)\n }\n}\n\nfunction queueAsPromised (context, worker, concurrency) {\n if (typeof context === 'function') {\n concurrency = worker\n worker = context\n context = null\n }\n\n function asyncWrapper (arg, cb) {\n worker.call(this, arg)\n .then(function (res) {\n cb(null, res)\n }, cb)\n }\n\n var queue = fastqueue(context, asyncWrapper, concurrency)\n\n var pushCb = queue.push\n var unshiftCb = queue.unshift\n\n queue.push = push\n queue.unshift = unshift\n\n return queue\n\n function push (value) {\n var p = new Promise(function (resolve, reject) {\n pushCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function unshift (value) {\n var p = new Promise(function (resolve, reject) {\n unshiftCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n}\n\nmodule.exports = fastqueue\nmodule.exports.promise = queueAsPromised\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\nfunction isFatalError(settings, error) {\n if (settings.errorFilter === null) {\n return true;\n }\n return !settings.errorFilter(error);\n}\nexports.isFatalError = isFatalError;\nfunction isAppliedFilter(filter, value) {\n return filter === null || filter(value);\n}\nexports.isAppliedFilter = isAppliedFilter;\nfunction replacePathSegmentSeparator(filepath, separator) {\n return filepath.split(/[/\\\\]/).join(separator);\n}\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\nfunction joinPathSegments(a, b, separator) {\n if (a === '') {\n return b;\n }\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst common = require(\"./common\");\nclass Reader {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst fastq = require(\"fastq\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass AsyncReader extends reader_1.default {\n constructor(_root, _settings) {\n super(_root, _settings);\n this._settings = _settings;\n this._scandir = fsScandir.scandir;\n this._emitter = new events_1.EventEmitter();\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n this._isFatalError = false;\n this._isDestroyed = false;\n this._queue.drain = () => {\n if (!this._isFatalError) {\n this._emitter.emit('end');\n }\n };\n }\n read() {\n this._isFatalError = false;\n this._isDestroyed = false;\n setImmediate(() => {\n this._pushToQueue(this._root, this._settings.basePath);\n });\n return this._emitter;\n }\n get isDestroyed() {\n return this._isDestroyed;\n }\n destroy() {\n if (this._isDestroyed) {\n throw new Error('The reader is already destroyed');\n }\n this._isDestroyed = true;\n this._queue.killAndDrain();\n }\n onEntry(callback) {\n this._emitter.on('entry', callback);\n }\n onError(callback) {\n this._emitter.once('error', callback);\n }\n onEnd(callback) {\n this._emitter.once('end', callback);\n }\n _pushToQueue(directory, base) {\n const queueItem = { directory, base };\n this._queue.push(queueItem, (error) => {\n if (error !== null) {\n this._handleError(error);\n }\n });\n }\n _worker(item, done) {\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n if (error !== null) {\n done(error, undefined);\n return;\n }\n for (const entry of entries) {\n this._handleEntry(entry, item.base);\n }\n done(null, undefined);\n });\n }\n _handleError(error) {\n if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n return;\n }\n this._isFatalError = true;\n this._isDestroyed = true;\n this._emitter.emit('error', error);\n }\n _handleEntry(entry, base) {\n if (this._isDestroyed || this._isFatalError) {\n return;\n }\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._emitEntry(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _emitEntry(entry) {\n this._emitter.emit('entry', entry);\n }\n}\nexports.default = AsyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nclass AsyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._storage = [];\n }\n read(callback) {\n this._reader.onError((error) => {\n callFailureCallback(callback, error);\n });\n this._reader.onEntry((entry) => {\n this._storage.push(entry);\n });\n this._reader.onEnd(() => {\n callSuccessCallback(callback, this._storage);\n });\n this._reader.read();\n }\n}\nexports.default = AsyncProvider;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, entries) {\n callback(null, entries);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst async_1 = require(\"../readers/async\");\nclass StreamProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._stream = new stream_1.Readable({\n objectMode: true,\n read: () => { },\n destroy: () => {\n if (!this._reader.isDestroyed) {\n this._reader.destroy();\n }\n }\n });\n }\n read() {\n this._reader.onError((error) => {\n this._stream.emit('error', error);\n });\n this._reader.onEntry((entry) => {\n this._stream.push(entry);\n });\n this._reader.onEnd(() => {\n this._stream.push(null);\n });\n this._reader.read();\n return this._stream;\n }\n}\nexports.default = StreamProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass SyncReader extends reader_1.default {\n constructor() {\n super(...arguments);\n this._scandir = fsScandir.scandirSync;\n this._storage = [];\n this._queue = new Set();\n }\n read() {\n this._pushToQueue(this._root, this._settings.basePath);\n this._handleQueue();\n return this._storage;\n }\n _pushToQueue(directory, base) {\n this._queue.add({ directory, base });\n }\n _handleQueue() {\n for (const item of this._queue.values()) {\n this._handleDirectory(item.directory, item.base);\n }\n }\n _handleDirectory(directory, base) {\n try {\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\n for (const entry of entries) {\n this._handleEntry(entry, base);\n }\n }\n catch (error) {\n this._handleError(error);\n }\n }\n _handleError(error) {\n if (!common.isFatalError(this._settings, error)) {\n return;\n }\n throw error;\n }\n _handleEntry(entry, base) {\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._pushToStorage(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _pushToStorage(entry) {\n this._storage.push(entry);\n }\n}\nexports.default = SyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nclass SyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new sync_1.default(this._root, this._settings);\n }\n read() {\n return this._reader.read();\n }\n}\nexports.default = SyncProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.basePath = this._getValue(this._options.basePath, undefined);\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n this.deepFilter = this._getValue(this._options.deepFilter, null);\n this.entryFilter = this._getValue(this._options.entryFilter, null);\n this.errorFilter = this._getValue(this._options.errorFilter, null);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.fsScandirSettings = new fsScandir.Settings({\n followSymbolicLinks: this._options.followSymbolicLinks,\n fs: this._options.fs,\n pathSegmentSeparator: this._options.pathSegmentSeparator,\n stats: this._options.stats,\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n return;\n }\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n}\nexports.walk = walk;\nfunction walkSync(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new sync_1.default(directory, settings);\n return provider.read();\n}\nexports.walkSync = walkSync;\nfunction walkStream(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new stream_1.default(directory, settings);\n return provider.read();\n}\nexports.walkStream = walkStream;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst utils = require(\"../utils\");\nclass Reader {\n constructor(_settings) {\n this._settings = _settings;\n this._fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n });\n }\n _getFullEntryPath(filepath) {\n return path.resolve(this._settings.cwd, filepath);\n }\n _makeEntry(stats, pattern) {\n const entry = {\n name: pattern,\n path: pattern,\n dirent: utils.fs.createDirentFromStats(pattern, stats)\n };\n if (this._settings.stats) {\n entry.stats = stats;\n }\n return entry;\n }\n _isFatalError(error) {\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderStream extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkStream = fsWalk.walkStream;\n this._stat = fsStat.stat;\n }\n dynamic(root, options) {\n return this._walkStream(root, options);\n }\n static(patterns, options) {\n const filepaths = patterns.map(this._getFullEntryPath, this);\n const stream = new stream_1.PassThrough({ objectMode: true });\n stream._write = (index, _enc, done) => {\n return this._getEntry(filepaths[index], patterns[index], options)\n .then((entry) => {\n if (entry !== null && options.entryFilter(entry)) {\n stream.push(entry);\n }\n if (index === filepaths.length - 1) {\n stream.end();\n }\n done();\n })\n .catch(done);\n };\n for (let i = 0; i < filepaths.length; i++) {\n stream.write(i);\n }\n return stream;\n }\n _getEntry(filepath, pattern, options) {\n return this._getStat(filepath)\n .then((stats) => this._makeEntry(stats, pattern))\n .catch((error) => {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n });\n }\n _getStat(filepath) {\n return new Promise((resolve, reject) => {\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\n return error === null ? resolve(stats) : reject(error);\n });\n });\n }\n}\nexports.default = ReaderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass Matcher {\n constructor(_patterns, _settings, _micromatchOptions) {\n this._patterns = _patterns;\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this._storage = [];\n this._fillStorage();\n }\n _fillStorage() {\n /**\n * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level).\n * So, before expand patterns with brace expansion into separated patterns.\n */\n const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns);\n for (const pattern of patterns) {\n const segments = this._getPatternSegments(pattern);\n const sections = this._splitSegmentsIntoSections(segments);\n this._storage.push({\n complete: sections.length <= 1,\n pattern,\n segments,\n sections\n });\n }\n }\n _getPatternSegments(pattern) {\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n return parts.map((part) => {\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n if (!dynamic) {\n return {\n dynamic: false,\n pattern: part\n };\n }\n return {\n dynamic: true,\n pattern: part,\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n };\n });\n }\n _splitSegmentsIntoSections(segments) {\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n }\n}\nexports.default = Matcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst matcher_1 = require(\"./matcher\");\nclass PartialMatcher extends matcher_1.default {\n match(filepath) {\n const parts = filepath.split('/');\n const levels = parts.length;\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n for (const pattern of patterns) {\n const section = pattern.sections[0];\n /**\n * In this case, the pattern has a globstar and we must read all directories unconditionally,\n * but only if the level has reached the end of the first group.\n *\n * fixtures/{a,b}/**\n * ^ true/false ^ always true\n */\n if (!pattern.complete && levels > section.length) {\n return true;\n }\n const match = parts.every((part, index) => {\n const segment = pattern.segments[index];\n if (segment.dynamic && segment.patternRe.test(part)) {\n return true;\n }\n if (!segment.dynamic && segment.pattern === part) {\n return true;\n }\n return false;\n });\n if (match) {\n return true;\n }\n }\n return false;\n }\n}\nexports.default = PartialMatcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nconst partial_1 = require(\"../matchers/partial\");\nclass DeepFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n }\n getFilter(basePath, positive, negative) {\n const matcher = this._getMatcher(positive);\n const negativeRe = this._getNegativePatternsRe(negative);\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n }\n _getMatcher(patterns) {\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n }\n _getNegativePatternsRe(patterns) {\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n }\n _filter(basePath, entry, matcher, negativeRe) {\n if (this._isSkippedByDeep(basePath, entry.path)) {\n return false;\n }\n if (this._isSkippedSymbolicLink(entry)) {\n return false;\n }\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n return false;\n }\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\n }\n _isSkippedByDeep(basePath, entryPath) {\n /**\n * Avoid unnecessary depth calculations when it doesn't matter.\n */\n if (this._settings.deep === Infinity) {\n return false;\n }\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n }\n _getEntryLevel(basePath, entryPath) {\n const entryPathDepth = entryPath.split('/').length;\n if (basePath === '') {\n return entryPathDepth;\n }\n const basePathDepth = basePath.split('/').length;\n return entryPathDepth - basePathDepth;\n }\n _isSkippedSymbolicLink(entry) {\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n }\n _isSkippedByPositivePatterns(entryPath, matcher) {\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\n }\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\n return !utils.pattern.matchAny(entryPath, patternsRe);\n }\n}\nexports.default = DeepFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this.index = new Map();\n }\n getFilter(positive, negative) {\n const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions);\n const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions);\n return (entry) => this._filter(entry, positiveRe, negativeRe);\n }\n _filter(entry, positiveRe, negativeRe) {\n if (this._settings.unique && this._isDuplicateEntry(entry)) {\n return false;\n }\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n return false;\n }\n if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) {\n return false;\n }\n const filepath = this._settings.baseNameMatch ? entry.name : entry.path;\n const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe);\n if (this._settings.unique && isMatched) {\n this._createIndexRecord(entry);\n }\n return isMatched;\n }\n _isDuplicateEntry(entry) {\n return this.index.has(entry.path);\n }\n _createIndexRecord(entry) {\n this.index.set(entry.path, undefined);\n }\n _onlyFileFilter(entry) {\n return this._settings.onlyFiles && !entry.dirent.isFile();\n }\n _onlyDirectoryFilter(entry) {\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n }\n _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {\n if (!this._settings.absolute) {\n return false;\n }\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath);\n return utils.pattern.matchAny(fullpath, patternsRe);\n }\n _isMatchToPatterns(entryPath, patternsRe) {\n const filepath = utils.path.removeLeadingDotSegment(entryPath);\n return utils.pattern.matchAny(filepath, patternsRe);\n }\n}\nexports.default = EntryFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass ErrorFilter {\n constructor(_settings) {\n this._settings = _settings;\n }\n getFilter() {\n return (error) => this._isNonFatalError(error);\n }\n _isNonFatalError(error) {\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n }\n}\nexports.default = ErrorFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryTransformer {\n constructor(_settings) {\n this._settings = _settings;\n }\n getTransformer() {\n return (entry) => this._transform(entry);\n }\n _transform(entry) {\n let filepath = entry.path;\n if (this._settings.absolute) {\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n filepath = utils.path.unixify(filepath);\n }\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n filepath += '/';\n }\n if (!this._settings.objectMode) {\n return filepath;\n }\n return Object.assign(Object.assign({}, entry), { path: filepath });\n }\n}\nexports.default = EntryTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst deep_1 = require(\"./filters/deep\");\nconst entry_1 = require(\"./filters/entry\");\nconst error_1 = require(\"./filters/error\");\nconst entry_2 = require(\"./transformers/entry\");\nclass Provider {\n constructor(_settings) {\n this._settings = _settings;\n this.errorFilter = new error_1.default(this._settings);\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n this.entryTransformer = new entry_2.default(this._settings);\n }\n _getRootDirectory(task) {\n return path.resolve(this._settings.cwd, task.base);\n }\n _getReaderOptions(task) {\n const basePath = task.base === '.' ? '' : task.base;\n return {\n basePath,\n pathSegmentSeparator: '/',\n concurrency: this._settings.concurrency,\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n errorFilter: this.errorFilter.getFilter(),\n followSymbolicLinks: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n stats: this._settings.stats,\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n transform: this.entryTransformer.getTransformer()\n };\n }\n _getMicromatchOptions() {\n return {\n dot: this._settings.dot,\n matchBase: this._settings.baseNameMatch,\n nobrace: !this._settings.braceExpansion,\n nocase: !this._settings.caseSensitiveMatch,\n noext: !this._settings.extglob,\n noglobstar: !this._settings.globstar,\n posix: true,\n strictSlashes: false\n };\n }\n}\nexports.default = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderAsync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_1.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = [];\n return new Promise((resolve, reject) => {\n const stream = this.api(root, task, options);\n stream.once('error', reject);\n stream.on('data', (entry) => entries.push(options.transform(entry)));\n stream.once('end', () => resolve(entries));\n });\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst stream_2 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderStream extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_2.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const source = this.api(root, task, options);\n const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\n source\n .once('error', (error) => destination.emit('error', error))\n .on('data', (entry) => destination.emit('data', options.transform(entry)))\n .once('end', () => destination.emit('end'));\n destination\n .once('close', () => source.destroy());\n return destination;\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderSync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkSync = fsWalk.walkSync;\n this._statSync = fsStat.statSync;\n }\n dynamic(root, options) {\n return this._walkSync(root, options);\n }\n static(patterns, options) {\n const entries = [];\n for (const pattern of patterns) {\n const filepath = this._getFullEntryPath(pattern);\n const entry = this._getEntry(filepath, pattern, options);\n if (entry === null || !options.entryFilter(entry)) {\n continue;\n }\n entries.push(entry);\n }\n return entries;\n }\n _getEntry(filepath, pattern, options) {\n try {\n const stats = this._getStat(filepath);\n return this._makeEntry(stats, pattern);\n }\n catch (error) {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n }\n }\n _getStat(filepath) {\n return this._statSync(filepath, this._fsStatSettings);\n }\n}\nexports.default = ReaderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nconst provider_1 = require(\"./provider\");\nclass ProviderSync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new sync_1.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = this.api(root, task, options);\n return entries.map(options.transform);\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\n/**\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\n */\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n lstatSync: fs.lstatSync,\n stat: fs.stat,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.absolute = this._getValue(this._options.absolute, false);\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n this.cwd = this._getValue(this._options.cwd, process.cwd());\n this.deep = this._getValue(this._options.deep, Infinity);\n this.dot = this._getValue(this._options.dot, false);\n this.extglob = this._getValue(this._options.extglob, true);\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n this.fs = this._getFileSystemMethods(this._options.fs);\n this.globstar = this._getValue(this._options.globstar, true);\n this.ignore = this._getValue(this._options.ignore, []);\n this.markDirectories = this._getValue(this._options.markDirectories, false);\n this.objectMode = this._getValue(this._options.objectMode, false);\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n this.stats = this._getValue(this._options.stats, false);\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n this.unique = this._getValue(this._options.unique, true);\n if (this.onlyDirectories) {\n this.onlyFiles = false;\n }\n if (this.stats) {\n this.objectMode = true;\n }\n }\n _getValue(option, value) {\n return option === undefined ? value : option;\n }\n _getFileSystemMethods(methods = {}) {\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n }\n}\nexports.default = Settings;\n","\"use strict\";\nconst taskManager = require(\"./managers/tasks\");\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nconst utils = require(\"./utils\");\nasync function FastGlob(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, async_1.default, options);\n const result = await Promise.all(works);\n return utils.array.flatten(result);\n}\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\n// eslint-disable-next-line no-redeclare\n(function (FastGlob) {\n function sync(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, sync_1.default, options);\n return utils.array.flatten(works);\n }\n FastGlob.sync = sync;\n function stream(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, stream_1.default, options);\n /**\n * The stream returned by the provider cannot work with an asynchronous iterator.\n * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\n * This affects performance (+25%). I don't see best solution right now.\n */\n return utils.stream.merge(works);\n }\n FastGlob.stream = stream;\n function generateTasks(source, options) {\n assertPatternsInput(source);\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n return taskManager.generate(patterns, settings);\n }\n FastGlob.generateTasks = generateTasks;\n function isDynamicPattern(source, options) {\n assertPatternsInput(source);\n const settings = new settings_1.default(options);\n return utils.pattern.isDynamicPattern(source, settings);\n }\n FastGlob.isDynamicPattern = isDynamicPattern;\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escape(source);\n }\n FastGlob.escapePath = escapePath;\n})(FastGlob || (FastGlob = {}));\nfunction getWorks(source, _Provider, options) {\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n const tasks = taskManager.generate(patterns, settings);\n const provider = new _Provider(settings);\n return tasks.map(provider.read, provider);\n}\nfunction assertPatternsInput(input) {\n const source = [].concat(input);\n const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n if (!isValidSource) {\n throw new TypeError('Patterns must be a string (non empty) or an array of strings');\n }\n}\nmodule.exports = FastGlob;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lilconfigSync = exports.lilconfig = exports.defaultLoaders = void 0;\nconst path = require(\"path\");\nconst fs = require(\"fs\");\nconst os = require(\"os\");\nconst fsReadFileAsync = fs.promises.readFile;\nfunction getDefaultSearchPlaces(name) {\n return [\n 'package.json',\n `.${name}rc.json`,\n `.${name}rc.js`,\n `${name}.config.js`,\n `.${name}rc.cjs`,\n `${name}.config.cjs`,\n ];\n}\nfunction getSearchPaths(startDir, stopDir) {\n return startDir\n .split(path.sep)\n .reduceRight((acc, _, ind, arr) => {\n const currentPath = arr.slice(0, ind + 1).join(path.sep);\n if (!acc.passedStopDir)\n acc.searchPlaces.push(currentPath || path.sep);\n if (currentPath === stopDir)\n acc.passedStopDir = true;\n return acc;\n }, { searchPlaces: [], passedStopDir: false }).searchPlaces;\n}\nexports.defaultLoaders = Object.freeze({\n '.js': require,\n '.json': require,\n '.cjs': require,\n noExt(_, content) {\n return JSON.parse(content);\n },\n});\nfunction getExtDesc(ext) {\n return ext === 'noExt' ? 'files without extensions' : `extension \"${ext}\"`;\n}\nfunction getOptions(name, options = {}) {\n const conf = {\n stopDir: os.homedir(),\n searchPlaces: getDefaultSearchPlaces(name),\n ignoreEmptySearchPlaces: true,\n transform: (x) => x,\n packageProp: [name],\n ...options,\n loaders: { ...exports.defaultLoaders, ...options.loaders },\n };\n conf.searchPlaces.forEach(place => {\n const key = path.extname(place) || 'noExt';\n const loader = conf.loaders[key];\n if (!loader) {\n throw new Error(`No loader specified for ${getExtDesc(key)}, so searchPlaces item \"${place}\" is invalid`);\n }\n if (typeof loader !== 'function') {\n throw new Error(`loader for ${getExtDesc(key)} is not a function (type provided: \"${typeof loader}\"), so searchPlaces item \"${place}\" is invalid`);\n }\n });\n return conf;\n}\nfunction getPackageProp(props, obj) {\n if (typeof props === 'string' && props in obj)\n return obj[props];\n return ((Array.isArray(props) ? props : props.split('.')).reduce((acc, prop) => (acc === undefined ? acc : acc[prop]), obj) || null);\n}\nfunction getSearchItems(searchPlaces, searchPaths) {\n return searchPaths.reduce((acc, searchPath) => {\n searchPlaces.forEach(fileName => acc.push({\n fileName,\n filepath: path.join(searchPath, fileName),\n loaderKey: path.extname(fileName) || 'noExt',\n }));\n return acc;\n }, []);\n}\nfunction validateFilePath(filepath) {\n if (!filepath)\n throw new Error('load must pass a non-empty string');\n}\nfunction validateLoader(loader, ext) {\n if (!loader)\n throw new Error(`No loader specified for extension \"${ext}\"`);\n if (typeof loader !== 'function')\n throw new Error('loader is not a function');\n}\nfunction lilconfig(name, options) {\n const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, } = getOptions(name, options);\n return {\n async search(searchFrom = process.cwd()) {\n const searchPaths = getSearchPaths(searchFrom, stopDir);\n const result = {\n config: null,\n filepath: '',\n };\n const searchItems = getSearchItems(searchPlaces, searchPaths);\n for (const { fileName, filepath, loaderKey } of searchItems) {\n try {\n await fs.promises.access(filepath);\n }\n catch (_a) {\n continue;\n }\n const content = String(await fsReadFileAsync(filepath));\n const loader = loaders[loaderKey];\n if (fileName === 'package.json') {\n const pkg = loader(filepath, content);\n const maybeConfig = getPackageProp(packageProp, pkg);\n if (maybeConfig != null) {\n result.config = maybeConfig;\n result.filepath = filepath;\n break;\n }\n continue;\n }\n const isEmpty = content.trim() === '';\n if (isEmpty && ignoreEmptySearchPlaces)\n continue;\n if (isEmpty) {\n result.isEmpty = true;\n result.config = undefined;\n }\n else {\n validateLoader(loader, loaderKey);\n result.config = loader(filepath, content);\n }\n result.filepath = filepath;\n break;\n }\n if (result.filepath === '' && result.config === null)\n return transform(null);\n return transform(result);\n },\n async load(filepath) {\n validateFilePath(filepath);\n const { base, ext } = path.parse(filepath);\n const loaderKey = ext || 'noExt';\n const loader = loaders[loaderKey];\n validateLoader(loader, loaderKey);\n const content = String(await fsReadFileAsync(filepath));\n if (base === 'package.json') {\n const pkg = await loader(filepath, content);\n return transform({\n config: getPackageProp(packageProp, pkg),\n filepath,\n });\n }\n const result = {\n config: null,\n filepath,\n };\n const isEmpty = content.trim() === '';\n if (isEmpty && ignoreEmptySearchPlaces)\n return transform({\n config: undefined,\n filepath,\n isEmpty: true,\n });\n result.config = isEmpty\n ? undefined\n : await loader(filepath, content);\n return transform(isEmpty ? { ...result, isEmpty, config: undefined } : result);\n },\n };\n}\nexports.lilconfig = lilconfig;\nfunction lilconfigSync(name, options) {\n const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, } = getOptions(name, options);\n return {\n search(searchFrom = process.cwd()) {\n const searchPaths = getSearchPaths(searchFrom, stopDir);\n const result = {\n config: null,\n filepath: '',\n };\n const searchItems = getSearchItems(searchPlaces, searchPaths);\n for (const { fileName, filepath, loaderKey } of searchItems) {\n try {\n fs.accessSync(filepath);\n }\n catch (_a) {\n continue;\n }\n const loader = loaders[loaderKey];\n const content = String(fs.readFileSync(filepath));\n if (fileName === 'package.json') {\n const pkg = loader(filepath, content);\n const maybeConfig = getPackageProp(packageProp, pkg);\n if (maybeConfig != null) {\n result.config = maybeConfig;\n result.filepath = filepath;\n break;\n }\n continue;\n }\n const isEmpty = content.trim() === '';\n if (isEmpty && ignoreEmptySearchPlaces)\n continue;\n if (isEmpty) {\n result.isEmpty = true;\n result.config = undefined;\n }\n else {\n validateLoader(loader, loaderKey);\n result.config = loader(filepath, content);\n }\n result.filepath = filepath;\n break;\n }\n if (result.filepath === '' && result.config === null)\n return transform(null);\n return transform(result);\n },\n load(filepath) {\n validateFilePath(filepath);\n const { base, ext } = path.parse(filepath);\n const loaderKey = ext || 'noExt';\n const loader = loaders[loaderKey];\n validateLoader(loader, loaderKey);\n const content = String(fs.readFileSync(filepath));\n if (base === 'package.json') {\n const pkg = loader(filepath, content);\n return transform({\n config: getPackageProp(packageProp, pkg),\n filepath,\n });\n }\n const result = {\n config: null,\n filepath,\n };\n const isEmpty = content.trim() === '';\n if (isEmpty && ignoreEmptySearchPlaces)\n return transform({\n filepath,\n config: undefined,\n isEmpty: true,\n });\n result.config = isEmpty ? undefined : loader(filepath, content);\n return transform(isEmpty ? { ...result, isEmpty, config: undefined } : result);\n },\n };\n}\nexports.lilconfigSync = lilconfigSync;\n","'use strict';\n\nconst Char = {\n ANCHOR: '&',\n COMMENT: '#',\n TAG: '!',\n DIRECTIVES_END: '-',\n DOCUMENT_END: '.'\n};\nconst Type = {\n ALIAS: 'ALIAS',\n BLANK_LINE: 'BLANK_LINE',\n BLOCK_FOLDED: 'BLOCK_FOLDED',\n BLOCK_LITERAL: 'BLOCK_LITERAL',\n COMMENT: 'COMMENT',\n DIRECTIVE: 'DIRECTIVE',\n DOCUMENT: 'DOCUMENT',\n FLOW_MAP: 'FLOW_MAP',\n FLOW_SEQ: 'FLOW_SEQ',\n MAP: 'MAP',\n MAP_KEY: 'MAP_KEY',\n MAP_VALUE: 'MAP_VALUE',\n PLAIN: 'PLAIN',\n QUOTE_DOUBLE: 'QUOTE_DOUBLE',\n QUOTE_SINGLE: 'QUOTE_SINGLE',\n SEQ: 'SEQ',\n SEQ_ITEM: 'SEQ_ITEM'\n};\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nconst defaultTags = {\n MAP: 'tag:yaml.org,2002:map',\n SEQ: 'tag:yaml.org,2002:seq',\n STR: 'tag:yaml.org,2002:str'\n};\n\nfunction findLineStarts(src) {\n const ls = [0];\n let offset = src.indexOf('\\n');\n\n while (offset !== -1) {\n offset += 1;\n ls.push(offset);\n offset = src.indexOf('\\n', offset);\n }\n\n return ls;\n}\n\nfunction getSrcInfo(cst) {\n let lineStarts, src;\n\n if (typeof cst === 'string') {\n lineStarts = findLineStarts(cst);\n src = cst;\n } else {\n if (Array.isArray(cst)) cst = cst[0];\n\n if (cst && cst.context) {\n if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);\n lineStarts = cst.lineStarts;\n src = cst.context.src;\n }\n }\n\n return {\n lineStarts,\n src\n };\n}\n/**\n * @typedef {Object} LinePos - One-indexed position in the source\n * @property {number} line\n * @property {number} col\n */\n\n/**\n * Determine the line/col position matching a character offset.\n *\n * Accepts a source string or a CST document as the second parameter. With\n * the latter, starting indices for lines are cached in the document as\n * `lineStarts: number[]`.\n *\n * Returns a one-indexed `{ line, col }` location if found, or\n * `undefined` otherwise.\n *\n * @param {number} offset\n * @param {string|Document|Document[]} cst\n * @returns {?LinePos}\n */\n\n\nfunction getLinePos(offset, cst) {\n if (typeof offset !== 'number' || offset < 0) return null;\n const {\n lineStarts,\n src\n } = getSrcInfo(cst);\n if (!lineStarts || !src || offset > src.length) return null;\n\n for (let i = 0; i < lineStarts.length; ++i) {\n const start = lineStarts[i];\n\n if (offset < start) {\n return {\n line: i,\n col: offset - lineStarts[i - 1] + 1\n };\n }\n\n if (offset === start) return {\n line: i + 1,\n col: 1\n };\n }\n\n const line = lineStarts.length;\n return {\n line,\n col: offset - lineStarts[line - 1] + 1\n };\n}\n/**\n * Get a specified line from the source.\n *\n * Accepts a source string or a CST document as the second parameter. With\n * the latter, starting indices for lines are cached in the document as\n * `lineStarts: number[]`.\n *\n * Returns the line as a string if found, or `null` otherwise.\n *\n * @param {number} line One-indexed line number\n * @param {string|Document|Document[]} cst\n * @returns {?string}\n */\n\nfunction getLine(line, cst) {\n const {\n lineStarts,\n src\n } = getSrcInfo(cst);\n if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;\n const start = lineStarts[line - 1];\n let end = lineStarts[line]; // undefined for last line; that's ok for slice()\n\n while (end && end > start && src[end - 1] === '\\n') --end;\n\n return src.slice(start, end);\n}\n/**\n * Pretty-print the starting line from the source indicated by the range `pos`\n *\n * Trims output to `maxWidth` chars while keeping the starting column visible,\n * using `…` at either end to indicate dropped characters.\n *\n * Returns a two-line string (or `null`) with `\\n` as separator; the second line\n * will hold appropriately indented `^` marks indicating the column range.\n *\n * @param {Object} pos\n * @param {LinePos} pos.start\n * @param {LinePos} [pos.end]\n * @param {string|Document|Document[]*} cst\n * @param {number} [maxWidth=80]\n * @returns {?string}\n */\n\nfunction getPrettyContext({\n start,\n end\n}, cst, maxWidth = 80) {\n let src = getLine(start.line, cst);\n if (!src) return null;\n let {\n col\n } = start;\n\n if (src.length > maxWidth) {\n if (col <= maxWidth - 10) {\n src = src.substr(0, maxWidth - 1) + '…';\n } else {\n const halfWidth = Math.round(maxWidth / 2);\n if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…';\n col -= src.length - maxWidth;\n src = '…' + src.substr(1 - maxWidth);\n }\n }\n\n let errLen = 1;\n let errEnd = '';\n\n if (end) {\n if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {\n errLen = end.col - start.col;\n } else {\n errLen = Math.min(src.length + 1, maxWidth) - col;\n errEnd = '…';\n }\n }\n\n const offset = col > 1 ? ' '.repeat(col - 1) : '';\n const err = '^'.repeat(errLen);\n return `${src}\\n${offset}${err}${errEnd}`;\n}\n\nclass Range {\n static copy(orig) {\n return new Range(orig.start, orig.end);\n }\n\n constructor(start, end) {\n this.start = start;\n this.end = end || start;\n }\n\n isEmpty() {\n return typeof this.start !== 'number' || !this.end || this.end <= this.start;\n }\n /**\n * Set `origStart` and `origEnd` to point to the original source range for\n * this node, which may differ due to dropped CR characters.\n *\n * @param {number[]} cr - Positions of dropped CR characters\n * @param {number} offset - Starting index of `cr` from the last call\n * @returns {number} - The next offset, matching the one found for `origStart`\n */\n\n\n setOrigRange(cr, offset) {\n const {\n start,\n end\n } = this;\n\n if (cr.length === 0 || end <= cr[0]) {\n this.origStart = start;\n this.origEnd = end;\n return offset;\n }\n\n let i = offset;\n\n while (i < cr.length) {\n if (cr[i] > start) break;else ++i;\n }\n\n this.origStart = start + i;\n const nextOffset = i;\n\n while (i < cr.length) {\n // if end was at \\n, it should now be at \\r\n if (cr[i] >= end) break;else ++i;\n }\n\n this.origEnd = end + i;\n return nextOffset;\n }\n\n}\n\n/** Root class of all nodes */\n\nclass Node {\n static addStringTerminator(src, offset, str) {\n if (str[str.length - 1] === '\\n') return str;\n const next = Node.endOfWhiteSpace(src, offset);\n return next >= src.length || src[next] === '\\n' ? str + '\\n' : str;\n } // ^(---|...)\n\n\n static atDocumentBoundary(src, offset, sep) {\n const ch0 = src[offset];\n if (!ch0) return true;\n const prev = src[offset - 1];\n if (prev && prev !== '\\n') return false;\n\n if (sep) {\n if (ch0 !== sep) return false;\n } else {\n if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false;\n }\n\n const ch1 = src[offset + 1];\n const ch2 = src[offset + 2];\n if (ch1 !== ch0 || ch2 !== ch0) return false;\n const ch3 = src[offset + 3];\n return !ch3 || ch3 === '\\n' || ch3 === '\\t' || ch3 === ' ';\n }\n\n static endOfIdentifier(src, offset) {\n let ch = src[offset];\n const isVerbatim = ch === '<';\n const notOk = isVerbatim ? ['\\n', '\\t', ' ', '>'] : ['\\n', '\\t', ' ', '[', ']', '{', '}', ','];\n\n while (ch && notOk.indexOf(ch) === -1) ch = src[offset += 1];\n\n if (isVerbatim && ch === '>') offset += 1;\n return offset;\n }\n\n static endOfIndent(src, offset) {\n let ch = src[offset];\n\n while (ch === ' ') ch = src[offset += 1];\n\n return offset;\n }\n\n static endOfLine(src, offset) {\n let ch = src[offset];\n\n while (ch && ch !== '\\n') ch = src[offset += 1];\n\n return offset;\n }\n\n static endOfWhiteSpace(src, offset) {\n let ch = src[offset];\n\n while (ch === '\\t' || ch === ' ') ch = src[offset += 1];\n\n return offset;\n }\n\n static startOfLine(src, offset) {\n let ch = src[offset - 1];\n if (ch === '\\n') return offset;\n\n while (ch && ch !== '\\n') ch = src[offset -= 1];\n\n return offset + 1;\n }\n /**\n * End of indentation, or null if the line's indent level is not more\n * than `indent`\n *\n * @param {string} src\n * @param {number} indent\n * @param {number} lineStart\n * @returns {?number}\n */\n\n\n static endOfBlockIndent(src, indent, lineStart) {\n const inEnd = Node.endOfIndent(src, lineStart);\n\n if (inEnd > lineStart + indent) {\n return inEnd;\n } else {\n const wsEnd = Node.endOfWhiteSpace(src, inEnd);\n const ch = src[wsEnd];\n if (!ch || ch === '\\n') return wsEnd;\n }\n\n return null;\n }\n\n static atBlank(src, offset, endAsBlank) {\n const ch = src[offset];\n return ch === '\\n' || ch === '\\t' || ch === ' ' || endAsBlank && !ch;\n }\n\n static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {\n if (!ch || indentDiff < 0) return false;\n if (indentDiff > 0) return true;\n return indicatorAsIndent && ch === '-';\n } // should be at line or string end, or at next non-whitespace char\n\n\n static normalizeOffset(src, offset) {\n const ch = src[offset];\n return !ch ? offset : ch !== '\\n' && src[offset - 1] === '\\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);\n } // fold single newline into space, multiple newlines to N - 1 newlines\n // presumes src[offset] === '\\n'\n\n\n static foldNewline(src, offset, indent) {\n let inCount = 0;\n let error = false;\n let fold = '';\n let ch = src[offset + 1];\n\n while (ch === ' ' || ch === '\\t' || ch === '\\n') {\n switch (ch) {\n case '\\n':\n inCount = 0;\n offset += 1;\n fold += '\\n';\n break;\n\n case '\\t':\n if (inCount <= indent) error = true;\n offset = Node.endOfWhiteSpace(src, offset + 2) - 1;\n break;\n\n case ' ':\n inCount += 1;\n offset += 1;\n break;\n }\n\n ch = src[offset + 1];\n }\n\n if (!fold) fold = ' ';\n if (ch && inCount <= indent) error = true;\n return {\n fold,\n offset,\n error\n };\n }\n\n constructor(type, props, context) {\n Object.defineProperty(this, 'context', {\n value: context || null,\n writable: true\n });\n this.error = null;\n this.range = null;\n this.valueRange = null;\n this.props = props || [];\n this.type = type;\n this.value = null;\n }\n\n getPropValue(idx, key, skipKey) {\n if (!this.context) return null;\n const {\n src\n } = this.context;\n const prop = this.props[idx];\n return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;\n }\n\n get anchor() {\n for (let i = 0; i < this.props.length; ++i) {\n const anchor = this.getPropValue(i, Char.ANCHOR, true);\n if (anchor != null) return anchor;\n }\n\n return null;\n }\n\n get comment() {\n const comments = [];\n\n for (let i = 0; i < this.props.length; ++i) {\n const comment = this.getPropValue(i, Char.COMMENT, true);\n if (comment != null) comments.push(comment);\n }\n\n return comments.length > 0 ? comments.join('\\n') : null;\n }\n\n commentHasRequiredWhitespace(start) {\n const {\n src\n } = this.context;\n if (this.header && start === this.header.end) return false;\n if (!this.valueRange) return false;\n const {\n end\n } = this.valueRange;\n return start !== end || Node.atBlank(src, end - 1);\n }\n\n get hasComment() {\n if (this.context) {\n const {\n src\n } = this.context;\n\n for (let i = 0; i < this.props.length; ++i) {\n if (src[this.props[i].start] === Char.COMMENT) return true;\n }\n }\n\n return false;\n }\n\n get hasProps() {\n if (this.context) {\n const {\n src\n } = this.context;\n\n for (let i = 0; i < this.props.length; ++i) {\n if (src[this.props[i].start] !== Char.COMMENT) return true;\n }\n }\n\n return false;\n }\n\n get includesTrailingLines() {\n return false;\n }\n\n get jsonLike() {\n const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];\n return jsonLikeTypes.indexOf(this.type) !== -1;\n }\n\n get rangeAsLinePos() {\n if (!this.range || !this.context) return undefined;\n const start = getLinePos(this.range.start, this.context.root);\n if (!start) return undefined;\n const end = getLinePos(this.range.end, this.context.root);\n return {\n start,\n end\n };\n }\n\n get rawValue() {\n if (!this.valueRange || !this.context) return null;\n const {\n start,\n end\n } = this.valueRange;\n return this.context.src.slice(start, end);\n }\n\n get tag() {\n for (let i = 0; i < this.props.length; ++i) {\n const tag = this.getPropValue(i, Char.TAG, false);\n\n if (tag != null) {\n if (tag[1] === '<') {\n return {\n verbatim: tag.slice(2, -1)\n };\n } else {\n // eslint-disable-next-line no-unused-vars\n const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/);\n return {\n handle,\n suffix\n };\n }\n }\n }\n\n return null;\n }\n\n get valueRangeContainsNewline() {\n if (!this.valueRange || !this.context) return false;\n const {\n start,\n end\n } = this.valueRange;\n const {\n src\n } = this.context;\n\n for (let i = start; i < end; ++i) {\n if (src[i] === '\\n') return true;\n }\n\n return false;\n }\n\n parseComment(start) {\n const {\n src\n } = this.context;\n\n if (src[start] === Char.COMMENT) {\n const end = Node.endOfLine(src, start + 1);\n const commentRange = new Range(start, end);\n this.props.push(commentRange);\n return end;\n }\n\n return start;\n }\n /**\n * Populates the `origStart` and `origEnd` values of all ranges for this\n * node. Extended by child classes to handle descendant nodes.\n *\n * @param {number[]} cr - Positions of dropped CR characters\n * @param {number} offset - Starting index of `cr` from the last call\n * @returns {number} - The next offset, matching the one found for `origStart`\n */\n\n\n setOrigRanges(cr, offset) {\n if (this.range) offset = this.range.setOrigRange(cr, offset);\n if (this.valueRange) this.valueRange.setOrigRange(cr, offset);\n this.props.forEach(prop => prop.setOrigRange(cr, offset));\n return offset;\n }\n\n toString() {\n const {\n context: {\n src\n },\n range,\n value\n } = this;\n if (value != null) return value;\n const str = src.slice(range.start, range.end);\n return Node.addStringTerminator(src, range.end, str);\n }\n\n}\n\nclass YAMLError extends Error {\n constructor(name, source, message) {\n if (!message || !(source instanceof Node)) throw new Error(`Invalid arguments for new ${name}`);\n super();\n this.name = name;\n this.message = message;\n this.source = source;\n }\n\n makePretty() {\n if (!this.source) return;\n this.nodeType = this.source.type;\n const cst = this.source.context && this.source.context.root;\n\n if (typeof this.offset === 'number') {\n this.range = new Range(this.offset, this.offset + 1);\n const start = cst && getLinePos(this.offset, cst);\n\n if (start) {\n const end = {\n line: start.line,\n col: start.col + 1\n };\n this.linePos = {\n start,\n end\n };\n }\n\n delete this.offset;\n } else {\n this.range = this.source.range;\n this.linePos = this.source.rangeAsLinePos;\n }\n\n if (this.linePos) {\n const {\n line,\n col\n } = this.linePos.start;\n this.message += ` at line ${line}, column ${col}`;\n const ctx = cst && getPrettyContext(this.linePos, cst);\n if (ctx) this.message += `:\\n\\n${ctx}\\n`;\n }\n\n delete this.source;\n }\n\n}\nclass YAMLReferenceError extends YAMLError {\n constructor(source, message) {\n super('YAMLReferenceError', source, message);\n }\n\n}\nclass YAMLSemanticError extends YAMLError {\n constructor(source, message) {\n super('YAMLSemanticError', source, message);\n }\n\n}\nclass YAMLSyntaxError extends YAMLError {\n constructor(source, message) {\n super('YAMLSyntaxError', source, message);\n }\n\n}\nclass YAMLWarning extends YAMLError {\n constructor(source, message) {\n super('YAMLWarning', source, message);\n }\n\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nclass PlainValue extends Node {\n static endOfLine(src, start, inFlow) {\n let ch = src[start];\n let offset = start;\n\n while (ch && ch !== '\\n') {\n if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break;\n const next = src[offset + 1];\n if (ch === ':' && (!next || next === '\\n' || next === '\\t' || next === ' ' || inFlow && next === ',')) break;\n if ((ch === ' ' || ch === '\\t') && next === '#') break;\n offset += 1;\n ch = next;\n }\n\n return offset;\n }\n\n get strValue() {\n if (!this.valueRange || !this.context) return null;\n let {\n start,\n end\n } = this.valueRange;\n const {\n src\n } = this.context;\n let ch = src[end - 1];\n\n while (start < end && (ch === '\\n' || ch === '\\t' || ch === ' ')) ch = src[--end - 1];\n\n let str = '';\n\n for (let i = start; i < end; ++i) {\n const ch = src[i];\n\n if (ch === '\\n') {\n const {\n fold,\n offset\n } = Node.foldNewline(src, i, -1);\n str += fold;\n i = offset;\n } else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = src[i + 1];\n\n while (i < end && (next === ' ' || next === '\\t')) {\n i += 1;\n next = src[i + 1];\n }\n\n if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n } else {\n str += ch;\n }\n }\n\n const ch0 = src[start];\n\n switch (ch0) {\n case '\\t':\n {\n const msg = 'Plain value cannot start with a tab character';\n const errors = [new YAMLSemanticError(this, msg)];\n return {\n errors,\n str\n };\n }\n\n case '@':\n case '`':\n {\n const msg = `Plain value cannot start with reserved character ${ch0}`;\n const errors = [new YAMLSemanticError(this, msg)];\n return {\n errors,\n str\n };\n }\n\n default:\n return str;\n }\n }\n\n parseBlockValue(start) {\n const {\n indent,\n inFlow,\n src\n } = this.context;\n let offset = start;\n let valueEnd = start;\n\n for (let ch = src[offset]; ch === '\\n'; ch = src[offset]) {\n if (Node.atDocumentBoundary(src, offset + 1)) break;\n const end = Node.endOfBlockIndent(src, indent, offset + 1);\n if (end === null || src[end] === '#') break;\n\n if (src[end] === '\\n') {\n offset = end;\n } else {\n valueEnd = PlainValue.endOfLine(src, end, inFlow);\n offset = valueEnd;\n }\n }\n\n if (this.valueRange.isEmpty()) this.valueRange.start = start;\n this.valueRange.end = valueEnd;\n return valueEnd;\n }\n /**\n * Parses a plain value from the source\n *\n * Accepted forms are:\n * ```\n * #comment\n *\n * first line\n *\n * first line #comment\n *\n * first line\n * block\n * lines\n *\n * #comment\n * block\n * lines\n * ```\n * where block lines are empty or have an indent level greater than `indent`.\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar, may be `\\n`\n */\n\n\n parse(context, start) {\n this.context = context;\n const {\n inFlow,\n src\n } = context;\n let offset = start;\n const ch = src[offset];\n\n if (ch && ch !== '#' && ch !== '\\n') {\n offset = PlainValue.endOfLine(src, start, inFlow);\n }\n\n this.valueRange = new Range(start, offset);\n offset = Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n\n if (!this.hasComment || this.valueRange.isEmpty()) {\n offset = this.parseBlockValue(offset);\n }\n\n return offset;\n }\n\n}\n\nexports.Char = Char;\nexports.Node = Node;\nexports.PlainValue = PlainValue;\nexports.Range = Range;\nexports.Type = Type;\nexports.YAMLError = YAMLError;\nexports.YAMLReferenceError = YAMLReferenceError;\nexports.YAMLSemanticError = YAMLSemanticError;\nexports.YAMLSyntaxError = YAMLSyntaxError;\nexports.YAMLWarning = YAMLWarning;\nexports._defineProperty = _defineProperty;\nexports.defaultTagPrefix = defaultTagPrefix;\nexports.defaultTags = defaultTags;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\n\nclass BlankLine extends PlainValue.Node {\n constructor() {\n super(PlainValue.Type.BLANK_LINE);\n }\n /* istanbul ignore next */\n\n\n get includesTrailingLines() {\n // This is never called from anywhere, but if it were,\n // this is the value it should return.\n return true;\n }\n /**\n * Parses a blank line from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first \\n character\n * @returns {number} - Index of the character after this\n */\n\n\n parse(context, start) {\n this.context = context;\n this.range = new PlainValue.Range(start, start + 1);\n return start + 1;\n }\n\n}\n\nclass CollectionItem extends PlainValue.Node {\n constructor(type, props) {\n super(type, props);\n this.node = null;\n }\n\n get includesTrailingLines() {\n return !!this.node && this.node.includesTrailingLines;\n }\n /**\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this\n */\n\n\n parse(context, start) {\n this.context = context;\n const {\n parseNode,\n src\n } = context;\n let {\n atLineStart,\n lineStart\n } = context;\n if (!atLineStart && this.type === PlainValue.Type.SEQ_ITEM) this.error = new PlainValue.YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line');\n const indent = atLineStart ? start - lineStart : context.indent;\n let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1);\n let ch = src[offset];\n const inlineComment = ch === '#';\n const comments = [];\n let blankLine = null;\n\n while (ch === '\\n' || ch === '#') {\n if (ch === '#') {\n const end = PlainValue.Node.endOfLine(src, offset + 1);\n comments.push(new PlainValue.Range(offset, end));\n offset = end;\n } else {\n atLineStart = true;\n lineStart = offset + 1;\n const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n\n if (src[wsEnd] === '\\n' && comments.length === 0) {\n blankLine = new BlankLine();\n lineStart = blankLine.parse({\n src\n }, lineStart);\n }\n\n offset = PlainValue.Node.endOfIndent(src, lineStart);\n }\n\n ch = src[offset];\n }\n\n if (PlainValue.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValue.Type.SEQ_ITEM)) {\n this.node = parseNode({\n atLineStart,\n inCollection: false,\n indent,\n lineStart,\n parent: this\n }, offset);\n } else if (ch && lineStart > start + 1) {\n offset = lineStart - 1;\n }\n\n if (this.node) {\n if (blankLine) {\n // Only blank lines preceding non-empty nodes are captured. Note that\n // this means that collection item range start indices do not always\n // increase monotonically. -- eemeli/yaml#126\n const items = context.parent.items || context.parent.contents;\n if (items) items.push(blankLine);\n }\n\n if (comments.length) Array.prototype.push.apply(this.props, comments);\n offset = this.node.range.end;\n } else {\n if (inlineComment) {\n const c = comments[0];\n this.props.push(c);\n offset = c.end;\n } else {\n offset = PlainValue.Node.endOfLine(src, start + 1);\n }\n }\n\n const end = this.node ? this.node.valueRange.end : offset;\n this.valueRange = new PlainValue.Range(start, end);\n return offset;\n }\n\n setOrigRanges(cr, offset) {\n offset = super.setOrigRanges(cr, offset);\n return this.node ? this.node.setOrigRanges(cr, offset) : offset;\n }\n\n toString() {\n const {\n context: {\n src\n },\n node,\n range,\n value\n } = this;\n if (value != null) return value;\n const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end);\n return PlainValue.Node.addStringTerminator(src, range.end, str);\n }\n\n}\n\nclass Comment extends PlainValue.Node {\n constructor() {\n super(PlainValue.Type.COMMENT);\n }\n /**\n * Parses a comment line from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar\n */\n\n\n parse(context, start) {\n this.context = context;\n const offset = this.parseComment(start);\n this.range = new PlainValue.Range(start, offset);\n return offset;\n }\n\n}\n\nfunction grabCollectionEndComments(node) {\n let cnode = node;\n\n while (cnode instanceof CollectionItem) cnode = cnode.node;\n\n if (!(cnode instanceof Collection)) return null;\n const len = cnode.items.length;\n let ci = -1;\n\n for (let i = len - 1; i >= 0; --i) {\n const n = cnode.items[i];\n\n if (n.type === PlainValue.Type.COMMENT) {\n // Keep sufficiently indented comments with preceding node\n const {\n indent,\n lineStart\n } = n.context;\n if (indent > 0 && n.range.start >= lineStart + indent) break;\n ci = i;\n } else if (n.type === PlainValue.Type.BLANK_LINE) ci = i;else break;\n }\n\n if (ci === -1) return null;\n const ca = cnode.items.splice(ci, len - ci);\n const prevEnd = ca[0].range.start;\n\n while (true) {\n cnode.range.end = prevEnd;\n if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd;\n if (cnode === node) break;\n cnode = cnode.context.parent;\n }\n\n return ca;\n}\nclass Collection extends PlainValue.Node {\n static nextContentHasIndent(src, offset, indent) {\n const lineStart = PlainValue.Node.endOfLine(src, offset) + 1;\n offset = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n const ch = src[offset];\n if (!ch) return false;\n if (offset >= lineStart + indent) return true;\n if (ch !== '#' && ch !== '\\n') return false;\n return Collection.nextContentHasIndent(src, offset, indent);\n }\n\n constructor(firstItem) {\n super(firstItem.type === PlainValue.Type.SEQ_ITEM ? PlainValue.Type.SEQ : PlainValue.Type.MAP);\n\n for (let i = firstItem.props.length - 1; i >= 0; --i) {\n if (firstItem.props[i].start < firstItem.context.lineStart) {\n // props on previous line are assumed by the collection\n this.props = firstItem.props.slice(0, i + 1);\n firstItem.props = firstItem.props.slice(i + 1);\n const itemRange = firstItem.props[0] || firstItem.valueRange;\n firstItem.range.start = itemRange.start;\n break;\n }\n }\n\n this.items = [firstItem];\n const ec = grabCollectionEndComments(firstItem);\n if (ec) Array.prototype.push.apply(this.items, ec);\n }\n\n get includesTrailingLines() {\n return this.items.length > 0;\n }\n /**\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this\n */\n\n\n parse(context, start) {\n this.context = context;\n const {\n parseNode,\n src\n } = context; // It's easier to recalculate lineStart here rather than tracking down the\n // last context from which to read it -- eemeli/yaml#2\n\n let lineStart = PlainValue.Node.startOfLine(src, start);\n const firstItem = this.items[0]; // First-item context needs to be correct for later comment handling\n // -- eemeli/yaml#17\n\n firstItem.context.parent = this;\n this.valueRange = PlainValue.Range.copy(firstItem.valueRange);\n const indent = firstItem.range.start - firstItem.context.lineStart;\n let offset = start;\n offset = PlainValue.Node.normalizeOffset(src, offset);\n let ch = src[offset];\n let atLineStart = PlainValue.Node.endOfWhiteSpace(src, lineStart) === offset;\n let prevIncludesTrailingLines = false;\n\n while (ch) {\n while (ch === '\\n' || ch === '#') {\n if (atLineStart && ch === '\\n' && !prevIncludesTrailingLines) {\n const blankLine = new BlankLine();\n offset = blankLine.parse({\n src\n }, offset);\n this.valueRange.end = offset;\n\n if (offset >= src.length) {\n ch = null;\n break;\n }\n\n this.items.push(blankLine);\n offset -= 1; // blankLine.parse() consumes terminal newline\n } else if (ch === '#') {\n if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) {\n return offset;\n }\n\n const comment = new Comment();\n offset = comment.parse({\n indent,\n lineStart,\n src\n }, offset);\n this.items.push(comment);\n this.valueRange.end = offset;\n\n if (offset >= src.length) {\n ch = null;\n break;\n }\n }\n\n lineStart = offset + 1;\n offset = PlainValue.Node.endOfIndent(src, lineStart);\n\n if (PlainValue.Node.atBlank(src, offset)) {\n const wsEnd = PlainValue.Node.endOfWhiteSpace(src, offset);\n const next = src[wsEnd];\n\n if (!next || next === '\\n' || next === '#') {\n offset = wsEnd;\n }\n }\n\n ch = src[offset];\n atLineStart = true;\n }\n\n if (!ch) {\n break;\n }\n\n if (offset !== lineStart + indent && (atLineStart || ch !== ':')) {\n if (offset < lineStart + indent) {\n if (lineStart > start) offset = lineStart;\n break;\n } else if (!this.error) {\n const msg = 'All collection items must start at the same column';\n this.error = new PlainValue.YAMLSyntaxError(this, msg);\n }\n }\n\n if (firstItem.type === PlainValue.Type.SEQ_ITEM) {\n if (ch !== '-') {\n if (lineStart > start) offset = lineStart;\n break;\n }\n } else if (ch === '-' && !this.error) {\n // map key may start with -, as long as it's followed by a non-whitespace char\n const next = src[offset + 1];\n\n if (!next || next === '\\n' || next === '\\t' || next === ' ') {\n const msg = 'A collection cannot be both a mapping and a sequence';\n this.error = new PlainValue.YAMLSyntaxError(this, msg);\n }\n }\n\n const node = parseNode({\n atLineStart,\n inCollection: true,\n indent,\n lineStart,\n parent: this\n }, offset);\n if (!node) return offset; // at next document start\n\n this.items.push(node);\n this.valueRange.end = node.valueRange.end;\n offset = PlainValue.Node.normalizeOffset(src, node.range.end);\n ch = src[offset];\n atLineStart = false;\n prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range\n // has advanced to check the current line's indentation level\n // -- eemeli/yaml#10 & eemeli/yaml#38\n\n if (ch) {\n let ls = offset - 1;\n let prev = src[ls];\n\n while (prev === ' ' || prev === '\\t') prev = src[--ls];\n\n if (prev === '\\n') {\n lineStart = ls + 1;\n atLineStart = true;\n }\n }\n\n const ec = grabCollectionEndComments(node);\n if (ec) Array.prototype.push.apply(this.items, ec);\n }\n\n return offset;\n }\n\n setOrigRanges(cr, offset) {\n offset = super.setOrigRanges(cr, offset);\n this.items.forEach(node => {\n offset = node.setOrigRanges(cr, offset);\n });\n return offset;\n }\n\n toString() {\n const {\n context: {\n src\n },\n items,\n range,\n value\n } = this;\n if (value != null) return value;\n let str = src.slice(range.start, items[0].range.start) + String(items[0]);\n\n for (let i = 1; i < items.length; ++i) {\n const item = items[i];\n const {\n atLineStart,\n indent\n } = item.context;\n if (atLineStart) for (let i = 0; i < indent; ++i) str += ' ';\n str += String(item);\n }\n\n return PlainValue.Node.addStringTerminator(src, range.end, str);\n }\n\n}\n\nclass Directive extends PlainValue.Node {\n constructor() {\n super(PlainValue.Type.DIRECTIVE);\n this.name = null;\n }\n\n get parameters() {\n const raw = this.rawValue;\n return raw ? raw.trim().split(/[ \\t]+/) : [];\n }\n\n parseName(start) {\n const {\n src\n } = this.context;\n let offset = start;\n let ch = src[offset];\n\n while (ch && ch !== '\\n' && ch !== '\\t' && ch !== ' ') ch = src[offset += 1];\n\n this.name = src.slice(start, offset);\n return offset;\n }\n\n parseParameters(start) {\n const {\n src\n } = this.context;\n let offset = start;\n let ch = src[offset];\n\n while (ch && ch !== '\\n' && ch !== '#') ch = src[offset += 1];\n\n this.valueRange = new PlainValue.Range(start, offset);\n return offset;\n }\n\n parse(context, start) {\n this.context = context;\n let offset = this.parseName(start + 1);\n offset = this.parseParameters(offset);\n offset = this.parseComment(offset);\n this.range = new PlainValue.Range(start, offset);\n return offset;\n }\n\n}\n\nclass Document extends PlainValue.Node {\n static startCommentOrEndBlankLine(src, start) {\n const offset = PlainValue.Node.endOfWhiteSpace(src, start);\n const ch = src[offset];\n return ch === '#' || ch === '\\n' ? offset : start;\n }\n\n constructor() {\n super(PlainValue.Type.DOCUMENT);\n this.directives = null;\n this.contents = null;\n this.directivesEndMarker = null;\n this.documentEndMarker = null;\n }\n\n parseDirectives(start) {\n const {\n src\n } = this.context;\n this.directives = [];\n let atLineStart = true;\n let hasDirectives = false;\n let offset = start;\n\n while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DIRECTIVES_END)) {\n offset = Document.startCommentOrEndBlankLine(src, offset);\n\n switch (src[offset]) {\n case '\\n':\n if (atLineStart) {\n const blankLine = new BlankLine();\n offset = blankLine.parse({\n src\n }, offset);\n\n if (offset < src.length) {\n this.directives.push(blankLine);\n }\n } else {\n offset += 1;\n atLineStart = true;\n }\n\n break;\n\n case '#':\n {\n const comment = new Comment();\n offset = comment.parse({\n src\n }, offset);\n this.directives.push(comment);\n atLineStart = false;\n }\n break;\n\n case '%':\n {\n const directive = new Directive();\n offset = directive.parse({\n parent: this,\n src\n }, offset);\n this.directives.push(directive);\n hasDirectives = true;\n atLineStart = false;\n }\n break;\n\n default:\n if (hasDirectives) {\n this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line');\n } else if (this.directives.length > 0) {\n this.contents = this.directives;\n this.directives = [];\n }\n\n return offset;\n }\n }\n\n if (src[offset]) {\n this.directivesEndMarker = new PlainValue.Range(offset, offset + 3);\n return offset + 3;\n }\n\n if (hasDirectives) {\n this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line');\n } else if (this.directives.length > 0) {\n this.contents = this.directives;\n this.directives = [];\n }\n\n return offset;\n }\n\n parseContents(start) {\n const {\n parseNode,\n src\n } = this.context;\n if (!this.contents) this.contents = [];\n let lineStart = start;\n\n while (src[lineStart - 1] === '-') lineStart -= 1;\n\n let offset = PlainValue.Node.endOfWhiteSpace(src, start);\n let atLineStart = lineStart === start;\n this.valueRange = new PlainValue.Range(offset);\n\n while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DOCUMENT_END)) {\n switch (src[offset]) {\n case '\\n':\n if (atLineStart) {\n const blankLine = new BlankLine();\n offset = blankLine.parse({\n src\n }, offset);\n\n if (offset < src.length) {\n this.contents.push(blankLine);\n }\n } else {\n offset += 1;\n atLineStart = true;\n }\n\n lineStart = offset;\n break;\n\n case '#':\n {\n const comment = new Comment();\n offset = comment.parse({\n src\n }, offset);\n this.contents.push(comment);\n atLineStart = false;\n }\n break;\n\n default:\n {\n const iEnd = PlainValue.Node.endOfIndent(src, offset);\n const context = {\n atLineStart,\n indent: -1,\n inFlow: false,\n inCollection: false,\n lineStart,\n parent: this\n };\n const node = parseNode(context, iEnd);\n if (!node) return this.valueRange.end = iEnd; // at next document start\n\n this.contents.push(node);\n offset = node.range.end;\n atLineStart = false;\n const ec = grabCollectionEndComments(node);\n if (ec) Array.prototype.push.apply(this.contents, ec);\n }\n }\n\n offset = Document.startCommentOrEndBlankLine(src, offset);\n }\n\n this.valueRange.end = offset;\n\n if (src[offset]) {\n this.documentEndMarker = new PlainValue.Range(offset, offset + 3);\n offset += 3;\n\n if (src[offset]) {\n offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n\n if (src[offset] === '#') {\n const comment = new Comment();\n offset = comment.parse({\n src\n }, offset);\n this.contents.push(comment);\n }\n\n switch (src[offset]) {\n case '\\n':\n offset += 1;\n break;\n\n case undefined:\n break;\n\n default:\n this.error = new PlainValue.YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix');\n }\n }\n }\n\n return offset;\n }\n /**\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this\n */\n\n\n parse(context, start) {\n context.root = this;\n this.context = context;\n const {\n src\n } = context;\n let offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM\n\n offset = this.parseDirectives(offset);\n offset = this.parseContents(offset);\n return offset;\n }\n\n setOrigRanges(cr, offset) {\n offset = super.setOrigRanges(cr, offset);\n this.directives.forEach(node => {\n offset = node.setOrigRanges(cr, offset);\n });\n if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset);\n this.contents.forEach(node => {\n offset = node.setOrigRanges(cr, offset);\n });\n if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset);\n return offset;\n }\n\n toString() {\n const {\n contents,\n directives,\n value\n } = this;\n if (value != null) return value;\n let str = directives.join('');\n\n if (contents.length > 0) {\n if (directives.length > 0 || contents[0].type === PlainValue.Type.COMMENT) str += '---\\n';\n str += contents.join('');\n }\n\n if (str[str.length - 1] !== '\\n') str += '\\n';\n return str;\n }\n\n}\n\nclass Alias extends PlainValue.Node {\n /**\n * Parses an *alias from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar\n */\n parse(context, start) {\n this.context = context;\n const {\n src\n } = context;\n let offset = PlainValue.Node.endOfIdentifier(src, start + 1);\n this.valueRange = new PlainValue.Range(start + 1, offset);\n offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n return offset;\n }\n\n}\n\nconst Chomp = {\n CLIP: 'CLIP',\n KEEP: 'KEEP',\n STRIP: 'STRIP'\n};\nclass BlockValue extends PlainValue.Node {\n constructor(type, props) {\n super(type, props);\n this.blockIndent = null;\n this.chomping = Chomp.CLIP;\n this.header = null;\n }\n\n get includesTrailingLines() {\n return this.chomping === Chomp.KEEP;\n }\n\n get strValue() {\n if (!this.valueRange || !this.context) return null;\n let {\n start,\n end\n } = this.valueRange;\n const {\n indent,\n src\n } = this.context;\n if (this.valueRange.isEmpty()) return '';\n let lastNewLine = null;\n let ch = src[end - 1];\n\n while (ch === '\\n' || ch === '\\t' || ch === ' ') {\n end -= 1;\n\n if (end <= start) {\n if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens\n }\n\n if (ch === '\\n') lastNewLine = end;\n ch = src[end - 1];\n }\n\n let keepStart = end + 1;\n\n if (lastNewLine) {\n if (this.chomping === Chomp.KEEP) {\n keepStart = lastNewLine;\n end = this.valueRange.end;\n } else {\n end = lastNewLine;\n }\n }\n\n const bi = indent + this.blockIndent;\n const folded = this.type === PlainValue.Type.BLOCK_FOLDED;\n let atStart = true;\n let str = '';\n let sep = '';\n let prevMoreIndented = false;\n\n for (let i = start; i < end; ++i) {\n for (let j = 0; j < bi; ++j) {\n if (src[i] !== ' ') break;\n i += 1;\n }\n\n const ch = src[i];\n\n if (ch === '\\n') {\n if (sep === '\\n') str += '\\n';else sep = '\\n';\n } else {\n const lineEnd = PlainValue.Node.endOfLine(src, i);\n const line = src.slice(i, lineEnd);\n i = lineEnd;\n\n if (folded && (ch === ' ' || ch === '\\t') && i < keepStart) {\n if (sep === ' ') sep = '\\n';else if (!prevMoreIndented && !atStart && sep === '\\n') sep = '\\n\\n';\n str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '')\n\n sep = lineEnd < end && src[lineEnd] || '';\n prevMoreIndented = true;\n } else {\n str += sep + line;\n sep = folded && i < keepStart ? ' ' : '\\n';\n prevMoreIndented = false;\n }\n\n if (atStart && line !== '') atStart = false;\n }\n }\n\n return this.chomping === Chomp.STRIP ? str : str + '\\n';\n }\n\n parseBlockHeader(start) {\n const {\n src\n } = this.context;\n let offset = start + 1;\n let bi = '';\n\n while (true) {\n const ch = src[offset];\n\n switch (ch) {\n case '-':\n this.chomping = Chomp.STRIP;\n break;\n\n case '+':\n this.chomping = Chomp.KEEP;\n break;\n\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n bi += ch;\n break;\n\n default:\n this.blockIndent = Number(bi) || null;\n this.header = new PlainValue.Range(start, offset);\n return offset;\n }\n\n offset += 1;\n }\n }\n\n parseBlockValue(start) {\n const {\n indent,\n src\n } = this.context;\n const explicit = !!this.blockIndent;\n let offset = start;\n let valueEnd = start;\n let minBlockIndent = 1;\n\n for (let ch = src[offset]; ch === '\\n'; ch = src[offset]) {\n offset += 1;\n if (PlainValue.Node.atDocumentBoundary(src, offset)) break;\n const end = PlainValue.Node.endOfBlockIndent(src, indent, offset); // should not include tab?\n\n if (end === null) break;\n const ch = src[end];\n const lineIndent = end - (offset + indent);\n\n if (!this.blockIndent) {\n // no explicit block indent, none yet detected\n if (src[end] !== '\\n') {\n // first line with non-whitespace content\n if (lineIndent < minBlockIndent) {\n const msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n this.error = new PlainValue.YAMLSemanticError(this, msg);\n }\n\n this.blockIndent = lineIndent;\n } else if (lineIndent > minBlockIndent) {\n // empty line with more whitespace\n minBlockIndent = lineIndent;\n }\n } else if (ch && ch !== '\\n' && lineIndent < this.blockIndent) {\n if (src[end] === '#') break;\n\n if (!this.error) {\n const src = explicit ? 'explicit indentation indicator' : 'first line';\n const msg = `Block scalars must not be less indented than their ${src}`;\n this.error = new PlainValue.YAMLSemanticError(this, msg);\n }\n }\n\n if (src[end] === '\\n') {\n offset = end;\n } else {\n offset = valueEnd = PlainValue.Node.endOfLine(src, end);\n }\n }\n\n if (this.chomping !== Chomp.KEEP) {\n offset = src[valueEnd] ? valueEnd + 1 : valueEnd;\n }\n\n this.valueRange = new PlainValue.Range(start + 1, offset);\n return offset;\n }\n /**\n * Parses a block value from the source\n *\n * Accepted forms are:\n * ```\n * BS\n * block\n * lines\n *\n * BS #comment\n * block\n * lines\n * ```\n * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines\n * are empty or have an indent level greater than `indent`.\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this block\n */\n\n\n parse(context, start) {\n this.context = context;\n const {\n src\n } = context;\n let offset = this.parseBlockHeader(start);\n offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n offset = this.parseBlockValue(offset);\n return offset;\n }\n\n setOrigRanges(cr, offset) {\n offset = super.setOrigRanges(cr, offset);\n return this.header ? this.header.setOrigRange(cr, offset) : offset;\n }\n\n}\n\nclass FlowCollection extends PlainValue.Node {\n constructor(type, props) {\n super(type, props);\n this.items = null;\n }\n\n prevNodeIsJsonLike(idx = this.items.length) {\n const node = this.items[idx - 1];\n return !!node && (node.jsonLike || node.type === PlainValue.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1));\n }\n /**\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this\n */\n\n\n parse(context, start) {\n this.context = context;\n const {\n parseNode,\n src\n } = context;\n let {\n indent,\n lineStart\n } = context;\n let char = src[start]; // { or [\n\n this.items = [{\n char,\n offset: start\n }];\n let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1);\n char = src[offset];\n\n while (char && char !== ']' && char !== '}') {\n switch (char) {\n case '\\n':\n {\n lineStart = offset + 1;\n const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart);\n\n if (src[wsEnd] === '\\n') {\n const blankLine = new BlankLine();\n lineStart = blankLine.parse({\n src\n }, lineStart);\n this.items.push(blankLine);\n }\n\n offset = PlainValue.Node.endOfIndent(src, lineStart);\n\n if (offset <= lineStart + indent) {\n char = src[offset];\n\n if (offset < lineStart + indent || char !== ']' && char !== '}') {\n const msg = 'Insufficient indentation in flow collection';\n this.error = new PlainValue.YAMLSemanticError(this, msg);\n }\n }\n }\n break;\n\n case ',':\n {\n this.items.push({\n char,\n offset\n });\n offset += 1;\n }\n break;\n\n case '#':\n {\n const comment = new Comment();\n offset = comment.parse({\n src\n }, offset);\n this.items.push(comment);\n }\n break;\n\n case '?':\n case ':':\n {\n const next = src[offset + 1];\n\n if (next === '\\n' || next === '\\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace\n char === ':' && this.prevNodeIsJsonLike()) {\n this.items.push({\n char,\n offset\n });\n offset += 1;\n break;\n }\n }\n // fallthrough\n\n default:\n {\n const node = parseNode({\n atLineStart: false,\n inCollection: false,\n inFlow: true,\n indent: -1,\n lineStart,\n parent: this\n }, offset);\n\n if (!node) {\n // at next document start\n this.valueRange = new PlainValue.Range(start, offset);\n return offset;\n }\n\n this.items.push(node);\n offset = PlainValue.Node.normalizeOffset(src, node.range.end);\n }\n }\n\n offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n char = src[offset];\n }\n\n this.valueRange = new PlainValue.Range(start, offset + 1);\n\n if (char) {\n this.items.push({\n char,\n offset\n });\n offset = PlainValue.Node.endOfWhiteSpace(src, offset + 1);\n offset = this.parseComment(offset);\n }\n\n return offset;\n }\n\n setOrigRanges(cr, offset) {\n offset = super.setOrigRanges(cr, offset);\n this.items.forEach(node => {\n if (node instanceof PlainValue.Node) {\n offset = node.setOrigRanges(cr, offset);\n } else if (cr.length === 0) {\n node.origOffset = node.offset;\n } else {\n let i = offset;\n\n while (i < cr.length) {\n if (cr[i] > node.offset) break;else ++i;\n }\n\n node.origOffset = node.offset + i;\n offset = i;\n }\n });\n return offset;\n }\n\n toString() {\n const {\n context: {\n src\n },\n items,\n range,\n value\n } = this;\n if (value != null) return value;\n const nodes = items.filter(item => item instanceof PlainValue.Node);\n let str = '';\n let prevEnd = range.start;\n nodes.forEach(node => {\n const prefix = src.slice(prevEnd, node.range.start);\n prevEnd = node.range.end;\n str += prefix + String(node);\n\n if (str[str.length - 1] === '\\n' && src[prevEnd - 1] !== '\\n' && src[prevEnd] === '\\n') {\n // Comment range does not include the terminal newline, but its\n // stringified value does. Without this fix, newlines at comment ends\n // get duplicated.\n prevEnd += 1;\n }\n });\n str += src.slice(prevEnd, range.end);\n return PlainValue.Node.addStringTerminator(src, range.end, str);\n }\n\n}\n\nclass QuoteDouble extends PlainValue.Node {\n static endOfQuote(src, offset) {\n let ch = src[offset];\n\n while (ch && ch !== '\"') {\n offset += ch === '\\\\' ? 2 : 1;\n ch = src[offset];\n }\n\n return offset + 1;\n }\n /**\n * @returns {string | { str: string, errors: YAMLSyntaxError[] }}\n */\n\n\n get strValue() {\n if (!this.valueRange || !this.context) return null;\n const errors = [];\n const {\n start,\n end\n } = this.valueRange;\n const {\n indent,\n src\n } = this.context;\n if (src[end - 1] !== '\"') errors.push(new PlainValue.YAMLSyntaxError(this, 'Missing closing \"quote')); // Using String#replace is too painful with escaped newlines preceded by\n // escaped backslashes; also, this should be faster.\n\n let str = '';\n\n for (let i = start + 1; i < end - 1; ++i) {\n const ch = src[i];\n\n if (ch === '\\n') {\n if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));\n const {\n fold,\n offset,\n error\n } = PlainValue.Node.foldNewline(src, i, indent);\n str += fold;\n i = offset;\n if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));\n } else if (ch === '\\\\') {\n i += 1;\n\n switch (src[i]) {\n case '0':\n str += '\\0';\n break;\n // null character\n\n case 'a':\n str += '\\x07';\n break;\n // bell character\n\n case 'b':\n str += '\\b';\n break;\n // backspace\n\n case 'e':\n str += '\\x1b';\n break;\n // escape character\n\n case 'f':\n str += '\\f';\n break;\n // form feed\n\n case 'n':\n str += '\\n';\n break;\n // line feed\n\n case 'r':\n str += '\\r';\n break;\n // carriage return\n\n case 't':\n str += '\\t';\n break;\n // horizontal tab\n\n case 'v':\n str += '\\v';\n break;\n // vertical tab\n\n case 'N':\n str += '\\u0085';\n break;\n // Unicode next line\n\n case '_':\n str += '\\u00a0';\n break;\n // Unicode non-breaking space\n\n case 'L':\n str += '\\u2028';\n break;\n // Unicode line separator\n\n case 'P':\n str += '\\u2029';\n break;\n // Unicode paragraph separator\n\n case ' ':\n str += ' ';\n break;\n\n case '\"':\n str += '\"';\n break;\n\n case '/':\n str += '/';\n break;\n\n case '\\\\':\n str += '\\\\';\n break;\n\n case '\\t':\n str += '\\t';\n break;\n\n case 'x':\n str += this.parseCharCode(i + 1, 2, errors);\n i += 2;\n break;\n\n case 'u':\n str += this.parseCharCode(i + 1, 4, errors);\n i += 4;\n break;\n\n case 'U':\n str += this.parseCharCode(i + 1, 8, errors);\n i += 8;\n break;\n\n case '\\n':\n // skip escaped newlines, but still trim the following line\n while (src[i + 1] === ' ' || src[i + 1] === '\\t') i += 1;\n\n break;\n\n default:\n errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));\n str += '\\\\' + src[i];\n }\n } else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = src[i + 1];\n\n while (next === ' ' || next === '\\t') {\n i += 1;\n next = src[i + 1];\n }\n\n if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n } else {\n str += ch;\n }\n }\n\n return errors.length > 0 ? {\n errors,\n str\n } : str;\n }\n\n parseCharCode(offset, length, errors) {\n const {\n src\n } = this.context;\n const cc = src.substr(offset, length);\n const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n const code = ok ? parseInt(cc, 16) : NaN;\n\n if (isNaN(code)) {\n errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));\n return src.substr(offset - 2, length + 2);\n }\n\n return String.fromCodePoint(code);\n }\n /**\n * Parses a \"double quoted\" value from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar\n */\n\n\n parse(context, start) {\n this.context = context;\n const {\n src\n } = context;\n let offset = QuoteDouble.endOfQuote(src, start + 1);\n this.valueRange = new PlainValue.Range(start, offset);\n offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n return offset;\n }\n\n}\n\nclass QuoteSingle extends PlainValue.Node {\n static endOfQuote(src, offset) {\n let ch = src[offset];\n\n while (ch) {\n if (ch === \"'\") {\n if (src[offset + 1] !== \"'\") break;\n ch = src[offset += 2];\n } else {\n ch = src[offset += 1];\n }\n }\n\n return offset + 1;\n }\n /**\n * @returns {string | { str: string, errors: YAMLSyntaxError[] }}\n */\n\n\n get strValue() {\n if (!this.valueRange || !this.context) return null;\n const errors = [];\n const {\n start,\n end\n } = this.valueRange;\n const {\n indent,\n src\n } = this.context;\n if (src[end - 1] !== \"'\") errors.push(new PlainValue.YAMLSyntaxError(this, \"Missing closing 'quote\"));\n let str = '';\n\n for (let i = start + 1; i < end - 1; ++i) {\n const ch = src[i];\n\n if (ch === '\\n') {\n if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));\n const {\n fold,\n offset,\n error\n } = PlainValue.Node.foldNewline(src, i, indent);\n str += fold;\n i = offset;\n if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));\n } else if (ch === \"'\") {\n str += ch;\n i += 1;\n if (src[i] !== \"'\") errors.push(new PlainValue.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));\n } else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = src[i + 1];\n\n while (next === ' ' || next === '\\t') {\n i += 1;\n next = src[i + 1];\n }\n\n if (next !== '\\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;\n } else {\n str += ch;\n }\n }\n\n return errors.length > 0 ? {\n errors,\n str\n } : str;\n }\n /**\n * Parses a 'single quoted' value from the source\n *\n * @param {ParseContext} context\n * @param {number} start - Index of first character\n * @returns {number} - Index of the character after this scalar\n */\n\n\n parse(context, start) {\n this.context = context;\n const {\n src\n } = context;\n let offset = QuoteSingle.endOfQuote(src, start + 1);\n this.valueRange = new PlainValue.Range(start, offset);\n offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n offset = this.parseComment(offset);\n return offset;\n }\n\n}\n\nfunction createNewNode(type, props) {\n switch (type) {\n case PlainValue.Type.ALIAS:\n return new Alias(type, props);\n\n case PlainValue.Type.BLOCK_FOLDED:\n case PlainValue.Type.BLOCK_LITERAL:\n return new BlockValue(type, props);\n\n case PlainValue.Type.FLOW_MAP:\n case PlainValue.Type.FLOW_SEQ:\n return new FlowCollection(type, props);\n\n case PlainValue.Type.MAP_KEY:\n case PlainValue.Type.MAP_VALUE:\n case PlainValue.Type.SEQ_ITEM:\n return new CollectionItem(type, props);\n\n case PlainValue.Type.COMMENT:\n case PlainValue.Type.PLAIN:\n return new PlainValue.PlainValue(type, props);\n\n case PlainValue.Type.QUOTE_DOUBLE:\n return new QuoteDouble(type, props);\n\n case PlainValue.Type.QUOTE_SINGLE:\n return new QuoteSingle(type, props);\n\n /* istanbul ignore next */\n\n default:\n return null;\n // should never happen\n }\n}\n/**\n * @param {boolean} atLineStart - Node starts at beginning of line\n * @param {boolean} inFlow - true if currently in a flow context\n * @param {boolean} inCollection - true if currently in a collection context\n * @param {number} indent - Current level of indentation\n * @param {number} lineStart - Start of the current line\n * @param {Node} parent - The parent of the node\n * @param {string} src - Source of the YAML document\n */\n\n\nclass ParseContext {\n static parseType(src, offset, inFlow) {\n switch (src[offset]) {\n case '*':\n return PlainValue.Type.ALIAS;\n\n case '>':\n return PlainValue.Type.BLOCK_FOLDED;\n\n case '|':\n return PlainValue.Type.BLOCK_LITERAL;\n\n case '{':\n return PlainValue.Type.FLOW_MAP;\n\n case '[':\n return PlainValue.Type.FLOW_SEQ;\n\n case '?':\n return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_KEY : PlainValue.Type.PLAIN;\n\n case ':':\n return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_VALUE : PlainValue.Type.PLAIN;\n\n case '-':\n return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.SEQ_ITEM : PlainValue.Type.PLAIN;\n\n case '\"':\n return PlainValue.Type.QUOTE_DOUBLE;\n\n case \"'\":\n return PlainValue.Type.QUOTE_SINGLE;\n\n default:\n return PlainValue.Type.PLAIN;\n }\n }\n\n constructor(orig = {}, {\n atLineStart,\n inCollection,\n inFlow,\n indent,\n lineStart,\n parent\n } = {}) {\n PlainValue._defineProperty(this, \"parseNode\", (overlay, start) => {\n if (PlainValue.Node.atDocumentBoundary(this.src, start)) return null;\n const context = new ParseContext(this, overlay);\n const {\n props,\n type,\n valueStart\n } = context.parseProps(start);\n const node = createNewNode(type, props);\n let offset = node.parse(context, valueStart);\n node.range = new PlainValue.Range(start, offset);\n /* istanbul ignore if */\n\n if (offset <= start) {\n // This should never happen, but if it does, let's make sure to at least\n // step one character forward to avoid a busy loop.\n node.error = new Error(`Node#parse consumed no characters`);\n node.error.parseEnd = offset;\n node.error.source = node;\n node.range.end = start + 1;\n }\n\n if (context.nodeStartsCollection(node)) {\n if (!node.error && !context.atLineStart && context.parent.type === PlainValue.Type.DOCUMENT) {\n node.error = new PlainValue.YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)');\n }\n\n const collection = new Collection(node);\n offset = collection.parse(new ParseContext(context), offset);\n collection.range = new PlainValue.Range(start, offset);\n return collection;\n }\n\n return node;\n });\n\n this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false;\n this.inCollection = inCollection != null ? inCollection : orig.inCollection || false;\n this.inFlow = inFlow != null ? inFlow : orig.inFlow || false;\n this.indent = indent != null ? indent : orig.indent;\n this.lineStart = lineStart != null ? lineStart : orig.lineStart;\n this.parent = parent != null ? parent : orig.parent || {};\n this.root = orig.root;\n this.src = orig.src;\n }\n\n nodeStartsCollection(node) {\n const {\n inCollection,\n inFlow,\n src\n } = this;\n if (inCollection || inFlow) return false;\n if (node instanceof CollectionItem) return true; // check for implicit key\n\n let offset = node.range.end;\n if (src[offset] === '\\n' || src[offset - 1] === '\\n') return false;\n offset = PlainValue.Node.endOfWhiteSpace(src, offset);\n return src[offset] === ':';\n } // Anchor and tag are before type, which determines the node implementation\n // class; hence this intermediate step.\n\n\n parseProps(offset) {\n const {\n inFlow,\n parent,\n src\n } = this;\n const props = [];\n let lineHasProps = false;\n offset = this.atLineStart ? PlainValue.Node.endOfIndent(src, offset) : PlainValue.Node.endOfWhiteSpace(src, offset);\n let ch = src[offset];\n\n while (ch === PlainValue.Char.ANCHOR || ch === PlainValue.Char.COMMENT || ch === PlainValue.Char.TAG || ch === '\\n') {\n if (ch === '\\n') {\n let inEnd = offset;\n let lineStart;\n\n do {\n lineStart = inEnd + 1;\n inEnd = PlainValue.Node.endOfIndent(src, lineStart);\n } while (src[inEnd] === '\\n');\n\n const indentDiff = inEnd - (lineStart + this.indent);\n const noIndicatorAsIndent = parent.type === PlainValue.Type.SEQ_ITEM && parent.context.atLineStart;\n if (src[inEnd] !== '#' && !PlainValue.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;\n this.atLineStart = true;\n this.lineStart = lineStart;\n lineHasProps = false;\n offset = inEnd;\n } else if (ch === PlainValue.Char.COMMENT) {\n const end = PlainValue.Node.endOfLine(src, offset + 1);\n props.push(new PlainValue.Range(offset, end));\n offset = end;\n } else {\n let end = PlainValue.Node.endOfIdentifier(src, offset + 1);\n\n if (ch === PlainValue.Char.TAG && src[end] === ',' && /^[a-zA-Z0-9-]+\\.[a-zA-Z0-9-]+,\\d\\d\\d\\d(-\\d\\d){0,2}\\/\\S/.test(src.slice(offset + 1, end + 13))) {\n // Let's presume we're dealing with a YAML 1.0 domain tag here, rather\n // than an empty but 'foo.bar' private-tagged node in a flow collection\n // followed without whitespace by a plain string starting with a year\n // or date divided by something.\n end = PlainValue.Node.endOfIdentifier(src, end + 5);\n }\n\n props.push(new PlainValue.Range(offset, end));\n lineHasProps = true;\n offset = PlainValue.Node.endOfWhiteSpace(src, end);\n }\n\n ch = src[offset];\n } // '- &a : b' has an anchor on an empty node\n\n\n if (lineHasProps && ch === ':' && PlainValue.Node.atBlank(src, offset + 1, true)) offset -= 1;\n const type = ParseContext.parseType(src, offset, inFlow);\n return {\n props,\n type,\n valueStart: offset\n };\n }\n /**\n * Parses a node from the source\n * @param {ParseContext} overlay\n * @param {number} start - Index of first non-whitespace character for the node\n * @returns {?Node} - null if at a document boundary\n */\n\n\n}\n\n// Published as 'yaml/parse-cst'\nfunction parse(src) {\n const cr = [];\n\n if (src.indexOf('\\r') !== -1) {\n src = src.replace(/\\r\\n?/g, (match, offset) => {\n if (match.length > 1) cr.push(offset);\n return '\\n';\n });\n }\n\n const documents = [];\n let offset = 0;\n\n do {\n const doc = new Document();\n const context = new ParseContext({\n src\n });\n offset = doc.parse(context, offset);\n documents.push(doc);\n } while (offset < src.length);\n\n documents.setOrigRanges = () => {\n if (cr.length === 0) return false;\n\n for (let i = 1; i < cr.length; ++i) cr[i] -= i;\n\n let crOffset = 0;\n\n for (let i = 0; i < documents.length; ++i) {\n crOffset = documents[i].setOrigRanges(cr, crOffset);\n }\n\n cr.splice(0, cr.length);\n return true;\n };\n\n documents.toString = () => documents.join('...\\n');\n\n return documents;\n}\n\nexports.parse = parse;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\n\nfunction addCommentBefore(str, indent, comment) {\n if (!comment) return str;\n const cc = comment.replace(/[\\s\\S]^/gm, `$&${indent}#`);\n return `#${cc}\\n${indent}${str}`;\n}\nfunction addComment(str, indent, comment) {\n return !comment ? str : comment.indexOf('\\n') === -1 ? `${str} #${comment}` : `${str}\\n` + comment.replace(/^/gm, `${indent || ''}#`);\n}\n\nclass Node {}\n\nfunction toJSON(value, arg, ctx) {\n if (Array.isArray(value)) return value.map((v, i) => toJSON(v, String(i), ctx));\n\n if (value && typeof value.toJSON === 'function') {\n const anchor = ctx && ctx.anchors && ctx.anchors.get(value);\n if (anchor) ctx.onCreate = res => {\n anchor.res = res;\n delete ctx.onCreate;\n };\n const res = value.toJSON(arg, ctx);\n if (anchor && ctx.onCreate) ctx.onCreate(res);\n return res;\n }\n\n if ((!ctx || !ctx.keep) && typeof value === 'bigint') return Number(value);\n return value;\n}\n\nclass Scalar extends Node {\n constructor(value) {\n super();\n this.value = value;\n }\n\n toJSON(arg, ctx) {\n return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx);\n }\n\n toString() {\n return String(this.value);\n }\n\n}\n\nfunction collectionFromPath(schema, path, value) {\n let v = value;\n\n for (let i = path.length - 1; i >= 0; --i) {\n const k = path[i];\n\n if (Number.isInteger(k) && k >= 0) {\n const a = [];\n a[k] = v;\n v = a;\n } else {\n const o = {};\n Object.defineProperty(o, k, {\n value: v,\n writable: true,\n enumerable: true,\n configurable: true\n });\n v = o;\n }\n }\n\n return schema.createNode(v, false);\n} // null, undefined, or an empty non-string iterable (e.g. [])\n\n\nconst isEmptyPath = path => path == null || typeof path === 'object' && path[Symbol.iterator]().next().done;\nclass Collection extends Node {\n constructor(schema) {\n super();\n\n PlainValue._defineProperty(this, \"items\", []);\n\n this.schema = schema;\n }\n\n addIn(path, value) {\n if (isEmptyPath(path)) this.add(value);else {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n\n deleteIn([key, ...rest]) {\n if (rest.length === 0) return this.delete(key);\n const node = this.get(key, true);\n if (node instanceof Collection) return node.deleteIn(rest);else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n\n getIn([key, ...rest], keepScalar) {\n const node = this.get(key, true);\n if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined;\n }\n\n hasAllNullValues() {\n return this.items.every(node => {\n if (!node || node.type !== 'PAIR') return false;\n const n = node.value;\n return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag;\n });\n }\n\n hasIn([key, ...rest]) {\n if (rest.length === 0) return this.has(key);\n const node = this.get(key, true);\n return node instanceof Collection ? node.hasIn(rest) : false;\n }\n\n setIn([key, ...rest], value) {\n if (rest.length === 0) {\n this.set(key, value);\n } else {\n const node = this.get(key, true);\n if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n } // overridden in implementations\n\n /* istanbul ignore next */\n\n\n toJSON() {\n return null;\n }\n\n toString(ctx, {\n blockItem,\n flowChars,\n isMap,\n itemIndent\n }, onComment, onChompKeep) {\n const {\n indent,\n indentStep,\n stringify\n } = ctx;\n const inFlow = this.type === PlainValue.Type.FLOW_MAP || this.type === PlainValue.Type.FLOW_SEQ || ctx.inFlow;\n if (inFlow) itemIndent += indentStep;\n const allNullValues = isMap && this.hasAllNullValues();\n ctx = Object.assign({}, ctx, {\n allNullValues,\n indent: itemIndent,\n inFlow,\n type: null\n });\n let chompKeep = false;\n let hasItemWithNewLine = false;\n const nodes = this.items.reduce((nodes, item, i) => {\n let comment;\n\n if (item) {\n if (!chompKeep && item.spaceBefore) nodes.push({\n type: 'comment',\n str: ''\n });\n if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach(line => {\n nodes.push({\n type: 'comment',\n str: `#${line}`\n });\n });\n if (item.comment) comment = item.comment;\n if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true;\n }\n\n chompKeep = false;\n let str = stringify(item, ctx, () => comment = null, () => chompKeep = true);\n if (inFlow && !hasItemWithNewLine && str.includes('\\n')) hasItemWithNewLine = true;\n if (inFlow && i < this.items.length - 1) str += ',';\n str = addComment(str, itemIndent, comment);\n if (chompKeep && (comment || inFlow)) chompKeep = false;\n nodes.push({\n type: 'item',\n str\n });\n return nodes;\n }, []);\n let str;\n\n if (nodes.length === 0) {\n str = flowChars.start + flowChars.end;\n } else if (inFlow) {\n const {\n start,\n end\n } = flowChars;\n const strings = nodes.map(n => n.str);\n\n if (hasItemWithNewLine || strings.reduce((sum, str) => sum + str.length + 2, 2) > Collection.maxFlowStringSingleLineLength) {\n str = start;\n\n for (const s of strings) {\n str += s ? `\\n${indentStep}${indent}${s}` : '\\n';\n }\n\n str += `\\n${indent}${end}`;\n } else {\n str = `${start} ${strings.join(' ')} ${end}`;\n }\n } else {\n const strings = nodes.map(blockItem);\n str = strings.shift();\n\n for (const s of strings) str += s ? `\\n${indent}${s}` : '\\n';\n }\n\n if (this.comment) {\n str += '\\n' + this.comment.replace(/^/gm, `${indent}#`);\n if (onComment) onComment();\n } else if (chompKeep && onChompKeep) onChompKeep();\n\n return str;\n }\n\n}\n\nPlainValue._defineProperty(Collection, \"maxFlowStringSingleLineLength\", 60);\n\nfunction asItemIndex(key) {\n let idx = key instanceof Scalar ? key.value : key;\n if (idx && typeof idx === 'string') idx = Number(idx);\n return Number.isInteger(idx) && idx >= 0 ? idx : null;\n}\n\nclass YAMLSeq extends Collection {\n add(value) {\n this.items.push(value);\n }\n\n delete(key) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number') return false;\n const del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n\n get(key, keepScalar) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number') return undefined;\n const it = this.items[idx];\n return !keepScalar && it instanceof Scalar ? it.value : it;\n }\n\n has(key) {\n const idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n\n set(key, value) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number') throw new Error(`Expected a valid index, not ${key}.`);\n this.items[idx] = value;\n }\n\n toJSON(_, ctx) {\n const seq = [];\n if (ctx && ctx.onCreate) ctx.onCreate(seq);\n let i = 0;\n\n for (const item of this.items) seq.push(toJSON(item, String(i++), ctx));\n\n return seq;\n }\n\n toString(ctx, onComment, onChompKeep) {\n if (!ctx) return JSON.stringify(this);\n return super.toString(ctx, {\n blockItem: n => n.type === 'comment' ? n.str : `- ${n.str}`,\n flowChars: {\n start: '[',\n end: ']'\n },\n isMap: false,\n itemIndent: (ctx.indent || '') + ' '\n }, onComment, onChompKeep);\n }\n\n}\n\nconst stringifyKey = (key, jsKey, ctx) => {\n if (jsKey === null) return '';\n if (typeof jsKey !== 'object') return String(jsKey);\n if (key instanceof Node && ctx && ctx.doc) return key.toString({\n anchors: Object.create(null),\n doc: ctx.doc,\n indent: '',\n indentStep: ctx.indentStep,\n inFlow: true,\n inStringifyKey: true,\n stringify: ctx.stringify\n });\n return JSON.stringify(jsKey);\n};\n\nclass Pair extends Node {\n constructor(key, value = null) {\n super();\n this.key = key;\n this.value = value;\n this.type = Pair.Type.PAIR;\n }\n\n get commentBefore() {\n return this.key instanceof Node ? this.key.commentBefore : undefined;\n }\n\n set commentBefore(cb) {\n if (this.key == null) this.key = new Scalar(null);\n if (this.key instanceof Node) this.key.commentBefore = cb;else {\n const msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.';\n throw new Error(msg);\n }\n }\n\n addToJSMap(ctx, map) {\n const key = toJSON(this.key, '', ctx);\n\n if (map instanceof Map) {\n const value = toJSON(this.value, key, ctx);\n map.set(key, value);\n } else if (map instanceof Set) {\n map.add(key);\n } else {\n const stringKey = stringifyKey(this.key, key, ctx);\n const value = toJSON(this.value, stringKey, ctx);\n if (stringKey in map) Object.defineProperty(map, stringKey, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });else map[stringKey] = value;\n }\n\n return map;\n }\n\n toJSON(_, ctx) {\n const pair = ctx && ctx.mapAsMap ? new Map() : {};\n return this.addToJSMap(ctx, pair);\n }\n\n toString(ctx, onComment, onChompKeep) {\n if (!ctx || !ctx.doc) return JSON.stringify(this);\n const {\n indent: indentSize,\n indentSeq,\n simpleKeys\n } = ctx.doc.options;\n let {\n key,\n value\n } = this;\n let keyComment = key instanceof Node && key.comment;\n\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n\n if (key instanceof Collection) {\n const msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n\n let explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === PlainValue.Type.BLOCK_FOLDED || key.type === PlainValue.Type.BLOCK_LITERAL : typeof key === 'object'));\n const {\n doc,\n indent,\n indentStep,\n stringify\n } = ctx;\n ctx = Object.assign({}, ctx, {\n implicitKey: !explicitKey,\n indent: indent + indentStep\n });\n let chompKeep = false;\n let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true);\n str = addComment(str, ctx.indent, keyComment);\n\n if (!explicitKey && str.length > 1024) {\n if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n\n if (ctx.allNullValues && !simpleKeys) {\n if (this.comment) {\n str = addComment(str, ctx.indent, this.comment);\n if (onComment) onComment();\n } else if (chompKeep && !keyComment && onChompKeep) onChompKeep();\n\n return ctx.inFlow && !explicitKey ? str : `? ${str}`;\n }\n\n str = explicitKey ? `? ${str}\\n${indent}:` : `${str}:`;\n\n if (this.comment) {\n // expected (but not strictly required) to be a single-line comment\n str = addComment(str, ctx.indent, this.comment);\n if (onComment) onComment();\n }\n\n let vcb = '';\n let valueComment = null;\n\n if (value instanceof Node) {\n if (value.spaceBefore) vcb = '\\n';\n\n if (value.commentBefore) {\n const cs = value.commentBefore.replace(/^/gm, `${ctx.indent}#`);\n vcb += `\\n${cs}`;\n }\n\n valueComment = value.comment;\n } else if (value && typeof value === 'object') {\n value = doc.schema.createNode(value, true);\n }\n\n ctx.implicitKey = false;\n if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n\n if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValue.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substr(2);\n }\n\n const valueStr = stringify(value, ctx, () => valueComment = null, () => chompKeep = true);\n let ws = ' ';\n\n if (vcb || this.comment) {\n ws = `${vcb}\\n${ctx.indent}`;\n } else if (!explicitKey && value instanceof Collection) {\n const flow = valueStr[0] === '[' || valueStr[0] === '{';\n if (!flow || valueStr.includes('\\n')) ws = `\\n${ctx.indent}`;\n } else if (valueStr[0] === '\\n') ws = '';\n\n if (chompKeep && !valueComment && onChompKeep) onChompKeep();\n return addComment(str + ws + valueStr, ctx.indent, valueComment);\n }\n\n}\n\nPlainValue._defineProperty(Pair, \"Type\", {\n PAIR: 'PAIR',\n MERGE_PAIR: 'MERGE_PAIR'\n});\n\nconst getAliasCount = (node, anchors) => {\n if (node instanceof Alias) {\n const anchor = anchors.get(node.source);\n return anchor.count * anchor.aliasCount;\n } else if (node instanceof Collection) {\n let count = 0;\n\n for (const item of node.items) {\n const c = getAliasCount(item, anchors);\n if (c > count) count = c;\n }\n\n return count;\n } else if (node instanceof Pair) {\n const kc = getAliasCount(node.key, anchors);\n const vc = getAliasCount(node.value, anchors);\n return Math.max(kc, vc);\n }\n\n return 1;\n};\n\nclass Alias extends Node {\n static stringify({\n range,\n source\n }, {\n anchors,\n doc,\n implicitKey,\n inStringifyKey\n }) {\n let anchor = Object.keys(anchors).find(a => anchors[a] === source);\n if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName();\n if (anchor) return `*${anchor}${implicitKey ? ' ' : ''}`;\n const msg = doc.anchors.getName(source) ? 'Alias node must be after source node' : 'Source node not found for alias node';\n throw new Error(`${msg} [${range}]`);\n }\n\n constructor(source) {\n super();\n this.source = source;\n this.type = PlainValue.Type.ALIAS;\n }\n\n set tag(t) {\n throw new Error('Alias nodes cannot have tags');\n }\n\n toJSON(arg, ctx) {\n if (!ctx) return toJSON(this.source, arg, ctx);\n const {\n anchors,\n maxAliasCount\n } = ctx;\n const anchor = anchors.get(this.source);\n /* istanbul ignore if */\n\n if (!anchor || anchor.res === undefined) {\n const msg = 'This should not happen: Alias anchor was not resolved?';\n if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);\n }\n\n if (maxAliasCount >= 0) {\n anchor.count += 1;\n if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors);\n\n if (anchor.count * anchor.aliasCount > maxAliasCount) {\n const msg = 'Excessive alias count indicates a resource exhaustion attack';\n if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);\n }\n }\n\n return anchor.res;\n } // Only called when stringifying an alias mapping key while constructing\n // Object output.\n\n\n toString(ctx) {\n return Alias.stringify(this, ctx);\n }\n\n}\n\nPlainValue._defineProperty(Alias, \"default\", true);\n\nfunction findPair(items, key) {\n const k = key instanceof Scalar ? key.value : key;\n\n for (const it of items) {\n if (it instanceof Pair) {\n if (it.key === key || it.key === k) return it;\n if (it.key && it.key.value === k) return it;\n }\n }\n\n return undefined;\n}\nclass YAMLMap extends Collection {\n add(pair, overwrite) {\n if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value);\n const prev = findPair(this.items, pair.key);\n const sortEntries = this.schema && this.schema.sortMapEntries;\n\n if (prev) {\n if (overwrite) prev.value = pair.value;else throw new Error(`Key ${pair.key} already set`);\n } else if (sortEntries) {\n const i = this.items.findIndex(item => sortEntries(pair, item) < 0);\n if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair);\n } else {\n this.items.push(pair);\n }\n }\n\n delete(key) {\n const it = findPair(this.items, key);\n if (!it) return false;\n const del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n\n get(key, keepScalar) {\n const it = findPair(this.items, key);\n const node = it && it.value;\n return !keepScalar && node instanceof Scalar ? node.value : node;\n }\n\n has(key) {\n return !!findPair(this.items, key);\n }\n\n set(key, value) {\n this.add(new Pair(key, value), true);\n }\n /**\n * @param {*} arg ignored\n * @param {*} ctx Conversion context, originally set in Document#toJSON()\n * @param {Class} Type If set, forces the returned collection type\n * @returns {*} Instance of Type, Map, or Object\n */\n\n\n toJSON(_, ctx, Type) {\n const map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {};\n if (ctx && ctx.onCreate) ctx.onCreate(map);\n\n for (const item of this.items) item.addToJSMap(ctx, map);\n\n return map;\n }\n\n toString(ctx, onComment, onChompKeep) {\n if (!ctx) return JSON.stringify(this);\n\n for (const item of this.items) {\n if (!(item instanceof Pair)) throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n }\n\n return super.toString(ctx, {\n blockItem: n => n.str,\n flowChars: {\n start: '{',\n end: '}'\n },\n isMap: true,\n itemIndent: ctx.indent || ''\n }, onComment, onChompKeep);\n }\n\n}\n\nconst MERGE_KEY = '<<';\nclass Merge extends Pair {\n constructor(pair) {\n if (pair instanceof Pair) {\n let seq = pair.value;\n\n if (!(seq instanceof YAMLSeq)) {\n seq = new YAMLSeq();\n seq.items.push(pair.value);\n seq.range = pair.value.range;\n }\n\n super(pair.key, seq);\n this.range = pair.range;\n } else {\n super(new Scalar(MERGE_KEY), new YAMLSeq());\n }\n\n this.type = Pair.Type.MERGE_PAIR;\n } // If the value associated with a merge key is a single mapping node, each of\n // its key/value pairs is inserted into the current mapping, unless the key\n // already exists in it. If the value associated with the merge key is a\n // sequence, then this sequence is expected to contain mapping nodes and each\n // of these nodes is merged in turn according to its order in the sequence.\n // Keys in mapping nodes earlier in the sequence override keys specified in\n // later mapping nodes. -- http://yaml.org/type/merge.html\n\n\n addToJSMap(ctx, map) {\n for (const {\n source\n } of this.value.items) {\n if (!(source instanceof YAMLMap)) throw new Error('Merge sources must be maps');\n const srcMap = source.toJSON(null, ctx, Map);\n\n for (const [key, value] of srcMap) {\n if (map instanceof Map) {\n if (!map.has(key)) map.set(key, value);\n } else if (map instanceof Set) {\n map.add(key);\n } else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n }\n\n return map;\n }\n\n toString(ctx, onComment) {\n const seq = this.value;\n if (seq.items.length > 1) return super.toString(ctx, onComment);\n this.value = seq.items[0];\n const str = super.toString(ctx, onComment);\n this.value = seq;\n return str;\n }\n\n}\n\nconst binaryOptions = {\n defaultType: PlainValue.Type.BLOCK_LITERAL,\n lineWidth: 76\n};\nconst boolOptions = {\n trueStr: 'true',\n falseStr: 'false'\n};\nconst intOptions = {\n asBigInt: false\n};\nconst nullOptions = {\n nullStr: 'null'\n};\nconst strOptions = {\n defaultType: PlainValue.Type.PLAIN,\n doubleQuoted: {\n jsonEncoding: false,\n minMultiLineLength: 40\n },\n fold: {\n lineWidth: 80,\n minContentWidth: 20\n }\n};\n\nfunction resolveScalar(str, tags, scalarFallback) {\n for (const {\n format,\n test,\n resolve\n } of tags) {\n if (test) {\n const match = str.match(test);\n\n if (match) {\n let res = resolve.apply(null, match);\n if (!(res instanceof Scalar)) res = new Scalar(res);\n if (format) res.format = format;\n return res;\n }\n }\n }\n\n if (scalarFallback) str = scalarFallback(str);\n return new Scalar(str);\n}\n\nconst FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line\n// returns index of last newline in more-indented block\n\nconst consumeMoreIndentedLines = (text, i) => {\n let ch = text[i + 1];\n\n while (ch === ' ' || ch === '\\t') {\n do {\n ch = text[i += 1];\n } while (ch && ch !== '\\n');\n\n ch = text[i + 1];\n }\n\n return i;\n};\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n *\n * @param {string} text\n * @param {string} indent\n * @param {string} [mode='flow'] `'block'` prevents more-indented lines\n * from being folded; `'quoted'` allows for `\\` escapes, including escaped\n * newlines\n * @param {Object} options\n * @param {number} [options.indentAtStart] Accounts for leading contents on\n * the first line, defaulting to `indent.length`\n * @param {number} [options.lineWidth=80]\n * @param {number} [options.minContentWidth=20] Allow highly indented lines to\n * stretch the line width or indent content from the start\n * @param {function} options.onFold Called once if the text is folded\n * @param {function} options.onFold Called once if any line of text exceeds\n * lineWidth characters\n */\n\n\nfunction foldFlowLines(text, indent, mode, {\n indentAtStart,\n lineWidth = 80,\n minContentWidth = 20,\n onFold,\n onOverflow\n}) {\n if (!lineWidth || lineWidth < 0) return text;\n const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep) return text;\n const folds = [];\n const escapedFolds = {};\n let end = lineWidth - indent.length;\n\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart;\n }\n\n let split = undefined;\n let prev = undefined;\n let overflow = false;\n let i = -1;\n let escStart = -1;\n let escEnd = -1;\n\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i);\n if (i !== -1) end = i + endStep;\n }\n\n for (let ch; ch = text[i += 1];) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n\n case 'u':\n i += 5;\n break;\n\n case 'U':\n i += 9;\n break;\n\n default:\n i += 1;\n }\n\n escEnd = i;\n }\n\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i);\n end = i + endStep;\n split = undefined;\n } else {\n if (ch === ' ' && prev && prev !== ' ' && prev !== '\\n' && prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n const next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t') split = i;\n }\n\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n } else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[i += 1];\n overflow = true;\n } // Account for newline escape, but don't break preceding escape\n\n\n const j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string\n\n if (escapedFolds[j]) return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n } else {\n overflow = true;\n }\n }\n }\n\n prev = ch;\n }\n\n if (overflow && onOverflow) onOverflow();\n if (folds.length === 0) return text;\n if (onFold) onFold();\n let res = text.slice(0, folds[0]);\n\n for (let i = 0; i < folds.length; ++i) {\n const fold = folds[i];\n const end = folds[i + 1] || text.length;\n if (fold === 0) res = `\\n${indent}${text.slice(0, end)}`;else {\n if (mode === FOLD_QUOTED && escapedFolds[fold]) res += `${text[fold]}\\\\`;\n res += `\\n${indent}${text.slice(fold + 1, end)}`;\n }\n }\n\n return res;\n}\n\nconst getFoldOptions = ({\n indentAtStart\n}) => indentAtStart ? Object.assign({\n indentAtStart\n}, strOptions.fold) : strOptions.fold; // Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\n\n\nconst containsDocumentMarker = str => /^(%|---|\\.\\.\\.)/m.test(str);\n\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0) return false;\n const limit = lineWidth - indentLength;\n const strLen = str.length;\n if (strLen <= limit) return false;\n\n for (let i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit) return true;\n start = i + 1;\n if (strLen - start <= limit) return false;\n }\n }\n\n return true;\n}\n\nfunction doubleQuotedString(value, ctx) {\n const {\n implicitKey\n } = ctx;\n const {\n jsonEncoding,\n minMultiLineLength\n } = strOptions.doubleQuoted;\n const json = JSON.stringify(value);\n if (jsonEncoding) return json;\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n let str = '';\n let start = 0;\n\n for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n\n if (ch === '\\\\') switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n const code = json.substr(i + 2, 4);\n\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n\n case '0007':\n str += '\\\\a';\n break;\n\n case '000b':\n str += '\\\\v';\n break;\n\n case '001b':\n str += '\\\\e';\n break;\n\n case '0085':\n str += '\\\\N';\n break;\n\n case '00a0':\n str += '\\\\_';\n break;\n\n case '2028':\n str += '\\\\L';\n break;\n\n case '2029':\n str += '\\\\P';\n break;\n\n default:\n if (code.substr(0, 2) === '00') str += '\\\\x' + code.substr(2);else str += json.substr(i, 6);\n }\n\n i += 5;\n start = i + 1;\n }\n break;\n\n case 'n':\n if (implicitKey || json[i + 2] === '\"' || json.length < minMultiLineLength) {\n i += 1;\n } else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n\n while (json[i + 2] === '\\\\' && json[i + 3] === 'n' && json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n\n str += indent; // space after newline needs to be escaped to not be folded\n\n if (json[i + 2] === ' ') str += '\\\\';\n i += 1;\n start = i + 1;\n }\n\n break;\n\n default:\n i += 1;\n }\n }\n\n str = start ? str + json.slice(start) : json;\n return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx));\n}\n\nfunction singleQuotedString(value, ctx) {\n if (ctx.implicitKey) {\n if (/\\n/.test(value)) return doubleQuotedString(value, ctx);\n } else {\n // single quoted string can't have leading or trailing whitespace around newline\n if (/[ \\t]\\n|\\n[ \\t]/.test(value)) return doubleQuotedString(value, ctx);\n }\n\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx));\n}\n\nfunction blockString({\n comment,\n type,\n value\n}, ctx, onComment, onChompKeep) {\n // 1. Block can't end in whitespace unless the last line is non-empty.\n // 2. Strings consisting of only whitespace are best rendered explicitly.\n if (/\\n[\\t ]+$/.test(value) || /^\\s*$/.test(value)) {\n return doubleQuotedString(value, ctx);\n }\n\n const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : '');\n const indentSize = indent ? '2' : '1'; // root is at -1\n\n const literal = type === PlainValue.Type.BLOCK_FOLDED ? false : type === PlainValue.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length);\n let header = literal ? '|' : '>';\n if (!value) return header + '\\n';\n let wsStart = '';\n let wsEnd = '';\n value = value.replace(/[\\n\\t ]*$/, ws => {\n const n = ws.indexOf('\\n');\n\n if (n === -1) {\n header += '-'; // strip\n } else if (value === ws || n !== ws.length - 1) {\n header += '+'; // keep\n\n if (onChompKeep) onChompKeep();\n }\n\n wsEnd = ws.replace(/\\n$/, '');\n return '';\n }).replace(/^[\\n ]*/, ws => {\n if (ws.indexOf(' ') !== -1) header += indentSize;\n const m = ws.match(/ +$/);\n\n if (m) {\n wsStart = ws.slice(0, -m[0].length);\n return m[0];\n } else {\n wsStart = ws;\n return '';\n }\n });\n if (wsEnd) wsEnd = wsEnd.replace(/\\n+(?!\\n|$)/g, `$&${indent}`);\n if (wsStart) wsStart = wsStart.replace(/\\n+/g, `$&${indent}`);\n\n if (comment) {\n header += ' #' + comment.replace(/ ?[\\r\\n]+/g, ' ');\n if (onComment) onComment();\n }\n\n if (!value) return `${header}${indentSize}\\n${indent}${wsEnd}`;\n\n if (literal) {\n value = value.replace(/\\n+/g, `$&${indent}`);\n return `${header}\\n${indent}${wsStart}${value}${wsEnd}`;\n }\n\n value = value.replace(/\\n+/g, '\\n$&').replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ ind.line ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, `$&${indent}`);\n const body = foldFlowLines(`${wsStart}${value}${wsEnd}`, indent, FOLD_BLOCK, strOptions.fold);\n return `${header}\\n${indent}${body}`;\n}\n\nfunction plainString(item, ctx, onComment, onChompKeep) {\n const {\n comment,\n type,\n value\n } = item;\n const {\n actualString,\n implicitKey,\n indent,\n inFlow\n } = ctx;\n\n if (implicitKey && /[\\n[\\]{},]/.test(value) || inFlow && /[[\\]{},]/.test(value)) {\n return doubleQuotedString(value, ctx);\n }\n\n if (!value || /^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - empty string, '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || value.indexOf('\\n') === -1 ? value.indexOf('\"') !== -1 && value.indexOf(\"'\") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep);\n }\n\n if (!implicitKey && !inFlow && type !== PlainValue.Type.PLAIN && value.indexOf('\\n') !== -1) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n\n if (indent === '' && containsDocumentMarker(value)) {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n\n const str = value.replace(/\\n+/g, `$&\\n${indent}`); // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n\n if (actualString) {\n const {\n tags\n } = ctx.doc.schema;\n const resolved = resolveScalar(str, tags, tags.scalarFallback).value;\n if (typeof resolved !== 'string') return doubleQuotedString(value, ctx);\n }\n\n const body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx));\n\n if (comment && !inFlow && (body.indexOf('\\n') !== -1 || comment.indexOf('\\n') !== -1)) {\n if (onComment) onComment();\n return addCommentBefore(body, indent, comment);\n }\n\n return body;\n}\n\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n const {\n defaultType\n } = strOptions;\n const {\n implicitKey,\n inFlow\n } = ctx;\n let {\n type,\n value\n } = item;\n\n if (typeof value !== 'string') {\n value = String(value);\n item = Object.assign({}, item, {\n value\n });\n }\n\n const _stringify = _type => {\n switch (_type) {\n case PlainValue.Type.BLOCK_FOLDED:\n case PlainValue.Type.BLOCK_LITERAL:\n return blockString(item, ctx, onComment, onChompKeep);\n\n case PlainValue.Type.QUOTE_DOUBLE:\n return doubleQuotedString(value, ctx);\n\n case PlainValue.Type.QUOTE_SINGLE:\n return singleQuotedString(value, ctx);\n\n case PlainValue.Type.PLAIN:\n return plainString(item, ctx, onComment, onChompKeep);\n\n default:\n return null;\n }\n };\n\n if (type !== PlainValue.Type.QUOTE_DOUBLE && /[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f]/.test(value)) {\n // force double quotes on control characters\n type = PlainValue.Type.QUOTE_DOUBLE;\n } else if ((implicitKey || inFlow) && (type === PlainValue.Type.BLOCK_FOLDED || type === PlainValue.Type.BLOCK_LITERAL)) {\n // should not happen; blocks are not valid inside flow containers\n type = PlainValue.Type.QUOTE_DOUBLE;\n }\n\n let res = _stringify(type);\n\n if (res === null) {\n res = _stringify(defaultType);\n if (res === null) throw new Error(`Unsupported default string type ${defaultType}`);\n }\n\n return res;\n}\n\nfunction stringifyNumber({\n format,\n minFractionDigits,\n tag,\n value\n}) {\n if (typeof value === 'bigint') return String(value);\n if (!isFinite(value)) return isNaN(value) ? '.nan' : value < 0 ? '-.inf' : '.inf';\n let n = JSON.stringify(value);\n\n if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && /^\\d/.test(n)) {\n let i = n.indexOf('.');\n\n if (i < 0) {\n i = n.length;\n n += '.';\n }\n\n let d = minFractionDigits - (n.length - i - 1);\n\n while (d-- > 0) n += '0';\n }\n\n return n;\n}\n\nfunction checkFlowCollectionEnd(errors, cst) {\n let char, name;\n\n switch (cst.type) {\n case PlainValue.Type.FLOW_MAP:\n char = '}';\n name = 'flow map';\n break;\n\n case PlainValue.Type.FLOW_SEQ:\n char = ']';\n name = 'flow sequence';\n break;\n\n default:\n errors.push(new PlainValue.YAMLSemanticError(cst, 'Not a flow collection!?'));\n return;\n }\n\n let lastItem;\n\n for (let i = cst.items.length - 1; i >= 0; --i) {\n const item = cst.items[i];\n\n if (!item || item.type !== PlainValue.Type.COMMENT) {\n lastItem = item;\n break;\n }\n }\n\n if (lastItem && lastItem.char !== char) {\n const msg = `Expected ${name} to end with ${char}`;\n let err;\n\n if (typeof lastItem.offset === 'number') {\n err = new PlainValue.YAMLSemanticError(cst, msg);\n err.offset = lastItem.offset + 1;\n } else {\n err = new PlainValue.YAMLSemanticError(lastItem, msg);\n if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start;\n }\n\n errors.push(err);\n }\n}\nfunction checkFlowCommentSpace(errors, comment) {\n const prev = comment.context.src[comment.range.start - 1];\n\n if (prev !== '\\n' && prev !== '\\t' && prev !== ' ') {\n const msg = 'Comments must be separated from other tokens by white space characters';\n errors.push(new PlainValue.YAMLSemanticError(comment, msg));\n }\n}\nfunction getLongKeyError(source, key) {\n const sk = String(key);\n const k = sk.substr(0, 8) + '...' + sk.substr(-8);\n return new PlainValue.YAMLSemanticError(source, `The \"${k}\" key is too long`);\n}\nfunction resolveComments(collection, comments) {\n for (const {\n afterKey,\n before,\n comment\n } of comments) {\n let item = collection.items[before];\n\n if (!item) {\n if (comment !== undefined) {\n if (collection.comment) collection.comment += '\\n' + comment;else collection.comment = comment;\n }\n } else {\n if (afterKey && item.value) item = item.value;\n\n if (comment === undefined) {\n if (afterKey || !item.commentBefore) item.spaceBefore = true;\n } else {\n if (item.commentBefore) item.commentBefore += '\\n' + comment;else item.commentBefore = comment;\n }\n }\n }\n}\n\n// on error, will return { str: string, errors: Error[] }\nfunction resolveString(doc, node) {\n const res = node.strValue;\n if (!res) return '';\n if (typeof res === 'string') return res;\n res.errors.forEach(error => {\n if (!error.source) error.source = node;\n doc.errors.push(error);\n });\n return res.str;\n}\n\nfunction resolveTagHandle(doc, node) {\n const {\n handle,\n suffix\n } = node.tag;\n let prefix = doc.tagPrefixes.find(p => p.handle === handle);\n\n if (!prefix) {\n const dtp = doc.getDefaults().tagPrefixes;\n if (dtp) prefix = dtp.find(p => p.handle === handle);\n if (!prefix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`);\n }\n\n if (!suffix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag has no suffix.`);\n\n if (handle === '!' && (doc.version || doc.options.version) === '1.0') {\n if (suffix[0] === '^') {\n doc.warnings.push(new PlainValue.YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported'));\n return suffix;\n }\n\n if (/[:/]/.test(suffix)) {\n // word/foo -> tag:word.yaml.org,2002:foo\n const vocab = suffix.match(/^([a-z0-9-]+)\\/(.*)/i);\n return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`;\n }\n }\n\n return prefix.prefix + decodeURIComponent(suffix);\n}\n\nfunction resolveTagName(doc, node) {\n const {\n tag,\n type\n } = node;\n let nonSpecific = false;\n\n if (tag) {\n const {\n handle,\n suffix,\n verbatim\n } = tag;\n\n if (verbatim) {\n if (verbatim !== '!' && verbatim !== '!!') return verbatim;\n const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`;\n doc.errors.push(new PlainValue.YAMLSemanticError(node, msg));\n } else if (handle === '!' && !suffix) {\n nonSpecific = true;\n } else {\n try {\n return resolveTagHandle(doc, node);\n } catch (error) {\n doc.errors.push(error);\n }\n }\n }\n\n switch (type) {\n case PlainValue.Type.BLOCK_FOLDED:\n case PlainValue.Type.BLOCK_LITERAL:\n case PlainValue.Type.QUOTE_DOUBLE:\n case PlainValue.Type.QUOTE_SINGLE:\n return PlainValue.defaultTags.STR;\n\n case PlainValue.Type.FLOW_MAP:\n case PlainValue.Type.MAP:\n return PlainValue.defaultTags.MAP;\n\n case PlainValue.Type.FLOW_SEQ:\n case PlainValue.Type.SEQ:\n return PlainValue.defaultTags.SEQ;\n\n case PlainValue.Type.PLAIN:\n return nonSpecific ? PlainValue.defaultTags.STR : null;\n\n default:\n return null;\n }\n}\n\nfunction resolveByTagName(doc, node, tagName) {\n const {\n tags\n } = doc.schema;\n const matchWithTest = [];\n\n for (const tag of tags) {\n if (tag.tag === tagName) {\n if (tag.test) matchWithTest.push(tag);else {\n const res = tag.resolve(doc, node);\n return res instanceof Collection ? res : new Scalar(res);\n }\n }\n }\n\n const str = resolveString(doc, node);\n if (typeof str === 'string' && matchWithTest.length > 0) return resolveScalar(str, matchWithTest, tags.scalarFallback);\n return null;\n}\n\nfunction getFallbackTagName({\n type\n}) {\n switch (type) {\n case PlainValue.Type.FLOW_MAP:\n case PlainValue.Type.MAP:\n return PlainValue.defaultTags.MAP;\n\n case PlainValue.Type.FLOW_SEQ:\n case PlainValue.Type.SEQ:\n return PlainValue.defaultTags.SEQ;\n\n default:\n return PlainValue.defaultTags.STR;\n }\n}\n\nfunction resolveTag(doc, node, tagName) {\n try {\n const res = resolveByTagName(doc, node, tagName);\n\n if (res) {\n if (tagName && node.tag) res.tag = tagName;\n return res;\n }\n } catch (error) {\n /* istanbul ignore if */\n if (!error.source) error.source = node;\n doc.errors.push(error);\n return null;\n }\n\n try {\n const fallback = getFallbackTagName(node);\n if (!fallback) throw new Error(`The tag ${tagName} is unavailable`);\n const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`;\n doc.warnings.push(new PlainValue.YAMLWarning(node, msg));\n const res = resolveByTagName(doc, node, fallback);\n res.tag = tagName;\n return res;\n } catch (error) {\n const refError = new PlainValue.YAMLReferenceError(node, error.message);\n refError.stack = error.stack;\n doc.errors.push(refError);\n return null;\n }\n}\n\nconst isCollectionItem = node => {\n if (!node) return false;\n const {\n type\n } = node;\n return type === PlainValue.Type.MAP_KEY || type === PlainValue.Type.MAP_VALUE || type === PlainValue.Type.SEQ_ITEM;\n};\n\nfunction resolveNodeProps(errors, node) {\n const comments = {\n before: [],\n after: []\n };\n let hasAnchor = false;\n let hasTag = false;\n const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props;\n\n for (const {\n start,\n end\n } of props) {\n switch (node.context.src[start]) {\n case PlainValue.Char.COMMENT:\n {\n if (!node.commentHasRequiredWhitespace(start)) {\n const msg = 'Comments must be separated from other tokens by white space characters';\n errors.push(new PlainValue.YAMLSemanticError(node, msg));\n }\n\n const {\n header,\n valueRange\n } = node;\n const cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before;\n cc.push(node.context.src.slice(start + 1, end));\n break;\n }\n // Actual anchor & tag resolution is handled by schema, here we just complain\n\n case PlainValue.Char.ANCHOR:\n if (hasAnchor) {\n const msg = 'A node can have at most one anchor';\n errors.push(new PlainValue.YAMLSemanticError(node, msg));\n }\n\n hasAnchor = true;\n break;\n\n case PlainValue.Char.TAG:\n if (hasTag) {\n const msg = 'A node can have at most one tag';\n errors.push(new PlainValue.YAMLSemanticError(node, msg));\n }\n\n hasTag = true;\n break;\n }\n }\n\n return {\n comments,\n hasAnchor,\n hasTag\n };\n}\n\nfunction resolveNodeValue(doc, node) {\n const {\n anchors,\n errors,\n schema\n } = doc;\n\n if (node.type === PlainValue.Type.ALIAS) {\n const name = node.rawValue;\n const src = anchors.getNode(name);\n\n if (!src) {\n const msg = `Aliased anchor not found: ${name}`;\n errors.push(new PlainValue.YAMLReferenceError(node, msg));\n return null;\n } // Lazy resolution for circular references\n\n\n const res = new Alias(src);\n\n anchors._cstAliases.push(res);\n\n return res;\n }\n\n const tagName = resolveTagName(doc, node);\n if (tagName) return resolveTag(doc, node, tagName);\n\n if (node.type !== PlainValue.Type.PLAIN) {\n const msg = `Failed to resolve ${node.type} node here`;\n errors.push(new PlainValue.YAMLSyntaxError(node, msg));\n return null;\n }\n\n try {\n const str = resolveString(doc, node);\n return resolveScalar(str, schema.tags, schema.tags.scalarFallback);\n } catch (error) {\n if (!error.source) error.source = node;\n errors.push(error);\n return null;\n }\n} // sets node.resolved on success\n\n\nfunction resolveNode(doc, node) {\n if (!node) return null;\n if (node.error) doc.errors.push(node.error);\n const {\n comments,\n hasAnchor,\n hasTag\n } = resolveNodeProps(doc.errors, node);\n\n if (hasAnchor) {\n const {\n anchors\n } = doc;\n const name = node.anchor;\n const prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor\n // name have already been resolved, so it may safely be renamed.\n\n if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as\n // anchors need to be available during resolution to allow for\n // circular references.\n\n anchors.map[name] = node;\n }\n\n if (node.type === PlainValue.Type.ALIAS && (hasAnchor || hasTag)) {\n const msg = 'An alias node must not specify any properties';\n doc.errors.push(new PlainValue.YAMLSemanticError(node, msg));\n }\n\n const res = resolveNodeValue(doc, node);\n\n if (res) {\n res.range = [node.range.start, node.range.end];\n if (doc.options.keepCstNodes) res.cstNode = node;\n if (doc.options.keepNodeTypes) res.type = node.type;\n const cb = comments.before.join('\\n');\n\n if (cb) {\n res.commentBefore = res.commentBefore ? `${res.commentBefore}\\n${cb}` : cb;\n }\n\n const ca = comments.after.join('\\n');\n if (ca) res.comment = res.comment ? `${res.comment}\\n${ca}` : ca;\n }\n\n return node.resolved = res;\n}\n\nfunction resolveMap(doc, cst) {\n if (cst.type !== PlainValue.Type.MAP && cst.type !== PlainValue.Type.FLOW_MAP) {\n const msg = `A ${cst.type} node cannot be resolved as a mapping`;\n doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg));\n return null;\n }\n\n const {\n comments,\n items\n } = cst.type === PlainValue.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst);\n const map = new YAMLMap();\n map.items = items;\n resolveComments(map, comments);\n let hasCollectionKey = false;\n\n for (let i = 0; i < items.length; ++i) {\n const {\n key: iKey\n } = items[i];\n if (iKey instanceof Collection) hasCollectionKey = true;\n\n if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) {\n items[i] = new Merge(items[i]);\n const sources = items[i].value.items;\n let error = null;\n sources.some(node => {\n if (node instanceof Alias) {\n // During parsing, alias sources are CST nodes; to account for\n // circular references their resolved values can't be used here.\n const {\n type\n } = node.source;\n if (type === PlainValue.Type.MAP || type === PlainValue.Type.FLOW_MAP) return false;\n return error = 'Merge nodes aliases can only point to maps';\n }\n\n return error = 'Merge nodes can only have Alias nodes as values';\n });\n if (error) doc.errors.push(new PlainValue.YAMLSemanticError(cst, error));\n } else {\n for (let j = i + 1; j < items.length; ++j) {\n const {\n key: jKey\n } = items[j];\n\n if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) {\n const msg = `Map keys must be unique; \"${iKey}\" is repeated`;\n doc.errors.push(new PlainValue.YAMLSemanticError(cst, msg));\n break;\n }\n }\n }\n }\n\n if (hasCollectionKey && !doc.options.mapAsMap) {\n const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';\n doc.warnings.push(new PlainValue.YAMLWarning(cst, warn));\n }\n\n cst.resolved = map;\n return map;\n}\n\nconst valueHasPairComment = ({\n context: {\n lineStart,\n node,\n src\n },\n props\n}) => {\n if (props.length === 0) return false;\n const {\n start\n } = props[0];\n if (node && start > node.valueRange.start) return false;\n if (src[start] !== PlainValue.Char.COMMENT) return false;\n\n for (let i = lineStart; i < start; ++i) if (src[i] === '\\n') return false;\n\n return true;\n};\n\nfunction resolvePairComment(item, pair) {\n if (!valueHasPairComment(item)) return;\n const comment = item.getPropValue(0, PlainValue.Char.COMMENT, true);\n let found = false;\n const cb = pair.value.commentBefore;\n\n if (cb && cb.startsWith(comment)) {\n pair.value.commentBefore = cb.substr(comment.length + 1);\n found = true;\n } else {\n const cc = pair.value.comment;\n\n if (!item.node && cc && cc.startsWith(comment)) {\n pair.value.comment = cc.substr(comment.length + 1);\n found = true;\n }\n }\n\n if (found) pair.comment = comment;\n}\n\nfunction resolveBlockMapItems(doc, cst) {\n const comments = [];\n const items = [];\n let key = undefined;\n let keyStart = null;\n\n for (let i = 0; i < cst.items.length; ++i) {\n const item = cst.items[i];\n\n switch (item.type) {\n case PlainValue.Type.BLANK_LINE:\n comments.push({\n afterKey: !!key,\n before: items.length\n });\n break;\n\n case PlainValue.Type.COMMENT:\n comments.push({\n afterKey: !!key,\n before: items.length,\n comment: item.comment\n });\n break;\n\n case PlainValue.Type.MAP_KEY:\n if (key !== undefined) items.push(new Pair(key));\n if (item.error) doc.errors.push(item.error);\n key = resolveNode(doc, item.node);\n keyStart = null;\n break;\n\n case PlainValue.Type.MAP_VALUE:\n {\n if (key === undefined) key = null;\n if (item.error) doc.errors.push(item.error);\n\n if (!item.context.atLineStart && item.node && item.node.type === PlainValue.Type.MAP && !item.node.context.atLineStart) {\n const msg = 'Nested mappings are not allowed in compact mappings';\n doc.errors.push(new PlainValue.YAMLSemanticError(item.node, msg));\n }\n\n let valueNode = item.node;\n\n if (!valueNode && item.props.length > 0) {\n // Comments on an empty mapping value need to be preserved, so we\n // need to construct a minimal empty node here to use instead of the\n // missing `item.node`. -- eemeli/yaml#19\n valueNode = new PlainValue.PlainValue(PlainValue.Type.PLAIN, []);\n valueNode.context = {\n parent: item,\n src: item.context.src\n };\n const pos = item.range.start + 1;\n valueNode.range = {\n start: pos,\n end: pos\n };\n valueNode.valueRange = {\n start: pos,\n end: pos\n };\n\n if (typeof item.range.origStart === 'number') {\n const origPos = item.range.origStart + 1;\n valueNode.range.origStart = valueNode.range.origEnd = origPos;\n valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos;\n }\n }\n\n const pair = new Pair(key, resolveNode(doc, valueNode));\n resolvePairComment(item, pair);\n items.push(pair);\n\n if (key && typeof keyStart === 'number') {\n if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));\n }\n\n key = undefined;\n keyStart = null;\n }\n break;\n\n default:\n if (key !== undefined) items.push(new Pair(key));\n key = resolveNode(doc, item);\n keyStart = item.range.start;\n if (item.error) doc.errors.push(item.error);\n\n next: for (let j = i + 1;; ++j) {\n const nextItem = cst.items[j];\n\n switch (nextItem && nextItem.type) {\n case PlainValue.Type.BLANK_LINE:\n case PlainValue.Type.COMMENT:\n continue next;\n\n case PlainValue.Type.MAP_VALUE:\n break next;\n\n default:\n {\n const msg = 'Implicit map keys need to be followed by map values';\n doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n break next;\n }\n }\n }\n\n if (item.valueRangeContainsNewline) {\n const msg = 'Implicit map keys need to be on a single line';\n doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n }\n\n }\n }\n\n if (key !== undefined) items.push(new Pair(key));\n return {\n comments,\n items\n };\n}\n\nfunction resolveFlowMapItems(doc, cst) {\n const comments = [];\n const items = [];\n let key = undefined;\n let explicitKey = false;\n let next = '{';\n\n for (let i = 0; i < cst.items.length; ++i) {\n const item = cst.items[i];\n\n if (typeof item.char === 'string') {\n const {\n char,\n offset\n } = item;\n\n if (char === '?' && key === undefined && !explicitKey) {\n explicitKey = true;\n next = ':';\n continue;\n }\n\n if (char === ':') {\n if (key === undefined) key = null;\n\n if (next === ':') {\n next = ',';\n continue;\n }\n } else {\n if (explicitKey) {\n if (key === undefined && char !== ',') key = null;\n explicitKey = false;\n }\n\n if (key !== undefined) {\n items.push(new Pair(key));\n key = undefined;\n\n if (char === ',') {\n next = ':';\n continue;\n }\n }\n }\n\n if (char === '}') {\n if (i === cst.items.length - 1) continue;\n } else if (char === next) {\n next = ':';\n continue;\n }\n\n const msg = `Flow map contains an unexpected ${char}`;\n const err = new PlainValue.YAMLSyntaxError(cst, msg);\n err.offset = offset;\n doc.errors.push(err);\n } else if (item.type === PlainValue.Type.BLANK_LINE) {\n comments.push({\n afterKey: !!key,\n before: items.length\n });\n } else if (item.type === PlainValue.Type.COMMENT) {\n checkFlowCommentSpace(doc.errors, item);\n comments.push({\n afterKey: !!key,\n before: items.length,\n comment: item.comment\n });\n } else if (key === undefined) {\n if (next === ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Separator , missing in flow map'));\n key = resolveNode(doc, item);\n } else {\n if (next !== ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Indicator : missing in flow map entry'));\n items.push(new Pair(key, resolveNode(doc, item)));\n key = undefined;\n explicitKey = false;\n }\n }\n\n checkFlowCollectionEnd(doc.errors, cst);\n if (key !== undefined) items.push(new Pair(key));\n return {\n comments,\n items\n };\n}\n\nfunction resolveSeq(doc, cst) {\n if (cst.type !== PlainValue.Type.SEQ && cst.type !== PlainValue.Type.FLOW_SEQ) {\n const msg = `A ${cst.type} node cannot be resolved as a sequence`;\n doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg));\n return null;\n }\n\n const {\n comments,\n items\n } = cst.type === PlainValue.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst);\n const seq = new YAMLSeq();\n seq.items = items;\n resolveComments(seq, comments);\n\n if (!doc.options.mapAsMap && items.some(it => it instanceof Pair && it.key instanceof Collection)) {\n const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';\n doc.warnings.push(new PlainValue.YAMLWarning(cst, warn));\n }\n\n cst.resolved = seq;\n return seq;\n}\n\nfunction resolveBlockSeqItems(doc, cst) {\n const comments = [];\n const items = [];\n\n for (let i = 0; i < cst.items.length; ++i) {\n const item = cst.items[i];\n\n switch (item.type) {\n case PlainValue.Type.BLANK_LINE:\n comments.push({\n before: items.length\n });\n break;\n\n case PlainValue.Type.COMMENT:\n comments.push({\n comment: item.comment,\n before: items.length\n });\n break;\n\n case PlainValue.Type.SEQ_ITEM:\n if (item.error) doc.errors.push(item.error);\n items.push(resolveNode(doc, item.node));\n\n if (item.hasProps) {\n const msg = 'Sequence items cannot have tags or anchors before the - indicator';\n doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n }\n\n break;\n\n default:\n if (item.error) doc.errors.push(item.error);\n doc.errors.push(new PlainValue.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`));\n }\n }\n\n return {\n comments,\n items\n };\n}\n\nfunction resolveFlowSeqItems(doc, cst) {\n const comments = [];\n const items = [];\n let explicitKey = false;\n let key = undefined;\n let keyStart = null;\n let next = '[';\n let prevItem = null;\n\n for (let i = 0; i < cst.items.length; ++i) {\n const item = cst.items[i];\n\n if (typeof item.char === 'string') {\n const {\n char,\n offset\n } = item;\n\n if (char !== ':' && (explicitKey || key !== undefined)) {\n if (explicitKey && key === undefined) key = next ? items.pop() : null;\n items.push(new Pair(key));\n explicitKey = false;\n key = undefined;\n keyStart = null;\n }\n\n if (char === next) {\n next = null;\n } else if (!next && char === '?') {\n explicitKey = true;\n } else if (next !== '[' && char === ':' && key === undefined) {\n if (next === ',') {\n key = items.pop();\n\n if (key instanceof Pair) {\n const msg = 'Chaining flow sequence pairs is invalid';\n const err = new PlainValue.YAMLSemanticError(cst, msg);\n err.offset = offset;\n doc.errors.push(err);\n }\n\n if (!explicitKey && typeof keyStart === 'number') {\n const keyEnd = item.range ? item.range.start : item.offset;\n if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key));\n const {\n src\n } = prevItem.context;\n\n for (let i = keyStart; i < keyEnd; ++i) if (src[i] === '\\n') {\n const msg = 'Implicit keys of flow sequence pairs need to be on a single line';\n doc.errors.push(new PlainValue.YAMLSemanticError(prevItem, msg));\n break;\n }\n }\n } else {\n key = null;\n }\n\n keyStart = null;\n explicitKey = false;\n next = null;\n } else if (next === '[' || char !== ']' || i < cst.items.length - 1) {\n const msg = `Flow sequence contains an unexpected ${char}`;\n const err = new PlainValue.YAMLSyntaxError(cst, msg);\n err.offset = offset;\n doc.errors.push(err);\n }\n } else if (item.type === PlainValue.Type.BLANK_LINE) {\n comments.push({\n before: items.length\n });\n } else if (item.type === PlainValue.Type.COMMENT) {\n checkFlowCommentSpace(doc.errors, item);\n comments.push({\n comment: item.comment,\n before: items.length\n });\n } else {\n if (next) {\n const msg = `Expected a ${next} in flow sequence`;\n doc.errors.push(new PlainValue.YAMLSemanticError(item, msg));\n }\n\n const value = resolveNode(doc, item);\n\n if (key === undefined) {\n items.push(value);\n prevItem = item;\n } else {\n items.push(new Pair(key, value));\n key = undefined;\n }\n\n keyStart = item.range.start;\n next = ',';\n }\n }\n\n checkFlowCollectionEnd(doc.errors, cst);\n if (key !== undefined) items.push(new Pair(key));\n return {\n comments,\n items\n };\n}\n\nexports.Alias = Alias;\nexports.Collection = Collection;\nexports.Merge = Merge;\nexports.Node = Node;\nexports.Pair = Pair;\nexports.Scalar = Scalar;\nexports.YAMLMap = YAMLMap;\nexports.YAMLSeq = YAMLSeq;\nexports.addComment = addComment;\nexports.binaryOptions = binaryOptions;\nexports.boolOptions = boolOptions;\nexports.findPair = findPair;\nexports.intOptions = intOptions;\nexports.isEmptyPath = isEmptyPath;\nexports.nullOptions = nullOptions;\nexports.resolveMap = resolveMap;\nexports.resolveNode = resolveNode;\nexports.resolveSeq = resolveSeq;\nexports.resolveString = resolveString;\nexports.strOptions = strOptions;\nexports.stringifyNumber = stringifyNumber;\nexports.stringifyString = stringifyString;\nexports.toJSON = toJSON;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\n\n/* global atob, btoa, Buffer */\nconst binary = {\n identify: value => value instanceof Uint8Array,\n // Buffer inherits from Uint8Array\n default: false,\n tag: 'tag:yaml.org,2002:binary',\n\n /**\n * Returns a Buffer in node and an Uint8Array in browsers\n *\n * To use the resulting buffer as an image, you'll want to do something like:\n *\n * const blob = new Blob([buffer], { type: 'image/jpeg' })\n * document.querySelector('#photo').src = URL.createObjectURL(blob)\n */\n resolve: (doc, node) => {\n const src = resolveSeq.resolveString(doc, node);\n\n if (typeof Buffer === 'function') {\n return Buffer.from(src, 'base64');\n } else if (typeof atob === 'function') {\n // On IE 11, atob() can't handle newlines\n const str = atob(src.replace(/[\\n\\r]/g, ''));\n const buffer = new Uint8Array(str.length);\n\n for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);\n\n return buffer;\n } else {\n const msg = 'This environment does not support reading binary tags; either Buffer or atob is required';\n doc.errors.push(new PlainValue.YAMLReferenceError(node, msg));\n return null;\n }\n },\n options: resolveSeq.binaryOptions,\n stringify: ({\n comment,\n type,\n value\n }, ctx, onComment, onChompKeep) => {\n let src;\n\n if (typeof Buffer === 'function') {\n src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');\n } else if (typeof btoa === 'function') {\n let s = '';\n\n for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);\n\n src = btoa(s);\n } else {\n throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n }\n\n if (!type) type = resolveSeq.binaryOptions.defaultType;\n\n if (type === PlainValue.Type.QUOTE_DOUBLE) {\n value = src;\n } else {\n const {\n lineWidth\n } = resolveSeq.binaryOptions;\n const n = Math.ceil(src.length / lineWidth);\n const lines = new Array(n);\n\n for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n lines[i] = src.substr(o, lineWidth);\n }\n\n value = lines.join(type === PlainValue.Type.BLOCK_LITERAL ? '\\n' : ' ');\n }\n\n return resolveSeq.stringifyString({\n comment,\n type,\n value\n }, ctx, onComment, onChompKeep);\n }\n};\n\nfunction parsePairs(doc, cst) {\n const seq = resolveSeq.resolveSeq(doc, cst);\n\n for (let i = 0; i < seq.items.length; ++i) {\n let item = seq.items[i];\n if (item instanceof resolveSeq.Pair) continue;else if (item instanceof resolveSeq.YAMLMap) {\n if (item.items.length > 1) {\n const msg = 'Each pair must have its own sequence indicator';\n throw new PlainValue.YAMLSemanticError(cst, msg);\n }\n\n const pair = item.items[0] || new resolveSeq.Pair();\n if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}\\n${pair.commentBefore}` : item.commentBefore;\n if (item.comment) pair.comment = pair.comment ? `${item.comment}\\n${pair.comment}` : item.comment;\n item = pair;\n }\n seq.items[i] = item instanceof resolveSeq.Pair ? item : new resolveSeq.Pair(item);\n }\n\n return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n const pairs = new resolveSeq.YAMLSeq(schema);\n pairs.tag = 'tag:yaml.org,2002:pairs';\n\n for (const it of iterable) {\n let key, value;\n\n if (Array.isArray(it)) {\n if (it.length === 2) {\n key = it[0];\n value = it[1];\n } else throw new TypeError(`Expected [key, value] tuple: ${it}`);\n } else if (it && it instanceof Object) {\n const keys = Object.keys(it);\n\n if (keys.length === 1) {\n key = keys[0];\n value = it[key];\n } else throw new TypeError(`Expected { key: value } tuple: ${it}`);\n } else {\n key = it;\n }\n\n const pair = schema.createPair(key, value, ctx);\n pairs.items.push(pair);\n }\n\n return pairs;\n}\nconst pairs = {\n default: false,\n tag: 'tag:yaml.org,2002:pairs',\n resolve: parsePairs,\n createNode: createPairs\n};\n\nclass YAMLOMap extends resolveSeq.YAMLSeq {\n constructor() {\n super();\n\n PlainValue._defineProperty(this, \"add\", resolveSeq.YAMLMap.prototype.add.bind(this));\n\n PlainValue._defineProperty(this, \"delete\", resolveSeq.YAMLMap.prototype.delete.bind(this));\n\n PlainValue._defineProperty(this, \"get\", resolveSeq.YAMLMap.prototype.get.bind(this));\n\n PlainValue._defineProperty(this, \"has\", resolveSeq.YAMLMap.prototype.has.bind(this));\n\n PlainValue._defineProperty(this, \"set\", resolveSeq.YAMLMap.prototype.set.bind(this));\n\n this.tag = YAMLOMap.tag;\n }\n\n toJSON(_, ctx) {\n const map = new Map();\n if (ctx && ctx.onCreate) ctx.onCreate(map);\n\n for (const pair of this.items) {\n let key, value;\n\n if (pair instanceof resolveSeq.Pair) {\n key = resolveSeq.toJSON(pair.key, '', ctx);\n value = resolveSeq.toJSON(pair.value, key, ctx);\n } else {\n key = resolveSeq.toJSON(pair, '', ctx);\n }\n\n if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys');\n map.set(key, value);\n }\n\n return map;\n }\n\n}\n\nPlainValue._defineProperty(YAMLOMap, \"tag\", 'tag:yaml.org,2002:omap');\n\nfunction parseOMap(doc, cst) {\n const pairs = parsePairs(doc, cst);\n const seenKeys = [];\n\n for (const {\n key\n } of pairs.items) {\n if (key instanceof resolveSeq.Scalar) {\n if (seenKeys.includes(key.value)) {\n const msg = 'Ordered maps must not include duplicate keys';\n throw new PlainValue.YAMLSemanticError(cst, msg);\n } else {\n seenKeys.push(key.value);\n }\n }\n }\n\n return Object.assign(new YAMLOMap(), pairs);\n}\n\nfunction createOMap(schema, iterable, ctx) {\n const pairs = createPairs(schema, iterable, ctx);\n const omap = new YAMLOMap();\n omap.items = pairs.items;\n return omap;\n}\n\nconst omap = {\n identify: value => value instanceof Map,\n nodeClass: YAMLOMap,\n default: false,\n tag: 'tag:yaml.org,2002:omap',\n resolve: parseOMap,\n createNode: createOMap\n};\n\nclass YAMLSet extends resolveSeq.YAMLMap {\n constructor() {\n super();\n this.tag = YAMLSet.tag;\n }\n\n add(key) {\n const pair = key instanceof resolveSeq.Pair ? key : new resolveSeq.Pair(key);\n const prev = resolveSeq.findPair(this.items, pair.key);\n if (!prev) this.items.push(pair);\n }\n\n get(key, keepPair) {\n const pair = resolveSeq.findPair(this.items, key);\n return !keepPair && pair instanceof resolveSeq.Pair ? pair.key instanceof resolveSeq.Scalar ? pair.key.value : pair.key : pair;\n }\n\n set(key, value) {\n if (typeof value !== 'boolean') throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n const prev = resolveSeq.findPair(this.items, key);\n\n if (prev && !value) {\n this.items.splice(this.items.indexOf(prev), 1);\n } else if (!prev && value) {\n this.items.push(new resolveSeq.Pair(key));\n }\n }\n\n toJSON(_, ctx) {\n return super.toJSON(_, ctx, Set);\n }\n\n toString(ctx, onComment, onChompKeep) {\n if (!ctx) return JSON.stringify(this);\n if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values');\n }\n\n}\n\nPlainValue._defineProperty(YAMLSet, \"tag\", 'tag:yaml.org,2002:set');\n\nfunction parseSet(doc, cst) {\n const map = resolveSeq.resolveMap(doc, cst);\n if (!map.hasAllNullValues()) throw new PlainValue.YAMLSemanticError(cst, 'Set items must all have null values');\n return Object.assign(new YAMLSet(), map);\n}\n\nfunction createSet(schema, iterable, ctx) {\n const set = new YAMLSet();\n\n for (const value of iterable) set.items.push(schema.createPair(value, null, ctx));\n\n return set;\n}\n\nconst set = {\n identify: value => value instanceof Set,\n nodeClass: YAMLSet,\n default: false,\n tag: 'tag:yaml.org,2002:set',\n resolve: parseSet,\n createNode: createSet\n};\n\nconst parseSexagesimal = (sign, parts) => {\n const n = parts.split(':').reduce((n, p) => n * 60 + Number(p), 0);\n return sign === '-' ? -n : n;\n}; // hhhh:mm:ss.sss\n\n\nconst stringifySexagesimal = ({\n value\n}) => {\n if (isNaN(value) || !isFinite(value)) return resolveSeq.stringifyNumber(value);\n let sign = '';\n\n if (value < 0) {\n sign = '-';\n value = Math.abs(value);\n }\n\n const parts = [value % 60]; // seconds, including ms\n\n if (value < 60) {\n parts.unshift(0); // at least one : is required\n } else {\n value = Math.round((value - parts[0]) / 60);\n parts.unshift(value % 60); // minutes\n\n if (value >= 60) {\n value = Math.round((value - parts[0]) / 60);\n parts.unshift(value); // hours\n }\n }\n\n return sign + parts.map(n => n < 10 ? '0' + String(n) : String(n)).join(':').replace(/000000\\d*$/, '') // % 60 may introduce error\n ;\n};\n\nconst intTime = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'TIME',\n test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,\n resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')),\n stringify: stringifySexagesimal\n};\nconst floatTime = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'TIME',\n test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*)$/,\n resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')),\n stringify: stringifySexagesimal\n};\nconst timestamp = {\n identify: value => value instanceof Date,\n default: true,\n tag: 'tag:yaml.org,2002:timestamp',\n // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n // may be omitted altogether, resulting in a date format. In such a case, the time part is\n // assumed to be 00:00:00Z (start of day, UTC).\n test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n '(?:(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n ')?' + ')$'),\n resolve: (str, year, month, day, hour, minute, second, millisec, tz) => {\n if (millisec) millisec = (millisec + '00').substr(1, 3);\n let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0);\n\n if (tz && tz !== 'Z') {\n let d = parseSexagesimal(tz[0], tz.slice(1));\n if (Math.abs(d) < 30) d *= 60;\n date -= 60000 * d;\n }\n\n return new Date(date);\n },\n stringify: ({\n value\n }) => value.toISOString().replace(/((T00:00)?:00)?\\.000Z$/, '')\n};\n\n/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */\nfunction shouldWarn(deprecation) {\n const env = typeof process !== 'undefined' && process.env || {};\n\n if (deprecation) {\n if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS;\n return !env.YAML_SILENCE_DEPRECATION_WARNINGS;\n }\n\n if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS;\n return !env.YAML_SILENCE_WARNINGS;\n}\n\nfunction warn(warning, type) {\n if (shouldWarn(false)) {\n const emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to\n // https://github.com/facebook/jest/issues/2549\n\n if (emit) emit(warning, type);else {\n // eslint-disable-next-line no-console\n console.warn(type ? `${type}: ${warning}` : warning);\n }\n }\n}\nfunction warnFileDeprecation(filename) {\n if (shouldWarn(true)) {\n const path = filename.replace(/.*yaml[/\\\\]/i, '').replace(/\\.js$/, '').replace(/\\\\/g, '/');\n warn(`The endpoint 'yaml/${path}' will be removed in a future release.`, 'DeprecationWarning');\n }\n}\nconst warned = {};\nfunction warnOptionDeprecation(name, alternative) {\n if (!warned[name] && shouldWarn(true)) {\n warned[name] = true;\n let msg = `The option '${name}' will be removed in a future release`;\n msg += alternative ? `, use '${alternative}' instead.` : '.';\n warn(msg, 'DeprecationWarning');\n }\n}\n\nexports.binary = binary;\nexports.floatTime = floatTime;\nexports.intTime = intTime;\nexports.omap = omap;\nexports.pairs = pairs;\nexports.set = set;\nexports.timestamp = timestamp;\nexports.warn = warn;\nexports.warnFileDeprecation = warnFileDeprecation;\nexports.warnOptionDeprecation = warnOptionDeprecation;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\nvar warnings = require('./warnings-1000a372.js');\n\nfunction createMap(schema, obj, ctx) {\n const map = new resolveSeq.YAMLMap(schema);\n\n if (obj instanceof Map) {\n for (const [key, value] of obj) map.items.push(schema.createPair(key, value, ctx));\n } else if (obj && typeof obj === 'object') {\n for (const key of Object.keys(obj)) map.items.push(schema.createPair(key, obj[key], ctx));\n }\n\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n\n return map;\n}\n\nconst map = {\n createNode: createMap,\n default: true,\n nodeClass: resolveSeq.YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve: resolveSeq.resolveMap\n};\n\nfunction createSeq(schema, obj, ctx) {\n const seq = new resolveSeq.YAMLSeq(schema);\n\n if (obj && obj[Symbol.iterator]) {\n for (const it of obj) {\n const v = schema.createNode(it, ctx.wrapScalars, null, ctx);\n seq.items.push(v);\n }\n }\n\n return seq;\n}\n\nconst seq = {\n createNode: createSeq,\n default: true,\n nodeClass: resolveSeq.YAMLSeq,\n tag: 'tag:yaml.org,2002:seq',\n resolve: resolveSeq.resolveSeq\n};\n\nconst string = {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: resolveSeq.resolveString,\n\n stringify(item, ctx, onComment, onChompKeep) {\n ctx = Object.assign({\n actualString: true\n }, ctx);\n return resolveSeq.stringifyString(item, ctx, onComment, onChompKeep);\n },\n\n options: resolveSeq.strOptions\n};\n\nconst failsafe = [map, seq, string];\n\n/* global BigInt */\n\nconst intIdentify$2 = value => typeof value === 'bigint' || Number.isInteger(value);\n\nconst intResolve$1 = (src, part, radix) => resolveSeq.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);\n\nfunction intStringify$1(node, radix, prefix) {\n const {\n value\n } = node;\n if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix);\n return resolveSeq.stringifyNumber(node);\n}\n\nconst nullObj = {\n identify: value => value == null,\n createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: () => null,\n options: resolveSeq.nullOptions,\n stringify: () => resolveSeq.nullOptions.nullStr\n};\nconst boolObj = {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n resolve: str => str[0] === 't' || str[0] === 'T',\n options: resolveSeq.boolOptions,\n stringify: ({\n value\n }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr\n};\nconst octObj = {\n identify: value => intIdentify$2(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^0o([0-7]+)$/,\n resolve: (str, oct) => intResolve$1(str, oct, 8),\n options: resolveSeq.intOptions,\n stringify: node => intStringify$1(node, 8, '0o')\n};\nconst intObj = {\n identify: intIdentify$2,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9]+$/,\n resolve: str => intResolve$1(str, str, 10),\n options: resolveSeq.intOptions,\n stringify: resolveSeq.stringifyNumber\n};\nconst hexObj = {\n identify: value => intIdentify$2(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^0x([0-9a-fA-F]+)$/,\n resolve: (str, hex) => intResolve$1(str, hex, 16),\n options: resolveSeq.intOptions,\n stringify: node => intStringify$1(node, 16, '0x')\n};\nconst nanObj = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.inf|(\\.nan))$/i,\n resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,\n stringify: resolveSeq.stringifyNumber\n};\nconst expObj = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n resolve: str => parseFloat(str),\n stringify: ({\n value\n }) => Number(value).toExponential()\n};\nconst floatObj = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:\\.([0-9]+)|[0-9]+\\.([0-9]*))$/,\n\n resolve(str, frac1, frac2) {\n const frac = frac1 || frac2;\n const node = new resolveSeq.Scalar(parseFloat(str));\n if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;\n return node;\n },\n\n stringify: resolveSeq.stringifyNumber\n};\nconst core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);\n\n/* global BigInt */\n\nconst intIdentify$1 = value => typeof value === 'bigint' || Number.isInteger(value);\n\nconst stringifyJSON = ({\n value\n}) => JSON.stringify(value);\n\nconst json = [map, seq, {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: resolveSeq.resolveString,\n stringify: stringifyJSON\n}, {\n identify: value => value == null,\n createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^null$/,\n resolve: () => null,\n stringify: stringifyJSON\n}, {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^true|false$/,\n resolve: str => str === 'true',\n stringify: stringifyJSON\n}, {\n identify: intIdentify$1,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^-?(?:0|[1-9][0-9]*)$/,\n resolve: str => resolveSeq.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),\n stringify: ({\n value\n }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value)\n}, {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n resolve: str => parseFloat(str),\n stringify: stringifyJSON\n}];\n\njson.scalarFallback = str => {\n throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n};\n\n/* global BigInt */\n\nconst boolStringify = ({\n value\n}) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr;\n\nconst intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);\n\nfunction intResolve(sign, src, radix) {\n let str = src.replace(/_/g, '');\n\n if (resolveSeq.intOptions.asBigInt) {\n switch (radix) {\n case 2:\n str = `0b${str}`;\n break;\n\n case 8:\n str = `0o${str}`;\n break;\n\n case 16:\n str = `0x${str}`;\n break;\n }\n\n const n = BigInt(str);\n return sign === '-' ? BigInt(-1) * n : n;\n }\n\n const n = parseInt(str, radix);\n return sign === '-' ? -1 * n : n;\n}\n\nfunction intStringify(node, radix, prefix) {\n const {\n value\n } = node;\n\n if (intIdentify(value)) {\n const str = value.toString(radix);\n return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n }\n\n return resolveSeq.stringifyNumber(node);\n}\n\nconst yaml11 = failsafe.concat([{\n identify: value => value == null,\n createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: () => null,\n options: resolveSeq.nullOptions,\n stringify: () => resolveSeq.nullOptions.nullStr\n}, {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n resolve: () => true,\n options: resolveSeq.boolOptions,\n stringify: boolStringify\n}, {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,\n resolve: () => false,\n options: resolveSeq.boolOptions,\n stringify: boolStringify\n}, {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'BIN',\n test: /^([-+]?)0b([0-1_]+)$/,\n resolve: (str, sign, bin) => intResolve(sign, bin, 2),\n stringify: node => intStringify(node, 2, '0b')\n}, {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^([-+]?)0([0-7_]+)$/,\n resolve: (str, sign, oct) => intResolve(sign, oct, 8),\n stringify: node => intStringify(node, 8, '0')\n}, {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^([-+]?)([0-9][0-9_]*)$/,\n resolve: (str, sign, abs) => intResolve(sign, abs, 10),\n stringify: resolveSeq.stringifyNumber\n}, {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^([-+]?)0x([0-9a-fA-F_]+)$/,\n resolve: (str, sign, hex) => intResolve(sign, hex, 16),\n stringify: node => intStringify(node, 16, '0x')\n}, {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.inf|(\\.nan))$/i,\n resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,\n stringify: resolveSeq.stringifyNumber\n}, {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?([0-9][0-9_]*)?(\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n resolve: str => parseFloat(str.replace(/_/g, '')),\n stringify: ({\n value\n }) => Number(value).toExponential()\n}, {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:[0-9][0-9_]*)?\\.([0-9_]*)$/,\n\n resolve(str, frac) {\n const node = new resolveSeq.Scalar(parseFloat(str.replace(/_/g, '')));\n\n if (frac) {\n const f = frac.replace(/_/g, '');\n if (f[f.length - 1] === '0') node.minFractionDigits = f.length;\n }\n\n return node;\n },\n\n stringify: resolveSeq.stringifyNumber\n}], warnings.binary, warnings.omap, warnings.pairs, warnings.set, warnings.intTime, warnings.floatTime, warnings.timestamp);\n\nconst schemas = {\n core,\n failsafe,\n json,\n yaml11\n};\nconst tags = {\n binary: warnings.binary,\n bool: boolObj,\n float: floatObj,\n floatExp: expObj,\n floatNaN: nanObj,\n floatTime: warnings.floatTime,\n int: intObj,\n intHex: hexObj,\n intOct: octObj,\n intTime: warnings.intTime,\n map,\n null: nullObj,\n omap: warnings.omap,\n pairs: warnings.pairs,\n seq,\n set: warnings.set,\n timestamp: warnings.timestamp\n};\n\nfunction findTagObject(value, tagName, tags) {\n if (tagName) {\n const match = tags.filter(t => t.tag === tagName);\n const tagObj = match.find(t => !t.format) || match[0];\n if (!tagObj) throw new Error(`Tag ${tagName} not found`);\n return tagObj;\n } // TODO: deprecate/remove class check\n\n\n return tags.find(t => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format);\n}\n\nfunction createNode(value, tagName, ctx) {\n if (value instanceof resolveSeq.Node) return value;\n const {\n defaultPrefix,\n onTagObj,\n prevObjects,\n schema,\n wrapScalars\n } = ctx;\n if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2);\n let tagObj = findTagObject(value, tagName, schema.tags);\n\n if (!tagObj) {\n if (typeof value.toJSON === 'function') value = value.toJSON();\n if (!value || typeof value !== 'object') return wrapScalars ? new resolveSeq.Scalar(value) : value;\n tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;\n }\n\n if (onTagObj) {\n onTagObj(tagObj);\n delete ctx.onTagObj;\n } // Detect duplicate references to the same object & use Alias nodes for all\n // after first. The `obj` wrapper allows for circular references to resolve.\n\n\n const obj = {\n value: undefined,\n node: undefined\n };\n\n if (value && typeof value === 'object' && prevObjects) {\n const prev = prevObjects.get(value);\n\n if (prev) {\n const alias = new resolveSeq.Alias(prev); // leaves source dirty; must be cleaned by caller\n\n ctx.aliasNodes.push(alias); // defined along with prevObjects\n\n return alias;\n }\n\n obj.value = value;\n prevObjects.set(value, obj);\n }\n\n obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq.Scalar(value) : value;\n if (tagName && obj.node instanceof resolveSeq.Node) obj.node.tag = tagName;\n return obj.node;\n}\n\nfunction getSchemaTags(schemas, knownTags, customTags, schemaId) {\n let tags = schemas[schemaId.replace(/\\W/g, '')]; // 'yaml-1.1' -> 'yaml11'\n\n if (!tags) {\n const keys = Object.keys(schemas).map(key => JSON.stringify(key)).join(', ');\n throw new Error(`Unknown schema \"${schemaId}\"; use one of ${keys}`);\n }\n\n if (Array.isArray(customTags)) {\n for (const tag of customTags) tags = tags.concat(tag);\n } else if (typeof customTags === 'function') {\n tags = customTags(tags.slice());\n }\n\n for (let i = 0; i < tags.length; ++i) {\n const tag = tags[i];\n\n if (typeof tag === 'string') {\n const tagObj = knownTags[tag];\n\n if (!tagObj) {\n const keys = Object.keys(knownTags).map(key => JSON.stringify(key)).join(', ');\n throw new Error(`Unknown custom tag \"${tag}\"; use one of ${keys}`);\n }\n\n tags[i] = tagObj;\n }\n }\n\n return tags;\n}\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\n\nclass Schema {\n // TODO: remove in v2\n // TODO: remove in v2\n constructor({\n customTags,\n merge,\n schema,\n sortMapEntries,\n tags: deprecatedCustomTags\n }) {\n this.merge = !!merge;\n this.name = schema;\n this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;\n if (!customTags && deprecatedCustomTags) warnings.warnOptionDeprecation('tags', 'customTags');\n this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema);\n }\n\n createNode(value, wrapScalars, tagName, ctx) {\n const baseCtx = {\n defaultPrefix: Schema.defaultPrefix,\n schema: this,\n wrapScalars\n };\n const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx;\n return createNode(value, tagName, createCtx);\n }\n\n createPair(key, value, ctx) {\n if (!ctx) ctx = {\n wrapScalars: true\n };\n const k = this.createNode(key, ctx.wrapScalars, null, ctx);\n const v = this.createNode(value, ctx.wrapScalars, null, ctx);\n return new resolveSeq.Pair(k, v);\n }\n\n}\n\nPlainValue._defineProperty(Schema, \"defaultPrefix\", PlainValue.defaultTagPrefix);\n\nPlainValue._defineProperty(Schema, \"defaultTags\", PlainValue.defaultTags);\n\nexports.Schema = Schema;\n","'use strict';\n\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar resolveSeq = require('./resolveSeq-d03cb037.js');\nvar Schema = require('./Schema-88e323a7.js');\n\nconst defaultOptions = {\n anchorPrefix: 'a',\n customTags: null,\n indent: 2,\n indentSeq: true,\n keepCstNodes: false,\n keepNodeTypes: true,\n keepBlobsInJSON: true,\n mapAsMap: false,\n maxAliasCount: 100,\n prettyErrors: false,\n // TODO Set true in v2\n simpleKeys: false,\n version: '1.2'\n};\nconst scalarOptions = {\n get binary() {\n return resolveSeq.binaryOptions;\n },\n\n set binary(opt) {\n Object.assign(resolveSeq.binaryOptions, opt);\n },\n\n get bool() {\n return resolveSeq.boolOptions;\n },\n\n set bool(opt) {\n Object.assign(resolveSeq.boolOptions, opt);\n },\n\n get int() {\n return resolveSeq.intOptions;\n },\n\n set int(opt) {\n Object.assign(resolveSeq.intOptions, opt);\n },\n\n get null() {\n return resolveSeq.nullOptions;\n },\n\n set null(opt) {\n Object.assign(resolveSeq.nullOptions, opt);\n },\n\n get str() {\n return resolveSeq.strOptions;\n },\n\n set str(opt) {\n Object.assign(resolveSeq.strOptions, opt);\n }\n\n};\nconst documentOptions = {\n '1.0': {\n schema: 'yaml-1.1',\n merge: true,\n tagPrefixes: [{\n handle: '!',\n prefix: PlainValue.defaultTagPrefix\n }, {\n handle: '!!',\n prefix: 'tag:private.yaml.org,2002:'\n }]\n },\n 1.1: {\n schema: 'yaml-1.1',\n merge: true,\n tagPrefixes: [{\n handle: '!',\n prefix: '!'\n }, {\n handle: '!!',\n prefix: PlainValue.defaultTagPrefix\n }]\n },\n 1.2: {\n schema: 'core',\n merge: false,\n tagPrefixes: [{\n handle: '!',\n prefix: '!'\n }, {\n handle: '!!',\n prefix: PlainValue.defaultTagPrefix\n }]\n }\n};\n\nfunction stringifyTag(doc, tag) {\n if ((doc.version || doc.options.version) === '1.0') {\n const priv = tag.match(/^tag:private\\.yaml\\.org,2002:([^:/]+)$/);\n if (priv) return '!' + priv[1];\n const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\\.yaml\\.org,2002:(.*)/);\n return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, '')}`;\n }\n\n let p = doc.tagPrefixes.find(p => tag.indexOf(p.prefix) === 0);\n\n if (!p) {\n const dtp = doc.getDefaults().tagPrefixes;\n p = dtp && dtp.find(p => tag.indexOf(p.prefix) === 0);\n }\n\n if (!p) return tag[0] === '!' ? tag : `!<${tag}>`;\n const suffix = tag.substr(p.prefix.length).replace(/[!,[\\]{}]/g, ch => ({\n '!': '%21',\n ',': '%2C',\n '[': '%5B',\n ']': '%5D',\n '{': '%7B',\n '}': '%7D'\n })[ch]);\n return p.handle + suffix;\n}\n\nfunction getTagObject(tags, item) {\n if (item instanceof resolveSeq.Alias) return resolveSeq.Alias;\n\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0) return match.find(t => t.format === item.format) || match[0];\n }\n\n let tagObj, obj;\n\n if (item instanceof resolveSeq.Scalar) {\n obj = item.value; // TODO: deprecate/remove class check\n\n const match = tags.filter(t => t.identify && t.identify(obj) || t.class && obj instanceof t.class);\n tagObj = match.find(t => t.format === item.format) || match.find(t => !t.format);\n } else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n\n if (!tagObj) {\n const name = obj && obj.constructor ? obj.constructor.name : typeof obj;\n throw new Error(`Tag not resolved for ${name} value`);\n }\n\n return tagObj;\n} // needs to be called before value stringifier to allow for circular anchor refs\n\n\nfunction stringifyProps(node, tagObj, {\n anchors,\n doc\n}) {\n const props = [];\n const anchor = doc.anchors.getName(node);\n\n if (anchor) {\n anchors[anchor] = node;\n props.push(`&${anchor}`);\n }\n\n if (node.tag) {\n props.push(stringifyTag(doc, node.tag));\n } else if (!tagObj.default) {\n props.push(stringifyTag(doc, tagObj.tag));\n }\n\n return props.join(' ');\n}\n\nfunction stringify(item, ctx, onComment, onChompKeep) {\n const {\n anchors,\n schema\n } = ctx.doc;\n let tagObj;\n\n if (!(item instanceof resolveSeq.Node)) {\n const createCtx = {\n aliasNodes: [],\n onTagObj: o => tagObj = o,\n prevObjects: new Map()\n };\n item = schema.createNode(item, true, null, createCtx);\n\n for (const alias of createCtx.aliasNodes) {\n alias.source = alias.source.node;\n let name = anchors.getName(alias.source);\n\n if (!name) {\n name = anchors.newName();\n anchors.map[name] = alias.source;\n }\n }\n }\n\n if (item instanceof resolveSeq.Pair) return item.toString(ctx, onComment, onChompKeep);\n if (!tagObj) tagObj = getTagObject(schema.tags, item);\n const props = stringifyProps(item, tagObj, ctx);\n if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);\n if (!props) return str;\n return item instanceof resolveSeq.Scalar || str[0] === '{' || str[0] === '[' ? `${props} ${str}` : `${props}\\n${ctx.indent}${str}`;\n}\n\nclass Anchors {\n static validAnchorNode(node) {\n return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap;\n }\n\n constructor(prefix) {\n PlainValue._defineProperty(this, \"map\", Object.create(null));\n\n this.prefix = prefix;\n }\n\n createAlias(node, name) {\n this.setAnchor(node, name);\n return new resolveSeq.Alias(node);\n }\n\n createMergePair(...sources) {\n const merge = new resolveSeq.Merge();\n merge.value.items = sources.map(s => {\n if (s instanceof resolveSeq.Alias) {\n if (s.source instanceof resolveSeq.YAMLMap) return s;\n } else if (s instanceof resolveSeq.YAMLMap) {\n return this.createAlias(s);\n }\n\n throw new Error('Merge sources must be Map nodes or their Aliases');\n });\n return merge;\n }\n\n getName(node) {\n const {\n map\n } = this;\n return Object.keys(map).find(a => map[a] === node);\n }\n\n getNames() {\n return Object.keys(this.map);\n }\n\n getNode(name) {\n return this.map[name];\n }\n\n newName(prefix) {\n if (!prefix) prefix = this.prefix;\n const names = Object.keys(this.map);\n\n for (let i = 1; true; ++i) {\n const name = `${prefix}${i}`;\n if (!names.includes(name)) return name;\n }\n } // During parsing, map & aliases contain CST nodes\n\n\n resolveNodes() {\n const {\n map,\n _cstAliases\n } = this;\n Object.keys(map).forEach(a => {\n map[a] = map[a].resolved;\n });\n\n _cstAliases.forEach(a => {\n a.source = a.source.resolved;\n });\n\n delete this._cstAliases;\n }\n\n setAnchor(node, name) {\n if (node != null && !Anchors.validAnchorNode(node)) {\n throw new Error('Anchors may only be set for Scalar, Seq and Map nodes');\n }\n\n if (name && /[\\x00-\\x19\\s,[\\]{}]/.test(name)) {\n throw new Error('Anchor names must not contain whitespace or control characters');\n }\n\n const {\n map\n } = this;\n const prev = node && Object.keys(map).find(a => map[a] === node);\n\n if (prev) {\n if (!name) {\n return prev;\n } else if (prev !== name) {\n delete map[prev];\n map[name] = node;\n }\n } else {\n if (!name) {\n if (!node) return null;\n name = this.newName();\n }\n\n map[name] = node;\n }\n\n return name;\n }\n\n}\n\nconst visit = (node, tags) => {\n if (node && typeof node === 'object') {\n const {\n tag\n } = node;\n\n if (node instanceof resolveSeq.Collection) {\n if (tag) tags[tag] = true;\n node.items.forEach(n => visit(n, tags));\n } else if (node instanceof resolveSeq.Pair) {\n visit(node.key, tags);\n visit(node.value, tags);\n } else if (node instanceof resolveSeq.Scalar) {\n if (tag) tags[tag] = true;\n }\n }\n\n return tags;\n};\n\nconst listTagNames = node => Object.keys(visit(node, {}));\n\nfunction parseContents(doc, contents) {\n const comments = {\n before: [],\n after: []\n };\n let body = undefined;\n let spaceBefore = false;\n\n for (const node of contents) {\n if (node.valueRange) {\n if (body !== undefined) {\n const msg = 'Document contains trailing content not separated by a ... or --- line';\n doc.errors.push(new PlainValue.YAMLSyntaxError(node, msg));\n break;\n }\n\n const res = resolveSeq.resolveNode(doc, node);\n\n if (spaceBefore) {\n res.spaceBefore = true;\n spaceBefore = false;\n }\n\n body = res;\n } else if (node.comment !== null) {\n const cc = body === undefined ? comments.before : comments.after;\n cc.push(node.comment);\n } else if (node.type === PlainValue.Type.BLANK_LINE) {\n spaceBefore = true;\n\n if (body === undefined && comments.before.length > 0 && !doc.commentBefore) {\n // space-separated comments at start are parsed as document comments\n doc.commentBefore = comments.before.join('\\n');\n comments.before = [];\n }\n }\n }\n\n doc.contents = body || null;\n\n if (!body) {\n doc.comment = comments.before.concat(comments.after).join('\\n') || null;\n } else {\n const cb = comments.before.join('\\n');\n\n if (cb) {\n const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body;\n cbNode.commentBefore = cbNode.commentBefore ? `${cb}\\n${cbNode.commentBefore}` : cb;\n }\n\n doc.comment = comments.after.join('\\n') || null;\n }\n}\n\nfunction resolveTagDirective({\n tagPrefixes\n}, directive) {\n const [handle, prefix] = directive.parameters;\n\n if (!handle || !prefix) {\n const msg = 'Insufficient parameters given for %TAG directive';\n throw new PlainValue.YAMLSemanticError(directive, msg);\n }\n\n if (tagPrefixes.some(p => p.handle === handle)) {\n const msg = 'The %TAG directive must only be given at most once per handle in the same document.';\n throw new PlainValue.YAMLSemanticError(directive, msg);\n }\n\n return {\n handle,\n prefix\n };\n}\n\nfunction resolveYamlDirective(doc, directive) {\n let [version] = directive.parameters;\n if (directive.name === 'YAML:1.0') version = '1.0';\n\n if (!version) {\n const msg = 'Insufficient parameters given for %YAML directive';\n throw new PlainValue.YAMLSemanticError(directive, msg);\n }\n\n if (!documentOptions[version]) {\n const v0 = doc.version || doc.options.version;\n const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`;\n doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));\n }\n\n return version;\n}\n\nfunction parseDirectives(doc, directives, prevDoc) {\n const directiveComments = [];\n let hasDirectives = false;\n\n for (const directive of directives) {\n const {\n comment,\n name\n } = directive;\n\n switch (name) {\n case 'TAG':\n try {\n doc.tagPrefixes.push(resolveTagDirective(doc, directive));\n } catch (error) {\n doc.errors.push(error);\n }\n\n hasDirectives = true;\n break;\n\n case 'YAML':\n case 'YAML:1.0':\n if (doc.version) {\n const msg = 'The %YAML directive must only be given at most once per document.';\n doc.errors.push(new PlainValue.YAMLSemanticError(directive, msg));\n }\n\n try {\n doc.version = resolveYamlDirective(doc, directive);\n } catch (error) {\n doc.errors.push(error);\n }\n\n hasDirectives = true;\n break;\n\n default:\n if (name) {\n const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`;\n doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));\n }\n\n }\n\n if (comment) directiveComments.push(comment);\n }\n\n if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) {\n const copyTagPrefix = ({\n handle,\n prefix\n }) => ({\n handle,\n prefix\n });\n\n doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);\n doc.version = prevDoc.version;\n }\n\n doc.commentBefore = directiveComments.join('\\n') || null;\n}\n\nfunction assertCollection(contents) {\n if (contents instanceof resolveSeq.Collection) return true;\n throw new Error('Expected a YAML collection as document contents');\n}\n\nclass Document {\n constructor(options) {\n this.anchors = new Anchors(options.anchorPrefix);\n this.commentBefore = null;\n this.comment = null;\n this.contents = null;\n this.directivesEndMarker = null;\n this.errors = [];\n this.options = options;\n this.schema = null;\n this.tagPrefixes = [];\n this.version = null;\n this.warnings = [];\n }\n\n add(value) {\n assertCollection(this.contents);\n return this.contents.add(value);\n }\n\n addIn(path, value) {\n assertCollection(this.contents);\n this.contents.addIn(path, value);\n }\n\n delete(key) {\n assertCollection(this.contents);\n return this.contents.delete(key);\n }\n\n deleteIn(path) {\n if (resolveSeq.isEmptyPath(path)) {\n if (this.contents == null) return false;\n this.contents = null;\n return true;\n }\n\n assertCollection(this.contents);\n return this.contents.deleteIn(path);\n }\n\n getDefaults() {\n return Document.defaults[this.version] || Document.defaults[this.options.version] || {};\n }\n\n get(key, keepScalar) {\n return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : undefined;\n }\n\n getIn(path, keepScalar) {\n if (resolveSeq.isEmptyPath(path)) return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents;\n return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : undefined;\n }\n\n has(key) {\n return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false;\n }\n\n hasIn(path) {\n if (resolveSeq.isEmptyPath(path)) return this.contents !== undefined;\n return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false;\n }\n\n set(key, value) {\n assertCollection(this.contents);\n this.contents.set(key, value);\n }\n\n setIn(path, value) {\n if (resolveSeq.isEmptyPath(path)) this.contents = value;else {\n assertCollection(this.contents);\n this.contents.setIn(path, value);\n }\n }\n\n setSchema(id, customTags) {\n if (!id && !customTags && this.schema) return;\n if (typeof id === 'number') id = id.toFixed(1);\n\n if (id === '1.0' || id === '1.1' || id === '1.2') {\n if (this.version) this.version = id;else this.options.version = id;\n delete this.options.schema;\n } else if (id && typeof id === 'string') {\n this.options.schema = id;\n }\n\n if (Array.isArray(customTags)) this.options.customTags = customTags;\n const opt = Object.assign({}, this.getDefaults(), this.options);\n this.schema = new Schema.Schema(opt);\n }\n\n parse(node, prevDoc) {\n if (this.options.keepCstNodes) this.cstNode = node;\n if (this.options.keepNodeTypes) this.type = 'DOCUMENT';\n const {\n directives = [],\n contents = [],\n directivesEndMarker,\n error,\n valueRange\n } = node;\n\n if (error) {\n if (!error.source) error.source = this;\n this.errors.push(error);\n }\n\n parseDirectives(this, directives, prevDoc);\n if (directivesEndMarker) this.directivesEndMarker = true;\n this.range = valueRange ? [valueRange.start, valueRange.end] : null;\n this.setSchema();\n this.anchors._cstAliases = [];\n parseContents(this, contents);\n this.anchors.resolveNodes();\n\n if (this.options.prettyErrors) {\n for (const error of this.errors) if (error instanceof PlainValue.YAMLError) error.makePretty();\n\n for (const warn of this.warnings) if (warn instanceof PlainValue.YAMLError) warn.makePretty();\n }\n\n return this;\n }\n\n listNonDefaultTags() {\n return listTagNames(this.contents).filter(t => t.indexOf(Schema.Schema.defaultPrefix) !== 0);\n }\n\n setTagPrefix(handle, prefix) {\n if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !');\n\n if (prefix) {\n const prev = this.tagPrefixes.find(p => p.handle === handle);\n if (prev) prev.prefix = prefix;else this.tagPrefixes.push({\n handle,\n prefix\n });\n } else {\n this.tagPrefixes = this.tagPrefixes.filter(p => p.handle !== handle);\n }\n }\n\n toJSON(arg, onAnchor) {\n const {\n keepBlobsInJSON,\n mapAsMap,\n maxAliasCount\n } = this.options;\n const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof resolveSeq.Scalar));\n const ctx = {\n doc: this,\n indentStep: ' ',\n keep,\n mapAsMap: keep && !!mapAsMap,\n maxAliasCount,\n stringify // Requiring directly in Pair would create circular dependencies\n\n };\n const anchorNames = Object.keys(this.anchors.map);\n if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(name => [this.anchors.map[name], {\n alias: [],\n aliasCount: 0,\n count: 1\n }]));\n const res = resolveSeq.toJSON(this.contents, arg, ctx);\n if (typeof onAnchor === 'function' && ctx.anchors) for (const {\n count,\n res\n } of ctx.anchors.values()) onAnchor(res, count);\n return res;\n }\n\n toString() {\n if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified');\n const indentSize = this.options.indent;\n\n if (!Number.isInteger(indentSize) || indentSize <= 0) {\n const s = JSON.stringify(indentSize);\n throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n }\n\n this.setSchema();\n const lines = [];\n let hasDirectives = false;\n\n if (this.version) {\n let vd = '%YAML 1.2';\n\n if (this.schema.name === 'yaml-1.1') {\n if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1';\n }\n\n lines.push(vd);\n hasDirectives = true;\n }\n\n const tagNames = this.listNonDefaultTags();\n this.tagPrefixes.forEach(({\n handle,\n prefix\n }) => {\n if (tagNames.some(t => t.indexOf(prefix) === 0)) {\n lines.push(`%TAG ${handle} ${prefix}`);\n hasDirectives = true;\n }\n });\n if (hasDirectives || this.directivesEndMarker) lines.push('---');\n\n if (this.commentBefore) {\n if (hasDirectives || !this.directivesEndMarker) lines.unshift('');\n lines.unshift(this.commentBefore.replace(/^/gm, '#'));\n }\n\n const ctx = {\n anchors: Object.create(null),\n doc: this,\n indent: '',\n indentStep: ' '.repeat(indentSize),\n stringify // Requiring directly in nodes would create circular dependencies\n\n };\n let chompKeep = false;\n let contentComment = null;\n\n if (this.contents) {\n if (this.contents instanceof resolveSeq.Node) {\n if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push('');\n if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment\n\n ctx.forceBlockIndent = !!this.comment;\n contentComment = this.contents.comment;\n }\n\n const onChompKeep = contentComment ? null : () => chompKeep = true;\n const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep);\n lines.push(resolveSeq.addComment(body, '', contentComment));\n } else if (this.contents !== undefined) {\n lines.push(stringify(this.contents, ctx));\n }\n\n if (this.comment) {\n if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push('');\n lines.push(this.comment.replace(/^/gm, '#'));\n }\n\n return lines.join('\\n') + '\\n';\n }\n\n}\n\nPlainValue._defineProperty(Document, \"defaults\", documentOptions);\n\nexports.Document = Document;\nexports.defaultOptions = defaultOptions;\nexports.scalarOptions = scalarOptions;\n","'use strict';\n\nvar parseCst = require('./parse-cst.js');\nvar Document$1 = require('./Document-9b4560a1.js');\nvar Schema = require('./Schema-88e323a7.js');\nvar PlainValue = require('./PlainValue-ec8e588e.js');\nvar warnings = require('./warnings-1000a372.js');\nrequire('./resolveSeq-d03cb037.js');\n\nfunction createNode(value, wrapScalars = true, tag) {\n if (tag === undefined && typeof wrapScalars === 'string') {\n tag = wrapScalars;\n wrapScalars = true;\n }\n\n const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions);\n const schema = new Schema.Schema(options);\n return schema.createNode(value, wrapScalars, tag);\n}\n\nclass Document extends Document$1.Document {\n constructor(options) {\n super(Object.assign({}, Document$1.defaultOptions, options));\n }\n\n}\n\nfunction parseAllDocuments(src, options) {\n const stream = [];\n let prev;\n\n for (const cstDoc of parseCst.parse(src)) {\n const doc = new Document(options);\n doc.parse(cstDoc, prev);\n stream.push(doc);\n prev = doc;\n }\n\n return stream;\n}\n\nfunction parseDocument(src, options) {\n const cst = parseCst.parse(src);\n const doc = new Document(options).parse(cst[0]);\n\n if (cst.length > 1) {\n const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()';\n doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg));\n }\n\n return doc;\n}\n\nfunction parse(src, options) {\n const doc = parseDocument(src, options);\n doc.warnings.forEach(warning => warnings.warn(warning));\n if (doc.errors.length > 0) throw doc.errors[0];\n return doc.toJSON();\n}\n\nfunction stringify(value, options) {\n const doc = new Document(options);\n doc.contents = value;\n return String(doc);\n}\n\nconst YAML = {\n createNode,\n defaultOptions: Document$1.defaultOptions,\n Document,\n parse,\n parseAllDocuments,\n parseCST: parseCst.parse,\n parseDocument,\n scalarOptions: Document$1.scalarOptions,\n stringify\n};\n\nexports.YAML = YAML;\n","module.exports = require('./dist').YAML\n","'use strict';\nconst path = require('path');\nconst Module = require('module');\nconst fs = require('fs');\n\nconst resolveFrom = (fromDirectory, moduleId, silent) => {\n\tif (typeof fromDirectory !== 'string') {\n\t\tthrow new TypeError(`Expected \\`fromDir\\` to be of type \\`string\\`, got \\`${typeof fromDirectory}\\``);\n\t}\n\n\tif (typeof moduleId !== 'string') {\n\t\tthrow new TypeError(`Expected \\`moduleId\\` to be of type \\`string\\`, got \\`${typeof moduleId}\\``);\n\t}\n\n\ttry {\n\t\tfromDirectory = fs.realpathSync(fromDirectory);\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\tfromDirectory = path.resolve(fromDirectory);\n\t\t} else if (silent) {\n\t\t\treturn;\n\t\t} else {\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tconst fromFile = path.join(fromDirectory, 'noop.js');\n\n\tconst resolveFileName = () => Module._resolveFilename(moduleId, {\n\t\tid: fromFile,\n\t\tfilename: fromFile,\n\t\tpaths: Module._nodeModulePaths(fromDirectory)\n\t});\n\n\tif (silent) {\n\t\ttry {\n\t\t\treturn resolveFileName();\n\t\t} catch (error) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\treturn resolveFileName();\n};\n\nmodule.exports = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId);\nmodule.exports.silent = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId, true);\n","'use strict';\nconst resolveFrom = require('resolve-from');\n\nmodule.exports = (fromDirectory, moduleId) => require(resolveFrom(fromDirectory, moduleId));\n\nmodule.exports.silent = (fromDirectory, moduleId) => {\n\ttry {\n\t\treturn require(resolveFrom(fromDirectory, moduleId));\n\t} catch (_) {}\n};\n","'use strict';\nconst importFrom = require('import-from');\n\nmodule.exports = moduleId => importFrom(process.cwd(), moduleId);\nmodule.exports.silent = moduleId => importFrom.silent(process.cwd(), moduleId);\n","'use strict'\n\nconst req = require('import-cwd')\n\n/**\n * Load Options\n *\n * @private\n * @method options\n *\n * @param {Object} config PostCSS Config\n *\n * @return {Object} options PostCSS Options\n */\nconst options = (config, file) => {\n if (config.parser && typeof config.parser === 'string') {\n try {\n config.parser = req(config.parser)\n } catch (err) {\n throw new Error(`Loading PostCSS Parser failed: ${err.message}\\n\\n(@${file})`)\n }\n }\n\n if (config.syntax && typeof config.syntax === 'string') {\n try {\n config.syntax = req(config.syntax)\n } catch (err) {\n throw new Error(`Loading PostCSS Syntax failed: ${err.message}\\n\\n(@${file})`)\n }\n }\n\n if (config.stringifier && typeof config.stringifier === 'string') {\n try {\n config.stringifier = req(config.stringifier)\n } catch (err) {\n throw new Error(`Loading PostCSS Stringifier failed: ${err.message}\\n\\n(@${file})`)\n }\n }\n\n if (config.plugins) {\n delete config.plugins\n }\n\n return config\n}\n\nmodule.exports = options\n","'use strict'\n\nconst req = require('import-cwd')\n\n/**\n * Plugin Loader\n *\n * @private\n * @method load\n *\n * @param {String} plugin PostCSS Plugin Name\n * @param {Object} options PostCSS Plugin Options\n *\n * @return {Function} PostCSS Plugin\n */\nconst load = (plugin, options, file) => {\n try {\n if (\n options === null ||\n options === undefined ||\n Object.keys(options).length === 0\n ) {\n return req(plugin)\n } else {\n return req(plugin)(options)\n }\n } catch (err) {\n throw new Error(`Loading PostCSS Plugin failed: ${err.message}\\n\\n(@${file})`)\n }\n}\n\n/**\n * Load Plugins\n *\n * @private\n * @method plugins\n *\n * @param {Object} config PostCSS Config Plugins\n *\n * @return {Array} plugins PostCSS Plugins\n */\nconst plugins = (config, file) => {\n let plugins = []\n\n if (Array.isArray(config.plugins)) {\n plugins = config.plugins.filter(Boolean)\n } else {\n plugins = Object.keys(config.plugins)\n .filter((plugin) => {\n return config.plugins[plugin] !== false ? plugin : ''\n })\n .map((plugin) => {\n return load(plugin, config.plugins[plugin], file)\n })\n }\n\n if (plugins.length && plugins.length > 0) {\n plugins.forEach((plugin, i) => {\n if (plugin.default) {\n plugin = plugin.default\n }\n\n if (plugin.postcss === true) {\n plugin = plugin()\n } else if (plugin.postcss) {\n plugin = plugin.postcss\n }\n\n if (\n // eslint-disable-next-line\n !(\n (typeof plugin === 'object' && Array.isArray(plugin.plugins)) ||\n (typeof plugin === 'object' && plugin.postcssPlugin) ||\n (typeof plugin === 'function')\n )\n ) {\n throw new TypeError(`Invalid PostCSS Plugin found at: plugins[${i}]\\n\\n(@${file})`)\n }\n })\n }\n\n return plugins\n}\n\nmodule.exports = plugins\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n }\n throw new Error('\"' + aName + '\" is a required argument.');\n\n}\nexports.getArg = getArg;\n\nconst urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nconst dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n const match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n let url = \"\";\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + \":\";\n }\n url += \"//\";\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + \"@\";\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port;\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\nconst MAX_CACHED_INPUTS = 32;\n\n/**\n * Takes some function `f(input) -> result` and returns a memoized version of\n * `f`.\n *\n * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The\n * memoization is a dumb-simple, linear least-recently-used cache.\n */\nfunction lruMemoize(f) {\n const cache = [];\n\n return function(input) {\n for (let i = 0; i < cache.length; i++) {\n if (cache[i].input === input) {\n const temp = cache[0];\n cache[0] = cache[i];\n cache[i] = temp;\n return cache[0].result;\n }\n }\n\n const result = f(input);\n\n cache.unshift({\n input,\n result,\n });\n\n if (cache.length > MAX_CACHED_INPUTS) {\n cache.pop();\n }\n\n return result;\n };\n}\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nconst normalize = lruMemoize(function normalize(aPath) {\n let path = aPath;\n const url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n const isAbsolute = exports.isAbsolute(path);\n\n // Split the path into parts between `/` characters. This is much faster than\n // using `.split(/\\/+/g)`.\n const parts = [];\n let start = 0;\n let i = 0;\n while (true) {\n start = i;\n i = path.indexOf(\"/\", start);\n if (i === -1) {\n parts.push(path.slice(start));\n break;\n } else {\n parts.push(path.slice(start, i));\n while (i < path.length && path[i] === \"/\") {\n i++;\n }\n }\n }\n\n let up = 0;\n for (i = parts.length - 1; i >= 0; i--) {\n const part = parts[i];\n if (part === \".\") {\n parts.splice(i, 1);\n } else if (part === \"..\") {\n up++;\n } else if (up > 0) {\n if (part === \"\") {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join(\"/\");\n\n if (path === \"\") {\n path = isAbsolute ? \"/\" : \".\";\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n});\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n const aPathUrl = urlParse(aPath);\n const aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || \"/\";\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n const joined = aPath.charAt(0) === \"/\"\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, \"\") + \"/\" + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function(aPath) {\n return aPath.charAt(0) === \"/\" || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, \"\");\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n let level = 0;\n while (aPath.indexOf(aRoot + \"/\") !== 0) {\n const index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nconst supportsNullProto = (function() {\n const obj = Object.create(null);\n return !(\"__proto__\" in obj);\n}());\n\nfunction identity(s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return \"$\" + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n const length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n /* eslint-disable no-multi-spaces */\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n /* eslint-enable no-multi-spaces */\n\n for (let i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n let cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n let cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n let cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, \"\"));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || \"\";\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== \"/\" && sourceURL[0] !== \"/\") {\n sourceRoot += \"/\";\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n const parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n const index = parsed.path.lastIndexOf(\"/\");\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n const mid = Math.floor((aHigh - aLow) / 2) + aLow;\n const cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n } else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n }\n return mid;\n }\n\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n }\n return aLow < 0 ? -1 : aLow;\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n let index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nclass ArraySet {\n constructor() {\n this._array = [];\n this._set = new Map();\n }\n\n /**\n * Static method for creating ArraySet instances from an existing array.\n */\n static fromArray(aArray, aAllowDuplicates) {\n const set = new ArraySet();\n for (let i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n }\n\n /**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\n size() {\n return this._set.size;\n }\n\n /**\n * Add the given string to this set.\n *\n * @param String aStr\n */\n add(aStr, aAllowDuplicates) {\n const isDuplicate = this.has(aStr);\n const idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n this._set.set(aStr, idx);\n }\n }\n\n /**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\n has(aStr) {\n return this._set.has(aStr);\n }\n\n /**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\n indexOf(aStr) {\n const idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n throw new Error('\"' + aStr + '\" is not in the set.');\n }\n\n /**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\n at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error(\"No element indexed by \" + aIdx);\n }\n\n /**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\n toArray() {\n return this._array.slice();\n }\n}\nexports.ArraySet = ArraySet;\n","// Node version of reading a wasm file into an array buffer.\nconst fs = require(\"fs\");\nconst path = require(\"path\");\n\nmodule.exports = function readWasm() {\n return new Promise((resolve, reject) => {\n const wasmPath = path.join(__dirname, \"mappings.wasm\");\n fs.readFile(wasmPath, null, (error, data) => {\n if (error) {\n reject(error);\n return;\n }\n\n resolve(data.buffer);\n });\n });\n};\nmodule.exports.sync = function readWasmSync() {\n const wasmPath = path.join(__dirname, \"mappings.wasm\");\n return fs.readFileSync(wasmPath).buffer;\n};\n\nmodule.exports.initialize = _ => {\n console.debug(\"SourceMapConsumer.initialize is a no-op when running in node.js\");\n};\n","const readWasm = require(\"../lib/read-wasm\");\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.lastGeneratedColumn = null;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\nlet cachedWasm = null;\nlet cachedWasmSync = null;\n\nmodule.exports = async function wasm() {\n if (cachedWasm) {\n return cachedWasm;\n }\n\n // At every step of the way, if a sync load already succeeded, abort and return\n // the sync-loaded module.\n cachedWasm = async () => {\n try {\n const callbackStack = [];\n\n const buffer = await readWasm();\n if (cachedWasmSync) return cachedWasmSync;\n const Wasm = await WebAssembly.instantiate(buffer, getImportObject({callbackStack}));\n if (cachedWasmSync) return cachedWasmSync;\n\n cachedWasmSync = {\n exports: Wasm.instance.exports,\n withMappingCallback: (mappingCallback, f) => {\n callbackStack.push(mappingCallback);\n try {\n f();\n } finally {\n callbackStack.pop();\n }\n }\n };\n } catch (e) {\n if (cachedWasmSync) return cachedWasmSync;\n cachedWasm = null;\n throw e;\n }\n return cachedWasmSync;\n };\n\n return cachedWasm;\n};\n\nmodule.exports.sync = function wasmSync() {\n if (cachedWasmSync) {\n return cachedWasmSync;\n }\n\n const callbackStack = [];\n\n try {\n\n const cachedWasmBuffer = readWasm.sync();\n const wasmModule = new WebAssembly.Module(cachedWasmBuffer);\n const Wasm = new WebAssembly.Instance(wasmModule, getImportObject({callbackStack}));\n\n cachedWasmSync = {\n exports: Wasm.exports,\n withMappingCallback: (mappingCallback, f) => {\n callbackStack.push(mappingCallback);\n try {\n f();\n } finally {\n callbackStack.pop();\n }\n }\n };\n } catch (e) {\n cachedWasmSync = null;\n throw e;\n }\n\n return cachedWasmSync;\n};\n\nfunction getImportObject({callbackStack}) {\n return {\n env: {\n mapping_callback(\n generatedLine,\n generatedColumn,\n\n hasLastGeneratedColumn,\n lastGeneratedColumn,\n\n hasOriginal,\n source,\n originalLine,\n originalColumn,\n\n hasName,\n name\n ) {\n const mapping = new Mapping();\n // JS uses 1-based line numbers, wasm uses 0-based.\n mapping.generatedLine = generatedLine + 1;\n mapping.generatedColumn = generatedColumn;\n\n if (hasLastGeneratedColumn) {\n // JS uses inclusive last generated column, wasm uses exclusive.\n mapping.lastGeneratedColumn = lastGeneratedColumn - 1;\n }\n\n if (hasOriginal) {\n mapping.source = source;\n // JS uses 1-based line numbers, wasm uses 0-based.\n mapping.originalLine = originalLine + 1;\n mapping.originalColumn = originalColumn;\n\n if (hasName) {\n mapping.name = name;\n }\n }\n\n callbackStack[callbackStack.length - 1](mapping);\n },\n\n start_all_generated_locations_for() { console.time(\"all_generated_locations_for\"); },\n end_all_generated_locations_for() { console.timeEnd(\"all_generated_locations_for\"); },\n\n start_compute_column_spans() { console.time(\"compute_column_spans\"); },\n end_compute_column_spans() { console.timeEnd(\"compute_column_spans\"); },\n\n start_generated_location_for() { console.time(\"generated_location_for\"); },\n end_generated_location_for() { console.timeEnd(\"generated_location_for\"); },\n\n start_original_location_for() { console.time(\"original_location_for\"); },\n end_original_location_for() { console.timeEnd(\"original_location_for\"); },\n\n start_parse_mappings() { console.time(\"parse_mappings\"); },\n end_parse_mappings() { console.timeEnd(\"parse_mappings\"); },\n\n start_sort_by_generated_location() { console.time(\"sort_by_generated_location\"); },\n end_sort_by_generated_location() { console.timeEnd(\"sort_by_generated_location\"); },\n\n start_sort_by_original_location() { console.time(\"sort_by_original_location\"); },\n end_sort_by_original_location() { console.timeEnd(\"sort_by_original_location\"); },\n }\n };\n}\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nconst util = require(\"./util\");\nconst binarySearch = require(\"./binary-search\");\nconst ArraySet = require(\"./array-set\").ArraySet;\nconst readWasm = require(\"../lib/read-wasm\");\nconst wasm = require(\"./wasm\");\n\nconst INTERNAL = Symbol(\"smcInternal\");\n\nclass SourceMapConsumer {\n constructor(aSourceMap, aSourceMapURL) {\n if (aSourceMap === INTERNAL) return this;\n return _factory(aSourceMap, aSourceMapURL);\n }\n\n static initialize(opts) {\n readWasm.initialize(opts[\"lib/mappings.wasm\"]);\n }\n\n static fromSourceMap(aSourceMap, aSourceMapURL) {\n return _factoryBSM(aSourceMap, aSourceMapURL);\n }\n\n /**\n * Construct a new `SourceMapConsumer` from `rawSourceMap` and `sourceMapUrl`\n * (see the `SourceMapConsumer` constructor for details. Then, invoke the `async\n * function f(SourceMapConsumer) -> T` with the newly constructed consumer, wait\n * for `f` to complete, call `destroy` on the consumer, and return `f`'s return\n * value.\n *\n * You must not use the consumer after `f` completes!\n *\n * By using `with`, you do not have to remember to manually call `destroy` on\n * the consumer, since it will be called automatically once `f` completes.\n *\n * ```js\n * const xSquared = await SourceMapConsumer.with(\n * myRawSourceMap,\n * null,\n * async function (consumer) {\n * // Use `consumer` inside here and don't worry about remembering\n * // to call `destroy`.\n *\n * const x = await whatever(consumer);\n * return x * x;\n * }\n * );\n *\n * // You may not use that `consumer` anymore out here; it has\n * // been destroyed. But you can use `xSquared`.\n * console.log(xSquared);\n * ```\n */\n static async with(rawSourceMap, sourceMapUrl, f) {\n // Note: The `acorn` version that `webpack` currently depends on doesn't\n // support `async` functions, and the nodes that we support don't all have\n // `.finally`. Therefore, this is written a bit more convolutedly than it\n // should really be.\n\n let consumer = null;\n try {\n consumer = new SourceMapConsumer(rawSourceMap, sourceMapUrl);\n return await f(consumer);\n } finally {\n if (consumer) {\n consumer.destroy();\n }\n }\n }\n\n /**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n _parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n }\n\n /**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\n eachMapping(aCallback, aContext, aOrder) {\n throw new Error(\"Subclasses must implement eachMapping\");\n }\n\n /**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\n allGeneratedPositionsFor(aArgs) {\n throw new Error(\"Subclasses must implement allGeneratedPositionsFor\");\n }\n\n destroy() {\n throw new Error(\"Subclasses must implement destroy\");\n }\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nclass BasicSourceMapConsumer extends SourceMapConsumer {\n constructor(aSourceMap, aSourceMapURL) {\n super(INTERNAL);\n let sourceMap = aSourceMap;\n if (typeof aSourceMap === \"string\") {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n const version = util.getArg(sourceMap, \"version\");\n let sources = util.getArg(sourceMap, \"sources\");\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n const names = util.getArg(sourceMap, \"names\", []);\n let sourceRoot = util.getArg(sourceMap, \"sourceRoot\", null);\n const sourcesContent = util.getArg(sourceMap, \"sourcesContent\", null);\n const mappings = util.getArg(sourceMap, \"mappings\");\n const file = util.getArg(sourceMap, \"file\", null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error(\"Unsupported version: \" + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function(source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function(s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n\n this._computedColumnSpans = false;\n this._mappingsPtr = 0;\n this._wasm = null;\n\n const w = wasm.sync();\n this._wasm = w;\n }\n\n /**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\n _findSourceIndex(aSource) {\n let relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n for (let i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\n static fromSourceMap(aSourceMap, aSourceMapURL) {\n return new BasicSourceMapConsumer(aSourceMap.toString());\n }\n\n get sources() {\n return this._absoluteSources.slice();\n }\n\n _getMappingsPtr() {\n if (this._mappingsPtr === 0) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this._mappingsPtr;\n }\n\n /**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n _parseMappings(aStr, aSourceRoot) {\n const size = aStr.length;\n\n const mappingsBufPtr = this._wasm.exports.allocate_mappings(size);\n const mappingsBuf = new Uint8Array(this._wasm.exports.memory.buffer, mappingsBufPtr, size);\n for (let i = 0; i < size; i++) {\n mappingsBuf[i] = aStr.charCodeAt(i);\n }\n\n const mappingsPtr = this._wasm.exports.parse_mappings(mappingsBufPtr);\n\n if (!mappingsPtr) {\n const error = this._wasm.exports.get_last_error();\n let msg = `Error parsing mappings (code ${error}): `;\n\n // XXX: keep these error codes in sync with `fitzgen/source-map-mappings`.\n switch (error) {\n case 1:\n msg += \"the mappings contained a negative line, column, source index, or name index\";\n break;\n case 2:\n msg += \"the mappings contained a number larger than 2**32\";\n break;\n case 3:\n msg += \"reached EOF while in the middle of parsing a VLQ\";\n break;\n case 4:\n msg += \"invalid base 64 character while parsing a VLQ\";\n break;\n default:\n msg += \"unknown error code\";\n break;\n }\n\n throw new Error(msg);\n }\n\n this._mappingsPtr = mappingsPtr;\n }\n\n eachMapping(aCallback, aContext, aOrder) {\n const context = aContext || null;\n const order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n const sourceRoot = this.sourceRoot;\n\n this._wasm.withMappingCallback(\n mapping => {\n if (mapping.source !== null) {\n mapping.source = this._sources.at(mapping.source);\n mapping.source = util.computeSourceURL(sourceRoot, mapping.source, this._sourceMapURL);\n\n if (mapping.name !== null) {\n mapping.name = this._names.at(mapping.name);\n }\n }\n\n aCallback.call(context, mapping);\n },\n () => {\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n this._wasm.exports.by_generated_location(this._getMappingsPtr());\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n this._wasm.exports.by_original_location(this._getMappingsPtr());\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n }\n );\n }\n\n allGeneratedPositionsFor(aArgs) {\n let source = util.getArg(aArgs, \"source\");\n const originalLine = util.getArg(aArgs, \"line\");\n const originalColumn = aArgs.column || 0;\n\n source = this._findSourceIndex(source);\n if (source < 0) {\n return [];\n }\n\n if (originalLine < 1) {\n throw new Error(\"Line numbers must be >= 1\");\n }\n\n if (originalColumn < 0) {\n throw new Error(\"Column numbers must be >= 0\");\n }\n\n const mappings = [];\n\n this._wasm.withMappingCallback(\n m => {\n let lastColumn = m.lastGeneratedColumn;\n if (this._computedColumnSpans && lastColumn === null) {\n lastColumn = Infinity;\n }\n mappings.push({\n line: m.generatedLine,\n column: m.generatedColumn,\n lastColumn,\n });\n }, () => {\n this._wasm.exports.all_generated_locations_for(\n this._getMappingsPtr(),\n source,\n originalLine - 1,\n \"column\" in aArgs,\n originalColumn\n );\n }\n );\n\n return mappings;\n }\n\n destroy() {\n if (this._mappingsPtr !== 0) {\n this._wasm.exports.free_mappings(this._mappingsPtr);\n this._mappingsPtr = 0;\n }\n }\n\n /**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\n computeColumnSpans() {\n if (this._computedColumnSpans) {\n return;\n }\n\n this._wasm.exports.compute_column_spans(this._getMappingsPtr());\n this._computedColumnSpans = true;\n }\n\n /**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\n originalPositionFor(aArgs) {\n const needle = {\n generatedLine: util.getArg(aArgs, \"line\"),\n generatedColumn: util.getArg(aArgs, \"column\")\n };\n\n if (needle.generatedLine < 1) {\n throw new Error(\"Line numbers must be >= 1\");\n }\n\n if (needle.generatedColumn < 0) {\n throw new Error(\"Column numbers must be >= 0\");\n }\n\n let bias = util.getArg(aArgs, \"bias\", SourceMapConsumer.GREATEST_LOWER_BOUND);\n if (bias == null) {\n bias = SourceMapConsumer.GREATEST_LOWER_BOUND;\n }\n\n let mapping;\n this._wasm.withMappingCallback(m => mapping = m, () => {\n this._wasm.exports.original_location_for(\n this._getMappingsPtr(),\n needle.generatedLine - 1,\n needle.generatedColumn,\n bias\n );\n });\n\n if (mapping) {\n if (mapping.generatedLine === needle.generatedLine) {\n let source = util.getArg(mapping, \"source\", null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n\n let name = util.getArg(mapping, \"name\", null);\n if (name !== null) {\n name = this._names.at(name);\n }\n\n return {\n source,\n line: util.getArg(mapping, \"originalLine\", null),\n column: util.getArg(mapping, \"originalColumn\", null),\n name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n /**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\n hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function(sc) { return sc == null; });\n }\n\n /**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\n sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n const index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n let relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n let url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n const fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)];\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n\n /**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\n generatedPositionFor(aArgs) {\n let source = util.getArg(aArgs, \"source\");\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n const needle = {\n source,\n originalLine: util.getArg(aArgs, \"line\"),\n originalColumn: util.getArg(aArgs, \"column\")\n };\n\n if (needle.originalLine < 1) {\n throw new Error(\"Line numbers must be >= 1\");\n }\n\n if (needle.originalColumn < 0) {\n throw new Error(\"Column numbers must be >= 0\");\n }\n\n let bias = util.getArg(aArgs, \"bias\", SourceMapConsumer.GREATEST_LOWER_BOUND);\n if (bias == null) {\n bias = SourceMapConsumer.GREATEST_LOWER_BOUND;\n }\n\n let mapping;\n this._wasm.withMappingCallback(m => mapping = m, () => {\n this._wasm.exports.generated_location_for(\n this._getMappingsPtr(),\n needle.source,\n needle.originalLine - 1,\n needle.originalColumn,\n bias\n );\n });\n\n if (mapping) {\n if (mapping.source === needle.source) {\n let lastColumn = mapping.lastGeneratedColumn;\n if (this._computedColumnSpans && lastColumn === null) {\n lastColumn = Infinity;\n }\n return {\n line: util.getArg(mapping, \"generatedLine\", null),\n column: util.getArg(mapping, \"generatedColumn\", null),\n lastColumn,\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n}\n\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nclass IndexedSourceMapConsumer extends SourceMapConsumer {\n constructor(aSourceMap, aSourceMapURL) {\n super(INTERNAL);\n let sourceMap = aSourceMap;\n if (typeof aSourceMap === \"string\") {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n const version = util.getArg(sourceMap, \"version\");\n const sections = util.getArg(sourceMap, \"sections\");\n\n if (version != this._version) {\n throw new Error(\"Unsupported version: \" + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this.__generatedMappings = null;\n this.__originalMappings = null;\n this.__generatedMappingsUnsorted = null;\n this.__originalMappingsUnsorted = null;\n\n let lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(s => {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error(\"Support for url field in sections not implemented.\");\n }\n const offset = util.getArg(s, \"offset\");\n const offsetLine = util.getArg(offset, \"line\");\n const offsetColumn = util.getArg(offset, \"column\");\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error(\"Section offsets must be ordered and non-overlapping.\");\n }\n lastOffset = offset;\n\n const consumer = new SourceMapConsumer(util.getArg(s, \"map\"), aSourceMapURL);\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer\n };\n });\n }\n\n // `__generatedMappings` and `__originalMappings` are arrays that hold the\n // parsed mapping coordinates from the source map's \"mappings\" attribute. They\n // are lazily instantiated, accessed via the `_generatedMappings` and\n // `_originalMappings` getters respectively, and we only parse the mappings\n // and create these arrays once queried for a source location. We jump through\n // these hoops because there can be many thousands of mappings, and parsing\n // them is expensive, so we only want to do it if we must.\n //\n // Each object in the arrays is of the form:\n //\n // {\n // generatedLine: The line number in the generated code,\n // generatedColumn: The column number in the generated code,\n // source: The path to the original source file that generated this\n // chunk of code,\n // originalLine: The line number in the original source that\n // corresponds to this chunk of generated code,\n // originalColumn: The column number in the original source that\n // corresponds to this chunk of generated code,\n // name: The name of the original symbol which generated this chunk of\n // code.\n // }\n //\n // All properties except for `generatedLine` and `generatedColumn` can be\n // `null`.\n //\n // `_generatedMappings` is ordered by the generated positions.\n //\n // `_originalMappings` is ordered by the original positions.\n get _generatedMappings() {\n if (!this.__generatedMappings) {\n this._sortGeneratedMappings();\n }\n\n return this.__generatedMappings;\n }\n\n get _originalMappings() {\n if (!this.__originalMappings) {\n this._sortOriginalMappings();\n }\n\n return this.__originalMappings;\n }\n\n get _generatedMappingsUnsorted() {\n if (!this.__generatedMappingsUnsorted) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappingsUnsorted;\n }\n\n get _originalMappingsUnsorted() {\n if (!this.__originalMappingsUnsorted) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappingsUnsorted;\n }\n\n _sortGeneratedMappings() {\n const mappings = this._generatedMappingsUnsorted;\n mappings.sort(util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = mappings;\n }\n\n _sortOriginalMappings() {\n const mappings = this._originalMappingsUnsorted;\n mappings.sort(util.compareByOriginalPositions);\n this.__originalMappings = mappings;\n }\n\n /**\n * The list of original sources.\n */\n get sources() {\n const sources = [];\n for (let i = 0; i < this._sections.length; i++) {\n for (let j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n\n /**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\n originalPositionFor(aArgs) {\n const needle = {\n generatedLine: util.getArg(aArgs, \"line\"),\n generatedColumn: util.getArg(aArgs, \"column\")\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n const sectionIndex = binarySearch.search(needle, this._sections,\n function(aNeedle, section) {\n const cmp = aNeedle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (aNeedle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n const section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n }\n\n /**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\n hasContentsOfAllSources() {\n return this._sections.every(function(s) {\n return s.consumer.hasContentsOfAllSources();\n });\n }\n\n /**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\n sourceContentFor(aSource, nullOnMissing) {\n for (let i = 0; i < this._sections.length; i++) {\n const section = this._sections[i];\n\n const content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n\n /**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\n generatedPositionFor(aArgs) {\n for (let i = 0; i < this._sections.length; i++) {\n const section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, \"source\")) === -1) {\n continue;\n }\n const generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n const ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n }\n\n /**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n _parseMappings(aStr, aSourceRoot) {\n const generatedMappings = this.__generatedMappingsUnsorted = [];\n const originalMappings = this.__originalMappingsUnsorted = [];\n for (let i = 0; i < this._sections.length; i++) {\n const section = this._sections[i];\n\n const sectionMappings = [];\n section.consumer.eachMapping(m => sectionMappings.push(m));\n\n for (let j = 0; j < sectionMappings.length; j++) {\n const mapping = sectionMappings[j];\n\n // TODO: test if null is correct here. The original code used\n // `source`, which would actually have gotten used as null because\n // var's get hoisted.\n // See: https://github.com/mozilla/source-map/issues/333\n let source = util.computeSourceURL(section.consumer.sourceRoot, null, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n let name = null;\n if (mapping.name) {\n this._names.add(mapping.name);\n name = this._names.indexOf(mapping.name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n const adjustedMapping = {\n source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name\n };\n\n generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === \"number\") {\n originalMappings.push(adjustedMapping);\n }\n }\n }\n }\n\n eachMapping(aCallback, aContext, aOrder) {\n const context = aContext || null;\n const order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n let mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n const sourceRoot = this.sourceRoot;\n mappings.map(function(mapping) {\n let source = null;\n if (mapping.source !== null) {\n source = this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n }\n return {\n source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n }\n\n /**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\n _findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError(\"Line must be greater than or equal to 1, got \"\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError(\"Column must be greater than or equal to 0, got \"\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n }\n\n allGeneratedPositionsFor(aArgs) {\n const line = util.getArg(aArgs, \"line\");\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n const needle = {\n source: util.getArg(aArgs, \"source\"),\n originalLine: line,\n originalColumn: util.getArg(aArgs, \"column\", 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n if (needle.originalLine < 1) {\n throw new Error(\"Line numbers must be >= 1\");\n }\n\n if (needle.originalColumn < 0) {\n throw new Error(\"Column numbers must be >= 0\");\n }\n\n const mappings = [];\n\n let index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n let mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n const originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n let lastColumn = mapping.lastGeneratedColumn;\n if (this._computedColumnSpans && lastColumn === null) {\n lastColumn = Infinity;\n }\n mappings.push({\n line: util.getArg(mapping, \"generatedLine\", null),\n column: util.getArg(mapping, \"generatedColumn\", null),\n lastColumn,\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n const originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n let lastColumn = mapping.lastGeneratedColumn;\n if (this._computedColumnSpans && lastColumn === null) {\n lastColumn = Infinity;\n }\n mappings.push({\n line: util.getArg(mapping, \"generatedLine\", null),\n column: util.getArg(mapping, \"generatedColumn\", null),\n lastColumn,\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n }\n\n destroy() {\n for (let i = 0; i < this._sections.length; i++) {\n this._sections[i].consumer.destroy();\n }\n }\n}\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n/*\n * Cheat to get around inter-twingled classes. `factory()` can be at the end\n * where it has access to non-hoisted classes, but it gets hoisted itself.\n */\nfunction _factory(aSourceMap, aSourceMapURL) {\n let sourceMap = aSourceMap;\n if (typeof aSourceMap === \"string\") {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n const consumer = sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n return consumer;\n}\n\nfunction _factoryBSM(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapConsumer = require(\"./lib/source-map-consumer\").SourceMapConsumer;\n","var SourceMapConsumer = require('@cspotcode/source-map-consumer').SourceMapConsumer;\nvar path = require('path');\nvar util = require('util');\n\nvar fs;\ntry {\n fs = require('fs');\n if (!fs.existsSync || !fs.readFileSync) {\n // fs doesn't have all methods we need\n fs = null;\n }\n} catch (err) {\n /* nop */\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param {NodeModule} mod\n * @param {string} request\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n// Only install once if called multiple times\nvar errorFormatterInstalled = false;\nvar uncaughtShimInstalled = false;\n\n// If true, the caches are reset before a stack trace formatting operation\nvar emptyCacheBetweenOperations = false;\n\n// Supports {browser, node, auto}\nvar environment = \"auto\";\n\n// Maps a file path to a string containing the file contents\nvar fileContentsCache = {};\n\n// Maps a file path to a source map for that file\nvar sourceMapCache = {};\n\n// Regex for detecting source maps\nvar reSourceMap = /^data:application\\/json[^,]+base64,/;\n\n// Priority list of retrieve handlers\nvar retrieveFileHandlers = [];\nvar retrieveMapHandlers = [];\n\nfunction isInBrowser() {\n if (environment === \"browser\")\n return true;\n if (environment === \"node\")\n return false;\n return ((typeof window !== 'undefined') && (typeof XMLHttpRequest === 'function') && !(window.require && window.module && window.process && window.process.type === \"renderer\"));\n}\n\nfunction hasGlobalProcessEventEmitter() {\n return ((typeof process === 'object') && (process !== null) && (typeof process.on === 'function'));\n}\n\nfunction handlerExec(list) {\n return function(arg) {\n for (var i = 0; i < list.length; i++) {\n var ret = list[i](arg);\n if (ret) {\n return ret;\n }\n }\n return null;\n };\n}\n\nvar retrieveFile = handlerExec(retrieveFileHandlers);\n\nretrieveFileHandlers.push(function(path) {\n // Trim the path to make sure there is no extra whitespace.\n path = path.trim();\n if (/^file:/.test(path)) {\n // existsSync/readFileSync can't handle file protocol, but once stripped, it works\n path = path.replace(/file:\\/\\/\\/(\\w:)?/, function(protocol, drive) {\n return drive ?\n '' : // file:///C:/dir/file -> C:/dir/file\n '/'; // file:///root-dir/file -> /root-dir/file\n });\n }\n if (path in fileContentsCache) {\n return fileContentsCache[path];\n }\n\n var contents = '';\n try {\n if (!fs) {\n // Use SJAX if we are in the browser\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, /** async */ false);\n xhr.send(null);\n if (xhr.readyState === 4 && xhr.status === 200) {\n contents = xhr.responseText;\n }\n } else if (fs.existsSync(path)) {\n // Otherwise, use the filesystem\n contents = fs.readFileSync(path, 'utf8');\n }\n } catch (er) {\n /* ignore any errors */\n }\n\n return fileContentsCache[path] = contents;\n});\n\n// Support URLs relative to a directory, but be careful about a protocol prefix\n// in case we are in the browser (i.e. directories may start with \"http://\" or \"file:///\")\nfunction supportRelativeURL(file, url) {\n if (!file) return url;\n var dir = path.dirname(file);\n var match = /^\\w+:\\/\\/[^\\/]*/.exec(dir);\n var protocol = match ? match[0] : '';\n var startPath = dir.slice(protocol.length);\n if (protocol && /^\\/\\w\\:/.test(startPath)) {\n // handle file:///C:/ paths\n protocol += '/';\n return protocol + path.resolve(dir.slice(protocol.length), url).replace(/\\\\/g, '/');\n }\n return protocol + path.resolve(dir.slice(protocol.length), url);\n}\n\nfunction retrieveSourceMapURL(source) {\n var fileData;\n\n if (isInBrowser()) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', source, false);\n xhr.send(null);\n fileData = xhr.readyState === 4 ? xhr.responseText : null;\n\n // Support providing a sourceMappingURL via the SourceMap header\n var sourceMapHeader = xhr.getResponseHeader(\"SourceMap\") ||\n xhr.getResponseHeader(\"X-SourceMap\");\n if (sourceMapHeader) {\n return sourceMapHeader;\n }\n } catch (e) {\n }\n }\n\n // Get the URL of the source map\n fileData = retrieveFile(source);\n var re = /(?:\\/\\/[@#][\\s]*sourceMappingURL=([^\\s'\"]+)[\\s]*$)|(?:\\/\\*[@#][\\s]*sourceMappingURL=([^\\s*'\"]+)[\\s]*(?:\\*\\/)[\\s]*$)/mg;\n // Keep executing the search to find the *last* sourceMappingURL to avoid\n // picking up sourceMappingURLs from comments, strings, etc.\n var lastMatch, match;\n while (match = re.exec(fileData)) lastMatch = match;\n if (!lastMatch) return null;\n return lastMatch[1];\n};\n\n// Can be overridden by the retrieveSourceMap option to install. Takes a\n// generated source filename; returns a {map, optional url} object, or null if\n// there is no source map. The map field may be either a string or the parsed\n// JSON object (ie, it must be a valid argument to the SourceMapConsumer\n// constructor).\nvar retrieveSourceMap = handlerExec(retrieveMapHandlers);\nretrieveMapHandlers.push(function(source) {\n var sourceMappingURL = retrieveSourceMapURL(source);\n if (!sourceMappingURL) return null;\n\n // Read the contents of the source map\n var sourceMapData;\n if (reSourceMap.test(sourceMappingURL)) {\n // Support source map URL as a data url\n var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);\n sourceMapData = Buffer.from(rawData, \"base64\").toString();\n sourceMappingURL = source;\n } else {\n // Support source map URLs relative to the source URL\n sourceMappingURL = supportRelativeURL(source, sourceMappingURL);\n sourceMapData = retrieveFile(sourceMappingURL);\n }\n\n if (!sourceMapData) {\n return null;\n }\n\n return {\n url: sourceMappingURL,\n map: sourceMapData\n };\n});\n\nfunction mapSourcePosition(position) {\n var sourceMap = sourceMapCache[position.source];\n if (!sourceMap) {\n // Call the (overrideable) retrieveSourceMap function to get the source map.\n var urlAndMap = retrieveSourceMap(position.source);\n if (urlAndMap) {\n sourceMap = sourceMapCache[position.source] = {\n url: urlAndMap.url,\n map: new SourceMapConsumer(urlAndMap.map)\n };\n\n // Load all sources stored inline with the source map into the file cache\n // to pretend like they are already loaded. They may not exist on disk.\n if (sourceMap.map.sourcesContent) {\n sourceMap.map.sources.forEach(function(source, i) {\n var contents = sourceMap.map.sourcesContent[i];\n if (contents) {\n var url = supportRelativeURL(sourceMap.url, source);\n fileContentsCache[url] = contents;\n }\n });\n }\n } else {\n sourceMap = sourceMapCache[position.source] = {\n url: null,\n map: null\n };\n }\n }\n\n // Resolve the source URL relative to the URL of the source map\n if (sourceMap && sourceMap.map && typeof sourceMap.map.originalPositionFor === 'function') {\n var originalPosition = sourceMap.map.originalPositionFor(position);\n\n // Only return the original position if a matching line was found. If no\n // matching line is found then we return position instead, which will cause\n // the stack trace to print the path and line for the compiled file. It is\n // better to give a precise location in the compiled file than a vague\n // location in the original file.\n if (originalPosition.source !== null) {\n originalPosition.source = supportRelativeURL(\n sourceMap.url, originalPosition.source);\n return originalPosition;\n }\n }\n\n return position;\n}\n\n// Parses code generated by FormatEvalOrigin(), a function inside V8:\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js\nfunction mapEvalOrigin(origin) {\n // Most eval() calls are in this format\n var match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin);\n if (match) {\n var position = mapSourcePosition({\n source: match[2],\n line: +match[3],\n column: match[4] - 1\n });\n return 'eval at ' + match[1] + ' (' + position.source + ':' +\n position.line + ':' + (position.column + 1) + ')';\n }\n\n // Parse nested eval() calls using recursion\n match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin);\n if (match) {\n return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';\n }\n\n // Make sure we still return useful information if we didn't find anything\n return origin;\n}\n\n// This is copied almost verbatim from the V8 source code at\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The\n// implementation of wrapCallSite() used to just forward to the actual source\n// code of CallSite.prototype.toString but unfortunately a new release of V8\n// did something to the prototype chain and broke the shim. The only fix I\n// could find was copy/paste.\nfunction CallSiteToString() {\n var fileName;\n var fileLocation = \"\";\n if (this.isNative()) {\n fileLocation = \"native\";\n } else {\n fileName = this.getScriptNameOrSourceURL();\n if (!fileName && this.isEval()) {\n fileLocation = this.getEvalOrigin();\n fileLocation += \", \"; // Expecting source position to follow.\n }\n\n if (fileName) {\n fileLocation += fileName;\n } else {\n // Source code does not originate from a file and is not native, but we\n // can still get the source position inside the source string, e.g. in\n // an eval string.\n fileLocation += \"<anonymous>\";\n }\n var lineNumber = this.getLineNumber();\n if (lineNumber != null) {\n fileLocation += \":\" + lineNumber;\n var columnNumber = this.getColumnNumber();\n if (columnNumber) {\n fileLocation += \":\" + columnNumber;\n }\n }\n }\n\n var line = \"\";\n var isAsync = this.isAsync ? this.isAsync() : false;\n if(isAsync) {\n line += 'async ';\n var isPromiseAll = this.isPromiseAll ? this.isPromiseAll() : false;\n var isPromiseAny = this.isPromiseAny ? this.isPromiseAny() : false;\n if(isPromiseAny || isPromiseAll) {\n line += isPromiseAll ? 'Promise.all (index ' : 'Promise.any (index ';\n var promiseIndex = this.getPromiseIndex();\n line += promiseIndex + ')';\n }\n }\n var functionName = this.getFunctionName();\n var addSuffix = true;\n var isConstructor = this.isConstructor();\n var isMethodCall = !(this.isToplevel() || isConstructor);\n if (isMethodCall) {\n var typeName = this.getTypeName();\n // Fixes shim to be backward compatable with Node v0 to v4\n if (typeName === \"[object Object]\") {\n typeName = \"null\";\n }\n var methodName = this.getMethodName();\n if (functionName) {\n if (typeName && functionName.indexOf(typeName) != 0) {\n line += typeName + \".\";\n }\n line += functionName;\n if (methodName && functionName.indexOf(\".\" + methodName) != functionName.length - methodName.length - 1) {\n line += \" [as \" + methodName + \"]\";\n }\n } else {\n line += typeName + \".\" + (methodName || \"<anonymous>\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"<anonymous>\");\n } else if (functionName) {\n line += functionName;\n } else {\n line += fileLocation;\n addSuffix = false;\n }\n if (addSuffix) {\n line += \" (\" + fileLocation + \")\";\n }\n return line;\n}\n\nfunction cloneCallSite(frame) {\n var object = {};\n Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {\n object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];\n });\n object.toString = CallSiteToString;\n return object;\n}\n\nfunction wrapCallSite(frame, state) {\n // provides interface backward compatibility\n if (state === undefined) {\n state = { nextPosition: null, curPosition: null }\n }\n if(frame.isNative()) {\n state.curPosition = null;\n return frame;\n }\n\n // Most call sites will return the source file from getFileName(), but code\n // passed to eval() ending in \"//# sourceURL=...\" will return the source file\n // from getScriptNameOrSourceURL() instead\n var source = frame.getFileName() || frame.getScriptNameOrSourceURL();\n if (source) {\n var line = frame.getLineNumber();\n var column = frame.getColumnNumber() - 1;\n\n // Fix position in Node where some (internal) code is prepended.\n // See https://github.com/evanw/node-source-map-support/issues/36\n // Header removed in node at ^10.16 || >=11.11.0\n // v11 is not an LTS candidate, we can just test the one version with it.\n // Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11\n var noHeader = /^v(10\\.1[6-9]|10\\.[2-9][0-9]|10\\.[0-9]{3,}|1[2-9]\\d*|[2-9]\\d|\\d{3,}|11\\.11)/;\n var headerLength = noHeader.test(process.version) ? 0 : 62;\n if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {\n column -= headerLength;\n }\n\n var position = mapSourcePosition({\n source: source,\n line: line,\n column: column\n });\n state.curPosition = position;\n frame = cloneCallSite(frame);\n var originalFunctionName = frame.getFunctionName;\n frame.getFunctionName = function() {\n if (state.nextPosition == null) {\n return originalFunctionName();\n }\n return state.nextPosition.name || originalFunctionName();\n };\n frame.getFileName = function() { return position.source; };\n frame.getLineNumber = function() { return position.line; };\n frame.getColumnNumber = function() { return position.column + 1; };\n frame.getScriptNameOrSourceURL = function() { return position.source; };\n return frame;\n }\n\n // Code called using eval() needs special handling\n var origin = frame.isEval() && frame.getEvalOrigin();\n if (origin) {\n origin = mapEvalOrigin(origin);\n frame = cloneCallSite(frame);\n frame.getEvalOrigin = function() { return origin; };\n return frame;\n }\n\n // If we get here then we were unable to change the source position\n return frame;\n}\n\nvar kIsNodeError = undefined;\ntry {\n // Get a deliberate ERR_INVALID_ARG_TYPE\n // TODO is there a better way to reliably get an instance of NodeError?\n path.resolve(123);\n} catch(e) {\n const symbols = Object.getOwnPropertySymbols(e);\n const symbol = symbols.find(function (s) {return s.toString().indexOf('kIsNodeError') >= 0});\n if(symbol) kIsNodeError = symbol;\n}\n\nconst ErrorPrototypeToString = (err) =>Error.prototype.toString.call(err);\n\n// This function is part of the V8 stack trace API, for more info see:\n// https://v8.dev/docs/stack-trace-api\nfunction prepareStackTrace(error, stack) {\n if (emptyCacheBetweenOperations) {\n fileContentsCache = {};\n sourceMapCache = {};\n }\n\n // node gives its own errors special treatment. Mimic that behavior\n // https://github.com/nodejs/node/blob/3cbaabc4622df1b4009b9d026a1a970bdbae6e89/lib/internal/errors.js#L118-L128\n // https://github.com/nodejs/node/pull/39182\n var errorString;\n if (kIsNodeError) {\n if(kIsNodeError in error) {\n errorString = `${error.name} [${error.code}]: ${error.message}`;\n } else {\n errorString = ErrorPrototypeToString(error);\n }\n } else {\n var name = error.name || 'Error';\n var message = error.message || '';\n errorString = name + \": \" + message;\n }\n\n var state = { nextPosition: null, curPosition: null };\n var processedStack = [];\n for (var i = stack.length - 1; i >= 0; i--) {\n processedStack.push('\\n at ' + wrapCallSite(stack[i], state));\n state.nextPosition = state.curPosition;\n }\n state.curPosition = state.nextPosition = null;\n return errorString + processedStack.reverse().join('');\n}\n\n// Generate position and snippet of original source with pointer\nfunction getErrorSource(error) {\n var match = /\\n at [^(]+ \\((.*):(\\d+):(\\d+)\\)/.exec(error.stack);\n if (match) {\n var source = match[1];\n var line = +match[2];\n var column = +match[3];\n\n // Support the inline sourceContents inside the source map\n var contents = fileContentsCache[source];\n\n // Support files on disk\n if (!contents && fs && fs.existsSync(source)) {\n try {\n contents = fs.readFileSync(source, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n // Format the line from the original source code like node does\n if (contents) {\n var code = contents.split(/(?:\\r\\n|\\r|\\n)/)[line - 1];\n if (code) {\n return source + ':' + line + '\\n' + code + '\\n' +\n new Array(column).join(' ') + '^';\n }\n }\n }\n return null;\n}\n\nfunction printFatalErrorUponExit (error) {\n var source = getErrorSource(error);\n\n // Ensure error is printed synchronously and not truncated\n if (process.stderr._handle && process.stderr._handle.setBlocking) {\n process.stderr._handle.setBlocking(true);\n }\n\n if (source) {\n console.error(source);\n }\n\n // Matches node's behavior for colorized output\n console.error(\n util.inspect(error, {\n customInspect: false,\n colors: process.stderr.isTTY\n })\n );\n}\n\nfunction shimEmitUncaughtException () {\n var origEmit = process.emit;\n var isTerminatingDueToFatalException = false;\n var fatalException;\n\n process.emit = function (type) {\n const hadListeners = origEmit.apply(this, arguments);\n if (type === 'uncaughtException' && !hadListeners) {\n isTerminatingDueToFatalException = true;\n fatalException = arguments[1];\n process.exit(1);\n }\n if (type === 'exit' && isTerminatingDueToFatalException) {\n printFatalErrorUponExit(fatalException);\n }\n return hadListeners;\n };\n}\n\nvar originalRetrieveFileHandlers = retrieveFileHandlers.slice(0);\nvar originalRetrieveMapHandlers = retrieveMapHandlers.slice(0);\n\nexports.wrapCallSite = wrapCallSite;\nexports.getErrorSource = getErrorSource;\nexports.mapSourcePosition = mapSourcePosition;\nexports.retrieveSourceMap = retrieveSourceMap;\n\nexports.install = function(options) {\n options = options || {};\n\n if (options.environment) {\n environment = options.environment;\n if ([\"node\", \"browser\", \"auto\"].indexOf(environment) === -1) {\n throw new Error(\"environment \" + environment + \" was unknown. Available options are {auto, browser, node}\")\n }\n }\n\n // Allow sources to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveFile) {\n if (options.overrideRetrieveFile) {\n retrieveFileHandlers.length = 0;\n }\n\n retrieveFileHandlers.unshift(options.retrieveFile);\n }\n\n // Allow source maps to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveSourceMap) {\n if (options.overrideRetrieveSourceMap) {\n retrieveMapHandlers.length = 0;\n }\n\n retrieveMapHandlers.unshift(options.retrieveSourceMap);\n }\n\n // Support runtime transpilers that include inline source maps\n if (options.hookRequire && !isInBrowser()) {\n // Use dynamicRequire to avoid including in browser bundles\n var Module = dynamicRequire(module, 'module');\n var $compile = Module.prototype._compile;\n\n if (!$compile.__sourceMapSupport) {\n Module.prototype._compile = function(content, filename) {\n fileContentsCache[filename] = content;\n sourceMapCache[filename] = undefined;\n return $compile.call(this, content, filename);\n };\n\n Module.prototype._compile.__sourceMapSupport = true;\n }\n }\n\n // Configure options\n if (!emptyCacheBetweenOperations) {\n emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?\n options.emptyCacheBetweenOperations : false;\n }\n\n // Install the error reformatter\n if (!errorFormatterInstalled) {\n errorFormatterInstalled = true;\n Error.prepareStackTrace = prepareStackTrace;\n }\n\n if (!uncaughtShimInstalled) {\n var installHandler = 'handleUncaughtExceptions' in options ?\n options.handleUncaughtExceptions : true;\n\n // Do not override 'uncaughtException' with our own handler in Node.js\n // Worker threads. Workers pass the error to the main thread as an event,\n // rather than printing something to stderr and exiting.\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by WebPack/Browserify.\n var worker_threads = dynamicRequire(module, 'worker_threads');\n if (worker_threads.isMainThread === false) {\n installHandler = false;\n }\n } catch(e) {}\n\n // Provide the option to not install the uncaught exception handler. This is\n // to support other uncaught exception handlers (in test frameworks, for\n // example). If this handler is not installed and there are no other uncaught\n // exception handlers, uncaught exceptions will be caught by node's built-in\n // exception handler and the process will still be terminated. However, the\n // generated JavaScript code will be shown above the stack trace instead of\n // the original source code.\n if (installHandler && hasGlobalProcessEventEmitter()) {\n uncaughtShimInstalled = true;\n shimEmitUncaughtException();\n }\n }\n};\n\nexports.resetRetrieveHandlers = function() {\n retrieveFileHandlers.length = 0;\n retrieveMapHandlers.length = 0;\n\n retrieveFileHandlers = originalRetrieveFileHandlers.slice(0);\n retrieveMapHandlers = originalRetrieveMapHandlers.slice(0);\n\n retrieveSourceMap = handlerExec(retrieveMapHandlers);\n retrieveFile = handlerExec(retrieveFileHandlers);\n}\n","// ISC @ Julien Fontanet\n\n\"use strict\";\n\n// ===================================================================\n\nvar construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined;\nvar defineProperty = Object.defineProperty;\n\n// -------------------------------------------------------------------\n\nvar captureStackTrace = Error.captureStackTrace;\nif (captureStackTrace === undefined) {\n captureStackTrace = function captureStackTrace(error) {\n var container = new Error();\n\n defineProperty(error, \"stack\", {\n configurable: true,\n get: function getStack() {\n var stack = container.stack;\n\n // Replace property with value for faster future accesses.\n defineProperty(this, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n\n return stack;\n },\n set: function setStack(stack) {\n defineProperty(error, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n },\n });\n };\n}\n\n// -------------------------------------------------------------------\n\nfunction BaseError(message) {\n if (message !== undefined) {\n defineProperty(this, \"message\", {\n configurable: true,\n value: message,\n writable: true,\n });\n }\n\n var cname = this.constructor.name;\n if (cname !== undefined && cname !== this.name) {\n defineProperty(this, \"name\", {\n configurable: true,\n value: cname,\n writable: true,\n });\n }\n\n captureStackTrace(this, this.constructor);\n}\n\nBaseError.prototype = Object.create(Error.prototype, {\n // See: https://github.com/JsCommunity/make-error/issues/4\n constructor: {\n configurable: true,\n value: BaseError,\n writable: true,\n },\n});\n\n// -------------------------------------------------------------------\n\n// Sets the name of a function if possible (depends of the JS engine).\nvar setFunctionName = (function() {\n function setFunctionName(fn, name) {\n return defineProperty(fn, \"name\", {\n configurable: true,\n value: name,\n });\n }\n try {\n var f = function() {};\n setFunctionName(f, \"foo\");\n if (f.name === \"foo\") {\n return setFunctionName;\n }\n } catch (_) {}\n})();\n\n// -------------------------------------------------------------------\n\nfunction makeError(constructor, super_) {\n if (super_ == null || super_ === Error) {\n super_ = BaseError;\n } else if (typeof super_ !== \"function\") {\n throw new TypeError(\"super_ should be a function\");\n }\n\n var name;\n if (typeof constructor === \"string\") {\n name = constructor;\n constructor =\n construct !== undefined\n ? function() {\n return construct(super_, arguments, this.constructor);\n }\n : function() {\n super_.apply(this, arguments);\n };\n\n // If the name can be set, do it once and for all.\n if (setFunctionName !== undefined) {\n setFunctionName(constructor, name);\n name = undefined;\n }\n } else if (typeof constructor !== \"function\") {\n throw new TypeError(\"constructor should be either a string or a function\");\n }\n\n // Also register the super constructor also as `constructor.super_` just\n // like Node's `util.inherits()`.\n //\n // eslint-disable-next-line dot-notation\n constructor.super_ = constructor[\"super\"] = super_;\n\n var properties = {\n constructor: {\n configurable: true,\n value: constructor,\n writable: true,\n },\n };\n\n // If the name could not be set on the constructor, set it on the\n // prototype.\n if (name !== undefined) {\n properties.name = {\n configurable: true,\n value: name,\n writable: true,\n };\n }\n constructor.prototype = Object.create(super_.prototype, properties);\n\n return constructor;\n}\nexports = module.exports = makeError;\nexports.BaseError = BaseError;\n","'use strict';\n\nconst YES_MATCH_SCORE_THRESHOLD = 2;\nconst NO_MATCH_SCORE_THRESHOLD = 1.25;\n\nconst yMatch = new Map([\n\t[5, 0.25],\n\t[6, 0.25],\n\t[7, 0.25],\n\t['t', 0.75],\n\t['y', 1],\n\t['u', 0.75],\n\t['g', 0.25],\n\t['h', 0.25],\n\t['j', 0.25]\n]);\n\nconst eMatch = new Map([\n\t[2, 0.25],\n\t[3, 0.25],\n\t[4, 0.25],\n\t['w', 0.75],\n\t['e', 1],\n\t['r', 0.75],\n\t['s', 0.25],\n\t['d', 0.25],\n\t['f', 0.25]\n]);\n\nconst sMatch = new Map([\n\t['q', 0.25],\n\t['w', 0.25],\n\t['e', 0.25],\n\t['a', 0.75],\n\t['s', 1],\n\t['d', 0.75],\n\t['z', 0.25],\n\t['x', 0.25],\n\t['c', 0.25]\n]);\n\nconst nMatch = new Map([\n\t['h', 0.25],\n\t['j', 0.25],\n\t['k', 0.25],\n\t['b', 0.75],\n\t['n', 1],\n\t['m', 0.75]\n]);\n\nconst oMatch = new Map([\n\t[9, 0.25],\n\t[0, 0.25],\n\t['i', 0.75],\n\t['o', 1],\n\t['p', 0.75],\n\t['k', 0.25],\n\t['l', 0.25]\n]);\n\nfunction getYesMatchScore(value) {\n\tconst [y, e, s] = value;\n\tlet score = 0;\n\n\tif (yMatch.has(y)) {\n\t\tscore += yMatch.get(y);\n\t}\n\n\tif (eMatch.has(e)) {\n\t\tscore += eMatch.get(e);\n\t}\n\n\tif (sMatch.has(s)) {\n\t\tscore += sMatch.get(s);\n\t}\n\n\treturn score;\n}\n\nfunction getNoMatchScore(value) {\n\tconst [n, o] = value;\n\tlet score = 0;\n\n\tif (nMatch.has(n)) {\n\t\tscore += nMatch.get(n);\n\t}\n\n\tif (oMatch.has(o)) {\n\t\tscore += oMatch.get(o);\n\t}\n\n\treturn score;\n}\n\nmodule.exports = (input, options) => {\n\tif (getYesMatchScore(input) >= YES_MATCH_SCORE_THRESHOLD) {\n\t\treturn true;\n\t}\n\n\tif (getNoMatchScore(input) >= NO_MATCH_SCORE_THRESHOLD) {\n\t\treturn false;\n\t}\n\n\treturn options.default;\n};\n","'use strict';\nconst lenient = require('./lenient');\n\nconst yn = (input, options) => {\n\tinput = String(input).trim();\n\n\toptions = Object.assign({\n\t\tlenient: false,\n\t\tdefault: null\n\t}, options);\n\n\tif (options.default !== null && typeof options.default !== 'boolean') {\n\t\tthrow new TypeError(`Expected the \\`default\\` option to be of type \\`boolean\\`, got \\`${typeof options.default}\\``);\n\t}\n\n\tif (/^(?:y|yes|true|1)$/i.test(input)) {\n\t\treturn true;\n\t}\n\n\tif (/^(?:n|no|false|0)$/i.test(input)) {\n\t\treturn false;\n\t}\n\n\tif (options.lenient === true) {\n\t\treturn lenient(input, options);\n\t}\n\n\treturn options.default;\n};\n\nmodule.exports = yn;\n// TODO: Remove this for the next major release\nmodule.exports.default = yn;\n","const nativeModule = require('module')\nconst path = require('path')\nconst fs = require('fs')\n\nfunction createRequire (filename) {\n // Fallback to process.cwd() if no filename passed\n if (!filename) {\n filename = process.cwd()\n }\n\n // If filename is dir, createRequire goes with parent directory, so we need fakepath\n if (isDir(filename)) {\n filename = path.join(filename, 'index.js')\n }\n\n // Added in Node v12.2.0\n if (nativeModule.createRequire) {\n return nativeModule.createRequire(filename)\n }\n\n // Added in Node v10.12.0 and deprecated since Node v12.2.0\n if (nativeModule.createRequireFromPath) {\n return nativeModule.createRequireFromPath(filename)\n }\n\n // Polyfill\n return _createRequire(filename)\n}\n\n// Polyfill\nfunction _createRequire (filename) {\n const mod = new nativeModule.Module(filename, null)\n mod.filename = filename\n mod.paths = nativeModule.Module._nodeModulePaths(path.dirname(filename))\n mod._compile('module.exports = require;', filename)\n return mod.exports\n}\n\nfunction isDir (path) {\n try {\n const stat = fs.lstatSync(path)\n return stat.isDirectory()\n } catch (e) {\n // lstatSync throws an error if path doesn't exist\n return false\n }\n}\n\nmodule.exports = createRequire\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.trace = exports.cachedLookup = exports.hasOwnProperty = exports.normalizeSlashes = exports.parse = exports.split = exports.assign = exports.yn = exports.createRequire = void 0;\nconst module_1 = require(\"module\");\nconst ynModule = require(\"yn\");\n/** @internal */\nexports.createRequire = (_a = module_1.createRequire !== null && module_1.createRequire !== void 0 ? module_1.createRequire : module_1.createRequireFromPath) !== null && _a !== void 0 ? _a : require('create-require');\n/**\n * Wrapper around yn module that returns `undefined` instead of `null`.\n * This is implemented by yn v4, but we're staying on v3 to avoid v4's node 10 requirement.\n * @internal\n */\nfunction yn(value) {\n var _a;\n return (_a = ynModule(value)) !== null && _a !== void 0 ? _a : undefined;\n}\nexports.yn = yn;\n/**\n * Like `Object.assign`, but ignores `undefined` properties.\n *\n * @internal\n */\nfunction assign(initialValue, ...sources) {\n for (const source of sources) {\n for (const key of Object.keys(source)) {\n const value = source[key];\n if (value !== undefined)\n initialValue[key] = value;\n }\n }\n return initialValue;\n}\nexports.assign = assign;\n/**\n * Split a string array of values.\n * @internal\n */\nfunction split(value) {\n return typeof value === 'string' ? value.split(/ *, */g) : undefined;\n}\nexports.split = split;\n/**\n * Parse a string as JSON.\n * @internal\n */\nfunction parse(value) {\n return typeof value === 'string' ? JSON.parse(value) : undefined;\n}\nexports.parse = parse;\nconst directorySeparator = '/';\nconst backslashRegExp = /\\\\/g;\n/**\n * Replace backslashes with forward slashes.\n * @internal\n */\nfunction normalizeSlashes(value) {\n return value.replace(backslashRegExp, directorySeparator);\n}\nexports.normalizeSlashes = normalizeSlashes;\n/**\n * Safe `hasOwnProperty`\n * @internal\n */\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\nexports.hasOwnProperty = hasOwnProperty;\n/**\n * Cached fs operation wrapper.\n */\nfunction cachedLookup(fn) {\n const cache = new Map();\n return (arg) => {\n if (!cache.has(arg)) {\n const v = fn(arg);\n cache.set(arg, v);\n return v;\n }\n return cache.get(arg);\n };\n}\nexports.cachedLookup = cachedLookup;\n/**\n * We do not support ts's `trace` option yet. In the meantime, rather than omit\n * `trace` options in hosts, I am using this placeholder.\n */\nfunction trace(s) { }\nexports.trace = trace;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPatternFromSpec = exports.createTsInternals = void 0;\nconst path_1 = require(\"path\");\nconst util_1 = require(\"./util\");\n/** @internal */\nexports.createTsInternals = util_1.cachedLookup(createTsInternalsUncached);\n/**\n * Given a reference to the TS compiler, return some TS internal functions that we\n * could not or did not want to grab off the `ts` object.\n * These have been copy-pasted from TS's source and tweaked as necessary.\n *\n * NOTE: This factory returns *only* functions which need a reference to the TS\n * compiler. Other functions do not need a reference to the TS compiler so are\n * exported directly from this file.\n */\nfunction createTsInternalsUncached(_ts) {\n const ts = _ts;\n /**\n * Copied from:\n * https://github.com/microsoft/TypeScript/blob/v4.3.2/src/compiler/commandLineParser.ts#L2821-L2846\n */\n function getExtendsConfigPath(extendedConfig, host, basePath, errors, createDiagnostic) {\n extendedConfig = util_1.normalizeSlashes(extendedConfig);\n if (isRootedDiskPath(extendedConfig) ||\n startsWith(extendedConfig, './') ||\n startsWith(extendedConfig, '../')) {\n let extendedConfigPath = getNormalizedAbsolutePath(extendedConfig, basePath);\n if (!host.fileExists(extendedConfigPath) &&\n !endsWith(extendedConfigPath, ts.Extension.Json)) {\n extendedConfigPath = `${extendedConfigPath}.json`;\n if (!host.fileExists(extendedConfigPath)) {\n errors.push(createDiagnostic(ts.Diagnostics.File_0_not_found, extendedConfig));\n return undefined;\n }\n }\n return extendedConfigPath;\n }\n // If the path isn't a rooted or relative path, resolve like a module\n const resolved = ts.nodeModuleNameResolver(extendedConfig, combinePaths(basePath, 'tsconfig.json'), { moduleResolution: ts.ModuleResolutionKind.NodeJs }, host, \n /*cache*/ undefined, \n /*projectRefs*/ undefined, \n /*lookupConfig*/ true);\n if (resolved.resolvedModule) {\n return resolved.resolvedModule.resolvedFileName;\n }\n errors.push(createDiagnostic(ts.Diagnostics.File_0_not_found, extendedConfig));\n return undefined;\n }\n return { getExtendsConfigPath };\n}\n// These functions have alternative implementation to avoid copying too much from TS\nfunction isRootedDiskPath(path) {\n return path_1.isAbsolute(path);\n}\nfunction combinePaths(path, ...paths) {\n return util_1.normalizeSlashes(path_1.resolve(path, ...paths.filter((path) => path)));\n}\nfunction getNormalizedAbsolutePath(fileName, currentDirectory) {\n return util_1.normalizeSlashes(currentDirectory != null\n ? path_1.resolve(currentDirectory, fileName)\n : path_1.resolve(fileName));\n}\nfunction startsWith(str, prefix) {\n return str.lastIndexOf(prefix, 0) === 0;\n}\nfunction endsWith(str, suffix) {\n const expectedPos = str.length - suffix.length;\n return expectedPos >= 0 && str.indexOf(suffix, expectedPos) === expectedPos;\n}\n// Reserved characters, forces escaping of any non-word (or digit), non-whitespace character.\n// It may be inefficient (we could just match (/[-[\\]{}()*+?.,\\\\^$|#\\s]/g), but this is future\n// proof.\nconst reservedCharacterPattern = /[^\\w\\s\\/]/g;\n/**\n * @internal\n * See also: getRegularExpressionForWildcard, which seems to do almost the same thing\n */\nfunction getPatternFromSpec(spec, basePath) {\n const pattern = spec && getSubPatternFromSpec(spec, basePath, excludeMatcher);\n return pattern && `^(${pattern})${'($|/)'}`;\n}\nexports.getPatternFromSpec = getPatternFromSpec;\nfunction getSubPatternFromSpec(spec, basePath, { singleAsteriskRegexFragment, doubleAsteriskRegexFragment, replaceWildcardCharacter, }) {\n let subpattern = '';\n let hasWrittenComponent = false;\n const components = getNormalizedPathComponents(spec, basePath);\n const lastComponent = last(components);\n // getNormalizedPathComponents includes the separator for the root component.\n // We need to remove to create our regex correctly.\n components[0] = removeTrailingDirectorySeparator(components[0]);\n if (isImplicitGlob(lastComponent)) {\n components.push('**', '*');\n }\n let optionalCount = 0;\n for (let component of components) {\n if (component === '**') {\n subpattern += doubleAsteriskRegexFragment;\n }\n else {\n if (hasWrittenComponent) {\n subpattern += directorySeparator;\n }\n subpattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter);\n }\n hasWrittenComponent = true;\n }\n while (optionalCount > 0) {\n subpattern += ')?';\n optionalCount--;\n }\n return subpattern;\n}\nconst directoriesMatcher = {\n singleAsteriskRegexFragment: '[^/]*',\n /**\n * Regex for the ** wildcard. Matches any num of subdirectories. When used for including\n * files or directories, does not match subdirectories that start with a . character\n */\n doubleAsteriskRegexFragment: `(/[^/.][^/]*)*?`,\n replaceWildcardCharacter: (match) => replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment),\n};\nconst excludeMatcher = {\n singleAsteriskRegexFragment: '[^/]*',\n doubleAsteriskRegexFragment: '(/.+?)?',\n replaceWildcardCharacter: (match) => replaceWildcardCharacter(match, excludeMatcher.singleAsteriskRegexFragment),\n};\nfunction getNormalizedPathComponents(path, currentDirectory) {\n return reducePathComponents(getPathComponents(path, currentDirectory));\n}\nfunction getPathComponents(path, currentDirectory = '') {\n path = combinePaths(currentDirectory, path);\n return pathComponents(path, getRootLength(path));\n}\nfunction reducePathComponents(components) {\n if (!some(components))\n return [];\n const reduced = [components[0]];\n for (let i = 1; i < components.length; i++) {\n const component = components[i];\n if (!component)\n continue;\n if (component === '.')\n continue;\n if (component === '..') {\n if (reduced.length > 1) {\n if (reduced[reduced.length - 1] !== '..') {\n reduced.pop();\n continue;\n }\n }\n else if (reduced[0])\n continue;\n }\n reduced.push(component);\n }\n return reduced;\n}\nfunction getRootLength(path) {\n const rootLength = getEncodedRootLength(path);\n return rootLength < 0 ? ~rootLength : rootLength;\n}\nfunction getEncodedRootLength(path) {\n if (!path)\n return 0;\n const ch0 = path.charCodeAt(0);\n // POSIX or UNC\n if (ch0 === 47 /* slash */ || ch0 === 92 /* backslash */) {\n if (path.charCodeAt(1) !== ch0)\n return 1; // POSIX: \"/\" (or non-normalized \"\\\")\n const p1 = path.indexOf(ch0 === 47 /* slash */ ? directorySeparator : altDirectorySeparator, 2);\n if (p1 < 0)\n return path.length; // UNC: \"//server\" or \"\\\\server\"\n return p1 + 1; // UNC: \"//server/\" or \"\\\\server\\\"\n }\n // DOS\n if (isVolumeCharacter(ch0) && path.charCodeAt(1) === 58 /* colon */) {\n const ch2 = path.charCodeAt(2);\n if (ch2 === 47 /* slash */ || ch2 === 92 /* backslash */)\n return 3; // DOS: \"c:/\" or \"c:\\\"\n if (path.length === 2)\n return 2; // DOS: \"c:\" (but not \"c:d\")\n }\n // URL\n const schemeEnd = path.indexOf(urlSchemeSeparator);\n if (schemeEnd !== -1) {\n const authorityStart = schemeEnd + urlSchemeSeparator.length;\n const authorityEnd = path.indexOf(directorySeparator, authorityStart);\n if (authorityEnd !== -1) {\n // URL: \"file:///\", \"file://server/\", \"file://server/path\"\n // For local \"file\" URLs, include the leading DOS volume (if present).\n // Per https://www.ietf.org/rfc/rfc1738.txt, a host of \"\" or \"localhost\" is a\n // special case interpreted as \"the machine from which the URL is being interpreted\".\n const scheme = path.slice(0, schemeEnd);\n const authority = path.slice(authorityStart, authorityEnd);\n if (scheme === 'file' &&\n (authority === '' || authority === 'localhost') &&\n isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) {\n const volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2);\n if (volumeSeparatorEnd !== -1) {\n if (path.charCodeAt(volumeSeparatorEnd) === 47 /* slash */) {\n // URL: \"file:///c:/\", \"file://localhost/c:/\", \"file:///c%3a/\", \"file://localhost/c%3a/\"\n return ~(volumeSeparatorEnd + 1);\n }\n if (volumeSeparatorEnd === path.length) {\n // URL: \"file:///c:\", \"file://localhost/c:\", \"file:///c$3a\", \"file://localhost/c%3a\"\n // but not \"file:///c:d\" or \"file:///c%3ad\"\n return ~volumeSeparatorEnd;\n }\n }\n }\n return ~(authorityEnd + 1); // URL: \"file://server/\", \"http://server/\"\n }\n return ~path.length; // URL: \"file://server\", \"http://server\"\n }\n // relative\n return 0;\n}\nfunction ensureTrailingDirectorySeparator(path) {\n if (!hasTrailingDirectorySeparator(path)) {\n return path + directorySeparator;\n }\n return path;\n}\nfunction hasTrailingDirectorySeparator(path) {\n return (path.length > 0 && isAnyDirectorySeparator(path.charCodeAt(path.length - 1)));\n}\nfunction isAnyDirectorySeparator(charCode) {\n return (charCode === 47 /* slash */ || charCode === 92 /* backslash */);\n}\nfunction removeTrailingDirectorySeparator(path) {\n if (hasTrailingDirectorySeparator(path)) {\n return path.substr(0, path.length - 1);\n }\n return path;\n}\nconst directorySeparator = '/';\nconst altDirectorySeparator = '\\\\';\nconst urlSchemeSeparator = '://';\nfunction isVolumeCharacter(charCode) {\n return ((charCode >= 97 /* a */ && charCode <= 122 /* z */) ||\n (charCode >= 65 /* A */ && charCode <= 90 /* Z */));\n}\nfunction getFileUrlVolumeSeparatorEnd(url, start) {\n const ch0 = url.charCodeAt(start);\n if (ch0 === 58 /* colon */)\n return start + 1;\n if (ch0 === 37 /* percent */ &&\n url.charCodeAt(start + 1) === 51 /* _3 */) {\n const ch2 = url.charCodeAt(start + 2);\n if (ch2 === 97 /* a */ || ch2 === 65 /* A */)\n return start + 3;\n }\n return -1;\n}\nfunction some(array, predicate) {\n if (array) {\n if (predicate) {\n for (const v of array) {\n if (predicate(v)) {\n return true;\n }\n }\n }\n else {\n return array.length > 0;\n }\n }\n return false;\n}\nfunction pathComponents(path, rootLength) {\n const root = path.substring(0, rootLength);\n const rest = path.substring(rootLength).split(directorySeparator);\n if (rest.length && !lastOrUndefined(rest))\n rest.pop();\n return [root, ...rest];\n}\nfunction lastOrUndefined(array) {\n return array.length === 0 ? undefined : array[array.length - 1];\n}\nfunction last(array) {\n // Debug.assert(array.length !== 0);\n return array[array.length - 1];\n}\nfunction replaceWildcardCharacter(match, singleAsteriskRegexFragment) {\n return match === '*'\n ? singleAsteriskRegexFragment\n : match === '?'\n ? '[^/]'\n : '\\\\' + match;\n}\n/**\n * An \"includes\" path \"foo\" is implicitly a glob \"foo/** /*\" (without the space) if its last component has no extension,\n * and does not contain any glob characters itself.\n */\nfunction isImplicitGlob(lastPathComponent) {\n return !/[.*?]/.test(lastPathComponent);\n}\n//# sourceMappingURL=ts-internals.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultTsconfigJsonForNodeVersion = void 0;\nconst nodeMajor = parseInt(process.versions.node.split('.')[0], 10);\n/**\n * return parsed JSON of the bundled @tsconfig/bases config appropriate for the\n * running version of nodejs\n * @internal\n */\nfunction getDefaultTsconfigJsonForNodeVersion(ts) {\n const tsInternal = ts;\n if (nodeMajor >= 16) {\n const config = require('@tsconfig/node16/tsconfig.json');\n if (configCompatible(config))\n return config;\n }\n if (nodeMajor >= 14) {\n const config = require('@tsconfig/node14/tsconfig.json');\n if (configCompatible(config))\n return config;\n }\n if (nodeMajor >= 12) {\n const config = require('@tsconfig/node12/tsconfig.json');\n if (configCompatible(config))\n return config;\n }\n return require('@tsconfig/node10/tsconfig.json');\n // Verify that tsconfig target and lib options are compatible with TypeScript compiler\n function configCompatible(config) {\n return (typeof ts.ScriptTarget[config.compilerOptions.target.toUpperCase()] === 'number' &&\n tsInternal.libs &&\n config.compilerOptions.lib.every((lib) => tsInternal.libs.includes(lib)));\n }\n}\nexports.getDefaultTsconfigJsonForNodeVersion = getDefaultTsconfigJsonForNodeVersion;\n//# sourceMappingURL=tsconfigs.js.map","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readConfig = void 0;\nconst path_1 = require(\"path\");\nconst index_1 = require(\"./index\");\nconst ts_internals_1 = require(\"./ts-internals\");\nconst tsconfigs_1 = require(\"./tsconfigs\");\nconst util_1 = require(\"./util\");\n/**\n * TypeScript compiler option values required by `ts-node` which cannot be overridden.\n */\nconst TS_NODE_COMPILER_OPTIONS = {\n sourceMap: true,\n inlineSourceMap: false,\n inlineSources: true,\n declaration: false,\n noEmit: false,\n outDir: '.ts-node',\n};\n/*\n * Do post-processing on config options to support `ts-node`.\n */\nfunction fixConfig(ts, config) {\n // Delete options that *should not* be passed through.\n delete config.options.out;\n delete config.options.outFile;\n delete config.options.composite;\n delete config.options.declarationDir;\n delete config.options.declarationMap;\n delete config.options.emitDeclarationOnly;\n // Target ES5 output by default (instead of ES3).\n if (config.options.target === undefined) {\n config.options.target = ts.ScriptTarget.ES5;\n }\n // Target CommonJS modules by default (instead of magically switching to ES6 when the target is ES6).\n if (config.options.module === undefined) {\n config.options.module = ts.ModuleKind.CommonJS;\n }\n return config;\n}\n/**\n * Load TypeScript configuration. Returns the parsed TypeScript config and\n * any `ts-node` options specified in the config file.\n *\n * Even when a tsconfig.json is not loaded, this function still handles merging\n * compilerOptions from various sources: API, environment variables, etc.\n *\n * @internal\n */\nfunction readConfig(cwd, ts, rawApiOptions) {\n var _a, _b, _c;\n // Ordered [a, b, c] where config a extends b extends c\n const configChain = [];\n let config = { compilerOptions: {} };\n let basePath = cwd;\n let configFilePath = undefined;\n const projectSearchDir = path_1.resolve(cwd, (_a = rawApiOptions.projectSearchDir) !== null && _a !== void 0 ? _a : cwd);\n const { fileExists = ts.sys.fileExists, readFile = ts.sys.readFile, skipProject = index_1.DEFAULTS.skipProject, project = index_1.DEFAULTS.project, } = rawApiOptions;\n // Read project configuration when available.\n if (!skipProject) {\n configFilePath = project\n ? path_1.resolve(cwd, project)\n : ts.findConfigFile(projectSearchDir, fileExists);\n if (configFilePath) {\n let pathToNextConfigInChain = configFilePath;\n const tsInternals = ts_internals_1.createTsInternals(ts);\n const errors = [];\n // Follow chain of \"extends\"\n while (true) {\n const result = ts.readConfigFile(pathToNextConfigInChain, readFile);\n // Return diagnostics.\n if (result.error) {\n return {\n configFilePath,\n config: { errors: [result.error], fileNames: [], options: {} },\n tsNodeOptionsFromTsconfig: {},\n optionBasePaths: {},\n };\n }\n const c = result.config;\n const bp = path_1.dirname(pathToNextConfigInChain);\n configChain.push({\n config: c,\n basePath: bp,\n configPath: pathToNextConfigInChain,\n });\n if (c.extends == null)\n break;\n const resolvedExtendedConfigPath = tsInternals.getExtendsConfigPath(c.extends, {\n fileExists,\n readDirectory: ts.sys.readDirectory,\n readFile,\n useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,\n trace: util_1.trace,\n }, bp, errors, ts.createCompilerDiagnostic);\n if (errors.length) {\n return {\n configFilePath,\n config: { errors, fileNames: [], options: {} },\n tsNodeOptionsFromTsconfig: {},\n optionBasePaths: {},\n };\n }\n if (resolvedExtendedConfigPath == null)\n break;\n pathToNextConfigInChain = resolvedExtendedConfigPath;\n }\n ({ config, basePath } = configChain[0]);\n }\n }\n // Merge and fix ts-node options that come from tsconfig.json(s)\n const tsNodeOptionsFromTsconfig = {};\n const optionBasePaths = {};\n for (let i = configChain.length - 1; i >= 0; i--) {\n const { config, basePath, configPath } = configChain[i];\n const options = filterRecognizedTsConfigTsNodeOptions(config['ts-node'])\n .recognized;\n // Some options are relative to the config file, so must be converted to absolute paths here\n if (options.require) {\n // Modules are found relative to the tsconfig file, not the `dir` option\n const tsconfigRelativeRequire = util_1.createRequire(configPath);\n options.require = options.require.map((path) => tsconfigRelativeRequire.resolve(path));\n }\n if (options.scopeDir) {\n options.scopeDir = path_1.resolve(basePath, options.scopeDir);\n }\n // Downstream code uses the basePath; we do not do that here.\n if (options.moduleTypes) {\n optionBasePaths.moduleTypes = basePath;\n }\n util_1.assign(tsNodeOptionsFromTsconfig, options);\n }\n // Remove resolution of \"files\".\n const files = (_c = (_b = rawApiOptions.files) !== null && _b !== void 0 ? _b : tsNodeOptionsFromTsconfig.files) !== null && _c !== void 0 ? _c : index_1.DEFAULTS.files;\n if (!files) {\n config.files = [];\n config.include = [];\n }\n // Only if a config file is *not* loaded, load an implicit configuration from @tsconfig/bases\n const skipDefaultCompilerOptions = configFilePath != null;\n const defaultCompilerOptionsForNodeVersion = skipDefaultCompilerOptions\n ? undefined\n : Object.assign(Object.assign({}, tsconfigs_1.getDefaultTsconfigJsonForNodeVersion(ts).compilerOptions), { types: ['node'] });\n // Merge compilerOptions from all sources\n config.compilerOptions = Object.assign({}, \n // automatically-applied options from @tsconfig/bases\n defaultCompilerOptionsForNodeVersion, \n // tsconfig.json \"compilerOptions\"\n config.compilerOptions, \n // from env var\n index_1.DEFAULTS.compilerOptions, \n // tsconfig.json \"ts-node\": \"compilerOptions\"\n tsNodeOptionsFromTsconfig.compilerOptions, \n // passed programmatically\n rawApiOptions.compilerOptions, \n // overrides required by ts-node, cannot be changed\n TS_NODE_COMPILER_OPTIONS);\n const fixedConfig = fixConfig(ts, ts.parseJsonConfigFileContent(config, {\n fileExists,\n readFile,\n readDirectory: ts.sys.readDirectory,\n useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,\n }, basePath, undefined, configFilePath));\n return {\n configFilePath,\n config: fixedConfig,\n tsNodeOptionsFromTsconfig,\n optionBasePaths,\n };\n}\nexports.readConfig = readConfig;\n/**\n * Given the raw \"ts-node\" sub-object from a tsconfig, return an object with only the properties\n * recognized by \"ts-node\"\n */\nfunction filterRecognizedTsConfigTsNodeOptions(jsonObject) {\n if (jsonObject == null)\n return { recognized: {}, unrecognized: {} };\n const _a = jsonObject, { compiler, compilerHost, compilerOptions, emit, files, ignore, ignoreDiagnostics, logError, preferTsExts, pretty, require, skipIgnore, transpileOnly, typeCheck, transpiler, scope, scopeDir, moduleTypes, experimentalReplAwait } = _a, unrecognized = __rest(_a, [\"compiler\", \"compilerHost\", \"compilerOptions\", \"emit\", \"files\", \"ignore\", \"ignoreDiagnostics\", \"logError\", \"preferTsExts\", \"pretty\", \"require\", \"skipIgnore\", \"transpileOnly\", \"typeCheck\", \"transpiler\", \"scope\", \"scopeDir\", \"moduleTypes\", \"experimentalReplAwait\"]);\n const filteredTsConfigOptions = {\n compiler,\n compilerHost,\n compilerOptions,\n emit,\n experimentalReplAwait,\n files,\n ignore,\n ignoreDiagnostics,\n logError,\n preferTsExts,\n pretty,\n require,\n skipIgnore,\n transpileOnly,\n typeCheck,\n transpiler,\n scope,\n scopeDir,\n moduleTypes,\n };\n // Use the typechecker to make sure this implementation has the correct set of properties\n const catchExtraneousProps = null;\n const catchMissingProps = null;\n return { recognized: filteredTsConfigOptions, unrecognized };\n}\n//# sourceMappingURL=configuration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createModuleTypeClassifier = void 0;\nrequire(\"path\");\nconst ts_internals_1 = require(\"./ts-internals\");\nconst util_1 = require(\"./util\");\n/**\n * @internal\n * May receive non-normalized options -- basePath and patterns -- and will normalize them\n * internally.\n * However, calls to `classifyModule` must pass pre-normalized paths!\n */\nfunction createModuleTypeClassifier(options) {\n const { patterns, basePath: _basePath } = options;\n const basePath = _basePath !== undefined\n ? util_1.normalizeSlashes(_basePath).replace(/\\/$/, '')\n : undefined;\n const patternTypePairs = Object.entries(patterns !== null && patterns !== void 0 ? patterns : []).map(([_pattern, type]) => {\n const pattern = util_1.normalizeSlashes(_pattern);\n return { pattern: parsePattern(basePath, pattern), type };\n });\n const classifications = {\n package: {\n moduleType: 'package',\n },\n cjs: {\n moduleType: 'cjs',\n },\n esm: {\n moduleType: 'esm',\n },\n };\n const auto = classifications.package;\n // Passed path must be normalized!\n function classifyModuleNonCached(path) {\n const matched = matchPatterns(patternTypePairs, (_) => _.pattern, path);\n if (matched)\n return classifications[matched.type];\n return auto;\n }\n const classifyModule = util_1.cachedLookup(classifyModuleNonCached);\n function classifyModuleAuto(path) {\n return auto;\n }\n return {\n classifyModule: patternTypePairs.length\n ? classifyModule\n : classifyModuleAuto,\n };\n}\nexports.createModuleTypeClassifier = createModuleTypeClassifier;\nfunction parsePattern(basePath, patternString) {\n const pattern = ts_internals_1.getPatternFromSpec(patternString, basePath);\n return pattern !== undefined ? new RegExp(pattern) : /(?:)/;\n}\nfunction matchPatterns(objects, getPattern, candidate) {\n for (let i = objects.length - 1; i >= 0; i--) {\n const object = objects[i];\n const pattern = getPattern(object);\n if (pattern === null || pattern === void 0 ? void 0 : pattern.test(candidate)) {\n return object;\n }\n }\n}\n//# sourceMappingURL=module-type-classifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createResolverFunctions = void 0;\nconst path_1 = require(\"path\");\n/**\n * @internal\n * In a factory because these are shared across both CompilerHost and LanguageService codepaths\n */\nfunction createResolverFunctions(kwargs) {\n const { serviceHost, ts, config, cwd, getCanonicalFileName, configFilePath, } = kwargs;\n const moduleResolutionCache = ts.createModuleResolutionCache(cwd, getCanonicalFileName, config.options);\n const knownInternalFilenames = new Set();\n /** \"Buckets\" (module directories) whose contents should be marked \"internal\" */\n const internalBuckets = new Set();\n // Get bucket for a source filename. Bucket is the containing `./node_modules/*/` directory\n // For '/project/node_modules/foo/node_modules/bar/lib/index.js' bucket is '/project/node_modules/foo/node_modules/bar/'\n // For '/project/node_modules/foo/node_modules/@scope/bar/lib/index.js' bucket is '/project/node_modules/foo/node_modules/@scope/bar/'\n const moduleBucketRe = /.*\\/node_modules\\/(?:@[^\\/]+\\/)?[^\\/]+\\//;\n function getModuleBucket(filename) {\n const find = moduleBucketRe.exec(filename);\n if (find)\n return find[0];\n return '';\n }\n // Mark that this file and all siblings in its bucket should be \"internal\"\n function markBucketOfFilenameInternal(filename) {\n internalBuckets.add(getModuleBucket(filename));\n }\n function isFileInInternalBucket(filename) {\n return internalBuckets.has(getModuleBucket(filename));\n }\n function isFileKnownToBeInternal(filename) {\n return knownInternalFilenames.has(filename);\n }\n /**\n * If we need to emit JS for a file, force TS to consider it non-external\n */\n const fixupResolvedModule = (resolvedModule) => {\n const { resolvedFileName } = resolvedModule;\n if (resolvedFileName === undefined)\n return;\n // .ts is always switched to internal\n // .js is switched on-demand\n if (resolvedModule.isExternalLibraryImport &&\n ((resolvedFileName.endsWith('.ts') &&\n !resolvedFileName.endsWith('.d.ts')) ||\n isFileKnownToBeInternal(resolvedFileName) ||\n isFileInInternalBucket(resolvedFileName))) {\n resolvedModule.isExternalLibraryImport = false;\n }\n if (!resolvedModule.isExternalLibraryImport) {\n knownInternalFilenames.add(resolvedFileName);\n }\n };\n /*\n * NOTE:\n * Older ts versions do not pass `redirectedReference` nor `options`.\n * We must pass `redirectedReference` to newer ts versions, but cannot rely on `options`, hence the weird argument name\n */\n const resolveModuleNames = (moduleNames, containingFile, reusedNames, redirectedReference, optionsOnlyWithNewerTsVersions) => {\n return moduleNames.map((moduleName) => {\n const { resolvedModule } = ts.resolveModuleName(moduleName, containingFile, config.options, serviceHost, moduleResolutionCache, redirectedReference);\n if (resolvedModule) {\n fixupResolvedModule(resolvedModule);\n }\n return resolvedModule;\n });\n };\n // language service never calls this, but TS docs recommend that we implement it\n const getResolvedModuleWithFailedLookupLocationsFromCache = (moduleName, containingFile) => {\n const ret = ts.resolveModuleNameFromCache(moduleName, containingFile, moduleResolutionCache);\n if (ret && ret.resolvedModule) {\n fixupResolvedModule(ret.resolvedModule);\n }\n return ret;\n };\n const resolveTypeReferenceDirectives = (typeDirectiveNames, containingFile, redirectedReference, options) => {\n // Note: seems to be called with empty typeDirectiveNames array for all files.\n return typeDirectiveNames.map((typeDirectiveName) => {\n let { resolvedTypeReferenceDirective } = ts.resolveTypeReferenceDirective(typeDirectiveName, containingFile, config.options, serviceHost, redirectedReference);\n if (typeDirectiveName === 'node' && !resolvedTypeReferenceDirective) {\n // Resolve @types/node relative to project first, then __dirname (copy logic from elsewhere / refactor into reusable function)\n let typesNodePackageJsonPath;\n try {\n typesNodePackageJsonPath = require.resolve('@types/node/package.json', {\n paths: [configFilePath !== null && configFilePath !== void 0 ? configFilePath : cwd, __dirname],\n });\n }\n catch (_a) { } // gracefully do nothing when @types/node is not installed for any reason\n if (typesNodePackageJsonPath) {\n const typeRoots = [path_1.resolve(typesNodePackageJsonPath, '../..')];\n ({\n resolvedTypeReferenceDirective,\n } = ts.resolveTypeReferenceDirective(typeDirectiveName, containingFile, Object.assign(Object.assign({}, config.options), { typeRoots }), serviceHost, redirectedReference));\n }\n }\n if (resolvedTypeReferenceDirective) {\n fixupResolvedModule(resolvedTypeReferenceDirective);\n }\n return resolvedTypeReferenceDirective;\n });\n };\n return {\n resolveModuleNames,\n getResolvedModuleWithFailedLookupLocationsFromCache,\n resolveTypeReferenceDirectives,\n isFileKnownToBeInternal,\n markBucketOfFilenameInternal,\n };\n}\nexports.createResolverFunctions = createResolverFunctions;\n//# sourceMappingURL=resolver-functions.js.map","function Diff() {}\nDiff.prototype = {\n diff: function diff(oldString, newString) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = options.callback;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = options;\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n } // Allow subclasses to massage the input prior to running\n\n\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{\n value: this.join(newString),\n count: newString.length\n }]);\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath = void 0;\n\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced.\n\n\n if (callback) {\n (function exec() {\n setTimeout(function () {\n // This should not happen, but we want to be safe.\n\n /* istanbul ignore next */\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n }\n },\n pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n equals: function equals(left, right) {\n if (this.options.comparator) {\n return this.options.comparator(left, right);\n } else {\n return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n removeEmpty: function removeEmpty(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n\n return ret;\n },\n castInput: function castInput(value) {\n return value;\n },\n tokenize: function tokenize(value) {\n return value.split('');\n },\n join: function join(chars) {\n return chars.join('');\n }\n};\n\nfunction buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = diff.join(value);\n } else {\n component.value = diff.join(newString.slice(newPos, newPos + component.count));\n }\n\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n } // Special case handle for when one terminal is ignored (i.e. whitespace).\n // For this case we merge the terminal into the prior string and drop the change.\n // This is only available for string mode.\n\n\n var lastComponent = components[componentLen - 1];\n\n if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n}\n\nfunction clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n}\n\nvar characterDiff = new Diff();\nfunction diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n}\n\nfunction generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n\n return defaults;\n}\n\n//\n// Ranges and exceptions:\n// Latin-1 Supplement, 008000FF\n// - U+00D7 × Multiplication sign\n// - U+00F7 ÷ Division sign\n// Latin Extended-A, 0100017F\n// Latin Extended-B, 0180024F\n// IPA Extensions, 025002AF\n// Spacing Modifier Letters, 02B002FF\n// - U+02C7 ˇ &#711; Caron\n// - U+02D8 ˘ &#728; Breve\n// - U+02D9 ˙ &#729; Dot Above\n// - U+02DA ˚ &#730; Ring Above\n// - U+02DB ˛ &#731; Ogonek\n// - U+02DC ˜ &#732; Small Tilde\n// - U+02DD ˝ &#733; Double Acute Accent\n// Latin Extended Additional, 1E001EFF\n\nvar extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\nvar reWhitespace = /\\S/;\nvar wordDiff = new Diff();\n\nwordDiff.equals = function (left, right) {\n if (this.options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n};\n\nwordDiff.tokenize = function (value) {\n var tokens = value.split(/(\\s+|[()[\\]{}'\"]|\\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n};\n\nfunction diffWords(oldStr, newStr, options) {\n options = generateOptions(options, {\n ignoreWhitespace: true\n });\n return wordDiff.diff(oldStr, newStr, options);\n}\nfunction diffWordsWithSpace(oldStr, newStr, options) {\n return wordDiff.diff(oldStr, newStr, options);\n}\n\nvar lineDiff = new Diff();\n\nlineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/); // Ignore the final empty token that occurs if the string ends with a new line\n\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n } // Merge the content and line separators into single tokens\n\n\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n\n retLines.push(line);\n }\n }\n\n return retLines;\n};\n\nfunction diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n}\nfunction diffTrimmedLines(oldStr, newStr, callback) {\n var options = generateOptions(callback, {\n ignoreWhitespace: true\n });\n return lineDiff.diff(oldStr, newStr, options);\n}\n\nvar sentenceDiff = new Diff();\n\nsentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n};\n\nfunction diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n}\n\nvar cssDiff = new Diff();\n\ncssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n};\n\nfunction diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar objectPrototypeToString = Object.prototype.toString;\nvar jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n\njsonDiff.useLongestToken = true;\njsonDiff.tokenize = lineDiff.tokenize;\n\njsonDiff.castInput = function (value) {\n var _this$options = this.options,\n undefinedReplacement = _this$options.undefinedReplacement,\n _this$options$stringi = _this$options.stringifyReplacer,\n stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {\n return typeof v === 'undefined' ? undefinedReplacement : v;\n } : _this$options$stringi;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');\n};\n\njsonDiff.equals = function (left, right) {\n return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'));\n};\n\nfunction diffJson(oldObj, newObj, options) {\n return jsonDiff.diff(oldObj, newObj, options);\n} // This function handles the presence of circular references by bailing out when encountering an\n// object that is already on the \"stack\" of items being processed. Accepts an optional replacer\n\nfunction canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n if (replacer) {\n obj = replacer(key, obj);\n }\n\n var i;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n }\n\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if (_typeof(obj) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n\n var sortedKeys = [],\n _key;\n\n for (_key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(_key)) {\n sortedKeys.push(_key);\n }\n }\n\n sortedKeys.sort();\n\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);\n }\n\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n\n return canonicalizedObj;\n}\n\nvar arrayDiff = new Diff();\n\narrayDiff.tokenize = function (value) {\n return value.slice();\n};\n\narrayDiff.join = arrayDiff.removeEmpty = function (value) {\n return value;\n};\n\nfunction diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n}\n\nfunction parsePatch(uniDiff) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var diffstr = uniDiff.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = uniDiff.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index); // Parse diff metadata\n\n while (i < diffstr.length) {\n var line = diffstr[i]; // File header found, end parsing diff metadata\n\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n } // Diff index\n\n\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n\n if (header) {\n index.index = header[1];\n }\n\n i++;\n } // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n\n\n parseFileHeader(index);\n parseFileHeader(index); // Parse hunks\n\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n } // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n\n\n function parseFileHeader(index) {\n var fileHeader = /^(---|\\+\\+\\+)\\s+(.*)$/.exec(diffstr[i]);\n\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n var data = fileHeader[2].split('\\t', 2);\n var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n\n if (/^\".*\"$/.test(fileName)) {\n fileName = fileName.substr(1, fileName.length - 2);\n }\n\n index[keyPrefix + 'FileName'] = fileName;\n index[keyPrefix + 'Header'] = (data[1] || '').trim();\n i++;\n }\n } // Parses a hunk\n // This assumes that we are at the start of a hunk.\n\n\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: +chunkHeader[2] || 1,\n newStart: +chunkHeader[3],\n newLines: +chunkHeader[4] || 1,\n lines: [],\n linedelimiters: []\n };\n var addCount = 0,\n removeCount = 0;\n\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n\n var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n hunk.linedelimiters.push(delimiters[i] || '\\n');\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n } // Handle the empty block count case\n\n\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n } // Perform optional sanity checking\n\n\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n}\n\n// Iterator that traverses in the range of [min, max], stepping\n// by distance from a given start position. I.e. for [0, 4], with\n// start of 2, this will iterate 2, 3, 1, 4, 0.\nfunction distanceIterator (start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n } // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n\n\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n } // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n\n\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n } // We tried to fit hunk before text beginning and beyond text length, then\n // hunk can't fit on the text. Return undefined\n\n };\n}\n\nfunction applyPatch(source, uniDiff) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n } // Apply the diff to the input\n\n\n var lines = source.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = source.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {\n return line === patchContent;\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL,\n addEOFNL;\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n\n\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line;\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n\n toPos++;\n }\n }\n\n return true;\n } // Search best fit offsets for each hunk based on the previous ones\n\n\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n var iterator = distanceIterator(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n } // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n\n\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n } // Apply patch hunks\n\n\n var diffOffset = 0;\n\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;\n\n diffOffset += _hunk.newLines - _hunk.oldLines;\n\n if (_toPos < 0) {\n // Creating a new file\n _toPos = 0;\n }\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line,\n delimiter = _hunk.linedelimiters[j];\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n delimiters.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n delimiters.splice(_toPos, 0, delimiter);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n } // Handle EOFNL insertion/removal\n\n\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n delimiters.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n delimiters.push('\\n');\n }\n\n for (var _k = 0; _k < lines.length - 1; _k++) {\n lines[_k] = lines[_k] + delimiters[_k];\n }\n\n return lines.join('');\n} // Wrapper that supports multiple file patches via callbacks.\n\nfunction applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n var currentIndex = 0;\n\n function processIndex() {\n var index = uniDiff[currentIndex++];\n\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n\n processIndex();\n}\n\nfunction structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.context === 'undefined') {\n options.context = 4;\n }\n\n var diff = diffLines(oldStr, newStr, options);\n diff.push({\n value: '',\n lines: []\n }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n\n var _loop = function _loop(i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n var _curRange;\n\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n } // Output our changes\n\n\n (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n }))); // Track the updated file position\n\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n var _curRange2;\n\n // Overlapping\n (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));\n } else {\n var _curRange3;\n\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n\n (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;\n\n if (!oldEOFNewline && noNlBeforeAdds) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n }\n\n if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n _loop(i);\n }\n\n return {\n oldFileName: oldFileName,\n newFileName: newFileName,\n oldHeader: oldHeader,\n newHeader: newHeader,\n hunks: hunks\n };\n}\nfunction createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n var ret = [];\n\n if (oldFileName == newFileName) {\n ret.push('Index: ' + oldFileName);\n }\n\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i];\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n}\nfunction createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n\nfunction arrayEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n return arrayStartsWith(a, b);\n}\nfunction arrayStartsWith(array, start) {\n if (start.length > array.length) {\n return false;\n }\n\n for (var i = 0; i < start.length; i++) {\n if (start[i] !== array[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction calcLineCount(hunk) {\n var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),\n oldLines = _calcOldNewLineCount.oldLines,\n newLines = _calcOldNewLineCount.newLines;\n\n if (oldLines !== undefined) {\n hunk.oldLines = oldLines;\n } else {\n delete hunk.oldLines;\n }\n\n if (newLines !== undefined) {\n hunk.newLines = newLines;\n } else {\n delete hunk.newLines;\n }\n}\nfunction merge(mine, theirs, base) {\n mine = loadPatch(mine, base);\n theirs = loadPatch(theirs, base);\n var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.\n // Leaving sanity checks on this to the API consumer that may know more about the\n // meaning in their own context.\n\n if (mine.index || theirs.index) {\n ret.index = mine.index || theirs.index;\n }\n\n if (mine.newFileName || theirs.newFileName) {\n if (!fileNameChanged(mine)) {\n // No header or no change in ours, use theirs (and ours if theirs does not exist)\n ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n ret.newFileName = theirs.newFileName || mine.newFileName;\n ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n ret.newHeader = theirs.newHeader || mine.newHeader;\n } else if (!fileNameChanged(theirs)) {\n // No header or no change in theirs, use ours\n ret.oldFileName = mine.oldFileName;\n ret.newFileName = mine.newFileName;\n ret.oldHeader = mine.oldHeader;\n ret.newHeader = mine.newHeader;\n } else {\n // Both changed... figure it out\n ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n }\n }\n\n ret.hunks = [];\n var mineIndex = 0,\n theirsIndex = 0,\n mineOffset = 0,\n theirsOffset = 0;\n\n while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n var mineCurrent = mine.hunks[mineIndex] || {\n oldStart: Infinity\n },\n theirsCurrent = theirs.hunks[theirsIndex] || {\n oldStart: Infinity\n };\n\n if (hunkBefore(mineCurrent, theirsCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n mineIndex++;\n theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n theirsIndex++;\n mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n } else {\n // Overlap, merge as best we can\n var mergedHunk = {\n oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n oldLines: 0,\n newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n newLines: 0,\n lines: []\n };\n mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n theirsIndex++;\n mineIndex++;\n ret.hunks.push(mergedHunk);\n }\n }\n\n return ret;\n}\n\nfunction loadPatch(param, base) {\n if (typeof param === 'string') {\n if (/^@@/m.test(param) || /^Index:/m.test(param)) {\n return parsePatch(param)[0];\n }\n\n if (!base) {\n throw new Error('Must provide a base reference or pass in a patch');\n }\n\n return structuredPatch(undefined, undefined, base, param);\n }\n\n return param;\n}\n\nfunction fileNameChanged(patch) {\n return patch.newFileName && patch.newFileName !== patch.oldFileName;\n}\n\nfunction selectField(index, mine, theirs) {\n if (mine === theirs) {\n return mine;\n } else {\n index.conflict = true;\n return {\n mine: mine,\n theirs: theirs\n };\n }\n}\n\nfunction hunkBefore(test, check) {\n return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;\n}\n\nfunction cloneHunk(hunk, offset) {\n return {\n oldStart: hunk.oldStart,\n oldLines: hunk.oldLines,\n newStart: hunk.newStart + offset,\n newLines: hunk.newLines,\n lines: hunk.lines\n };\n}\n\nfunction mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n // This will generally result in a conflicted hunk, but there are cases where the context\n // is the only overlap where we can successfully merge the content here.\n var mine = {\n offset: mineOffset,\n lines: mineLines,\n index: 0\n },\n their = {\n offset: theirOffset,\n lines: theirLines,\n index: 0\n }; // Handle any leading content\n\n insertLeading(hunk, mine, their);\n insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.\n\n while (mine.index < mine.lines.length && their.index < their.lines.length) {\n var mineCurrent = mine.lines[mine.index],\n theirCurrent = their.lines[their.index];\n\n if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n // Both modified ...\n mutualChange(hunk, mine, their);\n } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n var _hunk$lines;\n\n // Mine inserted\n (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));\n } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n var _hunk$lines2;\n\n // Theirs inserted\n (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));\n } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n // Mine removed or edited\n removal(hunk, mine, their);\n } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n // Their removed or edited\n removal(hunk, their, mine, true);\n } else if (mineCurrent === theirCurrent) {\n // Context identity\n hunk.lines.push(mineCurrent);\n mine.index++;\n their.index++;\n } else {\n // Context mismatch\n conflict(hunk, collectChange(mine), collectChange(their));\n }\n } // Now push anything that may be remaining\n\n\n insertTrailing(hunk, mine);\n insertTrailing(hunk, their);\n calcLineCount(hunk);\n}\n\nfunction mutualChange(hunk, mine, their) {\n var myChanges = collectChange(mine),\n theirChanges = collectChange(their);\n\n if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n // Special case for remove changes that are supersets of one another\n if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n var _hunk$lines3;\n\n (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));\n\n return;\n } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n var _hunk$lines4;\n\n (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));\n\n return;\n }\n } else if (arrayEqual(myChanges, theirChanges)) {\n var _hunk$lines5;\n\n (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));\n\n return;\n }\n\n conflict(hunk, myChanges, theirChanges);\n}\n\nfunction removal(hunk, mine, their, swap) {\n var myChanges = collectChange(mine),\n theirChanges = collectContext(their, myChanges);\n\n if (theirChanges.merged) {\n var _hunk$lines6;\n\n (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));\n } else {\n conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n }\n}\n\nfunction conflict(hunk, mine, their) {\n hunk.conflict = true;\n hunk.lines.push({\n conflict: true,\n mine: mine,\n theirs: their\n });\n}\n\nfunction insertLeading(hunk, insert, their) {\n while (insert.offset < their.offset && insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n insert.offset++;\n }\n}\n\nfunction insertTrailing(hunk, insert) {\n while (insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n }\n}\n\nfunction collectChange(state) {\n var ret = [],\n operation = state.lines[state.index][0];\n\n while (state.index < state.lines.length) {\n var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n\n if (operation === '-' && line[0] === '+') {\n operation = '+';\n }\n\n if (operation === line[0]) {\n ret.push(line);\n state.index++;\n } else {\n break;\n }\n }\n\n return ret;\n}\n\nfunction collectContext(state, matchChanges) {\n var changes = [],\n merged = [],\n matchIndex = 0,\n contextChanges = false,\n conflicted = false;\n\n while (matchIndex < matchChanges.length && state.index < state.lines.length) {\n var change = state.lines[state.index],\n match = matchChanges[matchIndex]; // Once we've hit our add, then we are done\n\n if (match[0] === '+') {\n break;\n }\n\n contextChanges = contextChanges || change[0] !== ' ';\n merged.push(match);\n matchIndex++; // Consume any additions in the other block as a conflict to attempt\n // to pull in the remaining context after this\n\n if (change[0] === '+') {\n conflicted = true;\n\n while (change[0] === '+') {\n changes.push(change);\n change = state.lines[++state.index];\n }\n }\n\n if (match.substr(1) === change.substr(1)) {\n changes.push(change);\n state.index++;\n } else {\n conflicted = true;\n }\n }\n\n if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {\n conflicted = true;\n }\n\n if (conflicted) {\n return changes;\n }\n\n while (matchIndex < matchChanges.length) {\n merged.push(matchChanges[matchIndex++]);\n }\n\n return {\n merged: merged,\n changes: changes\n };\n}\n\nfunction allRemoves(changes) {\n return changes.reduce(function (prev, change) {\n return prev && change[0] === '-';\n }, true);\n}\n\nfunction skipRemoveSuperset(state, removeChanges, delta) {\n for (var i = 0; i < delta; i++) {\n var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n\n if (state.lines[state.index + i] !== ' ' + changeContent) {\n return false;\n }\n }\n\n state.index += delta;\n return true;\n}\n\nfunction calcOldNewLineCount(lines) {\n var oldLines = 0;\n var newLines = 0;\n lines.forEach(function (line) {\n if (typeof line !== 'string') {\n var myCount = calcOldNewLineCount(line.mine);\n var theirCount = calcOldNewLineCount(line.theirs);\n\n if (oldLines !== undefined) {\n if (myCount.oldLines === theirCount.oldLines) {\n oldLines += myCount.oldLines;\n } else {\n oldLines = undefined;\n }\n }\n\n if (newLines !== undefined) {\n if (myCount.newLines === theirCount.newLines) {\n newLines += myCount.newLines;\n } else {\n newLines = undefined;\n }\n }\n } else {\n if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n newLines++;\n }\n\n if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n oldLines++;\n }\n }\n });\n return {\n oldLines: oldLines,\n newLines: newLines\n };\n}\n\n// See: http://code.google.com/p/google-diff-match-patch/wiki/API\nfunction convertChangesToDMP(changes) {\n var ret = [],\n change,\n operation;\n\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n\n return ret;\n}\n\nfunction convertChangesToXML(changes) {\n var ret = [];\n\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n\n if (change.added) {\n ret.push('<ins>');\n } else if (change.removed) {\n ret.push('<del>');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('</ins>');\n } else if (change.removed) {\n ret.push('</del>');\n }\n }\n\n return ret.join('');\n}\n\nfunction escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&amp;');\n n = n.replace(/</g, '&lt;');\n n = n.replace(/>/g, '&gt;');\n n = n.replace(/\"/g, '&quot;');\n return n;\n}\n\n/* See LICENSE file for terms of use */\n\nexport { Diff, diffChars, diffWords, diffWordsWithSpace, diffLines, diffTrimmedLines, diffSentences, diffCss, diffJson, diffArrays, structuredPatch, createTwoFilesPatch, createPatch, applyPatch, applyPatches, parsePatch, merge, convertChangesToDMP, convertChangesToXML, canonicalize };\n","module.exports = {\n ArrayFrom: Array.from,\n ArrayIsArray: Array.isArray,\n ArrayPrototypeJoin: (obj, separator) => Array.prototype.join.call(obj, separator),\n ArrayPrototypeShift: (obj) => Array.prototype.shift.call(obj),\n ArrayPrototypeForEach: (arr, ...rest) => Array.prototype.forEach.apply(arr, rest),\n ArrayPrototypeIncludes: (arr, ...rest) => Array.prototype.includes.apply(arr, rest),\n ArrayPrototypeJoin: (arr, ...rest) => Array.prototype.join.apply(arr, rest),\n ArrayPrototypePop: (arr, ...rest) => Array.prototype.pop.apply(arr, rest),\n ArrayPrototypePush: (arr, ...rest) => Array.prototype.push.apply(arr, rest),\n FunctionPrototype: Function.prototype,\n JSONParse: JSON.parse,\n JSONStringify: JSON.stringify,\n ObjectFreeze: Object.freeze,\n ObjectKeys: Object.keys,\n ObjectGetOwnPropertyNames: Object.getOwnPropertyNames,\n ObjectDefineProperty: Object.defineProperty,\n ObjectPrototypeHasOwnProperty: (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop),\n RegExpPrototypeTest: (obj, string) => RegExp.prototype.test.call(obj, string),\n RegExpPrototypeSymbolReplace: (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest),\n SafeMap: Map,\n SafeSet: Set,\n StringPrototypeEndsWith: (str, ...rest) => String.prototype.endsWith.apply(str, rest),\n StringPrototypeIncludes: (str, ...rest) => String.prototype.includes.apply(str, rest),\n StringPrototypeLastIndexOf: (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest),\n StringPrototypeIndexOf: (str, ...rest) => String.prototype.indexOf.apply(str, rest),\n StringPrototypeRepeat: (str, ...rest) => String.prototype.repeat.apply(str, rest),\n StringPrototypeReplace: (str, ...rest) => String.prototype.replace.apply(str, rest),\n StringPrototypeSlice: (str, ...rest) => String.prototype.slice.apply(str, rest),\n StringPrototypeSplit: (str, ...rest) => String.prototype.split.apply(str, rest),\n StringPrototypeStartsWith: (str, ...rest) => String.prototype.startsWith.apply(str, rest),\n StringPrototypeSubstr: (str, ...rest) => String.prototype.substr.apply(str, rest),\n SyntaxError: SyntaxError\n};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.acorn = {}));\n}(this, (function (exports) { 'use strict';\n\n // Reserved word lists for various dialects of the language\n\n var reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n };\n\n // And the keywords\n\n var ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\n var keywords = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n };\n\n var keywordRelationalOperator = /^in(stanceof)?$/;\n\n // ## Character categories\n\n // Big ugly regular expressions that match characters in the\n // whitespace, identifier, and identifier-start categories. These\n // are only applied when a character is found to actually have a\n // code point above 128.\n // Generated by `bin/generate-identifier-regex.js`.\n var nonASCIIidentifierStartChars = \"\\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\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\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\\u09fc\\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\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\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-\\uab69\\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\";\n var nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\n var nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\n var nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n // These are a run-length and offset encoded representation of the\n // >0xffff code points that are a valid part of identifiers. The\n // offset starts at 0x10000, and each pair of numbers represents an\n // offset to the next range, and then a size of the range. They were\n // generated by bin/generate-identifier-regex.js\n\n // eslint-disable-next-line comma-spacing\n var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n\n // eslint-disable-next-line comma-spacing\n var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n // This has a complexity linear to the value of the code. The\n // assumption is that looking up astral identifier characters is\n // rare.\n function isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n }\n\n // Test whether a given character code starts an identifier.\n\n function isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n }\n\n // Test whether a given character is part of an identifier.\n\n function isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n }\n\n // ## Token types\n\n // The assignment of fine-grained, information-carrying type objects\n // allows the tokenizer to store the information it has about a\n // token in a way that is very cheap for the parser to look up.\n\n // All token type variables start with an underscore, to make them\n // easy to recognize.\n\n // The `beforeExpr` property is used to disambiguate between regular\n // expressions and divisions. It is set on all token types that can\n // be followed by an expression (thus, a slash after them would be a\n // regular expression).\n //\n // The `startsExpr` property is used to check if the token ends a\n // `yield` expression. It is set on all token types that either can\n // directly start an expression (like a quotation mark) or can\n // continue an expression (like the body of a string).\n //\n // `isLoop` marks a keyword as starting a loop, which is important\n // to know when parsing a label, in order to allow or disallow\n // continue jumps to that label.\n\n var TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n };\n\n function binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n }\n var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n // Map keyword names to token types.\n\n var keywords$1 = {};\n\n // Succinct definitions of keyword token types\n function kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords$1[name] = new TokenType(name, options)\n }\n\n var types = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n privateId: new TokenType(\"privateId\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n };\n\n // Matches a whole line break (where CRLF is considered a single\n // line break). Used to count lines.\n\n var lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\n var lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n function isNewLine(code, ecma2019String) {\n return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n }\n\n var nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\n var skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n var ref = Object.prototype;\n var hasOwnProperty = ref.hasOwnProperty;\n var toString = ref.toString;\n\n // Checks if an object has a property.\n\n function has(obj, propName) {\n return hasOwnProperty.call(obj, propName)\n }\n\n var isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n ); });\n\n function wordsRegexp(words) {\n return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n }\n\n // These are used when `options.locations` is on, for the\n // `startLoc` and `endLoc` properties.\n\n var Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n };\n\n Position.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n };\n\n var SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n };\n\n // The `getLineInfo` function is mostly useful when the\n // `locations` option is off (for performance reasons) and you\n // want to find the line/column position for a given character\n // offset. `input` should be the code string that the offset refers\n // into.\n\n function getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n lineBreakG.lastIndex = cur;\n var match = lineBreakG.exec(input);\n if (match && match.index < offset) {\n ++line;\n cur = match.index + match[0].length;\n } else {\n return new Position(line, offset - cur)\n }\n }\n }\n\n // A second argument must be given to configure the parser process.\n // These options are recognized (only `ecmaVersion` is required):\n\n var defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), 13 (2022), or `\"latest\"` (the\n // latest version the library supports). This influences support\n // for strict mode, the set of reserved words, and support for\n // new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called\n // when a semicolon is automatically inserted. It will be passed\n // the position of the comma as an offset, and if `locations` is\n // enabled, it is given the location as a `{line, column}` object\n // as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program, and an import.meta expression\n // in a script isn't considered an error.\n allowImportExportEverywhere: false,\n // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: null,\n // When enabled, super identifiers are not constrained to\n // appearing in methods and do not raise an error when they appear elsewhere.\n allowSuperOutsideMethod: null,\n // When enabled, hashbang directive in the beginning of file\n // is allowed and treated as a line comment.\n allowHashBang: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n };\n\n // Interpret and default an options object\n\n var warnedAboutEcmaVersion = false;\n\n function getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n return options\n }\n\n function pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n }\n\n // Each scope gets a bitset that may contain these flags\n var\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128;\n\n function functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n }\n\n // Used in checkLVal* and declareName to determine the type of a binding\n var\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\n var Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n this.potentialArrowInForAwait = false;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = Object.create(null);\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(SCOPE_TOP);\n\n // For RegExp validation\n this.regexpState = null;\n\n // The stack of private names.\n // Each element has two properties: 'declared' and 'used'.\n // When it exited from the outermost class definition, all used private names must be declared.\n this.privateNameStack = [];\n };\n\n var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },inNonArrowFunction: { configurable: true } };\n\n Parser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n };\n\n prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\n prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };\n prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };\n prototypeAccessors.canAwait.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var scope = this.scopeStack[i];\n if (scope.inClassFieldInit) { return false }\n if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 }\n }\n return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction\n };\n prototypeAccessors.allowSuper.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n var inClassFieldInit = ref.inClassFieldInit;\n return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod\n };\n prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\n prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n prototypeAccessors.inNonArrowFunction.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n var inClassFieldInit = ref.inClassFieldInit;\n return (flags & SCOPE_FUNCTION) > 0 || inClassFieldInit\n };\n\n Parser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n };\n\n Parser.parse = function parse (input, options) {\n return new this(options, input).parse()\n };\n\n Parser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n };\n\n Parser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n };\n\n Object.defineProperties( Parser.prototype, prototypeAccessors );\n\n var pp = Parser.prototype;\n\n // ## Parser utilities\n\n var literal = /^(?:'((?:\\\\.|[^'\\\\])*?)'|\"((?:\\\\.|[^\"\\\\])*?)\")/;\n pp.strictDirective = function(start) {\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n };\n\n // Predicate that tests whether the next token is of the given\n // type, and if yes, consumes it as a side effect.\n\n pp.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n };\n\n // Tests whether parsed token is a contextual keyword.\n\n pp.isContextual = function(name) {\n return this.type === types.name && this.value === name && !this.containsEsc\n };\n\n // Consumes contextual keyword if possible.\n\n pp.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n };\n\n // Asserts that following token is given contextual keyword.\n\n pp.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n };\n\n // Test whether a semicolon can be inserted at the current position.\n\n pp.canInsertSemicolon = function() {\n return this.type === types.eof ||\n this.type === types.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n };\n\n pp.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n };\n\n // Consume a semicolon, or, failing that, see if we are allowed to\n // pretend that there is a semicolon at this position.\n\n pp.semicolon = function() {\n if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); }\n };\n\n pp.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n };\n\n // Expect a token of a given type. If found, consume it, otherwise,\n // raise an unexpected token error.\n\n pp.expect = function(type) {\n this.eat(type) || this.unexpected();\n };\n\n // Raise an unexpected token error.\n\n pp.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n };\n\n function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n }\n\n pp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, \"Parenthesized pattern\"); }\n };\n\n pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n };\n\n pp.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n };\n\n pp.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n };\n\n var pp$1 = Parser.prototype;\n\n // ### Statement parsing\n\n // Parse a program. Initializes the parser, reads any number of\n // statements, and wraps them in a Program node. Optionally takes a\n // `program` argument. If present, the statements will be appended\n // to its body instead of creating a new node.\n\n pp$1.parseTopLevel = function(node) {\n var exports = Object.create(null);\n if (!node.body) { node.body = []; }\n while (this.type !== types.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType;\n return this.finishNode(node, \"Program\")\n };\n\n var loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\n pp$1.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91 || nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '[', '/', astral\n if (context) { return false }\n\n if (nextCh === 123) { return true } // '{'\n if (isIdentifierStart(nextCh, true)) {\n var pos = next + 1;\n while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; }\n if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true }\n var ident = this.input.slice(next, pos);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n };\n\n // check 'async [no LineTerminator here] function'\n // - 'async /*foo*/ function' is OK.\n // - 'async /*\\n*/ function' is invalid.\n pp$1.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, after;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length ||\n !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00))\n };\n\n // Parse a single statement.\n //\n // If expecting a statement and finding a slash operator, parse a\n // regular expression literal. This is to handle cases like\n // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n // does not help.\n\n pp$1.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types._debugger: return this.parseDebuggerStatement(node)\n case types._do: return this.parseDoStatement(node)\n case types._for: return this.parseForStatement(node)\n case types._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types._if: return this.parseIfStatement(node)\n case types._return: return this.parseReturnStatement(node)\n case types._switch: return this.parseSwitchStatement(node)\n case types._throw: return this.parseThrowStatement(node)\n case types._try: return this.parseTryStatement(node)\n case types._const: case types._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types._while: return this.parseWhileStatement(node)\n case types._with: return this.parseWithStatement(node)\n case types.braceL: return this.parseBlock(true, node)\n case types.semi: return this.parseEmptyStatement(node)\n case types._export:\n case types._import:\n if (this.options.ecmaVersion > 10 && starttype === types._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types.name && expr.type === \"Identifier\" && this.eat(types.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n };\n\n pp$1.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n };\n\n pp$1.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n };\n\n pp$1.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n };\n\n // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n // loop is non-trivial. Basically, we have to parse the init `var`\n // statement or expression, disallowing the `in` operator (see\n // the second parameter to `parseExpression`), and then check\n // whether the next token is `in` or `of`. When there is no init\n // part (semicolon immediately after the opening parenthesis), it\n // is a regular `for` loop.\n\n pp$1.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types.parenL);\n if (this.type === types.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types._var || this.type === types._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init$1.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init$1)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init$1)\n }\n var refDestructuringErrors = new DestructuringErrors;\n var init = this.parseExpression(awaitAt > -1 ? \"await\" : true, refDestructuringErrors);\n if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n };\n\n pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n };\n\n pp$1.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n };\n\n pp$1.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n };\n\n pp$1.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types.braceL);\n this.labels.push(switchLabel);\n this.enterScope(0);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types.braceR;) {\n if (this.type === types._case || this.type === types._default) {\n var isCase = this.type === types._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n };\n\n pp$1.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n };\n\n // Reused empty array added for node fields that are always empty.\n\n var empty = [];\n\n pp$1.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types.parenL)) {\n clause.param = this.parseBindingAtom();\n var simple = clause.param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types.parenR);\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n };\n\n pp$1.parseVarStatement = function(node, kind) {\n this.next();\n this.parseVar(node, false, kind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n };\n\n pp$1.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n };\n\n pp$1.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n };\n\n pp$1.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n };\n\n pp$1.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n };\n\n pp$1.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n };\n\n // Parse a semicolon-enclosed block of statements, handling `\"use\n // strict\"` declarations when `allowStrict` is true (used for\n // function bodies).\n\n pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n };\n\n // Parse a regular `for` loop. The disambiguation code in\n // `parseStatement` will already have parsed the init statement or\n // expression.\n\n pp$1.parseFor = function(node, init) {\n node.init = init;\n this.expect(types.semi);\n node.test = this.type === types.semi ? null : this.parseExpression();\n this.expect(types.semi);\n node.update = this.type === types.parenR ? null : this.parseExpression();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n };\n\n // Parse a `for`/`in` and `for`/`of` loop, which are almost\n // same from parser's perspective.\n\n pp$1.parseForIn = function(node, init) {\n var isForIn = this.type === types._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n };\n\n // Parse a list of variable declarations.\n\n pp$1.parseVar = function(node, isFor, kind) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (kind === \"const\" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === types._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types.comma)) { break }\n }\n return node\n };\n\n pp$1.parseVarId = function(decl, kind) {\n decl.id = this.parseBindingAtom();\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n };\n\n var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n // Parse a function declaration or literal (depending on the\n // `statement & FUNC_STATEMENT`).\n\n // Remove `allowExpressionBody` for 7.0.0, as it is only called with false\n pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n };\n\n pp$1.parseFunctionParams = function(node) {\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n };\n\n // Parse a class declaration or literal (depending on the\n // `isStatement` parameter).\n\n pp$1.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var privateNameMap = this.enterClassBody();\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types.braceL);\n while (this.type !== types.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raise(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n } else if (element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.exitClassBody();\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n };\n\n pp$1.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(types.semi)) { return null }\n\n var ecmaVersion = this.options.ecmaVersion;\n var node = this.startNode();\n var keyName = \"\";\n var isGenerator = false;\n var isAsync = false;\n var kind = \"method\";\n\n // Parse modifiers\n node.static = false;\n if (this.eatContextual(\"static\")) {\n if (this.isClassElementNameStart() || this.type === types.star) {\n node.static = true;\n } else {\n keyName = \"static\";\n }\n }\n if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n if ((this.isClassElementNameStart() || this.type === types.star) && !this.canInsertSemicolon()) {\n isAsync = true;\n } else {\n keyName = \"async\";\n }\n }\n if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types.star)) {\n isGenerator = true;\n }\n if (!keyName && !isAsync && !isGenerator) {\n var lastValue = this.value;\n if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n if (this.isClassElementNameStart()) {\n kind = lastValue;\n } else {\n keyName = lastValue;\n }\n }\n }\n\n // Parse element name\n if (keyName) {\n // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n // The last token is any of those. Make it the element name.\n node.computed = false;\n node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n node.key.name = keyName;\n this.finishNode(node.key, \"Identifier\");\n } else {\n this.parseClassElementName(node);\n }\n\n // Parse element value\n if (ecmaVersion < 13 || this.type === types.parenL || kind !== \"method\" || isGenerator || isAsync) {\n var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n node.kind = isConstructor ? \"constructor\" : kind;\n this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n } else {\n this.parseClassField(node);\n }\n\n return node\n };\n\n pp$1.isClassElementNameStart = function() {\n return (\n this.type === types.name ||\n this.type === types.privateId ||\n this.type === types.num ||\n this.type === types.string ||\n this.type === types.bracketL ||\n this.type.keyword\n )\n };\n\n pp$1.parseClassElementName = function(element) {\n if (this.type === types.privateId) {\n if (this.value === \"constructor\") {\n this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n }\n element.computed = false;\n element.key = this.parsePrivateIdent();\n } else {\n this.parsePropertyName(element);\n }\n };\n\n pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n // Check key and flags\n var key = method.key;\n if (method.kind === \"constructor\") {\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n } else if (method.static && checkKeyName(method, \"prototype\")) {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n\n // Parse value\n var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n // Check value\n if (method.kind === \"get\" && value.params.length !== 0)\n { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && value.params.length !== 1)\n { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n return this.finishNode(method, \"MethodDefinition\")\n };\n\n pp$1.parseClassField = function(field) {\n if (checkKeyName(field, \"constructor\")) {\n this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n } else if (field.static && checkKeyName(field, \"prototype\")) {\n this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n }\n\n if (this.eat(types.eq)) {\n // To raise SyntaxError if 'arguments' exists in the initializer.\n var scope = this.currentThisScope();\n var inClassFieldInit = scope.inClassFieldInit;\n scope.inClassFieldInit = true;\n field.value = this.parseMaybeAssign();\n scope.inClassFieldInit = inClassFieldInit;\n } else {\n field.value = null;\n }\n this.semicolon();\n\n return this.finishNode(field, \"PropertyDefinition\")\n };\n\n pp$1.parseClassId = function(node, isStatement) {\n if (this.type === types.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n };\n\n pp$1.parseClassSuper = function(node) {\n node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null;\n };\n\n pp$1.enterClassBody = function() {\n var element = {declared: Object.create(null), used: []};\n this.privateNameStack.push(element);\n return element.declared\n };\n\n pp$1.exitClassBody = function() {\n var ref = this.privateNameStack.pop();\n var declared = ref.declared;\n var used = ref.used;\n var len = this.privateNameStack.length;\n var parent = len === 0 ? null : this.privateNameStack[len - 1];\n for (var i = 0; i < used.length; ++i) {\n var id = used[i];\n if (!has(declared, id.name)) {\n if (parent) {\n parent.used.push(id);\n } else {\n this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n }\n }\n }\n };\n\n function isPrivateNameConflicted(privateNameMap, element) {\n var name = element.key.name;\n var curr = privateNameMap[name];\n\n var next = \"true\";\n if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n next = (element.static ? \"s\" : \"i\") + element.kind;\n }\n\n // `class { get #a(){}; static set #a(_){} }` is also conflict.\n if (\n curr === \"iget\" && next === \"iset\" ||\n curr === \"iset\" && next === \"iget\" ||\n curr === \"sget\" && next === \"sset\" ||\n curr === \"sset\" && next === \"sget\"\n ) {\n privateNameMap[name] = \"true\";\n return false\n } else if (!curr) {\n privateNameMap[name] = next;\n return false\n } else {\n return true\n }\n }\n\n function checkKeyName(node, name) {\n var computed = node.computed;\n var key = node.key;\n return !computed && (\n key.type === \"Identifier\" && key.name === name ||\n key.type === \"Literal\" && key.value === name\n )\n }\n\n // Parses module export declaration.\n\n pp$1.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types.star)) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseIdent(true);\n this.checkExport(exports, node.exported.name, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(types._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n var isAsync;\n if (this.type === types._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);\n } else if (this.type === types._class) {\n var cNode = this.startNode();\n node.declaration = this.parseClass(cNode, \"nullableID\");\n } else {\n node.declaration = this.parseMaybeAssign();\n this.semicolon();\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseStatement(null);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n }\n\n node.source = null;\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n };\n\n pp$1.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (has(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n };\n\n pp$1.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat.name, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n else if (type === \"ParenthesizedExpression\")\n { this.checkPatternExport(exports, pat.expression); }\n };\n\n pp$1.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n };\n\n pp$1.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n };\n\n // Parses a comma-separated list of module exports.\n\n pp$1.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node = this.startNode();\n node.local = this.parseIdent(true);\n node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local;\n this.checkExport(exports, node.exported.name, node.exported.start);\n nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n }\n return nodes\n };\n\n // Parses import declaration.\n\n pp$1.parseImport = function(node) {\n this.next();\n // import '...'\n if (this.type === types.string) {\n node.specifiers = empty;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected();\n }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n };\n\n // Parses a comma-separated list of module imports.\n\n pp$1.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types.name) {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"));\n if (!this.eat(types.comma)) { return nodes }\n }\n if (this.type === types.star) {\n var node$1 = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node$1.local = this.parseIdent();\n this.checkLValSimple(node$1.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$1, \"ImportNamespaceSpecifier\"));\n return nodes\n }\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node$2 = this.startNode();\n node$2.imported = this.parseIdent(true);\n if (this.eatContextual(\"as\")) {\n node$2.local = this.parseIdent();\n } else {\n this.checkUnreserved(node$2.imported);\n node$2.local = node$2.imported;\n }\n this.checkLValSimple(node$2.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$2, \"ImportSpecifier\"));\n }\n return nodes\n };\n\n // Set `ExpressionStatement#directive` property for directive prologues.\n pp$1.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n };\n pp$1.isDirectiveCandidate = function(statement) {\n return (\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n };\n\n var pp$2 = Parser.prototype;\n\n // Convert existing expression atom to assignable pattern\n // if possible.\n\n pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n };\n\n // Convert list of expression atoms to binding list.\n\n pp$2.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n };\n\n // Parses spread element.\n\n pp$2.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n };\n\n pp$2.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n };\n\n // Parses lvalue (assignable) atom.\n\n pp$2.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n };\n\n pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types.comma); }\n if (allowEmpty && this.type === types.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n elts.push(elem);\n }\n }\n return elts\n };\n\n pp$2.parseBindingListItem = function(param) {\n return param\n };\n\n // Parses assignment pattern around given atom if possible.\n\n pp$2.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n };\n\n // The following three functions all verify that a node is an lvalue —\n // something that can be bound, or assigned to. In order to do so, they perform\n // a variety of checks:\n //\n // - Check that none of the bound/assigned-to identifiers are reserved words.\n // - Record name declarations for bindings in the appropriate scope.\n // - Check duplicate argument names, if checkClashes is set.\n //\n // If a complex binding pattern is encountered (e.g., object and array\n // destructuring), the entire pattern is recursively checked.\n //\n // There are three versions of checkLVal*() appropriate for different\n // circumstances:\n //\n // - checkLValSimple() shall be used if the syntactic construct supports\n // nothing other than identifiers and member expressions. Parenthesized\n // expressions are also correctly handled. This is generally appropriate for\n // constructs for which the spec says\n //\n // > It is a Syntax Error if AssignmentTargetType of [the production] is not\n // > simple.\n //\n // It is also appropriate for checking if an identifier is valid and not\n // defined elsewhere, like import declarations or function/class identifiers.\n //\n // Examples where this is used include:\n // a += …;\n // import a from '…';\n // where a is the node to be checked.\n //\n // - checkLValPattern() shall be used if the syntactic construct supports\n // anything checkLValSimple() supports, as well as object and array\n // destructuring patterns. This is generally appropriate for constructs for\n // which the spec says\n //\n // > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n // > an ArrayLiteral and AssignmentTargetType of [the production] is not\n // > simple.\n //\n // Examples where this is used include:\n // (a = …);\n // const a = …;\n // try { … } catch (a) { … }\n // where a is the node to be checked.\n //\n // - checkLValInnerPattern() shall be used if the syntactic construct supports\n // anything checkLValPattern() supports, as well as default assignment\n // patterns, rest elements, and other constructs that may appear within an\n // object or array destructuring pattern.\n //\n // As a special case, function parameters also use checkLValInnerPattern(),\n // as they also support defaults and rest constructs.\n //\n // These functions deliberately support both assignment and binding constructs,\n // as the logic for both is exceedingly similar. If the node is the target of\n // an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n // should be set to the appropriate BIND_* constant, like BIND_VAR or\n // BIND_LEXICAL.\n //\n // If the function is called with a non-BIND_NONE bindingType, then\n // additionally a checkClashes object may be specified to allow checking for\n // duplicate argument names. checkClashes is ignored if the provided construct\n // is an assignment (i.e., bindingType is BIND_NONE).\n\n pp$2.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (has(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n };\n\n pp$2.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n };\n\n pp$2.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n };\n\n // A recursive descent parser operates by defining functions for all\n\n var pp$3 = Parser.prototype;\n\n // Check if property name clashes with already added.\n // Object/class getters and setters are not allowed to clash —\n // either with each other or with an init property — and in\n // strict mode, init properties are also not allowed to be repeated.\n\n pp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0)\n { refDestructuringErrors.doubleProto = key.start; }\n // Backwards-compat kludge. Can be removed in version 6.0\n } else { this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\"); }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n };\n\n // ### Expression parsing\n\n // These nest, from the most general expression type at the top to\n // 'atomic', nondivisible expression types at the bottom. Most of\n // the functions will simply let the function(s) below them parse,\n // and, *if* the syntactic construct they handle is present, wrap\n // the AST node that the inner parser gave them in another node.\n\n // Parse a full expression. The optional arguments are used to\n // forbid the `in` operator (in for loops initalization expressions)\n // and provide reference for storing '=' operator inside shorthand\n // property assignment in contexts where both object expression\n // and object pattern might appear (so it's possible to raise\n // delayed syntax error at correct position).\n\n pp$3.parseExpression = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n if (this.type === types.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n };\n\n // Parse an assignment expression. This includes applications of\n // operators like `+=`.\n\n pp$3.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(forInit) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types.parenL || this.type === types.name) {\n this.potentialArrowAt = this.start;\n this.potentialArrowInForAwait = forInit === \"await\";\n }\n var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n };\n\n // Parse a ternary conditional (`?:`) operator.\n\n pp$3.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(forInit, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types.colon);\n node.alternate = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n };\n\n // Start the precedence parser.\n\n pp$3.parseExprOps = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n };\n\n // Parse binary operators with the operator precedence parsing\n // algorithm. `left` is the left-hand side of the operator.\n // `minPrec` provides context that allows the function to stop and\n // defer further parser to one of its callers when it encounters an\n // operator that has a lower precedence than the set it is parsing.\n\n pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n var prec = this.type.binop;\n if (prec != null && (!forInit || this.type !== types._in)) {\n if (prec > minPrec) {\n var logical = this.type === types.logicalOR || this.type === types.logicalAND;\n var coalesce = this.type === types.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, forInit);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n }\n }\n return left\n };\n\n pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n };\n\n // Parse unary operators, both prefix and postfix.\n\n pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && this.canAwait) {\n expr = this.parseAwait();\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true, update);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" &&\n node.argument.type === \"Identifier\")\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!incDec && this.eat(types.starstar)) {\n if (sawUnary)\n { this.unexpected(this.lastTokStart); }\n else\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false) }\n } else {\n return expr\n }\n };\n\n function isPrivateFieldAccess(node) {\n return (\n node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression)\n )\n }\n\n // Parse call, dot, and `[]`-subscript expressions.\n\n pp$3.parseExprSubscripts = function(refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n }\n return result\n };\n\n pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n };\n\n pp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types.bracketL);\n if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(types.bracketR);\n } else if (this.type === types.privateId && base.type !== \"Super\") {\n node.property = this.parsePrivateIdent();\n } else {\n node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n }\n node.computed = !!computed;\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n };\n\n // Parse an atomic expression — either a single token that is an\n // expression, an expression started by a keyword like `function` or\n // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n // or `{}`.\n\n pp$3.parseExprAtom = function(refDestructuringErrors) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types._function))\n { return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true) }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types.name && !containsEsc &&\n (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n }\n }\n return id\n\n case types.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types.num: case types.string:\n return this.parseLiteral(this.value)\n\n case types._null: case types._true: case types._false:\n node = this.startNode();\n node.value = this.type === types._null ? null : this.type === types._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types.braceL:\n return this.parseObj(false, refDestructuringErrors)\n\n case types._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types._class:\n return this.parseClass(this.startNode(), false)\n\n case types._new:\n return this.parseNew()\n\n case types.backQuote:\n return this.parseTemplate()\n\n case types._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport()\n } else {\n return this.unexpected()\n }\n\n default:\n this.unexpected();\n }\n };\n\n pp$3.parseExprImport = function() {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n var meta = this.parseIdent(true);\n\n switch (this.type) {\n case types.parenL:\n return this.parseDynamicImport(node)\n case types.dot:\n node.meta = meta;\n return this.parseImportMeta(node)\n default:\n this.unexpected();\n }\n };\n\n pp$3.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n // Verify ending.\n if (!this.eat(types.parenR)) {\n var errorPos = this.start;\n if (this.eat(types.comma) && this.eat(types.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n };\n\n pp$3.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n };\n\n pp$3.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n };\n\n pp$3.parseParenExpression = function() {\n this.expect(types.parenL);\n var val = this.parseExpression();\n this.expect(types.parenR);\n return val\n };\n\n pp$3.parseParenAndDistinguishExpression = function(canBeArrow) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types.parenR) {\n first ? first = false : this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.start, innerEndLoc = this.startLoc;\n this.expect(types.parenR);\n\n if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n };\n\n pp$3.parseParenItem = function(item) {\n return item\n };\n\n pp$3.parseParenArrowList = function(startPos, startLoc, exprList) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n };\n\n // New's precedence is slightly tricky. It must allow its argument to\n // be a `[]` or dot subscript expression, but not a call — at least,\n // not without wrapping it in parentheses. Thus, it uses the noCalls\n // argument to parseSubscripts to prevent it from consuming the\n // argument list.\n\n var empty$1 = [];\n\n pp$3.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n var meta = this.parseIdent(true);\n if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) {\n node.meta = meta;\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.inNonArrowFunction)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import;\n node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n if (isImport && node.callee.type === \"ImportExpression\") {\n this.raise(startPos, \"Cannot use new with import()\");\n }\n if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty$1; }\n return this.finishNode(node, \"NewExpression\")\n };\n\n // Parse template expression.\n\n pp$3.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value,\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n };\n\n pp$3.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n };\n\n pp$3.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n };\n\n // Parse an object literal or binding pattern.\n\n pp$3.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n };\n\n pp$3.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types.comma) {\n this.raise(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // To disallow parenthesized identifier via `this.toAssignable()`.\n if (this.type === types.parenL && refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0) {\n refDestructuringErrors.parenthesizedAssign = this.start;\n }\n if (refDestructuringErrors.parenthesizedBind < 0) {\n refDestructuringErrors.parenthesizedBind = this.start;\n }\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);\n this.parsePropertyName(prop, refDestructuringErrors);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n };\n\n pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types.colon)\n { this.unexpected(); }\n\n if (this.eat(types.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.kind = \"init\";\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n prop.kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n prop.kind = \"init\";\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.shorthand = true;\n } else { this.unexpected(); }\n };\n\n pp$3.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n };\n\n // Initialize empty function node.\n\n pp$3.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n };\n\n // Parse object or class method.\n\n pp$3.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n };\n\n // Parse arrow function expression with given parameters.\n\n pp$3.parseArrowExpression = function(node, params, isAsync) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n };\n\n // Parse function body and check parameters.\n\n pp$3.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n var isExpression = isArrowFunction && this.type !== types.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign();\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n };\n\n pp$3.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n };\n\n // Checks function params for various disallowed patterns such as using \"eval\"\n // or \"arguments\" and duplicate parameters.\n\n pp$3.checkParams = function(node, allowDuplicates) {\n var nameHash = Object.create(null);\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n };\n\n // Parses a comma-separated list of expressions, and returns them as\n // an array. `close` is the token type that ends the list, and\n // `allowEmpty` can be turned on to allow subsequent commas with\n // nothing in between them to be parsed as `null` (which is needed\n // for array literals).\n\n pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types.comma)\n { elt = null; }\n else if (this.type === types.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n };\n\n pp$3.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (this.currentThisScope().inClassFieldInit && name === \"arguments\")\n { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n };\n\n // Parse the next token as an identifier. If `liberal` is true (used\n // when parsing properties), it will also convert keywords into\n // identifiers.\n\n pp$3.parseIdent = function(liberal, isBinding) {\n var node = this.startNode();\n if (this.type === types.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n } else {\n this.unexpected();\n }\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n };\n\n pp$3.parsePrivateIdent = function() {\n var node = this.startNode();\n if (this.type === types.privateId) {\n node.name = this.value;\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"PrivateIdentifier\");\n\n // For validating existence\n if (this.privateNameStack.length === 0) {\n this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n } else {\n this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n }\n\n return node\n };\n\n // Parses yield expression inside generator.\n\n pp$3.parseYield = function(forInit) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types.star);\n node.argument = this.parseMaybeAssign(forInit);\n }\n return this.finishNode(node, \"YieldExpression\")\n };\n\n pp$3.parseAwait = function() {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n return this.finishNode(node, \"AwaitExpression\")\n };\n\n var pp$4 = Parser.prototype;\n\n // This function is used to raise exceptions on parse errors. It\n // takes an offset integer (into the current `input`) to indicate\n // the location of the error, attaches the position to the end\n // of the error message, and then raises a `SyntaxError` with that\n // message.\n\n pp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n };\n\n pp$4.raiseRecoverable = pp$4.raise;\n\n pp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n };\n\n var pp$5 = Parser.prototype;\n\n var Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n // A switch to disallow the identifier reference 'arguments'\n this.inClassFieldInit = false;\n };\n\n // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\n pp$5.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n };\n\n pp$5.exitScope = function() {\n this.scopeStack.pop();\n };\n\n // The spec says:\n // > At the top level of a function, or script, function declarations are\n // > treated like var declarations rather than like lexical declarations.\n pp$5.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n };\n\n pp$5.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n };\n\n pp$5.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n };\n\n pp$5.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n };\n\n pp$5.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR) { return scope }\n }\n };\n\n // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n pp$5.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n };\n\n var Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n };\n\n // Start an AST node, attaching a start offset.\n\n var pp$6 = Parser.prototype;\n\n pp$6.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n };\n\n pp$6.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n };\n\n // Finish an AST node, adding `type` and `end` properties.\n\n function finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n }\n\n pp$6.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n };\n\n // Finish node at given position\n\n pp$6.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n };\n\n pp$6.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n };\n\n // The algorithm used to determine whether a regexp can appear at a\n\n var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n };\n\n var types$1 = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n };\n\n var pp$7 = Parser.prototype;\n\n pp$7.initialContext = function() {\n return [types$1.b_stat]\n };\n\n pp$7.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types$1.f_expr || parent === types$1.f_stat)\n { return true }\n if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types._return || prevType === types.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)\n { return true }\n if (prevType === types.braceL)\n { return parent === types$1.b_stat }\n if (prevType === types._var || prevType === types._const || prevType === types.name)\n { return false }\n return !this.exprAllowed\n };\n\n pp$7.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n };\n\n pp$7.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n };\n\n // Token-specific context update code\n\n types.parenR.updateContext = types.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types$1.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n };\n\n types.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr);\n this.exprAllowed = true;\n };\n\n types.dollarBraceL.updateContext = function() {\n this.context.push(types$1.b_tmpl);\n this.exprAllowed = true;\n };\n\n types.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;\n this.context.push(statementParens ? types$1.p_stat : types$1.p_expr);\n this.exprAllowed = true;\n };\n\n types.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n };\n\n types._function.updateContext = types._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types._else &&\n !(prevType === types.semi && this.curContext() !== types$1.p_stat) &&\n !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat))\n { this.context.push(types$1.f_expr); }\n else\n { this.context.push(types$1.f_stat); }\n this.exprAllowed = false;\n };\n\n types.backQuote.updateContext = function() {\n if (this.curContext() === types$1.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types$1.q_tmpl); }\n this.exprAllowed = false;\n };\n\n types.star.updateContext = function(prevType) {\n if (prevType === types._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types$1.f_expr)\n { this.context[index] = types$1.f_expr_gen; }\n else\n { this.context[index] = types$1.f_gen; }\n }\n this.exprAllowed = true;\n };\n\n types.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n };\n\n // This file contains Unicode properties extracted from the ECMAScript\n // specification. The lists are extracted like so:\n // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n // #table-binary-unicode-properties\n var ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\n var ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\n var ecma11BinaryProperties = ecma10BinaryProperties;\n var ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\n var unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties\n };\n\n // #table-unicode-general-category-values\n var unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n // #table-unicode-script-values\n var ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\n var ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\n var ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\n var ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\n var unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues\n };\n\n var data = {};\n function buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n }\n buildUnicodeData(9);\n buildUnicodeData(10);\n buildUnicodeData(11);\n buildUnicodeData(12);\n\n var pp$8 = Parser.prototype;\n\n var RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = [];\n this.backReferenceNames = [];\n };\n\n RegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n };\n\n RegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n };\n\n // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n RegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n };\n\n RegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n };\n\n RegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n };\n\n RegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n };\n\n RegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n };\n\n RegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n };\n\n function codePointToString(ch) {\n if (ch <= 0xFFFF) { return String.fromCharCode(ch) }\n ch -= 0x10000;\n return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n }\n\n /**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\n pp$8.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n }\n };\n\n /**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\n pp$8.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\n pp$8.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames.length = 0;\n state.backReferenceNames.length = 0;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (state.groupNames.indexOf(name) === -1) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\n pp$8.regexp_disjunction = function(state) {\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n this.regexp_alternative(state);\n }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\n pp$8.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state))\n { }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\n pp$8.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\n pp$8.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\n pp$8.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\n pp$8.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n };\n pp$8.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\n pp$8.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n };\n pp$8.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$8.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n state.pos = start;\n }\n return false\n };\n pp$8.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\n pp$8.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\n pp$8.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\n pp$8.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n };\n function isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n // But eat eager.\n pp$8.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\n pp$8.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n };\n\n // GroupSpecifier ::\n // [empty]\n // `?` GroupName\n pp$8.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (this.regexp_eatGroupName(state)) {\n if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n state.raise(\"Duplicate capture group name\");\n }\n state.groupNames.push(state.lastStringValue);\n return\n }\n state.raise(\"Invalid group\");\n }\n };\n\n // GroupName ::\n // `<` RegExpIdentifierName `>`\n // Note: this updates `state.lastStringValue` property with the eaten name.\n pp$8.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n };\n\n // RegExpIdentifierName ::\n // RegExpIdentifierStart\n // RegExpIdentifierName RegExpIdentifierPart\n // Note: this updates `state.lastStringValue` property with the eaten name.\n pp$8.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n };\n\n // RegExpIdentifierStart ::\n // UnicodeIDStart\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[+U]\n pp$8.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n };\n function isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n }\n\n // RegExpIdentifierPart ::\n // UnicodeIDContinue\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[+U]\n // <ZWNJ>\n // <ZWJ>\n pp$8.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n };\n function isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\n pp$8.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n };\n pp$8.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$8.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\n pp$8.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n };\n pp$8.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$8.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\n pp$8.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\n pp$8.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n };\n function isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\n pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n };\n function isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\n pp$8.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\n pp$8.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\n pp$8.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return true\n }\n\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n if (\n state.eat(0x7B /* { */) &&\n this.regexp_eatUnicodePropertyValueExpression(state) &&\n state.eat(0x7D /* } */)\n ) {\n return true\n }\n state.raise(\"Invalid property name\");\n }\n\n return false\n };\n function isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n }\n\n // UnicodePropertyValueExpression ::\n // UnicodePropertyName `=` UnicodePropertyValue\n // LoneUnicodePropertyNameOrValue\n pp$8.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return true\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);\n return true\n }\n return false\n };\n pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!has(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n };\n pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (!state.unicodeProperties.binary.test(nameOrValue))\n { state.raise(\"Invalid property name\"); }\n };\n\n // UnicodePropertyName ::\n // UnicodePropertyNameCharacters\n pp$8.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n };\n function isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n }\n\n // UnicodePropertyValue ::\n // UnicodePropertyValueCharacters\n pp$8.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n };\n function isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n }\n\n // LoneUnicodePropertyNameOrValue ::\n // UnicodePropertyValueCharacters\n pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\n pp$8.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n state.eat(0x5E /* ^ */);\n this.regexp_classRanges(state);\n if (state.eat(0x5D /* ] */)) {\n return true\n }\n // Unreachable since it threw \"unterminated regular expression\" error before.\n state.raise(\"Unterminated character class\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\n pp$8.regexp_classRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\n pp$8.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\n pp$8.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\n pp$8.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n pp$8.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\n pp$8.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n };\n function isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\n pp$8.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n };\n function isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n }\n function hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n // Allows only 0-377(octal) i.e. 0-255(decimal).\n pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\n pp$8.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n };\n function isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n pp$8.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n };\n\n // Object type used to represent tokens. Note that normally, tokens\n // simply exist as properties on the parser object. This is only\n // used for the onToken callback and the external tokenizer.\n\n var Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n };\n\n // ## Tokenizer\n\n var pp$9 = Parser.prototype;\n\n // Move to the next token\n\n pp$9.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n };\n\n pp$9.getToken = function() {\n this.next();\n return new Token(this)\n };\n\n // If we're in an ES6 environment, make parsers iterable\n if (typeof Symbol !== \"undefined\")\n { pp$9[Symbol.iterator] = function() {\n var this$1 = this;\n\n return {\n next: function () {\n var token = this$1.getToken();\n return {\n done: token.type === types.eof,\n value: token\n }\n }\n }\n }; }\n\n // Toggle strict mode. Re-reads the next number or string to please\n // pedantic tests (`\"use strict\"; 010;` should fail).\n\n pp$9.curContext = function() {\n return this.context[this.context.length - 1]\n };\n\n // Read a single token, updating the parser object's token-related\n // properties.\n\n pp$9.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n };\n\n pp$9.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n };\n\n pp$9.fullCharCodeAtPos = function() {\n var code = this.input.charCodeAt(this.pos);\n if (code <= 0xd7ff || code >= 0xdc00) { return code }\n var next = this.input.charCodeAt(this.pos + 1);\n return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n };\n\n pp$9.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n lineBreakG.lastIndex = start;\n var match;\n while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n ++this.curLine;\n this.lineStart = match.index + match[0].length;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n };\n\n pp$9.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n };\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n pp$9.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n };\n\n // Called at the end of every token. Sets `end`, `val`, and\n // maintains `context` and `exprAllowed`, and skips the space after\n // the token, so that the next one's `start` will point at the\n // right position.\n\n pp$9.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n };\n\n // ### Token reading\n\n // This is the function that is called to fetch the next token. It\n // is somewhat obscure, because it works in character codes rather\n // than characters, and because operator parsing has been inlined\n // into it.\n //\n // All in the name of speed.\n //\n pp$9.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types.dot)\n }\n };\n\n pp$9.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.slash, 1)\n };\n\n pp$9.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types.star : types.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(tokentype, size)\n };\n\n pp$9.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types.assign, 3) }\n }\n return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1)\n };\n\n pp$9.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.bitwiseXOR, 1)\n };\n\n pp$9.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.plusMin, 1)\n };\n\n pp$9.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(types.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types.relational, size)\n };\n\n pp$9.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types.arrow)\n }\n return this.finishOp(code === 61 ? types.eq : types.prefix, 1)\n };\n\n pp$9.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types.assign, 3) }\n }\n return this.finishOp(types.coalesce, 2)\n }\n }\n return this.finishOp(types.question, 1)\n };\n\n pp$9.readToken_numberSign = function() { // '#'\n var ecmaVersion = this.options.ecmaVersion;\n var code = 35; // '#'\n if (ecmaVersion >= 13) {\n ++this.pos;\n code = this.fullCharCodeAtPos();\n if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n return this.finishToken(types.privateId, this.readWord1())\n }\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString$1(code) + \"'\");\n };\n\n pp$9.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types.parenL)\n case 41: ++this.pos; return this.finishToken(types.parenR)\n case 59: ++this.pos; return this.finishToken(types.semi)\n case 44: ++this.pos; return this.finishToken(types.comma)\n case 91: ++this.pos; return this.finishToken(types.bracketL)\n case 93: ++this.pos; return this.finishToken(types.bracketR)\n case 123: ++this.pos; return this.finishToken(types.braceL)\n case 125: ++this.pos; return this.finishToken(types.braceR)\n case 58: ++this.pos; return this.finishToken(types.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types.prefix, 1)\n\n case 35: // '#'\n return this.readToken_numberSign()\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString$1(code) + \"'\");\n };\n\n pp$9.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n };\n\n pp$9.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value})\n };\n\n // Read an integer in the given radix. Return null if zero digits\n // were read, the integer value otherwise. When `len` is given, this\n // will return `null` unless the integer has exactly `len` digits.\n\n pp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n };\n\n function stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n }\n\n function stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n }\n\n pp$9.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types.num, val)\n };\n\n // Read an integer, octal integer, or floating-point number.\n\n pp$9.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types.num, val)\n };\n\n // Read a string value, interpreting backslash-escapes.\n\n pp$9.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n };\n\n function codePointToString$1(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n }\n\n pp$9.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else {\n if (isNewLine(ch, this.options.ecmaVersion >= 10)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types.string, out)\n };\n\n // Reads template string tokens.\n\n var INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\n pp$9.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n };\n\n pp$9.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n };\n\n pp$9.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types.template || this.type === types.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n };\n\n // Reads a template token to search for the end, without validating any escape sequences\n pp$9.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") {\n break\n }\n // falls through\n\n case \"`\":\n return this.finishToken(types.invalidTemplate, this.input.slice(this.start, this.pos))\n\n // no default\n }\n }\n this.raise(this.start, \"Unterminated template\");\n };\n\n // Used to read escaped characters\n\n pp$9.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString$1(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n\n return null\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n };\n\n // Used to read character escape sequences ('\\x', '\\u', '\\U').\n\n pp$9.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n };\n\n // Read an identifier, and return it as a string. Sets `this.containsEsc`\n // to whether the word contained a '\\u' escape.\n //\n // Incrementally adds only escaped chars, adding other chunks as-is\n // as a micro-optimization.\n\n pp$9.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString$1(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n };\n\n // Read an identifier or keyword token. Will check for reserved\n // words when necessary.\n\n pp$9.readWord = function() {\n var word = this.readWord1();\n var type = types.name;\n if (this.keywords.test(word)) {\n type = keywords$1[word];\n }\n return this.finishToken(type, word)\n };\n\n // Acorn is a tiny, fast JavaScript parser written in JavaScript.\n\n var version = \"8.4.1\";\n\n Parser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types,\n keywordTypes: keywords$1,\n TokContext: TokContext,\n tokContexts: types$1,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n };\n\n // The main exported interface (under `self.acorn` when in the\n // browser) is a `parse` function that takes a code string and\n // returns an abstract syntax tree as specified by [Mozilla parser\n // API][api].\n //\n // [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\n function parse(input, options) {\n return Parser.parse(input, options)\n }\n\n // This function tries to parse a single expression at a given\n // offset in a string. Useful for parsing mixed-language formats\n // that embed JavaScript expressions.\n\n function parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n }\n\n // Acorn is organized as a tokenizer and a recursive-descent parser.\n // The `tokenizer` export provides an interface to the tokenizer.\n\n function tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n }\n\n exports.Node = Node;\n exports.Parser = Parser;\n exports.Position = Position;\n exports.SourceLocation = SourceLocation;\n exports.TokContext = TokContext;\n exports.Token = Token;\n exports.TokenType = TokenType;\n exports.defaultOptions = defaultOptions;\n exports.getLineInfo = getLineInfo;\n exports.isIdentifierChar = isIdentifierChar;\n exports.isIdentifierStart = isIdentifierStart;\n exports.isNewLine = isNewLine;\n exports.keywordTypes = keywords$1;\n exports.lineBreak = lineBreak;\n exports.lineBreakG = lineBreakG;\n exports.nonASCIIwhitespace = nonASCIIwhitespace;\n exports.parse = parse;\n exports.parseExpressionAt = parseExpressionAt;\n exports.tokContexts = types$1;\n exports.tokTypes = types;\n exports.tokenizer = tokenizer;\n exports.version = version;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory((global.acorn = global.acorn || {}, global.acorn.walk = {})));\n}(this, (function (exports) { 'use strict';\n\n // AST walker module for Mozilla Parser API compatible trees\n\n // A simple walk is one where you simply specify callbacks to be\n // called on specific nodes. The last two arguments are optional. A\n // simple use would be\n //\n // walk.simple(myTree, {\n // Expression: function(node) { ... }\n // });\n //\n // to do something with all expressions. All Parser API node types\n // can be used to identify node types, as well as Expression and\n // Statement, which denote categories of nodes.\n //\n // The base argument can be used to pass a custom (recursive)\n // walker, and state can be used to give this walked an initial\n // state.\n\n function simple(node, visitors, baseVisitor, state, override) {\n if (!baseVisitor) { baseVisitor = base\n ; }(function c(node, st, override) {\n var type = override || node.type, found = visitors[type];\n baseVisitor[type](node, st, c);\n if (found) { found(node, st); }\n })(node, state, override);\n }\n\n // An ancestor walk keeps an array of ancestor nodes (including the\n // current node) and passes them to the callback as third parameter\n // (and also as state parameter when no other state is present).\n function ancestor(node, visitors, baseVisitor, state, override) {\n var ancestors = [];\n if (!baseVisitor) { baseVisitor = base\n ; }(function c(node, st, override) {\n var type = override || node.type, found = visitors[type];\n var isNew = node !== ancestors[ancestors.length - 1];\n if (isNew) { ancestors.push(node); }\n baseVisitor[type](node, st, c);\n if (found) { found(node, st || ancestors, ancestors); }\n if (isNew) { ancestors.pop(); }\n })(node, state, override);\n }\n\n // A recursive walk is one where your functions override the default\n // walkers. They can modify and replace the state parameter that's\n // threaded through the walk, and can opt how and whether to walk\n // their child nodes (by calling their third argument on these\n // nodes).\n function recursive(node, state, funcs, baseVisitor, override) {\n var visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor\n ;(function c(node, st, override) {\n visitor[override || node.type](node, st, c);\n })(node, state, override);\n }\n\n function makeTest(test) {\n if (typeof test === \"string\")\n { return function (type) { return type === test; } }\n else if (!test)\n { return function () { return true; } }\n else\n { return test }\n }\n\n var Found = function Found(node, state) { this.node = node; this.state = state; };\n\n // A full walk triggers the callback on each node\n function full(node, callback, baseVisitor, state, override) {\n if (!baseVisitor) { baseVisitor = base; }\n var last\n ;(function c(node, st, override) {\n var type = override || node.type;\n baseVisitor[type](node, st, c);\n if (last !== node) {\n callback(node, st, type);\n last = node;\n }\n })(node, state, override);\n }\n\n // An fullAncestor walk is like an ancestor walk, but triggers\n // the callback on each node\n function fullAncestor(node, callback, baseVisitor, state) {\n if (!baseVisitor) { baseVisitor = base; }\n var ancestors = [], last\n ;(function c(node, st, override) {\n var type = override || node.type;\n var isNew = node !== ancestors[ancestors.length - 1];\n if (isNew) { ancestors.push(node); }\n baseVisitor[type](node, st, c);\n if (last !== node) {\n callback(node, st || ancestors, ancestors, type);\n last = node;\n }\n if (isNew) { ancestors.pop(); }\n })(node, state);\n }\n\n // Find a node with a given start, end, and type (all are optional,\n // null can be used as wildcard). Returns a {node, state} object, or\n // undefined when it doesn't find a matching node.\n function findNodeAt(node, start, end, test, baseVisitor, state) {\n if (!baseVisitor) { baseVisitor = base; }\n test = makeTest(test);\n try {\n (function c(node, st, override) {\n var type = override || node.type;\n if ((start == null || node.start <= start) &&\n (end == null || node.end >= end))\n { baseVisitor[type](node, st, c); }\n if ((start == null || node.start === start) &&\n (end == null || node.end === end) &&\n test(type, node))\n { throw new Found(node, st) }\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n }\n\n // Find the innermost node of a given type that contains the given\n // position. Interface similar to findNodeAt.\n function findNodeAround(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n try {\n (function c(node, st, override) {\n var type = override || node.type;\n if (node.start > pos || node.end < pos) { return }\n baseVisitor[type](node, st, c);\n if (test(type, node)) { throw new Found(node, st) }\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n }\n\n // Find the outermost matching node after a given position.\n function findNodeAfter(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n try {\n (function c(node, st, override) {\n if (node.end < pos) { return }\n var type = override || node.type;\n if (node.start >= pos && test(type, node)) { throw new Found(node, st) }\n baseVisitor[type](node, st, c);\n })(node, state);\n } catch (e) {\n if (e instanceof Found) { return e }\n throw e\n }\n }\n\n // Find the outermost matching node before a given position.\n function findNodeBefore(node, pos, test, baseVisitor, state) {\n test = makeTest(test);\n if (!baseVisitor) { baseVisitor = base; }\n var max\n ;(function c(node, st, override) {\n if (node.start > pos) { return }\n var type = override || node.type;\n if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))\n { max = new Found(node, st); }\n baseVisitor[type](node, st, c);\n })(node, state);\n return max\n }\n\n // Used to create a custom walker. Will fill in all missing node\n // type properties with the defaults.\n function make(funcs, baseVisitor) {\n var visitor = Object.create(baseVisitor || base);\n for (var type in funcs) { visitor[type] = funcs[type]; }\n return visitor\n }\n\n function skipThrough(node, st, c) { c(node, st); }\n function ignore(_node, _st, _c) {}\n\n // Node walkers.\n\n var base = {};\n\n base.Program = base.BlockStatement = function (node, st, c) {\n for (var i = 0, list = node.body; i < list.length; i += 1)\n {\n var stmt = list[i];\n\n c(stmt, st, \"Statement\");\n }\n };\n base.Statement = skipThrough;\n base.EmptyStatement = ignore;\n base.ExpressionStatement = base.ParenthesizedExpression = base.ChainExpression =\n function (node, st, c) { return c(node.expression, st, \"Expression\"); };\n base.IfStatement = function (node, st, c) {\n c(node.test, st, \"Expression\");\n c(node.consequent, st, \"Statement\");\n if (node.alternate) { c(node.alternate, st, \"Statement\"); }\n };\n base.LabeledStatement = function (node, st, c) { return c(node.body, st, \"Statement\"); };\n base.BreakStatement = base.ContinueStatement = ignore;\n base.WithStatement = function (node, st, c) {\n c(node.object, st, \"Expression\");\n c(node.body, st, \"Statement\");\n };\n base.SwitchStatement = function (node, st, c) {\n c(node.discriminant, st, \"Expression\");\n for (var i$1 = 0, list$1 = node.cases; i$1 < list$1.length; i$1 += 1) {\n var cs = list$1[i$1];\n\n if (cs.test) { c(cs.test, st, \"Expression\"); }\n for (var i = 0, list = cs.consequent; i < list.length; i += 1)\n {\n var cons = list[i];\n\n c(cons, st, \"Statement\");\n }\n }\n };\n base.SwitchCase = function (node, st, c) {\n if (node.test) { c(node.test, st, \"Expression\"); }\n for (var i = 0, list = node.consequent; i < list.length; i += 1)\n {\n var cons = list[i];\n\n c(cons, st, \"Statement\");\n }\n };\n base.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {\n if (node.argument) { c(node.argument, st, \"Expression\"); }\n };\n base.ThrowStatement = base.SpreadElement =\n function (node, st, c) { return c(node.argument, st, \"Expression\"); };\n base.TryStatement = function (node, st, c) {\n c(node.block, st, \"Statement\");\n if (node.handler) { c(node.handler, st); }\n if (node.finalizer) { c(node.finalizer, st, \"Statement\"); }\n };\n base.CatchClause = function (node, st, c) {\n if (node.param) { c(node.param, st, \"Pattern\"); }\n c(node.body, st, \"Statement\");\n };\n base.WhileStatement = base.DoWhileStatement = function (node, st, c) {\n c(node.test, st, \"Expression\");\n c(node.body, st, \"Statement\");\n };\n base.ForStatement = function (node, st, c) {\n if (node.init) { c(node.init, st, \"ForInit\"); }\n if (node.test) { c(node.test, st, \"Expression\"); }\n if (node.update) { c(node.update, st, \"Expression\"); }\n c(node.body, st, \"Statement\");\n };\n base.ForInStatement = base.ForOfStatement = function (node, st, c) {\n c(node.left, st, \"ForInit\");\n c(node.right, st, \"Expression\");\n c(node.body, st, \"Statement\");\n };\n base.ForInit = function (node, st, c) {\n if (node.type === \"VariableDeclaration\") { c(node, st); }\n else { c(node, st, \"Expression\"); }\n };\n base.DebuggerStatement = ignore;\n\n base.FunctionDeclaration = function (node, st, c) { return c(node, st, \"Function\"); };\n base.VariableDeclaration = function (node, st, c) {\n for (var i = 0, list = node.declarations; i < list.length; i += 1)\n {\n var decl = list[i];\n\n c(decl, st);\n }\n };\n base.VariableDeclarator = function (node, st, c) {\n c(node.id, st, \"Pattern\");\n if (node.init) { c(node.init, st, \"Expression\"); }\n };\n\n base.Function = function (node, st, c) {\n if (node.id) { c(node.id, st, \"Pattern\"); }\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n c(param, st, \"Pattern\");\n }\n c(node.body, st, node.expression ? \"Expression\" : \"Statement\");\n };\n\n base.Pattern = function (node, st, c) {\n if (node.type === \"Identifier\")\n { c(node, st, \"VariablePattern\"); }\n else if (node.type === \"MemberExpression\")\n { c(node, st, \"MemberPattern\"); }\n else\n { c(node, st); }\n };\n base.VariablePattern = ignore;\n base.MemberPattern = skipThrough;\n base.RestElement = function (node, st, c) { return c(node.argument, st, \"Pattern\"); };\n base.ArrayPattern = function (node, st, c) {\n for (var i = 0, list = node.elements; i < list.length; i += 1) {\n var elt = list[i];\n\n if (elt) { c(elt, st, \"Pattern\"); }\n }\n };\n base.ObjectPattern = function (node, st, c) {\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n if (prop.type === \"Property\") {\n if (prop.computed) { c(prop.key, st, \"Expression\"); }\n c(prop.value, st, \"Pattern\");\n } else if (prop.type === \"RestElement\") {\n c(prop.argument, st, \"Pattern\");\n }\n }\n };\n\n base.Expression = skipThrough;\n base.ThisExpression = base.Super = base.MetaProperty = ignore;\n base.ArrayExpression = function (node, st, c) {\n for (var i = 0, list = node.elements; i < list.length; i += 1) {\n var elt = list[i];\n\n if (elt) { c(elt, st, \"Expression\"); }\n }\n };\n base.ObjectExpression = function (node, st, c) {\n for (var i = 0, list = node.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n c(prop, st);\n }\n };\n base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;\n base.SequenceExpression = function (node, st, c) {\n for (var i = 0, list = node.expressions; i < list.length; i += 1)\n {\n var expr = list[i];\n\n c(expr, st, \"Expression\");\n }\n };\n base.TemplateLiteral = function (node, st, c) {\n for (var i = 0, list = node.quasis; i < list.length; i += 1)\n {\n var quasi = list[i];\n\n c(quasi, st);\n }\n\n for (var i$1 = 0, list$1 = node.expressions; i$1 < list$1.length; i$1 += 1)\n {\n var expr = list$1[i$1];\n\n c(expr, st, \"Expression\");\n }\n };\n base.TemplateElement = ignore;\n base.UnaryExpression = base.UpdateExpression = function (node, st, c) {\n c(node.argument, st, \"Expression\");\n };\n base.BinaryExpression = base.LogicalExpression = function (node, st, c) {\n c(node.left, st, \"Expression\");\n c(node.right, st, \"Expression\");\n };\n base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {\n c(node.left, st, \"Pattern\");\n c(node.right, st, \"Expression\");\n };\n base.ConditionalExpression = function (node, st, c) {\n c(node.test, st, \"Expression\");\n c(node.consequent, st, \"Expression\");\n c(node.alternate, st, \"Expression\");\n };\n base.NewExpression = base.CallExpression = function (node, st, c) {\n c(node.callee, st, \"Expression\");\n if (node.arguments)\n { for (var i = 0, list = node.arguments; i < list.length; i += 1)\n {\n var arg = list[i];\n\n c(arg, st, \"Expression\");\n } }\n };\n base.MemberExpression = function (node, st, c) {\n c(node.object, st, \"Expression\");\n if (node.computed) { c(node.property, st, \"Expression\"); }\n };\n base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {\n if (node.declaration)\n { c(node.declaration, st, node.type === \"ExportNamedDeclaration\" || node.declaration.id ? \"Statement\" : \"Expression\"); }\n if (node.source) { c(node.source, st, \"Expression\"); }\n };\n base.ExportAllDeclaration = function (node, st, c) {\n if (node.exported)\n { c(node.exported, st); }\n c(node.source, st, \"Expression\");\n };\n base.ImportDeclaration = function (node, st, c) {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1)\n {\n var spec = list[i];\n\n c(spec, st);\n }\n c(node.source, st, \"Expression\");\n };\n base.ImportExpression = function (node, st, c) {\n c(node.source, st, \"Expression\");\n };\n base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.PrivateIdentifier = base.Literal = ignore;\n\n base.TaggedTemplateExpression = function (node, st, c) {\n c(node.tag, st, \"Expression\");\n c(node.quasi, st, \"Expression\");\n };\n base.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, \"Class\"); };\n base.Class = function (node, st, c) {\n if (node.id) { c(node.id, st, \"Pattern\"); }\n if (node.superClass) { c(node.superClass, st, \"Expression\"); }\n c(node.body, st);\n };\n base.ClassBody = function (node, st, c) {\n for (var i = 0, list = node.body; i < list.length; i += 1)\n {\n var elt = list[i];\n\n c(elt, st);\n }\n };\n base.MethodDefinition = base.PropertyDefinition = base.Property = function (node, st, c) {\n if (node.computed) { c(node.key, st, \"Expression\"); }\n if (node.value) { c(node.value, st, \"Expression\"); }\n };\n\n exports.ancestor = ancestor;\n exports.base = base;\n exports.findNodeAfter = findNodeAfter;\n exports.findNodeAround = findNodeAround;\n exports.findNodeAt = findNodeAt;\n exports.findNodeBefore = findNodeBefore;\n exports.full = full;\n exports.fullAncestor = fullAncestor;\n exports.make = make;\n exports.recursive = recursive;\n exports.simple = simple;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","// copied from https://github.com/nodejs/node/blob/88799930794045795e8abac874730f9eba7e2300/lib/internal/repl/await.js\n'use strict';\n\nconst {\n ArrayFrom,\n ArrayPrototypeForEach,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypePop,\n ArrayPrototypePush,\n FunctionPrototype,\n ObjectKeys,\n RegExpPrototypeSymbolReplace,\n StringPrototypeEndsWith,\n StringPrototypeIncludes,\n StringPrototypeIndexOf,\n StringPrototypeRepeat,\n StringPrototypeSplit,\n StringPrototypeStartsWith,\n SyntaxError,\n} = require('./node-primordials');\n\nconst parser = require('acorn').Parser;\nconst walk = require('acorn-walk');\nconst { Recoverable } = require('repl');\n\nfunction isTopLevelDeclaration(state) {\n return state.ancestors[state.ancestors.length - 2] === state.body;\n}\n\nconst noop = FunctionPrototype;\nconst visitorsWithoutAncestors = {\n ClassDeclaration(node, state, c) {\n if (isTopLevelDeclaration(state)) {\n state.prepend(node, `${node.id.name}=`);\n ArrayPrototypePush(\n state.hoistedDeclarationStatements,\n `let ${node.id.name}; `\n );\n }\n\n walk.base.ClassDeclaration(node, state, c);\n },\n ForOfStatement(node, state, c) {\n if (node.await === true) {\n state.containsAwait = true;\n }\n walk.base.ForOfStatement(node, state, c);\n },\n FunctionDeclaration(node, state, c) {\n state.prepend(node, `${node.id.name}=`);\n ArrayPrototypePush(\n state.hoistedDeclarationStatements,\n `var ${node.id.name}; `\n );\n },\n FunctionExpression: noop,\n ArrowFunctionExpression: noop,\n MethodDefinition: noop,\n AwaitExpression(node, state, c) {\n state.containsAwait = true;\n walk.base.AwaitExpression(node, state, c);\n },\n ReturnStatement(node, state, c) {\n state.containsReturn = true;\n walk.base.ReturnStatement(node, state, c);\n },\n VariableDeclaration(node, state, c) {\n const variableKind = node.kind;\n const isIterableForDeclaration = ArrayPrototypeIncludes(\n ['ForOfStatement', 'ForInStatement'],\n state.ancestors[state.ancestors.length - 2].type\n );\n\n if (variableKind === 'var' || isTopLevelDeclaration(state)) {\n state.replace(\n node.start,\n node.start + variableKind.length + (isIterableForDeclaration ? 1 : 0),\n variableKind === 'var' && isIterableForDeclaration ?\n '' :\n 'void' + (node.declarations.length === 1 ? '' : ' (')\n );\n\n if (!isIterableForDeclaration) {\n ArrayPrototypeForEach(node.declarations, (decl) => {\n state.prepend(decl, '(');\n state.append(decl, decl.init ? ')' : '=undefined)');\n });\n\n if (node.declarations.length !== 1) {\n state.append(node.declarations[node.declarations.length - 1], ')');\n }\n }\n\n const variableIdentifiersToHoist = [\n ['var', []],\n ['let', []],\n ];\n function registerVariableDeclarationIdentifiers(node) {\n switch (node.type) {\n case 'Identifier':\n ArrayPrototypePush(\n variableIdentifiersToHoist[variableKind === 'var' ? 0 : 1][1],\n node.name\n );\n break;\n case 'ObjectPattern':\n ArrayPrototypeForEach(node.properties, (property) => {\n registerVariableDeclarationIdentifiers(property.value);\n });\n break;\n case 'ArrayPattern':\n ArrayPrototypeForEach(node.elements, (element) => {\n registerVariableDeclarationIdentifiers(element);\n });\n break;\n }\n }\n\n ArrayPrototypeForEach(node.declarations, (decl) => {\n registerVariableDeclarationIdentifiers(decl.id);\n });\n\n ArrayPrototypeForEach(\n variableIdentifiersToHoist,\n ({ 0: kind, 1: identifiers }) => {\n if (identifiers.length > 0) {\n ArrayPrototypePush(\n state.hoistedDeclarationStatements,\n `${kind} ${ArrayPrototypeJoin(identifiers, ', ')}; `\n );\n }\n }\n );\n }\n\n walk.base.VariableDeclaration(node, state, c);\n }\n};\n\nconst visitors = {};\nfor (const nodeType of ObjectKeys(walk.base)) {\n const callback = visitorsWithoutAncestors[nodeType] || walk.base[nodeType];\n visitors[nodeType] = (node, state, c) => {\n const isNew = node !== state.ancestors[state.ancestors.length - 1];\n if (isNew) {\n ArrayPrototypePush(state.ancestors, node);\n }\n callback(node, state, c);\n if (isNew) {\n ArrayPrototypePop(state.ancestors);\n }\n };\n}\n\nfunction processTopLevelAwait(src) {\n const wrapPrefix = '(async () => { ';\n const wrapped = `${wrapPrefix}${src} })()`;\n const wrappedArray = ArrayFrom(wrapped);\n let root;\n try {\n root = parser.parse(wrapped, { ecmaVersion: 'latest' });\n } catch (e) {\n if (StringPrototypeStartsWith(e.message, 'Unterminated '))\n throw new Recoverable(e);\n // If the parse error is before the first \"await\", then use the execution\n // error. Otherwise we must emit this parse error, making it look like a\n // proper syntax error.\n const awaitPos = StringPrototypeIndexOf(src, 'await');\n const errPos = e.pos - wrapPrefix.length;\n if (awaitPos > errPos)\n return null;\n // Convert keyword parse errors on await into their original errors when\n // possible.\n if (errPos === awaitPos + 6 &&\n StringPrototypeIncludes(e.message, 'Expecting Unicode escape sequence'))\n return null;\n if (errPos === awaitPos + 7 &&\n StringPrototypeIncludes(e.message, 'Unexpected token'))\n return null;\n const line = e.loc.line;\n const column = line === 1 ? e.loc.column - wrapPrefix.length : e.loc.column;\n let message = '\\n' + StringPrototypeSplit(src, '\\n')[line - 1] + '\\n' +\n StringPrototypeRepeat(' ', column) +\n '^\\n\\n' + RegExpPrototypeSymbolReplace(/ \\([^)]+\\)/, e.message, '');\n // V8 unexpected token errors include the token string.\n if (StringPrototypeEndsWith(message, 'Unexpected token'))\n message += \" '\" +\n // Wrapper end may cause acorn to report error position after the source\n ((src.length - 1) >= (e.pos - wrapPrefix.length)\n ? src[e.pos - wrapPrefix.length]\n : src[src.length - 1]) +\n \"'\";\n // eslint-disable-next-line no-restricted-syntax\n throw new SyntaxError(message);\n }\n const body = root.body[0].expression.callee.body;\n const state = {\n body,\n ancestors: [],\n hoistedDeclarationStatements: [],\n replace(from, to, str) {\n for (let i = from; i < to; i++) {\n wrappedArray[i] = '';\n }\n if (from === to) str += wrappedArray[from];\n wrappedArray[from] = str;\n },\n prepend(node, str) {\n wrappedArray[node.start] = str + wrappedArray[node.start];\n },\n append(node, str) {\n wrappedArray[node.end - 1] += str;\n },\n containsAwait: false,\n containsReturn: false\n };\n\n walk.recursive(body, state, visitors);\n\n // Do not transform if\n // 1. False alarm: there isn't actually an await expression.\n // 2. There is a top-level return, which is not allowed.\n if (!state.containsAwait || state.containsReturn) {\n return null;\n }\n\n const last = body.body[body.body.length - 1];\n if (last.type === 'ExpressionStatement') {\n // For an expression statement of the form\n // ( expr ) ;\n // ^^^^^^^^^^ // last\n // ^^^^ // last.expression\n //\n // We do not want the left parenthesis before the `return` keyword;\n // therefore we prepend the `return (` to `last`.\n //\n // On the other hand, we do not want the right parenthesis after the\n // semicolon. Since there can only be more right parentheses between\n // last.expression.end and the semicolon, appending one more to\n // last.expression should be fine.\n state.prepend(last, 'return (');\n state.append(last.expression, ')');\n }\n\n return (\n ArrayPrototypeJoin(state.hoistedDeclarationStatements, '') +\n ArrayPrototypeJoin(wrappedArray, '')\n );\n}\n\nmodule.exports = {\n processTopLevelAwait\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupContext = exports.createEvalAwarePartialHost = exports.EvalState = exports.createRepl = exports.REPL_NAME = exports.REPL_FILENAME = exports.STDIN_NAME = exports.STDIN_FILENAME = exports.EVAL_NAME = exports.EVAL_FILENAME = void 0;\nconst diff_1 = require(\"diff\");\nconst os_1 = require(\"os\");\nconst path_1 = require(\"path\");\nconst repl_1 = require(\"repl\");\nconst vm_1 = require(\"vm\");\nconst index_1 = require(\"./index\");\nconst fs_1 = require(\"fs\");\nconst console_1 = require(\"console\");\nconst assert = require(\"assert\");\n// Lazy-loaded.\nlet _processTopLevelAwait;\nfunction getProcessTopLevelAwait() {\n if (_processTopLevelAwait === undefined) {\n ({\n processTopLevelAwait: _processTopLevelAwait,\n } = require('../dist-raw/node-repl-await'));\n }\n return _processTopLevelAwait;\n}\n/** @internal */\nexports.EVAL_FILENAME = `[eval].ts`;\n/** @internal */\nexports.EVAL_NAME = `[eval]`;\n/** @internal */\nexports.STDIN_FILENAME = `[stdin].ts`;\n/** @internal */\nexports.STDIN_NAME = `[stdin]`;\n/** @internal */\nexports.REPL_FILENAME = '<repl>.ts';\n/** @internal */\nexports.REPL_NAME = '<repl>';\n/**\n * Create a ts-node REPL instance.\n *\n * Pay close attention to the example below. Today, the API requires a few lines\n * of boilerplate to correctly bind the `ReplService` to the ts-node `Service` and\n * vice-versa.\n *\n * Usage example:\n *\n * const repl = tsNode.createRepl();\n * const service = tsNode.create({...repl.evalAwarePartialHost});\n * repl.setService(service);\n * repl.start();\n */\nfunction createRepl(options = {}) {\n var _a, _b, _c, _d, _e;\n const { ignoreDiagnosticsThatAreAnnoyingInInteractiveRepl = true } = options;\n let service = options.service;\n let nodeReplServer;\n // If `useGlobal` is not true, then REPL creates a context when started.\n // This stores a reference to it or to `global`, whichever is used, after REPL has started.\n let context;\n const state = (_a = options.state) !== null && _a !== void 0 ? _a : new EvalState(path_1.join(process.cwd(), exports.REPL_FILENAME));\n const evalAwarePartialHost = createEvalAwarePartialHost(state, options.composeWithEvalAwarePartialHost);\n const stdin = (_b = options.stdin) !== null && _b !== void 0 ? _b : process.stdin;\n const stdout = (_c = options.stdout) !== null && _c !== void 0 ? _c : process.stdout;\n const stderr = (_d = options.stderr) !== null && _d !== void 0 ? _d : process.stderr;\n const _console = stdout === process.stdout && stderr === process.stderr\n ? console\n : new console_1.Console(stdout, stderr);\n const replService = {\n state: (_e = options.state) !== null && _e !== void 0 ? _e : new EvalState(path_1.join(process.cwd(), exports.EVAL_FILENAME)),\n setService,\n evalCode,\n evalCodeInternal,\n nodeEval,\n evalAwarePartialHost,\n start,\n startInternal,\n stdin,\n stdout,\n stderr,\n console: _console,\n };\n return replService;\n function setService(_service) {\n service = _service;\n if (ignoreDiagnosticsThatAreAnnoyingInInteractiveRepl) {\n service.addDiagnosticFilter({\n appliesToAllFiles: false,\n filenamesAbsolute: [state.path],\n diagnosticsIgnored: [\n 2393,\n 6133,\n 7027,\n ...(service.shouldReplAwait ? topLevelAwaitDiagnosticCodes : []),\n ],\n });\n }\n }\n function evalCode(code) {\n const result = appendCompileAndEvalInput({\n service: service,\n state,\n input: code,\n context,\n });\n assert(result.containsTopLevelAwait === false);\n return result.value;\n }\n function evalCodeInternal(options) {\n const { code, enableTopLevelAwait, context } = options;\n return appendCompileAndEvalInput({\n service: service,\n state,\n input: code,\n enableTopLevelAwait,\n context,\n });\n }\n function nodeEval(code, context, _filename, callback) {\n // TODO: Figure out how to handle completion here.\n if (code === '.scope') {\n callback(null);\n return;\n }\n try {\n const evalResult = evalCodeInternal({\n code,\n enableTopLevelAwait: true,\n context,\n });\n if (evalResult.containsTopLevelAwait) {\n (() => __awaiter(this, void 0, void 0, function* () {\n try {\n callback(null, yield evalResult.valuePromise);\n }\n catch (promiseError) {\n handleError(promiseError);\n }\n }))();\n }\n else {\n callback(null, evalResult.value);\n }\n }\n catch (error) {\n handleError(error);\n }\n // Log TSErrors, check if they're recoverable, log helpful hints for certain\n // well-known errors, and invoke `callback()`\n // TODO should evalCode API get the same error-handling benefits?\n function handleError(error) {\n var _a, _b;\n // Don't show TLA hint if the user explicitly disabled repl top level await\n const canLogTopLevelAwaitHint = service.options.experimentalReplAwait !== false &&\n !service.shouldReplAwait;\n if (error instanceof index_1.TSError) {\n // Support recoverable compilations using >= node 6.\n if (repl_1.Recoverable && isRecoverable(error)) {\n callback(new repl_1.Recoverable(error));\n return;\n }\n else {\n _console.error(error);\n if (canLogTopLevelAwaitHint &&\n error.diagnosticCodes.some((dC) => topLevelAwaitDiagnosticCodes.includes(dC))) {\n _console.error(getTopLevelAwaitHint());\n }\n callback(null);\n }\n }\n else {\n let _error = error;\n if (canLogTopLevelAwaitHint &&\n _error instanceof SyntaxError &&\n ((_a = _error.message) === null || _a === void 0 ? void 0 : _a.includes('await is only valid'))) {\n try {\n // Only way I know to make our hint appear after the error\n _error.message += `\\n\\n${getTopLevelAwaitHint()}`;\n _error.stack = (_b = _error.stack) === null || _b === void 0 ? void 0 : _b.replace(/(SyntaxError:.*)/, (_, $1) => `${$1}\\n\\n${getTopLevelAwaitHint()}`);\n }\n catch (_c) { }\n }\n callback(_error);\n }\n }\n function getTopLevelAwaitHint() {\n return `Hint: REPL top-level await requires TypeScript version 3.8 or higher and target ES2018 or higher. You are using TypeScript ${service.ts.version} and target ${service.ts.ScriptTarget[service.config.options.target]}.`;\n }\n }\n // Note: `code` argument is deprecated\n function start(code) {\n startInternal({ code });\n }\n // Note: `code` argument is deprecated\n function startInternal(options) {\n const _a = options !== null && options !== void 0 ? options : {}, { code, forceToBeModule = true } = _a, optionsOverride = __rest(_a, [\"code\", \"forceToBeModule\"]);\n // TODO assert that `service` is set; remove all `service!` non-null assertions\n // Eval incoming code before the REPL starts.\n // Note: deprecated\n if (code) {\n try {\n evalCode(`${code}\\n`);\n }\n catch (err) {\n _console.error(err);\n // Note: should not be killing the process here, but this codepath is deprecated anyway\n process.exit(1);\n }\n }\n const repl = repl_1.start(Object.assign({ prompt: '> ', input: replService.stdin, output: replService.stdout, \n // Mimicking node's REPL implementation: https://github.com/nodejs/node/blob/168b22ba073ee1cbf8d0bcb4ded7ff3099335d04/lib/internal/repl.js#L28-L30\n terminal: stdout.isTTY &&\n !parseInt(index_1.env.NODE_NO_READLINE, 10), eval: nodeEval, useGlobal: true }, optionsOverride));\n nodeReplServer = repl;\n context = repl.context;\n // Bookmark the point where we should reset the REPL state.\n const resetEval = appendToEvalState(state, '');\n function reset() {\n resetEval();\n // Hard fix for TypeScript forcing `Object.defineProperty(exports, ...)`.\n runInContext('exports = module.exports', state.path, context);\n if (forceToBeModule) {\n state.input += 'export {};void 0;\\n';\n }\n }\n reset();\n repl.on('reset', reset);\n repl.defineCommand('type', {\n help: 'Check the type of a TypeScript identifier',\n action: function (identifier) {\n if (!identifier) {\n repl.displayPrompt();\n return;\n }\n const undo = appendToEvalState(state, identifier);\n const { name, comment } = service.getTypeInfo(state.input, state.path, state.input.length);\n undo();\n if (name)\n repl.outputStream.write(`${name}\\n`);\n if (comment)\n repl.outputStream.write(`${comment}\\n`);\n repl.displayPrompt();\n },\n });\n // Set up REPL history when available natively via node.js >= 11.\n if (repl.setupHistory) {\n const historyPath = index_1.env.TS_NODE_HISTORY || path_1.join(os_1.homedir(), '.ts_node_repl_history');\n repl.setupHistory(historyPath, (err) => {\n if (!err)\n return;\n _console.error(err);\n process.exit(1);\n });\n }\n return repl;\n }\n}\nexports.createRepl = createRepl;\n/**\n * Eval state management. Stores virtual `[eval].ts` file\n */\nclass EvalState {\n constructor(path) {\n this.path = path;\n /** @internal */\n this.input = '';\n /** @internal */\n this.output = '';\n /** @internal */\n this.version = 0;\n /** @internal */\n this.lines = 0;\n }\n}\nexports.EvalState = EvalState;\nfunction createEvalAwarePartialHost(state, composeWith) {\n function readFile(path) {\n if (path === state.path)\n return state.input;\n if (composeWith === null || composeWith === void 0 ? void 0 : composeWith.readFile)\n return composeWith.readFile(path);\n try {\n return fs_1.readFileSync(path, 'utf8');\n }\n catch (err) {\n /* Ignore. */\n }\n }\n function fileExists(path) {\n if (path === state.path)\n return true;\n if (composeWith === null || composeWith === void 0 ? void 0 : composeWith.fileExists)\n return composeWith.fileExists(path);\n try {\n const stats = fs_1.statSync(path);\n return stats.isFile() || stats.isFIFO();\n }\n catch (err) {\n return false;\n }\n }\n return { readFile, fileExists };\n}\nexports.createEvalAwarePartialHost = createEvalAwarePartialHost;\n/**\n * Evaluate the code snippet.\n *\n * Append it to virtual .ts file, compile, handle compiler errors, compute a diff of the JS, and eval any code that\n * appears as \"added\" in the diff.\n */\nfunction appendCompileAndEvalInput(options) {\n const { service, state, input, enableTopLevelAwait = false, context, } = options;\n const lines = state.lines;\n const isCompletion = !/\\n$/.test(input);\n const undo = appendToEvalState(state, input);\n let output;\n // Based on https://github.com/nodejs/node/blob/92573721c7cff104ccb82b6ed3e8aa69c4b27510/lib/repl.js#L457-L461\n function adjustUseStrict(code) {\n // \"void 0\" keeps the repl from returning \"use strict\" as the result\n // value for statements and declarations that don't return a value.\n return code.replace(/^\"use strict\";/, '\"use strict\"; void 0;');\n }\n try {\n output = service.compile(state.input, state.path, -lines);\n }\n catch (err) {\n undo();\n throw err;\n }\n output = adjustUseStrict(output);\n // Use `diff` to check for new JavaScript to execute.\n const changes = diff_1.diffLines(state.output, output);\n if (isCompletion) {\n undo();\n }\n else {\n state.output = output;\n }\n let commands = [];\n let containsTopLevelAwait = false;\n // Build a list of \"commands\": bits of JS code in the diff that must be executed.\n for (const change of changes) {\n if (change.added) {\n if (enableTopLevelAwait &&\n service.shouldReplAwait &&\n change.value.indexOf('await') > -1) {\n const processTopLevelAwait = getProcessTopLevelAwait();\n // Newline prevents comments to mess with wrapper\n const wrappedResult = processTopLevelAwait(change.value + '\\n');\n if (wrappedResult !== null) {\n containsTopLevelAwait = true;\n commands.push({\n mustAwait: true,\n execCommand: () => runInContext(wrappedResult, state.path, context),\n });\n continue;\n }\n }\n commands.push({\n execCommand: () => runInContext(change.value, state.path, context),\n });\n }\n }\n // Execute all commands asynchronously if necessary, returning the result or a\n // promise of the result.\n if (containsTopLevelAwait) {\n return {\n containsTopLevelAwait,\n valuePromise: (() => __awaiter(this, void 0, void 0, function* () {\n let value;\n for (const command of commands) {\n const r = command.execCommand();\n value = command.mustAwait ? yield r : r;\n }\n return value;\n }))(),\n };\n }\n else {\n return {\n containsTopLevelAwait: false,\n value: commands.reduce((_, c) => c.execCommand(), undefined),\n };\n }\n}\n/**\n * Low-level execution of JS code in context\n */\nfunction runInContext(code, filename, context) {\n const script = new vm_1.Script(code, { filename });\n if (context === undefined || context === global) {\n return script.runInThisContext();\n }\n else {\n return script.runInContext(context);\n }\n}\n/**\n * Append to the eval instance and return an undo function.\n */\nfunction appendToEvalState(state, input) {\n const undoInput = state.input;\n const undoVersion = state.version;\n const undoOutput = state.output;\n const undoLines = state.lines;\n // Handle ASI issues with TypeScript re-evaluation.\n if (undoInput.charAt(undoInput.length - 1) === '\\n' &&\n /^\\s*[\\/\\[(`-]/.test(input) &&\n !/;\\s*$/.test(undoInput)) {\n state.input = `${state.input.slice(0, -1)};\\n`;\n }\n state.input += input;\n state.lines += lineCount(input);\n state.version++;\n return function () {\n state.input = undoInput;\n state.output = undoOutput;\n state.version = undoVersion;\n state.lines = undoLines;\n };\n}\n/**\n * Count the number of lines.\n */\nfunction lineCount(value) {\n let count = 0;\n for (const char of value) {\n if (char === '\\n') {\n count++;\n }\n }\n return count;\n}\n/**\n * TS diagnostic codes which are recoverable, meaning that the user likely entered and incomplete line of code\n * and should be prompted for the next. For example, starting a multi-line for() loop and not finishing it.\n */\nconst RECOVERY_CODES = new Set([\n 1003,\n 1005,\n 1109,\n 1126,\n 1160,\n 1161,\n 2355, // \"A function whose declared type is neither 'void' nor 'any' must return a value.\"\n]);\n/**\n * Diagnostic codes raised when using top-level await.\n * These are suppressed when top-level await is enabled.\n * When it is *not* enabled, these trigger a helpful hint about enabling top-level await.\n */\nconst topLevelAwaitDiagnosticCodes = [\n 1375,\n 1378,\n 1431,\n 1432, // Top-level 'for await' loops are only allowed when the 'module' option is set to 'esnext' or 'system', and the 'target' option is set to 'es2017' or higher.\n];\n/**\n * Check if a function can recover gracefully.\n */\nfunction isRecoverable(error) {\n return error.diagnosticCodes.every((code) => RECOVERY_CODES.has(code));\n}\n/**\n * @internal\n * Set properties on `context` before eval-ing [stdin] or [eval] input.\n */\nfunction setupContext(context, module, filenameAndDirname) {\n if (filenameAndDirname) {\n context.__dirname = '.';\n context.__filename = `[${filenameAndDirname}]`;\n }\n context.module = module;\n context.exports = module.exports;\n context.require = module.require.bind(module);\n}\nexports.setupContext = setupContext;\n//# sourceMappingURL=repl.js.map","const fs = require('fs');\n\n// In node's core, this is implemented in C\n// https://github.com/nodejs/node/blob/v15.3.0/src/node_file.cc#L891-L985\nfunction internalModuleReadJSON(path) {\n let string\n try {\n string = fs.readFileSync(path, 'utf8')\n } catch (e) {\n if (e.code === 'ENOENT') return []\n throw e\n }\n // Node's implementation checks for the presence of relevant keys: main, name, type, exports, imports\n // Node does this for performance to skip unnecessary parsing.\n // This would slow us down and, based on our usage, we can skip it.\n const containsKeys = true\n return [string, containsKeys]\n}\n\nmodule.exports = {\n internalModuleReadJSON\n};\n","const flagSymbol = Symbol('arg flag');\n\nfunction arg(opts, {argv = process.argv.slice(2), permissive = false, stopAtPositional = false} = {}) {\n\tif (!opts) {\n\t\tthrow new Error('Argument specification object is required');\n\t}\n\n\tconst result = {_: []};\n\n\tconst aliases = {};\n\tconst handlers = {};\n\n\tfor (const key of Object.keys(opts)) {\n\t\tif (!key) {\n\t\t\tthrow new TypeError('Argument key cannot be an empty string');\n\t\t}\n\n\t\tif (key[0] !== '-') {\n\t\t\tthrow new TypeError(`Argument key must start with '-' but found: '${key}'`);\n\t\t}\n\n\t\tif (key.length === 1) {\n\t\t\tthrow new TypeError(`Argument key must have a name; singular '-' keys are not allowed: ${key}`);\n\t\t}\n\n\t\tif (typeof opts[key] === 'string') {\n\t\t\taliases[key] = opts[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet type = opts[key];\n\t\tlet isFlag = false;\n\n\t\tif (Array.isArray(type) && type.length === 1 && typeof type[0] === 'function') {\n\t\t\tconst [fn] = type;\n\t\t\ttype = (value, name, prev = []) => {\n\t\t\t\tprev.push(fn(value, name, prev[prev.length - 1]));\n\t\t\t\treturn prev;\n\t\t\t};\n\t\t\tisFlag = fn === Boolean || fn[flagSymbol] === true;\n\t\t} else if (typeof type === 'function') {\n\t\t\tisFlag = type === Boolean || type[flagSymbol] === true;\n\t\t} else {\n\t\t\tthrow new TypeError(`Type missing or not a function or valid array type: ${key}`);\n\t\t}\n\n\t\tif (key[1] !== '-' && key.length > 2) {\n\t\t\tthrow new TypeError(`Short argument keys (with a single hyphen) must have only one character: ${key}`);\n\t\t}\n\n\t\thandlers[key] = [type, isFlag];\n\t}\n\n\tfor (let i = 0, len = argv.length; i < len; i++) {\n\t\tconst wholeArg = argv[i];\n\n\t\tif (stopAtPositional && result._.length > 0) {\n\t\t\tresult._ = result._.concat(argv.slice(i));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (wholeArg === '--') {\n\t\t\tresult._ = result._.concat(argv.slice(i + 1));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (wholeArg.length > 1 && wholeArg[0] === '-') {\n\t\t\t/* eslint-disable operator-linebreak */\n\t\t\tconst separatedArguments = (wholeArg[1] === '-' || wholeArg.length === 2)\n\t\t\t\t? [wholeArg]\n\t\t\t\t: wholeArg.slice(1).split('').map(a => `-${a}`);\n\t\t\t/* eslint-enable operator-linebreak */\n\n\t\t\tfor (let j = 0; j < separatedArguments.length; j++) {\n\t\t\t\tconst arg = separatedArguments[j];\n\t\t\t\tconst [originalArgName, argStr] = arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined];\n\n\t\t\t\tlet argName = originalArgName;\n\t\t\t\twhile (argName in aliases) {\n\t\t\t\t\targName = aliases[argName];\n\t\t\t\t}\n\n\t\t\t\tif (!(argName in handlers)) {\n\t\t\t\t\tif (permissive) {\n\t\t\t\t\t\tresult._.push(arg);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst err = new Error(`Unknown or unexpected option: ${originalArgName}`);\n\t\t\t\t\t\terr.code = 'ARG_UNKNOWN_OPTION';\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst [type, isFlag] = handlers[argName];\n\n\t\t\t\tif (!isFlag && ((j + 1) < separatedArguments.length)) {\n\t\t\t\t\tthrow new TypeError(`Option requires argument (but was followed by another short argument): ${originalArgName}`);\n\t\t\t\t}\n\n\t\t\t\tif (isFlag) {\n\t\t\t\t\tresult[argName] = type(true, argName, result[argName]);\n\t\t\t\t} else if (argStr === undefined) {\n\t\t\t\t\tif (\n\t\t\t\t\t\targv.length < i + 2 ||\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\targv[i + 1].length > 1 &&\n\t\t\t\t\t\t\t(argv[i + 1][0] === '-') &&\n\t\t\t\t\t\t\t!(\n\t\t\t\t\t\t\t\targv[i + 1].match(/^-?\\d*(\\.(?=\\d))?\\d*$/) &&\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\ttype === Number ||\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t\t\t\t(typeof BigInt !== 'undefined' && type === BigInt)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst extended = originalArgName === argName ? '' : ` (alias for ${argName})`;\n\t\t\t\t\t\tthrow new Error(`Option requires argument: ${originalArgName}${extended}`);\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[argName] = type(argv[i + 1], argName, result[argName]);\n\t\t\t\t\t++i;\n\t\t\t\t} else {\n\t\t\t\t\tresult[argName] = type(argStr, argName, result[argName]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tresult._.push(wholeArg);\n\t\t}\n\t}\n\n\treturn result;\n}\n\narg.flag = fn => {\n\tfn[flagSymbol] = true;\n\treturn fn;\n};\n\n// Utility types\narg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1);\n\nmodule.exports = arg;\n","// copied from https://github.com/nodejs/node/blob/v15.3.0/lib/internal/modules/package_json_reader.js\n'use strict';\n\nconst { SafeMap } = require('./node-primordials');\nconst { internalModuleReadJSON } = require('./node-internal-fs');\nconst { pathToFileURL } = require('url');\nconst { toNamespacedPath } = require('path');\n\nconst cache = new SafeMap();\n\nlet manifest;\n\n/**\n * @param {string} jsonPath\n * @return {[string, boolean]}\n */\nfunction read(jsonPath) {\n if (cache.has(jsonPath)) {\n return cache.get(jsonPath);\n }\n\n const [string, containsKeys] = internalModuleReadJSON(\n toNamespacedPath(jsonPath)\n );\n const result = { string, containsKeys };\n const { getOptionValue } = require('./node-options');\n if (string !== undefined) {\n if (manifest === undefined) {\n // manifest = getOptionValue('--experimental-policy') ?\n // require('internal/process/policy').manifest :\n // null;\n // disabled for now. I am not sure if/how we should support this\n manifest = null;\n }\n if (manifest !== null) {\n const jsonURL = pathToFileURL(jsonPath);\n manifest.assertIntegrity(jsonURL, string);\n }\n }\n cache.set(jsonPath, result);\n return result;\n}\n\nmodule.exports = { read };\n","// Copied from several files in node's source code.\n// https://github.com/nodejs/node/blob/2d5d77306f6dff9110c1f77fefab25f973415770/lib/internal/modules/cjs/loader.js\n// Each function and variable below must have a comment linking to the source in node's github repo.\n\nconst path = require('path');\nconst packageJsonReader = require('./node-package-json-reader');\nconst {JSONParse} = require('./node-primordials');\nconst {normalizeSlashes} = require('../dist/util');\n\nmodule.exports.assertScriptCanLoadAsCJSImpl = assertScriptCanLoadAsCJSImpl;\n\n/**\n * copied from Module._extensions['.js']\n * https://github.com/nodejs/node/blob/v15.3.0/lib/internal/modules/cjs/loader.js#L1113-L1120\n * @param {import('../src/index').Service} service\n * @param {NodeJS.Module} module\n * @param {string} filename\n */\nfunction assertScriptCanLoadAsCJSImpl(service, module, filename) {\n const pkg = readPackageScope(filename);\n\n // ts-node modification: allow our configuration to override\n const tsNodeClassification = service.moduleTypeClassifier.classifyModule(normalizeSlashes(filename));\n if(tsNodeClassification.moduleType === 'cjs') return;\n\n // Function require shouldn't be used in ES modules.\n if (tsNodeClassification.moduleType === 'esm' || (pkg && pkg.data && pkg.data.type === 'module')) {\n const parentPath = module.parent && module.parent.filename;\n const packageJsonPath = pkg ? path.resolve(pkg.path, 'package.json') : null;\n throw createErrRequireEsm(filename, parentPath, packageJsonPath);\n }\n}\n\n// Copied from https://github.com/nodejs/node/blob/2d5d77306f6dff9110c1f77fefab25f973415770/lib/internal/modules/cjs/loader.js#L285-L301\nfunction readPackageScope(checkPath) {\n const rootSeparatorIndex = checkPath.indexOf(path.sep);\n let separatorIndex;\n while (\n (separatorIndex = checkPath.lastIndexOf(path.sep)) > rootSeparatorIndex\n ) {\n checkPath = checkPath.slice(0, separatorIndex);\n if (checkPath.endsWith(path.sep + 'node_modules'))\n return false;\n const pjson = readPackage(checkPath);\n if (pjson) return {\n path: checkPath,\n data: pjson\n };\n }\n return false;\n}\n\n// Copied from https://github.com/nodejs/node/blob/2d5d77306f6dff9110c1f77fefab25f973415770/lib/internal/modules/cjs/loader.js#L249\nconst packageJsonCache = new Map();\n\n// Copied from https://github.com/nodejs/node/blob/v15.3.0/lib/internal/modules/cjs/loader.js#L275-L304\nfunction readPackage(requestPath) {\n const jsonPath = path.resolve(requestPath, 'package.json');\n\n const existing = packageJsonCache.get(jsonPath);\n if (existing !== undefined) return existing;\n\n const result = packageJsonReader.read(jsonPath);\n const json = result.containsKeys === false ? '{}' : result.string;\n if (json === undefined) {\n packageJsonCache.set(jsonPath, false);\n return false;\n }\n\n try {\n const parsed = JSONParse(json);\n const filtered = {\n name: parsed.name,\n main: parsed.main,\n exports: parsed.exports,\n imports: parsed.imports,\n type: parsed.type\n };\n packageJsonCache.set(jsonPath, filtered);\n return filtered;\n } catch (e) {\n e.path = jsonPath;\n e.message = 'Error parsing ' + jsonPath + ': ' + e.message;\n throw e;\n }\n}\n\n// Native ERR_REQUIRE_ESM Error is declared here:\n// https://github.com/nodejs/node/blob/2d5d77306f6dff9110c1f77fefab25f973415770/lib/internal/errors.js#L1294-L1313\n// Error class factory is implemented here:\n// function E: https://github.com/nodejs/node/blob/2d5d77306f6dff9110c1f77fefab25f973415770/lib/internal/errors.js#L323-L341\n// function makeNodeErrorWithCode: https://github.com/nodejs/node/blob/2d5d77306f6dff9110c1f77fefab25f973415770/lib/internal/errors.js#L251-L278\n// The code below should create an error that matches the native error as closely as possible.\n// Third-party libraries which attempt to catch the native ERR_REQUIRE_ESM should recognize our imitation error.\nfunction createErrRequireEsm(filename, parentPath, packageJsonPath) {\n const code = 'ERR_REQUIRE_ESM'\n const err = new Error(getMessage(filename, parentPath, packageJsonPath))\n // Set `name` to be used in stack trace, generate stack trace with that name baked in, then re-declare the `name` field.\n // This trick is copied from node's source.\n err.name = `Error [${ code }]`\n err.stack\n Object.defineProperty(err, 'name', {\n value: 'Error',\n enumerable: false,\n writable: true,\n configurable: true\n })\n err.code = code\n return err\n\n // Copy-pasted from https://github.com/nodejs/node/blob/b533fb3508009e5f567cc776daba8fbf665386a6/lib/internal/errors.js#L1293-L1311\n // so that our error message is identical to the native message.\n function getMessage(filename, parentPath = null, packageJsonPath = null) {\n const ext = path.extname(filename)\n let msg = `Must use import to load ES Module: ${filename}`;\n if (parentPath && packageJsonPath) {\n const path = require('path');\n const basename = path.basename(filename) === path.basename(parentPath) ?\n filename : path.basename(filename);\n msg +=\n '\\nrequire() of ES modules is not supported.\\nrequire() of ' +\n `${filename} ${parentPath ? `from ${parentPath} ` : ''}` +\n `is an ES module file as it is a ${ext} file whose nearest parent ` +\n `package.json contains \"type\": \"module\" which defines all ${ext} ` +\n 'files in that package scope as ES modules.\\nInstead ' +\n 'change the requiring code to use ' +\n 'import(), or remove \"type\": \"module\" from ' +\n `${packageJsonPath}.\\n`;\n return msg;\n }\n return msg;\n }\n}\n","\"use strict\";\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.register = exports.getExtensions = exports.TSError = exports.DEFAULTS = exports.VERSION = exports.debug = exports.INSPECT_CUSTOM = exports.env = exports.REGISTER_INSTANCE = exports.createRepl = void 0;\nconst path_1 = require(\"path\");\nconst module_1 = require(\"module\");\nconst util = require(\"util\");\nconst url_1 = require(\"url\");\nconst sourceMapSupport = require(\"@cspotcode/source-map-support\");\nconst make_error_1 = require(\"make-error\");\nconst util_1 = require(\"./util\");\nconst configuration_1 = require(\"./configuration\");\nconst module_type_classifier_1 = require(\"./module-type-classifier\");\nconst resolver_functions_1 = require(\"./resolver-functions\");\nvar repl_1 = require(\"./repl\");\nObject.defineProperty(exports, \"createRepl\", { enumerable: true, get: function () { return repl_1.createRepl; } });\n/**\n * Does this version of node obey the package.json \"type\" field\n * and throw ERR_REQUIRE_ESM when attempting to require() an ESM modules.\n */\nconst engineSupportsPackageTypeField = parseInt(process.versions.node.split('.')[0], 10) >= 12;\nfunction versionGte(version, requirement) {\n const [major, minor, patch, extra] = version\n .split(/[\\.-]/)\n .map((s) => parseInt(s, 10));\n const [reqMajor, reqMinor, reqPatch] = requirement\n .split('.')\n .map((s) => parseInt(s, 10));\n return (major > reqMajor ||\n (major === reqMajor &&\n (minor > reqMinor || (minor === reqMinor && patch >= reqPatch))));\n}\n/**\n * Assert that script can be loaded as CommonJS when we attempt to require it.\n * If it should be loaded as ESM, throw ERR_REQUIRE_ESM like node does.\n *\n * Loaded conditionally so we don't need to support older node versions\n */\nlet assertScriptCanLoadAsCJS = engineSupportsPackageTypeField\n ? require('../dist-raw/node-cjs-loader-utils').assertScriptCanLoadAsCJSImpl\n : () => {\n /* noop */\n };\n/**\n * Registered `ts-node` instance information.\n */\nexports.REGISTER_INSTANCE = Symbol.for('ts-node.register.instance');\n/** @internal */\nexports.env = process.env;\n/**\n * @internal\n */\nexports.INSPECT_CUSTOM = util.inspect.custom || 'inspect';\n/**\n * Debugging `ts-node`.\n */\nconst shouldDebug = util_1.yn(exports.env.TS_NODE_DEBUG);\n/** @internal */\nexports.debug = shouldDebug\n ? (...args) => console.log(`[ts-node ${new Date().toISOString()}]`, ...args)\n : () => undefined;\nconst debugFn = shouldDebug\n ? (key, fn) => {\n let i = 0;\n return (x) => {\n exports.debug(key, x, ++i);\n return fn(x);\n };\n }\n : (_, fn) => fn;\n/**\n * Export the current version.\n */\nexports.VERSION = require('../package.json').version;\n/**\n * Default register options, including values specified via environment\n * variables.\n * @internal\n */\nexports.DEFAULTS = {\n cwd: (_a = exports.env.TS_NODE_CWD) !== null && _a !== void 0 ? _a : exports.env.TS_NODE_DIR,\n emit: util_1.yn(exports.env.TS_NODE_EMIT),\n scope: util_1.yn(exports.env.TS_NODE_SCOPE),\n scopeDir: exports.env.TS_NODE_SCOPE_DIR,\n files: util_1.yn(exports.env.TS_NODE_FILES),\n pretty: util_1.yn(exports.env.TS_NODE_PRETTY),\n compiler: exports.env.TS_NODE_COMPILER,\n compilerOptions: util_1.parse(exports.env.TS_NODE_COMPILER_OPTIONS),\n ignore: util_1.split(exports.env.TS_NODE_IGNORE),\n project: exports.env.TS_NODE_PROJECT,\n skipProject: util_1.yn(exports.env.TS_NODE_SKIP_PROJECT),\n skipIgnore: util_1.yn(exports.env.TS_NODE_SKIP_IGNORE),\n preferTsExts: util_1.yn(exports.env.TS_NODE_PREFER_TS_EXTS),\n ignoreDiagnostics: util_1.split(exports.env.TS_NODE_IGNORE_DIAGNOSTICS),\n transpileOnly: util_1.yn(exports.env.TS_NODE_TRANSPILE_ONLY),\n typeCheck: util_1.yn(exports.env.TS_NODE_TYPE_CHECK),\n compilerHost: util_1.yn(exports.env.TS_NODE_COMPILER_HOST),\n logError: util_1.yn(exports.env.TS_NODE_LOG_ERROR),\n experimentalEsmLoader: false,\n experimentalReplAwait: (_b = util_1.yn(exports.env.TS_NODE_EXPERIMENTAL_REPL_AWAIT)) !== null && _b !== void 0 ? _b : undefined,\n};\n/**\n * TypeScript diagnostics error.\n */\nclass TSError extends make_error_1.BaseError {\n constructor(diagnosticText, diagnosticCodes) {\n super(` Unable to compile TypeScript:\\n${diagnosticText}`);\n this.diagnosticText = diagnosticText;\n this.diagnosticCodes = diagnosticCodes;\n this.name = 'TSError';\n }\n /**\n * @internal\n */\n [exports.INSPECT_CUSTOM]() {\n return this.diagnosticText;\n }\n}\nexports.TSError = TSError;\n/** @internal */\nfunction getExtensions(config) {\n const tsExtensions = ['.ts'];\n const jsExtensions = [];\n // Enable additional extensions when JSX or `allowJs` is enabled.\n if (config.options.jsx)\n tsExtensions.push('.tsx');\n if (config.options.allowJs)\n jsExtensions.push('.js');\n if (config.options.jsx && config.options.allowJs)\n jsExtensions.push('.jsx');\n return { tsExtensions, jsExtensions };\n}\nexports.getExtensions = getExtensions;\n/**\n * Register TypeScript compiler instance onto node.js\n */\nfunction register(opts = {}) {\n const originalJsHandler = require.extensions['.js'];\n const service = create(opts);\n const { tsExtensions, jsExtensions } = getExtensions(service.config);\n const extensions = [...tsExtensions, ...jsExtensions];\n // Expose registered instance globally.\n process[exports.REGISTER_INSTANCE] = service;\n // Register the extensions.\n registerExtensions(service.options.preferTsExts, extensions, service, originalJsHandler);\n // Require specified modules before start-up.\n module_1.Module._preloadModules(service.options.require);\n return service;\n}\nexports.register = register;\n/**\n * Create TypeScript compiler instance.\n */\nfunction create(rawOptions = {}) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n const cwd = path_1.resolve((_c = (_b = (_a = rawOptions.cwd) !== null && _a !== void 0 ? _a : rawOptions.dir) !== null && _b !== void 0 ? _b : exports.DEFAULTS.cwd) !== null && _c !== void 0 ? _c : process.cwd());\n const compilerName = (_d = rawOptions.compiler) !== null && _d !== void 0 ? _d : exports.DEFAULTS.compiler;\n /**\n * Load the typescript compiler. It is required to load the tsconfig but might\n * be changed by the tsconfig, so we have to do this twice.\n */\n function loadCompiler(name, relativeToPath) {\n const compiler = require.resolve(name || 'typescript', {\n paths: [relativeToPath, __dirname],\n });\n const ts = require(compiler);\n return { compiler, ts };\n }\n // Compute minimum options to read the config file.\n let { compiler, ts } = loadCompiler(compilerName, (_f = (_e = rawOptions.projectSearchDir) !== null && _e !== void 0 ? _e : rawOptions.project) !== null && _f !== void 0 ? _f : cwd);\n // Read config file and merge new options between env and CLI options.\n const { configFilePath, config, tsNodeOptionsFromTsconfig, optionBasePaths, } = configuration_1.readConfig(cwd, ts, rawOptions);\n const options = util_1.assign({}, exports.DEFAULTS, tsNodeOptionsFromTsconfig || {}, { optionBasePaths }, rawOptions);\n options.require = [\n ...(tsNodeOptionsFromTsconfig.require || []),\n ...(rawOptions.require || []),\n ];\n // Experimental REPL await is not compatible targets lower than ES2018\n const targetSupportsTla = config.options.target >= ts.ScriptTarget.ES2018;\n if (options.experimentalReplAwait === true && !targetSupportsTla) {\n throw new Error('Experimental REPL await is not compatible with targets lower than ES2018');\n }\n // Top-level await was added in TS 3.8\n const tsVersionSupportsTla = versionGte(ts.version, '3.8.0');\n if (options.experimentalReplAwait === true && !tsVersionSupportsTla) {\n throw new Error('Experimental REPL await is not compatible with TypeScript versions older than 3.8');\n }\n const shouldReplAwait = options.experimentalReplAwait !== false &&\n tsVersionSupportsTla &&\n targetSupportsTla;\n // Re-load the compiler in case it has changed.\n // Compiler is loaded relative to tsconfig.json, so tsconfig discovery may cause us to load a\n // different compiler than we did above, even if the name has not changed.\n if (configFilePath) {\n ({ compiler, ts } = loadCompiler(options.compiler, configFilePath));\n }\n const readFile = options.readFile || ts.sys.readFile;\n const fileExists = options.fileExists || ts.sys.fileExists;\n // typeCheck can override transpileOnly, useful for CLI flag to override config file\n const transpileOnly = options.transpileOnly === true && options.typeCheck !== true;\n const transformers = options.transformers || undefined;\n const diagnosticFilters = [\n {\n appliesToAllFiles: true,\n filenamesAbsolute: [],\n diagnosticsIgnored: [\n 6059,\n 18002,\n 18003,\n ...(options.ignoreDiagnostics || []),\n ].map(Number),\n },\n ];\n const configDiagnosticList = filterDiagnostics(config.errors, diagnosticFilters);\n const outputCache = new Map();\n const configFileDirname = configFilePath ? path_1.dirname(configFilePath) : null;\n const scopeDir = (_j = (_h = (_g = options.scopeDir) !== null && _g !== void 0 ? _g : config.options.rootDir) !== null && _h !== void 0 ? _h : configFileDirname) !== null && _j !== void 0 ? _j : cwd;\n const ignoreBaseDir = configFileDirname !== null && configFileDirname !== void 0 ? configFileDirname : cwd;\n const isScoped = options.scope\n ? (fileName) => path_1.relative(scopeDir, fileName).charAt(0) !== '.'\n : () => true;\n const shouldIgnore = createIgnore(ignoreBaseDir, options.skipIgnore\n ? []\n : (options.ignore || ['(?:^|/)node_modules/']).map((str) => new RegExp(str)));\n const diagnosticHost = {\n getNewLine: () => ts.sys.newLine,\n getCurrentDirectory: () => cwd,\n getCanonicalFileName: ts.sys.useCaseSensitiveFileNames\n ? (x) => x\n : (x) => x.toLowerCase(),\n };\n if (options.transpileOnly && typeof transformers === 'function') {\n throw new TypeError('Transformers function is unavailable in \"--transpile-only\"');\n }\n let customTranspiler = undefined;\n if (options.transpiler) {\n if (!transpileOnly)\n throw new Error('Custom transpiler can only be used when transpileOnly is enabled.');\n const transpilerName = typeof options.transpiler === 'string'\n ? options.transpiler\n : options.transpiler[0];\n const transpilerOptions = typeof options.transpiler === 'string' ? {} : (_k = options.transpiler[1]) !== null && _k !== void 0 ? _k : {};\n // TODO mimic fixed resolution logic from loadCompiler main\n // TODO refactor into a more generic \"resolve dep relative to project\" helper\n const transpilerPath = require.resolve(transpilerName, {\n paths: [cwd, __dirname],\n });\n const transpilerFactory = require(transpilerPath).create;\n customTranspiler = transpilerFactory(Object.assign({ service: { options, config } }, transpilerOptions));\n }\n // Install source map support and read from memory cache.\n sourceMapSupport.install({\n environment: 'node',\n retrieveFile(pathOrUrl) {\n var _a;\n let path = pathOrUrl;\n // If it's a file URL, convert to local path\n // Note: fileURLToPath does not exist on early node v10\n // I could not find a way to handle non-URLs except to swallow an error\n if (options.experimentalEsmLoader && path.startsWith('file://')) {\n try {\n path = url_1.fileURLToPath(path);\n }\n catch (e) {\n /* swallow error */\n }\n }\n path = util_1.normalizeSlashes(path);\n return ((_a = outputCache.get(path)) === null || _a === void 0 ? void 0 : _a.content) || '';\n },\n });\n const shouldHavePrettyErrors = options.pretty === undefined ? process.stdout.isTTY : options.pretty;\n const formatDiagnostics = shouldHavePrettyErrors\n ? ts.formatDiagnosticsWithColorAndContext || ts.formatDiagnostics\n : ts.formatDiagnostics;\n function createTSError(diagnostics) {\n const diagnosticText = formatDiagnostics(diagnostics, diagnosticHost);\n const diagnosticCodes = diagnostics.map((x) => x.code);\n return new TSError(diagnosticText, diagnosticCodes);\n }\n function reportTSError(configDiagnosticList) {\n const error = createTSError(configDiagnosticList);\n if (options.logError) {\n // Print error in red color and continue execution.\n console.error('\\x1b[31m%s\\x1b[0m', error);\n }\n else {\n // Throw error and exit the script.\n throw error;\n }\n }\n // Render the configuration errors.\n if (configDiagnosticList.length)\n reportTSError(configDiagnosticList);\n /**\n * Get the extension for a transpiled file.\n */\n const getExtension = config.options.jsx === ts.JsxEmit.Preserve\n ? (path) => (/\\.[tj]sx$/.test(path) ? '.jsx' : '.js')\n : (_) => '.js';\n /**\n * Create the basic required function using transpile mode.\n */\n let getOutput;\n let getTypeInfo;\n const getCanonicalFileName = ts.createGetCanonicalFileName(ts.sys.useCaseSensitiveFileNames);\n const moduleTypeClassifier = module_type_classifier_1.createModuleTypeClassifier({\n basePath: (_l = options.optionBasePaths) === null || _l === void 0 ? void 0 : _l.moduleTypes,\n patterns: options.moduleTypes,\n });\n // Use full language services when the fast option is disabled.\n if (!transpileOnly) {\n const fileContents = new Map();\n const rootFileNames = new Set(config.fileNames);\n const cachedReadFile = util_1.cachedLookup(debugFn('readFile', readFile));\n // Use language services by default (TODO: invert next major version).\n if (!options.compilerHost) {\n let projectVersion = 1;\n const fileVersions = new Map(Array.from(rootFileNames).map((fileName) => [fileName, 0]));\n const getCustomTransformers = () => {\n if (typeof transformers === 'function') {\n const program = service.getProgram();\n return program ? transformers(program) : undefined;\n }\n return transformers;\n };\n // Create the compiler host for type checking.\n const serviceHost = {\n getProjectVersion: () => String(projectVersion),\n getScriptFileNames: () => Array.from(rootFileNames),\n getScriptVersion: (fileName) => {\n const version = fileVersions.get(fileName);\n return version ? version.toString() : '';\n },\n getScriptSnapshot(fileName) {\n // TODO ordering of this with getScriptVersion? Should they sync up?\n let contents = fileContents.get(fileName);\n // Read contents into TypeScript memory cache.\n if (contents === undefined) {\n contents = cachedReadFile(fileName);\n if (contents === undefined)\n return;\n fileVersions.set(fileName, 1);\n fileContents.set(fileName, contents);\n projectVersion++;\n }\n return ts.ScriptSnapshot.fromString(contents);\n },\n readFile: cachedReadFile,\n readDirectory: ts.sys.readDirectory,\n getDirectories: util_1.cachedLookup(debugFn('getDirectories', ts.sys.getDirectories)),\n fileExists: util_1.cachedLookup(debugFn('fileExists', fileExists)),\n directoryExists: util_1.cachedLookup(debugFn('directoryExists', ts.sys.directoryExists)),\n realpath: ts.sys.realpath\n ? util_1.cachedLookup(debugFn('realpath', ts.sys.realpath))\n : undefined,\n getNewLine: () => ts.sys.newLine,\n useCaseSensitiveFileNames: () => ts.sys.useCaseSensitiveFileNames,\n getCurrentDirectory: () => cwd,\n getCompilationSettings: () => config.options,\n getDefaultLibFileName: () => ts.getDefaultLibFilePath(config.options),\n getCustomTransformers: getCustomTransformers,\n };\n const { resolveModuleNames, getResolvedModuleWithFailedLookupLocationsFromCache, resolveTypeReferenceDirectives, isFileKnownToBeInternal, markBucketOfFilenameInternal, } = resolver_functions_1.createResolverFunctions({\n serviceHost,\n getCanonicalFileName,\n ts,\n cwd,\n config,\n configFilePath,\n });\n serviceHost.resolveModuleNames = resolveModuleNames;\n serviceHost.getResolvedModuleWithFailedLookupLocationsFromCache = getResolvedModuleWithFailedLookupLocationsFromCache;\n serviceHost.resolveTypeReferenceDirectives = resolveTypeReferenceDirectives;\n const registry = ts.createDocumentRegistry(ts.sys.useCaseSensitiveFileNames, cwd);\n const service = ts.createLanguageService(serviceHost, registry);\n const updateMemoryCache = (contents, fileName) => {\n // Add to `rootFiles` as necessary, either to make TS include a file it has not seen,\n // or to trigger a re-classification of files from external to internal.\n if (!rootFileNames.has(fileName) &&\n !isFileKnownToBeInternal(fileName)) {\n markBucketOfFilenameInternal(fileName);\n rootFileNames.add(fileName);\n // Increment project version for every change to rootFileNames.\n projectVersion++;\n }\n const previousVersion = fileVersions.get(fileName) || 0;\n const previousContents = fileContents.get(fileName);\n // Avoid incrementing cache when nothing has changed.\n if (contents !== previousContents) {\n fileVersions.set(fileName, previousVersion + 1);\n fileContents.set(fileName, contents);\n // Increment project version for every file change.\n projectVersion++;\n }\n };\n let previousProgram = undefined;\n getOutput = (code, fileName) => {\n updateMemoryCache(code, fileName);\n const programBefore = service.getProgram();\n if (programBefore !== previousProgram) {\n exports.debug(`compiler rebuilt Program instance when getting output for ${fileName}`);\n }\n const output = service.getEmitOutput(fileName);\n // Get the relevant diagnostics - this is 3x faster than `getPreEmitDiagnostics`.\n const diagnostics = service\n .getSemanticDiagnostics(fileName)\n .concat(service.getSyntacticDiagnostics(fileName));\n const programAfter = service.getProgram();\n exports.debug('invariant: Is service.getProject() identical before and after getting emit output and diagnostics? (should always be true) ', programBefore === programAfter);\n previousProgram = programAfter;\n const diagnosticList = filterDiagnostics(diagnostics, diagnosticFilters);\n if (diagnosticList.length)\n reportTSError(diagnosticList);\n if (output.emitSkipped) {\n throw new TypeError(`${path_1.relative(cwd, fileName)}: Emit skipped`);\n }\n // Throw an error when requiring `.d.ts` files.\n if (output.outputFiles.length === 0) {\n throw new TypeError(`Unable to require file: ${path_1.relative(cwd, fileName)}\\n` +\n 'This is usually the result of a faulty configuration or import. ' +\n 'Make sure there is a `.js`, `.json` or other executable extension with ' +\n 'loader attached before `ts-node` available.');\n }\n return [output.outputFiles[1].text, output.outputFiles[0].text];\n };\n getTypeInfo = (code, fileName, position) => {\n updateMemoryCache(code, fileName);\n const info = service.getQuickInfoAtPosition(fileName, position);\n const name = ts.displayPartsToString(info ? info.displayParts : []);\n const comment = ts.displayPartsToString(info ? info.documentation : []);\n return { name, comment };\n };\n }\n else {\n const sys = Object.assign(Object.assign(Object.assign({}, ts.sys), diagnosticHost), { readFile: (fileName) => {\n const cacheContents = fileContents.get(fileName);\n if (cacheContents !== undefined)\n return cacheContents;\n const contents = cachedReadFile(fileName);\n if (contents)\n fileContents.set(fileName, contents);\n return contents;\n }, readDirectory: ts.sys.readDirectory, getDirectories: util_1.cachedLookup(debugFn('getDirectories', ts.sys.getDirectories)), fileExists: util_1.cachedLookup(debugFn('fileExists', fileExists)), directoryExists: util_1.cachedLookup(debugFn('directoryExists', ts.sys.directoryExists)), resolvePath: util_1.cachedLookup(debugFn('resolvePath', ts.sys.resolvePath)), realpath: ts.sys.realpath\n ? util_1.cachedLookup(debugFn('realpath', ts.sys.realpath))\n : undefined });\n const host = ts.createIncrementalCompilerHost\n ? ts.createIncrementalCompilerHost(config.options, sys)\n : Object.assign(Object.assign({}, sys), { getSourceFile: (fileName, languageVersion) => {\n const contents = sys.readFile(fileName);\n if (contents === undefined)\n return;\n return ts.createSourceFile(fileName, contents, languageVersion);\n }, getDefaultLibLocation: () => util_1.normalizeSlashes(path_1.dirname(compiler)), getDefaultLibFileName: () => util_1.normalizeSlashes(path_1.join(path_1.dirname(compiler), ts.getDefaultLibFileName(config.options))), useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames });\n const { resolveModuleNames, resolveTypeReferenceDirectives, isFileKnownToBeInternal, markBucketOfFilenameInternal, } = resolver_functions_1.createResolverFunctions({\n serviceHost: host,\n cwd,\n configFilePath,\n config,\n ts,\n getCanonicalFileName,\n });\n host.resolveModuleNames = resolveModuleNames;\n host.resolveTypeReferenceDirectives = resolveTypeReferenceDirectives;\n // Fallback for older TypeScript releases without incremental API.\n let builderProgram = ts.createIncrementalProgram\n ? ts.createIncrementalProgram({\n rootNames: Array.from(rootFileNames),\n options: config.options,\n host: host,\n configFileParsingDiagnostics: config.errors,\n projectReferences: config.projectReferences,\n })\n : ts.createEmitAndSemanticDiagnosticsBuilderProgram(Array.from(rootFileNames), config.options, host, undefined, config.errors, config.projectReferences);\n // Read and cache custom transformers.\n const customTransformers = typeof transformers === 'function'\n ? transformers(builderProgram.getProgram())\n : transformers;\n // Set the file contents into cache manually.\n const updateMemoryCache = (contents, fileName) => {\n const previousContents = fileContents.get(fileName);\n const contentsChanged = previousContents !== contents;\n if (contentsChanged) {\n fileContents.set(fileName, contents);\n }\n // Add to `rootFiles` when discovered by compiler for the first time.\n let addedToRootFileNames = false;\n if (!rootFileNames.has(fileName) &&\n !isFileKnownToBeInternal(fileName)) {\n markBucketOfFilenameInternal(fileName);\n rootFileNames.add(fileName);\n addedToRootFileNames = true;\n }\n // Update program when file changes.\n if (addedToRootFileNames || contentsChanged) {\n builderProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram(Array.from(rootFileNames), config.options, host, builderProgram, config.errors, config.projectReferences);\n }\n };\n getOutput = (code, fileName) => {\n const output = ['', ''];\n updateMemoryCache(code, fileName);\n const sourceFile = builderProgram.getSourceFile(fileName);\n if (!sourceFile)\n throw new TypeError(`Unable to read file: ${fileName}`);\n const program = builderProgram.getProgram();\n const diagnostics = ts.getPreEmitDiagnostics(program, sourceFile);\n const diagnosticList = filterDiagnostics(diagnostics, diagnosticFilters);\n if (diagnosticList.length)\n reportTSError(diagnosticList);\n const result = builderProgram.emit(sourceFile, (path, file, writeByteOrderMark) => {\n if (path.endsWith('.map')) {\n output[1] = file;\n }\n else {\n output[0] = file;\n }\n if (options.emit)\n sys.writeFile(path, file, writeByteOrderMark);\n }, undefined, undefined, customTransformers);\n if (result.emitSkipped) {\n throw new TypeError(`${path_1.relative(cwd, fileName)}: Emit skipped`);\n }\n // Throw an error when requiring files that cannot be compiled.\n if (output[0] === '') {\n if (program.isSourceFileFromExternalLibrary(sourceFile)) {\n throw new TypeError(`Unable to compile file from external library: ${path_1.relative(cwd, fileName)}`);\n }\n throw new TypeError(`Unable to require file: ${path_1.relative(cwd, fileName)}\\n` +\n 'This is usually the result of a faulty configuration or import. ' +\n 'Make sure there is a `.js`, `.json` or other executable extension with ' +\n 'loader attached before `ts-node` available.');\n }\n return output;\n };\n getTypeInfo = (code, fileName, position) => {\n updateMemoryCache(code, fileName);\n const sourceFile = builderProgram.getSourceFile(fileName);\n if (!sourceFile)\n throw new TypeError(`Unable to read file: ${fileName}`);\n const node = getTokenAtPosition(ts, sourceFile, position);\n const checker = builderProgram.getProgram().getTypeChecker();\n const symbol = checker.getSymbolAtLocation(node);\n if (!symbol)\n return { name: '', comment: '' };\n const type = checker.getTypeOfSymbolAtLocation(symbol, node);\n const signatures = [\n ...type.getConstructSignatures(),\n ...type.getCallSignatures(),\n ];\n return {\n name: signatures.length\n ? signatures.map((x) => checker.signatureToString(x)).join('\\n')\n : checker.typeToString(type),\n comment: ts.displayPartsToString(symbol ? symbol.getDocumentationComment(checker) : []),\n };\n };\n // Write `.tsbuildinfo` when `--build` is enabled.\n if (options.emit && config.options.incremental) {\n process.on('exit', () => {\n // Emits `.tsbuildinfo` to filesystem.\n builderProgram.getProgram().emitBuildInfo();\n });\n }\n }\n }\n else {\n getOutput = createTranspileOnlyGetOutputFunction();\n getTypeInfo = () => {\n throw new TypeError('Type information is unavailable in \"--transpile-only\"');\n };\n }\n function createTranspileOnlyGetOutputFunction(overrideModuleType) {\n const compilerOptions = Object.assign({}, config.options);\n if (overrideModuleType !== undefined)\n compilerOptions.module = overrideModuleType;\n return (code, fileName) => {\n let result;\n if (customTranspiler) {\n result = customTranspiler.transpile(code, {\n fileName,\n });\n }\n else {\n result = ts.transpileModule(code, {\n fileName,\n compilerOptions,\n reportDiagnostics: true,\n transformers: transformers,\n });\n }\n const diagnosticList = filterDiagnostics(result.diagnostics || [], diagnosticFilters);\n if (diagnosticList.length)\n reportTSError(diagnosticList);\n return [result.outputText, result.sourceMapText];\n };\n }\n // When either is undefined, it means normal `getOutput` should be used\n const getOutputForceCommonJS = config.options.module === ts.ModuleKind.CommonJS\n ? undefined\n : createTranspileOnlyGetOutputFunction(ts.ModuleKind.CommonJS);\n const getOutputForceESM = config.options.module === ts.ModuleKind.ES2015 ||\n config.options.module === ts.ModuleKind.ES2020 ||\n config.options.module === ts.ModuleKind.ESNext\n ? undefined\n : createTranspileOnlyGetOutputFunction(ts.ModuleKind.ES2020 || ts.ModuleKind.ES2015);\n // Create a simple TypeScript compiler proxy.\n function compile(code, fileName, lineOffset = 0) {\n const normalizedFileName = util_1.normalizeSlashes(fileName);\n const classification = moduleTypeClassifier.classifyModule(normalizedFileName);\n // Must always call normal getOutput to throw typechecking errors\n let [value, sourceMap] = getOutput(code, normalizedFileName);\n // If module classification contradicts the above, call the relevant transpiler\n if (classification.moduleType === 'cjs' && getOutputForceCommonJS) {\n [value, sourceMap] = getOutputForceCommonJS(code, normalizedFileName);\n }\n else if (classification.moduleType === 'esm' && getOutputForceESM) {\n [value, sourceMap] = getOutputForceESM(code, normalizedFileName);\n }\n const output = updateOutput(value, normalizedFileName, sourceMap, getExtension);\n outputCache.set(normalizedFileName, { content: output });\n return output;\n }\n let active = true;\n const enabled = (enabled) => enabled === undefined ? active : (active = !!enabled);\n const extensions = getExtensions(config);\n const ignored = (fileName) => {\n if (!active)\n return true;\n const ext = path_1.extname(fileName);\n if (extensions.tsExtensions.includes(ext) ||\n extensions.jsExtensions.includes(ext)) {\n return !isScoped(fileName) || shouldIgnore(fileName);\n }\n return true;\n };\n function addDiagnosticFilter(filter) {\n diagnosticFilters.push(Object.assign(Object.assign({}, filter), { filenamesAbsolute: filter.filenamesAbsolute.map((f) => util_1.normalizeSlashes(f)) }));\n }\n return {\n ts,\n config,\n compile,\n getTypeInfo,\n ignored,\n enabled,\n options,\n configFilePath,\n moduleTypeClassifier,\n shouldReplAwait,\n addDiagnosticFilter,\n };\n}\nexports.create = create;\n/**\n * Check if the filename should be ignored.\n */\nfunction createIgnore(ignoreBaseDir, ignore) {\n return (fileName) => {\n const relname = path_1.relative(ignoreBaseDir, fileName);\n const path = util_1.normalizeSlashes(relname);\n return ignore.some((x) => x.test(path));\n };\n}\n/**\n * \"Refreshes\" an extension on `require.extensions`.\n *\n * @param {string} ext\n */\nfunction reorderRequireExtension(ext) {\n const old = require.extensions[ext];\n delete require.extensions[ext];\n require.extensions[ext] = old;\n}\n/**\n * Register the extensions to support when importing files.\n */\nfunction registerExtensions(preferTsExts, extensions, service, originalJsHandler) {\n // Register new extensions.\n for (const ext of extensions) {\n registerExtension(ext, service, originalJsHandler);\n }\n if (preferTsExts) {\n const preferredExtensions = new Set([\n ...extensions,\n ...Object.keys(require.extensions),\n ]);\n for (const ext of preferredExtensions)\n reorderRequireExtension(ext);\n }\n}\n/**\n * Register the extension for node.\n */\nfunction registerExtension(ext, service, originalHandler) {\n const old = require.extensions[ext] || originalHandler;\n require.extensions[ext] = function (m, filename) {\n if (service.ignored(filename))\n return old(m, filename);\n assertScriptCanLoadAsCJS(service, m, filename);\n const _compile = m._compile;\n m._compile = function (code, fileName) {\n exports.debug('module._compile', fileName);\n const result = service.compile(code, fileName);\n return _compile.call(this, result, fileName);\n };\n return old(m, filename);\n };\n}\n/**\n * Update the output remapping the source map.\n */\nfunction updateOutput(outputText, fileName, sourceMap, getExtension) {\n const base64Map = Buffer.from(updateSourceMap(sourceMap, fileName), 'utf8').toString('base64');\n const sourceMapContent = `//# sourceMappingURL=data:application/json;charset=utf-8;base64,${base64Map}`;\n // Expected form: `//# sourceMappingURL=foo bar.js.map` or `//# sourceMappingURL=foo%20bar.js.map` for input file \"foo bar.tsx\"\n // Percent-encoding behavior added in TS 4.1.1: https://github.com/microsoft/TypeScript/issues/40951\n const prefix = '//# sourceMappingURL=';\n const prefixLength = prefix.length;\n const baseName = /*foo.tsx*/ path_1.basename(fileName);\n const extName = /*.tsx*/ path_1.extname(fileName);\n const extension = /*.js*/ getExtension(fileName);\n const sourcemapFilename = baseName.slice(0, -extName.length) + extension + '.map';\n const sourceMapLengthWithoutPercentEncoding = prefixLength + sourcemapFilename.length;\n /*\n * Only rewrite if existing directive exists at the location we expect, to support:\n * a) compilers that do not append a sourcemap directive\n * b) situations where we did the math wrong\n * Not ideal, but appending our sourcemap *after* a pre-existing sourcemap still overrides, so the end-user is happy.\n */\n if (outputText.substr(-sourceMapLengthWithoutPercentEncoding, prefixLength) ===\n prefix) {\n return (outputText.slice(0, -sourceMapLengthWithoutPercentEncoding) +\n sourceMapContent);\n }\n // If anyone asks why we're not using URL, the URL equivalent is: `u = new URL('http://d'); u.pathname = \"/\" + sourcemapFilename; return u.pathname.slice(1);\n const sourceMapLengthWithPercentEncoding = prefixLength + encodeURI(sourcemapFilename).length;\n if (outputText.substr(-sourceMapLengthWithPercentEncoding, prefixLength) ===\n prefix) {\n return (outputText.slice(0, -sourceMapLengthWithPercentEncoding) +\n sourceMapContent);\n }\n return `${outputText}\\n${sourceMapContent}`;\n}\n/**\n * Update the source map contents for improved output.\n */\nfunction updateSourceMap(sourceMapText, fileName) {\n const sourceMap = JSON.parse(sourceMapText);\n sourceMap.file = fileName;\n sourceMap.sources = [fileName];\n delete sourceMap.sourceRoot;\n return JSON.stringify(sourceMap);\n}\n/**\n * Filter diagnostics.\n */\nfunction filterDiagnostics(diagnostics, filters) {\n return diagnostics.filter((d) => filters.every((f) => {\n var _a;\n return (!f.appliesToAllFiles &&\n f.filenamesAbsolute.indexOf((_a = d.file) === null || _a === void 0 ? void 0 : _a.fileName) === -1) ||\n f.diagnosticsIgnored.indexOf(d.code) === -1;\n }));\n}\n/**\n * Get token at file position.\n *\n * Reference: https://github.com/microsoft/TypeScript/blob/fcd9334f57d85b73dd66ad2d21c02e84822f4841/src/services/utilities.ts#L705-L731\n */\nfunction getTokenAtPosition(ts, sourceFile, position) {\n let current = sourceFile;\n outer: while (true) {\n for (const child of current.getChildren(sourceFile)) {\n const start = child.getFullStart();\n if (start > position)\n break;\n const end = child.getEnd();\n if (position <= end) {\n current = child;\n continue outer;\n }\n }\n return current;\n }\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\nconst resolve = require('path').resolve\n\nconst config = require('lilconfig')\nconst yaml = require('yaml')\n\nconst loadOptions = require('./options.js')\nconst loadPlugins = require('./plugins.js')\n\n/* istanbul ignore next */\nconst interopRequireDefault = (obj) => obj && obj.__esModule ? obj : { default: obj }\n\n/**\n * Process the result from cosmiconfig\n *\n * @param {Object} ctx Config Context\n * @param {Object} result Cosmiconfig result\n *\n * @return {Object} PostCSS Config\n */\nconst processResult = (ctx, result) => {\n const file = result.filepath || ''\n let config = interopRequireDefault(result.config).default || {}\n\n if (typeof config === 'function') {\n config = config(ctx)\n } else {\n config = Object.assign({}, config, ctx)\n }\n\n if (!config.plugins) {\n config.plugins = []\n }\n\n return {\n plugins: loadPlugins(config, file),\n options: loadOptions(config, file),\n file: file\n }\n}\n\n/**\n * Builds the Config Context\n *\n * @param {Object} ctx Config Context\n *\n * @return {Object} Config Context\n */\nconst createContext = (ctx) => {\n /**\n * @type {Object}\n *\n * @prop {String} cwd=process.cwd() Config search start location\n * @prop {String} env=process.env.NODE_ENV Config Enviroment, will be set to `development` by `postcss-load-config` if `process.env.NODE_ENV` is `undefined`\n */\n ctx = Object.assign({\n cwd: process.cwd(),\n env: process.env.NODE_ENV\n }, ctx)\n\n if (!ctx.env) {\n process.env.NODE_ENV = 'development'\n }\n\n return ctx\n}\n\nconst addTypeScriptLoader = (options = {}, loader) => {\n const moduleName = 'postcss'\n\n return {\n ...options,\n searchPlaces: [\n ...(options.searchPlaces || []),\n 'package.json',\n `.${moduleName}rc`,\n `.${moduleName}rc.json`,\n `.${moduleName}rc.yaml`,\n `.${moduleName}rc.yml`,\n `.${moduleName}rc.ts`,\n `.${moduleName}rc.js`,\n `.${moduleName}rc.cjs`,\n `${moduleName}.config.ts`,\n `${moduleName}.config.js`,\n `${moduleName}.config.cjs`\n ],\n loaders: {\n ...options.loaders,\n '.yaml': (filepath, content) => yaml.parse(content),\n '.yml': (filepath, content) => yaml.parse(content),\n '.ts': loader\n }\n }\n}\n\nconst withTypeScriptLoader = (rcFunc) => {\n return (ctx, path, options) => {\n return rcFunc(ctx, path, addTypeScriptLoader(options, (configFile) => {\n let registerer = { enabled () {} }\n\n try {\n // Register TypeScript compiler instance\n registerer = require('ts-node').register()\n\n return require(configFile)\n } catch (err) {\n if (err.code === 'MODULE_NOT_FOUND') {\n throw new Error(\n `'ts-node' is required for the TypeScript configuration files. Make sure it is installed\\nError: ${err.message}`\n )\n }\n\n throw err\n } finally {\n registerer.enabled(false)\n }\n }))\n }\n}\n\n/**\n * Load Config\n *\n * @method rc\n *\n * @param {Object} ctx Config Context\n * @param {String} path Config Path\n * @param {Object} options Config Options\n *\n * @return {Promise} config PostCSS Config\n */\nconst rc = withTypeScriptLoader((ctx, path, options) => {\n /**\n * @type {Object} The full Config Context\n */\n ctx = createContext(ctx)\n\n /**\n * @type {String} `process.cwd()`\n */\n path = path ? resolve(path) : process.cwd()\n\n return config.lilconfig('postcss', options)\n .search(path)\n .then((result) => {\n if (!result) {\n throw new Error(`No PostCSS Config found in: ${path}`)\n }\n\n return processResult(ctx, result)\n })\n})\n\nrc.sync = withTypeScriptLoader((ctx, path, options) => {\n /**\n * @type {Object} The full Config Context\n */\n ctx = createContext(ctx)\n\n /**\n * @type {String} `process.cwd()`\n */\n path = path ? resolve(path) : process.cwd()\n\n const result = config.lilconfigSync('postcss', options).search(path)\n\n if (!result) {\n throw new Error(`No PostCSS Config found in: ${path}`)\n }\n\n return processResult(ctx, result)\n})\n\n/**\n * Autoload Config for PostCSS\n *\n * @author Michael Ciniawsky @michael-ciniawsky <michael.ciniawsky@gmail.com>\n * @license MIT\n *\n * @module postcss-load-config\n * @version 2.1.0\n *\n * @requires comsiconfig\n * @requires ./options\n * @requires ./plugins\n */\nmodule.exports = rc\n","import { extname, win32, posix, isAbsolute, resolve } from 'path';\nimport pm from 'picomatch';\n\nconst addExtension = function addExtension(filename, ext = '.js') {\n let result = `${filename}`;\n if (!extname(filename))\n result += ext;\n return result;\n};\n\nclass WalkerBase {constructor() { WalkerBase.prototype.__init.call(this);WalkerBase.prototype.__init2.call(this);WalkerBase.prototype.__init3.call(this);WalkerBase.prototype.__init4.call(this); }\n\t __init() {this.should_skip = false;}\n\t __init2() {this.should_remove = false;}\n\t __init3() {this.replacement = null;}\n\n\t __init4() {this.context = {\n\t\tskip: () => (this.should_skip = true),\n\t\tremove: () => (this.should_remove = true),\n\t\treplace: (node) => (this.replacement = node)\n\t};}\n\n\t replace(parent, prop, index, node) {\n\t\tif (parent) {\n\t\t\tif (index !== null) {\n\t\t\t\tparent[prop][index] = node;\n\t\t\t} else {\n\t\t\t\tparent[prop] = node;\n\t\t\t}\n\t\t}\n\t}\n\n\t remove(parent, prop, index) {\n\t\tif (parent) {\n\t\t\tif (index !== null) {\n\t\t\t\tparent[prop].splice(index, 1);\n\t\t\t} else {\n\t\t\t\tdelete parent[prop];\n\t\t\t}\n\t\t}\n\t}\n}\n\nclass SyncWalkerClass extends WalkerBase {\n\t\n\t\n\n\tconstructor(walker) {\n\t\tsuper();\n\t\tthis.enter = walker.enter;\n\t\tthis.leave = walker.leave;\n\t}\n\n\t visit(\n\t\tnode,\n\t\tparent,\n\t\tenter,\n\t\tleave,\n\t\tprop,\n\t\tindex\n\t) {\n\t\tif (node) {\n\t\t\tif (enter) {\n\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tthis.should_skip = false;\n\t\t\t\tthis.should_remove = false;\n\t\t\t\tthis.replacement = null;\n\n\t\t\t\tenter.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\tif (skipped) return node;\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\n\t\t\tfor (const key in node) {\n\t\t\t\tconst value = (node )[key];\n\n\t\t\t\tif (typeof value !== \"object\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\t\tif (value[i] !== null && typeof value[i].type === 'string') {\n\t\t\t\t\t\t\tif (!this.visit(value[i], node, enter, leave, key, i)) {\n\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (value !== null && typeof value.type === \"string\") {\n\t\t\t\t\tthis.visit(value, node, enter, leave, key, null);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (leave) {\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tthis.replacement = null;\n\t\t\t\tthis.should_remove = false;\n\n\t\t\t\tleave.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.replacement = _replacement;\n\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\t\t}\n\n\t\treturn node;\n\t}\n}\n\nfunction walk(ast, walker) {\n\tconst instance = new SyncWalkerClass(walker);\n\treturn instance.visit(ast, null, walker.enter, walker.leave);\n}\n\nconst extractors = {\n ArrayPattern(names, param) {\n for (const element of param.elements) {\n if (element)\n extractors[element.type](names, element);\n }\n },\n AssignmentPattern(names, param) {\n extractors[param.left.type](names, param.left);\n },\n Identifier(names, param) {\n names.push(param.name);\n },\n MemberExpression() { },\n ObjectPattern(names, param) {\n for (const prop of param.properties) {\n // @ts-ignore Typescript reports that this is not a valid type\n if (prop.type === 'RestElement') {\n extractors.RestElement(names, prop);\n }\n else {\n extractors[prop.value.type](names, prop.value);\n }\n }\n },\n RestElement(names, param) {\n extractors[param.argument.type](names, param.argument);\n }\n};\nconst extractAssignedNames = function extractAssignedNames(param) {\n const names = [];\n extractors[param.type](names, param);\n return names;\n};\n\nconst blockDeclarations = {\n const: true,\n let: true\n};\nclass Scope {\n constructor(options = {}) {\n this.parent = options.parent;\n this.isBlockScope = !!options.block;\n this.declarations = Object.create(null);\n if (options.params) {\n options.params.forEach((param) => {\n extractAssignedNames(param).forEach((name) => {\n this.declarations[name] = true;\n });\n });\n }\n }\n addDeclaration(node, isBlockDeclaration, isVar) {\n if (!isBlockDeclaration && this.isBlockScope) {\n // it's a `var` or function node, and this\n // is a block scope, so we need to go up\n this.parent.addDeclaration(node, isBlockDeclaration, isVar);\n }\n else if (node.id) {\n extractAssignedNames(node.id).forEach((name) => {\n this.declarations[name] = true;\n });\n }\n }\n contains(name) {\n return this.declarations[name] || (this.parent ? this.parent.contains(name) : false);\n }\n}\nconst attachScopes = function attachScopes(ast, propertyName = 'scope') {\n let scope = new Scope();\n walk(ast, {\n enter(n, parent) {\n const node = n;\n // function foo () {...}\n // class Foo {...}\n if (/(Function|Class)Declaration/.test(node.type)) {\n scope.addDeclaration(node, false, false);\n }\n // var foo = 1\n if (node.type === 'VariableDeclaration') {\n const { kind } = node;\n const isBlockDeclaration = blockDeclarations[kind];\n node.declarations.forEach((declaration) => {\n scope.addDeclaration(declaration, isBlockDeclaration, true);\n });\n }\n let newScope;\n // create new function scope\n if (/Function/.test(node.type)) {\n const func = node;\n newScope = new Scope({\n parent: scope,\n block: false,\n params: func.params\n });\n // named function expressions - the name is considered\n // part of the function's scope\n if (func.type === 'FunctionExpression' && func.id) {\n newScope.addDeclaration(func, false, false);\n }\n }\n // create new for scope\n if (/For(In|Of)?Statement/.test(node.type)) {\n newScope = new Scope({\n parent: scope,\n block: true\n });\n }\n // create new block scope\n if (node.type === 'BlockStatement' && !/Function/.test(parent.type)) {\n newScope = new Scope({\n parent: scope,\n block: true\n });\n }\n // catch clause has its own block scope\n if (node.type === 'CatchClause') {\n newScope = new Scope({\n parent: scope,\n params: node.param ? [node.param] : [],\n block: true\n });\n }\n if (newScope) {\n Object.defineProperty(node, propertyName, {\n value: newScope,\n configurable: true\n });\n scope = newScope;\n }\n },\n leave(n) {\n const node = n;\n if (node[propertyName])\n scope = scope.parent;\n }\n });\n return scope;\n};\n\n// Helper since Typescript can't detect readonly arrays with Array.isArray\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction ensureArray(thing) {\n if (isArray(thing))\n return thing;\n if (thing == null)\n return [];\n return [thing];\n}\n\nconst normalizePath = function normalizePath(filename) {\n return filename.split(win32.sep).join(posix.sep);\n};\n\nfunction getMatcherString(id, resolutionBase) {\n if (resolutionBase === false || isAbsolute(id) || id.startsWith('*')) {\n return id;\n }\n // resolve('') is valid and will default to process.cwd()\n const basePath = normalizePath(resolve(resolutionBase || ''))\n // escape all possible (posix + win) path characters that might interfere with regex\n .replace(/[-^$*+?.()|[\\]{}]/g, '\\\\$&');\n // Note that we use posix.join because:\n // 1. the basePath has been normalized to use /\n // 2. the incoming glob (id) matcher, also uses /\n // otherwise Node will force backslash (\\) on windows\n return posix.join(basePath, id);\n}\nconst createFilter = function createFilter(include, exclude, options) {\n const resolutionBase = options && options.resolve;\n const getMatcher = (id) => id instanceof RegExp\n ? id\n : {\n test: (what) => {\n // this refactor is a tad overly verbose but makes for easy debugging\n const pattern = getMatcherString(id, resolutionBase);\n const fn = pm(pattern, { dot: true });\n const result = fn(what);\n return result;\n }\n };\n const includeMatchers = ensureArray(include).map(getMatcher);\n const excludeMatchers = ensureArray(exclude).map(getMatcher);\n return function result(id) {\n if (typeof id !== 'string')\n return false;\n if (/\\0/.test(id))\n return false;\n const pathId = normalizePath(id);\n for (let i = 0; i < excludeMatchers.length; ++i) {\n const matcher = excludeMatchers[i];\n if (matcher.test(pathId))\n return false;\n }\n for (let i = 0; i < includeMatchers.length; ++i) {\n const matcher = includeMatchers[i];\n if (matcher.test(pathId))\n return true;\n }\n return !includeMatchers.length;\n };\n};\n\nconst reservedWords = 'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public';\nconst builtins = 'arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl';\nconst forbiddenIdentifiers = new Set(`${reservedWords} ${builtins}`.split(' '));\nforbiddenIdentifiers.add('');\nconst makeLegalIdentifier = function makeLegalIdentifier(str) {\n let identifier = str\n .replace(/-(\\w)/g, (_, letter) => letter.toUpperCase())\n .replace(/[^$_a-zA-Z0-9]/g, '_');\n if (/\\d/.test(identifier[0]) || forbiddenIdentifiers.has(identifier)) {\n identifier = `_${identifier}`;\n }\n return identifier || '_';\n};\n\nfunction stringify(obj) {\n return (JSON.stringify(obj) || 'undefined').replace(/[\\u2028\\u2029]/g, (char) => `\\\\u${`000${char.charCodeAt(0).toString(16)}`.slice(-4)}`);\n}\nfunction serializeArray(arr, indent, baseIndent) {\n let output = '[';\n const separator = indent ? `\\n${baseIndent}${indent}` : '';\n for (let i = 0; i < arr.length; i++) {\n const key = arr[i];\n output += `${i > 0 ? ',' : ''}${separator}${serialize(key, indent, baseIndent + indent)}`;\n }\n return `${output}${indent ? `\\n${baseIndent}` : ''}]`;\n}\nfunction serializeObject(obj, indent, baseIndent) {\n let output = '{';\n const separator = indent ? `\\n${baseIndent}${indent}` : '';\n const entries = Object.entries(obj);\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i];\n const stringKey = makeLegalIdentifier(key) === key ? key : stringify(key);\n output += `${i > 0 ? ',' : ''}${separator}${stringKey}:${indent ? ' ' : ''}${serialize(value, indent, baseIndent + indent)}`;\n }\n return `${output}${indent ? `\\n${baseIndent}` : ''}}`;\n}\nfunction serialize(obj, indent, baseIndent) {\n if (obj === Infinity)\n return 'Infinity';\n if (obj === -Infinity)\n return '-Infinity';\n if (obj === 0 && 1 / obj === -Infinity)\n return '-0';\n if (obj instanceof Date)\n return `new Date(${obj.getTime()})`;\n if (obj instanceof RegExp)\n return obj.toString();\n if (obj !== obj)\n return 'NaN'; // eslint-disable-line no-self-compare\n if (Array.isArray(obj))\n return serializeArray(obj, indent, baseIndent);\n if (obj === null)\n return 'null';\n if (typeof obj === 'object')\n return serializeObject(obj, indent, baseIndent);\n return stringify(obj);\n}\nconst dataToEsm = function dataToEsm(data, options = {}) {\n const t = options.compact ? '' : 'indent' in options ? options.indent : '\\t';\n const _ = options.compact ? '' : ' ';\n const n = options.compact ? '' : '\\n';\n const declarationType = options.preferConst ? 'const' : 'var';\n if (options.namedExports === false ||\n typeof data !== 'object' ||\n Array.isArray(data) ||\n data instanceof Date ||\n data instanceof RegExp ||\n data === null) {\n const code = serialize(data, options.compact ? null : t, '');\n const magic = _ || (/^[{[\\-\\/]/.test(code) ? '' : ' '); // eslint-disable-line no-useless-escape\n return `export default${magic}${code};`;\n }\n let namedExportCode = '';\n const defaultExportRows = [];\n for (const [key, value] of Object.entries(data)) {\n if (key === makeLegalIdentifier(key)) {\n if (options.objectShorthand)\n defaultExportRows.push(key);\n else\n defaultExportRows.push(`${key}:${_}${key}`);\n namedExportCode += `export ${declarationType} ${key}${_}=${_}${serialize(value, options.compact ? null : t, '')};${n}`;\n }\n else {\n defaultExportRows.push(`${stringify(key)}:${_}${serialize(value, options.compact ? null : t, '')}`);\n }\n }\n return `${namedExportCode}export default${_}{${n}${t}${defaultExportRows.join(`,${n}${t}`)}${n}};${n}`;\n};\n\n// TODO: remove this in next major\nvar index = {\n addExtension,\n attachScopes,\n createFilter,\n dataToEsm,\n extractAssignedNames,\n makeLegalIdentifier,\n normalizePath\n};\n\nexport default index;\nexport { addExtension, attachScopes, createFilter, dataToEsm, extractAssignedNames, makeLegalIdentifier, normalizePath };\n","import fs from 'fs'\nimport path from 'path'\nimport glob from 'fast-glob'\nimport {\n // createDebugger,\n isExternalUrl,\n asyncReplace,\n cleanUrl,\n generateCodeFrame,\n isDataUrl,\n isObject,\n normalizePath,\n processSrcSet\n} from '../utils'\nimport { Plugin } from '../plugin'\nimport { ResolvedConfig } from '../config'\nimport postcssrc from 'postcss-load-config'\nimport {\n NormalizedOutputOptions,\n OutputChunk,\n RenderedChunk,\n RollupError,\n SourceMap\n} from 'rollup'\nimport { dataToEsm } from '@rollup/pluginutils'\nimport chalk from 'chalk'\nimport { CLIENT_PUBLIC_PATH } from '../constants'\nimport { ResolveFn, ViteDevServer } from '../'\nimport {\n getAssetFilename,\n assetUrlRE,\n registerAssetToChunk,\n fileToUrl,\n checkPublicFile\n} from './asset'\nimport MagicString from 'magic-string'\nimport * as Postcss from 'postcss'\nimport type Sass from 'sass'\n// We need to disable check of extraneous import which is buggy for stylus,\n// and causes the CI tests fail, see: https://github.com/vitejs/vite/pull/2860\nimport type Stylus from 'stylus' // eslint-disable-line node/no-extraneous-import\nimport type Less from 'less'\nimport { Alias } from 'types/alias'\nimport type { ModuleNode } from '../server/moduleGraph'\nimport { transform, formatMessages } from 'esbuild'\n\n// const debug = createDebugger('vite:css')\n\nexport interface CSSOptions {\n /**\n * https://github.com/css-modules/postcss-modules\n */\n modules?: CSSModulesOptions | false\n preprocessorOptions?: Record<string, any>\n postcss?:\n | string\n | (Postcss.ProcessOptions & {\n plugins?: Postcss.Plugin[]\n })\n}\n\nexport interface CSSModulesOptions {\n getJSON?: (\n cssFileName: string,\n json: Record<string, string>,\n outputFileName: string\n ) => void\n scopeBehaviour?: 'global' | 'local'\n globalModulePaths?: RegExp[]\n generateScopedName?:\n | string\n | ((name: string, filename: string, css: string) => string)\n hashPrefix?: string\n /**\n * default: null\n */\n localsConvention?:\n | 'camelCase'\n | 'camelCaseOnly'\n | 'dashes'\n | 'dashesOnly'\n | null\n}\n\nconst cssLangs = `\\\\.(css|less|sass|scss|styl|stylus|pcss|postcss)($|\\\\?)`\nconst cssLangRE = new RegExp(cssLangs)\nconst cssModuleRE = new RegExp(`\\\\.module${cssLangs}`)\nconst directRequestRE = /(\\?|&)direct\\b/\nconst commonjsProxyRE = /\\?commonjs-proxy/\nconst inlineRE = /(\\?|&)inline\\b/\n\nconst enum PreprocessLang {\n less = 'less',\n sass = 'sass',\n scss = 'scss',\n styl = 'styl',\n stylus = 'stylus'\n}\nconst enum PureCssLang {\n css = 'css'\n}\ntype CssLang = keyof typeof PureCssLang | keyof typeof PreprocessLang\n\nexport const isCSSRequest = (request: string): boolean =>\n cssLangRE.test(request)\n\nexport const isDirectCSSRequest = (request: string): boolean =>\n cssLangRE.test(request) && directRequestRE.test(request)\n\nexport const isDirectRequest = (request: string): boolean =>\n directRequestRE.test(request)\n\nconst cssModulesCache = new WeakMap<\n ResolvedConfig,\n Map<string, Record<string, string>>\n>()\n\nexport const chunkToEmittedCssFileMap = new WeakMap<\n RenderedChunk,\n Set<string>\n>()\n\nexport const removedPureCssFilesCache = new WeakMap<\n ResolvedConfig,\n Map<string, RenderedChunk>\n>()\n\nconst postcssConfigCache = new WeakMap<\n ResolvedConfig,\n PostCSSConfigResult | null\n>()\n\n/**\n * Plugin applied before user plugins\n */\nexport function cssPlugin(config: ResolvedConfig): Plugin {\n let server: ViteDevServer\n let moduleCache: Map<string, Record<string, string>>\n\n const resolveUrl = config.createResolver({\n preferRelative: true,\n tryIndex: false,\n extensions: []\n })\n const atImportResolvers = createCSSResolvers(config)\n\n return {\n name: 'vite:css',\n\n configureServer(_server) {\n server = _server\n },\n\n buildStart() {\n // Ensure a new cache for every build (i.e. rebuilding in watch mode)\n moduleCache = new Map<string, Record<string, string>>()\n cssModulesCache.set(config, moduleCache)\n\n removedPureCssFilesCache.set(config, new Map<string, RenderedChunk>())\n },\n\n async transform(raw, id) {\n if (!isCSSRequest(id) || commonjsProxyRE.test(id)) {\n return\n }\n\n const urlReplacer: CssUrlReplacer = async (url, importer) => {\n if (checkPublicFile(url, config)) {\n return config.base + url.slice(1)\n }\n const resolved = await resolveUrl(url, importer)\n if (resolved) {\n return fileToUrl(resolved, config, this)\n }\n return url\n }\n\n const {\n code: css,\n modules,\n deps\n } = await compileCSS(\n id,\n raw,\n config,\n urlReplacer,\n atImportResolvers,\n server\n )\n if (modules) {\n moduleCache.set(id, modules)\n }\n\n // track deps for build watch mode\n if (config.command === 'build' && config.build.watch && deps) {\n for (const file of deps) {\n this.addWatchFile(file)\n }\n }\n\n // dev\n if (server) {\n // server only logic for handling CSS @import dependency hmr\n const { moduleGraph } = server\n const thisModule = moduleGraph.getModuleById(id)\n if (thisModule) {\n // CSS modules cannot self-accept since it exports values\n const isSelfAccepting = !modules\n if (deps) {\n // record deps in the module graph so edits to @import css can trigger\n // main import to hot update\n const depModules = new Set<string | ModuleNode>()\n for (const file of deps) {\n depModules.add(\n isCSSRequest(file)\n ? moduleGraph.createFileOnlyEntry(file)\n : await moduleGraph.ensureEntryFromUrl(\n (\n await fileToUrl(file, config, this)\n ).replace(config.base, '/')\n )\n )\n }\n moduleGraph.updateModuleInfo(\n thisModule,\n depModules,\n // The root CSS proxy module is self-accepting and should not\n // have an explicit accept list\n new Set(),\n isSelfAccepting\n )\n for (const file of deps) {\n this.addWatchFile(file)\n }\n } else {\n thisModule.isSelfAccepting = isSelfAccepting\n }\n }\n }\n\n return {\n code: css,\n // TODO CSS source map\n map: { mappings: '' }\n }\n }\n }\n}\n\n/**\n * Plugin applied after user plugins\n */\nexport function cssPostPlugin(config: ResolvedConfig): Plugin {\n // styles initialization in buildStart causes a styling loss in watch\n const styles: Map<string, string> = new Map<string, string>()\n let pureCssChunks: Set<string>\n\n // when there are multiple rollup outputs and extracting CSS, only emit once,\n // since output formats have no effect on the generated CSS.\n let outputToExtractedCSSMap: Map<NormalizedOutputOptions, string>\n let hasEmitted = false\n\n return {\n name: 'vite:css-post',\n\n buildStart() {\n // Ensure new caches for every build (i.e. rebuilding in watch mode)\n pureCssChunks = new Set<string>()\n outputToExtractedCSSMap = new Map<NormalizedOutputOptions, string>()\n hasEmitted = false\n },\n\n async transform(css, id, ssr) {\n if (!isCSSRequest(id) || commonjsProxyRE.test(id)) {\n return\n }\n\n const inlined = inlineRE.test(id)\n const modules = cssModulesCache.get(config)!.get(id)\n const modulesCode =\n modules && dataToEsm(modules, { namedExports: true, preferConst: true })\n\n if (config.command === 'serve') {\n if (isDirectCSSRequest(id)) {\n return css\n } else {\n // server only\n if (ssr) {\n return modulesCode || `export default ${JSON.stringify(css)}`\n }\n if (inlined) {\n return `export default ${JSON.stringify(css)}`\n }\n return [\n `import { updateStyle, removeStyle } from ${JSON.stringify(\n path.posix.join(config.base, CLIENT_PUBLIC_PATH)\n )}`,\n `const id = ${JSON.stringify(id)}`,\n `const css = ${JSON.stringify(css)}`,\n `updateStyle(id, css)`,\n // css modules exports change on edit so it can't self accept\n `${modulesCode || `import.meta.hot.accept()\\nexport default css`}`,\n `import.meta.hot.prune(() => removeStyle(id))`\n ].join('\\n')\n }\n }\n\n // build CSS handling ----------------------------------------------------\n\n // record css\n if (!inlined) {\n styles.set(id, css)\n } else {\n css = await minifyCSS(css, config)\n }\n\n return {\n code: modulesCode || `export default ${JSON.stringify(css)}`,\n map: { mappings: '' },\n // avoid the css module from being tree-shaken so that we can retrieve\n // it in renderChunk()\n moduleSideEffects: inlined ? false : 'no-treeshake'\n }\n },\n\n async renderChunk(code, chunk, opts) {\n let chunkCSS = ''\n let isPureCssChunk = true\n const ids = Object.keys(chunk.modules)\n for (const id of ids) {\n if (\n !isCSSRequest(id) ||\n cssModuleRE.test(id) ||\n commonjsProxyRE.test(id)\n ) {\n isPureCssChunk = false\n }\n if (styles.has(id)) {\n chunkCSS += styles.get(id)\n }\n }\n\n if (!chunkCSS) {\n return null\n }\n\n // resolve asset URL placeholders to their built file URLs and perform\n // minification if necessary\n const processChunkCSS = async (\n css: string,\n {\n inlined,\n minify\n }: {\n inlined: boolean\n minify: boolean\n }\n ) => {\n // replace asset url references with resolved url.\n const isRelativeBase = config.base === '' || config.base.startsWith('.')\n css = css.replace(assetUrlRE, (_, fileHash, postfix = '') => {\n const filename = getAssetFilename(fileHash, config) + postfix\n registerAssetToChunk(chunk, filename)\n if (!isRelativeBase || inlined) {\n // absolute base or relative base but inlined (injected as style tag into\n // index.html) use the base as-is\n return config.base + filename\n } else {\n // relative base + extracted CSS - asset file will be in the same dir\n return `./${path.posix.basename(filename)}`\n }\n })\n // only external @imports should exist at this point - and they need to\n // be hoisted to the top of the CSS chunk per spec (#1845)\n if (css.includes('@import')) {\n css = await hoistAtImports(css)\n }\n if (minify && config.build.minify) {\n css = await minifyCSS(css, config)\n }\n return css\n }\n\n if (config.build.cssCodeSplit) {\n if (isPureCssChunk) {\n // this is a shared CSS-only chunk that is empty.\n pureCssChunks.add(chunk.fileName)\n }\n if (opts.format === 'es' || opts.format === 'cjs') {\n chunkCSS = await processChunkCSS(chunkCSS, {\n inlined: false,\n minify: true\n })\n // emit corresponding css file\n const fileHandle = this.emitFile({\n name: chunk.name + '.css',\n type: 'asset',\n source: chunkCSS\n })\n chunkToEmittedCssFileMap.set(\n chunk,\n new Set([this.getFileName(fileHandle)])\n )\n } else if (!config.build.ssr) {\n // legacy build, inline css\n chunkCSS = await processChunkCSS(chunkCSS, {\n inlined: true,\n minify: true\n })\n const style = `__vite_style__`\n const injectCode =\n `var ${style} = document.createElement('style');` +\n `${style}.innerHTML = ${JSON.stringify(chunkCSS)};` +\n `document.head.appendChild(${style});`\n if (config.build.sourcemap) {\n const s = new MagicString(code)\n s.prepend(injectCode)\n return {\n code: s.toString(),\n map: s.generateMap({ hires: true })\n }\n } else {\n return { code: injectCode + code }\n }\n }\n } else {\n // non-split extracted CSS will be minified together\n chunkCSS = await processChunkCSS(chunkCSS, {\n inlined: false,\n minify: false\n })\n outputToExtractedCSSMap.set(\n opts,\n (outputToExtractedCSSMap.get(opts) || '') + chunkCSS\n )\n }\n return null\n },\n\n async generateBundle(opts, bundle) {\n // remove empty css chunks and their imports\n if (pureCssChunks.size) {\n const emptyChunkFiles = [...pureCssChunks]\n .map((file) => path.basename(file))\n .join('|')\n .replace(/\\./g, '\\\\.')\n const emptyChunkRE = new RegExp(\n opts.format === 'es'\n ? `\\\\bimport\\\\s*\"[^\"]*(?:${emptyChunkFiles})\";\\n?`\n : `\\\\brequire\\\\(\\\\s*\"[^\"]*(?:${emptyChunkFiles})\"\\\\);\\n?`,\n 'g'\n )\n for (const file in bundle) {\n const chunk = bundle[file]\n if (chunk.type === 'chunk') {\n // remove pure css chunk from other chunk's imports,\n // and also register the emitted CSS files under the importer\n // chunks instead.\n chunk.imports = chunk.imports.filter((file) => {\n if (pureCssChunks.has(file)) {\n const css = chunkToEmittedCssFileMap.get(\n bundle[file] as OutputChunk\n )\n if (css) {\n let existing = chunkToEmittedCssFileMap.get(chunk)\n if (!existing) {\n existing = new Set()\n }\n css.forEach((file) => existing!.add(file))\n chunkToEmittedCssFileMap.set(chunk, existing)\n }\n return false\n }\n return true\n })\n chunk.code = chunk.code.replace(\n emptyChunkRE,\n // remove css import while preserving source map location\n (m) => `/* empty css ${''.padEnd(m.length - 15)}*/`\n )\n }\n }\n const removedPureCssFiles = removedPureCssFilesCache.get(config)!\n pureCssChunks.forEach((fileName) => {\n removedPureCssFiles.set(fileName, bundle[fileName] as RenderedChunk)\n delete bundle[fileName]\n })\n }\n\n let extractedCss = outputToExtractedCSSMap.get(opts)\n if (extractedCss && !hasEmitted) {\n hasEmitted = true\n // minify css\n if (config.build.minify) {\n extractedCss = await minifyCSS(extractedCss, config)\n }\n this.emitFile({\n name: 'style.css',\n type: 'asset',\n source: extractedCss\n })\n }\n }\n }\n}\n\ninterface CSSAtImportResolvers {\n css: ResolveFn\n sass: ResolveFn\n less: ResolveFn\n}\n\nfunction createCSSResolvers(config: ResolvedConfig): CSSAtImportResolvers {\n let cssResolve: ResolveFn | undefined\n let sassResolve: ResolveFn | undefined\n let lessResolve: ResolveFn | undefined\n return {\n get css() {\n return (\n cssResolve ||\n (cssResolve = config.createResolver({\n extensions: ['.css'],\n mainFields: ['style'],\n tryIndex: false,\n preferRelative: true\n }))\n )\n },\n\n get sass() {\n return (\n sassResolve ||\n (sassResolve = config.createResolver({\n extensions: ['.scss', '.sass', '.css'],\n mainFields: ['sass', 'style'],\n tryIndex: true,\n tryPrefix: '_',\n preferRelative: true\n }))\n )\n },\n\n get less() {\n return (\n lessResolve ||\n (lessResolve = config.createResolver({\n extensions: ['.less', '.css'],\n mainFields: ['less', 'style'],\n tryIndex: false,\n preferRelative: true\n }))\n )\n }\n }\n}\n\nfunction getCssResolversKeys(\n resolvers: CSSAtImportResolvers\n): Array<keyof CSSAtImportResolvers> {\n return Object.keys(resolvers) as unknown as Array<keyof CSSAtImportResolvers>\n}\n\nasync function compileCSS(\n id: string,\n code: string,\n config: ResolvedConfig,\n urlReplacer: CssUrlReplacer,\n atImportResolvers: CSSAtImportResolvers,\n server?: ViteDevServer\n): Promise<{\n code: string\n map?: SourceMap\n ast?: Postcss.Result\n modules?: Record<string, string>\n deps?: Set<string>\n}> {\n const { modules: modulesOptions, preprocessorOptions } = config.css || {}\n const isModule = modulesOptions !== false && cssModuleRE.test(id)\n // although at serve time it can work without processing, we do need to\n // crawl them in order to register watch dependencies.\n const needInlineImport = code.includes('@import')\n const hasUrl = cssUrlRE.test(code) || cssImageSetRE.test(code)\n const postcssConfig = await resolvePostcssConfig(config)\n const lang = id.match(cssLangRE)?.[1] as CssLang | undefined\n\n // 1. plain css that needs no processing\n if (\n lang === 'css' &&\n !postcssConfig &&\n !isModule &&\n !needInlineImport &&\n !hasUrl\n ) {\n return { code }\n }\n\n let map: SourceMap | undefined\n let modules: Record<string, string> | undefined\n const deps = new Set<string>()\n\n // 2. pre-processors: sass etc.\n if (isPreProcessor(lang)) {\n const preProcessor = preProcessors[lang]\n let opts = (preprocessorOptions && preprocessorOptions[lang]) || {}\n // support @import from node dependencies by default\n switch (lang) {\n case PreprocessLang.scss:\n case PreprocessLang.sass:\n opts = {\n includePaths: ['node_modules'],\n alias: config.resolve.alias,\n ...opts\n }\n break\n case PreprocessLang.less:\n case PreprocessLang.styl:\n case PreprocessLang.stylus:\n opts = {\n paths: ['node_modules'],\n alias: config.resolve.alias,\n ...opts\n }\n }\n // important: set this for relative import resolving\n opts.filename = cleanUrl(id)\n const preprocessResult = await preProcessor(\n code,\n config.root,\n opts,\n atImportResolvers\n )\n if (preprocessResult.errors.length) {\n throw preprocessResult.errors[0]\n }\n\n code = preprocessResult.code\n map = preprocessResult.map as SourceMap\n if (preprocessResult.deps) {\n preprocessResult.deps.forEach((dep) => {\n // sometimes sass registers the file itself as a dep\n if (normalizePath(dep) !== normalizePath(opts.filename)) {\n deps.add(dep)\n }\n })\n }\n }\n\n // 3. postcss\n const postcssOptions = (postcssConfig && postcssConfig.options) || {}\n const postcssPlugins =\n postcssConfig && postcssConfig.plugins ? postcssConfig.plugins.slice() : []\n\n if (needInlineImport) {\n postcssPlugins.unshift(\n (await import('postcss-import')).default({\n async resolve(id, basedir) {\n const resolved = await atImportResolvers.css(\n id,\n path.join(basedir, '*')\n )\n if (resolved) {\n return path.resolve(resolved)\n }\n return id\n }\n })\n )\n }\n postcssPlugins.push(\n UrlRewritePostcssPlugin({\n replacer: urlReplacer\n }) as Postcss.Plugin\n )\n\n if (isModule) {\n postcssPlugins.unshift(\n (await import('postcss-modules')).default({\n ...modulesOptions,\n getJSON(\n cssFileName: string,\n _modules: Record<string, string>,\n outputFileName: string\n ) {\n modules = _modules\n if (modulesOptions && typeof modulesOptions.getJSON === 'function') {\n modulesOptions.getJSON(cssFileName, _modules, outputFileName)\n }\n },\n async resolve(id: string) {\n for (const key of getCssResolversKeys(atImportResolvers)) {\n const resolved = await atImportResolvers[key](id)\n if (resolved) {\n return path.resolve(resolved)\n }\n }\n\n return id\n }\n })\n )\n }\n\n if (!postcssPlugins.length) {\n return {\n code,\n map\n }\n }\n\n // postcss is an unbundled dep and should be lazy imported\n const postcssResult = await (await import('postcss'))\n .default(postcssPlugins)\n .process(code, {\n ...postcssOptions,\n to: id,\n from: id,\n map: {\n inline: false,\n annotation: false,\n prev: map\n }\n })\n\n // record CSS dependencies from @imports\n for (const message of postcssResult.messages) {\n if (message.type === 'dependency') {\n deps.add(message.file as string)\n } else if (message.type === 'dir-dependency') {\n // https://github.com/postcss/postcss/blob/main/docs/guidelines/plugin.md#3-dependencies\n const { dir, glob: globPattern = '**' } = message\n const pattern =\n normalizePath(path.resolve(path.dirname(id), dir)) + `/` + globPattern\n const files = glob.sync(pattern, {\n ignore: ['**/node_modules/**']\n })\n for (let i = 0; i < files.length; i++) {\n deps.add(files[i])\n }\n if (server) {\n // register glob importers so we can trigger updates on file add/remove\n if (!(id in server._globImporters)) {\n server._globImporters[id] = {\n module: server.moduleGraph.getModuleById(id)!,\n importGlobs: []\n }\n }\n server._globImporters[id].importGlobs.push({\n base: config.root,\n pattern\n })\n }\n } else if (message.type === 'warning') {\n let msg = `[vite:css] ${message.text}`\n if (message.line && message.column) {\n msg += `\\n${generateCodeFrame(code, {\n line: message.line,\n column: message.column\n })}`\n }\n config.logger.warn(chalk.yellow(msg))\n }\n }\n\n return {\n ast: postcssResult,\n code: postcssResult.css,\n map: postcssResult.map as any,\n modules,\n deps\n }\n}\n\ninterface PostCSSConfigResult {\n options: Postcss.ProcessOptions\n plugins: Postcss.Plugin[]\n}\n\nasync function resolvePostcssConfig(\n config: ResolvedConfig\n): Promise<PostCSSConfigResult | null> {\n let result = postcssConfigCache.get(config)\n if (result !== undefined) {\n return result\n }\n\n // inline postcss config via vite config\n const inlineOptions = config.css?.postcss\n if (isObject(inlineOptions)) {\n const options = { ...inlineOptions }\n\n delete options.plugins\n result = {\n options,\n plugins: inlineOptions.plugins || []\n }\n } else {\n try {\n const searchPath =\n typeof inlineOptions === 'string' ? inlineOptions : config.root\n // @ts-ignore\n result = await postcssrc({}, searchPath)\n } catch (e) {\n if (!/No PostCSS Config found/.test(e.message)) {\n throw e\n }\n result = null\n }\n }\n\n postcssConfigCache.set(config, result)\n return result\n}\n\ntype CssUrlReplacer = (\n url: string,\n importer?: string\n) => string | Promise<string>\n// https://drafts.csswg.org/css-syntax-3/#identifier-code-point\nexport const cssUrlRE =\n /(?<=^|[^\\w\\-\\u0080-\\uffff])url\\(\\s*('[^']+'|\"[^\"]+\"|[^'\")]+)\\s*\\)/\nconst cssImageSetRE = /image-set\\(([^)]+)\\)/\n\nconst UrlRewritePostcssPlugin: Postcss.PluginCreator<{\n replacer: CssUrlReplacer\n}> = (opts) => {\n if (!opts) {\n throw new Error('base or replace is required')\n }\n\n return {\n postcssPlugin: 'vite-url-rewrite',\n Once(root) {\n const promises: Promise<void>[] = []\n root.walkDecls((declaration) => {\n const isCssUrl = cssUrlRE.test(declaration.value)\n const isCssImageSet = cssImageSetRE.test(declaration.value)\n if (isCssUrl || isCssImageSet) {\n const replacerForDeclaration = (rawUrl: string) => {\n const importer = declaration.source?.input.file\n return opts.replacer(rawUrl, importer)\n }\n const rewriterToUse = isCssUrl ? rewriteCssUrls : rewriteCssImageSet\n promises.push(\n rewriterToUse(declaration.value, replacerForDeclaration).then(\n (url) => {\n declaration.value = url\n }\n )\n )\n }\n })\n if (promises.length) {\n return Promise.all(promises) as any\n }\n }\n }\n}\nUrlRewritePostcssPlugin.postcss = true\n\nfunction rewriteCssUrls(\n css: string,\n replacer: CssUrlReplacer\n): Promise<string> {\n return asyncReplace(css, cssUrlRE, async (match) => {\n const [matched, rawUrl] = match\n return await doUrlReplace(rawUrl, matched, replacer)\n })\n}\n\nfunction rewriteCssImageSet(\n css: string,\n replacer: CssUrlReplacer\n): Promise<string> {\n return asyncReplace(css, cssImageSetRE, async (match) => {\n const [matched, rawUrl] = match\n const url = await processSrcSet(rawUrl, ({ url }) =>\n doUrlReplace(url, matched, replacer)\n )\n return `image-set(${url})`\n })\n}\nasync function doUrlReplace(\n rawUrl: string,\n matched: string,\n replacer: CssUrlReplacer\n) {\n let wrap = ''\n const first = rawUrl[0]\n if (first === `\"` || first === `'`) {\n wrap = first\n rawUrl = rawUrl.slice(1, -1)\n }\n if (isExternalUrl(rawUrl) || isDataUrl(rawUrl) || rawUrl.startsWith('#')) {\n return matched\n }\n\n return `url(${wrap}${await replacer(rawUrl)}${wrap})`\n}\n\nasync function minifyCSS(css: string, config: ResolvedConfig) {\n const { code, warnings } = await transform(css, {\n loader: 'css',\n minify: true,\n target: config.build.target || undefined\n })\n if (warnings.length) {\n const msgs = await formatMessages(warnings, { kind: 'warning' })\n config.logger.warn(\n chalk.yellow(`warnings when minifying css:\\n${msgs.join('\\n')}`)\n )\n }\n return code\n}\n\n// #1845\n// CSS @import can only appear at top of the file. We need to hoist all @import\n// to top when multiple files are concatenated.\nasync function hoistAtImports(css: string) {\n const postcss = await import('postcss')\n return (await postcss.default([AtImportHoistPlugin]).process(css)).css\n}\n\nconst AtImportHoistPlugin: Postcss.PluginCreator<any> = () => {\n return {\n postcssPlugin: 'vite-hoist-at-imports',\n Once(root) {\n const imports: Postcss.AtRule[] = []\n root.walkAtRules((rule) => {\n if (rule.name === 'import') {\n // record in reverse so that can simply prepend to preserve order\n imports.unshift(rule)\n }\n })\n imports.forEach((i) => root.prepend(i))\n }\n }\n}\nAtImportHoistPlugin.postcss = true\n\n// Preprocessor support. This logic is largely replicated from @vue/compiler-sfc\n\ntype PreprocessorAdditionalData =\n | string\n | ((source: string, filename: string) => string | Promise<string>)\n\ntype StylePreprocessorOptions = {\n [key: string]: any\n additionalData?: PreprocessorAdditionalData\n filename: string\n alias: Alias[]\n}\n\ntype SassStylePreprocessorOptions = StylePreprocessorOptions & Sass.Options\n\ntype StylePreprocessor = (\n source: string,\n root: string,\n options: StylePreprocessorOptions,\n resolvers: CSSAtImportResolvers\n) => StylePreprocessorResults | Promise<StylePreprocessorResults>\n\ntype SassStylePreprocessor = (\n source: string,\n root: string,\n options: SassStylePreprocessorOptions,\n resolvers: CSSAtImportResolvers\n) => StylePreprocessorResults | Promise<StylePreprocessorResults>\n\nexport interface StylePreprocessorResults {\n code: string\n map?: object\n errors: RollupError[]\n deps: string[]\n}\n\nconst loadedPreprocessors: Partial<Record<PreprocessLang, any>> = {}\n\nfunction loadPreprocessor(lang: PreprocessLang.scss, root: string): typeof Sass\nfunction loadPreprocessor(lang: PreprocessLang.sass, root: string): typeof Sass\nfunction loadPreprocessor(lang: PreprocessLang.less, root: string): typeof Less\nfunction loadPreprocessor(\n lang: PreprocessLang.stylus,\n root: string\n): typeof Stylus\nfunction loadPreprocessor(lang: PreprocessLang, root: string): any {\n if (lang in loadedPreprocessors) {\n return loadedPreprocessors[lang]\n }\n try {\n // Search for the preprocessor in the root directory first, and fall back\n // to the default require paths.\n const fallbackPaths = require.resolve.paths(lang) || []\n const resolved = require.resolve(lang, { paths: [root, ...fallbackPaths] })\n return (loadedPreprocessors[lang] = require(resolved))\n } catch (e) {\n throw new Error(\n `Preprocessor dependency \"${lang}\" not found. Did you install it?`\n )\n }\n}\n\n// .scss/.sass processor\nconst scss: SassStylePreprocessor = async (\n source,\n root,\n options,\n resolvers\n) => {\n const render = loadPreprocessor(PreprocessLang.sass, root).render\n const internalImporter: Sass.Importer = (url, importer, done) => {\n resolvers.sass(url, importer).then((resolved) => {\n if (resolved) {\n rebaseUrls(resolved, options.filename, options.alias)\n .then(done)\n .catch(done)\n } else {\n done(null)\n }\n })\n }\n const importer = [internalImporter]\n if (options.importer) {\n Array.isArray(options.importer)\n ? importer.push(...options.importer)\n : importer.push(options.importer)\n }\n\n const finalOptions: Sass.Options = {\n ...options,\n data: await getSource(source, options.filename, options.additionalData),\n file: options.filename,\n outFile: options.filename,\n importer\n }\n\n try {\n const result = await new Promise<Sass.Result>((resolve, reject) => {\n render(finalOptions, (err, res) => {\n if (err) {\n reject(err)\n } else {\n resolve(res)\n }\n })\n })\n const deps = result.stats.includedFiles\n\n return {\n code: result.css.toString(),\n errors: [],\n deps\n }\n } catch (e) {\n // normalize SASS error\n e.id = e.file\n e.frame = e.formatted\n return { code: '', errors: [e], deps: [] }\n }\n}\n\nconst sass: SassStylePreprocessor = (source, root, options, aliasResolver) =>\n scss(\n source,\n root,\n {\n ...options,\n indentedSyntax: true\n },\n aliasResolver\n )\n\n/**\n * relative url() inside \\@imported sass and less files must be rebased to use\n * root file as base.\n */\nasync function rebaseUrls(\n file: string,\n rootFile: string,\n alias: Alias[]\n): Promise<Sass.ImporterReturnType> {\n file = path.resolve(file) // ensure os-specific flashes\n // in the same dir, no need to rebase\n const fileDir = path.dirname(file)\n const rootDir = path.dirname(rootFile)\n if (fileDir === rootDir) {\n return { file }\n }\n // no url()\n const content = fs.readFileSync(file, 'utf-8')\n if (!cssUrlRE.test(content)) {\n return { file }\n }\n const rebased = await rewriteCssUrls(content, (url) => {\n if (url.startsWith('/')) return url\n // match alias, no need to rewrite\n for (const { find } of alias) {\n const matches =\n typeof find === 'string' ? url.startsWith(find) : find.test(url)\n if (matches) {\n return url\n }\n }\n const absolute = path.resolve(fileDir, url)\n const relative = path.relative(rootDir, absolute)\n return normalizePath(relative)\n })\n return {\n file,\n contents: rebased\n }\n}\n\n// .less\nconst less: StylePreprocessor = async (source, root, options, resolvers) => {\n const nodeLess = loadPreprocessor(PreprocessLang.less, root)\n const viteResolverPlugin = createViteLessPlugin(\n nodeLess,\n options.filename,\n options.alias,\n resolvers\n )\n source = await getSource(source, options.filename, options.additionalData)\n\n let result: Less.RenderOutput | undefined\n try {\n result = await nodeLess.render(source, {\n ...options,\n plugins: [viteResolverPlugin, ...(options.plugins || [])]\n })\n } catch (e) {\n const error = e as Less.RenderError\n // normalize error info\n const normalizedError: RollupError = new Error(error.message || error.type)\n normalizedError.loc = {\n file: error.filename || options.filename,\n line: error.line,\n column: error.column\n }\n return { code: '', errors: [normalizedError], deps: [] }\n }\n return {\n code: result.css.toString(),\n deps: result.imports,\n errors: []\n }\n}\n\n/**\n * Less manager, lazy initialized\n */\nlet ViteLessManager: any\n\nfunction createViteLessPlugin(\n less: typeof Less,\n rootFile: string,\n alias: Alias[],\n resolvers: CSSAtImportResolvers\n): Less.Plugin {\n if (!ViteLessManager) {\n ViteLessManager = class ViteManager extends less.FileManager {\n resolvers\n rootFile\n alias\n constructor(\n rootFile: string,\n resolvers: CSSAtImportResolvers,\n alias: Alias[]\n ) {\n super()\n this.rootFile = rootFile\n this.resolvers = resolvers\n this.alias = alias\n }\n override supports() {\n return true\n }\n override supportsSync() {\n return false\n }\n override async loadFile(\n filename: string,\n dir: string,\n opts: any,\n env: any\n ): Promise<Less.FileLoadResult> {\n const resolved = await this.resolvers.less(\n filename,\n path.join(dir, '*')\n )\n if (resolved) {\n const result = await rebaseUrls(resolved, this.rootFile, this.alias)\n let contents: string\n if (result && 'contents' in result) {\n contents = result.contents\n } else {\n contents = fs.readFileSync(resolved, 'utf-8')\n }\n return {\n filename: path.resolve(resolved),\n contents\n }\n } else {\n return super.loadFile(filename, dir, opts, env)\n }\n }\n }\n }\n\n return {\n install(_, pluginManager) {\n pluginManager.addFileManager(\n new ViteLessManager(rootFile, resolvers, alias)\n )\n },\n minVersion: [3, 0, 0]\n }\n}\n\n// .styl\nconst styl: StylePreprocessor = async (source, root, options) => {\n const nodeStylus = loadPreprocessor(PreprocessLang.stylus, root)\n // Get source with preprocessor options.additionalData. Make sure a new line separator\n // is added to avoid any render error, as added stylus content may not have semi-colon separators\n source = await getSource(\n source,\n options.filename,\n options.additionalData,\n '\\n'\n )\n // Get preprocessor options.imports dependencies as stylus\n // does not return them with its builtin `.deps()` method\n const importsDeps = (options.imports ?? []).map((dep: string) =>\n path.resolve(dep)\n )\n try {\n const ref = nodeStylus(source, options)\n\n // if (map) ref.set('sourcemap', { inline: false, comment: false })\n\n const result = ref.render()\n\n // Concat imports deps with computed deps\n const deps = [...ref.deps(), ...importsDeps]\n\n return { code: result, errors: [], deps }\n } catch (e) {\n return { code: '', errors: [e], deps: [] }\n }\n}\n\nfunction getSource(\n source: string,\n filename: string,\n additionalData?: PreprocessorAdditionalData,\n sep: string = ''\n): string | Promise<string> {\n if (!additionalData) return source\n if (typeof additionalData === 'function') {\n return additionalData(source, filename)\n }\n return additionalData + sep + source\n}\n\nconst preProcessors = Object.freeze({\n [PreprocessLang.less]: less,\n [PreprocessLang.sass]: sass,\n [PreprocessLang.scss]: scss,\n [PreprocessLang.styl]: styl,\n [PreprocessLang.stylus]: styl\n})\n\nfunction isPreProcessor(lang: any): lang is PreprocessLang {\n return lang && lang in preProcessors\n}\n","/* es-module-lexer 0.7.1 */\nconst A=1===new Uint8Array(new Uint16Array([1]).buffer)[0];export function parse(E,g=\"@\"){if(!C)return init.then(()=>parse(E));const I=E.length+1,D=(C.__heap_base.value||C.__heap_base)+4*I-C.memory.buffer.byteLength;D>0&&C.memory.grow(Math.ceil(D/65536));const w=C.sa(I-1);if((A?B:Q)(E,new Uint16Array(C.memory.buffer,w,I)),!C.parse())throw Object.assign(new Error(`Parse error ${g}:${E.slice(0,C.e()).split(\"\\n\").length}:${C.e()-E.lastIndexOf(\"\\n\",C.e()-1)}`),{idx:C.e()});const L=[],k=[];for(;C.ri();){const A=C.is(),Q=C.ie(),B=C.ai(),g=C.id(),I=C.ss(),D=C.se();let w;C.ip()&&(w=o(E.slice(-1===g?A-1:A,-1===g?Q+1:Q))),L.push({n:w,s:A,e:Q,ss:I,se:D,d:g,a:B})}for(;C.re();)k.push(E.slice(C.es(),C.ee()));function o(A){try{return(0,eval)(A)}catch{}}return[L,k,!!C.f()]}function Q(A,Q){const B=A.length;let C=0;for(;C<B;){const B=A.charCodeAt(C);Q[C++]=(255&B)<<8|B>>>8}}function B(A,Q){const B=A.length;let C=0;for(;C<B;)Q[C]=A.charCodeAt(C++)}let C;export const init=WebAssembly.compile((E=\"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\",\"undefined\"!=typeof Buffer?Buffer.from(E,\"base64\"):Uint8Array.from(atob(E),A=>A.charCodeAt(0)))).then(WebAssembly.instantiate).then(({exports:A})=>{C=A});var E;","import path from 'path'\nimport glob from 'fast-glob'\nimport {\n isModernFlag,\n preloadMethod,\n preloadMarker\n} from './plugins/importAnalysisBuild'\nimport { cleanUrl } from './utils'\nimport { RollupError } from 'rollup'\n\nexport async function transformImportGlob(\n source: string,\n pos: number,\n importer: string,\n importIndex: number,\n root: string,\n normalizeUrl?: (url: string, pos: number) => Promise<[string, string]>,\n preload = true\n): Promise<{\n importsString: string\n imports: string[]\n exp: string\n endIndex: number\n isEager: boolean\n pattern: string\n base: string\n}> {\n const isEager = source.slice(pos, pos + 21) === 'import.meta.globEager'\n const isEagerDefault =\n isEager && source.slice(pos + 21, pos + 28) === 'Default'\n\n const err = (msg: string) => {\n const e = new Error(`Invalid glob import syntax: ${msg}`)\n ;(e as any).pos = pos\n return e\n }\n\n importer = cleanUrl(importer)\n const importerBasename = path.basename(importer)\n\n let [pattern, endIndex] = lexGlobPattern(source, pos)\n if (!pattern.startsWith('.') && !pattern.startsWith('/')) {\n throw err(`pattern must start with \".\" or \"/\" (relative to project root)`)\n }\n let base: string\n let parentDepth = 0\n const isAbsolute = pattern.startsWith('/')\n if (isAbsolute) {\n base = path.resolve(root)\n pattern = pattern.slice(1)\n } else {\n base = path.dirname(importer)\n while (pattern.startsWith('../')) {\n pattern = pattern.slice(3)\n base = path.resolve(base, '../')\n parentDepth++\n }\n if (pattern.startsWith('./')) {\n pattern = pattern.slice(2)\n }\n }\n const files = glob.sync(pattern, {\n cwd: base,\n ignore: ['**/node_modules/**']\n })\n const imports: string[] = []\n let importsString = ``\n let entries = ``\n for (let i = 0; i < files.length; i++) {\n // skip importer itself\n if (files[i] === importerBasename) continue\n const file = isAbsolute\n ? `/${files[i]}`\n : parentDepth\n ? `${'../'.repeat(parentDepth)}${files[i]}`\n : `./${files[i]}`\n let importee = file\n if (normalizeUrl) {\n ;[importee] = await normalizeUrl(file, pos)\n }\n imports.push(importee)\n const identifier = `__glob_${importIndex}_${i}`\n if (isEager) {\n importsString += `import ${\n isEagerDefault ? `` : `* as `\n }${identifier} from ${JSON.stringify(importee)};`\n entries += ` ${JSON.stringify(file)}: ${identifier},`\n } else {\n let imp = `import(${JSON.stringify(importee)})`\n if (!normalizeUrl && preload) {\n imp =\n `(${isModernFlag}` +\n `? ${preloadMethod}(()=>${imp},\"${preloadMarker}\")` +\n `: ${imp})`\n }\n entries += ` ${JSON.stringify(file)}: () => ${imp},`\n }\n }\n\n return {\n imports,\n importsString,\n exp: `{${entries}}`,\n endIndex,\n isEager,\n pattern,\n base\n }\n}\n\nconst enum LexerState {\n inCall,\n inSingleQuoteString,\n inDoubleQuoteString,\n inTemplateString\n}\n\nfunction lexGlobPattern(code: string, pos: number): [string, number] {\n let state = LexerState.inCall\n let pattern = ''\n\n let i = code.indexOf(`(`, pos) + 1\n outer: for (; i < code.length; i++) {\n const char = code.charAt(i)\n switch (state) {\n case LexerState.inCall:\n if (char === `'`) {\n state = LexerState.inSingleQuoteString\n } else if (char === `\"`) {\n state = LexerState.inDoubleQuoteString\n } else if (char === '`') {\n state = LexerState.inTemplateString\n } else if (/\\s/.test(char)) {\n continue\n } else {\n error(i)\n }\n break\n case LexerState.inSingleQuoteString:\n if (char === `'`) {\n break outer\n } else {\n pattern += char\n }\n break\n case LexerState.inDoubleQuoteString:\n if (char === `\"`) {\n break outer\n } else {\n pattern += char\n }\n break\n case LexerState.inTemplateString:\n if (char === '`') {\n break outer\n } else {\n pattern += char\n }\n break\n default:\n throw new Error('unknown import.meta.glob lexer state')\n }\n }\n return [pattern, code.indexOf(`)`, i) + 1]\n}\n\nfunction error(pos: number) {\n const err = new Error(\n `import.meta.glob() can only accept string literals.`\n ) as RollupError\n err.pos = pos\n throw err\n}\n","import path from 'path'\nimport { ResolvedConfig } from '../config'\nimport { Plugin } from '../plugin'\nimport MagicString from 'magic-string'\nimport { ImportSpecifier, init, parse as parseImports } from 'es-module-lexer'\nimport { OutputChunk } from 'rollup'\nimport { chunkToEmittedCssFileMap, removedPureCssFilesCache } from './css'\nimport { transformImportGlob } from '../importGlob'\n\n/**\n * A flag for injected helpers. This flag will be set to `false` if the output\n * target is not native es - so that injected helper logic can be conditionally\n * dropped.\n */\nexport const isModernFlag = `__VITE_IS_MODERN__`\nexport const preloadMethod = `__vitePreload`\nexport const preloadMarker = `__VITE_PRELOAD__`\nexport const preloadBaseMarker = `__VITE_PRELOAD_BASE__`\n\nconst preloadHelperId = 'vite/preload-helper'\nconst preloadMarkerRE = new RegExp(`\"${preloadMarker}\"`, 'g')\n\n/**\n * Helper for preloading CSS and direct imports of async chunks in parallel to\n * the async chunk itself.\n */\n\nfunction detectScriptRel() {\n // @ts-ignore\n const relList = document.createElement('link').relList\n // @ts-ignore\n return relList && relList.supports && relList.supports('modulepreload')\n ? 'modulepreload'\n : 'preload'\n}\n\ndeclare const scriptRel: string\nfunction preload(baseModule: () => Promise<{}>, deps?: string[]) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps || deps.length === 0) {\n return baseModule()\n }\n\n return Promise.all(\n deps.map((dep) => {\n // @ts-ignore\n dep = `${base}${dep}`\n // @ts-ignore\n if (dep in seen) return\n // @ts-ignore\n seen[dep] = true\n const isCss = dep.endsWith('.css')\n const cssSelector = isCss ? '[rel=\"stylesheet\"]' : ''\n // @ts-ignore check if the file is already preloaded by SSR markup\n if (document.querySelector(`link[href=\"${dep}\"]${cssSelector}`)) {\n return\n }\n // @ts-ignore\n const link = document.createElement('link')\n // @ts-ignore\n link.rel = isCss ? 'stylesheet' : scriptRel\n if (!isCss) {\n link.as = 'script'\n link.crossOrigin = ''\n }\n link.href = dep\n // @ts-ignore\n document.head.appendChild(link)\n if (isCss) {\n return new Promise((res, rej) => {\n link.addEventListener('load', res)\n link.addEventListener('error', rej)\n })\n }\n })\n ).then(() => baseModule())\n}\n\n/**\n * Build only. During serve this is performed as part of ./importAnalysis.\n */\nexport function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {\n const ssr = !!config.build.ssr\n const insertPreload = !(ssr || !!config.build.lib)\n\n const scriptRel = config.build.polyfillModulePreload\n ? `'modulepreload'`\n : `(${detectScriptRel.toString()})()`\n const preloadCode = `const scriptRel = ${scriptRel};const seen = {};const base = '${preloadBaseMarker}';export const ${preloadMethod} = ${preload.toString()}`\n\n return {\n name: 'vite:import-analysis',\n\n resolveId(id) {\n if (id === preloadHelperId) {\n return id\n }\n },\n\n load(id) {\n if (id === preloadHelperId) {\n return preloadCode.replace(preloadBaseMarker, config.base)\n }\n },\n\n async transform(source, importer) {\n if (\n importer.includes('node_modules') &&\n !source.includes('import.meta.glob')\n ) {\n return\n }\n\n await init\n\n let imports: readonly ImportSpecifier[] = []\n try {\n imports = parseImports(source)[0]\n } catch (e) {\n this.error(e, e.idx)\n }\n\n if (!imports.length) {\n return null\n }\n\n let s: MagicString | undefined\n const str = () => s || (s = new MagicString(source))\n let needPreloadHelper = false\n\n for (let index = 0; index < imports.length; index++) {\n const {\n s: start,\n e: end,\n ss: expStart,\n d: dynamicIndex\n } = imports[index]\n\n const isGlob =\n source.slice(start, end) === 'import.meta' &&\n source.slice(end, end + 5) === '.glob'\n\n // import.meta.glob\n if (isGlob) {\n const { importsString, exp, endIndex, isEager } =\n await transformImportGlob(\n source,\n start,\n importer,\n index,\n config.root,\n undefined,\n insertPreload\n )\n str().prepend(importsString)\n str().overwrite(expStart, endIndex, exp)\n if (!isEager) {\n needPreloadHelper = true\n }\n continue\n }\n\n if (dynamicIndex > -1 && insertPreload) {\n needPreloadHelper = true\n const dynamicEnd = source.indexOf(`)`, end) + 1\n const original = source.slice(dynamicIndex, dynamicEnd)\n const replacement = `${preloadMethod}(() => ${original},${isModernFlag}?\"${preloadMarker}\":void 0)`\n str().overwrite(dynamicIndex, dynamicEnd, replacement)\n }\n }\n\n if (\n needPreloadHelper &&\n insertPreload &&\n !source.includes(`const ${preloadMethod} =`)\n ) {\n str().prepend(`import { ${preloadMethod} } from \"${preloadHelperId}\";`)\n }\n\n if (s) {\n return {\n code: s.toString(),\n map: config.build.sourcemap ? s.generateMap({ hires: true }) : null\n }\n }\n },\n\n renderChunk(code, _, { format }) {\n // make sure we only perform the preload logic in modern builds.\n if (code.indexOf(isModernFlag) > -1) {\n const re = new RegExp(isModernFlag, 'g')\n const isModern = String(format === 'es')\n if (config.build.sourcemap) {\n const s = new MagicString(code)\n let match: RegExpExecArray | null\n while ((match = re.exec(code))) {\n s.overwrite(\n match.index,\n match.index + isModernFlag.length,\n isModern\n )\n }\n return {\n code: s.toString(),\n map: s.generateMap({ hires: true })\n }\n } else {\n return code.replace(re, isModern)\n }\n }\n return null\n },\n\n generateBundle({ format }, bundle) {\n if (format !== 'es' || ssr) {\n return\n }\n\n for (const file in bundle) {\n const chunk = bundle[file]\n // can't use chunk.dynamicImports.length here since some modules e.g.\n // dynamic import to constant json may get inlined.\n if (chunk.type === 'chunk' && chunk.code.indexOf(preloadMarker) > -1) {\n const code = chunk.code\n let imports: ImportSpecifier[]\n try {\n imports = parseImports(code)[0].filter((i) => i.d > -1)\n } catch (e) {\n this.error(e, e.idx)\n }\n\n if (imports.length) {\n const s = new MagicString(code)\n for (let index = 0; index < imports.length; index++) {\n const { s: start, e: end, d: dynamicIndex } = imports[index]\n // check the chunk being imported\n const url = code.slice(start, end)\n const deps: Set<string> = new Set()\n let hasRemovedPureCssChunk = false\n\n if (url[0] === `\"` && url[url.length - 1] === `\"`) {\n const ownerFilename = chunk.fileName\n // literal import - trace direct imports and add to deps\n const analyzed: Set<string> = new Set<string>()\n const addDeps = (filename: string) => {\n if (filename === ownerFilename) return\n if (analyzed.has(filename)) return\n analyzed.add(filename)\n const chunk = bundle[filename] as OutputChunk | undefined\n if (chunk) {\n deps.add(chunk.fileName)\n const cssFiles = chunkToEmittedCssFileMap.get(chunk)\n if (cssFiles) {\n cssFiles.forEach((file) => {\n deps.add(file)\n })\n }\n chunk.imports.forEach(addDeps)\n } else {\n const removedPureCssFiles =\n removedPureCssFilesCache.get(config)!\n const chunk = removedPureCssFiles.get(filename)\n if (chunk) {\n const cssFiles = chunkToEmittedCssFileMap.get(chunk)\n if (cssFiles && cssFiles.size > 0) {\n cssFiles.forEach((file) => {\n deps.add(config.base + file)\n })\n hasRemovedPureCssChunk = true\n }\n\n s.overwrite(dynamicIndex, end + 1, 'Promise.resolve({})')\n }\n }\n }\n const normalizedFile = path.posix.join(\n path.posix.dirname(chunk.fileName),\n url.slice(1, -1)\n )\n addDeps(normalizedFile)\n }\n\n let markPos = code.indexOf(preloadMarker, end)\n // fix issue #3051\n if (markPos === -1 && imports.length === 1) {\n markPos = code.indexOf(preloadMarker)\n }\n\n if (markPos > 0) {\n s.overwrite(\n markPos - 1,\n markPos + preloadMarker.length + 1,\n // the dep list includes the main chunk, so only need to\n // preload when there are actual other deps.\n deps.size > 1 ||\n // main chunk is removed\n (hasRemovedPureCssChunk && deps.size > 0)\n ? `[${[...deps].map((d) => JSON.stringify(d)).join(',')}]`\n : `[]`\n )\n }\n }\n chunk.code = s.toString()\n // TODO source map\n }\n\n // there may still be markers due to inlined dynamic imports, remove\n // all the markers regardless\n chunk.code = chunk.code.replace(preloadMarkerRE, 'void 0')\n }\n }\n }\n }\n}\n","import { ResolvedConfig } from '..'\nimport { Plugin } from '../plugin'\nimport { isModernFlag } from './importAnalysisBuild'\n\nexport const modulePreloadPolyfillId = 'vite/modulepreload-polyfill'\n\nexport function modulePreloadPolyfillPlugin(config: ResolvedConfig): Plugin {\n const skip = config.build.ssr\n let polyfillString: string | undefined\n\n return {\n name: 'vite:modulepreload-polyfill',\n resolveId(id) {\n if (id === modulePreloadPolyfillId) {\n return id\n }\n },\n load(id) {\n if (id === modulePreloadPolyfillId) {\n if (skip) {\n return ''\n }\n if (!polyfillString) {\n polyfillString =\n `const p = ${polyfill.toString()};` + `${isModernFlag}&&p();`\n }\n return polyfillString\n }\n }\n }\n}\n\n/**\nThe following polyfill function is meant to run in the browser and adapted from\nhttps://github.com/guybedford/es-module-shims\nMIT License\nCopyright (C) 2018-2021 Guy Bedford\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n*/\n\ndeclare const document: any\ndeclare const MutationObserver: any\ndeclare const fetch: any\n\nfunction polyfill() {\n const relList = document.createElement('link').relList\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return\n }\n\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link)\n }\n\n new MutationObserver((mutations: any) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node)\n }\n }\n }).observe(document, { childList: true, subtree: true })\n\n function getFetchOpts(script: any) {\n const fetchOpts = {} as any\n if (script.integrity) fetchOpts.integrity = script.integrity\n if (script.referrerpolicy) fetchOpts.referrerPolicy = script.referrerpolicy\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include'\n else if (script.crossorigin === 'anonymous') fetchOpts.credentials = 'omit'\n else fetchOpts.credentials = 'same-origin'\n return fetchOpts\n }\n\n function processPreload(link: any) {\n if (link.ep)\n // ep marker = processed\n return\n link.ep = true\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link)\n fetch(link.href, fetchOpts)\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport { Plugin } from '../plugin'\nimport { ViteDevServer } from '../server'\nimport { OutputAsset, OutputBundle, OutputChunk } from 'rollup'\nimport {\n slash,\n cleanUrl,\n isExternalUrl,\n isDataUrl,\n generateCodeFrame,\n processSrcSet\n} from '../utils'\nimport { ResolvedConfig } from '../config'\nimport MagicString from 'magic-string'\nimport {\n checkPublicFile,\n assetUrlRE,\n urlToBuiltUrl,\n getAssetFilename\n} from './asset'\nimport { isCSSRequest, chunkToEmittedCssFileMap } from './css'\nimport { modulePreloadPolyfillId } from './modulePreloadPolyfill'\nimport {\n AttributeNode,\n NodeTransform,\n NodeTypes,\n ElementNode\n} from '@vue/compiler-dom'\n\nconst htmlProxyRE = /\\?html-proxy&index=(\\d+)\\.js$/\nexport const isHTMLProxy = (id: string): boolean => htmlProxyRE.test(id)\n\nconst htmlCommentRE = /<!--[\\s\\S]*?-->/g\nconst scriptModuleRE =\n /(<script\\b[^>]*type\\s*=\\s*(?:\"module\"|'module')[^>]*>)(.*?)<\\/script>/gims\n\nexport function htmlInlineScriptProxyPlugin(): Plugin {\n return {\n name: 'vite:html',\n\n resolveId(id) {\n if (htmlProxyRE.test(id)) {\n return id\n }\n },\n\n load(id) {\n const proxyMatch = id.match(htmlProxyRE)\n if (proxyMatch) {\n const index = Number(proxyMatch[1])\n const file = cleanUrl(id)\n const html = fs.readFileSync(file, 'utf-8').replace(htmlCommentRE, '')\n let match: RegExpExecArray | null | undefined\n scriptModuleRE.lastIndex = 0\n for (let i = 0; i <= index; i++) {\n match = scriptModuleRE.exec(html)\n }\n if (match) {\n return match[2]\n } else {\n throw new Error(`No matching html proxy module found from ${id}`)\n }\n }\n }\n }\n}\n\n// this extends the config in @vue/compiler-sfc with <link href>\nexport const assetAttrsConfig: Record<string, string[]> = {\n link: ['href'],\n video: ['src', 'poster'],\n source: ['src', 'srcset'],\n img: ['src', 'srcset'],\n image: ['xlink:href', 'href'],\n use: ['xlink:href', 'href']\n}\n\nexport async function traverseHtml(\n html: string,\n filePath: string,\n visitor: NodeTransform\n): Promise<void> {\n // lazy load compiler\n const { parse, transform } = await import('@vue/compiler-dom')\n // @vue/compiler-core doesn't like lowercase doctypes\n html = html.replace(/<!doctype\\s/i, '<!DOCTYPE ')\n try {\n const ast = parse(html, { comments: true })\n transform(ast, {\n nodeTransforms: [visitor]\n })\n } catch (e) {\n const parseError = {\n loc: filePath,\n frame: '',\n ...formatParseError(e, filePath, html)\n }\n throw new Error(\n `Unable to parse ${JSON.stringify(parseError.loc)}\\n${parseError.frame}`\n )\n }\n}\n\nexport function getScriptInfo(node: ElementNode): {\n src: AttributeNode | undefined\n isModule: boolean\n} {\n let src: AttributeNode | undefined\n let isModule = false\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i]\n if (p.type === NodeTypes.ATTRIBUTE) {\n if (p.name === 'src') {\n src = p\n } else if (p.name === 'type' && p.value && p.value.content === 'module') {\n isModule = true\n }\n }\n }\n return { src, isModule }\n}\n\nfunction formatParseError(e: any, id: string, html: string): Error {\n // normalize the error to rollup format\n if (e.loc) {\n e.frame = generateCodeFrame(html, e.loc.start.offset)\n e.loc = {\n file: id,\n line: e.loc.start.line,\n column: e.loc.start.column\n }\n }\n return e\n}\n\n/**\n * Compiles index.html into an entry js module\n */\nexport function buildHtmlPlugin(config: ResolvedConfig): Plugin {\n const [preHooks, postHooks] = resolveHtmlTransforms(config.plugins)\n const processedHtml = new Map<string, string>()\n const isExcludedUrl = (url: string) =>\n url.startsWith('#') ||\n isExternalUrl(url) ||\n isDataUrl(url) ||\n checkPublicFile(url, config)\n\n return {\n name: 'vite:build-html',\n\n async transform(html, id) {\n if (id.endsWith('.html')) {\n const publicPath = `/${slash(path.relative(config.root, id))}`\n // pre-transform\n html = await applyHtmlTransforms(html, preHooks, {\n path: publicPath,\n filename: id\n })\n\n let js = ''\n const s = new MagicString(html)\n const assetUrls: AttributeNode[] = []\n let inlineModuleIndex = -1\n\n await traverseHtml(html, id, (node) => {\n if (node.type !== NodeTypes.ELEMENT) {\n return\n }\n\n let shouldRemove = false\n\n // script tags\n if (node.tag === 'script') {\n const { src, isModule } = getScriptInfo(node)\n\n const url = src && src.value && src.value.content\n if (url && checkPublicFile(url, config)) {\n // referencing public dir url, prefix with base\n s.overwrite(\n src!.value!.loc.start.offset,\n src!.value!.loc.end.offset,\n `\"${config.base + url.slice(1)}\"`\n )\n }\n\n if (isModule) {\n inlineModuleIndex++\n if (url && !isExcludedUrl(url)) {\n // <script type=\"module\" src=\"...\"/>\n // add it as an import\n js += `\\nimport ${JSON.stringify(url)}`\n shouldRemove = true\n } else if (node.children.length) {\n // <script type=\"module\">...</script>\n js += `\\nimport \"${id}?html-proxy&index=${inlineModuleIndex}.js\"`\n shouldRemove = true\n }\n }\n }\n\n // For asset references in index.html, also generate an import\n // statement for each - this will be handled by the asset plugin\n const assetAttrs = assetAttrsConfig[node.tag]\n if (assetAttrs) {\n for (const p of node.props) {\n if (\n p.type === NodeTypes.ATTRIBUTE &&\n p.value &&\n assetAttrs.includes(p.name)\n ) {\n const url = p.value.content\n if (!isExcludedUrl(url)) {\n if (node.tag === 'link' && isCSSRequest(url)) {\n // CSS references, convert to import\n js += `\\nimport ${JSON.stringify(url)}`\n shouldRemove = true\n } else {\n assetUrls.push(p)\n }\n } else if (checkPublicFile(url, config)) {\n s.overwrite(\n p.value.loc.start.offset,\n p.value.loc.end.offset,\n `\"${config.base + url.slice(1)}\"`\n )\n }\n }\n }\n }\n\n if (shouldRemove) {\n // remove the script tag from the html. we are going to inject new\n // ones in the end.\n s.remove(node.loc.start.offset, node.loc.end.offset)\n }\n })\n\n // for each encountered asset url, rewrite original html so that it\n // references the post-build location.\n for (const attr of assetUrls) {\n const value = attr.value!\n try {\n const url =\n attr.name === 'srcset'\n ? await processSrcSet(value.content, ({ url }) =>\n urlToBuiltUrl(url, id, config, this)\n )\n : await urlToBuiltUrl(value.content, id, config, this)\n\n s.overwrite(\n value.loc.start.offset,\n value.loc.end.offset,\n `\"${url}\"`\n )\n } catch (e) {\n // #1885 preload may be pointing to urls that do not exist\n // locally on disk\n if (e.code !== 'ENOENT') {\n throw e\n }\n }\n }\n\n processedHtml.set(id, s.toString())\n\n // inject module preload polyfill\n if (config.build.polyfillModulePreload) {\n js = `import \"${modulePreloadPolyfillId}\";\\n${js}`\n }\n\n return js\n }\n },\n\n async generateBundle(_, bundle) {\n const analyzedChunk: Map<OutputChunk, number> = new Map()\n const getPreloadLinksForChunk = (\n chunk: OutputChunk,\n seen: Set<string> = new Set()\n ): HtmlTagDescriptor[] => {\n const tags: HtmlTagDescriptor[] = []\n chunk.imports.forEach((file) => {\n const importee = bundle[file]\n if (importee?.type === 'chunk' && !seen.has(file)) {\n seen.add(file)\n tags.push({\n tag: 'link',\n attrs: {\n rel: 'modulepreload',\n href: toPublicPath(file, config)\n }\n })\n tags.push(...getPreloadLinksForChunk(importee, seen))\n }\n })\n return tags\n }\n\n const getCssTagsForChunk = (\n chunk: OutputChunk,\n seen: Set<string> = new Set()\n ): HtmlTagDescriptor[] => {\n const tags: HtmlTagDescriptor[] = []\n if (!analyzedChunk.has(chunk)) {\n analyzedChunk.set(chunk, 1)\n chunk.imports.forEach((file) => {\n const importee = bundle[file]\n if (importee?.type === 'chunk') {\n tags.push(...getCssTagsForChunk(importee, seen))\n }\n })\n }\n\n const cssFiles = chunkToEmittedCssFileMap.get(chunk)\n if (cssFiles) {\n cssFiles.forEach((file) => {\n if (!seen.has(file)) {\n seen.add(file)\n tags.push({\n tag: 'link',\n attrs: {\n rel: 'stylesheet',\n href: toPublicPath(file, config)\n }\n })\n }\n })\n }\n return tags\n }\n\n for (const [id, html] of processedHtml) {\n // resolve asset url references\n let result = html.replace(assetUrlRE, (_, fileHash, postfix = '') => {\n return config.base + getAssetFilename(fileHash, config) + postfix\n })\n\n // find corresponding entry chunk\n const chunk = Object.values(bundle).find(\n (chunk) =>\n chunk.type === 'chunk' &&\n chunk.isEntry &&\n chunk.facadeModuleId === id\n ) as OutputChunk | undefined\n\n // inject chunk asset links\n if (chunk) {\n const assetTags = [\n // js entry chunk for this page\n {\n tag: 'script',\n attrs: {\n type: 'module',\n crossorigin: true,\n src: toPublicPath(chunk.fileName, config)\n }\n },\n // preload for imports\n ...getPreloadLinksForChunk(chunk),\n ...getCssTagsForChunk(chunk)\n ]\n\n result = injectToHead(result, assetTags)\n }\n\n // inject css link when cssCodeSplit is false\n if (!config.build.cssCodeSplit) {\n const cssChunk = Object.values(bundle).find(\n (chunk) => chunk.type === 'asset' && chunk.name === 'style.css'\n ) as OutputAsset | undefined\n if (cssChunk) {\n result = injectToHead(result, [\n {\n tag: 'link',\n attrs: {\n rel: 'stylesheet',\n href: toPublicPath(cssChunk.fileName, config)\n }\n }\n ])\n }\n }\n\n const shortEmitName = path.posix.relative(config.root, id)\n result = await applyHtmlTransforms(result, postHooks, {\n path: '/' + shortEmitName,\n filename: id,\n bundle,\n chunk\n })\n\n this.emitFile({\n type: 'asset',\n fileName: shortEmitName,\n source: result\n })\n }\n }\n }\n}\n\nexport interface HtmlTagDescriptor {\n tag: string\n attrs?: Record<string, string | boolean | undefined>\n children?: string | HtmlTagDescriptor[]\n /**\n * default: 'head-prepend'\n */\n injectTo?: 'head' | 'body' | 'head-prepend' | 'body-prepend'\n}\n\nexport type IndexHtmlTransformResult =\n | string\n | HtmlTagDescriptor[]\n | {\n html: string\n tags: HtmlTagDescriptor[]\n }\n\nexport interface IndexHtmlTransformContext {\n /**\n * public path when served\n */\n path: string\n /**\n * filename on disk\n */\n filename: string\n server?: ViteDevServer\n bundle?: OutputBundle\n chunk?: OutputChunk\n originalUrl?: string\n}\n\nexport type IndexHtmlTransformHook = (\n html: string,\n ctx: IndexHtmlTransformContext\n) => IndexHtmlTransformResult | void | Promise<IndexHtmlTransformResult | void>\n\nexport type IndexHtmlTransform =\n | IndexHtmlTransformHook\n | {\n enforce?: 'pre' | 'post'\n transform: IndexHtmlTransformHook\n }\n\nexport function resolveHtmlTransforms(\n plugins: readonly Plugin[]\n): [IndexHtmlTransformHook[], IndexHtmlTransformHook[]] {\n const preHooks: IndexHtmlTransformHook[] = []\n const postHooks: IndexHtmlTransformHook[] = []\n\n for (const plugin of plugins) {\n const hook = plugin.transformIndexHtml\n if (hook) {\n if (typeof hook === 'function') {\n postHooks.push(hook)\n } else if (hook.enforce === 'pre') {\n preHooks.push(hook.transform)\n } else {\n postHooks.push(hook.transform)\n }\n }\n }\n\n return [preHooks, postHooks]\n}\n\nexport async function applyHtmlTransforms(\n html: string,\n hooks: IndexHtmlTransformHook[],\n ctx: IndexHtmlTransformContext\n): Promise<string> {\n const headTags: HtmlTagDescriptor[] = []\n const headPrependTags: HtmlTagDescriptor[] = []\n const bodyTags: HtmlTagDescriptor[] = []\n const bodyPrependTags: HtmlTagDescriptor[] = []\n\n for (const hook of hooks) {\n const res = await hook(html, ctx)\n if (!res) {\n continue\n }\n if (typeof res === 'string') {\n html = res\n } else {\n let tags: HtmlTagDescriptor[]\n if (Array.isArray(res)) {\n tags = res\n } else {\n html = res.html || html\n tags = res.tags\n }\n for (const tag of tags) {\n if (tag.injectTo === 'body') {\n bodyTags.push(tag)\n } else if (tag.injectTo === 'body-prepend') {\n bodyPrependTags.push(tag)\n } else if (tag.injectTo === 'head') {\n headTags.push(tag)\n } else {\n headPrependTags.push(tag)\n }\n }\n }\n }\n\n // inject tags\n if (headPrependTags.length) {\n html = injectToHead(html, headPrependTags, true)\n }\n if (headTags.length) {\n html = injectToHead(html, headTags)\n }\n if (bodyPrependTags.length) {\n html = injectToBody(html, bodyPrependTags, true)\n }\n if (bodyTags.length) {\n html = injectToBody(html, bodyTags)\n }\n\n return html\n}\n\nfunction toPublicPath(filename: string, config: ResolvedConfig) {\n return isExternalUrl(filename) ? filename : config.base + filename\n}\n\nconst headInjectRE = /<\\/head>/\nconst headPrependInjectRE = [/<head>/, /<!doctype html>/i]\nfunction injectToHead(\n html: string,\n tags: HtmlTagDescriptor[],\n prepend = false\n) {\n const tagsHtml = serializeTags(tags)\n if (prepend) {\n // inject after head or doctype\n for (const re of headPrependInjectRE) {\n if (re.test(html)) {\n return html.replace(re, `$&\\n${tagsHtml}`)\n }\n }\n } else {\n // inject before head close\n if (headInjectRE.test(html)) {\n return html.replace(headInjectRE, `${tagsHtml}\\n $&`)\n }\n }\n // if no <head> tag is present, just prepend\n return tagsHtml + `\\n` + html\n}\n\nconst bodyInjectRE = /<\\/body>/\nconst bodyPrependInjectRE = /<body[^>]*>/\nfunction injectToBody(\n html: string,\n tags: HtmlTagDescriptor[],\n prepend = false\n) {\n if (prepend) {\n // inject after body open\n const tagsHtml = `\\n` + serializeTags(tags)\n if (bodyPrependInjectRE.test(html)) {\n return html.replace(bodyPrependInjectRE, `$&\\n${tagsHtml}`)\n }\n // if no body, prepend\n return tagsHtml + `\\n` + html\n } else {\n // inject before body close\n const tagsHtml = `\\n` + serializeTags(tags)\n if (bodyInjectRE.test(html)) {\n return html.replace(bodyInjectRE, `${tagsHtml}\\n$&`)\n }\n // if no body, append\n return html + `\\n` + tagsHtml\n }\n}\n\nconst unaryTags = new Set(['link', 'meta', 'base'])\n\nfunction serializeTag({ tag, attrs, children }: HtmlTagDescriptor): string {\n if (unaryTags.has(tag)) {\n return `<${tag}${serializeAttrs(attrs)}>`\n } else {\n return `<${tag}${serializeAttrs(attrs)}>${serializeTags(children)}</${tag}>`\n }\n}\n\nfunction serializeTags(tags: HtmlTagDescriptor['children']): string {\n if (typeof tags === 'string') {\n return tags\n } else if (tags) {\n return ` ${tags.map(serializeTag).join('\\n ')}`\n }\n return ''\n}\n\nfunction serializeAttrs(attrs: HtmlTagDescriptor['attrs']): string {\n let res = ''\n for (const key in attrs) {\n if (typeof attrs[key] === 'boolean') {\n res += attrs[key] ? ` ${key}` : ``\n } else {\n res += ` ${key}=${JSON.stringify(attrs[key])}`\n }\n }\n return res\n}\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof string}`);\n\t}\n\n\t// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n\t// conversion translates it to FEFF (UTF-16 BOM)\n\tif (string.charCodeAt(0) === 0xFEFF) {\n\t\treturn string.slice(1);\n\t}\n\n\treturn string;\n};\n","'use strict';\nconst singleComment = Symbol('singleComment');\nconst multiComment = Symbol('multiComment');\nconst stripWithoutWhitespace = () => '';\nconst stripWithWhitespace = (string, start, end) => string.slice(start, end).replace(/\\S/g, ' ');\n\nconst isEscaped = (jsonString, quotePosition) => {\n\tlet index = quotePosition - 1;\n\tlet backslashCount = 0;\n\n\twhile (jsonString[index] === '\\\\') {\n\t\tindex -= 1;\n\t\tbackslashCount += 1;\n\t}\n\n\treturn Boolean(backslashCount % 2);\n};\n\nmodule.exports = (jsonString, options = {}) => {\n\tif (typeof jsonString !== 'string') {\n\t\tthrow new TypeError(`Expected argument \\`jsonString\\` to be a \\`string\\`, got \\`${typeof jsonString}\\``);\n\t}\n\n\tconst strip = options.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace;\n\n\tlet insideString = false;\n\tlet insideComment = false;\n\tlet offset = 0;\n\tlet result = '';\n\n\tfor (let i = 0; i < jsonString.length; i++) {\n\t\tconst currentCharacter = jsonString[i];\n\t\tconst nextCharacter = jsonString[i + 1];\n\n\t\tif (!insideComment && currentCharacter === '\"') {\n\t\t\tconst escaped = isEscaped(jsonString, i);\n\t\t\tif (!escaped) {\n\t\t\t\tinsideString = !insideString;\n\t\t\t}\n\t\t}\n\n\t\tif (insideString) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!insideComment && currentCharacter + nextCharacter === '//') {\n\t\t\tresult += jsonString.slice(offset, i);\n\t\t\toffset = i;\n\t\t\tinsideComment = singleComment;\n\t\t\ti++;\n\t\t} else if (insideComment === singleComment && currentCharacter + nextCharacter === '\\r\\n') {\n\t\t\ti++;\n\t\t\tinsideComment = false;\n\t\t\tresult += strip(jsonString, offset, i);\n\t\t\toffset = i;\n\t\t\tcontinue;\n\t\t} else if (insideComment === singleComment && currentCharacter === '\\n') {\n\t\t\tinsideComment = false;\n\t\t\tresult += strip(jsonString, offset, i);\n\t\t\toffset = i;\n\t\t} else if (!insideComment && currentCharacter + nextCharacter === '/*') {\n\t\t\tresult += jsonString.slice(offset, i);\n\t\t\toffset = i;\n\t\t\tinsideComment = multiComment;\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t} else if (insideComment === multiComment && currentCharacter + nextCharacter === '*/') {\n\t\t\ti++;\n\t\t\tinsideComment = false;\n\t\t\tresult += strip(jsonString, offset, i + 1);\n\t\t\toffset = i + 1;\n\t\t\tcontinue;\n\t\t}\n\t}\n\n\treturn result + (insideComment ? strip(jsonString.slice(offset)) : jsonString.slice(offset));\n};\n","import fs from 'fs'\nimport path from 'path'\nimport chalk from 'chalk'\nimport { Plugin } from '../plugin'\nimport {\n transform,\n Message,\n Loader,\n TransformOptions,\n TransformResult\n} from 'esbuild'\nimport { cleanUrl, createDebugger, generateCodeFrame } from '../utils'\nimport { RawSourceMap } from '@ampproject/remapping/dist/types/types'\nimport { SourceMap } from 'rollup'\nimport { ResolvedConfig } from '..'\nimport { createFilter } from '@rollup/pluginutils'\nimport { combineSourcemaps } from '../utils'\nimport stripBom from 'strip-bom'\nimport stripComments from 'strip-json-comments'\nimport { createRequire } from 'module'\n\nconst debug = createDebugger('vite:esbuild')\n\nexport interface ESBuildOptions extends TransformOptions {\n include?: string | RegExp | string[] | RegExp[]\n exclude?: string | RegExp | string[] | RegExp[]\n jsxInject?: string\n}\n\nexport type ESBuildTransformResult = Omit<TransformResult, 'map'> & {\n map: SourceMap\n}\n\ntype TSConfigJSON = {\n extends?: string\n compilerOptions?: {\n target?: string\n jsxFactory?: string\n jsxFragmentFactory?: string\n useDefineForClassFields?: boolean\n importsNotUsedAsValues?: 'remove' | 'preserve' | 'error'\n }\n [key: string]: any\n}\ntype TSCompilerOptions = NonNullable<TSConfigJSON['compilerOptions']>\n\nexport async function transformWithEsbuild(\n code: string,\n filename: string,\n options?: TransformOptions,\n inMap?: object\n): Promise<ESBuildTransformResult> {\n // if the id ends with a valid ext, use it (e.g. vue blocks)\n // otherwise, cleanup the query before checking the ext\n const ext = path.extname(\n /\\.\\w+$/.test(filename) ? filename : cleanUrl(filename)\n )\n\n let loader = ext.slice(1)\n if (loader === 'cjs' || loader === 'mjs') {\n loader = 'js'\n }\n\n // these fields would affect the compilation result\n // https://esbuild.github.io/content-types/#tsconfig-json\n const meaningfulFields: Array<keyof TSCompilerOptions> = [\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'useDefineForClassFields',\n 'importsNotUsedAsValues'\n ]\n const compilerOptionsForFile: TSCompilerOptions = {}\n if (loader === 'ts' || loader === 'tsx') {\n const loadedTsconfig = await loadTsconfigJsonForFile(filename)\n const loadedCompilerOptions = loadedTsconfig.compilerOptions ?? {}\n\n for (const field of meaningfulFields) {\n if (field in loadedCompilerOptions) {\n // @ts-ignore TypeScript can't tell they are of the same type\n compilerOptionsForFile[field] = loadedCompilerOptions[field]\n }\n }\n\n // align with TypeScript 4.3\n // https://github.com/microsoft/TypeScript/pull/42663\n if (loadedCompilerOptions.target?.toLowerCase() === 'esnext') {\n compilerOptionsForFile.useDefineForClassFields =\n loadedCompilerOptions.useDefineForClassFields ?? true\n }\n }\n\n const resolvedOptions = {\n loader: loader as Loader,\n sourcemap: true,\n // ensure source file name contains full query\n sourcefile: filename,\n tsconfigRaw: { compilerOptions: compilerOptionsForFile },\n ...options\n } as ESBuildOptions\n\n delete resolvedOptions.include\n delete resolvedOptions.exclude\n delete resolvedOptions.jsxInject\n\n try {\n const result = await transform(code, resolvedOptions)\n if (inMap) {\n const nextMap = JSON.parse(result.map)\n nextMap.sourcesContent = []\n return {\n ...result,\n map: combineSourcemaps(filename, [\n nextMap as RawSourceMap,\n inMap as RawSourceMap\n ]) as SourceMap\n }\n } else {\n return {\n ...result,\n map: JSON.parse(result.map)\n }\n }\n } catch (e) {\n debug(`esbuild error with options used: `, resolvedOptions)\n // patch error information\n if (e.errors) {\n e.frame = ''\n e.errors.forEach((m: Message) => {\n e.frame += `\\n` + prettifyMessage(m, code)\n })\n e.loc = e.errors[0].location\n }\n throw e\n }\n}\n\nexport function esbuildPlugin(options: ESBuildOptions = {}): Plugin {\n const filter = createFilter(\n options.include || /\\.(tsx?|jsx)$/,\n options.exclude || /\\.js$/\n )\n\n return {\n name: 'vite:esbuild',\n async transform(code, id) {\n if (filter(id) || filter(cleanUrl(id))) {\n const result = await transformWithEsbuild(code, id, options)\n if (result.warnings.length) {\n result.warnings.forEach((m) => {\n this.warn(prettifyMessage(m, code))\n })\n }\n if (options.jsxInject && /\\.(?:j|t)sx\\b/.test(id)) {\n result.code = options.jsxInject + ';' + result.code\n }\n return {\n code: result.code,\n map: result.map\n }\n }\n }\n }\n}\n\nexport const buildEsbuildPlugin = (config: ResolvedConfig): Plugin => {\n return {\n name: 'vite:esbuild-transpile',\n async renderChunk(code, chunk, opts) {\n // @ts-ignore injected by @vitejs/plugin-legacy\n if (opts.__vite_skip_esbuild__) {\n return null\n }\n\n const target = config.build.target\n const minify = config.build.minify === 'esbuild'\n if ((!target || target === 'esnext') && !minify) {\n return null\n }\n return transformWithEsbuild(code, chunk.fileName, {\n target: target || undefined,\n minify\n })\n }\n }\n}\n\nfunction prettifyMessage(m: Message, code: string): string {\n let res = chalk.yellow(m.text)\n if (m.location) {\n const lines = code.split(/\\r?\\n/g)\n const line = Number(m.location.line)\n const column = Number(m.location.column)\n const offset =\n lines\n .slice(0, line - 1)\n .map((l) => l.length)\n .reduce((total, l) => total + l + 1, 0) + column\n res += `\\n` + generateCodeFrame(code, offset, offset + 1)\n }\n return res + `\\n`\n}\n\n// modified from <https://github.com/TypeStrong/tsconfig/blob/v7.0.0/src/tsconfig.ts#L75-L95>\n\n/**\n * Copyright (c) 2015 TypeStrong\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nasync function findTSConfig(dir: string): Promise<string | void> {\n const configFile = path.resolve(dir, 'tsconfig.json')\n\n const stats = await stat(configFile)\n if (isFile(stats)) {\n return configFile\n }\n\n const parentDir = path.dirname(dir)\n\n if (dir === parentDir) {\n return\n }\n\n return findTSConfig(parentDir)\n}\n\n/**\n * Check if a file exists.\n */\nfunction stat(filename: string): Promise<fs.Stats | void> {\n return new Promise((resolve, reject) => {\n fs.stat(filename, (err, stats) => {\n return err ? resolve() : resolve(stats)\n })\n })\n}\n\n/**\n * Check filesystem stat is a directory.\n */\nfunction isFile(stats: fs.Stats | void) {\n return stats ? stats.isFile() || stats.isFIFO() : false\n}\n\n// from <https://github.com/TypeStrong/tsconfig/pull/31>\n// by @dominikg\n\n/**\n * replace dangling commas from pseudo-json string with single space\n *\n * limitations:\n * - pseudo-json must not contain comments, use strip-json-comments before\n * - only a single dangling comma before } or ] is removed\n * stripDanglingComma('[1,2,]') === '[1,2 ]\n * stripDanglingComma('[1,2,,]') === '[1,2, ]\n *\n * implementation heavily inspired by strip-json-comments\n */\nfunction stripDanglingComma(jsonString: string) {\n /**\n * Check if char at qoutePosition is escaped by an odd number of backslashes preceding it\n */\n function isEscaped(jsonString: string, quotePosition: number) {\n let index = quotePosition - 1\n let backslashCount = 0\n\n while (jsonString[index] === '\\\\') {\n index -= 1\n backslashCount += 1\n }\n\n return backslashCount % 2 === 1\n }\n\n let insideString = false\n let offset = 0\n let result = ''\n let danglingCommaPos = null\n for (let i = 0; i < jsonString.length; i++) {\n const currentCharacter = jsonString[i]\n\n if (currentCharacter === '\"') {\n const escaped = isEscaped(jsonString, i)\n if (!escaped) {\n insideString = !insideString\n }\n }\n\n if (insideString) {\n danglingCommaPos = null\n continue\n }\n if (currentCharacter === ',') {\n danglingCommaPos = i\n continue\n }\n if (danglingCommaPos) {\n if (currentCharacter === '}' || currentCharacter === ']') {\n result += jsonString.slice(offset, danglingCommaPos) + ' '\n offset = danglingCommaPos + 1\n danglingCommaPos = null\n } else if (!currentCharacter.match(/\\s/)) {\n danglingCommaPos = null\n }\n }\n }\n\n return result + jsonString.substring(offset)\n}\n\nasync function readTSConfig(configPath: string): Promise<TSConfigJSON> {\n const content: string = await new Promise((resolve, reject) => {\n fs.readFile(configPath, 'utf-8', (err, data) => {\n if (err) {\n reject(err)\n return\n }\n resolve(stripComments(stripBom(data)))\n })\n })\n\n // tsconfig.json can be empty\n if (/^\\s*$/.test(content)) {\n return {}\n }\n\n return JSON.parse(stripDanglingComma(content)) as TSConfigJSON\n}\n\nconst tsconfigCache = new Map<string, TSConfigJSON>()\nasync function loadTsconfigJsonForFile(\n filename: string\n): Promise<TSConfigJSON> {\n const directory = path.dirname(filename)\n\n const cached = tsconfigCache.get(directory)\n if (cached) {\n return cached\n }\n\n let configPath = await findTSConfig(directory)\n let tsconfig: TSConfigJSON = {}\n\n if (configPath) {\n const visited = new Set()\n visited.add(configPath)\n\n tsconfig = await readTSConfig(configPath)\n while (tsconfig.extends) {\n const configRequire = createRequire(configPath)\n\n const extendsPath = configRequire.resolve(tsconfig.extends)\n const extendedConfig = await readTSConfig(extendsPath)\n\n if (visited.has(extendsPath)) {\n throw new Error(\n `Circular dependency detected in the \"extends\" field of ${configPath}`\n )\n }\n visited.add(extendsPath)\n\n tsconfig = {\n extends: extendedConfig.extends,\n compilerOptions: {\n ...extendedConfig.compilerOptions,\n ...tsconfig.compilerOptions\n }\n }\n configPath = extendsPath\n }\n }\n\n tsconfigCache.set(directory, tsconfig)\n return tsconfig\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Worker = void 0;\nconst os_1 = __importDefault(require(\"os\"));\nconst worker_threads_1 = require(\"worker_threads\");\nclass Worker {\n constructor(fn, options = {}) {\n this.code = genWorkerCode(fn);\n this.max = options.max || Math.max(1, os_1.default.cpus().length - 1);\n this.pool = [];\n this.idlePool = [];\n this.queue = [];\n }\n async run(...args) {\n const worker = await this._getAvailableWorker();\n return new Promise((resolve, reject) => {\n worker.currentResolve = resolve;\n worker.currentReject = reject;\n worker.postMessage(args);\n });\n }\n stop() {\n this.pool.forEach((w) => w.unref());\n this.queue.forEach(([_, reject]) => reject(new Error('Main worker pool stopped before a worker was available.')));\n this.pool = [];\n this.idlePool = [];\n this.queue = [];\n }\n async _getAvailableWorker() {\n // has idle one?\n if (this.idlePool.length) {\n return this.idlePool.shift();\n }\n // can spawn more?\n if (this.pool.length < this.max) {\n const worker = new worker_threads_1.Worker(this.code, { eval: true });\n worker.on('message', (res) => {\n worker.currentResolve && worker.currentResolve(res);\n worker.currentResolve = null;\n this._assignDoneWorker(worker);\n });\n worker.on('error', (err) => {\n worker.currentReject && worker.currentReject(err);\n worker.currentReject = null;\n });\n worker.on('exit', (code) => {\n const i = this.pool.indexOf(worker);\n if (i > -1)\n this.pool.splice(i, 1);\n if (code !== 0 && worker.currentReject) {\n worker.currentReject(new Error(`Wroker stopped with non-0 exit code ${code}`));\n worker.currentReject = null;\n }\n });\n this.pool.push(worker);\n return worker;\n }\n // no one is available, we have to wait\n let resolve;\n let reject;\n const onWorkerAvailablePromise = new Promise((r, rj) => {\n resolve = r;\n reject = rj;\n });\n this.queue.push([resolve, reject]);\n return onWorkerAvailablePromise;\n }\n _assignDoneWorker(worker) {\n // someone's waiting already?\n if (this.queue.length) {\n const [resolve] = this.queue.shift();\n resolve(worker);\n return;\n }\n // take a rest.\n this.idlePool.push(worker);\n }\n}\nexports.Worker = Worker;\nfunction genWorkerCode(fn) {\n return `\nconst doWork = ${fn.toString()}\n\nconst { parentPort } = require('worker_threads')\n\nparentPort.on('message', async (args) => {\n const res = await doWork(...args)\n parentPort.postMessage(res)\n})\n `;\n}\n","import { Plugin } from '../plugin'\nimport { Worker } from 'okie'\nimport { Terser } from 'types/terser'\n\nexport function terserPlugin(options: Terser.MinifyOptions): Plugin {\n const worker = new Worker(\n (basedir: string, code: string, options: Terser.MinifyOptions) => {\n // when vite is linked, the worker thread won't share the same resolve\n // root with vite itself, so we have to pass in the basedir and resolve\n // terser first.\n // eslint-disable-next-line node/no-restricted-require\n const terserPath = require.resolve('terser', {\n paths: [basedir]\n })\n return require(terserPath).minify(code, options) as Terser.MinifyOutput\n }\n )\n\n return {\n name: 'vite:terser',\n\n async renderChunk(code, _chunk, outputOptions) {\n const res = await worker.run(__dirname, code, {\n safari10: true,\n ...options,\n sourceMap: !!outputOptions.sourcemap,\n module: outputOptions.format.startsWith('es'),\n toplevel: outputOptions.format === 'cjs'\n })\n return {\n code: res.code!,\n map: res.map as any\n }\n },\n\n closeBundle() {\n worker.stop()\n }\n }\n}\n","import path from 'path'\nimport { OutputChunk } from 'rollup'\nimport { ResolvedConfig } from '..'\nimport { Plugin } from '../plugin'\nimport { chunkToEmittedCssFileMap } from './css'\nimport { chunkToEmittedAssetsMap } from './asset'\nimport { normalizePath } from '../utils'\n\nexport type Manifest = Record<string, ManifestChunk>\n\nexport interface ManifestChunk {\n src?: string\n file: string\n css?: string[]\n assets?: string[]\n isEntry?: boolean\n isDynamicEntry?: boolean\n imports?: string[]\n dynamicImports?: string[]\n}\n\nexport function manifestPlugin(config: ResolvedConfig): Plugin {\n const manifest: Manifest = {}\n\n let outputCount: number\n\n return {\n name: 'vite:manifest',\n\n buildStart() {\n outputCount = 0\n },\n\n generateBundle({ format }, bundle) {\n function getChunkName(chunk: OutputChunk) {\n if (chunk.facadeModuleId) {\n let name = normalizePath(\n path.relative(config.root, chunk.facadeModuleId)\n )\n if (format === 'system' && !chunk.name.includes('-legacy')) {\n const ext = path.extname(name)\n name = name.slice(0, -ext.length) + `-legacy` + ext\n }\n return name\n } else {\n return `_` + path.basename(chunk.fileName)\n }\n }\n\n function getInternalImports(imports: string[]): string[] {\n const filteredImports: string[] = []\n\n for (const file of imports) {\n if (bundle[file] === undefined) {\n continue\n }\n\n filteredImports.push(getChunkName(bundle[file] as OutputChunk))\n }\n\n return filteredImports\n }\n\n function createChunk(chunk: OutputChunk): ManifestChunk {\n const manifestChunk: ManifestChunk = {\n file: chunk.fileName\n }\n\n if (chunk.facadeModuleId) {\n manifestChunk.src = getChunkName(chunk)\n }\n if (chunk.isEntry) {\n manifestChunk.isEntry = true\n }\n if (chunk.isDynamicEntry) {\n manifestChunk.isDynamicEntry = true\n }\n\n if (chunk.imports.length) {\n const internalImports = getInternalImports(chunk.imports)\n if (internalImports.length > 0) {\n manifestChunk.imports = internalImports\n }\n }\n\n if (chunk.dynamicImports.length) {\n const internalImports = getInternalImports(chunk.dynamicImports)\n if (internalImports.length > 0) {\n manifestChunk.dynamicImports = internalImports\n }\n }\n\n const cssFiles = chunkToEmittedCssFileMap.get(chunk)\n if (cssFiles) {\n manifestChunk.css = [...cssFiles]\n }\n\n const assets = chunkToEmittedAssetsMap.get(chunk)\n if (assets) [(manifestChunk.assets = [...assets])]\n\n return manifestChunk\n }\n\n for (const file in bundle) {\n const chunk = bundle[file]\n if (chunk.type === 'chunk') {\n manifest[getChunkName(chunk)] = createChunk(chunk)\n }\n }\n\n outputCount++\n const output = config.build.rollupOptions?.output\n const outputLength = Array.isArray(output) ? output.length : 1\n if (outputCount >= outputLength) {\n this.emitFile({\n fileName: `manifest.json`,\n type: 'asset',\n source: JSON.stringify(manifest, null, 2)\n })\n }\n }\n }\n}\n","import { extname, sep, resolve, posix } from 'path';\nimport pm from 'picomatch';\n\nconst addExtension = function addExtension(filename, ext = '.js') {\n let result = `${filename}`;\n if (!extname(filename))\n result += ext;\n return result;\n};\n\nfunction walk(ast, { enter, leave }) {\n\treturn visit(ast, null, enter, leave);\n}\n\nlet should_skip = false;\nlet should_remove = false;\nlet replacement = null;\nconst context = {\n\tskip: () => should_skip = true,\n\tremove: () => should_remove = true,\n\treplace: (node) => replacement = node\n};\n\nfunction replace(parent, prop, index, node) {\n\tif (parent) {\n\t\tif (index !== null) {\n\t\t\tparent[prop][index] = node;\n\t\t} else {\n\t\t\tparent[prop] = node;\n\t\t}\n\t}\n}\n\nfunction remove(parent, prop, index) {\n\tif (parent) {\n\t\tif (index !== null) {\n\t\t\tparent[prop].splice(index, 1);\n\t\t} else {\n\t\t\tdelete parent[prop];\n\t\t}\n\t}\n}\n\nfunction visit(\n\tnode,\n\tparent,\n\tenter,\n\tleave,\n\tprop,\n\tindex\n) {\n\tif (node) {\n\t\tif (enter) {\n\t\t\tconst _should_skip = should_skip;\n\t\t\tconst _should_remove = should_remove;\n\t\t\tconst _replacement = replacement;\n\t\t\tshould_skip = false;\n\t\t\tshould_remove = false;\n\t\t\treplacement = null;\n\n\t\t\tenter.call(context, node, parent, prop, index);\n\n\t\t\tif (replacement) {\n\t\t\t\tnode = replacement;\n\t\t\t\treplace(parent, prop, index, node);\n\t\t\t}\n\n\t\t\tif (should_remove) {\n\t\t\t\tremove(parent, prop, index);\n\t\t\t}\n\n\t\t\tconst skipped = should_skip;\n\t\t\tconst removed = should_remove;\n\n\t\t\tshould_skip = _should_skip;\n\t\t\tshould_remove = _should_remove;\n\t\t\treplacement = _replacement;\n\n\t\t\tif (skipped) return node;\n\t\t\tif (removed) return null;\n\t\t}\n\n\t\tfor (const key in node) {\n\t\t\tconst value = (node )[key];\n\n\t\t\tif (typeof value !== 'object') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\telse if (Array.isArray(value)) {\n\t\t\t\tfor (let j = 0, k = 0; j < value.length; j += 1, k += 1) {\n\t\t\t\t\tif (value[j] !== null && typeof value[j].type === 'string') {\n\t\t\t\t\t\tif (!visit(value[j], node, enter, leave, key, k)) {\n\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\tj--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telse if (value !== null && typeof value.type === 'string') {\n\t\t\t\tvisit(value, node, enter, leave, key, null);\n\t\t\t}\n\t\t}\n\n\t\tif (leave) {\n\t\t\tconst _replacement = replacement;\n\t\t\tconst _should_remove = should_remove;\n\t\t\treplacement = null;\n\t\t\tshould_remove = false;\n\n\t\t\tleave.call(context, node, parent, prop, index);\n\n\t\t\tif (replacement) {\n\t\t\t\tnode = replacement;\n\t\t\t\treplace(parent, prop, index, node);\n\t\t\t}\n\n\t\t\tif (should_remove) {\n\t\t\t\tremove(parent, prop, index);\n\t\t\t}\n\n\t\t\tconst removed = should_remove;\n\n\t\t\treplacement = _replacement;\n\t\t\tshould_remove = _should_remove;\n\n\t\t\tif (removed) return null;\n\t\t}\n\t}\n\n\treturn node;\n}\n\nconst extractors = {\n ArrayPattern(names, param) {\n for (const element of param.elements) {\n if (element)\n extractors[element.type](names, element);\n }\n },\n AssignmentPattern(names, param) {\n extractors[param.left.type](names, param.left);\n },\n Identifier(names, param) {\n names.push(param.name);\n },\n MemberExpression() { },\n ObjectPattern(names, param) {\n for (const prop of param.properties) {\n // @ts-ignore Typescript reports that this is not a valid type\n if (prop.type === 'RestElement') {\n extractors.RestElement(names, prop);\n }\n else {\n extractors[prop.value.type](names, prop.value);\n }\n }\n },\n RestElement(names, param) {\n extractors[param.argument.type](names, param.argument);\n }\n};\nconst extractAssignedNames = function extractAssignedNames(param) {\n const names = [];\n extractors[param.type](names, param);\n return names;\n};\n\nconst blockDeclarations = {\n const: true,\n let: true\n};\nclass Scope {\n constructor(options = {}) {\n this.parent = options.parent;\n this.isBlockScope = !!options.block;\n this.declarations = Object.create(null);\n if (options.params) {\n options.params.forEach((param) => {\n extractAssignedNames(param).forEach((name) => {\n this.declarations[name] = true;\n });\n });\n }\n }\n addDeclaration(node, isBlockDeclaration, isVar) {\n if (!isBlockDeclaration && this.isBlockScope) {\n // it's a `var` or function node, and this\n // is a block scope, so we need to go up\n this.parent.addDeclaration(node, isBlockDeclaration, isVar);\n }\n else if (node.id) {\n extractAssignedNames(node.id).forEach((name) => {\n this.declarations[name] = true;\n });\n }\n }\n contains(name) {\n return this.declarations[name] || (this.parent ? this.parent.contains(name) : false);\n }\n}\nconst attachScopes = function attachScopes(ast, propertyName = 'scope') {\n let scope = new Scope();\n walk(ast, {\n enter(n, parent) {\n const node = n;\n // function foo () {...}\n // class Foo {...}\n if (/(Function|Class)Declaration/.test(node.type)) {\n scope.addDeclaration(node, false, false);\n }\n // var foo = 1\n if (node.type === 'VariableDeclaration') {\n const { kind } = node;\n const isBlockDeclaration = blockDeclarations[kind];\n // don't add const/let declarations in the body of a for loop #113\n const parentType = parent ? parent.type : '';\n if (!(isBlockDeclaration && /ForOfStatement/.test(parentType))) {\n node.declarations.forEach((declaration) => {\n scope.addDeclaration(declaration, isBlockDeclaration, true);\n });\n }\n }\n let newScope;\n // create new function scope\n if (/Function/.test(node.type)) {\n const func = node;\n newScope = new Scope({\n parent: scope,\n block: false,\n params: func.params\n });\n // named function expressions - the name is considered\n // part of the function's scope\n if (func.type === 'FunctionExpression' && func.id) {\n newScope.addDeclaration(func, false, false);\n }\n }\n // create new block scope\n if (node.type === 'BlockStatement' && !/Function/.test(parent.type)) {\n newScope = new Scope({\n parent: scope,\n block: true\n });\n }\n // catch clause has its own block scope\n if (node.type === 'CatchClause') {\n newScope = new Scope({\n parent: scope,\n params: node.param ? [node.param] : [],\n block: true\n });\n }\n if (newScope) {\n Object.defineProperty(node, propertyName, {\n value: newScope,\n configurable: true\n });\n scope = newScope;\n }\n },\n leave(n) {\n const node = n;\n if (node[propertyName])\n scope = scope.parent;\n }\n });\n return scope;\n};\n\n// Helper since Typescript can't detect readonly arrays with Array.isArray\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction ensureArray(thing) {\n if (isArray(thing))\n return thing;\n if (thing == null)\n return [];\n return [thing];\n}\n\nfunction getMatcherString(id, resolutionBase) {\n if (resolutionBase === false) {\n return id;\n }\n // resolve('') is valid and will default to process.cwd()\n const basePath = resolve(resolutionBase || '')\n .split(sep)\n .join('/')\n // escape all possible (posix + win) path characters that might interfere with regex\n .replace(/[-^$*+?.()|[\\]{}]/g, '\\\\$&');\n // Note that we use posix.join because:\n // 1. the basePath has been normalized to use /\n // 2. the incoming glob (id) matcher, also uses /\n // otherwise Node will force backslash (\\) on windows\n return posix.join(basePath, id);\n}\nconst createFilter = function createFilter(include, exclude, options) {\n const resolutionBase = options && options.resolve;\n const getMatcher = (id) => id instanceof RegExp\n ? id\n : {\n test: (what) => {\n // this refactor is a tad overly verbose but makes for easy debugging\n const pattern = getMatcherString(id, resolutionBase);\n const fn = pm(pattern, { dot: true });\n const result = fn(what);\n return result;\n }\n };\n const includeMatchers = ensureArray(include).map(getMatcher);\n const excludeMatchers = ensureArray(exclude).map(getMatcher);\n return function result(id) {\n if (typeof id !== 'string')\n return false;\n if (/\\0/.test(id))\n return false;\n const pathId = id.split(sep).join('/');\n for (let i = 0; i < excludeMatchers.length; ++i) {\n const matcher = excludeMatchers[i];\n if (matcher.test(pathId))\n return false;\n }\n for (let i = 0; i < includeMatchers.length; ++i) {\n const matcher = includeMatchers[i];\n if (matcher.test(pathId))\n return true;\n }\n return !includeMatchers.length;\n };\n};\n\nconst reservedWords = 'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public';\nconst builtins = 'arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl';\nconst forbiddenIdentifiers = new Set(`${reservedWords} ${builtins}`.split(' '));\nforbiddenIdentifiers.add('');\nconst makeLegalIdentifier = function makeLegalIdentifier(str) {\n let identifier = str\n .replace(/-(\\w)/g, (_, letter) => letter.toUpperCase())\n .replace(/[^$_a-zA-Z0-9]/g, '_');\n if (/\\d/.test(identifier[0]) || forbiddenIdentifiers.has(identifier)) {\n identifier = `_${identifier}`;\n }\n return identifier || '_';\n};\n\nfunction stringify(obj) {\n return (JSON.stringify(obj) || 'undefined').replace(/[\\u2028\\u2029]/g, (char) => `\\\\u${`000${char.charCodeAt(0).toString(16)}`.slice(-4)}`);\n}\nfunction serializeArray(arr, indent, baseIndent) {\n let output = '[';\n const separator = indent ? `\\n${baseIndent}${indent}` : '';\n for (let i = 0; i < arr.length; i++) {\n const key = arr[i];\n output += `${i > 0 ? ',' : ''}${separator}${serialize(key, indent, baseIndent + indent)}`;\n }\n return `${output}${indent ? `\\n${baseIndent}` : ''}]`;\n}\nfunction serializeObject(obj, indent, baseIndent) {\n let output = '{';\n const separator = indent ? `\\n${baseIndent}${indent}` : '';\n const entries = Object.entries(obj);\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i];\n const stringKey = makeLegalIdentifier(key) === key ? key : stringify(key);\n output += `${i > 0 ? ',' : ''}${separator}${stringKey}:${indent ? ' ' : ''}${serialize(value, indent, baseIndent + indent)}`;\n }\n return `${output}${indent ? `\\n${baseIndent}` : ''}}`;\n}\nfunction serialize(obj, indent, baseIndent) {\n if (obj === Infinity)\n return 'Infinity';\n if (obj === -Infinity)\n return '-Infinity';\n if (obj === 0 && 1 / obj === -Infinity)\n return '-0';\n if (obj instanceof Date)\n return `new Date(${obj.getTime()})`;\n if (obj instanceof RegExp)\n return obj.toString();\n if (obj !== obj)\n return 'NaN'; // eslint-disable-line no-self-compare\n if (Array.isArray(obj))\n return serializeArray(obj, indent, baseIndent);\n if (obj === null)\n return 'null';\n if (typeof obj === 'object')\n return serializeObject(obj, indent, baseIndent);\n return stringify(obj);\n}\nconst dataToEsm = function dataToEsm(data, options = {}) {\n const t = options.compact ? '' : 'indent' in options ? options.indent : '\\t';\n const _ = options.compact ? '' : ' ';\n const n = options.compact ? '' : '\\n';\n const declarationType = options.preferConst ? 'const' : 'var';\n if (options.namedExports === false ||\n typeof data !== 'object' ||\n Array.isArray(data) ||\n data instanceof Date ||\n data instanceof RegExp ||\n data === null) {\n const code = serialize(data, options.compact ? null : t, '');\n const magic = _ || (/^[{[\\-\\/]/.test(code) ? '' : ' '); // eslint-disable-line no-useless-escape\n return `export default${magic}${code};`;\n }\n let namedExportCode = '';\n const defaultExportRows = [];\n for (const [key, value] of Object.entries(data)) {\n if (key === makeLegalIdentifier(key)) {\n if (options.objectShorthand)\n defaultExportRows.push(key);\n else\n defaultExportRows.push(`${key}:${_}${key}`);\n namedExportCode += `export ${declarationType} ${key}${_}=${_}${serialize(value, options.compact ? null : t, '')};${n}`;\n }\n else {\n defaultExportRows.push(`${stringify(key)}:${_}${serialize(value, options.compact ? null : t, '')}`);\n }\n }\n return `${namedExportCode}export default${_}{${n}${t}${defaultExportRows.join(`,${n}${t}`)}${n}};${n}`;\n};\n\n// TODO: remove this in next major\nvar index = {\n addExtension,\n attachScopes,\n createFilter,\n dataToEsm,\n extractAssignedNames,\n makeLegalIdentifier\n};\n\nexport default index;\nexport { addExtension, attachScopes, createFilter, dataToEsm, extractAssignedNames, makeLegalIdentifier };\n","var path = require('path');\n\nmodule.exports = function (basedir, relfiles) {\n if (relfiles) {\n var files = relfiles.map(function (r) {\n return path.resolve(basedir, r);\n });\n }\n else {\n var files = basedir;\n }\n \n var res = files.slice(1).reduce(function (ps, file) {\n if (!file.match(/^([A-Za-z]:)?\\/|\\\\/)) {\n throw new Error('relative path without a basedir');\n }\n \n var xs = file.split(/\\/+|\\\\+/);\n for (\n var i = 0;\n ps[i] === xs[i] && i < Math.min(ps.length, xs.length);\n i++\n );\n return ps.slice(0, i);\n }, files[0].split(/\\/+|\\\\+/));\n \n // Windows correctly handles paths with forward-slashes\n return res.length > 1 ? res.join('/') : '/'\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar pathModule = require('path');\nvar isWindows = process.platform === 'win32';\nvar fs = require('fs');\n\n// JavaScript implementation of realpath, ported from node pre-v6\n\nvar DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);\n\nfunction rethrow() {\n // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and\n // is fairly slow to generate.\n var callback;\n if (DEBUG) {\n var backtrace = new Error;\n callback = debugCallback;\n } else\n callback = missingCallback;\n\n return callback;\n\n function debugCallback(err) {\n if (err) {\n backtrace.message = err.message;\n err = backtrace;\n missingCallback(err);\n }\n }\n\n function missingCallback(err) {\n if (err) {\n if (process.throwDeprecation)\n throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs\n else if (!process.noDeprecation) {\n var msg = 'fs: missing callback ' + (err.stack || err.message);\n if (process.traceDeprecation)\n console.trace(msg);\n else\n console.error(msg);\n }\n }\n }\n}\n\nfunction maybeCallback(cb) {\n return typeof cb === 'function' ? cb : rethrow();\n}\n\nvar normalize = pathModule.normalize;\n\n// Regexp that finds the next partion of a (partial) path\n// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']\nif (isWindows) {\n var nextPartRe = /(.*?)(?:[\\/\\\\]+|$)/g;\n} else {\n var nextPartRe = /(.*?)(?:[\\/]+|$)/g;\n}\n\n// Regex to find the device root, including trailing slash. E.g. 'c:\\\\'.\nif (isWindows) {\n var splitRootRe = /^(?:[a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/][^\\\\\\/]+)?[\\\\\\/]*/;\n} else {\n var splitRootRe = /^[\\/]*/;\n}\n\nexports.realpathSync = function realpathSync(p, cache) {\n // make p is absolute\n p = pathModule.resolve(p);\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {\n return cache[p];\n }\n\n var original = p,\n seenLinks = {},\n knownHard = {};\n\n // current character position in p\n var pos;\n // the partial path so far, including a trailing slash if any\n var current;\n // the partial path without a trailing slash (except when pointing at a root)\n var base;\n // the partial path scanned in the previous round, with slash\n var previous;\n\n start();\n\n function start() {\n // Skip over roots\n var m = splitRootRe.exec(p);\n pos = m[0].length;\n current = m[0];\n base = m[0];\n previous = '';\n\n // On windows, check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n fs.lstatSync(base);\n knownHard[base] = true;\n }\n }\n\n // walk down the path, swapping out linked pathparts for their real\n // values\n // NB: p.length changes.\n while (pos < p.length) {\n // find the next part\n nextPartRe.lastIndex = pos;\n var result = nextPartRe.exec(p);\n previous = current;\n current += result[0];\n base = previous + result[1];\n pos = nextPartRe.lastIndex;\n\n // continue if not a symlink\n if (knownHard[base] || (cache && cache[base] === base)) {\n continue;\n }\n\n var resolvedLink;\n if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {\n // some known symbolic link. no need to stat again.\n resolvedLink = cache[base];\n } else {\n var stat = fs.lstatSync(base);\n if (!stat.isSymbolicLink()) {\n knownHard[base] = true;\n if (cache) cache[base] = base;\n continue;\n }\n\n // read the link if it wasn't read before\n // dev/ino always return 0 on windows, so skip the check.\n var linkTarget = null;\n if (!isWindows) {\n var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);\n if (seenLinks.hasOwnProperty(id)) {\n linkTarget = seenLinks[id];\n }\n }\n if (linkTarget === null) {\n fs.statSync(base);\n linkTarget = fs.readlinkSync(base);\n }\n resolvedLink = pathModule.resolve(previous, linkTarget);\n // track this, if given a cache.\n if (cache) cache[base] = resolvedLink;\n if (!isWindows) seenLinks[id] = linkTarget;\n }\n\n // resolve the link, then start over\n p = pathModule.resolve(resolvedLink, p.slice(pos));\n start();\n }\n\n if (cache) cache[original] = p;\n\n return p;\n};\n\n\nexports.realpath = function realpath(p, cache, cb) {\n if (typeof cb !== 'function') {\n cb = maybeCallback(cache);\n cache = null;\n }\n\n // make p is absolute\n p = pathModule.resolve(p);\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {\n return process.nextTick(cb.bind(null, null, cache[p]));\n }\n\n var original = p,\n seenLinks = {},\n knownHard = {};\n\n // current character position in p\n var pos;\n // the partial path so far, including a trailing slash if any\n var current;\n // the partial path without a trailing slash (except when pointing at a root)\n var base;\n // the partial path scanned in the previous round, with slash\n var previous;\n\n start();\n\n function start() {\n // Skip over roots\n var m = splitRootRe.exec(p);\n pos = m[0].length;\n current = m[0];\n base = m[0];\n previous = '';\n\n // On windows, check that the root exists. On unix there is no need.\n if (isWindows && !knownHard[base]) {\n fs.lstat(base, function(err) {\n if (err) return cb(err);\n knownHard[base] = true;\n LOOP();\n });\n } else {\n process.nextTick(LOOP);\n }\n }\n\n // walk down the path, swapping out linked pathparts for their real\n // values\n function LOOP() {\n // stop if scanned past end of path\n if (pos >= p.length) {\n if (cache) cache[original] = p;\n return cb(null, p);\n }\n\n // find the next part\n nextPartRe.lastIndex = pos;\n var result = nextPartRe.exec(p);\n previous = current;\n current += result[0];\n base = previous + result[1];\n pos = nextPartRe.lastIndex;\n\n // continue if not a symlink\n if (knownHard[base] || (cache && cache[base] === base)) {\n return process.nextTick(LOOP);\n }\n\n if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {\n // known symbolic link. no need to stat again.\n return gotResolvedLink(cache[base]);\n }\n\n return fs.lstat(base, gotStat);\n }\n\n function gotStat(err, stat) {\n if (err) return cb(err);\n\n // if not a symlink, skip to the next path part\n if (!stat.isSymbolicLink()) {\n knownHard[base] = true;\n if (cache) cache[base] = base;\n return process.nextTick(LOOP);\n }\n\n // stat & read the link if not read before\n // call gotTarget as soon as the link target is known\n // dev/ino always return 0 on windows, so skip the check.\n if (!isWindows) {\n var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);\n if (seenLinks.hasOwnProperty(id)) {\n return gotTarget(null, seenLinks[id], base);\n }\n }\n fs.stat(base, function(err) {\n if (err) return cb(err);\n\n fs.readlink(base, function(err, target) {\n if (!isWindows) seenLinks[id] = target;\n gotTarget(err, target);\n });\n });\n }\n\n function gotTarget(err, target, base) {\n if (err) return cb(err);\n\n var resolvedLink = pathModule.resolve(previous, target);\n if (cache) cache[base] = resolvedLink;\n gotResolvedLink(resolvedLink);\n }\n\n function gotResolvedLink(resolvedLink) {\n // resolve the link, then start over\n p = pathModule.resolve(resolvedLink, p.slice(pos));\n start();\n }\n};\n","module.exports = realpath\nrealpath.realpath = realpath\nrealpath.sync = realpathSync\nrealpath.realpathSync = realpathSync\nrealpath.monkeypatch = monkeypatch\nrealpath.unmonkeypatch = unmonkeypatch\n\nvar fs = require('fs')\nvar origRealpath = fs.realpath\nvar origRealpathSync = fs.realpathSync\n\nvar version = process.version\nvar ok = /^v[0-5]\\./.test(version)\nvar old = require('./old.js')\n\nfunction newError (er) {\n return er && er.syscall === 'realpath' && (\n er.code === 'ELOOP' ||\n er.code === 'ENOMEM' ||\n er.code === 'ENAMETOOLONG'\n )\n}\n\nfunction realpath (p, cache, cb) {\n if (ok) {\n return origRealpath(p, cache, cb)\n }\n\n if (typeof cache === 'function') {\n cb = cache\n cache = null\n }\n origRealpath(p, cache, function (er, result) {\n if (newError(er)) {\n old.realpath(p, cache, cb)\n } else {\n cb(er, result)\n }\n })\n}\n\nfunction realpathSync (p, cache) {\n if (ok) {\n return origRealpathSync(p, cache)\n }\n\n try {\n return origRealpathSync(p, cache)\n } catch (er) {\n if (newError(er)) {\n return old.realpathSync(p, cache)\n } else {\n throw er\n }\n }\n}\n\nfunction monkeypatch () {\n fs.realpath = realpath\n fs.realpathSync = realpathSync\n}\n\nfunction unmonkeypatch () {\n fs.realpath = origRealpath\n fs.realpathSync = origRealpathSync\n}\n","module.exports = function (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n var x = fn(xs[i], i);\n if (isArray(x)) res.push.apply(res, x);\n else res.push(x);\n }\n return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n","module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = { sep: '/' }\ntry {\n path = require('path')\n} catch (er) {}\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true\n return set\n }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n options = options || {}\n return function (p, i, list) {\n return minimatch(p, pattern, options)\n }\n}\n\nfunction ext (a, b) {\n a = a || {}\n b = b || {}\n var t = {}\n Object.keys(b).forEach(function (k) {\n t[k] = b[k]\n })\n Object.keys(a).forEach(function (k) {\n t[k] = a[k]\n })\n return t\n}\n\nminimatch.defaults = function (def) {\n if (!def || !Object.keys(def).length) return minimatch\n\n var orig = minimatch\n\n var m = function minimatch (p, pattern, options) {\n return orig.minimatch(p, pattern, ext(def, options))\n }\n\n m.Minimatch = function Minimatch (pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options))\n }\n\n return m\n}\n\nMinimatch.defaults = function (def) {\n if (!def || !Object.keys(def).length) return Minimatch\n return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n if (typeof pattern !== 'string') {\n throw new TypeError('glob pattern string required')\n }\n\n if (!options) options = {}\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n // \"\" only matches \"\"\n if (pattern.trim() === '') return p === ''\n\n return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options)\n }\n\n if (typeof pattern !== 'string') {\n throw new TypeError('glob pattern string required')\n }\n\n if (!options) options = {}\n pattern = pattern.trim()\n\n // windows support: need to use /, not \\\n if (path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/')\n }\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n\n // make the set of regexps etc.\n this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n // don't do it more than once.\n if (this._made) return\n\n var pattern = this.pattern\n var options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n var set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = console.error\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit)\n })\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this)\n }, this)\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(function (s) {\n return s.indexOf(false) === -1\n })\n\n this.debug(this.pattern, set)\n\n this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n var pattern = this.pattern\n var negate = false\n var options = this.options\n var negateOffset = 0\n\n if (options.nonegate) return\n\n for (var i = 0, l = pattern.length\n ; i < l && pattern.charAt(i) === '!'\n ; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset)\n this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options\n } else {\n options = {}\n }\n }\n\n pattern = typeof pattern === 'undefined'\n ? this.pattern : pattern\n\n if (typeof pattern === 'undefined') {\n throw new TypeError('undefined pattern')\n }\n\n if (options.nobrace ||\n !pattern.match(/\\{.*\\}/)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n if (pattern.length > 1024 * 64) {\n throw new TypeError('pattern is too long')\n }\n\n var options = this.options\n\n // shortcuts\n if (!options.noglobstar && pattern === '**') return GLOBSTAR\n if (pattern === '') return ''\n\n var re = ''\n var hasMagic = !!options.nocase\n var escaping = false\n // ? => one single character\n var patternListStack = []\n var negativeLists = []\n var stateChar\n var inClass = false\n var reClassStart = -1\n var classStart = -1\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n : '(?!\\\\.)'\n var self = this\n\n function clearStateChar () {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n self.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (var i = 0, len = pattern.length, c\n ; (i < len) && (c = pattern.charAt(i))\n ; i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n switch (c) {\n case '/':\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false\n\n case '\\\\':\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n self.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(':\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n })\n // negation is (?:(?!js)[^/]*)\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)'\n continue\n }\n\n clearStateChar()\n hasMagic = true\n var pl = patternListStack.pop()\n // negation is (?:(?!js)[^/]*)\n // The others are (?:<pattern>)<type>\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(pl)\n }\n pl.reEnd = re.length\n continue\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|'\n escaping = false\n continue\n }\n\n clearStateChar()\n re += '|'\n continue\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n if (inClass) {\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + cs + ']')\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n hasMagic = hasMagic || sp[1]\n inClass = false\n continue\n }\n }\n\n // finish up the class.\n hasMagic = true\n inClass = false\n re += c\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (escaping) {\n // no need\n escaping = false\n } else if (reSpecials[c]\n && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n var t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n var addPatternStart = false\n switch (re.charAt(0)) {\n case '.':\n case '[':\n case '(': addPatternStart = true\n }\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n]\n\n var nlBefore = re.slice(0, nl.reStart)\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n var nlAfter = re.slice(nl.reEnd)\n\n nlLast += nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n var openParensBefore = nlBefore.split('(').length - 1\n var cleanAfter = nlAfter\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n var dollar = ''\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$'\n }\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n re = newRe\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n var flags = options.nocase ? 'i' : ''\n try {\n var regExp = new RegExp('^' + re + '$', flags)\n } catch (er) {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n\n regExp._glob = pattern\n regExp._src = re\n\n return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n var set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n var options = this.options\n\n var twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n var flags = options.nocase ? 'i' : ''\n\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return (p === GLOBSTAR) ? twoStar\n : (typeof p === 'string') ? regExpEscape(p)\n : p._src\n }).join('\\\\\\/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) {\n this.regexp = false\n }\n return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {}\n var mm = new Minimatch(pattern, options)\n list = list.filter(function (f) {\n return mm.match(f)\n })\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\nMinimatch.prototype.match = match\nfunction match (f, partial) {\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n var options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n var filename\n var i\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i]\n var file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n var hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n if (options.nocase) {\n hit = f.toLowerCase() === p.toLowerCase()\n } else {\n hit = f === p\n }\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')\n return emptyFileEnd\n }\n\n // should be unreachable.\n throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","'use strict';\n\nfunction posix(path) {\n\treturn path.charAt(0) === '/';\n}\n\nfunction win32(path) {\n\t// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56\n\tvar splitDeviceRe = /^([a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?([\\\\\\/])?([\\s\\S]*?)$/;\n\tvar result = splitDeviceRe.exec(path);\n\tvar device = result[1] || '';\n\tvar isUnc = Boolean(device && device.charAt(1) !== ':');\n\n\t// UNC paths are always absolute\n\treturn Boolean(result[2] || isUnc);\n}\n\nmodule.exports = process.platform === 'win32' ? win32 : posix;\nmodule.exports.posix = posix;\nmodule.exports.win32 = win32;\n","exports.setopts = setopts\nexports.ownProp = ownProp\nexports.makeAbs = makeAbs\nexports.finish = finish\nexports.mark = mark\nexports.isIgnored = isIgnored\nexports.childrenIgnored = childrenIgnored\n\nfunction ownProp (obj, field) {\n return Object.prototype.hasOwnProperty.call(obj, field)\n}\n\nvar path = require(\"path\")\nvar minimatch = require(\"minimatch\")\nvar isAbsolute = require(\"path-is-absolute\")\nvar Minimatch = minimatch.Minimatch\n\nfunction alphasort (a, b) {\n return a.localeCompare(b, 'en')\n}\n\nfunction setupIgnores (self, options) {\n self.ignore = options.ignore || []\n\n if (!Array.isArray(self.ignore))\n self.ignore = [self.ignore]\n\n if (self.ignore.length) {\n self.ignore = self.ignore.map(ignoreMap)\n }\n}\n\n// ignore patterns are always in dot:true mode.\nfunction ignoreMap (pattern) {\n var gmatcher = null\n if (pattern.slice(-3) === '/**') {\n var gpattern = pattern.replace(/(\\/\\*\\*)+$/, '')\n gmatcher = new Minimatch(gpattern, { dot: true })\n }\n\n return {\n matcher: new Minimatch(pattern, { dot: true }),\n gmatcher: gmatcher\n }\n}\n\nfunction setopts (self, pattern, options) {\n if (!options)\n options = {}\n\n // base-matching: just use globstar for that.\n if (options.matchBase && -1 === pattern.indexOf(\"/\")) {\n if (options.noglobstar) {\n throw new Error(\"base matching requires globstar\")\n }\n pattern = \"**/\" + pattern\n }\n\n self.silent = !!options.silent\n self.pattern = pattern\n self.strict = options.strict !== false\n self.realpath = !!options.realpath\n self.realpathCache = options.realpathCache || Object.create(null)\n self.follow = !!options.follow\n self.dot = !!options.dot\n self.mark = !!options.mark\n self.nodir = !!options.nodir\n if (self.nodir)\n self.mark = true\n self.sync = !!options.sync\n self.nounique = !!options.nounique\n self.nonull = !!options.nonull\n self.nosort = !!options.nosort\n self.nocase = !!options.nocase\n self.stat = !!options.stat\n self.noprocess = !!options.noprocess\n self.absolute = !!options.absolute\n\n self.maxLength = options.maxLength || Infinity\n self.cache = options.cache || Object.create(null)\n self.statCache = options.statCache || Object.create(null)\n self.symlinks = options.symlinks || Object.create(null)\n\n setupIgnores(self, options)\n\n self.changedCwd = false\n var cwd = process.cwd()\n if (!ownProp(options, \"cwd\"))\n self.cwd = cwd\n else {\n self.cwd = path.resolve(options.cwd)\n self.changedCwd = self.cwd !== cwd\n }\n\n self.root = options.root || path.resolve(self.cwd, \"/\")\n self.root = path.resolve(self.root)\n if (process.platform === \"win32\")\n self.root = self.root.replace(/\\\\/g, \"/\")\n\n // TODO: is an absolute `cwd` supposed to be resolved against `root`?\n // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')\n self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)\n if (process.platform === \"win32\")\n self.cwdAbs = self.cwdAbs.replace(/\\\\/g, \"/\")\n self.nomount = !!options.nomount\n\n // disable comments and negation in Minimatch.\n // Note that they are not supported in Glob itself anyway.\n options.nonegate = true\n options.nocomment = true\n\n self.minimatch = new Minimatch(pattern, options)\n self.options = self.minimatch.options\n}\n\nfunction finish (self) {\n var nou = self.nounique\n var all = nou ? [] : Object.create(null)\n\n for (var i = 0, l = self.matches.length; i < l; i ++) {\n var matches = self.matches[i]\n if (!matches || Object.keys(matches).length === 0) {\n if (self.nonull) {\n // do like the shell, and spit out the literal glob\n var literal = self.minimatch.globSet[i]\n if (nou)\n all.push(literal)\n else\n all[literal] = true\n }\n } else {\n // had matches\n var m = Object.keys(matches)\n if (nou)\n all.push.apply(all, m)\n else\n m.forEach(function (m) {\n all[m] = true\n })\n }\n }\n\n if (!nou)\n all = Object.keys(all)\n\n if (!self.nosort)\n all = all.sort(alphasort)\n\n // at *some* point we statted all of these\n if (self.mark) {\n for (var i = 0; i < all.length; i++) {\n all[i] = self._mark(all[i])\n }\n if (self.nodir) {\n all = all.filter(function (e) {\n var notDir = !(/\\/$/.test(e))\n var c = self.cache[e] || self.cache[makeAbs(self, e)]\n if (notDir && c)\n notDir = c !== 'DIR' && !Array.isArray(c)\n return notDir\n })\n }\n }\n\n if (self.ignore.length)\n all = all.filter(function(m) {\n return !isIgnored(self, m)\n })\n\n self.found = all\n}\n\nfunction mark (self, p) {\n var abs = makeAbs(self, p)\n var c = self.cache[abs]\n var m = p\n if (c) {\n var isDir = c === 'DIR' || Array.isArray(c)\n var slash = p.slice(-1) === '/'\n\n if (isDir && !slash)\n m += '/'\n else if (!isDir && slash)\n m = m.slice(0, -1)\n\n if (m !== p) {\n var mabs = makeAbs(self, m)\n self.statCache[mabs] = self.statCache[abs]\n self.cache[mabs] = self.cache[abs]\n }\n }\n\n return m\n}\n\n// lotta situps...\nfunction makeAbs (self, f) {\n var abs = f\n if (f.charAt(0) === '/') {\n abs = path.join(self.root, f)\n } else if (isAbsolute(f) || f === '') {\n abs = f\n } else if (self.changedCwd) {\n abs = path.resolve(self.cwd, f)\n } else {\n abs = path.resolve(f)\n }\n\n if (process.platform === 'win32')\n abs = abs.replace(/\\\\/g, '/')\n\n return abs\n}\n\n\n// Return true, if pattern ends with globstar '**', for the accompanying parent directory.\n// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents\nfunction isIgnored (self, path) {\n if (!self.ignore.length)\n return false\n\n return self.ignore.some(function(item) {\n return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))\n })\n}\n\nfunction childrenIgnored (self, path) {\n if (!self.ignore.length)\n return false\n\n return self.ignore.some(function(item) {\n return !!(item.gmatcher && item.gmatcher.match(path))\n })\n}\n","module.exports = globSync\nglobSync.GlobSync = GlobSync\n\nvar fs = require('fs')\nvar rp = require('fs.realpath')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar Glob = require('./glob.js').Glob\nvar util = require('util')\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar common = require('./common.js')\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nfunction globSync (pattern, options) {\n if (typeof options === 'function' || arguments.length === 3)\n throw new TypeError('callback provided to sync glob\\n'+\n 'See: https://github.com/isaacs/node-glob/issues/167')\n\n return new GlobSync(pattern, options).found\n}\n\nfunction GlobSync (pattern, options) {\n if (!pattern)\n throw new Error('must provide pattern')\n\n if (typeof options === 'function' || arguments.length === 3)\n throw new TypeError('callback provided to sync glob\\n'+\n 'See: https://github.com/isaacs/node-glob/issues/167')\n\n if (!(this instanceof GlobSync))\n return new GlobSync(pattern, options)\n\n setopts(this, pattern, options)\n\n if (this.noprocess)\n return this\n\n var n = this.minimatch.set.length\n this.matches = new Array(n)\n for (var i = 0; i < n; i ++) {\n this._process(this.minimatch.set[i], i, false)\n }\n this._finish()\n}\n\nGlobSync.prototype._finish = function () {\n assert(this instanceof GlobSync)\n if (this.realpath) {\n var self = this\n this.matches.forEach(function (matchset, index) {\n var set = self.matches[index] = Object.create(null)\n for (var p in matchset) {\n try {\n p = self._makeAbs(p)\n var real = rp.realpathSync(p, self.realpathCache)\n set[real] = true\n } catch (er) {\n if (er.syscall === 'stat')\n set[self._makeAbs(p)] = true\n else\n throw er\n }\n }\n })\n }\n common.finish(this)\n}\n\n\nGlobSync.prototype._process = function (pattern, index, inGlobStar) {\n assert(this instanceof GlobSync)\n\n // Get the first [n] parts of pattern that are all strings.\n var n = 0\n while (typeof pattern[n] === 'string') {\n n ++\n }\n // now n is the index of the first one that is *not* a string.\n\n // See if there's anything else\n var prefix\n switch (n) {\n // if not, then this is rather simple\n case pattern.length:\n this._processSimple(pattern.join('/'), index)\n return\n\n case 0:\n // pattern *starts* with some non-trivial item.\n // going to readdir(cwd), but not include the prefix in matches.\n prefix = null\n break\n\n default:\n // pattern has some string bits in the front.\n // whatever it starts with, whether that's 'absolute' like /foo/bar,\n // or 'relative' like '../baz'\n prefix = pattern.slice(0, n).join('/')\n break\n }\n\n var remain = pattern.slice(n)\n\n // get the list of entries.\n var read\n if (prefix === null)\n read = '.'\n else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {\n if (!prefix || !isAbsolute(prefix))\n prefix = '/' + prefix\n read = prefix\n } else\n read = prefix\n\n var abs = this._makeAbs(read)\n\n //if ignored, skip processing\n if (childrenIgnored(this, read))\n return\n\n var isGlobStar = remain[0] === minimatch.GLOBSTAR\n if (isGlobStar)\n this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)\n else\n this._processReaddir(prefix, read, abs, remain, index, inGlobStar)\n}\n\n\nGlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {\n var entries = this._readdir(abs, inGlobStar)\n\n // if the abs isn't a dir, then nothing can match!\n if (!entries)\n return\n\n // It will only match dot entries if it starts with a dot, or if\n // dot is set. Stuff like @(.foo|.bar) isn't allowed.\n var pn = remain[0]\n var negate = !!this.minimatch.negate\n var rawGlob = pn._glob\n var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n var matchedEntries = []\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i]\n if (e.charAt(0) !== '.' || dotOk) {\n var m\n if (negate && !prefix) {\n m = !e.match(pn)\n } else {\n m = e.match(pn)\n }\n if (m)\n matchedEntries.push(e)\n }\n }\n\n var len = matchedEntries.length\n // If there are no matched entries, then nothing matches.\n if (len === 0)\n return\n\n // if this is the last remaining pattern bit, then no need for\n // an additional stat *unless* the user has specified mark or\n // stat explicitly. We know they exist, since readdir returned\n // them.\n\n if (remain.length === 1 && !this.mark && !this.stat) {\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n if (prefix) {\n if (prefix.slice(-1) !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n\n if (e.charAt(0) === '/' && !this.nomount) {\n e = path.join(this.root, e)\n }\n this._emitMatch(index, e)\n }\n // This was the last one, and no stats were needed\n return\n }\n\n // now test all matched entries as stand-ins for that part\n // of the pattern.\n remain.shift()\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n var newPattern\n if (prefix)\n newPattern = [prefix, e]\n else\n newPattern = [e]\n this._process(newPattern.concat(remain), index, inGlobStar)\n }\n}\n\n\nGlobSync.prototype._emitMatch = function (index, e) {\n if (isIgnored(this, e))\n return\n\n var abs = this._makeAbs(e)\n\n if (this.mark)\n e = this._mark(e)\n\n if (this.absolute) {\n e = abs\n }\n\n if (this.matches[index][e])\n return\n\n if (this.nodir) {\n var c = this.cache[abs]\n if (c === 'DIR' || Array.isArray(c))\n return\n }\n\n this.matches[index][e] = true\n\n if (this.stat)\n this._stat(e)\n}\n\n\nGlobSync.prototype._readdirInGlobStar = function (abs) {\n // follow all symlinked directories forever\n // just proceed as if this is a non-globstar situation\n if (this.follow)\n return this._readdir(abs, false)\n\n var entries\n var lstat\n var stat\n try {\n lstat = fs.lstatSync(abs)\n } catch (er) {\n if (er.code === 'ENOENT') {\n // lstat failed, doesn't exist\n return null\n }\n }\n\n var isSym = lstat && lstat.isSymbolicLink()\n this.symlinks[abs] = isSym\n\n // If it's not a symlink or a dir, then it's definitely a regular file.\n // don't bother doing a readdir in that case.\n if (!isSym && lstat && !lstat.isDirectory())\n this.cache[abs] = 'FILE'\n else\n entries = this._readdir(abs, false)\n\n return entries\n}\n\nGlobSync.prototype._readdir = function (abs, inGlobStar) {\n var entries\n\n if (inGlobStar && !ownProp(this.symlinks, abs))\n return this._readdirInGlobStar(abs)\n\n if (ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n if (!c || c === 'FILE')\n return null\n\n if (Array.isArray(c))\n return c\n }\n\n try {\n return this._readdirEntries(abs, fs.readdirSync(abs))\n } catch (er) {\n this._readdirError(abs, er)\n return null\n }\n}\n\nGlobSync.prototype._readdirEntries = function (abs, entries) {\n // if we haven't asked to stat everything, then just\n // assume that everything in there exists, so we can avoid\n // having to stat it a second time.\n if (!this.mark && !this.stat) {\n for (var i = 0; i < entries.length; i ++) {\n var e = entries[i]\n if (abs === '/')\n e = abs + e\n else\n e = abs + '/' + e\n this.cache[e] = true\n }\n }\n\n this.cache[abs] = entries\n\n // mark and cache dir-ness\n return entries\n}\n\nGlobSync.prototype._readdirError = function (f, er) {\n // handle errors, and cache the information\n switch (er.code) {\n case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n case 'ENOTDIR': // totally normal. means it *does* exist.\n var abs = this._makeAbs(f)\n this.cache[abs] = 'FILE'\n if (abs === this.cwdAbs) {\n var error = new Error(er.code + ' invalid cwd ' + this.cwd)\n error.path = this.cwd\n error.code = er.code\n throw error\n }\n break\n\n case 'ENOENT': // not terribly unusual\n case 'ELOOP':\n case 'ENAMETOOLONG':\n case 'UNKNOWN':\n this.cache[this._makeAbs(f)] = false\n break\n\n default: // some unusual error. Treat as failure.\n this.cache[this._makeAbs(f)] = false\n if (this.strict)\n throw er\n if (!this.silent)\n console.error('glob error', er)\n break\n }\n}\n\nGlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {\n\n var entries = this._readdir(abs, inGlobStar)\n\n // no entries means not a dir, so it can never have matches\n // foo.txt/** doesn't match foo.txt\n if (!entries)\n return\n\n // test without the globstar, and with every child both below\n // and replacing the globstar.\n var remainWithoutGlobStar = remain.slice(1)\n var gspref = prefix ? [ prefix ] : []\n var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n // the noGlobStar pattern exits the inGlobStar state\n this._process(noGlobStar, index, false)\n\n var len = entries.length\n var isSym = this.symlinks[abs]\n\n // If it's a symlink, and we're in a globstar, then stop\n if (isSym && inGlobStar)\n return\n\n for (var i = 0; i < len; i++) {\n var e = entries[i]\n if (e.charAt(0) === '.' && !this.dot)\n continue\n\n // these two cases enter the inGlobStar state\n var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n this._process(instead, index, true)\n\n var below = gspref.concat(entries[i], remain)\n this._process(below, index, true)\n }\n}\n\nGlobSync.prototype._processSimple = function (prefix, index) {\n // XXX review this. Shouldn't it be doing the mounting etc\n // before doing stat? kinda weird?\n var exists = this._stat(prefix)\n\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n // If it doesn't exist, then just mark the lack of results\n if (!exists)\n return\n\n if (prefix && isAbsolute(prefix) && !this.nomount) {\n var trail = /[\\/\\\\]$/.test(prefix)\n if (prefix.charAt(0) === '/') {\n prefix = path.join(this.root, prefix)\n } else {\n prefix = path.resolve(this.root, prefix)\n if (trail)\n prefix += '/'\n }\n }\n\n if (process.platform === 'win32')\n prefix = prefix.replace(/\\\\/g, '/')\n\n // Mark this as a match\n this._emitMatch(index, prefix)\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlobSync.prototype._stat = function (f) {\n var abs = this._makeAbs(f)\n var needDir = f.slice(-1) === '/'\n\n if (f.length > this.maxLength)\n return false\n\n if (!this.stat && ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n\n if (Array.isArray(c))\n c = 'DIR'\n\n // It exists, but maybe not how we need it\n if (!needDir || c === 'DIR')\n return c\n\n if (needDir && c === 'FILE')\n return false\n\n // otherwise we have to stat, because maybe c=true\n // if we know it exists, but not what it is.\n }\n\n var exists\n var stat = this.statCache[abs]\n if (!stat) {\n var lstat\n try {\n lstat = fs.lstatSync(abs)\n } catch (er) {\n if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {\n this.statCache[abs] = false\n return false\n }\n }\n\n if (lstat && lstat.isSymbolicLink()) {\n try {\n stat = fs.statSync(abs)\n } catch (er) {\n stat = lstat\n }\n } else {\n stat = lstat\n }\n }\n\n this.statCache[abs] = stat\n\n var c = true\n if (stat)\n c = stat.isDirectory() ? 'DIR' : 'FILE'\n\n this.cache[abs] = this.cache[abs] || c\n\n if (needDir && c === 'FILE')\n return false\n\n return c\n}\n\nGlobSync.prototype._mark = function (p) {\n return common.mark(this, p)\n}\n\nGlobSync.prototype._makeAbs = function (f) {\n return common.makeAbs(this, f)\n}\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","var wrappy = require('wrappy')\nvar reqs = Object.create(null)\nvar once = require('once')\n\nmodule.exports = wrappy(inflight)\n\nfunction inflight (key, cb) {\n if (reqs[key]) {\n reqs[key].push(cb)\n return null\n } else {\n reqs[key] = [cb]\n return makeres(key)\n }\n}\n\nfunction makeres (key) {\n return once(function RES () {\n var cbs = reqs[key]\n var len = cbs.length\n var args = slice(arguments)\n\n // XXX It's somewhat ambiguous whether a new callback added in this\n // pass should be queued for later execution if something in the\n // list of callbacks throws, or if it should just be discarded.\n // However, it's such an edge case that it hardly matters, and either\n // choice is likely as surprising as the other.\n // As it happens, we do go ahead and schedule it for later execution.\n try {\n for (var i = 0; i < len; i++) {\n cbs[i].apply(null, args)\n }\n } finally {\n if (cbs.length > len) {\n // added more in the interim.\n // de-zalgo, just in case, but don't call again.\n cbs.splice(0, len)\n process.nextTick(function () {\n RES.apply(null, args)\n })\n } else {\n delete reqs[key]\n }\n }\n })\n}\n\nfunction slice (args) {\n var length = args.length\n var array = []\n\n for (var i = 0; i < length; i++) array[i] = args[i]\n return array\n}\n","// Approach:\n//\n// 1. Get the minimatch set\n// 2. For each pattern in the set, PROCESS(pattern, false)\n// 3. Store matches per-set, then uniq them\n//\n// PROCESS(pattern, inGlobStar)\n// Get the first [n] items from pattern that are all strings\n// Join these together. This is PREFIX.\n// If there is no more remaining, then stat(PREFIX) and\n// add to matches if it succeeds. END.\n//\n// If inGlobStar and PREFIX is symlink and points to dir\n// set ENTRIES = []\n// else readdir(PREFIX) as ENTRIES\n// If fail, END\n//\n// with ENTRIES\n// If pattern[n] is GLOBSTAR\n// // handle the case where the globstar match is empty\n// // by pruning it out, and testing the resulting pattern\n// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)\n// // handle other cases.\n// for ENTRY in ENTRIES (not dotfiles)\n// // attach globstar + tail onto the entry\n// // Mark that this entry is a globstar match\n// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)\n//\n// else // not globstar\n// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)\n// Test ENTRY against pattern[n]\n// If fails, continue\n// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])\n//\n// Caveat:\n// Cache all stats and readdirs results to minimize syscall. Since all\n// we ever care about is existence and directory-ness, we can just keep\n// `true` for files, and [children,...] for directories, or `false` for\n// things that don't exist.\n\nmodule.exports = glob\n\nvar fs = require('fs')\nvar rp = require('fs.realpath')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar inherits = require('inherits')\nvar EE = require('events').EventEmitter\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar globSync = require('./sync.js')\nvar common = require('./common.js')\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar inflight = require('inflight')\nvar util = require('util')\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nvar once = require('once')\n\nfunction glob (pattern, options, cb) {\n if (typeof options === 'function') cb = options, options = {}\n if (!options) options = {}\n\n if (options.sync) {\n if (cb)\n throw new TypeError('callback provided to sync glob')\n return globSync(pattern, options)\n }\n\n return new Glob(pattern, options, cb)\n}\n\nglob.sync = globSync\nvar GlobSync = glob.GlobSync = globSync.GlobSync\n\n// old api surface\nglob.glob = glob\n\nfunction extend (origin, add) {\n if (add === null || typeof add !== 'object') {\n return origin\n }\n\n var keys = Object.keys(add)\n var i = keys.length\n while (i--) {\n origin[keys[i]] = add[keys[i]]\n }\n return origin\n}\n\nglob.hasMagic = function (pattern, options_) {\n var options = extend({}, options_)\n options.noprocess = true\n\n var g = new Glob(pattern, options)\n var set = g.minimatch.set\n\n if (!pattern)\n return false\n\n if (set.length > 1)\n return true\n\n for (var j = 0; j < set[0].length; j++) {\n if (typeof set[0][j] !== 'string')\n return true\n }\n\n return false\n}\n\nglob.Glob = Glob\ninherits(Glob, EE)\nfunction Glob (pattern, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n\n if (options && options.sync) {\n if (cb)\n throw new TypeError('callback provided to sync glob')\n return new GlobSync(pattern, options)\n }\n\n if (!(this instanceof Glob))\n return new Glob(pattern, options, cb)\n\n setopts(this, pattern, options)\n this._didRealPath = false\n\n // process each pattern in the minimatch set\n var n = this.minimatch.set.length\n\n // The matches are stored as {<filename>: true,...} so that\n // duplicates are automagically pruned.\n // Later, we do an Object.keys() on these.\n // Keep them as a list so we can fill in when nonull is set.\n this.matches = new Array(n)\n\n if (typeof cb === 'function') {\n cb = once(cb)\n this.on('error', cb)\n this.on('end', function (matches) {\n cb(null, matches)\n })\n }\n\n var self = this\n this._processing = 0\n\n this._emitQueue = []\n this._processQueue = []\n this.paused = false\n\n if (this.noprocess)\n return this\n\n if (n === 0)\n return done()\n\n var sync = true\n for (var i = 0; i < n; i ++) {\n this._process(this.minimatch.set[i], i, false, done)\n }\n sync = false\n\n function done () {\n --self._processing\n if (self._processing <= 0) {\n if (sync) {\n process.nextTick(function () {\n self._finish()\n })\n } else {\n self._finish()\n }\n }\n }\n}\n\nGlob.prototype._finish = function () {\n assert(this instanceof Glob)\n if (this.aborted)\n return\n\n if (this.realpath && !this._didRealpath)\n return this._realpath()\n\n common.finish(this)\n this.emit('end', this.found)\n}\n\nGlob.prototype._realpath = function () {\n if (this._didRealpath)\n return\n\n this._didRealpath = true\n\n var n = this.matches.length\n if (n === 0)\n return this._finish()\n\n var self = this\n for (var i = 0; i < this.matches.length; i++)\n this._realpathSet(i, next)\n\n function next () {\n if (--n === 0)\n self._finish()\n }\n}\n\nGlob.prototype._realpathSet = function (index, cb) {\n var matchset = this.matches[index]\n if (!matchset)\n return cb()\n\n var found = Object.keys(matchset)\n var self = this\n var n = found.length\n\n if (n === 0)\n return cb()\n\n var set = this.matches[index] = Object.create(null)\n found.forEach(function (p, i) {\n // If there's a problem with the stat, then it means that\n // one or more of the links in the realpath couldn't be\n // resolved. just return the abs value in that case.\n p = self._makeAbs(p)\n rp.realpath(p, self.realpathCache, function (er, real) {\n if (!er)\n set[real] = true\n else if (er.syscall === 'stat')\n set[p] = true\n else\n self.emit('error', er) // srsly wtf right here\n\n if (--n === 0) {\n self.matches[index] = set\n cb()\n }\n })\n })\n}\n\nGlob.prototype._mark = function (p) {\n return common.mark(this, p)\n}\n\nGlob.prototype._makeAbs = function (f) {\n return common.makeAbs(this, f)\n}\n\nGlob.prototype.abort = function () {\n this.aborted = true\n this.emit('abort')\n}\n\nGlob.prototype.pause = function () {\n if (!this.paused) {\n this.paused = true\n this.emit('pause')\n }\n}\n\nGlob.prototype.resume = function () {\n if (this.paused) {\n this.emit('resume')\n this.paused = false\n if (this._emitQueue.length) {\n var eq = this._emitQueue.slice(0)\n this._emitQueue.length = 0\n for (var i = 0; i < eq.length; i ++) {\n var e = eq[i]\n this._emitMatch(e[0], e[1])\n }\n }\n if (this._processQueue.length) {\n var pq = this._processQueue.slice(0)\n this._processQueue.length = 0\n for (var i = 0; i < pq.length; i ++) {\n var p = pq[i]\n this._processing--\n this._process(p[0], p[1], p[2], p[3])\n }\n }\n }\n}\n\nGlob.prototype._process = function (pattern, index, inGlobStar, cb) {\n assert(this instanceof Glob)\n assert(typeof cb === 'function')\n\n if (this.aborted)\n return\n\n this._processing++\n if (this.paused) {\n this._processQueue.push([pattern, index, inGlobStar, cb])\n return\n }\n\n //console.error('PROCESS %d', this._processing, pattern)\n\n // Get the first [n] parts of pattern that are all strings.\n var n = 0\n while (typeof pattern[n] === 'string') {\n n ++\n }\n // now n is the index of the first one that is *not* a string.\n\n // see if there's anything else\n var prefix\n switch (n) {\n // if not, then this is rather simple\n case pattern.length:\n this._processSimple(pattern.join('/'), index, cb)\n return\n\n case 0:\n // pattern *starts* with some non-trivial item.\n // going to readdir(cwd), but not include the prefix in matches.\n prefix = null\n break\n\n default:\n // pattern has some string bits in the front.\n // whatever it starts with, whether that's 'absolute' like /foo/bar,\n // or 'relative' like '../baz'\n prefix = pattern.slice(0, n).join('/')\n break\n }\n\n var remain = pattern.slice(n)\n\n // get the list of entries.\n var read\n if (prefix === null)\n read = '.'\n else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {\n if (!prefix || !isAbsolute(prefix))\n prefix = '/' + prefix\n read = prefix\n } else\n read = prefix\n\n var abs = this._makeAbs(read)\n\n //if ignored, skip _processing\n if (childrenIgnored(this, read))\n return cb()\n\n var isGlobStar = remain[0] === minimatch.GLOBSTAR\n if (isGlobStar)\n this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)\n else\n this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)\n}\n\nGlob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n var self = this\n this._readdir(abs, inGlobStar, function (er, entries) {\n return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n })\n}\n\nGlob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n\n // if the abs isn't a dir, then nothing can match!\n if (!entries)\n return cb()\n\n // It will only match dot entries if it starts with a dot, or if\n // dot is set. Stuff like @(.foo|.bar) isn't allowed.\n var pn = remain[0]\n var negate = !!this.minimatch.negate\n var rawGlob = pn._glob\n var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n var matchedEntries = []\n for (var i = 0; i < entries.length; i++) {\n var e = entries[i]\n if (e.charAt(0) !== '.' || dotOk) {\n var m\n if (negate && !prefix) {\n m = !e.match(pn)\n } else {\n m = e.match(pn)\n }\n if (m)\n matchedEntries.push(e)\n }\n }\n\n //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)\n\n var len = matchedEntries.length\n // If there are no matched entries, then nothing matches.\n if (len === 0)\n return cb()\n\n // if this is the last remaining pattern bit, then no need for\n // an additional stat *unless* the user has specified mark or\n // stat explicitly. We know they exist, since readdir returned\n // them.\n\n if (remain.length === 1 && !this.mark && !this.stat) {\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n if (prefix) {\n if (prefix !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n\n if (e.charAt(0) === '/' && !this.nomount) {\n e = path.join(this.root, e)\n }\n this._emitMatch(index, e)\n }\n // This was the last one, and no stats were needed\n return cb()\n }\n\n // now test all matched entries as stand-ins for that part\n // of the pattern.\n remain.shift()\n for (var i = 0; i < len; i ++) {\n var e = matchedEntries[i]\n var newPattern\n if (prefix) {\n if (prefix !== '/')\n e = prefix + '/' + e\n else\n e = prefix + e\n }\n this._process([e].concat(remain), index, inGlobStar, cb)\n }\n cb()\n}\n\nGlob.prototype._emitMatch = function (index, e) {\n if (this.aborted)\n return\n\n if (isIgnored(this, e))\n return\n\n if (this.paused) {\n this._emitQueue.push([index, e])\n return\n }\n\n var abs = isAbsolute(e) ? e : this._makeAbs(e)\n\n if (this.mark)\n e = this._mark(e)\n\n if (this.absolute)\n e = abs\n\n if (this.matches[index][e])\n return\n\n if (this.nodir) {\n var c = this.cache[abs]\n if (c === 'DIR' || Array.isArray(c))\n return\n }\n\n this.matches[index][e] = true\n\n var st = this.statCache[abs]\n if (st)\n this.emit('stat', e, st)\n\n this.emit('match', e)\n}\n\nGlob.prototype._readdirInGlobStar = function (abs, cb) {\n if (this.aborted)\n return\n\n // follow all symlinked directories forever\n // just proceed as if this is a non-globstar situation\n if (this.follow)\n return this._readdir(abs, false, cb)\n\n var lstatkey = 'lstat\\0' + abs\n var self = this\n var lstatcb = inflight(lstatkey, lstatcb_)\n\n if (lstatcb)\n fs.lstat(abs, lstatcb)\n\n function lstatcb_ (er, lstat) {\n if (er && er.code === 'ENOENT')\n return cb()\n\n var isSym = lstat && lstat.isSymbolicLink()\n self.symlinks[abs] = isSym\n\n // If it's not a symlink or a dir, then it's definitely a regular file.\n // don't bother doing a readdir in that case.\n if (!isSym && lstat && !lstat.isDirectory()) {\n self.cache[abs] = 'FILE'\n cb()\n } else\n self._readdir(abs, false, cb)\n }\n}\n\nGlob.prototype._readdir = function (abs, inGlobStar, cb) {\n if (this.aborted)\n return\n\n cb = inflight('readdir\\0'+abs+'\\0'+inGlobStar, cb)\n if (!cb)\n return\n\n //console.error('RD %j %j', +inGlobStar, abs)\n if (inGlobStar && !ownProp(this.symlinks, abs))\n return this._readdirInGlobStar(abs, cb)\n\n if (ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n if (!c || c === 'FILE')\n return cb()\n\n if (Array.isArray(c))\n return cb(null, c)\n }\n\n var self = this\n fs.readdir(abs, readdirCb(this, abs, cb))\n}\n\nfunction readdirCb (self, abs, cb) {\n return function (er, entries) {\n if (er)\n self._readdirError(abs, er, cb)\n else\n self._readdirEntries(abs, entries, cb)\n }\n}\n\nGlob.prototype._readdirEntries = function (abs, entries, cb) {\n if (this.aborted)\n return\n\n // if we haven't asked to stat everything, then just\n // assume that everything in there exists, so we can avoid\n // having to stat it a second time.\n if (!this.mark && !this.stat) {\n for (var i = 0; i < entries.length; i ++) {\n var e = entries[i]\n if (abs === '/')\n e = abs + e\n else\n e = abs + '/' + e\n this.cache[e] = true\n }\n }\n\n this.cache[abs] = entries\n return cb(null, entries)\n}\n\nGlob.prototype._readdirError = function (f, er, cb) {\n if (this.aborted)\n return\n\n // handle errors, and cache the information\n switch (er.code) {\n case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n case 'ENOTDIR': // totally normal. means it *does* exist.\n var abs = this._makeAbs(f)\n this.cache[abs] = 'FILE'\n if (abs === this.cwdAbs) {\n var error = new Error(er.code + ' invalid cwd ' + this.cwd)\n error.path = this.cwd\n error.code = er.code\n this.emit('error', error)\n this.abort()\n }\n break\n\n case 'ENOENT': // not terribly unusual\n case 'ELOOP':\n case 'ENAMETOOLONG':\n case 'UNKNOWN':\n this.cache[this._makeAbs(f)] = false\n break\n\n default: // some unusual error. Treat as failure.\n this.cache[this._makeAbs(f)] = false\n if (this.strict) {\n this.emit('error', er)\n // If the error is handled, then we abort\n // if not, we threw out of here\n this.abort()\n }\n if (!this.silent)\n console.error('glob error', er)\n break\n }\n\n return cb()\n}\n\nGlob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n var self = this\n this._readdir(abs, inGlobStar, function (er, entries) {\n self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n })\n}\n\n\nGlob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n //console.error('pgs2', prefix, remain[0], entries)\n\n // no entries means not a dir, so it can never have matches\n // foo.txt/** doesn't match foo.txt\n if (!entries)\n return cb()\n\n // test without the globstar, and with every child both below\n // and replacing the globstar.\n var remainWithoutGlobStar = remain.slice(1)\n var gspref = prefix ? [ prefix ] : []\n var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n // the noGlobStar pattern exits the inGlobStar state\n this._process(noGlobStar, index, false, cb)\n\n var isSym = this.symlinks[abs]\n var len = entries.length\n\n // If it's a symlink, and we're in a globstar, then stop\n if (isSym && inGlobStar)\n return cb()\n\n for (var i = 0; i < len; i++) {\n var e = entries[i]\n if (e.charAt(0) === '.' && !this.dot)\n continue\n\n // these two cases enter the inGlobStar state\n var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n this._process(instead, index, true, cb)\n\n var below = gspref.concat(entries[i], remain)\n this._process(below, index, true, cb)\n }\n\n cb()\n}\n\nGlob.prototype._processSimple = function (prefix, index, cb) {\n // XXX review this. Shouldn't it be doing the mounting etc\n // before doing stat? kinda weird?\n var self = this\n this._stat(prefix, function (er, exists) {\n self._processSimple2(prefix, index, er, exists, cb)\n })\n}\nGlob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {\n\n //console.error('ps2', prefix, exists)\n\n if (!this.matches[index])\n this.matches[index] = Object.create(null)\n\n // If it doesn't exist, then just mark the lack of results\n if (!exists)\n return cb()\n\n if (prefix && isAbsolute(prefix) && !this.nomount) {\n var trail = /[\\/\\\\]$/.test(prefix)\n if (prefix.charAt(0) === '/') {\n prefix = path.join(this.root, prefix)\n } else {\n prefix = path.resolve(this.root, prefix)\n if (trail)\n prefix += '/'\n }\n }\n\n if (process.platform === 'win32')\n prefix = prefix.replace(/\\\\/g, '/')\n\n // Mark this as a match\n this._emitMatch(index, prefix)\n cb()\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlob.prototype._stat = function (f, cb) {\n var abs = this._makeAbs(f)\n var needDir = f.slice(-1) === '/'\n\n if (f.length > this.maxLength)\n return cb()\n\n if (!this.stat && ownProp(this.cache, abs)) {\n var c = this.cache[abs]\n\n if (Array.isArray(c))\n c = 'DIR'\n\n // It exists, but maybe not how we need it\n if (!needDir || c === 'DIR')\n return cb(null, c)\n\n if (needDir && c === 'FILE')\n return cb()\n\n // otherwise we have to stat, because maybe c=true\n // if we know it exists, but not what it is.\n }\n\n var exists\n var stat = this.statCache[abs]\n if (stat !== undefined) {\n if (stat === false)\n return cb(null, stat)\n else {\n var type = stat.isDirectory() ? 'DIR' : 'FILE'\n if (needDir && type === 'FILE')\n return cb()\n else\n return cb(null, type, stat)\n }\n }\n\n var self = this\n var statcb = inflight('stat\\0' + abs, lstatcb_)\n if (statcb)\n fs.lstat(abs, statcb)\n\n function lstatcb_ (er, lstat) {\n if (lstat && lstat.isSymbolicLink()) {\n // If it's a symlink, then treat it as the target, unless\n // the target does not exist, then treat it as a file.\n return fs.stat(abs, function (er, stat) {\n if (er)\n self._stat2(f, abs, null, lstat, cb)\n else\n self._stat2(f, abs, er, stat, cb)\n })\n } else {\n self._stat2(f, abs, er, lstat, cb)\n }\n }\n}\n\nGlob.prototype._stat2 = function (f, abs, er, stat, cb) {\n if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {\n this.statCache[abs] = false\n return cb()\n }\n\n var needDir = f.slice(-1) === '/'\n this.statCache[abs] = stat\n\n if (abs.slice(-1) === '/' && stat && !stat.isDirectory())\n return cb(null, false, stat)\n\n var c = true\n if (stat)\n c = stat.isDirectory() ? 'DIR' : 'FILE'\n this.cache[abs] = this.cache[abs] || c\n\n if (needDir && c === 'FILE')\n return cb()\n\n return cb(null, c, stat)\n}\n","// @ts-check\n/** @typedef { import('estree').BaseNode} BaseNode */\n\n/** @typedef {{\n\tskip: () => void;\n\tremove: () => void;\n\treplace: (node: BaseNode) => void;\n}} WalkerContext */\n\nclass WalkerBase {\n\tconstructor() {\n\t\t/** @type {boolean} */\n\t\tthis.should_skip = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.should_remove = false;\n\n\t\t/** @type {BaseNode | null} */\n\t\tthis.replacement = null;\n\n\t\t/** @type {WalkerContext} */\n\t\tthis.context = {\n\t\t\tskip: () => (this.should_skip = true),\n\t\t\tremove: () => (this.should_remove = true),\n\t\t\treplace: (node) => (this.replacement = node)\n\t\t};\n\t}\n\n\t/**\n\t *\n\t * @param {any} parent\n\t * @param {string} prop\n\t * @param {number} index\n\t * @param {BaseNode} node\n\t */\n\treplace(parent, prop, index, node) {\n\t\tif (parent) {\n\t\t\tif (index !== null) {\n\t\t\t\tparent[prop][index] = node;\n\t\t\t} else {\n\t\t\t\tparent[prop] = node;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param {any} parent\n\t * @param {string} prop\n\t * @param {number} index\n\t */\n\tremove(parent, prop, index) {\n\t\tif (parent) {\n\t\t\tif (index !== null) {\n\t\t\t\tparent[prop].splice(index, 1);\n\t\t\t} else {\n\t\t\t\tdelete parent[prop];\n\t\t\t}\n\t\t}\n\t}\n}\n\n// @ts-check\n\n/** @typedef { import('estree').BaseNode} BaseNode */\n/** @typedef { import('./walker.js').WalkerContext} WalkerContext */\n\n/** @typedef {(\n * this: WalkerContext,\n * node: BaseNode,\n * parent: BaseNode,\n * key: string,\n * index: number\n * ) => void} SyncHandler */\n\nclass SyncWalker extends WalkerBase {\n\t/**\n\t *\n\t * @param {SyncHandler} enter\n\t * @param {SyncHandler} leave\n\t */\n\tconstructor(enter, leave) {\n\t\tsuper();\n\n\t\t/** @type {SyncHandler} */\n\t\tthis.enter = enter;\n\n\t\t/** @type {SyncHandler} */\n\t\tthis.leave = leave;\n\t}\n\n\t/**\n\t *\n\t * @param {BaseNode} node\n\t * @param {BaseNode} parent\n\t * @param {string} [prop]\n\t * @param {number} [index]\n\t * @returns {BaseNode}\n\t */\n\tvisit(node, parent, prop, index) {\n\t\tif (node) {\n\t\t\tif (this.enter) {\n\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tthis.should_skip = false;\n\t\t\t\tthis.should_remove = false;\n\t\t\t\tthis.replacement = null;\n\n\t\t\t\tthis.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\tif (skipped) return node;\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\n\t\t\tfor (const key in node) {\n\t\t\t\tconst value = node[key];\n\n\t\t\t\tif (typeof value !== \"object\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\t\tif (value[i] !== null && typeof value[i].type === 'string') {\n\t\t\t\t\t\t\tif (!this.visit(value[i], node, key, i)) {\n\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (value !== null && typeof value.type === \"string\") {\n\t\t\t\t\tthis.visit(value, node, key, null);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.leave) {\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tthis.replacement = null;\n\t\t\t\tthis.should_remove = false;\n\n\t\t\t\tthis.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.replacement = _replacement;\n\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\t\t}\n\n\t\treturn node;\n\t}\n}\n\n// @ts-check\n\n/** @typedef { import('estree').BaseNode} BaseNode */\n/** @typedef { import('./walker').WalkerContext} WalkerContext */\n\n/** @typedef {(\n * this: WalkerContext,\n * node: BaseNode,\n * parent: BaseNode,\n * key: string,\n * index: number\n * ) => Promise<void>} AsyncHandler */\n\nclass AsyncWalker extends WalkerBase {\n\t/**\n\t *\n\t * @param {AsyncHandler} enter\n\t * @param {AsyncHandler} leave\n\t */\n\tconstructor(enter, leave) {\n\t\tsuper();\n\n\t\t/** @type {AsyncHandler} */\n\t\tthis.enter = enter;\n\n\t\t/** @type {AsyncHandler} */\n\t\tthis.leave = leave;\n\t}\n\n\t/**\n\t *\n\t * @param {BaseNode} node\n\t * @param {BaseNode} parent\n\t * @param {string} [prop]\n\t * @param {number} [index]\n\t * @returns {Promise<BaseNode>}\n\t */\n\tasync visit(node, parent, prop, index) {\n\t\tif (node) {\n\t\t\tif (this.enter) {\n\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tthis.should_skip = false;\n\t\t\t\tthis.should_remove = false;\n\t\t\t\tthis.replacement = null;\n\n\t\t\t\tawait this.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\tif (skipped) return node;\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\n\t\t\tfor (const key in node) {\n\t\t\t\tconst value = node[key];\n\n\t\t\t\tif (typeof value !== \"object\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\t\tif (value[i] !== null && typeof value[i].type === 'string') {\n\t\t\t\t\t\t\tif (!(await this.visit(value[i], node, key, i))) {\n\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (value !== null && typeof value.type === \"string\") {\n\t\t\t\t\tawait this.visit(value, node, key, null);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.leave) {\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tthis.replacement = null;\n\t\t\t\tthis.should_remove = false;\n\n\t\t\t\tawait this.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.replacement = _replacement;\n\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\t\t}\n\n\t\treturn node;\n\t}\n}\n\n// @ts-check\n\n/** @typedef { import('estree').BaseNode} BaseNode */\n/** @typedef { import('./sync.js').SyncHandler} SyncHandler */\n/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */\n\n/**\n *\n * @param {BaseNode} ast\n * @param {{\n * enter?: SyncHandler\n * leave?: SyncHandler\n * }} walker\n * @returns {BaseNode}\n */\nfunction walk(ast, { enter, leave }) {\n\tconst instance = new SyncWalker(enter, leave);\n\treturn instance.visit(ast, null);\n}\n\n/**\n *\n * @param {BaseNode} ast\n * @param {{\n * enter?: AsyncHandler\n * leave?: AsyncHandler\n * }} walker\n * @returns {Promise<BaseNode>}\n */\nasync function asyncWalk(ast, { enter, leave }) {\n\tconst instance = new AsyncWalker(enter, leave);\n\treturn await instance.visit(ast, null);\n}\n\nexport { asyncWalk, walk };\n","function isReference(node, parent) {\n if (node.type === 'MemberExpression') {\n return !node.computed && isReference(node.object, node);\n }\n if (node.type === 'Identifier') {\n if (!parent)\n return true;\n switch (parent.type) {\n // disregard `bar` in `foo.bar`\n case 'MemberExpression': return parent.computed || node === parent.object;\n // disregard the `foo` in `class {foo(){}}` but keep it in `class {[foo](){}}`\n case 'MethodDefinition': return parent.computed;\n // disregard the `foo` in `class {foo=bar}` but keep it in `class {[foo]=bar}` and `class {bar=foo}`\n case 'FieldDefinition': return parent.computed || node === parent.value;\n // disregard the `bar` in `{ bar: foo }`, but keep it in `{ [bar]: foo }`\n case 'Property': return parent.computed || node === parent.value;\n // disregard the `bar` in `export { foo as bar }` or\n // the foo in `import { foo as bar }`\n case 'ExportSpecifier':\n case 'ImportSpecifier': return node === parent.local;\n // disregard the `foo` in `foo: while (...) { ... break foo; ... continue foo;}`\n case 'LabeledStatement':\n case 'BreakStatement':\n case 'ContinueStatement': return false;\n default: return true;\n }\n }\n return false;\n}\n\nexport default isReference;\n","import { basename, extname, dirname, join, resolve, sep } from 'path';\nimport { makeLegalIdentifier, attachScopes, extractAssignedNames, createFilter } from '@rollup/pluginutils';\nimport getCommonDir from 'commondir';\nimport { existsSync, readFileSync, statSync } from 'fs';\nimport glob from 'glob';\nimport { walk } from 'estree-walker';\nimport MagicString from 'magic-string';\nimport isReference from 'is-reference';\nimport { sync } from 'resolve';\n\nvar peerDependencies = {\n\trollup: \"^2.38.3\"\n};\n\nfunction tryParse(parse, code, id) {\n try {\n return parse(code, { allowReturnOutsideFunction: true });\n } catch (err) {\n err.message += ` in ${id}`;\n throw err;\n }\n}\n\nconst firstpassGlobal = /\\b(?:require|module|exports|global)\\b/;\n\nconst firstpassNoGlobal = /\\b(?:require|module|exports)\\b/;\n\nfunction hasCjsKeywords(code, ignoreGlobal) {\n const firstpass = ignoreGlobal ? firstpassNoGlobal : firstpassGlobal;\n return firstpass.test(code);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nfunction analyzeTopLevelStatements(parse, code, id) {\n const ast = tryParse(parse, code, id);\n\n let isEsModule = false;\n let hasDefaultExport = false;\n let hasNamedExports = false;\n\n for (const node of ast.body) {\n switch (node.type) {\n case 'ExportDefaultDeclaration':\n isEsModule = true;\n hasDefaultExport = true;\n break;\n case 'ExportNamedDeclaration':\n isEsModule = true;\n if (node.declaration) {\n hasNamedExports = true;\n } else {\n for (const specifier of node.specifiers) {\n if (specifier.exported.name === 'default') {\n hasDefaultExport = true;\n } else {\n hasNamedExports = true;\n }\n }\n }\n break;\n case 'ExportAllDeclaration':\n isEsModule = true;\n if (node.exported && node.exported.name === 'default') {\n hasDefaultExport = true;\n } else {\n hasNamedExports = true;\n }\n break;\n case 'ImportDeclaration':\n isEsModule = true;\n break;\n }\n }\n\n return { isEsModule, hasDefaultExport, hasNamedExports, ast };\n}\n\nconst isWrappedId = (id, suffix) => id.endsWith(suffix);\nconst wrapId = (id, suffix) => `\\0${id}${suffix}`;\nconst unwrapId = (wrappedId, suffix) => wrappedId.slice(1, -suffix.length);\n\nconst PROXY_SUFFIX = '?commonjs-proxy';\nconst REQUIRE_SUFFIX = '?commonjs-require';\nconst EXTERNAL_SUFFIX = '?commonjs-external';\nconst EXPORTS_SUFFIX = '?commonjs-exports';\nconst MODULE_SUFFIX = '?commonjs-module';\n\nconst DYNAMIC_REGISTER_SUFFIX = '?commonjs-dynamic-register';\nconst DYNAMIC_JSON_PREFIX = '\\0commonjs-dynamic-json:';\nconst DYNAMIC_PACKAGES_ID = '\\0commonjs-dynamic-packages';\n\nconst HELPERS_ID = '\\0commonjsHelpers.js';\n\n// `x['default']` is used instead of `x.default` for backward compatibility with ES3 browsers.\n// Minifiers like uglify will usually transpile it back if compatibility with ES3 is not enabled.\n// This will no longer be necessary once Rollup switches to ES6 output, likely\n// in Rollup 3\n\nconst HELPERS = `\nexport var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nexport function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nexport function getDefaultExportFromNamespaceIfPresent (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;\n}\n\nexport function getDefaultExportFromNamespaceIfNotNamed (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;\n}\n\nexport function getAugmentedNamespace(n) {\n\tif (n.__esModule) return n;\n\tvar a = Object.defineProperty({}, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n`;\n\nconst FAILED_REQUIRE_ERROR = `throw new Error('Could not dynamically require \"' + path + '\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');`;\n\nconst HELPER_NON_DYNAMIC = `\nexport function commonjsRequire (path) {\n\t${FAILED_REQUIRE_ERROR}\n}\n`;\n\nconst getDynamicHelpers = (ignoreDynamicRequires) => `\nexport function createModule(modulePath) {\n\treturn {\n\t\tpath: modulePath,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, base == null ? modulePath : base);\n\t\t}\n\t};\n}\n\nexport function commonjsRegister (path, loader) {\n\tDYNAMIC_REQUIRE_LOADERS[path] = loader;\n}\n\nexport function commonjsRegisterOrShort (path, to) {\n\tconst resolvedPath = commonjsResolveImpl(path, null, true);\n\tif (resolvedPath !== null && DYNAMIC_REQUIRE_CACHE[resolvedPath]) {\n\t DYNAMIC_REQUIRE_CACHE[path] = DYNAMIC_REQUIRE_CACHE[resolvedPath];\n\t} else {\n\t DYNAMIC_REQUIRE_SHORTS[path] = to;\n\t}\n}\n\nconst DYNAMIC_REQUIRE_LOADERS = Object.create(null);\nconst DYNAMIC_REQUIRE_CACHE = Object.create(null);\nconst DYNAMIC_REQUIRE_SHORTS = Object.create(null);\nconst DEFAULT_PARENT_MODULE = {\n\tid: '<' + 'rollup>', exports: {}, parent: undefined, filename: null, loaded: false, children: [], paths: []\n};\nconst CHECKED_EXTENSIONS = ['', '.js', '.json'];\n\nfunction normalize (path) {\n\tpath = path.replace(/\\\\\\\\/g, '/');\n\tconst parts = path.split('/');\n\tconst slashed = parts[0] === '';\n\tfor (let i = 1; i < parts.length; i++) {\n\t\tif (parts[i] === '.' || parts[i] === '') {\n\t\t\tparts.splice(i--, 1);\n\t\t}\n\t}\n\tfor (let i = 1; i < parts.length; i++) {\n\t\tif (parts[i] !== '..') continue;\n\t\tif (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {\n\t\t\tparts.splice(--i, 2);\n\t\t\ti--;\n\t\t}\n\t}\n\tpath = parts.join('/');\n\tif (slashed && path[0] !== '/')\n\t path = '/' + path;\n\telse if (path.length === 0)\n\t path = '.';\n\treturn path;\n}\n\nfunction join () {\n\tif (arguments.length === 0)\n\t return '.';\n\tlet joined;\n\tfor (let i = 0; i < arguments.length; ++i) {\n\t let arg = arguments[i];\n\t if (arg.length > 0) {\n\t\tif (joined === undefined)\n\t\t joined = arg;\n\t\telse\n\t\t joined += '/' + arg;\n\t }\n\t}\n\tif (joined === undefined)\n\t return '.';\n\n\treturn joined;\n}\n\nfunction isPossibleNodeModulesPath (modulePath) {\n\tlet c0 = modulePath[0];\n\tif (c0 === '/' || c0 === '\\\\\\\\') return false;\n\tlet c1 = modulePath[1], c2 = modulePath[2];\n\tif ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\\\\\')) ||\n\t\t(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\\\\\'))) return false;\n\tif (c1 === ':' && (c2 === '/' || c2 === '\\\\\\\\'))\n\t\treturn false;\n\treturn true;\n}\n\nfunction dirname (path) {\n if (path.length === 0)\n return '.';\n\n let i = path.length - 1;\n while (i > 0) {\n const c = path.charCodeAt(i);\n if ((c === 47 || c === 92) && i !== path.length - 1)\n break;\n i--;\n }\n\n if (i > 0)\n return path.substr(0, i);\n\n if (path.chartCodeAt(0) === 47 || path.chartCodeAt(0) === 92)\n return path.charAt(0);\n\n return '.';\n}\n\nexport function commonjsResolveImpl (path, originalModuleDir, testCache) {\n\tconst shouldTryNodeModules = isPossibleNodeModulesPath(path);\n\tpath = normalize(path);\n\tlet relPath;\n\tif (path[0] === '/') {\n\t\toriginalModuleDir = '/';\n\t}\n\twhile (true) {\n\t\tif (!shouldTryNodeModules) {\n\t\t\trelPath = originalModuleDir ? normalize(originalModuleDir + '/' + path) : path;\n\t\t} else if (originalModuleDir) {\n\t\t\trelPath = normalize(originalModuleDir + '/node_modules/' + path);\n\t\t} else {\n\t\t\trelPath = normalize(join('node_modules', path));\n\t\t}\n\n\t\tif (relPath.endsWith('/..')) {\n\t\t\tbreak; // Travelled too far up, avoid infinite loop\n\t\t}\n\n\t\tfor (let extensionIndex = 0; extensionIndex < CHECKED_EXTENSIONS.length; extensionIndex++) {\n\t\t\tconst resolvedPath = relPath + CHECKED_EXTENSIONS[extensionIndex];\n\t\t\tif (DYNAMIC_REQUIRE_CACHE[resolvedPath]) {\n\t\t\t\treturn resolvedPath;\n\t\t\t}\n\t\t\tif (DYNAMIC_REQUIRE_SHORTS[resolvedPath]) {\n\t\t\t return resolvedPath;\n\t\t\t}\n\t\t\tif (DYNAMIC_REQUIRE_LOADERS[resolvedPath]) {\n\t\t\t\treturn resolvedPath;\n\t\t\t}\n\t\t}\n\t\tif (!shouldTryNodeModules) break;\n\t\tconst nextDir = normalize(originalModuleDir + '/..');\n\t\tif (nextDir === originalModuleDir) break;\n\t\toriginalModuleDir = nextDir;\n\t}\n\treturn null;\n}\n\nexport function commonjsResolve (path, originalModuleDir) {\n\tconst resolvedPath = commonjsResolveImpl(path, originalModuleDir);\n\tif (resolvedPath !== null) {\n\t\treturn resolvedPath;\n\t}\n\treturn require.resolve(path);\n}\n\nexport function commonjsRequire (path, originalModuleDir) {\n\tlet resolvedPath = commonjsResolveImpl(path, originalModuleDir, true);\n\tif (resolvedPath !== null) {\n let cachedModule = DYNAMIC_REQUIRE_CACHE[resolvedPath];\n if (cachedModule) return cachedModule.exports;\n let shortTo = DYNAMIC_REQUIRE_SHORTS[resolvedPath];\n if (shortTo) {\n cachedModule = DYNAMIC_REQUIRE_CACHE[shortTo];\n if (cachedModule)\n return cachedModule.exports;\n resolvedPath = commonjsResolveImpl(shortTo, null, true);\n }\n const loader = DYNAMIC_REQUIRE_LOADERS[resolvedPath];\n if (loader) {\n DYNAMIC_REQUIRE_CACHE[resolvedPath] = cachedModule = {\n id: resolvedPath,\n filename: resolvedPath,\n path: dirname(resolvedPath),\n exports: {},\n parent: DEFAULT_PARENT_MODULE,\n loaded: false,\n children: [],\n paths: [],\n require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? cachedModule.path : base);\n }\n };\n try {\n loader.call(commonjsGlobal, cachedModule, cachedModule.exports);\n } catch (error) {\n delete DYNAMIC_REQUIRE_CACHE[resolvedPath];\n throw error;\n }\n cachedModule.loaded = true;\n return cachedModule.exports;\n };\n\t}\n\t${ignoreDynamicRequires ? 'return require(path);' : FAILED_REQUIRE_ERROR}\n}\n\ncommonjsRequire.cache = DYNAMIC_REQUIRE_CACHE;\ncommonjsRequire.resolve = commonjsResolve;\n`;\n\nfunction getHelpersModule(isDynamicRequireModulesEnabled, ignoreDynamicRequires) {\n return `${HELPERS}${\n isDynamicRequireModulesEnabled ? getDynamicHelpers(ignoreDynamicRequires) : HELPER_NON_DYNAMIC\n }`;\n}\n\n/* eslint-disable import/prefer-default-export */\n\nfunction deconflict(scopes, globals, identifier) {\n let i = 1;\n let deconflicted = makeLegalIdentifier(identifier);\n const hasConflicts = () =>\n scopes.some((scope) => scope.contains(deconflicted)) || globals.has(deconflicted);\n\n while (hasConflicts()) {\n deconflicted = makeLegalIdentifier(`${identifier}_${i}`);\n i += 1;\n }\n\n for (const scope of scopes) {\n scope.declarations[deconflicted] = true;\n }\n\n return deconflicted;\n}\n\nfunction getName(id) {\n const name = makeLegalIdentifier(basename(id, extname(id)));\n if (name !== 'index') {\n return name;\n }\n return makeLegalIdentifier(basename(dirname(id)));\n}\n\nfunction normalizePathSlashes(path) {\n return path.replace(/\\\\/g, '/');\n}\n\nconst VIRTUAL_PATH_BASE = '/$$rollup_base$$';\nconst getVirtualPathForDynamicRequirePath = (path, commonDir) => {\n const normalizedPath = normalizePathSlashes(path);\n return normalizedPath.startsWith(commonDir)\n ? VIRTUAL_PATH_BASE + normalizedPath.slice(commonDir.length)\n : normalizedPath;\n};\n\nfunction getPackageEntryPoint(dirPath) {\n let entryPoint = 'index.js';\n\n try {\n if (existsSync(join(dirPath, 'package.json'))) {\n entryPoint =\n JSON.parse(readFileSync(join(dirPath, 'package.json'), { encoding: 'utf8' })).main ||\n entryPoint;\n }\n } catch (ignored) {\n // ignored\n }\n\n return entryPoint;\n}\n\nfunction getDynamicPackagesModule(dynamicRequireModuleDirPaths, commonDir) {\n let code = `const commonjsRegisterOrShort = require('${HELPERS_ID}?commonjsRegisterOrShort');`;\n for (const dir of dynamicRequireModuleDirPaths) {\n const entryPoint = getPackageEntryPoint(dir);\n\n code += `\\ncommonjsRegisterOrShort(${JSON.stringify(\n getVirtualPathForDynamicRequirePath(dir, commonDir)\n )}, ${JSON.stringify(getVirtualPathForDynamicRequirePath(join(dir, entryPoint), commonDir))});`;\n }\n return code;\n}\n\nfunction getDynamicPackagesEntryIntro(\n dynamicRequireModuleDirPaths,\n dynamicRequireModuleSet\n) {\n let dynamicImports = Array.from(\n dynamicRequireModuleSet,\n (dynamicId) => `require(${JSON.stringify(wrapId(dynamicId, DYNAMIC_REGISTER_SUFFIX))});`\n ).join('\\n');\n\n if (dynamicRequireModuleDirPaths.length) {\n dynamicImports += `require(${JSON.stringify(\n wrapId(DYNAMIC_PACKAGES_ID, DYNAMIC_REGISTER_SUFFIX)\n )});`;\n }\n\n return dynamicImports;\n}\n\nfunction isDynamicModuleImport(id, dynamicRequireModuleSet) {\n const normalizedPath = normalizePathSlashes(id);\n return dynamicRequireModuleSet.has(normalizedPath) && !normalizedPath.endsWith('.json');\n}\n\nfunction isDirectory(path) {\n try {\n if (statSync(path).isDirectory()) return true;\n } catch (ignored) {\n // Nothing to do here\n }\n return false;\n}\n\nfunction getDynamicRequirePaths(patterns) {\n const dynamicRequireModuleSet = new Set();\n for (const pattern of !patterns || Array.isArray(patterns) ? patterns || [] : [patterns]) {\n const isNegated = pattern.startsWith('!');\n const modifySet = Set.prototype[isNegated ? 'delete' : 'add'].bind(dynamicRequireModuleSet);\n for (const path of glob.sync(isNegated ? pattern.substr(1) : pattern)) {\n modifySet(normalizePathSlashes(resolve(path)));\n if (isDirectory(path)) {\n modifySet(normalizePathSlashes(resolve(join(path, getPackageEntryPoint(path)))));\n }\n }\n }\n const dynamicRequireModuleDirPaths = Array.from(dynamicRequireModuleSet.values()).filter((path) =>\n isDirectory(path)\n );\n return { dynamicRequireModuleSet, dynamicRequireModuleDirPaths };\n}\n\nfunction getCommonJSMetaPromise(commonJSMetaPromises, id) {\n let commonJSMetaPromise = commonJSMetaPromises.get(id);\n if (commonJSMetaPromise) return commonJSMetaPromise.promise;\n\n const promise = new Promise((resolve) => {\n commonJSMetaPromise = {\n resolve,\n promise: null\n };\n commonJSMetaPromises.set(id, commonJSMetaPromise);\n });\n commonJSMetaPromise.promise = promise;\n\n return promise;\n}\n\nfunction setCommonJSMetaPromise(commonJSMetaPromises, id, commonjsMeta) {\n const commonJSMetaPromise = commonJSMetaPromises.get(id);\n if (commonJSMetaPromise) {\n if (commonJSMetaPromise.resolve) {\n commonJSMetaPromise.resolve(commonjsMeta);\n commonJSMetaPromise.resolve = null;\n }\n } else {\n commonJSMetaPromises.set(id, { promise: Promise.resolve(commonjsMeta), resolve: null });\n }\n}\n\n// e.g. id === \"commonjsHelpers?commonjsRegister\"\nfunction getSpecificHelperProxy(id) {\n return `export {${id.split('?')[1]} as default} from \"${HELPERS_ID}\";`;\n}\n\nfunction getUnknownRequireProxy(id, requireReturnsDefault) {\n if (requireReturnsDefault === true || id.endsWith('.json')) {\n return `export {default} from ${JSON.stringify(id)};`;\n }\n const name = getName(id);\n const exported =\n requireReturnsDefault === 'auto'\n ? `import {getDefaultExportFromNamespaceIfNotNamed} from \"${HELPERS_ID}\"; export default /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(${name});`\n : requireReturnsDefault === 'preferred'\n ? `import {getDefaultExportFromNamespaceIfPresent} from \"${HELPERS_ID}\"; export default /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(${name});`\n : !requireReturnsDefault\n ? `import {getAugmentedNamespace} from \"${HELPERS_ID}\"; export default /*@__PURE__*/getAugmentedNamespace(${name});`\n : `export default ${name};`;\n return `import * as ${name} from ${JSON.stringify(id)}; ${exported}`;\n}\n\nfunction getDynamicJsonProxy(id, commonDir) {\n const normalizedPath = normalizePathSlashes(id.slice(DYNAMIC_JSON_PREFIX.length));\n return `const commonjsRegister = require('${HELPERS_ID}?commonjsRegister');\\ncommonjsRegister(${JSON.stringify(\n getVirtualPathForDynamicRequirePath(normalizedPath, commonDir)\n )}, function (module, exports) {\n module.exports = require(${JSON.stringify(normalizedPath)});\n});`;\n}\n\nfunction getDynamicRequireProxy(normalizedPath, commonDir) {\n return `const commonjsRegister = require('${HELPERS_ID}?commonjsRegister');\\ncommonjsRegister(${JSON.stringify(\n getVirtualPathForDynamicRequirePath(normalizedPath, commonDir)\n )}, function (module, exports) {\n ${readFileSync(normalizedPath, { encoding: 'utf8' })}\n});`;\n}\n\nasync function getStaticRequireProxy(\n id,\n requireReturnsDefault,\n esModulesWithDefaultExport,\n esModulesWithNamedExports,\n commonJsMetaPromises\n) {\n const name = getName(id);\n const commonjsMeta = await getCommonJSMetaPromise(commonJsMetaPromises, id);\n if (commonjsMeta && commonjsMeta.isCommonJS) {\n return `export { __moduleExports as default } from ${JSON.stringify(id)};`;\n } else if (commonjsMeta === null) {\n return getUnknownRequireProxy(id, requireReturnsDefault);\n } else if (!requireReturnsDefault) {\n return `import { getAugmentedNamespace } from \"${HELPERS_ID}\"; import * as ${name} from ${JSON.stringify(\n id\n )}; export default /*@__PURE__*/getAugmentedNamespace(${name});`;\n } else if (\n requireReturnsDefault !== true &&\n (requireReturnsDefault === 'namespace' ||\n !esModulesWithDefaultExport.has(id) ||\n (requireReturnsDefault === 'auto' && esModulesWithNamedExports.has(id)))\n ) {\n return `import * as ${name} from ${JSON.stringify(id)}; export default ${name};`;\n }\n return `export { default } from ${JSON.stringify(id)};`;\n}\n\n/* eslint-disable no-param-reassign, no-undefined */\n\nfunction getCandidatesForExtension(resolved, extension) {\n return [resolved + extension, `${resolved}${sep}index${extension}`];\n}\n\nfunction getCandidates(resolved, extensions) {\n return extensions.reduce(\n (paths, extension) => paths.concat(getCandidatesForExtension(resolved, extension)),\n [resolved]\n );\n}\n\nfunction getResolveId(extensions) {\n function resolveExtensions(importee, importer) {\n // not our problem\n if (importee[0] !== '.' || !importer) return undefined;\n\n const resolved = resolve(dirname(importer), importee);\n const candidates = getCandidates(resolved, extensions);\n\n for (let i = 0; i < candidates.length; i += 1) {\n try {\n const stats = statSync(candidates[i]);\n if (stats.isFile()) return { id: candidates[i] };\n } catch (err) {\n /* noop */\n }\n }\n\n return undefined;\n }\n\n return function resolveId(importee, rawImporter) {\n if (isWrappedId(importee, MODULE_SUFFIX) || isWrappedId(importee, EXPORTS_SUFFIX)) {\n return importee;\n }\n\n const importer =\n rawImporter && isWrappedId(rawImporter, DYNAMIC_REGISTER_SUFFIX)\n ? unwrapId(rawImporter, DYNAMIC_REGISTER_SUFFIX)\n : rawImporter;\n\n // Except for exports, proxies are only importing resolved ids,\n // no need to resolve again\n if (importer && isWrappedId(importer, PROXY_SUFFIX)) {\n return importee;\n }\n\n const isProxyModule = isWrappedId(importee, PROXY_SUFFIX);\n const isRequiredModule = isWrappedId(importee, REQUIRE_SUFFIX);\n let isModuleRegistration = false;\n\n if (isProxyModule) {\n importee = unwrapId(importee, PROXY_SUFFIX);\n } else if (isRequiredModule) {\n importee = unwrapId(importee, REQUIRE_SUFFIX);\n\n isModuleRegistration = isWrappedId(importee, DYNAMIC_REGISTER_SUFFIX);\n if (isModuleRegistration) {\n importee = unwrapId(importee, DYNAMIC_REGISTER_SUFFIX);\n }\n }\n\n if (\n importee.startsWith(HELPERS_ID) ||\n importee === DYNAMIC_PACKAGES_ID ||\n importee.startsWith(DYNAMIC_JSON_PREFIX)\n ) {\n return importee;\n }\n\n if (importee.startsWith('\\0')) {\n return null;\n }\n\n return this.resolve(importee, importer, {\n skipSelf: true,\n custom: { 'node-resolve': { isRequire: isProxyModule || isRequiredModule } }\n }).then((resolved) => {\n if (!resolved) {\n resolved = resolveExtensions(importee, importer);\n }\n if (resolved && isProxyModule) {\n resolved.id = wrapId(resolved.id, resolved.external ? EXTERNAL_SUFFIX : PROXY_SUFFIX);\n resolved.external = false;\n } else if (resolved && isModuleRegistration) {\n resolved.id = wrapId(resolved.id, DYNAMIC_REGISTER_SUFFIX);\n } else if (!resolved && (isProxyModule || isRequiredModule)) {\n return { id: wrapId(importee, EXTERNAL_SUFFIX), external: false };\n }\n return resolved;\n });\n };\n}\n\nfunction validateRollupVersion(rollupVersion, peerDependencyVersion) {\n const [major, minor] = rollupVersion.split('.').map(Number);\n const versionRegexp = /\\^(\\d+\\.\\d+)\\.\\d+/g;\n let minMajor = Infinity;\n let minMinor = Infinity;\n let foundVersion;\n // eslint-disable-next-line no-cond-assign\n while ((foundVersion = versionRegexp.exec(peerDependencyVersion))) {\n const [foundMajor, foundMinor] = foundVersion[1].split('.').map(Number);\n if (foundMajor < minMajor) {\n minMajor = foundMajor;\n minMinor = foundMinor;\n }\n }\n if (major < minMajor || (major === minMajor && minor < minMinor)) {\n throw new Error(\n `Insufficient Rollup version: \"@rollup/plugin-commonjs\" requires at least rollup@${minMajor}.${minMinor} but found rollup@${rollupVersion}.`\n );\n }\n}\n\nconst operators = {\n '==': (x) => equals(x.left, x.right, false),\n\n '!=': (x) => not(operators['=='](x)),\n\n '===': (x) => equals(x.left, x.right, true),\n\n '!==': (x) => not(operators['==='](x)),\n\n '!': (x) => isFalsy(x.argument),\n\n '&&': (x) => isTruthy(x.left) && isTruthy(x.right),\n\n '||': (x) => isTruthy(x.left) || isTruthy(x.right)\n};\n\nfunction not(value) {\n return value === null ? value : !value;\n}\n\nfunction equals(a, b, strict) {\n if (a.type !== b.type) return null;\n // eslint-disable-next-line eqeqeq\n if (a.type === 'Literal') return strict ? a.value === b.value : a.value == b.value;\n return null;\n}\n\nfunction isTruthy(node) {\n if (!node) return false;\n if (node.type === 'Literal') return !!node.value;\n if (node.type === 'ParenthesizedExpression') return isTruthy(node.expression);\n if (node.operator in operators) return operators[node.operator](node);\n return null;\n}\n\nfunction isFalsy(node) {\n return not(isTruthy(node));\n}\n\nfunction getKeypath(node) {\n const parts = [];\n\n while (node.type === 'MemberExpression') {\n if (node.computed) return null;\n\n parts.unshift(node.property.name);\n // eslint-disable-next-line no-param-reassign\n node = node.object;\n }\n\n if (node.type !== 'Identifier') return null;\n\n const { name } = node;\n parts.unshift(name);\n\n return { name, keypath: parts.join('.') };\n}\n\nconst KEY_COMPILED_ESM = '__esModule';\n\nfunction isDefineCompiledEsm(node) {\n const definedProperty =\n getDefinePropertyCallName(node, 'exports') || getDefinePropertyCallName(node, 'module.exports');\n if (definedProperty && definedProperty.key === KEY_COMPILED_ESM) {\n return isTruthy(definedProperty.value);\n }\n return false;\n}\n\nfunction getDefinePropertyCallName(node, targetName) {\n const {\n callee: { object, property }\n } = node;\n if (!object || object.type !== 'Identifier' || object.name !== 'Object') return;\n if (!property || property.type !== 'Identifier' || property.name !== 'defineProperty') return;\n if (node.arguments.length !== 3) return;\n\n const targetNames = targetName.split('.');\n const [target, key, value] = node.arguments;\n if (targetNames.length === 1) {\n if (target.type !== 'Identifier' || target.name !== targetNames[0]) {\n return;\n }\n }\n\n if (targetNames.length === 2) {\n if (\n target.type !== 'MemberExpression' ||\n target.object.name !== targetNames[0] ||\n target.property.name !== targetNames[1]\n ) {\n return;\n }\n }\n\n if (value.type !== 'ObjectExpression' || !value.properties) return;\n\n const valueProperty = value.properties.find((p) => p.key && p.key.name === 'value');\n if (!valueProperty || !valueProperty.value) return;\n\n // eslint-disable-next-line consistent-return\n return { key: key.value, value: valueProperty.value };\n}\n\nfunction isShorthandProperty(parent) {\n return parent && parent.type === 'Property' && parent.shorthand;\n}\n\nfunction hasDefineEsmProperty(node) {\n return node.properties.some((property) => {\n if (\n property.type === 'Property' &&\n property.key.type === 'Identifier' &&\n property.key.name === '__esModule' &&\n isTruthy(property.value)\n ) {\n return true;\n }\n return false;\n });\n}\n\nfunction wrapCode(magicString, uses, moduleName, exportsName) {\n const args = [];\n const passedArgs = [];\n if (uses.module) {\n args.push('module');\n passedArgs.push(moduleName);\n }\n if (uses.exports) {\n args.push('exports');\n passedArgs.push(exportsName);\n }\n magicString\n .trim()\n .prepend(`(function (${args.join(', ')}) {\\n`)\n .append(`\\n}(${passedArgs.join(', ')}));`);\n}\n\nfunction rewriteExportsAndGetExportsBlock(\n magicString,\n moduleName,\n exportsName,\n wrapped,\n moduleExportsAssignments,\n firstTopLevelModuleExportsAssignment,\n exportsAssignmentsByName,\n topLevelAssignments,\n defineCompiledEsmExpressions,\n deconflictedExportNames,\n code,\n HELPERS_NAME,\n exportMode,\n detectWrappedDefault,\n defaultIsModuleExports\n) {\n const exports = [];\n const exportDeclarations = [];\n\n if (exportMode === 'replace') {\n getExportsForReplacedModuleExports(\n magicString,\n exports,\n exportDeclarations,\n moduleExportsAssignments,\n firstTopLevelModuleExportsAssignment,\n exportsName\n );\n } else {\n exports.push(`${exportsName} as __moduleExports`);\n if (wrapped) {\n getExportsWhenWrapping(\n exportDeclarations,\n exportsName,\n detectWrappedDefault,\n HELPERS_NAME,\n defaultIsModuleExports\n );\n } else {\n getExports(\n magicString,\n exports,\n exportDeclarations,\n moduleExportsAssignments,\n exportsAssignmentsByName,\n deconflictedExportNames,\n topLevelAssignments,\n moduleName,\n exportsName,\n defineCompiledEsmExpressions,\n HELPERS_NAME,\n defaultIsModuleExports\n );\n }\n }\n if (exports.length) {\n exportDeclarations.push(`export { ${exports.join(', ')} };`);\n }\n\n return `\\n\\n${exportDeclarations.join('\\n')}`;\n}\n\nfunction getExportsForReplacedModuleExports(\n magicString,\n exports,\n exportDeclarations,\n moduleExportsAssignments,\n firstTopLevelModuleExportsAssignment,\n exportsName\n) {\n for (const { left } of moduleExportsAssignments) {\n magicString.overwrite(left.start, left.end, exportsName);\n }\n magicString.prependRight(firstTopLevelModuleExportsAssignment.left.start, 'var ');\n exports.push(`${exportsName} as __moduleExports`);\n exportDeclarations.push(`export default ${exportsName};`);\n}\n\nfunction getExportsWhenWrapping(\n exportDeclarations,\n exportsName,\n detectWrappedDefault,\n HELPERS_NAME,\n defaultIsModuleExports\n) {\n exportDeclarations.push(\n `export default ${\n detectWrappedDefault && defaultIsModuleExports === 'auto'\n ? `/*@__PURE__*/${HELPERS_NAME}.getDefaultExportFromCjs(${exportsName})`\n : defaultIsModuleExports === false\n ? `${exportsName}.default`\n : exportsName\n };`\n );\n}\n\nfunction getExports(\n magicString,\n exports,\n exportDeclarations,\n moduleExportsAssignments,\n exportsAssignmentsByName,\n deconflictedExportNames,\n topLevelAssignments,\n moduleName,\n exportsName,\n defineCompiledEsmExpressions,\n HELPERS_NAME,\n defaultIsModuleExports\n) {\n let deconflictedDefaultExportName;\n // Collect and rewrite module.exports assignments\n for (const { left } of moduleExportsAssignments) {\n magicString.overwrite(left.start, left.end, `${moduleName}.exports`);\n }\n\n // Collect and rewrite named exports\n for (const [exportName, { nodes }] of exportsAssignmentsByName) {\n const deconflicted = deconflictedExportNames[exportName];\n let needsDeclaration = true;\n for (const node of nodes) {\n let replacement = `${deconflicted} = ${exportsName}.${exportName}`;\n if (needsDeclaration && topLevelAssignments.has(node)) {\n replacement = `var ${replacement}`;\n needsDeclaration = false;\n }\n magicString.overwrite(node.start, node.left.end, replacement);\n }\n if (needsDeclaration) {\n magicString.prepend(`var ${deconflicted};\\n`);\n }\n\n if (exportName === 'default') {\n deconflictedDefaultExportName = deconflicted;\n } else {\n exports.push(exportName === deconflicted ? exportName : `${deconflicted} as ${exportName}`);\n }\n }\n\n // Collect and rewrite exports.__esModule assignments\n let isRestorableCompiledEsm = false;\n for (const expression of defineCompiledEsmExpressions) {\n isRestorableCompiledEsm = true;\n const moduleExportsExpression =\n expression.type === 'CallExpression' ? expression.arguments[0] : expression.left.object;\n magicString.overwrite(moduleExportsExpression.start, moduleExportsExpression.end, exportsName);\n }\n\n if (!isRestorableCompiledEsm || defaultIsModuleExports === true) {\n exportDeclarations.push(`export default ${exportsName};`);\n } else if (moduleExportsAssignments.length === 0 || defaultIsModuleExports === false) {\n exports.push(`${deconflictedDefaultExportName || exportsName} as default`);\n } else {\n exportDeclarations.push(\n `export default /*@__PURE__*/${HELPERS_NAME}.getDefaultExportFromCjs(${exportsName});`\n );\n }\n}\n\nfunction isRequireStatement(node, scope) {\n if (!node) return false;\n if (node.type !== 'CallExpression') return false;\n\n // Weird case of `require()` or `module.require()` without arguments\n if (node.arguments.length === 0) return false;\n\n return isRequire(node.callee, scope);\n}\n\nfunction isRequire(node, scope) {\n return (\n (node.type === 'Identifier' && node.name === 'require' && !scope.contains('require')) ||\n (node.type === 'MemberExpression' && isModuleRequire(node, scope))\n );\n}\n\nfunction isModuleRequire({ object, property }, scope) {\n return (\n object.type === 'Identifier' &&\n object.name === 'module' &&\n property.type === 'Identifier' &&\n property.name === 'require' &&\n !scope.contains('module')\n );\n}\n\nfunction isStaticRequireStatement(node, scope) {\n if (!isRequireStatement(node, scope)) return false;\n return !hasDynamicArguments(node);\n}\n\nfunction hasDynamicArguments(node) {\n return (\n node.arguments.length > 1 ||\n (node.arguments[0].type !== 'Literal' &&\n (node.arguments[0].type !== 'TemplateLiteral' || node.arguments[0].expressions.length > 0))\n );\n}\n\nconst reservedMethod = { resolve: true, cache: true, main: true };\n\nfunction isNodeRequirePropertyAccess(parent) {\n return parent && parent.property && reservedMethod[parent.property.name];\n}\n\nfunction isIgnoredRequireStatement(requiredNode, ignoreRequire) {\n return ignoreRequire(requiredNode.arguments[0].value);\n}\n\nfunction getRequireStringArg(node) {\n return node.arguments[0].type === 'Literal'\n ? node.arguments[0].value\n : node.arguments[0].quasis[0].value.cooked;\n}\n\nfunction hasDynamicModuleForPath(source, id, dynamicRequireModuleSet) {\n if (!/^(?:\\.{0,2}[/\\\\]|[A-Za-z]:[/\\\\])/.test(source)) {\n try {\n const resolvedPath = normalizePathSlashes(sync(source, { basedir: dirname(id) }));\n if (dynamicRequireModuleSet.has(resolvedPath)) {\n return true;\n }\n } catch (ex) {\n // Probably a node.js internal module\n return false;\n }\n\n return false;\n }\n\n for (const attemptExt of ['', '.js', '.json']) {\n const resolvedPath = normalizePathSlashes(resolve(dirname(id), source + attemptExt));\n if (dynamicRequireModuleSet.has(resolvedPath)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getRequireHandlers() {\n const requiredSources = [];\n const requiredBySource = Object.create(null);\n const requiredByNode = new Map();\n const requireExpressionsWithUsedReturnValue = [];\n\n function addRequireStatement(sourceId, node, scope, usesReturnValue) {\n const required = getRequired(sourceId);\n requiredByNode.set(node, { scope, required });\n if (usesReturnValue) {\n required.nodesUsingRequired.push(node);\n requireExpressionsWithUsedReturnValue.push(node);\n }\n }\n\n function getRequired(sourceId) {\n if (!requiredBySource[sourceId]) {\n requiredSources.push(sourceId);\n\n requiredBySource[sourceId] = {\n source: sourceId,\n name: null,\n nodesUsingRequired: []\n };\n }\n\n return requiredBySource[sourceId];\n }\n\n function rewriteRequireExpressionsAndGetImportBlock(\n magicString,\n topLevelDeclarations,\n topLevelRequireDeclarators,\n reassignedNames,\n helpersName,\n dynamicRegisterSources,\n moduleName,\n exportsName,\n id,\n exportMode\n ) {\n setRemainingImportNamesAndRewriteRequires(\n requireExpressionsWithUsedReturnValue,\n requiredByNode,\n magicString\n );\n const imports = [];\n imports.push(`import * as ${helpersName} from \"${HELPERS_ID}\";`);\n if (exportMode === 'module') {\n imports.push(\n `import { __module as ${moduleName}, exports as ${exportsName} } from ${JSON.stringify(\n wrapId(id, MODULE_SUFFIX)\n )}`\n );\n } else if (exportMode === 'exports') {\n imports.push(\n `import { __exports as ${exportsName} } from ${JSON.stringify(wrapId(id, EXPORTS_SUFFIX))}`\n );\n }\n for (const source of dynamicRegisterSources) {\n imports.push(`import ${JSON.stringify(wrapId(source, REQUIRE_SUFFIX))};`);\n }\n for (const source of requiredSources) {\n if (!source.startsWith('\\0')) {\n imports.push(`import ${JSON.stringify(wrapId(source, REQUIRE_SUFFIX))};`);\n }\n const { name, nodesUsingRequired } = requiredBySource[source];\n imports.push(\n `import ${nodesUsingRequired.length ? `${name} from ` : ''}${JSON.stringify(\n source.startsWith('\\0') ? source : wrapId(source, PROXY_SUFFIX)\n )};`\n );\n }\n return imports.length ? `${imports.join('\\n')}\\n\\n` : '';\n }\n\n return {\n addRequireStatement,\n requiredSources,\n rewriteRequireExpressionsAndGetImportBlock\n };\n}\n\nfunction setRemainingImportNamesAndRewriteRequires(\n requireExpressionsWithUsedReturnValue,\n requiredByNode,\n magicString\n) {\n let uid = 0;\n for (const requireExpression of requireExpressionsWithUsedReturnValue) {\n const { required } = requiredByNode.get(requireExpression);\n if (!required.name) {\n let potentialName;\n const isUsedName = (node) => requiredByNode.get(node).scope.contains(potentialName);\n do {\n potentialName = `require$$${uid}`;\n uid += 1;\n } while (required.nodesUsingRequired.some(isUsedName));\n required.name = potentialName;\n }\n magicString.overwrite(requireExpression.start, requireExpression.end, required.name);\n }\n}\n\n/* eslint-disable no-param-reassign, no-shadow, no-underscore-dangle, no-continue */\n\nconst exportsPattern = /^(?:module\\.)?exports(?:\\.([a-zA-Z_$][a-zA-Z_$0-9]*))?$/;\n\nconst functionType = /^(?:FunctionDeclaration|FunctionExpression|ArrowFunctionExpression)$/;\n\nfunction transformCommonjs(\n parse,\n code,\n id,\n isEsModule,\n ignoreGlobal,\n ignoreRequire,\n ignoreDynamicRequires,\n getIgnoreTryCatchRequireStatementMode,\n sourceMap,\n isDynamicRequireModulesEnabled,\n dynamicRequireModuleSet,\n disableWrap,\n commonDir,\n astCache,\n defaultIsModuleExports\n) {\n const ast = astCache || tryParse(parse, code, id);\n const magicString = new MagicString(code);\n const uses = {\n module: false,\n exports: false,\n global: false,\n require: false\n };\n let usesDynamicRequire = false;\n const virtualDynamicRequirePath =\n isDynamicRequireModulesEnabled && getVirtualPathForDynamicRequirePath(dirname(id), commonDir);\n let scope = attachScopes(ast, 'scope');\n let lexicalDepth = 0;\n let programDepth = 0;\n let currentTryBlockEnd = null;\n let shouldWrap = false;\n\n const globals = new Set();\n\n // TODO technically wrong since globals isn't populated yet, but ¯\\_(ツ)_/¯\n const HELPERS_NAME = deconflict([scope], globals, 'commonjsHelpers');\n const dynamicRegisterSources = new Set();\n let hasRemovedRequire = false;\n\n const {\n addRequireStatement,\n requiredSources,\n rewriteRequireExpressionsAndGetImportBlock\n } = getRequireHandlers();\n\n // See which names are assigned to. This is necessary to prevent\n // illegally replacing `var foo = require('foo')` with `import foo from 'foo'`,\n // where `foo` is later reassigned. (This happens in the wild. CommonJS, sigh)\n const reassignedNames = new Set();\n const topLevelDeclarations = [];\n const topLevelRequireDeclarators = new Set();\n const skippedNodes = new Set();\n const moduleAccessScopes = new Set([scope]);\n const exportsAccessScopes = new Set([scope]);\n const moduleExportsAssignments = [];\n let firstTopLevelModuleExportsAssignment = null;\n const exportsAssignmentsByName = new Map();\n const topLevelAssignments = new Set();\n const topLevelDefineCompiledEsmExpressions = [];\n\n walk(ast, {\n enter(node, parent) {\n if (skippedNodes.has(node)) {\n this.skip();\n return;\n }\n\n if (currentTryBlockEnd !== null && node.start > currentTryBlockEnd) {\n currentTryBlockEnd = null;\n }\n\n programDepth += 1;\n if (node.scope) ({ scope } = node);\n if (functionType.test(node.type)) lexicalDepth += 1;\n if (sourceMap) {\n magicString.addSourcemapLocation(node.start);\n magicString.addSourcemapLocation(node.end);\n }\n\n // eslint-disable-next-line default-case\n switch (node.type) {\n case 'TryStatement':\n if (currentTryBlockEnd === null) {\n currentTryBlockEnd = node.block.end;\n }\n return;\n case 'AssignmentExpression':\n if (node.left.type === 'MemberExpression') {\n const flattened = getKeypath(node.left);\n if (!flattened || scope.contains(flattened.name)) return;\n\n const exportsPatternMatch = exportsPattern.exec(flattened.keypath);\n if (!exportsPatternMatch || flattened.keypath === 'exports') return;\n\n const [, exportName] = exportsPatternMatch;\n uses[flattened.name] = true;\n\n // we're dealing with `module.exports = ...` or `[module.]exports.foo = ...` \n if (flattened.keypath === 'module.exports') {\n moduleExportsAssignments.push(node);\n if (programDepth > 3) {\n moduleAccessScopes.add(scope);\n } else if (!firstTopLevelModuleExportsAssignment) {\n firstTopLevelModuleExportsAssignment = node;\n }\n\n if (defaultIsModuleExports === false) {\n shouldWrap = true;\n } else if (defaultIsModuleExports === 'auto') {\n if (node.right.type === 'ObjectExpression') {\n if (hasDefineEsmProperty(node.right)) {\n shouldWrap = true;\n }\n } else if (defaultIsModuleExports === false) {\n shouldWrap = true;\n }\n }\n } else if (exportName === KEY_COMPILED_ESM) {\n if (programDepth > 3) {\n shouldWrap = true;\n } else {\n topLevelDefineCompiledEsmExpressions.push(node);\n }\n } else {\n const exportsAssignments = exportsAssignmentsByName.get(exportName) || {\n nodes: [],\n scopes: new Set()\n };\n exportsAssignments.nodes.push(node);\n exportsAssignments.scopes.add(scope);\n exportsAccessScopes.add(scope);\n exportsAssignmentsByName.set(exportName, exportsAssignments);\n if (programDepth <= 3) {\n topLevelAssignments.add(node);\n }\n }\n\n skippedNodes.add(node.left);\n } else {\n for (const name of extractAssignedNames(node.left)) {\n reassignedNames.add(name);\n }\n }\n return;\n case 'CallExpression': {\n if (isDefineCompiledEsm(node)) {\n if (programDepth === 3 && parent.type === 'ExpressionStatement') {\n // skip special handling for [module.]exports until we know we render this\n skippedNodes.add(node.arguments[0]);\n topLevelDefineCompiledEsmExpressions.push(node);\n } else {\n shouldWrap = true;\n }\n return;\n }\n\n if (\n node.callee.object &&\n node.callee.object.name === 'require' &&\n node.callee.property.name === 'resolve' &&\n hasDynamicModuleForPath(id, '/', dynamicRequireModuleSet)\n ) {\n const requireNode = node.callee.object;\n magicString.appendLeft(\n node.end - 1,\n `,${JSON.stringify(\n dirname(id) === '.' ? null /* default behavior */ : virtualDynamicRequirePath\n )}`\n );\n magicString.overwrite(\n requireNode.start,\n requireNode.end,\n `${HELPERS_NAME}.commonjsRequire`,\n {\n storeName: true\n }\n );\n return;\n }\n\n if (!isStaticRequireStatement(node, scope)) return;\n if (!isDynamicRequireModulesEnabled) {\n skippedNodes.add(node.callee);\n }\n if (!isIgnoredRequireStatement(node, ignoreRequire)) {\n skippedNodes.add(node.callee);\n const usesReturnValue = parent.type !== 'ExpressionStatement';\n\n let canConvertRequire = true;\n let shouldRemoveRequireStatement = false;\n\n if (currentTryBlockEnd !== null) {\n ({\n canConvertRequire,\n shouldRemoveRequireStatement\n } = getIgnoreTryCatchRequireStatementMode(node.arguments[0].value));\n\n if (shouldRemoveRequireStatement) {\n hasRemovedRequire = true;\n }\n }\n\n let sourceId = getRequireStringArg(node);\n const isDynamicRegister = isWrappedId(sourceId, DYNAMIC_REGISTER_SUFFIX);\n if (isDynamicRegister) {\n sourceId = unwrapId(sourceId, DYNAMIC_REGISTER_SUFFIX);\n if (sourceId.endsWith('.json')) {\n sourceId = DYNAMIC_JSON_PREFIX + sourceId;\n }\n dynamicRegisterSources.add(wrapId(sourceId, DYNAMIC_REGISTER_SUFFIX));\n } else {\n if (\n !sourceId.endsWith('.json') &&\n hasDynamicModuleForPath(sourceId, id, dynamicRequireModuleSet)\n ) {\n if (shouldRemoveRequireStatement) {\n magicString.overwrite(node.start, node.end, `undefined`);\n } else if (canConvertRequire) {\n magicString.overwrite(\n node.start,\n node.end,\n `${HELPERS_NAME}.commonjsRequire(${JSON.stringify(\n getVirtualPathForDynamicRequirePath(sourceId, commonDir)\n )}, ${JSON.stringify(\n dirname(id) === '.' ? null /* default behavior */ : virtualDynamicRequirePath\n )})`\n );\n usesDynamicRequire = true;\n }\n return;\n }\n\n if (canConvertRequire) {\n addRequireStatement(sourceId, node, scope, usesReturnValue);\n }\n }\n\n if (usesReturnValue) {\n if (shouldRemoveRequireStatement) {\n magicString.overwrite(node.start, node.end, `undefined`);\n return;\n }\n\n if (\n parent.type === 'VariableDeclarator' &&\n !scope.parent &&\n parent.id.type === 'Identifier'\n ) {\n // This will allow us to reuse this variable name as the imported variable if it is not reassigned\n // and does not conflict with variables in other places where this is imported\n topLevelRequireDeclarators.add(parent);\n }\n } else {\n // This is a bare import, e.g. `require('foo');`\n\n if (!canConvertRequire && !shouldRemoveRequireStatement) {\n return;\n }\n\n magicString.remove(parent.start, parent.end);\n }\n }\n return;\n }\n case 'ConditionalExpression':\n case 'IfStatement':\n // skip dead branches\n if (isFalsy(node.test)) {\n skippedNodes.add(node.consequent);\n } else if (node.alternate && isTruthy(node.test)) {\n skippedNodes.add(node.alternate);\n }\n return;\n case 'Identifier': {\n const { name } = node;\n if (!(isReference(node, parent) && !scope.contains(name))) return;\n switch (name) {\n case 'require':\n if (isNodeRequirePropertyAccess(parent)) {\n if (hasDynamicModuleForPath(id, '/', dynamicRequireModuleSet)) {\n if (parent.property.name === 'cache') {\n magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsRequire`, {\n storeName: true\n });\n }\n }\n\n return;\n }\n\n if (isDynamicRequireModulesEnabled && isRequireStatement(parent, scope)) {\n magicString.appendLeft(\n parent.end - 1,\n `,${JSON.stringify(\n dirname(id) === '.' ? null /* default behavior */ : virtualDynamicRequirePath\n )}`\n );\n }\n if (!ignoreDynamicRequires) {\n if (isShorthandProperty(parent)) {\n magicString.appendRight(node.end, `: ${HELPERS_NAME}.commonjsRequire`);\n } else {\n magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsRequire`, {\n storeName: true\n });\n }\n }\n usesDynamicRequire = true;\n return;\n case 'module':\n case 'exports':\n shouldWrap = true;\n uses[name] = true;\n return;\n case 'global':\n uses.global = true;\n if (!ignoreGlobal) {\n magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsGlobal`, {\n storeName: true\n });\n }\n return;\n case 'define':\n magicString.overwrite(node.start, node.end, 'undefined', {\n storeName: true\n });\n return;\n default:\n globals.add(name);\n return;\n }\n }\n case 'MemberExpression':\n if (!isDynamicRequireModulesEnabled && isModuleRequire(node, scope)) {\n magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsRequire`, {\n storeName: true\n });\n skippedNodes.add(node.object);\n skippedNodes.add(node.property);\n }\n return;\n case 'ReturnStatement':\n // if top-level return, we need to wrap it\n if (lexicalDepth === 0) {\n shouldWrap = true;\n }\n return;\n case 'ThisExpression':\n // rewrite top-level `this` as `commonjsHelpers.commonjsGlobal`\n if (lexicalDepth === 0) {\n uses.global = true;\n if (!ignoreGlobal) {\n magicString.overwrite(node.start, node.end, `${HELPERS_NAME}.commonjsGlobal`, {\n storeName: true\n });\n }\n }\n return;\n case 'UnaryExpression':\n // rewrite `typeof module`, `typeof module.exports` and `typeof exports` (https://github.com/rollup/rollup-plugin-commonjs/issues/151)\n if (node.operator === 'typeof') {\n const flattened = getKeypath(node.argument);\n if (!flattened) return;\n\n if (scope.contains(flattened.name)) return;\n\n if (\n flattened.keypath === 'module.exports' ||\n flattened.keypath === 'module' ||\n flattened.keypath === 'exports'\n ) {\n magicString.overwrite(node.start, node.end, `'object'`, {\n storeName: false\n });\n }\n }\n return;\n case 'VariableDeclaration':\n if (!scope.parent) {\n topLevelDeclarations.push(node);\n }\n }\n },\n\n leave(node) {\n programDepth -= 1;\n if (node.scope) scope = scope.parent;\n if (functionType.test(node.type)) lexicalDepth -= 1;\n }\n });\n\n const nameBase = getName(id);\n const exportsName = deconflict([...exportsAccessScopes], globals, nameBase);\n const moduleName = deconflict([...moduleAccessScopes], globals, `${nameBase}Module`);\n const deconflictedExportNames = Object.create(null);\n for (const [exportName, { scopes }] of exportsAssignmentsByName) {\n deconflictedExportNames[exportName] = deconflict([...scopes], globals, exportName);\n }\n\n // We cannot wrap ES/mixed modules\n shouldWrap =\n !isEsModule &&\n !disableWrap &&\n (shouldWrap || (uses.exports && moduleExportsAssignments.length > 0));\n const detectWrappedDefault =\n shouldWrap &&\n (topLevelDefineCompiledEsmExpressions.length > 0 || code.indexOf('__esModule') >= 0);\n\n if (\n !(\n requiredSources.length ||\n dynamicRegisterSources.size ||\n uses.module ||\n uses.exports ||\n uses.require ||\n usesDynamicRequire ||\n hasRemovedRequire ||\n topLevelDefineCompiledEsmExpressions.length > 0\n ) &&\n (ignoreGlobal || !uses.global)\n ) {\n return { meta: { commonjs: { isCommonJS: false } } };\n }\n\n let leadingComment = '';\n if (code.startsWith('/*')) {\n const commentEnd = code.indexOf('*/', 2) + 2;\n leadingComment = `${code.slice(0, commentEnd)}\\n`;\n magicString.remove(0, commentEnd).trim();\n }\n\n const exportMode = shouldWrap\n ? uses.module\n ? 'module'\n : 'exports'\n : firstTopLevelModuleExportsAssignment\n ? exportsAssignmentsByName.size === 0 && topLevelDefineCompiledEsmExpressions.length === 0\n ? 'replace'\n : 'module'\n : moduleExportsAssignments.length === 0\n ? 'exports'\n : 'module';\n\n const importBlock = rewriteRequireExpressionsAndGetImportBlock(\n magicString,\n topLevelDeclarations,\n topLevelRequireDeclarators,\n reassignedNames,\n HELPERS_NAME,\n dynamicRegisterSources,\n moduleName,\n exportsName,\n id,\n exportMode\n );\n\n const exportBlock = isEsModule\n ? ''\n : rewriteExportsAndGetExportsBlock(\n magicString,\n moduleName,\n exportsName,\n shouldWrap,\n moduleExportsAssignments,\n firstTopLevelModuleExportsAssignment,\n exportsAssignmentsByName,\n topLevelAssignments,\n topLevelDefineCompiledEsmExpressions,\n deconflictedExportNames,\n code,\n HELPERS_NAME,\n exportMode,\n detectWrappedDefault,\n defaultIsModuleExports\n );\n\n if (shouldWrap) {\n wrapCode(magicString, uses, moduleName, exportsName);\n }\n\n magicString\n .trim()\n .prepend(leadingComment + importBlock)\n .append(exportBlock);\n\n return {\n code: magicString.toString(),\n map: sourceMap ? magicString.generateMap() : null,\n syntheticNamedExports: isEsModule ? false : '__moduleExports',\n meta: { commonjs: { isCommonJS: !isEsModule } }\n };\n}\n\nfunction commonjs(options = {}) {\n const extensions = options.extensions || ['.js'];\n const filter = createFilter(options.include, options.exclude);\n const {\n ignoreGlobal,\n ignoreDynamicRequires,\n requireReturnsDefault: requireReturnsDefaultOption,\n esmExternals\n } = options;\n const getRequireReturnsDefault =\n typeof requireReturnsDefaultOption === 'function'\n ? requireReturnsDefaultOption\n : () => requireReturnsDefaultOption;\n let esmExternalIds;\n const isEsmExternal =\n typeof esmExternals === 'function'\n ? esmExternals\n : Array.isArray(esmExternals)\n ? ((esmExternalIds = new Set(esmExternals)), (id) => esmExternalIds.has(id))\n : () => esmExternals;\n const defaultIsModuleExports =\n typeof options.defaultIsModuleExports === 'boolean' ? options.defaultIsModuleExports : 'auto';\n\n const { dynamicRequireModuleSet, dynamicRequireModuleDirPaths } = getDynamicRequirePaths(\n options.dynamicRequireTargets\n );\n const isDynamicRequireModulesEnabled = dynamicRequireModuleSet.size > 0;\n const commonDir = isDynamicRequireModulesEnabled\n ? getCommonDir(null, Array.from(dynamicRequireModuleSet).concat(process.cwd()))\n : null;\n\n const esModulesWithDefaultExport = new Set();\n const esModulesWithNamedExports = new Set();\n const commonJsMetaPromises = new Map();\n\n const ignoreRequire =\n typeof options.ignore === 'function'\n ? options.ignore\n : Array.isArray(options.ignore)\n ? (id) => options.ignore.includes(id)\n : () => false;\n\n const getIgnoreTryCatchRequireStatementMode = (id) => {\n const mode =\n typeof options.ignoreTryCatch === 'function'\n ? options.ignoreTryCatch(id)\n : Array.isArray(options.ignoreTryCatch)\n ? options.ignoreTryCatch.includes(id)\n : options.ignoreTryCatch || false;\n\n return {\n canConvertRequire: mode !== 'remove' && mode !== true,\n shouldRemoveRequireStatement: mode === 'remove'\n };\n };\n\n const resolveId = getResolveId(extensions);\n\n const sourceMap = options.sourceMap !== false;\n\n function transformAndCheckExports(code, id) {\n if (isDynamicRequireModulesEnabled && this.getModuleInfo(id).isEntry) {\n // eslint-disable-next-line no-param-reassign\n code =\n getDynamicPackagesEntryIntro(dynamicRequireModuleDirPaths, dynamicRequireModuleSet) + code;\n }\n\n const { isEsModule, hasDefaultExport, hasNamedExports, ast } = analyzeTopLevelStatements(\n this.parse,\n code,\n id\n );\n if (hasDefaultExport) {\n esModulesWithDefaultExport.add(id);\n }\n if (hasNamedExports) {\n esModulesWithNamedExports.add(id);\n }\n\n if (\n !dynamicRequireModuleSet.has(normalizePathSlashes(id)) &&\n (!hasCjsKeywords(code, ignoreGlobal) || (isEsModule && !options.transformMixedEsModules))\n ) {\n return { meta: { commonjs: { isCommonJS: false } } };\n }\n\n // avoid wrapping as this is a commonjsRegister call\n const disableWrap = isWrappedId(id, DYNAMIC_REGISTER_SUFFIX);\n if (disableWrap) {\n // eslint-disable-next-line no-param-reassign\n id = unwrapId(id, DYNAMIC_REGISTER_SUFFIX);\n }\n\n return transformCommonjs(\n this.parse,\n code,\n id,\n isEsModule,\n ignoreGlobal || isEsModule,\n ignoreRequire,\n ignoreDynamicRequires && !isDynamicRequireModulesEnabled,\n getIgnoreTryCatchRequireStatementMode,\n sourceMap,\n isDynamicRequireModulesEnabled,\n dynamicRequireModuleSet,\n disableWrap,\n commonDir,\n ast,\n defaultIsModuleExports\n );\n }\n\n return {\n name: 'commonjs',\n\n buildStart() {\n validateRollupVersion(this.meta.rollupVersion, peerDependencies.rollup);\n if (options.namedExports != null) {\n this.warn(\n 'The namedExports option from \"@rollup/plugin-commonjs\" is deprecated. Named exports are now handled automatically.'\n );\n }\n },\n\n resolveId,\n\n load(id) {\n if (id === HELPERS_ID) {\n return getHelpersModule(isDynamicRequireModulesEnabled, ignoreDynamicRequires);\n }\n\n if (id.startsWith(HELPERS_ID)) {\n return getSpecificHelperProxy(id);\n }\n\n if (isWrappedId(id, MODULE_SUFFIX)) {\n const actualId = unwrapId(id, MODULE_SUFFIX);\n let name = getName(actualId);\n let code;\n if (isDynamicRequireModulesEnabled) {\n if (['modulePath', 'commonjsRequire', 'createModule'].includes(name)) {\n name = `${name}_`;\n }\n code =\n `import {commonjsRequire, createModule} from \"${HELPERS_ID}\";\\n` +\n `var ${name} = createModule(${JSON.stringify(\n getVirtualPathForDynamicRequirePath(dirname(actualId), commonDir)\n )});\\n` +\n `export {${name} as __module}`;\n } else {\n code = `var ${name} = {exports: {}}; export {${name} as __module}`;\n }\n return {\n code,\n syntheticNamedExports: '__module',\n meta: { commonjs: { isCommonJS: false } }\n };\n }\n\n if (isWrappedId(id, EXPORTS_SUFFIX)) {\n const actualId = unwrapId(id, EXPORTS_SUFFIX);\n const name = getName(actualId);\n return {\n code: `var ${name} = {}; export {${name} as __exports}`,\n meta: { commonjs: { isCommonJS: false } }\n };\n }\n\n if (isWrappedId(id, EXTERNAL_SUFFIX)) {\n const actualId = unwrapId(id, EXTERNAL_SUFFIX);\n return getUnknownRequireProxy(\n actualId,\n isEsmExternal(actualId) ? getRequireReturnsDefault(actualId) : true\n );\n }\n\n if (id === DYNAMIC_PACKAGES_ID) {\n return getDynamicPackagesModule(dynamicRequireModuleDirPaths, commonDir);\n }\n\n if (id.startsWith(DYNAMIC_JSON_PREFIX)) {\n return getDynamicJsonProxy(id, commonDir);\n }\n\n if (isDynamicModuleImport(id, dynamicRequireModuleSet)) {\n return `export default require(${JSON.stringify(normalizePathSlashes(id))});`;\n }\n\n if (isWrappedId(id, DYNAMIC_REGISTER_SUFFIX)) {\n return getDynamicRequireProxy(\n normalizePathSlashes(unwrapId(id, DYNAMIC_REGISTER_SUFFIX)),\n commonDir\n );\n }\n\n if (isWrappedId(id, PROXY_SUFFIX)) {\n const actualId = unwrapId(id, PROXY_SUFFIX);\n return getStaticRequireProxy(\n actualId,\n getRequireReturnsDefault(actualId),\n esModulesWithDefaultExport,\n esModulesWithNamedExports,\n commonJsMetaPromises\n );\n }\n\n return null;\n },\n\n transform(code, rawId) {\n let id = rawId;\n\n if (isWrappedId(id, DYNAMIC_REGISTER_SUFFIX)) {\n id = unwrapId(id, DYNAMIC_REGISTER_SUFFIX);\n }\n\n const extName = extname(id);\n if (\n extName !== '.cjs' &&\n id !== DYNAMIC_PACKAGES_ID &&\n !id.startsWith(DYNAMIC_JSON_PREFIX) &&\n (!filter(id) || !extensions.includes(extName))\n ) {\n return null;\n }\n\n try {\n return transformAndCheckExports.call(this, code, rawId);\n } catch (err) {\n return this.error(err, err.loc);\n }\n },\n\n moduleParsed({ id, meta: { commonjs: commonjsMeta } }) {\n if (commonjsMeta && commonjsMeta.isCommonJS != null) {\n setCommonJSMetaPromise(commonJsMetaPromises, id, commonjsMeta);\n return;\n }\n setCommonJSMetaPromise(commonJsMetaPromises, id, null);\n }\n };\n}\n\nexport default commonjs;\n//# sourceMappingURL=index.es.js.map\n","'use strict';\n\nmodule.exports = (...arguments_) => {\n\treturn [...new Set([].concat(...arguments_))];\n};\n","'use strict';\nconst {promisify} = require('util');\nconst fs = require('fs');\n\nasync function isType(fsStatType, statsMethodName, filePath) {\n\tif (typeof filePath !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\n\t}\n\n\ttry {\n\t\tconst stats = await promisify(fs[fsStatType])(filePath);\n\t\treturn stats[statsMethodName]();\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nfunction isTypeSync(fsStatType, statsMethodName, filePath) {\n\tif (typeof filePath !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\n\t}\n\n\ttry {\n\t\treturn fs[fsStatType](filePath)[statsMethodName]();\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nexports.isFile = isType.bind(null, 'stat', 'isFile');\nexports.isDirectory = isType.bind(null, 'stat', 'isDirectory');\nexports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink');\nexports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile');\nexports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory');\nexports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink');\n","'use strict';\nconst path = require('path');\nconst pathType = require('path-type');\n\nconst getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0];\n\nconst getPath = (filepath, cwd) => {\n\tconst pth = filepath[0] === '!' ? filepath.slice(1) : filepath;\n\treturn path.isAbsolute(pth) ? pth : path.join(cwd, pth);\n};\n\nconst addExtensions = (file, extensions) => {\n\tif (path.extname(file)) {\n\t\treturn `**/${file}`;\n\t}\n\n\treturn `**/${file}.${getExtensions(extensions)}`;\n};\n\nconst getGlob = (directory, options) => {\n\tif (options.files && !Array.isArray(options.files)) {\n\t\tthrow new TypeError(`Expected \\`files\\` to be of type \\`Array\\` but received type \\`${typeof options.files}\\``);\n\t}\n\n\tif (options.extensions && !Array.isArray(options.extensions)) {\n\t\tthrow new TypeError(`Expected \\`extensions\\` to be of type \\`Array\\` but received type \\`${typeof options.extensions}\\``);\n\t}\n\n\tif (options.files && options.extensions) {\n\t\treturn options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions)));\n\t}\n\n\tif (options.files) {\n\t\treturn options.files.map(x => path.posix.join(directory, `**/${x}`));\n\t}\n\n\tif (options.extensions) {\n\t\treturn [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)];\n\t}\n\n\treturn [path.posix.join(directory, '**')];\n};\n\nmodule.exports = async (input, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\t...options\n\t};\n\n\tif (typeof options.cwd !== 'string') {\n\t\tthrow new TypeError(`Expected \\`cwd\\` to be of type \\`string\\` but received type \\`${typeof options.cwd}\\``);\n\t}\n\n\tconst globs = await Promise.all([].concat(input).map(async x => {\n\t\tconst isDirectory = await pathType.isDirectory(getPath(x, options.cwd));\n\t\treturn isDirectory ? getGlob(x, options) : x;\n\t}));\n\n\treturn [].concat.apply([], globs); // eslint-disable-line prefer-spread\n};\n\nmodule.exports.sync = (input, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\t...options\n\t};\n\n\tif (typeof options.cwd !== 'string') {\n\t\tthrow new TypeError(`Expected \\`cwd\\` to be of type \\`string\\` but received type \\`${typeof options.cwd}\\``);\n\t}\n\n\tconst globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x);\n\n\treturn [].concat.apply([], globs); // eslint-disable-line prefer-spread\n};\n","// A simple implementation of make-array\nfunction makeArray (subject) {\n return Array.isArray(subject)\n ? subject\n : [subject]\n}\n\nconst EMPTY = ''\nconst SPACE = ' '\nconst ESCAPE = '\\\\'\nconst REGEX_TEST_BLANK_LINE = /^\\s+$/\nconst REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\\\!/\nconst REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\\\#/\nconst REGEX_SPLITALL_CRLF = /\\r?\\n/g\n// /foo,\n// ./foo,\n// ../foo,\n// .\n// ..\nconst REGEX_TEST_INVALID_PATH = /^\\.*\\/|^\\.+$/\n\nconst SLASH = '/'\nconst KEY_IGNORE = typeof Symbol !== 'undefined'\n ? Symbol.for('node-ignore')\n /* istanbul ignore next */\n : 'node-ignore'\n\nconst define = (object, key, value) =>\n Object.defineProperty(object, key, {value})\n\nconst REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g\n\n// Sanitize the range of a regular expression\n// The cases are complicated, see test cases for details\nconst sanitizeRange = range => range.replace(\n REGEX_REGEXP_RANGE,\n (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0)\n ? match\n // Invalid range (out of order) which is ok for gitignore rules but\n // fatal for JavaScript regular expression, so eliminate it.\n : EMPTY\n)\n\n// See fixtures #59\nconst cleanRangeBackSlash = slashes => {\n const {length} = slashes\n return slashes.slice(0, length - length % 2)\n}\n\n// > If the pattern ends with a slash,\n// > it is removed for the purpose of the following description,\n// > but it would only find a match with a directory.\n// > In other words, foo/ will match a directory foo and paths underneath it,\n// > but will not match a regular file or a symbolic link foo\n// > (this is consistent with the way how pathspec works in general in Git).\n// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'\n// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call\n// you could use option `mark: true` with `glob`\n\n// '`foo/`' should not continue with the '`..`'\nconst REPLACERS = [\n\n // > Trailing spaces are ignored unless they are quoted with backslash (\"\\\")\n [\n // (a\\ ) -> (a )\n // (a ) -> (a)\n // (a \\ ) -> (a )\n /\\\\?\\s+$/,\n match => match.indexOf('\\\\') === 0\n ? SPACE\n : EMPTY\n ],\n\n // replace (\\ ) with ' '\n [\n /\\\\\\s/g,\n () => SPACE\n ],\n\n // Escape metacharacters\n // which is written down by users but means special for regular expressions.\n\n // > There are 12 characters with special meanings:\n // > - the backslash \\,\n // > - the caret ^,\n // > - the dollar sign $,\n // > - the period or dot .,\n // > - the vertical bar or pipe symbol |,\n // > - the question mark ?,\n // > - the asterisk or star *,\n // > - the plus sign +,\n // > - the opening parenthesis (,\n // > - the closing parenthesis ),\n // > - and the opening square bracket [,\n // > - the opening curly brace {,\n // > These special characters are often called \"metacharacters\".\n [\n /[\\\\$.|*+(){^]/g,\n match => `\\\\${match}`\n ],\n\n [\n // > a question mark (?) matches a single character\n /(?!\\\\)\\?/g,\n () => '[^/]'\n ],\n\n // leading slash\n [\n\n // > A leading slash matches the beginning of the pathname.\n // > For example, \"/*.c\" matches \"cat-file.c\" but not \"mozilla-sha1/sha1.c\".\n // A leading slash matches the beginning of the pathname\n /^\\//,\n () => '^'\n ],\n\n // replace special metacharacter slash after the leading slash\n [\n /\\//g,\n () => '\\\\/'\n ],\n\n [\n // > A leading \"**\" followed by a slash means match in all directories.\n // > For example, \"**/foo\" matches file or directory \"foo\" anywhere,\n // > the same as pattern \"foo\".\n // > \"**/foo/bar\" matches file or directory \"bar\" anywhere that is directly\n // > under directory \"foo\".\n // Notice that the '*'s have been replaced as '\\\\*'\n /^\\^*\\\\\\*\\\\\\*\\\\\\//,\n\n // '**/foo' <-> 'foo'\n () => '^(?:.*\\\\/)?'\n ],\n\n // starting\n [\n // there will be no leading '/'\n // (which has been replaced by section \"leading slash\")\n // If starts with '**', adding a '^' to the regular expression also works\n /^(?=[^^])/,\n function startingReplacer () {\n // If has a slash `/` at the beginning or middle\n return !/\\/(?!$)/.test(this)\n // > Prior to 2.22.1\n // > If the pattern does not contain a slash /,\n // > Git treats it as a shell glob pattern\n // Actually, if there is only a trailing slash,\n // git also treats it as a shell glob pattern\n\n // After 2.22.1 (compatible but clearer)\n // > If there is a separator at the beginning or middle (or both)\n // > of the pattern, then the pattern is relative to the directory\n // > level of the particular .gitignore file itself.\n // > Otherwise the pattern may also match at any level below\n // > the .gitignore level.\n ? '(?:^|\\\\/)'\n\n // > Otherwise, Git treats the pattern as a shell glob suitable for\n // > consumption by fnmatch(3)\n : '^'\n }\n ],\n\n // two globstars\n [\n // Use lookahead assertions so that we could match more than one `'/**'`\n /\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,\n\n // Zero, one or several directories\n // should not use '*', or it will be replaced by the next replacer\n\n // Check if it is not the last `'/**'`\n (_, index, str) => index + 6 < str.length\n\n // case: /**/\n // > A slash followed by two consecutive asterisks then a slash matches\n // > zero or more directories.\n // > For example, \"a/**/b\" matches \"a/b\", \"a/x/b\", \"a/x/y/b\" and so on.\n // '/**/'\n ? '(?:\\\\/[^\\\\/]+)*'\n\n // case: /**\n // > A trailing `\"/**\"` matches everything inside.\n\n // #21: everything inside but it should not include the current folder\n : '\\\\/.+'\n ],\n\n // intermediate wildcards\n [\n // Never replace escaped '*'\n // ignore rule '\\*' will match the path '*'\n\n // 'abc.*/' -> go\n // 'abc.*' -> skip this rule\n /(^|[^\\\\]+)\\\\\\*(?=.+)/g,\n\n // '*.js' matches '.js'\n // '*.js' doesn't match 'abc'\n (_, p1) => `${p1}[^\\\\/]*`\n ],\n\n [\n // unescape, revert step 3 except for back slash\n // For example, if a user escape a '\\\\*',\n // after step 3, the result will be '\\\\\\\\\\\\*'\n /\\\\\\\\\\\\(?=[$.|*+(){^])/g,\n () => ESCAPE\n ],\n\n [\n // '\\\\\\\\' -> '\\\\'\n /\\\\\\\\/g,\n () => ESCAPE\n ],\n\n [\n // > The range notation, e.g. [a-zA-Z],\n // > can be used to match one of the characters in a range.\n\n // `\\` is escaped by step 3\n /(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,\n (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE\n // '\\\\[bar]' -> '\\\\\\\\[bar\\\\]'\n ? `\\\\[${range}${cleanRangeBackSlash(endEscape)}${close}`\n : close === ']'\n ? endEscape.length % 2 === 0\n // A normal case, and it is a range notation\n // '[bar]'\n // '[bar\\\\\\\\]'\n ? `[${sanitizeRange(range)}${endEscape}]`\n // Invalid range notaton\n // '[bar\\\\]' -> '[bar\\\\\\\\]'\n : '[]'\n : '[]'\n ],\n\n // ending\n [\n // 'js' will not match 'js.'\n // 'ab' will not match 'abc'\n /(?:[^*])$/,\n\n // WTF!\n // https://git-scm.com/docs/gitignore\n // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)\n // which re-fixes #24, #38\n\n // > If there is a separator at the end of the pattern then the pattern\n // > will only match directories, otherwise the pattern can match both\n // > files and directories.\n\n // 'js*' will not match 'a.js'\n // 'js/' will not match 'a.js'\n // 'js' will match 'a.js' and 'a.js/'\n match => /\\/$/.test(match)\n // foo/ will not match 'foo'\n ? `${match}$`\n // foo matches 'foo' and 'foo/'\n : `${match}(?=$|\\\\/$)`\n ],\n\n // trailing wildcard\n [\n /(\\^|\\\\\\/)?\\\\\\*$/,\n (_, p1) => {\n const prefix = p1\n // '\\^':\n // '/*' does not match EMPTY\n // '/*' does not match everything\n\n // '\\\\\\/':\n // 'abc/*' does not match 'abc/'\n ? `${p1}[^/]+`\n\n // 'a*' matches 'a'\n // 'a*' matches 'aa'\n : '[^/]*'\n\n return `${prefix}(?=$|\\\\/$)`\n }\n ],\n]\n\n// A simple cache, because an ignore rule only has only one certain meaning\nconst regexCache = Object.create(null)\n\n// @param {pattern}\nconst makeRegex = (pattern, negative, ignorecase) => {\n const r = regexCache[pattern]\n if (r) {\n return r\n }\n\n // const replacers = negative\n // ? NEGATIVE_REPLACERS\n // : POSITIVE_REPLACERS\n\n const source = REPLACERS.reduce(\n (prev, current) => prev.replace(current[0], current[1].bind(pattern)),\n pattern\n )\n\n return regexCache[pattern] = ignorecase\n ? new RegExp(source, 'i')\n : new RegExp(source)\n}\n\nconst isString = subject => typeof subject === 'string'\n\n// > A blank line matches no files, so it can serve as a separator for readability.\nconst checkPattern = pattern => pattern\n && isString(pattern)\n && !REGEX_TEST_BLANK_LINE.test(pattern)\n\n // > A line starting with # serves as a comment.\n && pattern.indexOf('#') !== 0\n\nconst splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF)\n\nclass IgnoreRule {\n constructor (\n origin,\n pattern,\n negative,\n regex\n ) {\n this.origin = origin\n this.pattern = pattern\n this.negative = negative\n this.regex = regex\n }\n}\n\nconst createRule = (pattern, ignorecase) => {\n const origin = pattern\n let negative = false\n\n // > An optional prefix \"!\" which negates the pattern;\n if (pattern.indexOf('!') === 0) {\n negative = true\n pattern = pattern.substr(1)\n }\n\n pattern = pattern\n // > Put a backslash (\"\\\") in front of the first \"!\" for patterns that\n // > begin with a literal \"!\", for example, `\"\\!important!.txt\"`.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!')\n // > Put a backslash (\"\\\") in front of the first hash for patterns that\n // > begin with a hash.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')\n\n const regex = makeRegex(pattern, negative, ignorecase)\n\n return new IgnoreRule(\n origin,\n pattern,\n negative,\n regex\n )\n}\n\nconst throwError = (message, Ctor) => {\n throw new Ctor(message)\n}\n\nconst checkPath = (path, originalPath, doThrow) => {\n if (!isString(path)) {\n return doThrow(\n `path must be a string, but got \\`${originalPath}\\``,\n TypeError\n )\n }\n\n // We don't know if we should ignore EMPTY, so throw\n if (!path) {\n return doThrow(`path must not be empty`, TypeError)\n }\n\n // Check if it is a relative path\n if (checkPath.isNotRelative(path)) {\n const r = '`path.relative()`d'\n return doThrow(\n `path should be a ${r} string, but got \"${originalPath}\"`,\n RangeError\n )\n }\n\n return true\n}\n\nconst isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path)\n\ncheckPath.isNotRelative = isNotRelative\ncheckPath.convert = p => p\n\nclass Ignore {\n constructor ({\n ignorecase = true\n } = {}) {\n this._rules = []\n this._ignorecase = ignorecase\n define(this, KEY_IGNORE, true)\n this._initCache()\n }\n\n _initCache () {\n this._ignoreCache = Object.create(null)\n this._testCache = Object.create(null)\n }\n\n _addPattern (pattern) {\n // #32\n if (pattern && pattern[KEY_IGNORE]) {\n this._rules = this._rules.concat(pattern._rules)\n this._added = true\n return\n }\n\n if (checkPattern(pattern)) {\n const rule = createRule(pattern, this._ignorecase)\n this._added = true\n this._rules.push(rule)\n }\n }\n\n // @param {Array<string> | string | Ignore} pattern\n add (pattern) {\n this._added = false\n\n makeArray(\n isString(pattern)\n ? splitPattern(pattern)\n : pattern\n ).forEach(this._addPattern, this)\n\n // Some rules have just added to the ignore,\n // making the behavior changed.\n if (this._added) {\n this._initCache()\n }\n\n return this\n }\n\n // legacy\n addPattern (pattern) {\n return this.add(pattern)\n }\n\n // | ignored : unignored\n // negative | 0:0 | 0:1 | 1:0 | 1:1\n // -------- | ------- | ------- | ------- | --------\n // 0 | TEST | TEST | SKIP | X\n // 1 | TESTIF | SKIP | TEST | X\n\n // - SKIP: always skip\n // - TEST: always test\n // - TESTIF: only test if checkUnignored\n // - X: that never happen\n\n // @param {boolean} whether should check if the path is unignored,\n // setting `checkUnignored` to `false` could reduce additional\n // path matching.\n\n // @returns {TestResult} true if a file is ignored\n _testOne (path, checkUnignored) {\n let ignored = false\n let unignored = false\n\n this._rules.forEach(rule => {\n const {negative} = rule\n if (\n unignored === negative && ignored !== unignored\n || negative && !ignored && !unignored && !checkUnignored\n ) {\n return\n }\n\n const matched = rule.regex.test(path)\n\n if (matched) {\n ignored = !negative\n unignored = negative\n }\n })\n\n return {\n ignored,\n unignored\n }\n }\n\n // @returns {TestResult}\n _test (originalPath, cache, checkUnignored, slices) {\n const path = originalPath\n // Supports nullable path\n && checkPath.convert(originalPath)\n\n checkPath(path, originalPath, throwError)\n\n return this._t(path, cache, checkUnignored, slices)\n }\n\n _t (path, cache, checkUnignored, slices) {\n if (path in cache) {\n return cache[path]\n }\n\n if (!slices) {\n // path/to/a.js\n // ['path', 'to', 'a.js']\n slices = path.split(SLASH)\n }\n\n slices.pop()\n\n // If the path has no parent directory, just test it\n if (!slices.length) {\n return cache[path] = this._testOne(path, checkUnignored)\n }\n\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n cache,\n checkUnignored,\n slices\n )\n\n // If the path contains a parent directory, check the parent first\n return cache[path] = parent.ignored\n // > It is not possible to re-include a file if a parent directory of\n // > that file is excluded.\n ? parent\n : this._testOne(path, checkUnignored)\n }\n\n ignores (path) {\n return this._test(path, this._ignoreCache, false).ignored\n }\n\n createFilter () {\n return path => !this.ignores(path)\n }\n\n filter (paths) {\n return makeArray(paths).filter(this.createFilter())\n }\n\n // @returns {TestResult}\n test (path) {\n return this._test(path, this._testCache, true)\n }\n}\n\nconst factory = options => new Ignore(options)\n\nconst returnFalse = () => false\n\nconst isPathValid = path =>\n checkPath(path && checkPath.convert(path), path, returnFalse)\n\nfactory.isPathValid = isPathValid\n\n// Fixes typescript\nfactory.default = factory\n\nmodule.exports = factory\n\n// Windows\n// --------------------------------------------------------------\n/* istanbul ignore if */\nif (\n // Detect `process` so that it can run in browsers.\n typeof process !== 'undefined'\n && (\n process.env && process.env.IGNORE_TEST_WIN32\n || process.platform === 'win32'\n )\n) {\n /* eslint no-control-regex: \"off\" */\n const makePosix = str => /^\\\\\\\\\\?\\\\/.test(str)\n || /[\"<>|\\u0000-\\u001F]+/u.test(str)\n ? str\n : str.replace(/\\\\/g, '/')\n\n checkPath.convert = makePosix\n\n // 'C:\\\\foo' <- 'C:\\\\foo' has been converted to 'C:/'\n // 'd:\\\\foo'\n const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\\//i\n checkPath.isNotRelative = path =>\n REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path)\n || isNotRelative(path)\n}\n","'use strict';\nmodule.exports = path => {\n\tconst isExtendedLengthPath = /^\\\\\\\\\\?\\\\/.test(path);\n\tconst hasNonAscii = /[^\\u0000-\\u0080]+/.test(path); // eslint-disable-line no-control-regex\n\n\tif (isExtendedLengthPath || hasNonAscii) {\n\t\treturn path;\n\t}\n\n\treturn path.replace(/\\\\/g, '/');\n};\n","'use strict';\nconst {promisify} = require('util');\nconst fs = require('fs');\nconst path = require('path');\nconst fastGlob = require('fast-glob');\nconst gitIgnore = require('ignore');\nconst slash = require('slash');\n\nconst DEFAULT_IGNORE = [\n\t'**/node_modules/**',\n\t'**/flow-typed/**',\n\t'**/coverage/**',\n\t'**/.git'\n];\n\nconst readFileP = promisify(fs.readFile);\n\nconst mapGitIgnorePatternTo = base => ignore => {\n\tif (ignore.startsWith('!')) {\n\t\treturn '!' + path.posix.join(base, ignore.slice(1));\n\t}\n\n\treturn path.posix.join(base, ignore);\n};\n\nconst parseGitIgnore = (content, options) => {\n\tconst base = slash(path.relative(options.cwd, path.dirname(options.fileName)));\n\n\treturn content\n\t\t.split(/\\r?\\n/)\n\t\t.filter(Boolean)\n\t\t.filter(line => !line.startsWith('#'))\n\t\t.map(mapGitIgnorePatternTo(base));\n};\n\nconst reduceIgnore = files => {\n\tconst ignores = gitIgnore();\n\tfor (const file of files) {\n\t\tignores.add(parseGitIgnore(file.content, {\n\t\t\tcwd: file.cwd,\n\t\t\tfileName: file.filePath\n\t\t}));\n\t}\n\n\treturn ignores;\n};\n\nconst ensureAbsolutePathForCwd = (cwd, p) => {\n\tcwd = slash(cwd);\n\tif (path.isAbsolute(p)) {\n\t\tif (slash(p).startsWith(cwd)) {\n\t\t\treturn p;\n\t\t}\n\n\t\tthrow new Error(`Path ${p} is not in cwd ${cwd}`);\n\t}\n\n\treturn path.join(cwd, p);\n};\n\nconst getIsIgnoredPredecate = (ignores, cwd) => {\n\treturn p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, p.path || p))));\n};\n\nconst getFile = async (file, cwd) => {\n\tconst filePath = path.join(cwd, file);\n\tconst content = await readFileP(filePath, 'utf8');\n\n\treturn {\n\t\tcwd,\n\t\tfilePath,\n\t\tcontent\n\t};\n};\n\nconst getFileSync = (file, cwd) => {\n\tconst filePath = path.join(cwd, file);\n\tconst content = fs.readFileSync(filePath, 'utf8');\n\n\treturn {\n\t\tcwd,\n\t\tfilePath,\n\t\tcontent\n\t};\n};\n\nconst normalizeOptions = ({\n\tignore = [],\n\tcwd = slash(process.cwd())\n} = {}) => {\n\treturn {ignore, cwd};\n};\n\nmodule.exports = async options => {\n\toptions = normalizeOptions(options);\n\n\tconst paths = await fastGlob('**/.gitignore', {\n\t\tignore: DEFAULT_IGNORE.concat(options.ignore),\n\t\tcwd: options.cwd\n\t});\n\n\tconst files = await Promise.all(paths.map(file => getFile(file, options.cwd)));\n\tconst ignores = reduceIgnore(files);\n\n\treturn getIsIgnoredPredecate(ignores, options.cwd);\n};\n\nmodule.exports.sync = options => {\n\toptions = normalizeOptions(options);\n\n\tconst paths = fastGlob.sync('**/.gitignore', {\n\t\tignore: DEFAULT_IGNORE.concat(options.ignore),\n\t\tcwd: options.cwd\n\t});\n\n\tconst files = paths.map(file => getFileSync(file, options.cwd));\n\tconst ignores = reduceIgnore(files);\n\n\treturn getIsIgnoredPredecate(ignores, options.cwd);\n};\n","'use strict';\nconst {Transform} = require('stream');\n\nclass ObjectTransform extends Transform {\n\tconstructor() {\n\t\tsuper({\n\t\t\tobjectMode: true\n\t\t});\n\t}\n}\n\nclass FilterStream extends ObjectTransform {\n\tconstructor(filter) {\n\t\tsuper();\n\t\tthis._filter = filter;\n\t}\n\n\t_transform(data, encoding, callback) {\n\t\tif (this._filter(data)) {\n\t\t\tthis.push(data);\n\t\t}\n\n\t\tcallback();\n\t}\n}\n\nclass UniqueStream extends ObjectTransform {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._pushed = new Set();\n\t}\n\n\t_transform(data, encoding, callback) {\n\t\tif (!this._pushed.has(data)) {\n\t\t\tthis.push(data);\n\t\t\tthis._pushed.add(data);\n\t\t}\n\n\t\tcallback();\n\t}\n}\n\nmodule.exports = {\n\tFilterStream,\n\tUniqueStream\n};\n","'use strict';\nconst fs = require('fs');\nconst arrayUnion = require('array-union');\nconst merge2 = require('merge2');\nconst fastGlob = require('fast-glob');\nconst dirGlob = require('dir-glob');\nconst gitignore = require('./gitignore');\nconst {FilterStream, UniqueStream} = require('./stream-utils');\n\nconst DEFAULT_FILTER = () => false;\n\nconst isNegative = pattern => pattern[0] === '!';\n\nconst assertPatternsInput = patterns => {\n\tif (!patterns.every(pattern => typeof pattern === 'string')) {\n\t\tthrow new TypeError('Patterns must be a string or an array of strings');\n\t}\n};\n\nconst checkCwdOption = (options = {}) => {\n\tif (!options.cwd) {\n\t\treturn;\n\t}\n\n\tlet stat;\n\ttry {\n\t\tstat = fs.statSync(options.cwd);\n\t} catch {\n\t\treturn;\n\t}\n\n\tif (!stat.isDirectory()) {\n\t\tthrow new Error('The `cwd` option must be a path to a directory');\n\t}\n};\n\nconst getPathString = p => p.stats instanceof fs.Stats ? p.path : p;\n\nconst generateGlobTasks = (patterns, taskOptions) => {\n\tpatterns = arrayUnion([].concat(patterns));\n\tassertPatternsInput(patterns);\n\tcheckCwdOption(taskOptions);\n\n\tconst globTasks = [];\n\n\ttaskOptions = {\n\t\tignore: [],\n\t\texpandDirectories: true,\n\t\t...taskOptions\n\t};\n\n\tfor (const [index, pattern] of patterns.entries()) {\n\t\tif (isNegative(pattern)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst ignore = patterns\n\t\t\t.slice(index)\n\t\t\t.filter(pattern => isNegative(pattern))\n\t\t\t.map(pattern => pattern.slice(1));\n\n\t\tconst options = {\n\t\t\t...taskOptions,\n\t\t\tignore: taskOptions.ignore.concat(ignore)\n\t\t};\n\n\t\tglobTasks.push({pattern, options});\n\t}\n\n\treturn globTasks;\n};\n\nconst globDirs = (task, fn) => {\n\tlet options = {};\n\tif (task.options.cwd) {\n\t\toptions.cwd = task.options.cwd;\n\t}\n\n\tif (Array.isArray(task.options.expandDirectories)) {\n\t\toptions = {\n\t\t\t...options,\n\t\t\tfiles: task.options.expandDirectories\n\t\t};\n\t} else if (typeof task.options.expandDirectories === 'object') {\n\t\toptions = {\n\t\t\t...options,\n\t\t\t...task.options.expandDirectories\n\t\t};\n\t}\n\n\treturn fn(task.pattern, options);\n};\n\nconst getPattern = (task, fn) => task.options.expandDirectories ? globDirs(task, fn) : [task.pattern];\n\nconst getFilterSync = options => {\n\treturn options && options.gitignore ?\n\t\tgitignore.sync({cwd: options.cwd, ignore: options.ignore}) :\n\t\tDEFAULT_FILTER;\n};\n\nconst globToTask = task => glob => {\n\tconst {options} = task;\n\tif (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) {\n\t\toptions.ignore = dirGlob.sync(options.ignore);\n\t}\n\n\treturn {\n\t\tpattern: glob,\n\t\toptions\n\t};\n};\n\nmodule.exports = async (patterns, options) => {\n\tconst globTasks = generateGlobTasks(patterns, options);\n\n\tconst getFilter = async () => {\n\t\treturn options && options.gitignore ?\n\t\t\tgitignore({cwd: options.cwd, ignore: options.ignore}) :\n\t\t\tDEFAULT_FILTER;\n\t};\n\n\tconst getTasks = async () => {\n\t\tconst tasks = await Promise.all(globTasks.map(async task => {\n\t\t\tconst globs = await getPattern(task, dirGlob);\n\t\t\treturn Promise.all(globs.map(globToTask(task)));\n\t\t}));\n\n\t\treturn arrayUnion(...tasks);\n\t};\n\n\tconst [filter, tasks] = await Promise.all([getFilter(), getTasks()]);\n\tconst paths = await Promise.all(tasks.map(task => fastGlob(task.pattern, task.options)));\n\n\treturn arrayUnion(...paths).filter(path_ => !filter(getPathString(path_)));\n};\n\nmodule.exports.sync = (patterns, options) => {\n\tconst globTasks = generateGlobTasks(patterns, options);\n\n\tconst tasks = [];\n\tfor (const task of globTasks) {\n\t\tconst newTask = getPattern(task, dirGlob.sync).map(globToTask(task));\n\t\ttasks.push(...newTask);\n\t}\n\n\tconst filter = getFilterSync(options);\n\n\tlet matches = [];\n\tfor (const task of tasks) {\n\t\tmatches = arrayUnion(matches, fastGlob.sync(task.pattern, task.options));\n\t}\n\n\treturn matches.filter(path_ => !filter(path_));\n};\n\nmodule.exports.stream = (patterns, options) => {\n\tconst globTasks = generateGlobTasks(patterns, options);\n\n\tconst tasks = [];\n\tfor (const task of globTasks) {\n\t\tconst newTask = getPattern(task, dirGlob.sync).map(globToTask(task));\n\t\ttasks.push(...newTask);\n\t}\n\n\tconst filter = getFilterSync(options);\n\tconst filterStream = new FilterStream(p => !filter(p));\n\tconst uniqueStream = new UniqueStream();\n\n\treturn merge2(tasks.map(task => fastGlob.stream(task.pattern, task.options)))\n\t\t.pipe(filterStream)\n\t\t.pipe(uniqueStream);\n};\n\nmodule.exports.generateGlobTasks = generateGlobTasks;\n\nmodule.exports.hasMagic = (patterns, options) => []\n\t.concat(patterns)\n\t.some(pattern => fastGlob.isDynamicPattern(pattern, options));\n\nmodule.exports.gitignore = gitignore;\n","import path from 'path';\nimport { walk } from 'estree-walker';\nimport MagicString from 'magic-string';\nimport globby from 'globby';\nimport { createFilter } from '@rollup/pluginutils';\n\nclass VariableDynamicImportError extends Error {}\n\n/* eslint-disable-next-line no-template-curly-in-string */\nconst example = 'For example: import(`./foo/${bar}.js`).';\n\nfunction sanitizeString(str) {\n if (str.includes('*')) {\n throw new VariableDynamicImportError('A dynamic import cannot contain * characters.');\n }\n return str;\n}\n\nfunction templateLiteralToGlob(node) {\n let glob = '';\n\n for (let i = 0; i < node.quasis.length; i += 1) {\n glob += sanitizeString(node.quasis[i].value.raw);\n if (node.expressions[i]) {\n glob += expressionToGlob(node.expressions[i]);\n }\n }\n\n return glob;\n}\n\nfunction callExpressionToGlob(node) {\n const { callee } = node;\n if (\n callee.type === 'MemberExpression' &&\n callee.property.type === 'Identifier' &&\n callee.property.name === 'concat'\n ) {\n return `${expressionToGlob(callee.object)}${node.arguments.map(expressionToGlob).join('')}`;\n }\n return '*';\n}\n\nfunction binaryExpressionToGlob(node) {\n if (node.operator !== '+') {\n throw new VariableDynamicImportError(`${node.operator} operator is not supported.`);\n }\n\n return `${expressionToGlob(node.left)}${expressionToGlob(node.right)}`;\n}\n\nfunction expressionToGlob(node) {\n switch (node.type) {\n case 'TemplateLiteral':\n return templateLiteralToGlob(node);\n case 'CallExpression':\n return callExpressionToGlob(node);\n case 'BinaryExpression':\n return binaryExpressionToGlob(node);\n case 'Literal': {\n return sanitizeString(node.value);\n }\n default:\n return '*';\n }\n}\n\nfunction dynamicImportToGlob(node, sourceString) {\n let glob = expressionToGlob(node);\n if (!glob.includes('*')) {\n return null;\n }\n glob = glob.replace(/\\*\\*/g, '*');\n\n if (glob.startsWith('*')) {\n throw new VariableDynamicImportError(\n `invalid import \"${sourceString}\". It cannot be statically analyzed. Variable dynamic imports must start with ./ and be limited to a specific directory. ${example}`\n );\n }\n\n if (glob.startsWith('/')) {\n throw new VariableDynamicImportError(\n `invalid import \"${sourceString}\". Variable absolute imports are not supported, imports must start with ./ in the static part of the import. ${example}`\n );\n }\n\n if (!glob.startsWith('./') && !glob.startsWith('../')) {\n throw new VariableDynamicImportError(\n `invalid import \"${sourceString}\". Variable bare imports are not supported, imports must start with ./ in the static part of the import. ${example}`\n );\n }\n\n // Disallow ./*.ext\n const ownDirectoryStarExtension = /^\\.\\/\\*\\.[\\w]+$/;\n if (ownDirectoryStarExtension.test(glob)) {\n throw new VariableDynamicImportError(\n `${\n `invalid import \"${sourceString}\". Variable imports cannot import their own directory, ` +\n 'place imports in a separate directory or make the import filename more specific. '\n }${example}`\n );\n }\n\n if (path.extname(glob) === '') {\n throw new VariableDynamicImportError(\n `invalid import \"${sourceString}\". A file extension must be included in the static part of the import. ${example}`\n );\n }\n\n return glob;\n}\n\nfunction dynamicImportVariables({ include, exclude, warnOnError } = {}) {\n const filter = createFilter(include, exclude);\n\n return {\n name: 'rollup-plugin-dynamic-import-variables',\n\n transform(code, id) {\n if (!filter(id)) {\n return null;\n }\n\n const parsed = this.parse(code);\n\n let dynamicImportIndex = -1;\n let ms;\n\n walk(parsed, {\n enter: (node) => {\n if (node.type !== 'ImportExpression') {\n return;\n }\n dynamicImportIndex += 1;\n\n try {\n // see if this is a variable dynamic import, and generate a glob expression\n const glob = dynamicImportToGlob(node.source, code.substring(node.start, node.end));\n\n if (!glob) {\n // this was not a variable dynamic import\n return;\n }\n\n // execute the glob\n const result = globby.sync(glob, { cwd: path.dirname(id) });\n const paths = result.map((r) =>\n r.startsWith('./') || r.startsWith('../') ? r : `./${r}`\n );\n\n // create magic string if it wasn't created already\n ms = ms || new MagicString(code);\n // unpack variable dynamic import into a function with import statements per file, rollup\n // will turn these into chunks automatically\n ms.prepend(\n `function __variableDynamicImportRuntime${dynamicImportIndex}__(path) {\n switch (path) {\n${paths.map((p) => ` case '${p}': return import('${p}');`).join('\\n')}\n${` default: return new Promise(function(resolve, reject) {\n (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(\n reject.bind(null, new Error(\"Unknown variable dynamic import: \" + path))\n );\n })\\n`} }\n }\\n\\n`\n );\n // call the runtime function instead of doing a dynamic import, the import specifier will\n // be evaluated at runtime and the correct import will be returned by the injected function\n ms.overwrite(\n node.start,\n node.start + 6,\n `__variableDynamicImportRuntime${dynamicImportIndex}__`\n );\n } catch (error) {\n if (error instanceof VariableDynamicImportError) {\n // TODO: line number\n if (warnOnError) {\n this.warn(error);\n } else {\n this.error(error);\n }\n } else {\n this.error(error);\n }\n }\n }\n });\n\n if (ms && dynamicImportIndex !== -1) {\n return {\n code: ms.toString(),\n map: ms.generateMap({\n file: id,\n includeContent: true,\n hires: true\n })\n };\n }\n return null;\n }\n };\n}\n\nexport default dynamicImportVariables;\nexport { VariableDynamicImportError, dynamicImportToGlob };\n","// This is based on @rollup/plugin-data-uri\n// MIT Licensed https://github.com/rollup/plugins/blob/master/LICENSE\n// ref https://github.com/vitejs/vite/issues/1428#issuecomment-757033808\nimport { Plugin } from '../plugin'\nimport { URL } from 'url'\n\nconst dataUriRE = /^([^/]+\\/[^;,]+)(;base64)?,([\\s\\S]*)$/\n\nconst dataUriPrefix = `/@data-uri/`\n\n/**\n * Build only, since importing from a data URI works natively.\n */\nexport function dataURIPlugin(): Plugin {\n let resolved: {\n [key: string]: string\n }\n\n return {\n name: 'vite:data-uri',\n\n buildStart() {\n resolved = {}\n },\n\n resolveId(id) {\n if (!dataUriRE.test(id)) {\n return null\n }\n\n const uri = new URL(id)\n if (uri.protocol !== 'data:') {\n return null\n }\n\n const match = uri.pathname.match(dataUriRE)\n if (!match) {\n return null\n }\n\n const [, mime, format, data] = match\n if (mime !== 'text/javascript') {\n throw new Error(\n `data URI with non-JavaScript mime type is not supported.`\n )\n }\n\n // decode data\n const base64 = format && /base64/i.test(format.substring(1))\n const content = base64\n ? Buffer.from(data, 'base64').toString('utf-8')\n : data\n resolved[id] = content\n return dataUriPrefix + id\n },\n\n load(id) {\n if (id.startsWith(dataUriPrefix)) {\n id = id.slice(dataUriPrefix.length)\n return resolved[id] || null\n }\n }\n }\n}\n","/**\n * @param {object} exports\n * @param {Set<string>} keys\n */\nfunction loop(exports, keys) {\n\tif (typeof exports === 'string') {\n\t\treturn exports;\n\t}\n\n\tif (exports) {\n\t\tlet idx, tmp;\n\t\tif (Array.isArray(exports)) {\n\t\t\tfor (idx=0; idx < exports.length; idx++) {\n\t\t\t\tif (tmp = loop(exports[idx], keys)) return tmp;\n\t\t\t}\n\t\t} else {\n\t\t\tfor (idx in exports) {\n\t\t\t\tif (keys.has(idx)) {\n\t\t\t\t\treturn loop(exports[idx], keys);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {string} name The package name\n * @param {string} entry The target entry, eg \".\"\n * @param {number} [condition] Unmatched condition?\n */\nfunction bail(name, entry, condition) {\n\tthrow new Error(\n\t\tcondition\n\t\t? `No known conditions for \"${entry}\" entry in \"${name}\" package`\n\t\t: `Missing \"${entry}\" export in \"${name}\" package`\n\t);\n}\n\n/**\n * @param {string} name the package name\n * @param {string} entry the target path/import\n */\nfunction toName(name, entry) {\n\treturn entry === name ? '.'\n\t\t: entry[0] === '.' ? entry\n\t\t: entry.replace(new RegExp('^' + name + '\\/'), './');\n}\n\n/**\n * @param {object} pkg package.json contents\n * @param {string} [entry] entry name or import path\n * @param {object} [options]\n * @param {boolean} [options.browser]\n * @param {boolean} [options.require]\n * @param {string[]} [options.conditions]\n */\nexport function resolve(pkg, entry='.', options={}) {\n\tlet { name, exports } = pkg;\n\n\tif (exports) {\n\t\tlet { browser, require, conditions=[] } = options;\n\n\t\tlet target = toName(name, entry);\n\t\tif (target[0] !== '.') target = './' + target;\n\n\t\tif (typeof exports === 'string') {\n\t\t\treturn target === '.' ? exports : bail(name, target);\n\t\t}\n\n\t\tlet allows = new Set(['default', ...conditions]);\n\t\tallows.add(require ? 'require' : 'import');\n\t\tallows.add(browser ? 'browser' : 'node');\n\n\t\tlet key, tmp, isSingle=false;\n\n\t\tfor (key in exports) {\n\t\t\tisSingle = key[0] !== '.';\n\t\t\tbreak;\n\t\t}\n\n\t\tif (isSingle) {\n\t\t\treturn target === '.'\n\t\t\t\t? loop(exports, allows) || bail(name, target, 1)\n\t\t\t\t: bail(name, target);\n\t\t}\n\n\t\tif (tmp = exports[target]) {\n\t\t\treturn loop(tmp, allows) || bail(name, target, 1);\n\t\t}\n\n\t\tfor (key in exports) {\n\t\t\ttmp = key[key.length - 1];\n\t\t\tif (tmp === '/' && target.startsWith(key)) {\n\t\t\t\treturn (tmp = loop(exports[key], allows))\n\t\t\t\t\t? (tmp + target.substring(key.length))\n\t\t\t\t\t: bail(name, target, 1);\n\t\t\t}\n\t\t\tif (tmp === '*' && target.startsWith(key.slice(0, -1))) {\n\t\t\t\t// do not trigger if no *content* to inject\n\t\t\t\tif (target.substring(key.length - 1).length > 0) {\n\t\t\t\t\treturn (tmp = loop(exports[key], allows))\n\t\t\t\t\t\t? tmp.replace('*', target.substring(key.length - 1))\n\t\t\t\t\t\t: bail(name, target, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn bail(name, target);\n\t}\n}\n\n/**\n * @param {object} pkg\n * @param {object} [options]\n * @param {string|boolean} [options.browser]\n * @param {string[]} [options.fields]\n */\nexport function legacy(pkg, options={}) {\n\tlet i=0, value,\n\t\tbrowser = options.browser,\n\t\tfields = options.fields || ['module', 'main'];\n\n\tif (browser && !fields.includes('browser')) {\n\t\tfields.unshift('browser');\n\t}\n\n\tfor (; i < fields.length; i++) {\n\t\tif (value = pkg[fields[i]]) {\n\t\t\tif (typeof value == 'string') {\n\t\t\t\t//\n\t\t\t} else if (typeof value == 'object' && fields[i] == 'browser') {\n\t\t\t\tif (typeof browser == 'string') {\n\t\t\t\t\tvalue = value[browser=toName(pkg.name, browser)];\n\t\t\t\t\tif (value == null) return browser;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\treturn typeof value == 'string'\n\t\t\t\t? ('./' + value.replace(/^\\.?\\//, ''))\n\t\t\t\t: value;\n\t\t}\n\t}\n}\n","import fs from 'fs'\nimport path from 'path'\nimport { Plugin } from '../plugin'\nimport chalk from 'chalk'\nimport {\n FS_PREFIX,\n SPECIAL_QUERY_RE,\n DEFAULT_EXTENSIONS,\n DEFAULT_MAIN_FIELDS,\n OPTIMIZABLE_ENTRY_RE\n} from '../constants'\nimport {\n isBuiltin,\n bareImportRE,\n createDebugger,\n deepImportRE,\n injectQuery,\n isExternalUrl,\n isObject,\n normalizePath,\n fsPathFromId,\n ensureVolumeInPath,\n resolveFrom,\n isDataUrl,\n cleanUrl,\n slash,\n nestedResolveFrom\n} from '../utils'\nimport { ViteDevServer, SSROptions } from '..'\nimport { createFilter } from '@rollup/pluginutils'\nimport { PartialResolvedId } from 'rollup'\nimport { resolve as _resolveExports } from 'resolve.exports'\n\n// special id for paths marked with browser: false\n// https://github.com/defunctzombie/package-browser-field-spec#ignore-a-module\nexport const browserExternalId = '__vite-browser-external'\n\nconst isDebug = process.env.DEBUG\nconst debug = createDebugger('vite:resolve-details', {\n onlyWhenFocused: true\n})\n\nexport interface ResolveOptions {\n mainFields?: string[]\n conditions?: string[]\n extensions?: string[]\n dedupe?: string[]\n}\n\nexport interface InternalResolveOptions extends ResolveOptions {\n root: string\n isBuild: boolean\n isProduction: boolean\n ssrConfig?: SSROptions\n /**\n * src code mode also attempts the following:\n * - resolving /xxx as URLs\n * - resolving bare imports from optimized deps\n */\n asSrc?: boolean\n tryIndex?: boolean\n tryPrefix?: string\n skipPackageJson?: boolean\n preferRelative?: boolean\n isRequire?: boolean\n}\n\nexport function resolvePlugin(baseOptions: InternalResolveOptions): Plugin {\n const {\n root,\n isProduction,\n asSrc,\n ssrConfig,\n preferRelative = false\n } = baseOptions\n const requireOptions: InternalResolveOptions = {\n ...baseOptions,\n isRequire: true\n }\n let server: ViteDevServer | undefined\n\n const { target: ssrTarget, noExternal: ssrNoExternal } = ssrConfig ?? {}\n\n return {\n name: 'vite:resolve',\n\n configureServer(_server) {\n server = _server\n },\n\n resolveId(id, importer, resolveOpts, ssr) {\n if (id.startsWith(browserExternalId)) {\n return id\n }\n\n // fast path for commonjs proxy modules\n if (/\\?commonjs/.test(id) || id === 'commonjsHelpers.js') {\n return\n }\n\n const targetWeb = !ssr || ssrTarget === 'webworker'\n\n // this is passed by @rollup/plugin-commonjs\n const isRequire =\n resolveOpts &&\n resolveOpts.custom &&\n resolveOpts.custom['node-resolve'] &&\n resolveOpts.custom['node-resolve'].isRequire\n\n const options = isRequire ? requireOptions : baseOptions\n\n let res: string | PartialResolvedId | undefined\n\n // explicit fs paths that starts with /@fs/*\n if (asSrc && id.startsWith(FS_PREFIX)) {\n const fsPath = fsPathFromId(id)\n res = tryFsResolve(fsPath, options)\n isDebug && debug(`[@fs] ${chalk.cyan(id)} -> ${chalk.dim(res)}`)\n // always return here even if res doesn't exist since /@fs/ is explicit\n // if the file doesn't exist it should be a 404\n return res || fsPath\n }\n\n // URL\n // /foo -> /fs-root/foo\n if (asSrc && id.startsWith('/')) {\n const fsPath = path.resolve(root, id.slice(1))\n if ((res = tryFsResolve(fsPath, options))) {\n isDebug && debug(`[url] ${chalk.cyan(id)} -> ${chalk.dim(res)}`)\n return res\n }\n }\n\n // relative\n if (id.startsWith('.') || (preferRelative && /^\\w/.test(id))) {\n const basedir = importer ? path.dirname(importer) : process.cwd()\n const fsPath = path.resolve(basedir, id)\n // handle browser field mapping for relative imports\n\n const normalizedFsPath = normalizePath(fsPath)\n const pathFromBasedir = normalizedFsPath.slice(basedir.length)\n if (pathFromBasedir.startsWith('/node_modules/')) {\n // normalize direct imports from node_modules to bare imports, so the\n // hashing logic is shared and we avoid duplicated modules #2503\n const bareImport = pathFromBasedir.slice('/node_modules/'.length)\n if (\n (res = tryNodeResolve(\n bareImport,\n importer,\n options,\n targetWeb,\n server,\n ssr\n )) &&\n res.id.startsWith(normalizedFsPath)\n ) {\n return res\n }\n }\n\n if (\n targetWeb &&\n (res = tryResolveBrowserMapping(fsPath, importer, options, true))\n ) {\n return res\n }\n\n if ((res = tryFsResolve(fsPath, options))) {\n isDebug && debug(`[relative] ${chalk.cyan(id)} -> ${chalk.dim(res)}`)\n const pkg = importer != null && idToPkgMap.get(importer)\n if (pkg) {\n idToPkgMap.set(res, pkg)\n return {\n id: res,\n moduleSideEffects: pkg.hasSideEffects(res)\n }\n }\n return res\n }\n }\n\n // absolute fs paths\n if (path.isAbsolute(id) && (res = tryFsResolve(id, options))) {\n isDebug && debug(`[fs] ${chalk.cyan(id)} -> ${chalk.dim(res)}`)\n return res\n }\n\n // external\n if (isExternalUrl(id)) {\n return {\n id,\n external: true\n }\n }\n\n // data uri: pass through (this only happens during build and will be\n // handled by dedicated plugin)\n if (isDataUrl(id)) {\n return null\n }\n\n // bare package imports, perform node resolve\n if (bareImportRE.test(id)) {\n if (\n asSrc &&\n server &&\n !ssr &&\n (res = tryOptimizedResolve(id, server, importer))\n ) {\n return res\n }\n\n if (\n targetWeb &&\n (res = tryResolveBrowserMapping(id, importer, options, false))\n ) {\n return res\n }\n\n if (\n (res = tryNodeResolve(id, importer, options, targetWeb, server, ssr))\n ) {\n return res\n }\n\n // node built-ins.\n // externalize if building for SSR, otherwise redirect to empty module\n if (isBuiltin(id)) {\n if (ssr) {\n if (ssrNoExternal === true) {\n let message = `Cannot bundle Node.js built-in \"${id}\"`\n if (importer) {\n message += ` imported from \"${path.relative(\n process.cwd(),\n importer\n )}\"`\n }\n message += `. Consider disabling ssr.noExternal or remove the built-in dependency.`\n this.error(message)\n }\n\n return {\n id,\n external: true\n }\n } else {\n if (!asSrc) {\n debug(\n `externalized node built-in \"${id}\" to empty module. ` +\n `(imported by: ${chalk.white.dim(importer)})`\n )\n }\n return isProduction\n ? browserExternalId\n : `${browserExternalId}:${id}`\n }\n }\n }\n\n isDebug && debug(`[fallthrough] ${chalk.dim(id)}`)\n },\n\n load(id) {\n if (id.startsWith(browserExternalId)) {\n return isProduction\n ? `export default {}`\n : `export default new Proxy({}, {\n get() {\n throw new Error('Module \"${id.slice(\n browserExternalId.length + 1\n )}\" has been externalized for browser compatibility and cannot be accessed in client code.')\n }\n})`\n }\n }\n }\n}\n\nfunction tryFsResolve(\n fsPath: string,\n options: InternalResolveOptions,\n tryIndex = true,\n targetWeb = true\n): string | undefined {\n let file = fsPath\n let postfix = ''\n\n let postfixIndex = fsPath.indexOf('?')\n if (postfixIndex < 0) {\n postfixIndex = fsPath.indexOf('#')\n }\n if (postfixIndex > 0) {\n file = fsPath.slice(0, postfixIndex)\n postfix = fsPath.slice(postfixIndex)\n }\n\n let res: string | undefined\n if (\n (res = tryResolveFile(\n file,\n postfix,\n options,\n false,\n targetWeb,\n options.tryPrefix,\n options.skipPackageJson\n ))\n ) {\n return res\n }\n\n for (const ext of options.extensions || DEFAULT_EXTENSIONS) {\n if (\n (res = tryResolveFile(\n file + ext,\n postfix,\n options,\n false,\n targetWeb,\n options.tryPrefix,\n options.skipPackageJson\n ))\n ) {\n return res\n }\n }\n\n if (\n (res = tryResolveFile(\n file,\n postfix,\n options,\n tryIndex,\n targetWeb,\n options.tryPrefix,\n options.skipPackageJson\n ))\n ) {\n return res\n }\n}\n\nfunction tryResolveFile(\n file: string,\n postfix: string,\n options: InternalResolveOptions,\n tryIndex: boolean,\n targetWeb: boolean,\n tryPrefix?: string,\n skipPackageJson?: boolean\n): string | undefined {\n let isReadable = false\n try {\n // #2051 if we don't have read permission on a directory, existsSync() still\n // works and will result in massively slow subsequent checks (which are\n // unnecessary in the first place)\n fs.accessSync(file, fs.constants.R_OK)\n isReadable = true\n } catch (e) {}\n if (isReadable) {\n if (!fs.statSync(file).isDirectory()) {\n return normalizePath(ensureVolumeInPath(file)) + postfix\n } else if (tryIndex) {\n if (!skipPackageJson) {\n const pkgPath = file + '/package.json'\n if (fs.existsSync(pkgPath)) {\n // path points to a node package\n const pkg = loadPackageData(pkgPath)\n return resolvePackageEntry(file, pkg, options, targetWeb)\n }\n }\n const index = tryFsResolve(file + '/index', options)\n if (index) return index + postfix\n }\n }\n if (tryPrefix) {\n const prefixed = `${path.dirname(file)}/${tryPrefix}${path.basename(file)}`\n return tryResolveFile(prefixed, postfix, options, tryIndex, targetWeb)\n }\n}\n\nexport const idToPkgMap = new Map<string, PackageData>()\n\nexport function tryNodeResolve(\n id: string,\n importer: string | undefined,\n options: InternalResolveOptions,\n targetWeb: boolean,\n server?: ViteDevServer,\n ssr?: boolean\n): PartialResolvedId | undefined {\n const { root, dedupe, isBuild } = options\n\n // split id by last '>' for nested selected packages, for example:\n // 'foo > bar > baz' => 'foo > bar' & 'baz'\n // 'foo' => '' & 'foo'\n const lastArrowIndex = id.lastIndexOf('>')\n const nestedRoot = id.substring(0, lastArrowIndex).trim()\n const nestedPath = id.substring(lastArrowIndex + 1).trim()\n\n // check for deep import, e.g. \"my-lib/foo\"\n const deepMatch = nestedPath.match(deepImportRE)\n\n const pkgId = deepMatch ? deepMatch[1] || deepMatch[2] : nestedPath\n\n let basedir: string\n if (dedupe && dedupe.includes(pkgId)) {\n basedir = root\n } else if (\n importer &&\n path.isAbsolute(importer) &&\n fs.existsSync(cleanUrl(importer))\n ) {\n basedir = path.dirname(importer)\n } else {\n basedir = root\n }\n\n // nested node module, step-by-step resolve to the basedir of the nestedPath\n if (nestedRoot) {\n basedir = nestedResolveFrom(nestedRoot, basedir)\n }\n\n const pkg = resolvePackageData(pkgId, basedir)\n\n if (!pkg) {\n return\n }\n\n let resolved = deepMatch\n ? resolveDeepImport(id, pkg, options, targetWeb)\n : resolvePackageEntry(id, pkg, options, targetWeb)\n if (!resolved) {\n return\n }\n // link id to pkg for browser field mapping check\n idToPkgMap.set(resolved, pkg)\n if (isBuild) {\n // Resolve package side effects for build so that rollup can better\n // perform tree-shaking\n return {\n id: resolved,\n moduleSideEffects: pkg.hasSideEffects(resolved)\n }\n } else {\n if (\n !resolved.includes('node_modules') || // linked\n !server || // build\n server._isRunningOptimizer || // optimizing\n !server._optimizeDepsMetadata\n ) {\n return { id: resolved }\n }\n // if we reach here, it's a valid dep import that hasn't been optimized.\n const isJsType = OPTIMIZABLE_ENTRY_RE.test(resolved)\n const exclude = server.config.optimizeDeps?.exclude\n if (\n !isJsType ||\n importer?.includes('node_modules') ||\n exclude?.includes(pkgId) ||\n exclude?.includes(id) ||\n SPECIAL_QUERY_RE.test(resolved)\n ) {\n // excluded from optimization\n // Inject a version query to npm deps so that the browser\n // can cache it without re-validation, but only do so for known js types.\n // otherwise we may introduce duplicated modules for externalized files\n // from pre-bundled deps.\n const versionHash = server._optimizeDepsMetadata?.browserHash\n if (versionHash && isJsType) {\n resolved = injectQuery(resolved, `v=${versionHash}`)\n }\n } else {\n // this is a missing import.\n // queue optimize-deps re-run.\n server._registerMissingImport?.(id, resolved, ssr)\n }\n return { id: resolved }\n }\n}\n\nexport function tryOptimizedResolve(\n id: string,\n server: ViteDevServer,\n importer?: string\n): string | undefined {\n const cacheDir = server.config.cacheDir\n const depData = server._optimizeDepsMetadata\n\n if (!cacheDir || !depData) return\n\n const getOptimizedUrl = (optimizedData: typeof depData.optimized[string]) => {\n return (\n optimizedData.file +\n `?v=${depData.browserHash}${\n optimizedData.needsInterop ? `&es-interop` : ``\n }`\n )\n }\n\n // check if id has been optimized\n const isOptimized = depData.optimized[id]\n if (isOptimized) {\n return getOptimizedUrl(isOptimized)\n }\n\n if (!importer) return\n\n // further check if id is imported by nested dependency\n let resolvedSrc: string | undefined\n\n for (const [pkgPath, optimizedData] of Object.entries(depData.optimized)) {\n // check for scenarios, e.g.\n // pkgPath => \"my-lib > foo\"\n // id => \"foo\"\n // this narrows the need to do a full resolve\n if (!pkgPath.endsWith(id)) continue\n\n // lazily initialize resolvedSrc\n if (resolvedSrc == null) {\n try {\n // this may throw errors if unable to resolve, e.g. aliased id\n resolvedSrc = normalizePath(resolveFrom(id, path.dirname(importer)))\n } catch {\n // this is best-effort only so swallow errors\n break\n }\n }\n\n // match by src to correctly identify if id belongs to nested dependency\n if (optimizedData.src === resolvedSrc) {\n return getOptimizedUrl(optimizedData)\n }\n }\n}\n\nexport interface PackageData {\n dir: string\n hasSideEffects: (id: string) => boolean\n webResolvedImports: Record<string, string | undefined>\n nodeResolvedImports: Record<string, string | undefined>\n setResolvedCache: (key: string, entry: string, targetWeb: boolean) => void\n getResolvedCache: (key: string, targetWeb: boolean) => string | undefined\n data: {\n [field: string]: any\n version: string\n main: string\n module: string\n browser: string | Record<string, string | false>\n exports: string | Record<string, any> | string[]\n dependencies: Record<string, string>\n }\n}\n\nconst packageCache = new Map<string, PackageData>()\n\nexport function resolvePackageData(\n id: string,\n basedir: string\n): PackageData | undefined {\n const cacheKey = id + basedir\n if (packageCache.has(cacheKey)) {\n return packageCache.get(cacheKey)\n }\n try {\n const pkgPath = resolveFrom(`${id}/package.json`, basedir)\n return loadPackageData(pkgPath, cacheKey)\n } catch (e) {\n isDebug && debug(`${chalk.red(`[failed loading package.json]`)} ${id}`)\n }\n}\n\nfunction loadPackageData(pkgPath: string, cacheKey = pkgPath) {\n const data = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))\n const pkgDir = path.dirname(pkgPath)\n const { sideEffects } = data\n let hasSideEffects: (id: string) => boolean\n if (typeof sideEffects === 'boolean') {\n hasSideEffects = () => sideEffects\n } else if (Array.isArray(sideEffects)) {\n hasSideEffects = createFilter(sideEffects, null, { resolve: pkgDir })\n } else {\n hasSideEffects = () => true\n }\n\n const pkg: PackageData = {\n dir: pkgDir,\n data,\n hasSideEffects,\n webResolvedImports: {},\n nodeResolvedImports: {},\n setResolvedCache(key: string, entry: string, targetWeb: boolean) {\n if (targetWeb) {\n pkg.webResolvedImports[key] = entry\n } else {\n pkg.nodeResolvedImports[key] = entry\n }\n },\n getResolvedCache(key: string, targetWeb: boolean) {\n if (targetWeb) {\n return pkg.webResolvedImports[key]\n } else {\n return pkg.nodeResolvedImports[key]\n }\n }\n }\n packageCache.set(cacheKey, pkg)\n return pkg\n}\n\nexport function resolvePackageEntry(\n id: string,\n { dir, data, setResolvedCache, getResolvedCache }: PackageData,\n options: InternalResolveOptions,\n targetWeb: boolean\n): string | undefined {\n const cached = getResolvedCache('.', targetWeb)\n if (cached) {\n return cached\n }\n try {\n let entryPoint: string | undefined | void\n\n // resolve exports field with highest priority\n // using https://github.com/lukeed/resolve.exports\n if (data.exports) {\n entryPoint = resolveExports(data, '.', options, targetWeb)\n }\n\n // if exports resolved to .mjs, still resolve other fields.\n // This is because .mjs files can technically import .cjs files which would\n // make them invalid for pure ESM environments - so if other module/browser\n // fields are present, prioritize those instead.\n if (targetWeb && (!entryPoint || entryPoint.endsWith('.mjs'))) {\n // check browser field\n // https://github.com/defunctzombie/package-browser-field-spec\n const browserEntry =\n typeof data.browser === 'string'\n ? data.browser\n : isObject(data.browser) && data.browser['.']\n if (browserEntry) {\n // check if the package also has a \"module\" field.\n if (typeof data.module === 'string' && data.module !== browserEntry) {\n // if both are present, we may have a problem: some package points both\n // to ESM, with \"module\" targeting Node.js, while some packages points\n // \"module\" to browser ESM and \"browser\" to UMD.\n // the heuristics here is to actually read the browser entry when\n // possible and check for hints of UMD. If it is UMD, prefer \"module\"\n // instead; Otherwise, assume it's ESM and use it.\n const resolvedBrowserEntry = tryFsResolve(\n path.join(dir, browserEntry),\n options\n )\n if (resolvedBrowserEntry) {\n const content = fs.readFileSync(resolvedBrowserEntry, 'utf-8')\n if (\n (/typeof exports\\s*==/.test(content) &&\n /typeof module\\s*==/.test(content)) ||\n /module\\.exports\\s*=/.test(content)\n ) {\n // likely UMD or CJS(!!! e.g. firebase 7.x), prefer module\n entryPoint = data.module\n }\n }\n } else {\n entryPoint = browserEntry\n }\n }\n }\n\n if (!entryPoint || entryPoint.endsWith('.mjs')) {\n for (const field of options.mainFields || DEFAULT_MAIN_FIELDS) {\n if (typeof data[field] === 'string') {\n entryPoint = data[field]\n break\n }\n }\n }\n\n entryPoint = entryPoint || data.main || 'index.js'\n\n // make sure we don't get scripts when looking for sass\n if (\n options.mainFields?.[0] === 'sass' &&\n !options.extensions?.includes(path.extname(entryPoint))\n ) {\n entryPoint = ''\n options.skipPackageJson = true\n }\n\n // resolve object browser field in package.json\n const { browser: browserField } = data\n if (targetWeb && isObject(browserField)) {\n entryPoint = mapWithBrowserField(entryPoint, browserField) || entryPoint\n }\n\n entryPoint = path.join(dir, entryPoint)\n const resolvedEntryPoint = tryFsResolve(entryPoint, options)\n\n if (resolvedEntryPoint) {\n isDebug &&\n debug(\n `[package entry] ${chalk.cyan(id)} -> ${chalk.dim(\n resolvedEntryPoint\n )}`\n )\n setResolvedCache('.', resolvedEntryPoint, targetWeb)\n return resolvedEntryPoint\n } else {\n packageEntryFailure(id)\n }\n } catch (e) {\n packageEntryFailure(id, e.message)\n }\n}\n\nfunction packageEntryFailure(id: string, details?: string) {\n throw new Error(\n `Failed to resolve entry for package \"${id}\". ` +\n `The package may have incorrect main/module/exports specified in its package.json` +\n (details ? ': ' + details : '.')\n )\n}\n\nfunction resolveExports(\n pkg: PackageData['data'],\n key: string,\n options: InternalResolveOptions,\n targetWeb: boolean\n) {\n const conditions = [options.isProduction ? 'production' : 'development']\n if (!options.isRequire) {\n conditions.push('module')\n }\n if (options.conditions) {\n conditions.push(...options.conditions)\n }\n return _resolveExports(pkg, key, {\n browser: targetWeb,\n require: options.isRequire,\n conditions\n })\n}\n\nfunction resolveDeepImport(\n id: string,\n {\n webResolvedImports,\n setResolvedCache,\n getResolvedCache,\n dir,\n data\n }: PackageData,\n options: InternalResolveOptions,\n targetWeb: boolean\n): string | undefined {\n id = '.' + id.slice(data.name.length)\n const cache = getResolvedCache(id, targetWeb)\n if (cache) {\n return cache\n }\n\n let relativeId: string | undefined | void = id\n const { exports: exportsField, browser: browserField } = data\n\n // map relative based on exports data\n if (exportsField) {\n if (isObject(exportsField) && !Array.isArray(exportsField)) {\n relativeId = resolveExports(data, relativeId, options, targetWeb)\n } else {\n // not exposed\n relativeId = undefined\n }\n if (!relativeId) {\n throw new Error(\n `Package subpath '${relativeId}' is not defined by \"exports\" in ` +\n `${path.join(dir, 'package.json')}.`\n )\n }\n } else if (targetWeb && isObject(browserField)) {\n const mapped = mapWithBrowserField(relativeId, browserField)\n if (mapped) {\n relativeId = mapped\n } else if (mapped === false) {\n return (webResolvedImports[id] = browserExternalId)\n }\n }\n\n if (relativeId) {\n const resolved = tryFsResolve(\n path.join(dir, relativeId),\n options,\n !exportsField, // try index only if no exports field\n targetWeb\n )\n if (resolved) {\n isDebug &&\n debug(`[node/deep-import] ${chalk.cyan(id)} -> ${chalk.dim(resolved)}`)\n setResolvedCache(id, resolved, targetWeb)\n return resolved\n }\n }\n}\n\nfunction tryResolveBrowserMapping(\n id: string,\n importer: string | undefined,\n options: InternalResolveOptions,\n isFilePath: boolean\n) {\n let res: string | undefined\n const pkg = importer && idToPkgMap.get(importer)\n if (pkg && isObject(pkg.data.browser)) {\n const mapId = isFilePath ? './' + slash(path.relative(pkg.dir, id)) : id\n const browserMappedPath = mapWithBrowserField(mapId, pkg.data.browser)\n if (browserMappedPath) {\n const fsPath = path.join(pkg.dir, browserMappedPath)\n if ((res = tryFsResolve(fsPath, options))) {\n isDebug &&\n debug(`[browser mapped] ${chalk.cyan(id)} -> ${chalk.dim(res)}`)\n idToPkgMap.set(res, pkg)\n return {\n id: res,\n moduleSideEffects: pkg.hasSideEffects(res)\n }\n }\n } else if (browserMappedPath === false) {\n return browserExternalId\n }\n }\n}\n\n/**\n * given a relative path in pkg dir,\n * return a relative path in pkg dir,\n * mapped with the \"map\" object\n *\n * - Returning `undefined` means there is no browser mapping for this id\n * - Returning `false` means this id is explicitly externalized for browser\n */\nfunction mapWithBrowserField(\n relativePathInPkgDir: string,\n map: Record<string, string | false>\n): string | false | undefined {\n const normalizedPath = path.posix.normalize(relativePathInPkgDir)\n\n for (const key in map) {\n const normalizedKey = path.posix.normalize(key)\n if (\n normalizedPath === normalizedKey ||\n equalWithoutSuffix(normalizedPath, normalizedKey, '.js') ||\n equalWithoutSuffix(normalizedPath, normalizedKey, '/index.js')\n ) {\n return map[key]\n }\n }\n}\n\nfunction equalWithoutSuffix(path: string, key: string, suffix: string) {\n return key.endsWith(suffix) && key.slice(0, -suffix.length) === path\n}\n","import fs from 'fs'\nimport path from 'path'\nimport { tryNodeResolve, InternalResolveOptions } from '../plugins/resolve'\nimport { isDefined, lookupFile, resolveFrom, unique } from '../utils'\nimport { ResolvedConfig } from '..'\nimport { createFilter } from '@rollup/pluginutils'\n\n/**\n * Heuristics for determining whether a dependency should be externalized for\n * server-side rendering.\n *\n * TODO right now externals are imported using require(), we probably need to\n * rework this when more libraries ship native ESM distributions for Node.\n */\nexport function resolveSSRExternal(\n config: ResolvedConfig,\n knownImports: string[],\n ssrExternals: Set<string> = new Set(),\n seen: Set<string> = new Set()\n): string[] {\n if (config.ssr?.noExternal === true) {\n return []\n }\n\n const { root } = config\n const pkgContent = lookupFile(root, ['package.json'])\n if (!pkgContent) {\n return []\n }\n const pkg = JSON.parse(pkgContent)\n const importedDeps = knownImports.map(getNpmPackageName).filter(isDefined)\n const deps = unique([\n ...importedDeps,\n ...Object.keys(pkg.devDependencies || {}),\n ...Object.keys(pkg.dependencies || {})\n ])\n\n const resolveOptions: InternalResolveOptions = {\n root,\n isProduction: false,\n isBuild: true\n }\n\n const depsToTrace = new Set<string>()\n\n for (const id of deps) {\n if (seen.has(id)) {\n continue\n }\n seen.add(id)\n\n let entry: string | undefined\n let requireEntry: string\n try {\n entry = tryNodeResolve(\n id,\n undefined,\n resolveOptions,\n true,\n undefined,\n true\n )?.id\n requireEntry = require.resolve(id, { paths: [root] })\n } catch (e) {\n // resolve failed, assume include\n continue\n }\n if (!entry) {\n // no esm entry but has require entry (is this even possible?)\n ssrExternals.add(id)\n continue\n }\n if (!entry.includes('node_modules')) {\n // entry is not a node dep, possibly linked - don't externalize\n // instead, trace its dependencies.\n depsToTrace.add(id)\n continue\n }\n if (entry !== requireEntry) {\n // has separate esm/require entry, assume require entry is cjs\n ssrExternals.add(id)\n } else {\n // node resolve and esm resolve resolves to the same file.\n if (!/\\.m?js$/.test(entry)) {\n // entry is not js, cannot externalize\n continue\n }\n // check if the entry is cjs\n const content = fs.readFileSync(entry, 'utf-8')\n if (/\\bmodule\\.exports\\b|\\bexports[.\\[]|\\brequire\\s*\\(/.test(content)) {\n ssrExternals.add(id)\n }\n }\n }\n\n for (const id of depsToTrace) {\n const depRoot = path.dirname(resolveFrom(`${id}/package.json`, root))\n resolveSSRExternal(\n {\n ...config,\n root: depRoot\n },\n knownImports,\n ssrExternals,\n seen\n )\n }\n\n if (config.ssr?.external) {\n config.ssr.external.forEach((id) => ssrExternals.add(id))\n }\n let externals = [...ssrExternals]\n if (config.ssr?.noExternal) {\n const filter = createFilter(undefined, config.ssr.noExternal, {\n resolve: false\n })\n externals = externals.filter((id) => filter(id))\n }\n return externals.filter((id) => id !== 'vite')\n}\n\nexport function shouldExternalizeForSSR(\n id: string,\n externals: string[]\n): boolean {\n const should = externals.some((e) => {\n if (id === e) {\n return true\n }\n // deep imports, check ext before externalizing - only externalize\n // extension-less imports and explicit .js imports\n if (id.startsWith(e + '/') && (!path.extname(id) || id.endsWith('.js'))) {\n return true\n }\n })\n return should\n}\n\nfunction getNpmPackageName(importPath: string): string | null {\n const parts = importPath.split('/')\n if (parts[0].startsWith('@')) {\n if (!parts[1]) return null\n return `${parts[0]}/${parts[1]}`\n } else {\n return parts[0]\n }\n}\n","import { relative } from 'path'\nimport { normalizePath } from '@rollup/pluginutils'\nimport { ResolvedConfig } from '..'\nimport { Plugin } from '../plugin'\nimport { chunkToEmittedCssFileMap } from '../plugins/css'\nimport { chunkToEmittedAssetsMap } from '../plugins/asset'\n\nexport function ssrManifestPlugin(config: ResolvedConfig): Plugin {\n // module id => preload assets mapping\n const ssrManifest: Record<string, string[]> = {}\n const base = config.base\n\n return {\n name: 'vite:manifest',\n generateBundle(_options, bundle) {\n for (const file in bundle) {\n const chunk = bundle[file]\n if (chunk.type === 'chunk') {\n // links for certain entry chunks are already generated in static HTML\n // in those cases we only need to record info for non-entry chunks\n const cssFiles = chunk.isEntry\n ? null\n : chunkToEmittedCssFileMap.get(chunk)\n const assetFiles = chunkToEmittedAssetsMap.get(chunk)\n for (const id in chunk.modules) {\n const normalizedId = normalizePath(relative(config.root, id))\n const mappedChunks =\n ssrManifest[normalizedId] || (ssrManifest[normalizedId] = [])\n if (!chunk.isEntry) {\n mappedChunks.push(base + chunk.fileName)\n }\n if (cssFiles) {\n cssFiles.forEach((file) => {\n mappedChunks.push(base + file)\n })\n }\n if (assetFiles) {\n assetFiles.forEach((file) => {\n mappedChunks.push(base + file)\n })\n }\n }\n }\n }\n\n this.emitFile({\n fileName: 'ssr-manifest.json',\n type: 'asset',\n source: JSON.stringify(ssrManifest, null, 2)\n })\n }\n }\n}\n","// Reserved word lists for various dialects of the language\n\nvar reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n};\n\n// And the keywords\n\nvar ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\nvar keywords = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n};\n\nvar keywordRelationalOperator = /^in(stanceof)?$/;\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\nvar nonASCIIidentifierStartChars = \"\\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\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\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\\u09fc\\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\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\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-\\uab69\\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\";\nvar nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nvar astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n\n// eslint-disable-next-line comma-spacing\nvar astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n}\n\n// Test whether a given character code starts an identifier.\n\nfunction isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nfunction isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n};\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nvar beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n// Map keyword names to token types.\n\nvar keywords$1 = {};\n\n// Succinct definitions of keyword token types\nfunction kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords$1[name] = new TokenType(name, options)\n}\n\nvar types = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n privateId: new TokenType(\"privateId\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n};\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\nvar lineBreakG = new RegExp(lineBreak.source, \"g\");\n\nfunction isNewLine(code, ecma2019String) {\n return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nvar nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\nvar skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nvar ref = Object.prototype;\nvar hasOwnProperty = ref.hasOwnProperty;\nvar toString = ref.toString;\n\n// Checks if an object has a property.\n\nfunction has(obj, propName) {\n return hasOwnProperty.call(obj, propName)\n}\n\nvar isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n); });\n\nfunction wordsRegexp(words) {\n return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nvar Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n};\n\nPosition.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n};\n\nvar SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n};\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nfunction getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n lineBreakG.lastIndex = cur;\n var match = lineBreakG.exec(input);\n if (match && match.index < offset) {\n ++line;\n cur = match.index + match[0].length;\n } else {\n return new Position(line, offset - cur)\n }\n }\n}\n\n// A second argument must be given to configure the parser process.\n// These options are recognized (only `ecmaVersion` is required):\n\nvar defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), 13 (2022), or `\"latest\"` (the\n // latest version the library supports). This influences support\n // for strict mode, the set of reserved words, and support for\n // new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called\n // when a semicolon is automatically inserted. It will be passed\n // the position of the comma as an offset, and if `locations` is\n // enabled, it is given the location as a `{line, column}` object\n // as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program, and an import.meta expression\n // in a script isn't considered an error.\n allowImportExportEverywhere: false,\n // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: null,\n // When enabled, super identifiers are not constrained to\n // appearing in methods and do not raise an error when they appear elsewhere.\n allowSuperOutsideMethod: null,\n // When enabled, hashbang directive in the beginning of file\n // is allowed and treated as a line comment.\n allowHashBang: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n};\n\n// Interpret and default an options object\n\nvar warnedAboutEcmaVersion = false;\n\nfunction getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n}\n\n// Each scope gets a bitset that may contain these flags\nvar\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128;\n\nfunction functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal* and declareName to determine the type of a binding\nvar\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\nvar Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n this.potentialArrowInForAwait = false;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = Object.create(null);\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(SCOPE_TOP);\n\n // For RegExp validation\n this.regexpState = null;\n\n // The stack of private names.\n // Each element has two properties: 'declared' and 'used'.\n // When it exited from the outermost class definition, all used private names must be declared.\n this.privateNameStack = [];\n};\n\nvar prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },inNonArrowFunction: { configurable: true } };\n\nParser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n};\n\nprototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\nprototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };\nprototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };\nprototypeAccessors.canAwait.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var scope = this.scopeStack[i];\n if (scope.inClassFieldInit) { return false }\n if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 }\n }\n return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction\n};\nprototypeAccessors.allowSuper.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n var inClassFieldInit = ref.inClassFieldInit;\n return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod\n};\nprototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\nprototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\nprototypeAccessors.inNonArrowFunction.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n var inClassFieldInit = ref.inClassFieldInit;\n return (flags & SCOPE_FUNCTION) > 0 || inClassFieldInit\n};\n\nParser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n};\n\nParser.parse = function parse (input, options) {\n return new this(options, input).parse()\n};\n\nParser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n};\n\nParser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n};\n\nObject.defineProperties( Parser.prototype, prototypeAccessors );\n\nvar pp = Parser.prototype;\n\n// ## Parser utilities\n\nvar literal = /^(?:'((?:\\\\.|[^'\\\\])*?)'|\"((?:\\\\.|[^\"\\\\])*?)\")/;\npp.strictDirective = function(start) {\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n};\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n};\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n return this.type === types.name && this.value === name && !this.containsEsc\n};\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n};\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n};\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n return this.type === types.eof ||\n this.type === types.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\npp.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n};\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); }\n};\n\npp.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n};\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n this.eat(type) || this.unexpected();\n};\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n};\n\nfunction DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, \"Parenthesized pattern\"); }\n};\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n};\n\npp.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n};\n\npp.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n};\n\nvar pp$1 = Parser.prototype;\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp$1.parseTopLevel = function(node) {\n var exports = Object.create(null);\n if (!node.body) { node.body = []; }\n while (this.type !== types.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType;\n return this.finishNode(node, \"Program\")\n};\n\nvar loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\npp$1.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91 || nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '[', '/', astral\n if (context) { return false }\n\n if (nextCh === 123) { return true } // '{'\n if (isIdentifierStart(nextCh, true)) {\n var pos = next + 1;\n while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; }\n if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true }\n var ident = this.input.slice(next, pos);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n};\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp$1.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, after;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length ||\n !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00))\n};\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp$1.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types._debugger: return this.parseDebuggerStatement(node)\n case types._do: return this.parseDoStatement(node)\n case types._for: return this.parseForStatement(node)\n case types._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types._if: return this.parseIfStatement(node)\n case types._return: return this.parseReturnStatement(node)\n case types._switch: return this.parseSwitchStatement(node)\n case types._throw: return this.parseThrowStatement(node)\n case types._try: return this.parseTryStatement(node)\n case types._const: case types._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types._while: return this.parseWhileStatement(node)\n case types._with: return this.parseWithStatement(node)\n case types.braceL: return this.parseBlock(true, node)\n case types.semi: return this.parseEmptyStatement(node)\n case types._export:\n case types._import:\n if (this.options.ecmaVersion > 10 && starttype === types._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types.name && expr.type === \"Identifier\" && this.eat(types.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n};\n\npp$1.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n};\n\npp$1.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n};\n\npp$1.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n};\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp$1.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types.parenL);\n if (this.type === types.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types._var || this.type === types._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init$1.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init$1)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init$1)\n }\n var refDestructuringErrors = new DestructuringErrors;\n var init = this.parseExpression(awaitAt > -1 ? \"await\" : true, refDestructuringErrors);\n if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\npp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n};\n\npp$1.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n};\n\npp$1.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n};\n\npp$1.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types.braceL);\n this.labels.push(switchLabel);\n this.enterScope(0);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types.braceR;) {\n if (this.type === types._case || this.type === types._default) {\n var isCase = this.type === types._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n};\n\npp$1.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n};\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty = [];\n\npp$1.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types.parenL)) {\n clause.param = this.parseBindingAtom();\n var simple = clause.param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types.parenR);\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n};\n\npp$1.parseVarStatement = function(node, kind) {\n this.next();\n this.parseVar(node, false, kind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n};\n\npp$1.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n};\n\npp$1.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n};\n\npp$1.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n};\n\npp$1.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n};\n\npp$1.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n};\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n};\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp$1.parseFor = function(node, init) {\n node.init = init;\n this.expect(types.semi);\n node.test = this.type === types.semi ? null : this.parseExpression();\n this.expect(types.semi);\n node.update = this.type === types.parenR ? null : this.parseExpression();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n};\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp$1.parseForIn = function(node, init) {\n var isForIn = this.type === types._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n};\n\n// Parse a list of variable declarations.\n\npp$1.parseVar = function(node, isFor, kind) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (kind === \"const\" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === types._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types.comma)) { break }\n }\n return node\n};\n\npp$1.parseVarId = function(decl, kind) {\n decl.id = this.parseBindingAtom();\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n};\n\nvar FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n};\n\npp$1.parseFunctionParams = function(node) {\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n};\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp$1.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var privateNameMap = this.enterClassBody();\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types.braceL);\n while (this.type !== types.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raise(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n } else if (element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.exitClassBody();\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n};\n\npp$1.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(types.semi)) { return null }\n\n var ecmaVersion = this.options.ecmaVersion;\n var node = this.startNode();\n var keyName = \"\";\n var isGenerator = false;\n var isAsync = false;\n var kind = \"method\";\n\n // Parse modifiers\n node.static = false;\n if (this.eatContextual(\"static\")) {\n if (this.isClassElementNameStart() || this.type === types.star) {\n node.static = true;\n } else {\n keyName = \"static\";\n }\n }\n if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n if ((this.isClassElementNameStart() || this.type === types.star) && !this.canInsertSemicolon()) {\n isAsync = true;\n } else {\n keyName = \"async\";\n }\n }\n if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types.star)) {\n isGenerator = true;\n }\n if (!keyName && !isAsync && !isGenerator) {\n var lastValue = this.value;\n if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n if (this.isClassElementNameStart()) {\n kind = lastValue;\n } else {\n keyName = lastValue;\n }\n }\n }\n\n // Parse element name\n if (keyName) {\n // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n // The last token is any of those. Make it the element name.\n node.computed = false;\n node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n node.key.name = keyName;\n this.finishNode(node.key, \"Identifier\");\n } else {\n this.parseClassElementName(node);\n }\n\n // Parse element value\n if (ecmaVersion < 13 || this.type === types.parenL || kind !== \"method\" || isGenerator || isAsync) {\n var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n node.kind = isConstructor ? \"constructor\" : kind;\n this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n } else {\n this.parseClassField(node);\n }\n\n return node\n};\n\npp$1.isClassElementNameStart = function() {\n return (\n this.type === types.name ||\n this.type === types.privateId ||\n this.type === types.num ||\n this.type === types.string ||\n this.type === types.bracketL ||\n this.type.keyword\n )\n};\n\npp$1.parseClassElementName = function(element) {\n if (this.type === types.privateId) {\n if (this.value === \"constructor\") {\n this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n }\n element.computed = false;\n element.key = this.parsePrivateIdent();\n } else {\n this.parsePropertyName(element);\n }\n};\n\npp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n // Check key and flags\n var key = method.key;\n if (method.kind === \"constructor\") {\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n } else if (method.static && checkKeyName(method, \"prototype\")) {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n\n // Parse value\n var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n // Check value\n if (method.kind === \"get\" && value.params.length !== 0)\n { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && value.params.length !== 1)\n { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n return this.finishNode(method, \"MethodDefinition\")\n};\n\npp$1.parseClassField = function(field) {\n if (checkKeyName(field, \"constructor\")) {\n this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n } else if (field.static && checkKeyName(field, \"prototype\")) {\n this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n }\n\n if (this.eat(types.eq)) {\n // To raise SyntaxError if 'arguments' exists in the initializer.\n var scope = this.currentThisScope();\n var inClassFieldInit = scope.inClassFieldInit;\n scope.inClassFieldInit = true;\n field.value = this.parseMaybeAssign();\n scope.inClassFieldInit = inClassFieldInit;\n } else {\n field.value = null;\n }\n this.semicolon();\n\n return this.finishNode(field, \"PropertyDefinition\")\n};\n\npp$1.parseClassId = function(node, isStatement) {\n if (this.type === types.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n};\n\npp$1.parseClassSuper = function(node) {\n node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null;\n};\n\npp$1.enterClassBody = function() {\n var element = {declared: Object.create(null), used: []};\n this.privateNameStack.push(element);\n return element.declared\n};\n\npp$1.exitClassBody = function() {\n var ref = this.privateNameStack.pop();\n var declared = ref.declared;\n var used = ref.used;\n var len = this.privateNameStack.length;\n var parent = len === 0 ? null : this.privateNameStack[len - 1];\n for (var i = 0; i < used.length; ++i) {\n var id = used[i];\n if (!has(declared, id.name)) {\n if (parent) {\n parent.used.push(id);\n } else {\n this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n }\n }\n }\n};\n\nfunction isPrivateNameConflicted(privateNameMap, element) {\n var name = element.key.name;\n var curr = privateNameMap[name];\n\n var next = \"true\";\n if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n next = (element.static ? \"s\" : \"i\") + element.kind;\n }\n\n // `class { get #a(){}; static set #a(_){} }` is also conflict.\n if (\n curr === \"iget\" && next === \"iset\" ||\n curr === \"iset\" && next === \"iget\" ||\n curr === \"sget\" && next === \"sset\" ||\n curr === \"sset\" && next === \"sget\"\n ) {\n privateNameMap[name] = \"true\";\n return false\n } else if (!curr) {\n privateNameMap[name] = next;\n return false\n } else {\n return true\n }\n}\n\nfunction checkKeyName(node, name) {\n var computed = node.computed;\n var key = node.key;\n return !computed && (\n key.type === \"Identifier\" && key.name === name ||\n key.type === \"Literal\" && key.value === name\n )\n}\n\n// Parses module export declaration.\n\npp$1.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types.star)) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseIdent(true);\n this.checkExport(exports, node.exported.name, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(types._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n var isAsync;\n if (this.type === types._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);\n } else if (this.type === types._class) {\n var cNode = this.startNode();\n node.declaration = this.parseClass(cNode, \"nullableID\");\n } else {\n node.declaration = this.parseMaybeAssign();\n this.semicolon();\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseStatement(null);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n }\n\n node.source = null;\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n};\n\npp$1.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (has(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n};\n\npp$1.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat.name, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n else if (type === \"ParenthesizedExpression\")\n { this.checkPatternExport(exports, pat.expression); }\n};\n\npp$1.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n};\n\npp$1.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n};\n\n// Parses a comma-separated list of module exports.\n\npp$1.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node = this.startNode();\n node.local = this.parseIdent(true);\n node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local;\n this.checkExport(exports, node.exported.name, node.exported.start);\n nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n }\n return nodes\n};\n\n// Parses import declaration.\n\npp$1.parseImport = function(node) {\n this.next();\n // import '...'\n if (this.type === types.string) {\n node.specifiers = empty;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected();\n }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n};\n\n// Parses a comma-separated list of module imports.\n\npp$1.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types.name) {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"));\n if (!this.eat(types.comma)) { return nodes }\n }\n if (this.type === types.star) {\n var node$1 = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node$1.local = this.parseIdent();\n this.checkLValSimple(node$1.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$1, \"ImportNamespaceSpecifier\"));\n return nodes\n }\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node$2 = this.startNode();\n node$2.imported = this.parseIdent(true);\n if (this.eatContextual(\"as\")) {\n node$2.local = this.parseIdent();\n } else {\n this.checkUnreserved(node$2.imported);\n node$2.local = node$2.imported;\n }\n this.checkLValSimple(node$2.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$2, \"ImportSpecifier\"));\n }\n return nodes\n};\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp$1.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n};\npp$1.isDirectiveCandidate = function(statement) {\n return (\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n};\n\nvar pp$2 = Parser.prototype;\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n};\n\n// Convert list of expression atoms to binding list.\n\npp$2.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n};\n\n// Parses spread element.\n\npp$2.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n};\n\npp$2.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n};\n\n// Parses lvalue (assignable) atom.\n\npp$2.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n};\n\npp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types.comma); }\n if (allowEmpty && this.type === types.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n elts.push(elem);\n }\n }\n return elts\n};\n\npp$2.parseBindingListItem = function(param) {\n return param\n};\n\n// Parses assignment pattern around given atom if possible.\n\npp$2.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n};\n\n// The following three functions all verify that a node is an lvalue —\n// something that can be bound, or assigned to. In order to do so, they perform\n// a variety of checks:\n//\n// - Check that none of the bound/assigned-to identifiers are reserved words.\n// - Record name declarations for bindings in the appropriate scope.\n// - Check duplicate argument names, if checkClashes is set.\n//\n// If a complex binding pattern is encountered (e.g., object and array\n// destructuring), the entire pattern is recursively checked.\n//\n// There are three versions of checkLVal*() appropriate for different\n// circumstances:\n//\n// - checkLValSimple() shall be used if the syntactic construct supports\n// nothing other than identifiers and member expressions. Parenthesized\n// expressions are also correctly handled. This is generally appropriate for\n// constructs for which the spec says\n//\n// > It is a Syntax Error if AssignmentTargetType of [the production] is not\n// > simple.\n//\n// It is also appropriate for checking if an identifier is valid and not\n// defined elsewhere, like import declarations or function/class identifiers.\n//\n// Examples where this is used include:\n// a += …;\n// import a from '…';\n// where a is the node to be checked.\n//\n// - checkLValPattern() shall be used if the syntactic construct supports\n// anything checkLValSimple() supports, as well as object and array\n// destructuring patterns. This is generally appropriate for constructs for\n// which the spec says\n//\n// > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n// > an ArrayLiteral and AssignmentTargetType of [the production] is not\n// > simple.\n//\n// Examples where this is used include:\n// (a = …);\n// const a = …;\n// try { … } catch (a) { … }\n// where a is the node to be checked.\n//\n// - checkLValInnerPattern() shall be used if the syntactic construct supports\n// anything checkLValPattern() supports, as well as default assignment\n// patterns, rest elements, and other constructs that may appear within an\n// object or array destructuring pattern.\n//\n// As a special case, function parameters also use checkLValInnerPattern(),\n// as they also support defaults and rest constructs.\n//\n// These functions deliberately support both assignment and binding constructs,\n// as the logic for both is exceedingly similar. If the node is the target of\n// an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n// should be set to the appropriate BIND_* constant, like BIND_VAR or\n// BIND_LEXICAL.\n//\n// If the function is called with a non-BIND_NONE bindingType, then\n// additionally a checkClashes object may be specified to allow checking for\n// duplicate argument names. checkClashes is ignored if the provided construct\n// is an assignment (i.e., bindingType is BIND_NONE).\n\npp$2.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (has(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n};\n\npp$2.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n};\n\npp$2.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n};\n\n// A recursive descent parser operates by defining functions for all\n\nvar pp$3 = Parser.prototype;\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0)\n { refDestructuringErrors.doubleProto = key.start; }\n // Backwards-compat kludge. Can be removed in version 6.0\n } else { this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\"); }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n};\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp$3.parseExpression = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n if (this.type === types.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n};\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp$3.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(forInit) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types.parenL || this.type === types.name) {\n this.potentialArrowAt = this.start;\n this.potentialArrowInForAwait = forInit === \"await\";\n }\n var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n};\n\n// Parse a ternary conditional (`?:`) operator.\n\npp$3.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(forInit, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types.colon);\n node.alternate = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n};\n\n// Start the precedence parser.\n\npp$3.parseExprOps = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n};\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n var prec = this.type.binop;\n if (prec != null && (!forInit || this.type !== types._in)) {\n if (prec > minPrec) {\n var logical = this.type === types.logicalOR || this.type === types.logicalAND;\n var coalesce = this.type === types.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, forInit);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n }\n }\n return left\n};\n\npp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n};\n\n// Parse unary operators, both prefix and postfix.\n\npp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && this.canAwait) {\n expr = this.parseAwait();\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true, update);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" &&\n node.argument.type === \"Identifier\")\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!incDec && this.eat(types.starstar)) {\n if (sawUnary)\n { this.unexpected(this.lastTokStart); }\n else\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false) }\n } else {\n return expr\n }\n};\n\nfunction isPrivateFieldAccess(node) {\n return (\n node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression)\n )\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp$3.parseExprSubscripts = function(refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n }\n return result\n};\n\npp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n};\n\npp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types.bracketL);\n if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(types.bracketR);\n } else if (this.type === types.privateId && base.type !== \"Super\") {\n node.property = this.parsePrivateIdent();\n } else {\n node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n }\n node.computed = !!computed;\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n};\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp$3.parseExprAtom = function(refDestructuringErrors) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types._function))\n { return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true) }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types.name && !containsEsc &&\n (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n }\n }\n return id\n\n case types.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types.num: case types.string:\n return this.parseLiteral(this.value)\n\n case types._null: case types._true: case types._false:\n node = this.startNode();\n node.value = this.type === types._null ? null : this.type === types._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types.braceL:\n return this.parseObj(false, refDestructuringErrors)\n\n case types._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types._class:\n return this.parseClass(this.startNode(), false)\n\n case types._new:\n return this.parseNew()\n\n case types.backQuote:\n return this.parseTemplate()\n\n case types._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport()\n } else {\n return this.unexpected()\n }\n\n default:\n this.unexpected();\n }\n};\n\npp$3.parseExprImport = function() {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n var meta = this.parseIdent(true);\n\n switch (this.type) {\n case types.parenL:\n return this.parseDynamicImport(node)\n case types.dot:\n node.meta = meta;\n return this.parseImportMeta(node)\n default:\n this.unexpected();\n }\n};\n\npp$3.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n // Verify ending.\n if (!this.eat(types.parenR)) {\n var errorPos = this.start;\n if (this.eat(types.comma) && this.eat(types.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n};\n\npp$3.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n};\n\npp$3.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n};\n\npp$3.parseParenExpression = function() {\n this.expect(types.parenL);\n var val = this.parseExpression();\n this.expect(types.parenR);\n return val\n};\n\npp$3.parseParenAndDistinguishExpression = function(canBeArrow) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types.parenR) {\n first ? first = false : this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.start, innerEndLoc = this.startLoc;\n this.expect(types.parenR);\n\n if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n};\n\npp$3.parseParenItem = function(item) {\n return item\n};\n\npp$3.parseParenArrowList = function(startPos, startLoc, exprList) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n};\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nvar empty$1 = [];\n\npp$3.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n var meta = this.parseIdent(true);\n if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) {\n node.meta = meta;\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.inNonArrowFunction)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import;\n node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n if (isImport && node.callee.type === \"ImportExpression\") {\n this.raise(startPos, \"Cannot use new with import()\");\n }\n if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty$1; }\n return this.finishNode(node, \"NewExpression\")\n};\n\n// Parse template expression.\n\npp$3.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value,\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n};\n\npp$3.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n};\n\npp$3.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\n// Parse an object literal or binding pattern.\n\npp$3.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n};\n\npp$3.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types.comma) {\n this.raise(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // To disallow parenthesized identifier via `this.toAssignable()`.\n if (this.type === types.parenL && refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0) {\n refDestructuringErrors.parenthesizedAssign = this.start;\n }\n if (refDestructuringErrors.parenthesizedBind < 0) {\n refDestructuringErrors.parenthesizedBind = this.start;\n }\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);\n this.parsePropertyName(prop, refDestructuringErrors);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n};\n\npp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types.colon)\n { this.unexpected(); }\n\n if (this.eat(types.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.kind = \"init\";\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n prop.kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n prop.kind = \"init\";\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.shorthand = true;\n } else { this.unexpected(); }\n};\n\npp$3.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n};\n\n// Initialize empty function node.\n\npp$3.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n};\n\n// Parse object or class method.\n\npp$3.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n};\n\n// Parse arrow function expression with given parameters.\n\npp$3.parseArrowExpression = function(node, params, isAsync) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n};\n\n// Parse function body and check parameters.\n\npp$3.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n var isExpression = isArrowFunction && this.type !== types.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign();\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n};\n\npp$3.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n};\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp$3.checkParams = function(node, allowDuplicates) {\n var nameHash = Object.create(null);\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n};\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types.comma)\n { elt = null; }\n else if (this.type === types.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n};\n\npp$3.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (this.currentThisScope().inClassFieldInit && name === \"arguments\")\n { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n};\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp$3.parseIdent = function(liberal, isBinding) {\n var node = this.startNode();\n if (this.type === types.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n } else {\n this.unexpected();\n }\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n};\n\npp$3.parsePrivateIdent = function() {\n var node = this.startNode();\n if (this.type === types.privateId) {\n node.name = this.value;\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"PrivateIdentifier\");\n\n // For validating existence\n if (this.privateNameStack.length === 0) {\n this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n } else {\n this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n }\n\n return node\n};\n\n// Parses yield expression inside generator.\n\npp$3.parseYield = function(forInit) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types.star);\n node.argument = this.parseMaybeAssign(forInit);\n }\n return this.finishNode(node, \"YieldExpression\")\n};\n\npp$3.parseAwait = function() {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n return this.finishNode(node, \"AwaitExpression\")\n};\n\nvar pp$4 = Parser.prototype;\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n};\n\npp$4.raiseRecoverable = pp$4.raise;\n\npp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n};\n\nvar pp$5 = Parser.prototype;\n\nvar Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n // A switch to disallow the identifier reference 'arguments'\n this.inClassFieldInit = false;\n};\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp$5.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n};\n\npp$5.exitScope = function() {\n this.scopeStack.pop();\n};\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp$5.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n};\n\npp$5.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n};\n\npp$5.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n};\n\npp$5.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n};\n\npp$5.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR) { return scope }\n }\n};\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp$5.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n};\n\nvar Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n};\n\n// Start an AST node, attaching a start offset.\n\nvar pp$6 = Parser.prototype;\n\npp$6.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n};\n\npp$6.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n};\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n}\n\npp$6.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n};\n\n// Finish node at given position\n\npp$6.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n};\n\npp$6.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n};\n\n// The algorithm used to determine whether a regexp can appear at a\n\nvar TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n};\n\nvar types$1 = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n};\n\nvar pp$7 = Parser.prototype;\n\npp$7.initialContext = function() {\n return [types$1.b_stat]\n};\n\npp$7.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types$1.f_expr || parent === types$1.f_stat)\n { return true }\n if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types._return || prevType === types.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)\n { return true }\n if (prevType === types.braceL)\n { return parent === types$1.b_stat }\n if (prevType === types._var || prevType === types._const || prevType === types.name)\n { return false }\n return !this.exprAllowed\n};\n\npp$7.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n};\n\npp$7.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n};\n\n// Token-specific context update code\n\ntypes.parenR.updateContext = types.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types$1.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n};\n\ntypes.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr);\n this.exprAllowed = true;\n};\n\ntypes.dollarBraceL.updateContext = function() {\n this.context.push(types$1.b_tmpl);\n this.exprAllowed = true;\n};\n\ntypes.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;\n this.context.push(statementParens ? types$1.p_stat : types$1.p_expr);\n this.exprAllowed = true;\n};\n\ntypes.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n};\n\ntypes._function.updateContext = types._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types._else &&\n !(prevType === types.semi && this.curContext() !== types$1.p_stat) &&\n !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat))\n { this.context.push(types$1.f_expr); }\n else\n { this.context.push(types$1.f_stat); }\n this.exprAllowed = false;\n};\n\ntypes.backQuote.updateContext = function() {\n if (this.curContext() === types$1.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types$1.q_tmpl); }\n this.exprAllowed = false;\n};\n\ntypes.star.updateContext = function(prevType) {\n if (prevType === types._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types$1.f_expr)\n { this.context[index] = types$1.f_expr_gen; }\n else\n { this.context[index] = types$1.f_gen; }\n }\n this.exprAllowed = true;\n};\n\ntypes.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n};\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nvar ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\nvar ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\nvar ecma11BinaryProperties = ecma10BinaryProperties;\nvar ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\nvar unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties\n};\n\n// #table-unicode-general-category-values\nvar unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n// #table-unicode-script-values\nvar ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\nvar ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\nvar ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\nvar ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\nvar unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues\n};\n\nvar data = {};\nfunction buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n}\nbuildUnicodeData(9);\nbuildUnicodeData(10);\nbuildUnicodeData(11);\nbuildUnicodeData(12);\n\nvar pp$8 = Parser.prototype;\n\nvar RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = [];\n this.backReferenceNames = [];\n};\n\nRegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n};\n\nRegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n};\n\n// If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n// Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\nRegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n};\n\nRegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n};\n\nRegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n};\n\nRegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n};\n\nRegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n};\n\nRegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n};\n\nfunction codePointToString(ch) {\n if (ch <= 0xFFFF) { return String.fromCharCode(ch) }\n ch -= 0x10000;\n return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$8.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n }\n};\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$8.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp$8.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames.length = 0;\n state.backReferenceNames.length = 0;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (state.groupNames.indexOf(name) === -1) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp$8.regexp_disjunction = function(state) {\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n this.regexp_alternative(state);\n }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp$8.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state))\n { }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp$8.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp$8.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp$8.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp$8.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n};\npp$8.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp$8.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n};\npp$8.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp$8.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp$8.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp$8.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp$8.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp$8.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n};\n\n// GroupSpecifier ::\n// [empty]\n// `?` GroupName\npp$8.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (this.regexp_eatGroupName(state)) {\n if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n state.raise(\"Duplicate capture group name\");\n }\n state.groupNames.push(state.lastStringValue);\n return\n }\n state.raise(\"Invalid group\");\n }\n};\n\n// GroupName ::\n// `<` RegExpIdentifierName `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$8.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n};\n\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierPart\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$8.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n};\n\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\npp$8.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\n// <ZWNJ>\n// <ZWJ>\npp$8.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp$8.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n};\npp$8.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp$8.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n};\npp$8.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$8.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp$8.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp$8.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n};\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp$8.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp$8.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp$8.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return true\n }\n\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n if (\n state.eat(0x7B /* { */) &&\n this.regexp_eatUnicodePropertyValueExpression(state) &&\n state.eat(0x7D /* } */)\n ) {\n return true\n }\n state.raise(\"Invalid property name\");\n }\n\n return false\n};\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp$8.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return true\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);\n return true\n }\n return false\n};\npp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!has(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n};\npp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (!state.unicodeProperties.binary.test(nameOrValue))\n { state.raise(\"Invalid property name\"); }\n};\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp$8.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp$8.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp$8.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n state.eat(0x5E /* ^ */);\n this.regexp_classRanges(state);\n if (state.eat(0x5D /* ] */)) {\n return true\n }\n // Unreachable since it threw \"unterminated regular expression\" error before.\n state.raise(\"Unterminated character class\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp$8.regexp_classRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp$8.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp$8.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp$8.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$8.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp$8.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp$8.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp$8.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp$8.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n};\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$8.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n};\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nvar Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n};\n\n// ## Tokenizer\n\nvar pp$9 = Parser.prototype;\n\n// Move to the next token\n\npp$9.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n};\n\npp$9.getToken = function() {\n this.next();\n return new Token(this)\n};\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n { pp$9[Symbol.iterator] = function() {\n var this$1 = this;\n\n return {\n next: function () {\n var token = this$1.getToken();\n return {\n done: token.type === types.eof,\n value: token\n }\n }\n }\n }; }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp$9.curContext = function() {\n return this.context[this.context.length - 1]\n};\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp$9.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n};\n\npp$9.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n};\n\npp$9.fullCharCodeAtPos = function() {\n var code = this.input.charCodeAt(this.pos);\n if (code <= 0xd7ff || code >= 0xdc00) { return code }\n var next = this.input.charCodeAt(this.pos + 1);\n return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n};\n\npp$9.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n lineBreakG.lastIndex = start;\n var match;\n while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n ++this.curLine;\n this.lineStart = match.index + match[0].length;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\npp$9.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp$9.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n};\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp$9.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n};\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp$9.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types.dot)\n }\n};\n\npp$9.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.slash, 1)\n};\n\npp$9.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types.star : types.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(tokentype, size)\n};\n\npp$9.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types.assign, 3) }\n }\n return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1)\n};\n\npp$9.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.bitwiseXOR, 1)\n};\n\npp$9.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.plusMin, 1)\n};\n\npp$9.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(types.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types.relational, size)\n};\n\npp$9.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types.arrow)\n }\n return this.finishOp(code === 61 ? types.eq : types.prefix, 1)\n};\n\npp$9.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types.assign, 3) }\n }\n return this.finishOp(types.coalesce, 2)\n }\n }\n return this.finishOp(types.question, 1)\n};\n\npp$9.readToken_numberSign = function() { // '#'\n var ecmaVersion = this.options.ecmaVersion;\n var code = 35; // '#'\n if (ecmaVersion >= 13) {\n ++this.pos;\n code = this.fullCharCodeAtPos();\n if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n return this.finishToken(types.privateId, this.readWord1())\n }\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString$1(code) + \"'\");\n};\n\npp$9.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types.parenL)\n case 41: ++this.pos; return this.finishToken(types.parenR)\n case 59: ++this.pos; return this.finishToken(types.semi)\n case 44: ++this.pos; return this.finishToken(types.comma)\n case 91: ++this.pos; return this.finishToken(types.bracketL)\n case 93: ++this.pos; return this.finishToken(types.bracketR)\n case 123: ++this.pos; return this.finishToken(types.braceL)\n case 125: ++this.pos; return this.finishToken(types.braceR)\n case 58: ++this.pos; return this.finishToken(types.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types.prefix, 1)\n\n case 35: // '#'\n return this.readToken_numberSign()\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString$1(code) + \"'\");\n};\n\npp$9.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n};\n\npp$9.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value})\n};\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n};\n\nfunction stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n}\n\nfunction stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n}\n\npp$9.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types.num, val)\n};\n\n// Read an integer, octal integer, or floating-point number.\n\npp$9.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types.num, val)\n};\n\n// Read a string value, interpreting backslash-escapes.\n\npp$9.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n};\n\nfunction codePointToString$1(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\npp$9.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else {\n if (isNewLine(ch, this.options.ecmaVersion >= 10)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types.string, out)\n};\n\n// Reads template string tokens.\n\nvar INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\npp$9.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n};\n\npp$9.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n};\n\npp$9.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types.template || this.type === types.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n};\n\n// Reads a template token to search for the end, without validating any escape sequences\npp$9.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") {\n break\n }\n // falls through\n\n case \"`\":\n return this.finishToken(types.invalidTemplate, this.input.slice(this.start, this.pos))\n\n // no default\n }\n }\n this.raise(this.start, \"Unterminated template\");\n};\n\n// Used to read escaped characters\n\npp$9.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString$1(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n\n return null\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n};\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp$9.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n};\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp$9.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString$1(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n};\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp$9.readWord = function() {\n var word = this.readWord1();\n var type = types.name;\n if (this.keywords.test(word)) {\n type = keywords$1[word];\n }\n return this.finishToken(type, word)\n};\n\n// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n\nvar version = \"8.4.1\";\n\nParser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types,\n keywordTypes: keywords$1,\n TokContext: TokContext,\n tokContexts: types$1,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n};\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api].\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\nfunction parse(input, options) {\n return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nfunction parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nfunction tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n}\n\nexport { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords$1 as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types$1 as tokContexts, types as tokTypes, tokenizer, version };\n","\"use strict\"\n\nconst getPrototype = Object.getPrototypeOf || (o => o.__proto__)\n\nconst getAcorn = Parser => {\n if (Parser.acorn) return Parser.acorn\n\n const acorn = require(\"acorn\")\n\n if (acorn.version.indexOf(\"6.\") != 0 && acorn.version.indexOf(\"6.0.\") == 0 && acorn.version.indexOf(\"7.\") != 0) {\n throw new Error(`acorn-private-class-elements requires acorn@^6.1.0 or acorn@7.0.0, not ${acorn.version}`)\n }\n\n // Make sure `Parser` comes from the same acorn as we `require`d,\n // otherwise the comparisons fail.\n for (let cur = Parser; cur && cur !== acorn.Parser; cur = getPrototype(cur)) {\n if (cur !== acorn.Parser) {\n throw new Error(\"acorn-private-class-elements does not support mixing different acorn copies\")\n }\n }\n return acorn\n}\n\nmodule.exports = function(Parser) {\n // Only load this plugin once.\n if (Parser.prototype.parsePrivateName) {\n return Parser\n }\n\n const acorn = getAcorn(Parser)\n\n Parser = class extends Parser {\n _branch() {\n this.__branch = this.__branch || new Parser({ecmaVersion: this.options.ecmaVersion}, this.input)\n this.__branch.end = this.end\n this.__branch.pos = this.pos\n this.__branch.type = this.type\n this.__branch.value = this.value\n this.__branch.containsEsc = this.containsEsc\n return this.__branch\n }\n\n parsePrivateClassElementName(element) {\n element.computed = false\n element.key = this.parsePrivateName()\n if (element.key.name == \"constructor\") this.raise(element.key.start, \"Classes may not have a private element named constructor\")\n const accept = {get: \"set\", set: \"get\"}[element.kind]\n const privateBoundNames = this._privateBoundNames\n if (Object.prototype.hasOwnProperty.call(privateBoundNames, element.key.name) && privateBoundNames[element.key.name] !== accept) {\n this.raise(element.start, \"Duplicate private element\")\n }\n privateBoundNames[element.key.name] = element.kind || true\n delete this._unresolvedPrivateNames[element.key.name]\n return element.key\n }\n\n parsePrivateName() {\n const node = this.startNode()\n node.name = this.value\n this.next()\n this.finishNode(node, \"PrivateIdentifier\")\n if (this.options.allowReserved == \"never\") this.checkUnreserved(node)\n return node\n }\n\n // Parse # token\n getTokenFromCode(code) {\n if (code === 35) {\n ++this.pos\n const word = this.readWord1()\n return this.finishToken(this.privateIdentifierToken, word)\n }\n return super.getTokenFromCode(code)\n }\n\n // Manage stacks and check for undeclared private names\n parseClass(node, isStatement) {\n const oldOuterPrivateBoundNames = this._outerPrivateBoundNames\n this._outerPrivateBoundNames = this._privateBoundNames\n this._privateBoundNames = Object.create(this._privateBoundNames || null)\n const oldOuterUnresolvedPrivateNames = this._outerUnresolvedPrivateNames\n this._outerUnresolvedPrivateNames = this._unresolvedPrivateNames\n this._unresolvedPrivateNames = Object.create(null)\n\n const _return = super.parseClass(node, isStatement)\n\n const unresolvedPrivateNames = this._unresolvedPrivateNames\n this._privateBoundNames = this._outerPrivateBoundNames\n this._outerPrivateBoundNames = oldOuterPrivateBoundNames\n this._unresolvedPrivateNames = this._outerUnresolvedPrivateNames\n this._outerUnresolvedPrivateNames = oldOuterUnresolvedPrivateNames\n if (!this._unresolvedPrivateNames) {\n const names = Object.keys(unresolvedPrivateNames)\n if (names.length) {\n names.sort((n1, n2) => unresolvedPrivateNames[n1] - unresolvedPrivateNames[n2])\n this.raise(unresolvedPrivateNames[names[0]], \"Usage of undeclared private name\")\n }\n } else Object.assign(this._unresolvedPrivateNames, unresolvedPrivateNames)\n return _return\n }\n\n // Class heritage is evaluated with outer private environment\n parseClassSuper(node) {\n const privateBoundNames = this._privateBoundNames\n this._privateBoundNames = this._outerPrivateBoundNames\n const unresolvedPrivateNames = this._unresolvedPrivateNames\n this._unresolvedPrivateNames = this._outerUnresolvedPrivateNames\n const _return = super.parseClassSuper(node)\n this._privateBoundNames = privateBoundNames\n this._unresolvedPrivateNames = unresolvedPrivateNames\n return _return\n }\n\n // Parse private element access\n parseSubscript(base, startPos, startLoc, _noCalls, _maybeAsyncArrow, _optionalChained) {\n const optionalSupported = this.options.ecmaVersion >= 11 && acorn.tokTypes.questionDot\n const branch = this._branch()\n if (!(\n (branch.eat(acorn.tokTypes.dot) || (optionalSupported && branch.eat(acorn.tokTypes.questionDot))) &&\n branch.type == this.privateIdentifierToken\n )) {\n return super.parseSubscript.apply(this, arguments)\n }\n let optional = false\n if (!this.eat(acorn.tokTypes.dot)) {\n this.expect(acorn.tokTypes.questionDot)\n optional = true\n }\n let node = this.startNodeAt(startPos, startLoc)\n node.object = base\n node.computed = false\n if (optionalSupported) {\n node.optional = optional\n }\n if (this.type == this.privateIdentifierToken) {\n if (base.type == \"Super\") {\n this.raise(this.start, \"Cannot access private element on super\")\n }\n node.property = this.parsePrivateName()\n if (!this._privateBoundNames || !this._privateBoundNames[node.property.name]) {\n if (!this._unresolvedPrivateNames) {\n this.raise(node.property.start, \"Usage of undeclared private name\")\n }\n this._unresolvedPrivateNames[node.property.name] = node.property.start\n }\n } else {\n node.property = this.parseIdent(true)\n }\n return this.finishNode(node, \"MemberExpression\")\n }\n\n // Prohibit delete of private class elements\n parseMaybeUnary(refDestructuringErrors, sawUnary) {\n const _return = super.parseMaybeUnary(refDestructuringErrors, sawUnary)\n if (_return.operator == \"delete\") {\n if (_return.argument.type == \"MemberExpression\" && _return.argument.property.type == \"PrivateIdentifier\") {\n this.raise(_return.start, \"Private elements may not be deleted\")\n }\n }\n return _return\n }\n }\n Parser.prototype.privateIdentifierToken = new acorn.TokenType(\"privateIdentifier\")\n return Parser\n}\n","\"use strict\"\n\nconst privateClassElements = require(\"acorn-private-class-elements\")\n\nmodule.exports = function(Parser) {\n const acorn = Parser.acorn || require(\"acorn\")\n const tt = acorn.tokTypes\n\n Parser = privateClassElements(Parser)\n return class extends Parser {\n _maybeParseFieldValue(field) {\n if (this.eat(tt.eq)) {\n const oldInFieldValue = this._inFieldValue\n this._inFieldValue = true\n if (this.type === tt.name && this.value === \"await\" && (this.inAsync || this.options.allowAwaitOutsideFunction)) {\n field.value = this.parseAwait()\n } else field.value = this.parseExpression()\n this._inFieldValue = oldInFieldValue\n } else field.value = null\n }\n\n // Parse fields\n parseClassElement(_constructorAllowsSuper) {\n if (this.options.ecmaVersion >= 8 && (this.type == tt.name || this.type.keyword || this.type == this.privateIdentifierToken || this.type == tt.bracketL || this.type == tt.string || this.type == tt.num)) {\n const branch = this._branch()\n if (branch.type == tt.bracketL) {\n let count = 0\n do {\n if (branch.eat(tt.bracketL)) ++count\n else if (branch.eat(tt.bracketR)) --count\n else branch.next()\n } while (count > 0)\n } else branch.next(true)\n let isField = branch.type == tt.eq || branch.type == tt.semi\n if (!isField && branch.canInsertSemicolon()) {\n isField = branch.type != tt.parenL\n }\n if (isField) {\n const node = this.startNode()\n if (this.type == this.privateIdentifierToken) {\n this.parsePrivateClassElementName(node)\n } else {\n this.parsePropertyName(node)\n }\n if ((node.key.type === \"Identifier\" && node.key.name === \"constructor\") ||\n (node.key.type === \"Literal\" && node.key.value === \"constructor\")) {\n this.raise(node.key.start, \"Classes may not have a field called constructor\")\n }\n this.enterScope(64 | 2 | 1) // See acorn's scopeflags.js\n this._maybeParseFieldValue(node)\n this.exitScope()\n this.finishNode(node, \"PropertyDefinition\")\n this.semicolon()\n return node\n }\n }\n\n return super.parseClassElement.apply(this, arguments)\n }\n\n // Prohibit arguments in class field initializers\n parseIdent(liberal, isBinding) {\n const ident = super.parseIdent(liberal, isBinding)\n if (this._inFieldValue && ident.name == \"arguments\") this.raise(ident.start, \"A class field initializer may not contain arguments\")\n return ident\n }\n }\n}\n","function withoutAcornBigInt(acorn, Parser) {\n return class extends Parser {\n readInt(radix, len) {\n // Hack: len is only != null for unicode escape sequences,\n // where numeric separators are not allowed\n if (len != null) return super.readInt(radix, len)\n\n let start = this.pos, total = 0, acceptUnderscore = false;\n for (;;) {\n let code = this.input.charCodeAt(this.pos), val;\n if (code >= 97) val = code - 97 + 10; // a\n else if (code == 95) {\n if (!acceptUnderscore) this.raise(this.pos, \"Invalid numeric separator\");\n ++this.pos;\n acceptUnderscore = false;\n continue\n } else if (code >= 65) val = code - 65 + 10; // A\n else if (code >= 48 && code <= 57) val = code - 48; // 0-9\n else val = Infinity;\n if (val >= radix) break\n ++this.pos;\n total = total * radix + val;\n acceptUnderscore = true;\n }\n if (this.pos === start) return null\n if (!acceptUnderscore) this.raise(this.pos - 1, \"Invalid numeric separator\");\n\n return total\n }\n\n readNumber(startsWithDot) {\n const token = super.readNumber(startsWithDot);\n let octal = this.end - this.start >= 2 && this.input.charCodeAt(this.start) === 48;\n const stripped = this.getNumberInput(this.start, this.end);\n if (stripped.length < this.end - this.start) {\n if (octal) this.raise(this.start, \"Invalid number\");\n this.value = parseFloat(stripped);\n }\n return token\n }\n\n // This is used by acorn-bigint\n getNumberInput(start, end) {\n return this.input.slice(start, end).replace(/_/g, \"\")\n }\n }\n}\n\nfunction withAcornBigInt(acorn, Parser) {\n return class extends Parser {\n readInt(radix, len) {\n // Hack: len is only != null for unicode escape sequences,\n // where numeric separators are not allowed\n if (len != null) return super.readInt(radix, len)\n\n let start = this.pos, total = 0, acceptUnderscore = false;\n for (;;) {\n let code = this.input.charCodeAt(this.pos), val;\n if (code >= 97) val = code - 97 + 10; // a\n else if (code == 95) {\n if (!acceptUnderscore) this.raise(this.pos, \"Invalid numeric separator\");\n ++this.pos;\n acceptUnderscore = false;\n continue\n } else if (code >= 65) val = code - 65 + 10; // A\n else if (code >= 48 && code <= 57) val = code - 48; // 0-9\n else val = Infinity;\n if (val >= radix) break\n ++this.pos;\n total = total * radix + val;\n acceptUnderscore = true;\n }\n if (this.pos === start) return null\n if (!acceptUnderscore) this.raise(this.pos - 1, \"Invalid numeric separator\");\n\n return total\n }\n\n readNumber(startsWithDot) {\n let start = this.pos;\n if (!startsWithDot && this.readInt(10) === null) this.raise(start, \"Invalid number\");\n let octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n let octalLike = false;\n if (octal && this.strict) this.raise(start, \"Invalid number\");\n let next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n let str = this.getNumberInput(start, this.pos);\n // eslint-disable-next-line node/no-unsupported-features/es-builtins\n let val = typeof BigInt !== \"undefined\" ? BigInt(str) : null;\n ++this.pos;\n if (acorn.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\");\n return this.finishToken(acorn.tokTypes.num, val)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) {\n octal = false;\n octalLike = true;\n }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) ++this.pos; // '+-'\n if (this.readInt(10) === null) this.raise(start, \"Invalid number\");\n }\n if (acorn.isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\");\n let str = this.getNumberInput(start, this.pos);\n if ((octal || octalLike) && str.length < this.pos - start) {\n this.raise(start, \"Invalid number\");\n }\n\n let val = octal ? parseInt(str, 8) : parseFloat(str);\n return this.finishToken(acorn.tokTypes.num, val)\n }\n\n parseLiteral(value) {\n const ret = super.parseLiteral(value);\n if (ret.bigint) ret.bigint = ret.bigint.replace(/_/g, \"\");\n return ret\n }\n\n readRadixNumber(radix) {\n let start = this.pos;\n this.pos += 2; // 0x\n let val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, `Expected number in radix ${radix}`); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n let str = this.getNumberInput(start, this.pos);\n // eslint-disable-next-line node/no-unsupported-features/es-builtins\n val = typeof BigInt !== \"undefined\" ? BigInt(str) : null;\n ++this.pos;\n } else if (acorn.isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(acorn.tokTypes.num, val)\n }\n\n // This is used by acorn-bigint, which theoretically could be used with acorn@6.2 || acorn@7\n getNumberInput(start, end) {\n return this.input.slice(start, end).replace(/_/g, \"\")\n }\n }\n}\n\n// eslint-disable-next-line node/no-unsupported-features/es-syntax\nfunction numericSeparator(Parser) {\n const acorn = Parser.acorn || require(\"acorn\");\n const withAcornBigIntSupport = (acorn.version.startsWith(\"6.\") && !(acorn.version.startsWith(\"6.0.\") || acorn.version.startsWith(\"6.1.\"))) || acorn.version.startsWith(\"7.\");\n\n return withAcornBigIntSupport ? withAcornBigInt(acorn, Parser) : withoutAcornBigInt(acorn, Parser)\n}\n\nexport default numericSeparator;\n//# sourceMappingURL=acorn-numeric-separator.mjs.map\n","\"use strict\"\n\nconst privateClassElements = require(\"acorn-private-class-elements\")\n\nmodule.exports = function(Parser) {\n const ExtendedParser = privateClassElements(Parser)\n\n const acorn = Parser.acorn || require(\"acorn\")\n const tt = acorn.tokTypes\n\n return class extends ExtendedParser {\n _maybeParseFieldValue(field) {\n if (this.eat(tt.eq)) {\n const oldInFieldValue = this._inStaticFieldScope\n this._inStaticFieldScope = this.currentThisScope()\n field.value = this.parseExpression()\n this._inStaticFieldScope = oldInFieldValue\n } else field.value = null\n }\n\n // Parse fields\n parseClassElement(_constructorAllowsSuper) {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"static\")) {\n return super.parseClassElement.apply(this, arguments)\n }\n\n const branch = this._branch()\n branch.next()\n if ([tt.name, tt.bracketL, tt.string, tt.num, this.privateIdentifierToken].indexOf(branch.type) == -1 && !branch.type.keyword) {\n return super.parseClassElement.apply(this, arguments)\n }\n if (branch.type == tt.bracketL) {\n let count = 0\n do {\n if (branch.eat(tt.bracketL)) ++count\n else if (branch.eat(tt.bracketR)) --count\n else branch.next()\n } while (count > 0)\n } else branch.next()\n if (branch.type != tt.eq && !branch.canInsertSemicolon() && branch.type != tt.semi) {\n return super.parseClassElement.apply(this, arguments)\n }\n\n const node = this.startNode()\n node.static = this.eatContextual(\"static\")\n if (this.type == this.privateIdentifierToken) {\n this.parsePrivateClassElementName(node)\n } else {\n this.parsePropertyName(node)\n }\n if ((node.key.type === \"Identifier\" && node.key.name === \"constructor\") ||\n (node.key.type === \"Literal\" && !node.computed && node.key.value === \"constructor\")) {\n this.raise(node.key.start, \"Classes may not have a field called constructor\")\n }\n if ((node.key.name || node.key.value) === \"prototype\" && !node.computed) {\n this.raise(node.key.start, \"Classes may not have a static property named prototype\")\n }\n\n this.enterScope(64 | 2 | 1) // See acorn's scopeflags.js\n this._maybeParseFieldValue(node)\n this.exitScope()\n this.finishNode(node, \"PropertyDefinition\")\n this.semicolon()\n return node\n }\n\n // Parse private static methods\n parsePropertyName(prop) {\n if (prop.static && this.type == this.privateIdentifierToken) {\n this.parsePrivateClassElementName(prop)\n } else {\n super.parsePropertyName(prop)\n }\n }\n\n // Prohibit arguments in class field initializers\n parseIdent(liberal, isBinding) {\n const ident = super.parseIdent(liberal, isBinding)\n if (this._inStaticFieldScope && this.currentThisScope() === this._inStaticFieldScope && ident.name == \"arguments\") {\n this.raise(ident.start, \"A static class field initializer may not contain arguments\")\n }\n return ident\n }\n }\n}\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:[a-zA-Z\\\\d]*(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","import chalk from 'chalk'\nimport { RollupError } from 'rollup'\nimport { ViteDevServer } from '../..'\nimport { Connect } from 'types/connect'\nimport { pad } from '../../utils'\nimport strip from 'strip-ansi'\nimport { ErrorPayload } from 'types/hmrPayload'\n\nexport function prepareError(err: Error | RollupError): ErrorPayload['err'] {\n // only copy the information we need and avoid serializing unnecessary\n // properties, since some errors may attach full objects (e.g. PostCSS)\n return {\n message: strip(err.message),\n stack: strip(cleanStack(err.stack || '')),\n id: (err as RollupError).id,\n frame: strip((err as RollupError).frame || ''),\n plugin: (err as RollupError).plugin,\n pluginCode: (err as RollupError).pluginCode,\n loc: (err as RollupError).loc\n }\n}\n\nexport function buildErrorMessage(\n err: RollupError,\n args: string[] = [],\n includeStack = true\n): string {\n if (err.plugin) args.push(` Plugin: ${chalk.magenta(err.plugin)}`)\n if (err.id) args.push(` File: ${chalk.cyan(err.id)}`)\n if (err.frame) args.push(chalk.yellow(pad(err.frame)))\n if (includeStack && err.stack) args.push(pad(cleanStack(err.stack)))\n return args.join('\\n')\n}\n\nfunction cleanStack(stack: string) {\n return stack\n .split(/\\n/g)\n .filter((l) => /^\\s*at/.test(l))\n .join('\\n')\n}\n\nexport function errorMiddleware(\n server: ViteDevServer,\n allowNext = false\n): Connect.ErrorHandleFunction {\n // note the 4 args must be kept for connect to treat this as error middleware\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return function viteErrorMiddleware(err: RollupError, _req, res, next) {\n const msg = buildErrorMessage(err, [\n chalk.red(`Internal server error: ${err.message}`)\n ])\n\n server.config.logger.error(msg, {\n clear: true,\n timestamp: true,\n error: err\n })\n\n server.ws.send({\n type: 'error',\n err: prepareError(err)\n })\n\n if (allowNext) {\n next()\n } else {\n if (err instanceof AccessRestrictedError) {\n res.statusCode = 403\n res.write(renderErrorHTML(err.message))\n res.end()\n }\n res.statusCode = 500\n res.end()\n }\n }\n}\n\nexport class AccessRestrictedError extends Error {\n constructor(msg: string) {\n super(msg)\n }\n}\n\nexport function renderErrorHTML(msg: string): string {\n // to have syntax highlighting and autocompletion in IDE\n const html = String.raw\n return html`\n <body>\n <h1>403 Restricted</h1>\n <p>${msg.replace(/\\n/g, '<br/>')}</p>\n <style>\n body {\n padding: 1em 2em;\n }\n </style>\n </body>\n `\n}\n","/**\n * This file is refactored into TypeScript based on\n * https://github.com/preactjs/wmr/blob/main/packages/wmr/src/lib/rollup-plugin-container.js\n */\n\n/**\nhttps://github.com/preactjs/wmr/blob/master/LICENSE\n\nMIT License\n\nCopyright (c) 2020 The Preact Authors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\nimport fs from 'fs'\nimport { resolve, join } from 'path'\nimport { Plugin } from '../plugin'\nimport {\n InputOptions,\n MinimalPluginContext,\n OutputOptions,\n ModuleInfo,\n NormalizedInputOptions,\n ChangeEvent,\n PartialResolvedId,\n ResolvedId,\n PluginContext as RollupPluginContext,\n LoadResult,\n SourceDescription,\n EmittedFile,\n SourceMap,\n RollupError,\n TransformResult\n} from 'rollup'\nimport * as acorn from 'acorn'\nimport acornClassFields from 'acorn-class-fields'\nimport acornNumericSeparator from 'acorn-numeric-separator'\nimport acornStaticClassFeatures from 'acorn-static-class-features'\nimport { RawSourceMap } from '@ampproject/remapping/dist/types/types'\nimport { combineSourcemaps } from '../utils'\nimport MagicString from 'magic-string'\nimport { FSWatcher } from 'chokidar'\nimport {\n createDebugger,\n ensureWatchedFile,\n generateCodeFrame,\n isObject,\n isExternalUrl,\n normalizePath,\n numberToPos,\n prettifyUrl,\n timeFrom\n} from '../utils'\nimport { FS_PREFIX } from '../constants'\nimport chalk from 'chalk'\nimport { ResolvedConfig } from '../config'\nimport { buildErrorMessage } from './middlewares/error'\n\nexport interface PluginContainerOptions {\n cwd?: string\n output?: OutputOptions\n modules?: Map<string, { info: ModuleInfo }>\n writeFile?: (name: string, source: string | Uint8Array) => void\n}\n\nexport interface PluginContainer {\n options: InputOptions\n buildStart(options: InputOptions): Promise<void>\n watchChange(id: string, event?: ChangeEvent): void\n resolveId(\n id: string,\n importer?: string,\n skip?: Set<Plugin>,\n ssr?: boolean\n ): Promise<PartialResolvedId | null>\n transform(\n code: string,\n id: string,\n inMap?: SourceDescription['map'],\n ssr?: boolean\n ): Promise<SourceDescription | null>\n load(id: string, ssr?: boolean): Promise<LoadResult | null>\n close(): Promise<void>\n}\n\ntype PluginContext = Omit<\n RollupPluginContext,\n // not documented\n | 'cache'\n // deprecated\n | 'emitAsset'\n | 'emitChunk'\n | 'getAssetFileName'\n | 'getChunkFileName'\n | 'isExternal'\n | 'moduleIds'\n | 'resolveId'\n>\n\nexport let parser = acorn.Parser.extend(\n acornClassFields,\n acornStaticClassFeatures,\n acornNumericSeparator\n)\n\nexport async function createPluginContainer(\n { plugins, logger, root, build: { rollupOptions } }: ResolvedConfig,\n watcher?: FSWatcher\n): Promise<PluginContainer> {\n const isDebug = process.env.DEBUG\n\n const seenResolves: Record<string, true | undefined> = {}\n const debugResolve = createDebugger('vite:resolve')\n const debugPluginResolve = createDebugger('vite:plugin-resolve', {\n onlyWhenFocused: 'vite:plugin'\n })\n const debugPluginTransform = createDebugger('vite:plugin-transform', {\n onlyWhenFocused: 'vite:plugin'\n })\n\n // ---------------------------------------------------------------------------\n\n const MODULES = new Map()\n const watchFiles = new Set<string>()\n\n // get rollup version\n const rollupPkgPath = resolve(require.resolve('rollup'), '../../package.json')\n const minimalContext: MinimalPluginContext = {\n meta: {\n rollupVersion: JSON.parse(fs.readFileSync(rollupPkgPath, 'utf-8'))\n .version,\n watchMode: true\n }\n }\n\n function warnIncompatibleMethod(method: string, plugin: string) {\n logger.warn(\n chalk.cyan(`[plugin:${plugin}] `) +\n chalk.yellow(\n `context method ${chalk.bold(\n `${method}()`\n )} is not supported in serve mode. This plugin is likely not vite-compatible.`\n )\n )\n }\n\n // we should create a new context for each async hook pipeline so that the\n // active plugin in that pipeline can be tracked in a concurrency-safe manner.\n // using a class to make creating new contexts more efficient\n class Context implements PluginContext {\n meta = minimalContext.meta\n ssr = false\n _activePlugin: Plugin | null\n _activeId: string | null = null\n _activeCode: string | null = null\n _resolveSkips?: Set<Plugin>\n _addedImports: Set<string> | null = null\n\n constructor(initialPlugin?: Plugin) {\n this._activePlugin = initialPlugin || null\n }\n\n parse(code: string, opts: any = {}) {\n return parser.parse(code, {\n sourceType: 'module',\n ecmaVersion: 2020,\n locations: true,\n ...opts\n })\n }\n\n async resolve(\n id: string,\n importer?: string,\n options?: { skipSelf?: boolean }\n ) {\n let skips: Set<Plugin> | undefined\n if (options?.skipSelf && this._activePlugin) {\n skips = new Set(this._resolveSkips)\n skips.add(this._activePlugin)\n }\n let out = await container.resolveId(id, importer, skips, this.ssr)\n if (typeof out === 'string') out = { id: out }\n return out as ResolvedId | null\n }\n\n getModuleInfo(id: string) {\n let mod = MODULES.get(id)\n if (mod) return mod.info\n mod = {\n /** @type {import('rollup').ModuleInfo} */\n // @ts-ignore-next\n info: {}\n }\n MODULES.set(id, mod)\n return mod.info\n }\n\n getModuleIds() {\n return MODULES.keys()\n }\n\n addWatchFile(id: string) {\n watchFiles.add(id)\n ;(this._addedImports || (this._addedImports = new Set())).add(id)\n if (watcher) ensureWatchedFile(watcher, id, root)\n }\n\n getWatchFiles() {\n return [...watchFiles]\n }\n\n emitFile(assetOrFile: EmittedFile) {\n warnIncompatibleMethod(`emitFile`, this._activePlugin!.name)\n return ''\n }\n\n setAssetSource() {\n warnIncompatibleMethod(`setAssetSource`, this._activePlugin!.name)\n }\n\n getFileName() {\n warnIncompatibleMethod(`getFileName`, this._activePlugin!.name)\n return ''\n }\n\n warn(\n e: string | RollupError,\n position?: number | { column: number; line: number }\n ) {\n const err = formatError(e, position, this)\n const msg = buildErrorMessage(\n err,\n [chalk.yellow(`warning: ${err.message}`)],\n false\n )\n logger.warn(msg, {\n clear: true,\n timestamp: true\n })\n }\n\n error(\n e: string | RollupError,\n position?: number | { column: number; line: number }\n ): never {\n // error thrown here is caught by the transform middleware and passed on\n // the the error middleware.\n throw formatError(e, position, this)\n }\n }\n\n function formatError(\n e: string | RollupError,\n position: number | { column: number; line: number } | undefined,\n ctx: Context\n ) {\n const err = (typeof e === 'string' ? new Error(e) : e) as RollupError\n if (ctx._activePlugin) err.plugin = ctx._activePlugin.name\n if (ctx._activeId && !err.id) err.id = ctx._activeId\n if (ctx._activeCode) {\n err.pluginCode = ctx._activeCode\n const pos =\n position != null\n ? position\n : err.pos != null\n ? err.pos\n : // some rollup plugins, e.g. json, sets position instead of pos\n (err as any).position\n if (pos != null) {\n err.loc = err.loc || {\n file: err.id,\n ...numberToPos(ctx._activeCode, pos)\n }\n err.frame = err.frame || generateCodeFrame(ctx._activeCode, pos)\n } else if (err.loc) {\n // css preprocessors may report errors in an included file\n if (!err.frame) {\n let code = ctx._activeCode\n if (err.loc.file) {\n err.id = normalizePath(err.loc.file)\n try {\n code = fs.readFileSync(err.loc.file, 'utf-8')\n } catch {}\n }\n err.frame = generateCodeFrame(code, err.loc)\n }\n } else if ((err as any).line && (err as any).column) {\n err.loc = {\n file: err.id,\n line: (err as any).line,\n column: (err as any).column\n }\n err.frame = err.frame || generateCodeFrame(ctx._activeCode, err.loc)\n }\n }\n return err\n }\n\n class TransformContext extends Context {\n filename: string\n originalCode: string\n originalSourcemap: SourceMap | null = null\n sourcemapChain: NonNullable<SourceDescription['map']>[] = []\n combinedMap: SourceMap | null = null\n\n constructor(filename: string, code: string, inMap?: SourceMap | string) {\n super()\n this.filename = filename\n this.originalCode = code\n if (inMap) {\n this.sourcemapChain.push(inMap)\n }\n }\n\n _getCombinedSourcemap(createIfNull = false) {\n let combinedMap = this.combinedMap\n for (let m of this.sourcemapChain) {\n if (typeof m === 'string') m = JSON.parse(m)\n if (!('version' in (m as SourceMap))) {\n // empty, nullified source map\n combinedMap = this.combinedMap = null\n this.sourcemapChain.length = 0\n break\n }\n if (!combinedMap) {\n combinedMap = m as SourceMap\n } else {\n combinedMap = combineSourcemaps(this.filename, [\n {\n ...(m as RawSourceMap),\n sourcesContent: combinedMap.sourcesContent\n },\n combinedMap as RawSourceMap\n ]) as SourceMap\n }\n }\n if (!combinedMap) {\n return createIfNull\n ? new MagicString(this.originalCode).generateMap({\n includeContent: true,\n hires: true,\n source: this.filename\n })\n : null\n }\n if (combinedMap !== this.combinedMap) {\n this.combinedMap = combinedMap\n this.sourcemapChain.length = 0\n }\n return this.combinedMap\n }\n\n getCombinedSourcemap() {\n return this._getCombinedSourcemap(true) as SourceMap\n }\n }\n\n let closed = false\n\n const container: PluginContainer = {\n options: await (async () => {\n let options = rollupOptions\n for (const plugin of plugins) {\n if (!plugin.options) continue\n options =\n (await plugin.options.call(minimalContext, options)) || options\n }\n if (options.acornInjectPlugins) {\n parser = acorn.Parser.extend(\n ...[\n acornClassFields,\n acornStaticClassFeatures,\n acornNumericSeparator\n ].concat(options.acornInjectPlugins)\n )\n }\n return {\n acorn,\n acornInjectPlugins: [],\n ...options\n }\n })(),\n\n async buildStart() {\n await Promise.all(\n plugins.map((plugin) => {\n if (plugin.buildStart) {\n return plugin.buildStart.call(\n new Context(plugin) as any,\n container.options as NormalizedInputOptions\n )\n }\n })\n )\n },\n\n async resolveId(rawId, importer = join(root, 'index.html'), skips, ssr) {\n const ctx = new Context()\n ctx.ssr = !!ssr\n ctx._resolveSkips = skips\n const resolveStart = isDebug ? Date.now() : 0\n\n let id: string | null = null\n const partial: Partial<PartialResolvedId> = {}\n for (const plugin of plugins) {\n if (!plugin.resolveId) continue\n if (skips?.has(plugin)) continue\n\n ctx._activePlugin = plugin\n\n const pluginResolveStart = isDebug ? Date.now() : 0\n const result = await plugin.resolveId.call(\n ctx as any,\n rawId,\n importer,\n {},\n ssr\n )\n if (!result) continue\n\n if (typeof result === 'string') {\n id = result\n } else {\n id = result.id\n Object.assign(partial, result)\n }\n\n isDebug &&\n debugPluginResolve(\n timeFrom(pluginResolveStart),\n plugin.name,\n prettifyUrl(id, root)\n )\n\n // resolveId() is hookFirst - first non-null result is returned.\n break\n }\n\n if (isDebug && rawId !== id && !rawId.startsWith(FS_PREFIX)) {\n const key = rawId + id\n // avoid spamming\n if (!seenResolves[key]) {\n seenResolves[key] = true\n debugResolve(\n `${timeFrom(resolveStart)} ${chalk.cyan(rawId)} -> ${chalk.dim(id)}`\n )\n }\n }\n\n if (id) {\n partial.id = isExternalUrl(id) ? id : normalizePath(id)\n return partial as PartialResolvedId\n } else {\n return null\n }\n },\n\n async load(id, ssr) {\n const ctx = new Context()\n ctx.ssr = !!ssr\n for (const plugin of plugins) {\n if (!plugin.load) continue\n ctx._activePlugin = plugin\n const result = await plugin.load.call(ctx as any, id, ssr)\n if (result != null) {\n return result\n }\n }\n return null\n },\n\n async transform(code, id, inMap, ssr) {\n const ctx = new TransformContext(id, code, inMap as SourceMap)\n ctx.ssr = !!ssr\n for (const plugin of plugins) {\n if (!plugin.transform) continue\n ctx._activePlugin = plugin\n ctx._activeId = id\n ctx._activeCode = code\n const start = isDebug ? Date.now() : 0\n let result: TransformResult | string | undefined\n try {\n result = await plugin.transform.call(ctx as any, code, id, ssr)\n } catch (e) {\n ctx.error(e)\n }\n if (!result) continue\n isDebug &&\n debugPluginTransform(\n timeFrom(start),\n plugin.name,\n prettifyUrl(id, root)\n )\n if (isObject(result)) {\n code = result.code || ''\n if (result.map) ctx.sourcemapChain.push(result.map)\n } else {\n code = result\n }\n }\n return {\n code,\n map: ctx._getCombinedSourcemap()\n }\n },\n\n watchChange(id, event = 'update') {\n const ctx = new Context()\n if (watchFiles.has(id)) {\n for (const plugin of plugins) {\n if (!plugin.watchChange) continue\n ctx._activePlugin = plugin\n plugin.watchChange.call(ctx as any, id, { event })\n }\n }\n },\n\n async close() {\n if (closed) return\n const ctx = new Context()\n await Promise.all(\n plugins.map((p) => p.buildEnd && p.buildEnd.call(ctx as any))\n )\n await Promise.all(\n plugins.map((p) => p.closeBundle && p.closeBundle.call(ctx as any))\n )\n closed = true\n }\n }\n\n return container\n}\n","import fs from 'fs'\nimport path from 'path'\nimport glob from 'fast-glob'\nimport { ResolvedConfig } from '..'\nimport { Loader, Plugin, build, transform } from 'esbuild'\nimport {\n KNOWN_ASSET_TYPES,\n JS_TYPES_RE,\n SPECIAL_QUERY_RE,\n OPTIMIZABLE_ENTRY_RE\n} from '../constants'\nimport {\n createDebugger,\n normalizePath,\n isObject,\n cleanUrl,\n externalRE,\n dataUrlRE,\n multilineCommentsRE,\n singlelineCommentsRE\n} from '../utils'\nimport {\n createPluginContainer,\n PluginContainer\n} from '../server/pluginContainer'\nimport { init, parse } from 'es-module-lexer'\nimport MagicString from 'magic-string'\nimport { transformImportGlob } from '../importGlob'\n\nconst debug = createDebugger('vite:deps')\n\nconst htmlTypesRE = /\\.(html|vue|svelte)$/\n\n// A simple regex to detect import sources. This is only used on\n// <script lang=\"ts\"> blocks in vue (setup only) or svelte files, since\n// seemingly unused imports are dropped by esbuild when transpiling TS which\n// prevents it from crawling further.\n// We can't use es-module-lexer because it can't handle TS, and don't want to\n// use Acorn because it's slow. Luckily this doesn't have to be bullet proof\n// since even missed imports can be caught at runtime, and false positives will\n// simply be ignored.\nexport const importsRE =\n /(?<!\\/\\/.*)(?<=^|;|\\*\\/)\\s*import(?!\\s+type)(?:[\\w*{}\\n\\r\\t, ]+from\\s*)?\\s*(\"[^\"]+\"|'[^']+')\\s*(?=$|;|\\/\\/|\\/\\*)/gm\n\nexport async function scanImports(config: ResolvedConfig): Promise<{\n deps: Record<string, string>\n missing: Record<string, string>\n}> {\n const s = Date.now()\n\n let entries: string[] = []\n\n const explicitEntryPatterns = config.optimizeDeps?.entries\n const buildInput = config.build.rollupOptions?.input\n\n if (explicitEntryPatterns) {\n entries = await globEntries(explicitEntryPatterns, config)\n } else if (buildInput) {\n const resolvePath = (p: string) => path.resolve(config.root, p)\n if (typeof buildInput === 'string') {\n entries = [resolvePath(buildInput)]\n } else if (Array.isArray(buildInput)) {\n entries = buildInput.map(resolvePath)\n } else if (isObject(buildInput)) {\n entries = Object.values(buildInput).map(resolvePath)\n } else {\n throw new Error('invalid rollupOptions.input value.')\n }\n } else {\n entries = await globEntries('**/*.html', config)\n }\n\n // Non-supported entry file types and virtual files should not be scanned for\n // dependencies.\n entries = entries.filter(\n (entry) =>\n (JS_TYPES_RE.test(entry) || htmlTypesRE.test(entry)) &&\n fs.existsSync(entry)\n )\n\n if (!entries.length) {\n config.logger.warn(\n 'Could not determine entry point from rollupOptions or html files. Skipping dependency pre-bundling.'\n )\n return { deps: {}, missing: {} }\n } else {\n debug(`Crawling dependencies using entries:\\n ${entries.join('\\n ')}`)\n }\n\n const deps: Record<string, string> = {}\n const missing: Record<string, string> = {}\n const container = await createPluginContainer(config)\n const plugin = esbuildScanPlugin(config, container, deps, missing, entries)\n\n const { plugins = [], ...esbuildOptions } =\n config.optimizeDeps?.esbuildOptions ?? {}\n\n await Promise.all(\n entries.map((entry) =>\n build({\n absWorkingDir: process.cwd(),\n write: false,\n entryPoints: [entry],\n bundle: true,\n format: 'esm',\n logLevel: 'error',\n plugins: [...plugins, plugin],\n ...esbuildOptions\n })\n )\n )\n\n debug(`Scan completed in ${Date.now() - s}ms:`, deps)\n\n return {\n deps,\n missing\n }\n}\n\nfunction globEntries(pattern: string | string[], config: ResolvedConfig) {\n return glob(pattern, {\n cwd: config.root,\n ignore: [\n '**/node_modules/**',\n `**/${config.build.outDir}/**`,\n `**/__tests__/**`\n ],\n absolute: true\n })\n}\n\nconst scriptModuleRE =\n /(<script\\b[^>]*type\\s*=\\s*(?:\"module\"|'module')[^>]*>)(.*?)<\\/script>/gims\nexport const scriptRE = /(<script\\b(?:\\s[^>]*>|>))(.*?)<\\/script>/gims\nexport const commentRE = /<!--(.|[\\r\\n])*?-->/\nconst srcRE = /\\bsrc\\s*=\\s*(?:\"([^\"]+)\"|'([^']+)'|([^\\s'\">]+))/im\nconst typeRE = /\\btype\\s*=\\s*(?:\"([^\"]+)\"|'([^']+)'|([^\\s'\">]+))/im\nconst langRE = /\\blang\\s*=\\s*(?:\"([^\"]+)\"|'([^']+)'|([^\\s'\">]+))/im\n\nfunction esbuildScanPlugin(\n config: ResolvedConfig,\n container: PluginContainer,\n depImports: Record<string, string>,\n missing: Record<string, string>,\n entries: string[]\n): Plugin {\n const seen = new Map<string, string | undefined>()\n\n const resolve = async (id: string, importer?: string) => {\n const key = id + (importer && path.dirname(importer))\n if (seen.has(key)) {\n return seen.get(key)\n }\n const resolved = await container.resolveId(\n id,\n importer && normalizePath(importer)\n )\n const res = resolved?.id\n seen.set(key, res)\n return res\n }\n\n const include = config.optimizeDeps?.include\n const exclude = [\n ...(config.optimizeDeps?.exclude || []),\n '@vite/client',\n '@vite/env'\n ]\n\n const externalUnlessEntry = ({ path }: { path: string }) => ({\n path,\n external: !entries.includes(path)\n })\n\n return {\n name: 'vite:dep-scan',\n setup(build) {\n // external urls\n build.onResolve({ filter: externalRE }, ({ path }) => ({\n path,\n external: true\n }))\n\n // data urls\n build.onResolve({ filter: dataUrlRE }, ({ path }) => ({\n path,\n external: true\n }))\n\n // html types: extract script contents -----------------------------------\n build.onResolve({ filter: htmlTypesRE }, async ({ path, importer }) => {\n return {\n path: await resolve(path, importer),\n namespace: 'html'\n }\n })\n\n // extract scripts inside HTML-like files and treat it as a js module\n build.onLoad(\n { filter: htmlTypesRE, namespace: 'html' },\n async ({ path }) => {\n let raw = fs.readFileSync(path, 'utf-8')\n // Avoid matching the content of the comment\n raw = raw.replace(commentRE, '<!---->')\n const isHtml = path.endsWith('.html')\n const regex = isHtml ? scriptModuleRE : scriptRE\n regex.lastIndex = 0\n let js = ''\n let loader: Loader = 'js'\n let match: RegExpExecArray | null\n while ((match = regex.exec(raw))) {\n const [, openTag, content] = match\n const srcMatch = openTag.match(srcRE)\n const typeMatch = openTag.match(typeRE)\n const langMatch = openTag.match(langRE)\n const type =\n typeMatch && (typeMatch[1] || typeMatch[2] || typeMatch[3])\n const lang =\n langMatch && (langMatch[1] || langMatch[2] || langMatch[3])\n // skip type=\"application/ld+json\" and other non-JS types\n if (\n type &&\n !(\n type.includes('javascript') ||\n type.includes('ecmascript') ||\n type === 'module'\n )\n ) {\n continue\n }\n if (lang === 'ts' || lang === 'tsx' || lang === 'jsx') {\n loader = lang\n }\n if (srcMatch) {\n const src = srcMatch[1] || srcMatch[2] || srcMatch[3]\n js += `import ${JSON.stringify(src)}\\n`\n } else if (content.trim()) {\n js += content + '\\n'\n }\n }\n // empty singleline & multiline comments to avoid matching comments\n const code = js\n .replace(multilineCommentsRE, '/* */')\n .replace(singlelineCommentsRE, '')\n\n if (\n loader.startsWith('ts') &&\n (path.endsWith('.svelte') ||\n (path.endsWith('.vue') && /<script\\s+setup/.test(raw)))\n ) {\n // when using TS + (Vue + <script setup>) or Svelte, imports may seem\n // unused to esbuild and dropped in the build output, which prevents\n // esbuild from crawling further.\n // the solution is to add `import 'x'` for every source to force\n // esbuild to keep crawling due to potential side effects.\n let m\n while ((m = importsRE.exec(code)) != null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === importsRE.lastIndex) {\n importsRE.lastIndex++\n }\n js += `\\nimport ${m[1]}`\n }\n }\n\n if (!code.includes(`export default`)) {\n js += `\\nexport default {}`\n }\n\n if (code.includes('import.meta.glob')) {\n return {\n // transformGlob already transforms to js\n loader: 'js',\n contents: await transformGlob(js, path, config.root, loader)\n }\n }\n\n return {\n loader,\n contents: js\n }\n }\n )\n\n // bare imports: record and externalize ----------------------------------\n build.onResolve(\n {\n // avoid matching windows volume\n filter: /^[\\w@][^:]/\n },\n async ({ path: id, importer }) => {\n if (exclude?.some((e) => e === id || id.startsWith(e + '/'))) {\n return externalUnlessEntry({ path: id })\n }\n if (depImports[id]) {\n return externalUnlessEntry({ path: id })\n }\n const resolved = await resolve(id, importer)\n if (resolved) {\n if (shouldExternalizeDep(resolved, id)) {\n return externalUnlessEntry({ path: id })\n }\n if (resolved.includes('node_modules') || include?.includes(id)) {\n // dependency or forced included, externalize and stop crawling\n if (OPTIMIZABLE_ENTRY_RE.test(resolved)) {\n depImports[id] = resolved\n }\n return externalUnlessEntry({ path: id })\n } else {\n const namespace = htmlTypesRE.test(resolved) ? 'html' : undefined\n // linked package, keep crawling\n return {\n path: path.resolve(resolved),\n namespace\n }\n }\n } else {\n missing[id] = normalizePath(importer)\n }\n }\n )\n\n // Externalized file types -----------------------------------------------\n // these are done on raw ids using esbuild's native regex filter so it\n // should be faster than doing it in the catch-all via js\n // they are done after the bare import resolve because a package name\n // may end with these extensions\n\n // css & json\n build.onResolve(\n {\n filter: /\\.(css|less|sass|scss|styl|stylus|pcss|postcss|json)$/\n },\n externalUnlessEntry\n )\n\n // known asset types\n build.onResolve(\n {\n filter: new RegExp(`\\\\.(${KNOWN_ASSET_TYPES.join('|')})$`)\n },\n externalUnlessEntry\n )\n\n // known vite query types: ?worker, ?raw\n build.onResolve({ filter: SPECIAL_QUERY_RE }, ({ path }) => ({\n path,\n external: true\n }))\n\n // catch all -------------------------------------------------------------\n\n build.onResolve(\n {\n filter: /.*/\n },\n async ({ path: id, importer }) => {\n // use vite resolver to support urls and omitted extensions\n const resolved = await resolve(id, importer)\n if (resolved) {\n if (shouldExternalizeDep(resolved, id)) {\n return externalUnlessEntry({ path: id })\n }\n\n const namespace = htmlTypesRE.test(resolved) ? 'html' : undefined\n\n return {\n path: path.resolve(cleanUrl(resolved)),\n namespace\n }\n } else {\n // resolve failed... probably unsupported type\n return externalUnlessEntry({ path: id })\n }\n }\n )\n\n // for jsx/tsx, we need to access the content and check for\n // presence of import.meta.glob, since it results in import relationships\n // but isn't crawled by esbuild.\n build.onLoad({ filter: JS_TYPES_RE }, ({ path: id }) => {\n let ext = path.extname(id).slice(1)\n if (ext === 'mjs') ext = 'js'\n\n let contents = fs.readFileSync(id, 'utf-8')\n if (ext.endsWith('x') && config.esbuild && config.esbuild.jsxInject) {\n contents = config.esbuild.jsxInject + `\\n` + contents\n }\n\n if (contents.includes('import.meta.glob')) {\n return transformGlob(contents, id, config.root, ext as Loader).then(\n (contents) => ({\n loader: ext as Loader,\n contents\n })\n )\n }\n return {\n loader: ext as Loader,\n contents\n }\n })\n }\n }\n}\n\nasync function transformGlob(\n source: string,\n importer: string,\n root: string,\n loader: Loader\n) {\n // transform the content first since es-module-lexer can't handle non-js\n if (loader !== 'js') {\n source = (await transform(source, { loader })).code\n }\n\n await init\n const imports = parse(source)[0]\n const s = new MagicString(source)\n for (let index = 0; index < imports.length; index++) {\n const { s: start, e: end, ss: expStart } = imports[index]\n const url = source.slice(start, end)\n if (url !== 'import.meta') continue\n if (source.slice(end, end + 5) !== '.glob') continue\n const { importsString, exp, endIndex } = await transformImportGlob(\n source,\n start,\n normalizePath(importer),\n index,\n root\n )\n s.prepend(importsString)\n s.overwrite(expStart, endIndex, exp)\n }\n return s.toString()\n}\n\nexport function shouldExternalizeDep(\n resolvedId: string,\n rawId: string\n): boolean {\n // not a valid file path\n if (!path.isAbsolute(resolvedId)) {\n return true\n }\n // virtual id\n if (resolvedId === rawId || resolvedId.includes('\\0')) {\n return true\n }\n // resolved is not a scannable type\n if (!JS_TYPES_RE.test(resolvedId) && !htmlTypesRE.test(resolvedId)) {\n return true\n }\n return false\n}\n","import { Plugin } from '../plugin'\nimport MagicString from 'magic-string'\nimport path from 'path'\nimport { fileToUrl } from './asset'\nimport { ResolvedConfig } from '../config'\nimport { multilineCommentsRE, singlelineCommentsRE } from '../utils'\n\n/**\n * Convert `new URL('./foo.png', import.meta.url)` to its resolved built URL\n *\n * Supports tempalte string with dynamic segments:\n * ```\n * new URL(`./dir/${name}.png`, import.meta.url)\n * // transformed to\n * import.meta.globEager('./dir/**.png')[`./dir/${name}.png`].default\n * ```\n */\nexport function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin {\n return {\n name: 'asset-import-meta-url',\n async transform(code, id, ssr) {\n if (code.includes('new URL') && code.includes(`import.meta.url`)) {\n const importMetaUrlRE =\n /\\bnew\\s+URL\\s*\\(\\s*('[^']+'|\"[^\"]+\"|`[^`]+`)\\s*,\\s*import\\.meta\\.url\\s*\\)/g\n const noCommentsCode = code\n .replace(multilineCommentsRE, (m) => ' '.repeat(m.length))\n .replace(singlelineCommentsRE, (m) => ' '.repeat(m.length))\n let s: MagicString | null = null\n let match: RegExpExecArray | null\n while ((match = importMetaUrlRE.exec(noCommentsCode))) {\n const { 0: exp, 1: rawUrl, index } = match\n\n if (ssr) {\n this.error(\n `\\`new URL(url, import.meta.url)\\` is not supported in SSR.`,\n index\n )\n }\n\n if (!s) s = new MagicString(code)\n\n // potential dynamic template string\n if (rawUrl[0] === '`' && /\\$\\{/.test(rawUrl)) {\n const ast = this.parse(rawUrl)\n const templateLiteral = (ast as any).body[0].expression\n if (templateLiteral.expressions.length) {\n const pattern = buildGlobPattern(templateLiteral)\n // Note: native import.meta.url is not supported in the baseline\n // target so we use window.location here -\n s.overwrite(\n index,\n index + exp.length,\n `new URL(import.meta.globEagerDefault(${JSON.stringify(\n pattern\n )})[${rawUrl}], window.location)`\n )\n continue\n }\n }\n\n const url = rawUrl.slice(1, -1)\n const file = path.resolve(path.dirname(id), url)\n const builtUrl = await fileToUrl(file, config, this)\n s.overwrite(\n index,\n index + exp.length,\n `new URL(${JSON.stringify(builtUrl)}, window.location)`\n )\n }\n if (s) {\n return {\n code: s.toString(),\n map: config.build.sourcemap ? s.generateMap({ hires: true }) : null\n }\n }\n }\n return null\n }\n }\n}\n\nfunction buildGlobPattern(ast: any) {\n let pattern = ''\n let lastElementIndex = -1\n for (const exp of ast.expressions) {\n for (let i = lastElementIndex + 1; i < ast.quasis.length; i++) {\n const el = ast.quasis[i]\n if (el.end < exp.start) {\n pattern += el.value.raw\n lastElementIndex = i\n }\n }\n pattern += '**'\n }\n for (let i = lastElementIndex + 1; i < ast.quasis.length; i++) {\n pattern += ast.quasis[i].value.raw\n }\n return pattern\n}\n","import { promises as fs } from 'fs'\nimport { Plugin } from '..'\nimport { cleanUrl } from '../utils'\n\nexport function loadFallbackPlugin(): Plugin {\n return {\n name: 'load-fallback',\n async load(id) {\n try {\n return fs.readFile(cleanUrl(id), 'utf-8')\n } catch (e) {\n return fs.readFile(id, 'utf-8')\n }\n }\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport chalk from 'chalk'\nimport { resolveConfig, InlineConfig, ResolvedConfig } from './config'\nimport Rollup, {\n Plugin,\n RollupBuild,\n RollupOptions,\n RollupWarning,\n WarningHandler,\n OutputOptions,\n RollupOutput,\n ExternalOption,\n GetManualChunk,\n GetModuleInfo,\n WatcherOptions,\n RollupWatcher,\n RollupError,\n ModuleFormat\n} from 'rollup'\nimport { buildReporterPlugin } from './plugins/reporter'\nimport { buildHtmlPlugin } from './plugins/html'\nimport { buildEsbuildPlugin } from './plugins/esbuild'\nimport { terserPlugin } from './plugins/terser'\nimport { Terser } from 'types/terser'\nimport { copyDir, emptyDir, lookupFile, normalizePath } from './utils'\nimport { manifestPlugin } from './plugins/manifest'\nimport commonjsPlugin from '@rollup/plugin-commonjs'\nimport { RollupCommonJSOptions } from 'types/commonjs'\nimport dynamicImportVars from '@rollup/plugin-dynamic-import-vars'\nimport { RollupDynamicImportVarsOptions } from 'types/dynamicImportVars'\nimport { Logger } from './logger'\nimport { TransformOptions } from 'esbuild'\nimport { dataURIPlugin } from './plugins/dataUri'\nimport { buildImportAnalysisPlugin } from './plugins/importAnalysisBuild'\nimport { resolveSSRExternal, shouldExternalizeForSSR } from './ssr/ssrExternal'\nimport { ssrManifestPlugin } from './ssr/ssrManifestPlugin'\nimport { isCSSRequest } from './plugins/css'\nimport { DepOptimizationMetadata } from './optimizer'\nimport { scanImports } from './optimizer/scan'\nimport { assetImportMetaUrlPlugin } from './plugins/assetImportMetaUrl'\nimport { loadFallbackPlugin } from './plugins/loadFallback'\n\nexport interface BuildOptions {\n /**\n * Base public path when served in production.\n * @deprecated `base` is now a root-level config option.\n */\n base?: string\n /**\n * Compatibility transform target. The transform is performed with esbuild\n * and the lowest supported target is es2015/es6. Note this only handles\n * syntax transformation and does not cover polyfills (except for dynamic\n * import)\n *\n * Default: 'modules' - Similar to `@babel/preset-env`'s targets.esmodules,\n * transpile targeting browsers that natively support dynamic es module imports.\n * https://caniuse.com/es6-module-dynamic-import\n *\n * Another special value is 'esnext' - which only performs minimal transpiling\n * (for minification compat) and assumes native dynamic imports support.\n *\n * For custom targets, see https://esbuild.github.io/api/#target and\n * https://esbuild.github.io/content-types/#javascript for more details.\n */\n target?: 'modules' | TransformOptions['target'] | false\n /**\n * whether to inject module preload polyfill.\n * Note: does not apply to library mode.\n * @default true\n */\n polyfillModulePreload?: boolean\n /**\n * whether to inject dynamic import polyfill.\n * Note: does not apply to library mode.\n * @default false\n * @deprecated use plugin-legacy for browsers that don't support dynamic import\n */\n polyfillDynamicImport?: boolean\n /**\n * Directory relative from `root` where build output will be placed. If the\n * directory exists, it will be removed before the build.\n * @default 'dist'\n */\n outDir?: string\n /**\n * Directory relative from `outDir` where the built js/css/image assets will\n * be placed.\n * @default 'assets'\n */\n assetsDir?: string\n /**\n * Static asset files smaller than this number (in bytes) will be inlined as\n * base64 strings. Default limit is `4096` (4kb). Set to `0` to disable.\n * @default 4096\n */\n assetsInlineLimit?: number\n /**\n * Whether to code-split CSS. When enabled, CSS in async chunks will be\n * inlined as strings in the chunk and inserted via dynamically created\n * style tags when the chunk is loaded.\n * @default true\n */\n cssCodeSplit?: boolean\n /**\n * If `true`, a separate sourcemap file will be created. If 'inline', the\n * sourcemap will be appended to the resulting output file as data URI.\n * 'hidden' works like `true` except that the corresponding sourcemap\n * comments in the bundled files are suppressed.\n * @default false\n */\n sourcemap?: boolean | 'inline' | 'hidden'\n /**\n * Set to `false` to disable minification, or specify the minifier to use.\n * Available options are 'terser' or 'esbuild'.\n * @default 'terser'\n */\n minify?: boolean | 'terser' | 'esbuild'\n /**\n * Options for terser\n * https://terser.org/docs/api-reference#minify-options\n */\n terserOptions?: Terser.MinifyOptions\n /**\n * @deprecated Vite now uses esbuild for CSS minification.\n */\n cleanCssOptions?: any\n /**\n * Will be merged with internal rollup options.\n * https://rollupjs.org/guide/en/#big-list-of-options\n */\n rollupOptions?: RollupOptions\n /**\n * Options to pass on to `@rollup/plugin-commonjs`\n */\n commonjsOptions?: RollupCommonJSOptions\n /**\n * Options to pass on to `@rollup/plugin-dynamic-import-vars`\n */\n dynamicImportVarsOptions?: RollupDynamicImportVarsOptions\n /**\n * Whether to write bundle to disk\n * @default true\n */\n write?: boolean\n /**\n * Empty outDir on write.\n * @default true when outDir is a sub directory of project root\n */\n emptyOutDir?: boolean | null\n /**\n * Whether to emit a manifest.json under assets dir to map hash-less filenames\n * to their hashed versions. Useful when you want to generate your own HTML\n * instead of using the one generated by Vite.\n *\n * Example:\n *\n * ```json\n * {\n * \"main.js\": {\n * \"file\": \"main.68fe3fad.js\",\n * \"css\": \"main.e6b63442.css\",\n * \"imports\": [...],\n * \"dynamicImports\": [...]\n * }\n * }\n * ```\n * @default false\n */\n manifest?: boolean\n /**\n * Build in library mode. The value should be the global name of the lib in\n * UMD mode. This will produce esm + cjs + umd bundle formats with default\n * configurations that are suitable for distributing libraries.\n */\n lib?: LibraryOptions | false\n /**\n * Produce SSR oriented build. Note this requires specifying SSR entry via\n * `rollupOptions.input`.\n */\n ssr?: boolean | string\n /**\n * Generate SSR manifest for determining style links and asset preload\n * directives in production.\n */\n ssrManifest?: boolean\n /**\n * Set to false to disable brotli compressed size reporting for build.\n * Can slightly improve build speed.\n */\n brotliSize?: boolean\n /**\n * Adjust chunk size warning limit (in kbs).\n * @default 500\n */\n chunkSizeWarningLimit?: number\n /**\n * Rollup watch options\n * https://rollupjs.org/guide/en/#watchoptions\n */\n watch?: WatcherOptions | null\n}\n\nexport interface LibraryOptions {\n entry: string\n name?: string\n formats?: LibraryFormats[]\n fileName?: string | ((format: ModuleFormat) => string)\n}\n\nexport type LibraryFormats = 'es' | 'cjs' | 'umd' | 'iife'\n\nexport type ResolvedBuildOptions = Required<\n Omit<BuildOptions, 'base' | 'cleanCssOptions' | 'polyfillDynamicImport'>\n>\n\nexport function resolveBuildOptions(raw?: BuildOptions): ResolvedBuildOptions {\n const resolved: ResolvedBuildOptions = {\n target: 'modules',\n polyfillModulePreload: true,\n outDir: 'dist',\n assetsDir: 'assets',\n assetsInlineLimit: 4096,\n cssCodeSplit: !raw?.lib,\n sourcemap: false,\n rollupOptions: {},\n commonjsOptions: {\n include: [/node_modules/],\n extensions: ['.js', '.cjs'],\n ...raw?.commonjsOptions\n },\n dynamicImportVarsOptions: {\n warnOnError: true,\n exclude: [/node_modules/],\n ...raw?.dynamicImportVarsOptions\n },\n minify: raw?.ssr ? false : 'terser',\n terserOptions: {},\n write: true,\n emptyOutDir: null,\n manifest: false,\n lib: false,\n ssr: false,\n ssrManifest: false,\n brotliSize: true,\n chunkSizeWarningLimit: 500,\n watch: null,\n ...raw\n }\n\n // handle special build targets\n if (resolved.target === 'modules') {\n // Support browserslist\n // \"defaults and supports es6-module and supports es6-module-dynamic-import\",\n resolved.target = [\n 'es2019',\n 'edge88',\n 'firefox78',\n 'chrome87',\n 'safari13.1'\n ]\n } else if (resolved.target === 'esnext' && resolved.minify === 'terser') {\n // esnext + terser: limit to es2019 so it can be minified by terser\n resolved.target = 'es2019'\n }\n\n // normalize false string into actual false\n if ((resolved.minify as any) === 'false') {\n resolved.minify = false\n }\n\n return resolved\n}\n\nexport function resolveBuildPlugins(config: ResolvedConfig): {\n pre: Plugin[]\n post: Plugin[]\n} {\n const options = config.build\n return {\n pre: [\n buildHtmlPlugin(config),\n commonjsPlugin(options.commonjsOptions),\n dataURIPlugin(),\n dynamicImportVars(options.dynamicImportVarsOptions),\n assetImportMetaUrlPlugin(config),\n ...(options.rollupOptions.plugins\n ? (options.rollupOptions.plugins.filter((p) => !!p) as Plugin[])\n : [])\n ],\n post: [\n buildImportAnalysisPlugin(config),\n buildEsbuildPlugin(config),\n ...(options.minify && options.minify !== 'esbuild'\n ? [terserPlugin(options.terserOptions)]\n : []),\n ...(options.manifest ? [manifestPlugin(config)] : []),\n ...(options.ssrManifest ? [ssrManifestPlugin(config)] : []),\n buildReporterPlugin(config),\n loadFallbackPlugin()\n ]\n }\n}\n\n/**\n * Track parallel build calls and only stop the esbuild service when all\n * builds are done. (#1098)\n */\nlet parallelCallCounts = 0\n// we use a separate counter to track since the call may error before the\n// bundle is even pushed.\nconst parallelBuilds: RollupBuild[] = []\n\n/**\n * Bundles the app for production.\n * Returns a Promise containing the build result.\n */\nexport async function build(\n inlineConfig: InlineConfig = {}\n): Promise<RollupOutput | RollupOutput[] | RollupWatcher> {\n parallelCallCounts++\n try {\n return await doBuild(inlineConfig)\n } finally {\n parallelCallCounts--\n if (parallelCallCounts <= 0) {\n await Promise.all(parallelBuilds.map((bundle) => bundle.close()))\n parallelBuilds.length = 0\n }\n }\n}\n\nasync function doBuild(\n inlineConfig: InlineConfig = {}\n): Promise<RollupOutput | RollupOutput[] | RollupWatcher> {\n const config = await resolveConfig(inlineConfig, 'build', 'production')\n const options = config.build\n const ssr = !!options.ssr\n const libOptions = options.lib\n\n config.logger.info(\n chalk.cyan(\n `vite v${require('vite/package.json').version} ${chalk.green(\n `building ${ssr ? `SSR bundle ` : ``}for ${config.mode}...`\n )}`\n )\n )\n\n const resolve = (p: string) => path.resolve(config.root, p)\n const input = libOptions\n ? resolve(libOptions.entry)\n : typeof options.ssr === 'string'\n ? resolve(options.ssr)\n : options.rollupOptions?.input || resolve('index.html')\n\n if (ssr && typeof input === 'string' && input.endsWith('.html')) {\n throw new Error(\n `rollupOptions.input should not be an html file when building for SSR. ` +\n `Please specify a dedicated SSR entry.`\n )\n }\n\n const outDir = resolve(options.outDir)\n\n // inject ssr arg to plugin load/transform hooks\n const plugins = (\n ssr ? config.plugins.map((p) => injectSsrFlagToHooks(p)) : config.plugins\n ) as Plugin[]\n\n // inject ssrExternal if present\n const userExternal = options.rollupOptions?.external\n let external = userExternal\n if (ssr) {\n // see if we have cached deps data available\n let knownImports: string[] | undefined\n if (config.cacheDir) {\n const dataPath = path.join(config.cacheDir, '_metadata.json')\n try {\n const data = JSON.parse(\n fs.readFileSync(dataPath, 'utf-8')\n ) as DepOptimizationMetadata\n knownImports = Object.keys(data.optimized)\n } catch (e) {}\n }\n if (!knownImports) {\n // no dev deps optimization data, do a fresh scan\n knownImports = Object.keys((await scanImports(config)).deps)\n }\n external = resolveExternal(\n resolveSSRExternal(config, knownImports),\n userExternal\n )\n }\n\n const rollup = require('rollup') as typeof Rollup\n const rollupOptions: RollupOptions = {\n input,\n preserveEntrySignatures: ssr\n ? 'allow-extension'\n : libOptions\n ? 'strict'\n : false,\n ...options.rollupOptions,\n plugins,\n external,\n onwarn(warning, warn) {\n onRollupWarning(warning, warn, config)\n }\n }\n\n const outputBuildError = (e: RollupError) => {\n let msg = chalk.red((e.plugin ? `[${e.plugin}] ` : '') + e.message)\n if (e.id) {\n msg += `\\nfile: ${chalk.cyan(\n e.id + (e.loc ? `:${e.loc.line}:${e.loc.column}` : '')\n )}`\n }\n if (e.frame) {\n msg += `\\n` + chalk.yellow(e.frame)\n }\n config.logger.error(msg, { error: e })\n }\n\n try {\n const pkgName = libOptions && getPkgName(config.root)\n\n const buildOutputOptions = (output: OutputOptions = {}): OutputOptions => {\n return {\n dir: outDir,\n format: ssr ? 'cjs' : 'es',\n exports: ssr ? 'named' : 'auto',\n sourcemap: options.sourcemap,\n name: libOptions ? libOptions.name : undefined,\n entryFileNames: ssr\n ? `[name].js`\n : libOptions\n ? resolveLibFilename(libOptions, output.format || 'es', pkgName)\n : path.posix.join(options.assetsDir, `[name].[hash].js`),\n chunkFileNames: libOptions\n ? `[name].js`\n : path.posix.join(options.assetsDir, `[name].[hash].js`),\n assetFileNames: libOptions\n ? `[name].[ext]`\n : path.posix.join(options.assetsDir, `[name].[hash].[ext]`),\n // #764 add `Symbol.toStringTag` when build es module into cjs chunk\n // #1048 add `Symbol.toStringTag` for module default export\n namespaceToStringTag: true,\n inlineDynamicImports: ssr && typeof input === 'string',\n manualChunks:\n !ssr &&\n !libOptions &&\n output?.format !== 'umd' &&\n output?.format !== 'iife'\n ? createMoveToVendorChunkFn(config)\n : undefined,\n ...output\n }\n }\n\n // resolve lib mode outputs\n const outputs = resolveBuildOutputs(\n options.rollupOptions?.output,\n libOptions,\n config.logger\n )\n\n // watch file changes with rollup\n if (config.build.watch) {\n config.logger.info(chalk.cyanBright(`\\nwatching for file changes...`))\n\n const output: OutputOptions[] = []\n if (Array.isArray(outputs)) {\n for (const resolvedOutput of outputs) {\n output.push(buildOutputOptions(resolvedOutput))\n }\n } else {\n output.push(buildOutputOptions(outputs))\n }\n\n const watcherOptions = config.build.watch\n const watcher = rollup.watch({\n ...rollupOptions,\n output,\n watch: {\n ...watcherOptions,\n chokidar: {\n ignored: [\n '**/node_modules/**',\n '**/.git/**',\n ...(watcherOptions?.chokidar?.ignored || [])\n ],\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ...watcherOptions.chokidar\n }\n }\n })\n\n watcher.on('event', (event) => {\n if (event.code === 'BUNDLE_START') {\n config.logger.info(chalk.cyanBright(`\\nbuild started...`))\n if (options.write) {\n prepareOutDir(outDir, options.emptyOutDir, config)\n }\n } else if (event.code === 'BUNDLE_END') {\n event.result.close()\n config.logger.info(chalk.cyanBright(`built in ${event.duration}ms.`))\n } else if (event.code === 'ERROR') {\n outputBuildError(event.error)\n }\n })\n\n // stop watching\n watcher.close()\n\n return watcher\n }\n\n // write or generate files with rollup\n const bundle = await rollup.rollup(rollupOptions)\n parallelBuilds.push(bundle)\n\n const generate = (output: OutputOptions = {}) => {\n return bundle[options.write ? 'write' : 'generate'](\n buildOutputOptions(output)\n )\n }\n\n if (options.write) {\n prepareOutDir(outDir, options.emptyOutDir, config)\n }\n\n if (Array.isArray(outputs)) {\n const res = []\n for (const output of outputs) {\n res.push(await generate(output))\n }\n return res\n } else {\n return await generate(outputs)\n }\n } catch (e) {\n outputBuildError(e)\n throw e\n }\n}\n\nfunction prepareOutDir(\n outDir: string,\n emptyOutDir: boolean | null,\n config: ResolvedConfig\n) {\n if (fs.existsSync(outDir)) {\n if (\n emptyOutDir == null &&\n !normalizePath(outDir).startsWith(config.root + '/')\n ) {\n // warn if outDir is outside of root\n config.logger.warn(\n chalk.yellow(\n `\\n${chalk.bold(`(!)`)} outDir ${chalk.white.dim(\n outDir\n )} is not inside project root and will not be emptied.\\n` +\n `Use --emptyOutDir to override.\\n`\n )\n )\n } else if (emptyOutDir !== false) {\n emptyDir(outDir, ['.git'])\n }\n }\n if (config.publicDir && fs.existsSync(config.publicDir)) {\n copyDir(config.publicDir, outDir)\n }\n}\n\nfunction getPkgName(root: string) {\n const { name } = JSON.parse(lookupFile(root, ['package.json']) || `{}`)\n\n if (!name) throw new Error('no name found in package.json')\n\n return name.startsWith('@') ? name.split('/')[1] : name\n}\n\nfunction createMoveToVendorChunkFn(config: ResolvedConfig): GetManualChunk {\n const cache = new Map<string, boolean>()\n return (id, { getModuleInfo }) => {\n if (\n id.includes('node_modules') &&\n !isCSSRequest(id) &&\n staticImportedByEntry(id, getModuleInfo, cache)\n ) {\n return 'vendor'\n }\n }\n}\n\nfunction staticImportedByEntry(\n id: string,\n getModuleInfo: GetModuleInfo,\n cache: Map<string, boolean>,\n importStack: string[] = []\n): boolean {\n if (cache.has(id)) {\n return cache.get(id) as boolean\n }\n if (importStack.includes(id)) {\n // circular deps!\n cache.set(id, false)\n return false\n }\n const mod = getModuleInfo(id)\n if (!mod) {\n cache.set(id, false)\n return false\n }\n\n if (mod.isEntry) {\n cache.set(id, true)\n return true\n }\n const someImporterIs = mod.importers.some((importer) =>\n staticImportedByEntry(\n importer,\n getModuleInfo,\n cache,\n importStack.concat(id)\n )\n )\n cache.set(id, someImporterIs)\n return someImporterIs\n}\n\nexport function resolveLibFilename(\n libOptions: LibraryOptions,\n format: ModuleFormat,\n pkgName: string\n): string {\n return typeof libOptions.fileName === 'function'\n ? libOptions.fileName(format)\n : `${libOptions.fileName || pkgName}.${format}.js`\n}\n\nfunction resolveBuildOutputs(\n outputs: OutputOptions | OutputOptions[] | undefined,\n libOptions: LibraryOptions | false,\n logger: Logger\n): OutputOptions | OutputOptions[] | undefined {\n if (libOptions) {\n const formats = libOptions.formats || ['es', 'umd']\n if (\n (formats.includes('umd') || formats.includes('iife')) &&\n !libOptions.name\n ) {\n throw new Error(\n `Option \"build.lib.name\" is required when output formats ` +\n `include \"umd\" or \"iife\".`\n )\n }\n if (!outputs) {\n return formats.map((format) => ({ format }))\n } else if (!Array.isArray(outputs)) {\n return formats.map((format) => ({ ...outputs, format }))\n } else if (libOptions.formats) {\n // user explicitly specifying own output array\n logger.warn(\n chalk.yellow(\n `\"build.lib.formats\" will be ignored because ` +\n `\"build.rollupOptions.output\" is already an array format`\n )\n )\n }\n }\n return outputs\n}\n\nconst warningIgnoreList = [`CIRCULAR_DEPENDENCY`, `THIS_IS_UNDEFINED`]\nconst dynamicImportWarningIgnoreList = [\n `Unsupported expression`,\n `statically analyzed`\n]\n\nexport function onRollupWarning(\n warning: RollupWarning,\n warn: WarningHandler,\n config: ResolvedConfig\n): void {\n if (warning.code === 'UNRESOLVED_IMPORT') {\n const id = warning.source\n const importer = warning.importer\n // throw unless it's commonjs external...\n if (!importer || !/\\?commonjs-external$/.test(importer)) {\n throw new Error(\n `[vite]: Rollup failed to resolve import \"${id}\" from \"${importer}\".\\n` +\n `This is most likely unintended because it can break your application at runtime.\\n` +\n `If you do want to externalize this module explicitly add it to\\n` +\n `\\`build.rollupOptions.external\\``\n )\n }\n }\n\n if (\n warning.plugin === 'rollup-plugin-dynamic-import-variables' &&\n dynamicImportWarningIgnoreList.some((msg) => warning.message.includes(msg))\n ) {\n return\n }\n\n if (!warningIgnoreList.includes(warning.code!)) {\n const userOnWarn = config.build.rollupOptions?.onwarn\n if (userOnWarn) {\n userOnWarn(warning, warn)\n } else if (warning.code === 'PLUGIN_WARNING') {\n config.logger.warn(\n `${chalk.bold.yellow(`[plugin:${warning.plugin}]`)} ${chalk.yellow(\n warning.message\n )}`\n )\n } else {\n warn(warning)\n }\n }\n}\n\nfunction resolveExternal(\n ssrExternals: string[],\n user: ExternalOption | undefined\n): ExternalOption {\n return ((id, parentId, isResolved) => {\n if (shouldExternalizeForSSR(id, ssrExternals)) {\n return true\n }\n if (user) {\n if (typeof user === 'function') {\n return user(id, parentId, isResolved)\n } else if (Array.isArray(user)) {\n return user.some((test) => isExternal(id, test))\n } else {\n return isExternal(id, user)\n }\n }\n }) as ExternalOption\n}\n\nfunction isExternal(id: string, test: string | RegExp) {\n if (typeof test === 'string') {\n return id === test\n } else {\n return test.test(id)\n }\n}\n\nfunction injectSsrFlagToHooks(p: Plugin): Plugin {\n const { resolveId, load, transform } = p\n return {\n ...p,\n resolveId: wrapSsrHook(resolveId),\n load: wrapSsrHook(load),\n transform: wrapSsrHook(transform)\n }\n}\n\nfunction wrapSsrHook(fn: Function | undefined) {\n if (!fn) return\n return function (this: any, ...args: any[]) {\n return fn.call(this, ...args, true)\n }\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","/**\n * Module dependencies.\n */\n\nvar tty = require('tty');\nvar util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = require('fs');\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = require('net');\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n","/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","/**\n * Module dependencies.\n */\n\nvar tty = require('tty');\nvar util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n // camel-case\n var prop = key\n .substring(6)\n .toLowerCase()\n .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n // coerce string value into JS value\n var val = process.env[key];\n if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n else if (val === 'null') val = null;\n else val = Number(val);\n\n obj[prop] = val;\n return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n * $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()\n}\n\nvar stream = 1 === fd ? process.stdout :\n 2 === fd ? process.stderr :\n createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n return 'colors' in exports.inspectOpts\n ? Boolean(exports.inspectOpts.colors)\n : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts)\n .split('\\n').map(function(str) {\n return str.trim()\n }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n this.inspectOpts.colors = this.useColors;\n return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var name = this.namespace;\n var useColors = this.useColors;\n\n if (useColors) {\n var c = this.color;\n var prefix = ' \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n } else {\n args[0] = new Date().toUTCString()\n + ' ' + name + ' ' + args[0];\n }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n if (null == namespaces) {\n // If you set a process.env field to null or undefined, it gets cast to the\n // string 'null' or 'undefined'. Just delete instead.\n delete process.env.DEBUG;\n } else {\n process.env.DEBUG = namespaces;\n }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n var stream;\n var tty_wrap = process.binding('tty_wrap');\n\n // Note stream._type is used for test-module-load-list.js\n\n switch (tty_wrap.guessHandleType(fd)) {\n case 'TTY':\n stream = new tty.WriteStream(fd);\n stream._type = 'tty';\n\n // Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n case 'FILE':\n var fs = require('fs');\n stream = new fs.SyncWriteStream(fd, { autoClose: false });\n stream._type = 'fs';\n break;\n\n case 'PIPE':\n case 'TCP':\n var net = require('net');\n stream = new net.Socket({\n fd: fd,\n readable: false,\n writable: true\n });\n\n // FIXME Should probably have an option in net.Socket to create a\n // stream from an existing fd which is writable only. But for now\n // we'll just add this hack and set the `readable` member to false.\n // Test: ./node test/fixtures/echo.js < /etc/passwd\n stream.readable = false;\n stream.read = null;\n stream._type = 'pipe';\n\n // FIXME Hack to have stream not keep the event loop alive.\n // See https://github.com/joyent/node/issues/1726\n if (stream._handle && stream._handle.unref) {\n stream._handle.unref();\n }\n break;\n\n default:\n // Probably an error on in uv_guess_handle()\n throw new Error('Implement me. Unknown stream file type!');\n }\n\n // For supporting legacy API we put the FD here.\n stream.fd = fd;\n\n stream._isStdio = true;\n\n return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n debug.inspectOpts = {};\n\n var keys = Object.keys(exports.inspectOpts);\n for (var i = 0; i < keys.length; i++) {\n debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n","/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n module.exports = require('./browser.js');\n} else {\n module.exports = require('./node.js');\n}\n","/*!\n * encodeurl\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = encodeUrl\n\n/**\n * RegExp to match non-URL code points, *after* encoding (i.e. not including \"%\")\n * and including invalid escape sequences.\n * @private\n */\n\nvar ENCODE_CHARS_REGEXP = /(?:[^\\x21\\x25\\x26-\\x3B\\x3D\\x3F-\\x5B\\x5D\\x5F\\x61-\\x7A\\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g\n\n/**\n * RegExp to match unmatched surrogate pair.\n * @private\n */\n\nvar UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF]([^\\uDC00-\\uDFFF]|$)/g\n\n/**\n * String to replace unmatched surrogate pair with.\n * @private\n */\n\nvar UNMATCHED_SURROGATE_PAIR_REPLACE = '$1\\uFFFD$2'\n\n/**\n * Encode a URL to a percent-encoded form, excluding already-encoded sequences.\n *\n * This function will take an already-encoded URL and encode all the non-URL\n * code points. This function will not encode the \"%\" character unless it is\n * not part of a valid sequence (`%20` will be left as-is, but `%foo` will\n * be encoded as `%25foo`).\n *\n * This encode is meant to be \"safe\" and does not throw errors. It will try as\n * hard as it can to properly encode the given URL, including replacing any raw,\n * unpaired surrogate pairs with the Unicode replacement character prior to\n * encoding.\n *\n * @param {string} url\n * @return {string}\n * @public\n */\n\nfunction encodeUrl (url) {\n return String(url)\n .replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE)\n .replace(ENCODE_CHARS_REGEXP, encodeURI)\n}\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '&quot;';\n break;\n case 38: // &\n escape = '&amp;';\n break;\n case 39: // '\n escape = '&#39;';\n break;\n case 60: // <\n escape = '&lt;';\n break;\n case 62: // >\n escape = '&gt;';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","/*!\n * ee-first\n * Copyright(c) 2014 Jonathan Ong\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = first\n\n/**\n * Get the first event in a set of event emitters and event pairs.\n *\n * @param {array} stuff\n * @param {function} done\n * @public\n */\n\nfunction first(stuff, done) {\n if (!Array.isArray(stuff))\n throw new TypeError('arg must be an array of [ee, events...] arrays')\n\n var cleanups = []\n\n for (var i = 0; i < stuff.length; i++) {\n var arr = stuff[i]\n\n if (!Array.isArray(arr) || arr.length < 2)\n throw new TypeError('each array member must be [ee, events...]')\n\n var ee = arr[0]\n\n for (var j = 1; j < arr.length; j++) {\n var event = arr[j]\n var fn = listener(event, callback)\n\n // listen to the event\n ee.on(event, fn)\n // push this listener to the list of cleanups\n cleanups.push({\n ee: ee,\n event: event,\n fn: fn,\n })\n }\n }\n\n function callback() {\n cleanup()\n done.apply(null, arguments)\n }\n\n function cleanup() {\n var x\n for (var i = 0; i < cleanups.length; i++) {\n x = cleanups[i]\n x.ee.removeListener(x.event, x.fn)\n }\n }\n\n function thunk(fn) {\n done = fn\n }\n\n thunk.cancel = cleanup\n\n return thunk\n}\n\n/**\n * Create the event listener.\n * @private\n */\n\nfunction listener(event, done) {\n return function onevent(arg1) {\n var args = new Array(arguments.length)\n var ee = this\n var err = event === 'error'\n ? arg1\n : null\n\n // copy args to prevent arguments escaping scope\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n\n done(err, ee, event, args)\n }\n}\n","/*!\n * on-finished\n * Copyright(c) 2013 Jonathan Ong\n * Copyright(c) 2014 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = onFinished\nmodule.exports.isFinished = isFinished\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar first = require('ee-first')\n\n/**\n * Variables.\n * @private\n */\n\n/* istanbul ignore next */\nvar defer = typeof setImmediate === 'function'\n ? setImmediate\n : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }\n\n/**\n * Invoke callback when the response has finished, useful for\n * cleaning up resources afterwards.\n *\n * @param {object} msg\n * @param {function} listener\n * @return {object}\n * @public\n */\n\nfunction onFinished(msg, listener) {\n if (isFinished(msg) !== false) {\n defer(listener, null, msg)\n return msg\n }\n\n // attach the listener to the message\n attachListener(msg, listener)\n\n return msg\n}\n\n/**\n * Determine if message is already finished.\n *\n * @param {object} msg\n * @return {boolean}\n * @public\n */\n\nfunction isFinished(msg) {\n var socket = msg.socket\n\n if (typeof msg.finished === 'boolean') {\n // OutgoingMessage\n return Boolean(msg.finished || (socket && !socket.writable))\n }\n\n if (typeof msg.complete === 'boolean') {\n // IncomingMessage\n return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable))\n }\n\n // don't know\n return undefined\n}\n\n/**\n * Attach a finished listener to the message.\n *\n * @param {object} msg\n * @param {function} callback\n * @private\n */\n\nfunction attachFinishedListener(msg, callback) {\n var eeMsg\n var eeSocket\n var finished = false\n\n function onFinish(error) {\n eeMsg.cancel()\n eeSocket.cancel()\n\n finished = true\n callback(error)\n }\n\n // finished on first message event\n eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish)\n\n function onSocket(socket) {\n // remove listener\n msg.removeListener('socket', onSocket)\n\n if (finished) return\n if (eeMsg !== eeSocket) return\n\n // finished on first socket event\n eeSocket = first([[socket, 'error', 'close']], onFinish)\n }\n\n if (msg.socket) {\n // socket already assigned\n onSocket(msg.socket)\n return\n }\n\n // wait for socket to be assigned\n msg.on('socket', onSocket)\n\n if (msg.socket === undefined) {\n // node.js 0.8 patch\n patchAssignSocket(msg, onSocket)\n }\n}\n\n/**\n * Attach the listener to the message.\n *\n * @param {object} msg\n * @return {function}\n * @private\n */\n\nfunction attachListener(msg, listener) {\n var attached = msg.__onFinished\n\n // create a private single listener with queue\n if (!attached || !attached.queue) {\n attached = msg.__onFinished = createListener(msg)\n attachFinishedListener(msg, attached)\n }\n\n attached.queue.push(listener)\n}\n\n/**\n * Create listener on message.\n *\n * @param {object} msg\n * @return {function}\n * @private\n */\n\nfunction createListener(msg) {\n function listener(err) {\n if (msg.__onFinished === listener) msg.__onFinished = null\n if (!listener.queue) return\n\n var queue = listener.queue\n listener.queue = null\n\n for (var i = 0; i < queue.length; i++) {\n queue[i](err, msg)\n }\n }\n\n listener.queue = []\n\n return listener\n}\n\n/**\n * Patch ServerResponse.prototype.assignSocket for node.js 0.8.\n *\n * @param {ServerResponse} res\n * @param {function} callback\n * @private\n */\n\nfunction patchAssignSocket(res, callback) {\n var assignSocket = res.assignSocket\n\n if (typeof assignSocket !== 'function') return\n\n // res.on('socket', callback) is broken in 0.8\n res.assignSocket = function _assignSocket(socket) {\n assignSocket.call(this, socket)\n callback(socket)\n }\n}\n","/*!\n * parseurl\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar url = require('url')\nvar parse = url.parse\nvar Url = url.Url\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = parseurl\nmodule.exports.original = originalurl\n\n/**\n * Parse the `req` url with memoization.\n *\n * @param {ServerRequest} req\n * @return {Object}\n * @public\n */\n\nfunction parseurl (req) {\n var url = req.url\n\n if (url === undefined) {\n // URL is undefined\n return undefined\n }\n\n var parsed = req._parsedUrl\n\n if (fresh(url, parsed)) {\n // Return cached URL parse\n return parsed\n }\n\n // Parse the URL\n parsed = fastparse(url)\n parsed._raw = url\n\n return (req._parsedUrl = parsed)\n};\n\n/**\n * Parse the `req` original url with fallback and memoization.\n *\n * @param {ServerRequest} req\n * @return {Object}\n * @public\n */\n\nfunction originalurl (req) {\n var url = req.originalUrl\n\n if (typeof url !== 'string') {\n // Fallback\n return parseurl(req)\n }\n\n var parsed = req._parsedOriginalUrl\n\n if (fresh(url, parsed)) {\n // Return cached URL parse\n return parsed\n }\n\n // Parse the URL\n parsed = fastparse(url)\n parsed._raw = url\n\n return (req._parsedOriginalUrl = parsed)\n};\n\n/**\n * Parse the `str` url with fast-path short-cut.\n *\n * @param {string} str\n * @return {Object}\n * @private\n */\n\nfunction fastparse (str) {\n if (typeof str !== 'string' || str.charCodeAt(0) !== 0x2f /* / */) {\n return parse(str)\n }\n\n var pathname = str\n var query = null\n var search = null\n\n // This takes the regexp from https://github.com/joyent/node/pull/7878\n // Which is /^(\\/[^?#\\s]*)(\\?[^#\\s]*)?$/\n // And unrolls it into a for loop\n for (var i = 1; i < str.length; i++) {\n switch (str.charCodeAt(i)) {\n case 0x3f: /* ? */\n if (search === null) {\n pathname = str.substring(0, i)\n query = str.substring(i + 1)\n search = str.substring(i)\n }\n break\n case 0x09: /* \\t */\n case 0x0a: /* \\n */\n case 0x0c: /* \\f */\n case 0x0d: /* \\r */\n case 0x20: /* */\n case 0x23: /* # */\n case 0xa0:\n case 0xfeff:\n return parse(str)\n }\n }\n\n var url = Url !== undefined\n ? new Url()\n : {}\n\n url.path = str\n url.href = str\n url.pathname = pathname\n\n if (search !== null) {\n url.query = query\n url.search = search\n }\n\n return url\n}\n\n/**\n * Determine if parsed is still fresh for url.\n *\n * @param {string} url\n * @param {object} parsedUrl\n * @return {boolean}\n * @private\n */\n\nfunction fresh (url, parsedUrl) {\n return typeof parsedUrl === 'object' &&\n parsedUrl !== null &&\n (Url === undefined || parsedUrl instanceof Url) &&\n parsedUrl._raw === url\n}\n","/*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar codes = require('./codes.json')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = status\n\n// status code to message map\nstatus.STATUS_CODES = codes\n\n// array of status codes\nstatus.codes = populateStatusesMap(status, codes)\n\n// status codes for redirects\nstatus.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n}\n\n// status codes for empty bodies\nstatus.empty = {\n 204: true,\n 205: true,\n 304: true\n}\n\n// status codes for when you should retry the request\nstatus.retry = {\n 502: true,\n 503: true,\n 504: true\n}\n\n/**\n * Populate the statuses map for given codes.\n * @private\n */\n\nfunction populateStatusesMap (statuses, codes) {\n var arr = []\n\n Object.keys(codes).forEach(function forEachCode (code) {\n var message = codes[code]\n var status = Number(code)\n\n // Populate properties\n statuses[status] = message\n statuses[message] = status\n statuses[message.toLowerCase()] = status\n\n // Add to array\n arr.push(status)\n })\n\n return arr\n}\n\n/**\n * Get the status code.\n *\n * Given a number, this will throw if it is not a known status\n * code, otherwise the code will be returned. Given a string,\n * the string will be parsed for a number and return the code\n * if valid, otherwise will lookup the code assuming this is\n * the status message.\n *\n * @param {string|number} code\n * @returns {number}\n * @public\n */\n\nfunction status (code) {\n if (typeof code === 'number') {\n if (!status[code]) throw new Error('invalid status code: ' + code)\n return code\n }\n\n if (typeof code !== 'string') {\n throw new TypeError('code must be a number or string')\n }\n\n // '403'\n var n = parseInt(code, 10)\n if (!isNaN(n)) {\n if (!status[n]) throw new Error('invalid status code: ' + n)\n return n\n }\n\n n = status[code.toLowerCase()]\n if (!n) throw new Error('invalid status message: \"' + code + '\"')\n return n\n}\n","/*!\n * unpipe\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = unpipe\n\n/**\n * Determine if there are Node.js pipe-like data listeners.\n * @private\n */\n\nfunction hasPipeDataListeners(stream) {\n var listeners = stream.listeners('data')\n\n for (var i = 0; i < listeners.length; i++) {\n if (listeners[i].name === 'ondata') {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Unpipe a stream from all destinations.\n *\n * @param {object} stream\n * @public\n */\n\nfunction unpipe(stream) {\n if (!stream) {\n throw new TypeError('argument stream is required')\n }\n\n if (typeof stream.unpipe === 'function') {\n // new-style\n stream.unpipe()\n return\n }\n\n // Node.js 0.8 hack\n if (!hasPipeDataListeners(stream)) {\n return\n }\n\n var listener\n var listeners = stream.listeners('close')\n\n for (var i = 0; i < listeners.length; i++) {\n listener = listeners[i]\n\n if (listener.name !== 'cleanup' && listener.name !== 'onclose') {\n continue\n }\n\n // invoke the listener\n listener.call(stream)\n }\n}\n","/*!\n * finalhandler\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar debug = require('debug')('finalhandler')\nvar encodeUrl = require('encodeurl')\nvar escapeHtml = require('escape-html')\nvar onFinished = require('on-finished')\nvar parseUrl = require('parseurl')\nvar statuses = require('statuses')\nvar unpipe = require('unpipe')\n\n/**\n * Module variables.\n * @private\n */\n\nvar DOUBLE_SPACE_REGEXP = /\\x20{2}/g\nvar NEWLINE_REGEXP = /\\n/g\n\n/* istanbul ignore next */\nvar defer = typeof setImmediate === 'function'\n ? setImmediate\n : function (fn) { process.nextTick(fn.bind.apply(fn, arguments)) }\nvar isFinished = onFinished.isFinished\n\n/**\n * Create a minimal HTML document.\n *\n * @param {string} message\n * @private\n */\n\nfunction createHtmlDocument (message) {\n var body = escapeHtml(message)\n .replace(NEWLINE_REGEXP, '<br>')\n .replace(DOUBLE_SPACE_REGEXP, ' &nbsp;')\n\n return '<!DOCTYPE html>\\n' +\n '<html lang=\"en\">\\n' +\n '<head>\\n' +\n '<meta charset=\"utf-8\">\\n' +\n '<title>Error</title>\\n' +\n '</head>\\n' +\n '<body>\\n' +\n '<pre>' + body + '</pre>\\n' +\n '</body>\\n' +\n '</html>\\n'\n}\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = finalhandler\n\n/**\n * Create a function to handle the final response.\n *\n * @param {Request} req\n * @param {Response} res\n * @param {Object} [options]\n * @return {Function}\n * @public\n */\n\nfunction finalhandler (req, res, options) {\n var opts = options || {}\n\n // get environment\n var env = opts.env || process.env.NODE_ENV || 'development'\n\n // get error callback\n var onerror = opts.onerror\n\n return function (err) {\n var headers\n var msg\n var status\n\n // ignore 404 on in-flight response\n if (!err && headersSent(res)) {\n debug('cannot 404 after headers sent')\n return\n }\n\n // unhandled error\n if (err) {\n // respect status code from error\n status = getErrorStatusCode(err)\n\n if (status === undefined) {\n // fallback to status code on response\n status = getResponseStatusCode(res)\n } else {\n // respect headers from error\n headers = getErrorHeaders(err)\n }\n\n // get error message\n msg = getErrorMessage(err, status, env)\n } else {\n // not found\n status = 404\n msg = 'Cannot ' + req.method + ' ' + encodeUrl(getResourceName(req))\n }\n\n debug('default %s', status)\n\n // schedule onerror callback\n if (err && onerror) {\n defer(onerror, err, req, res)\n }\n\n // cannot actually respond\n if (headersSent(res)) {\n debug('cannot %d after headers sent', status)\n req.socket.destroy()\n return\n }\n\n // send response\n send(req, res, status, headers, msg)\n }\n}\n\n/**\n * Get headers from Error object.\n *\n * @param {Error} err\n * @return {object}\n * @private\n */\n\nfunction getErrorHeaders (err) {\n if (!err.headers || typeof err.headers !== 'object') {\n return undefined\n }\n\n var headers = Object.create(null)\n var keys = Object.keys(err.headers)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i]\n headers[key] = err.headers[key]\n }\n\n return headers\n}\n\n/**\n * Get message from Error object, fallback to status message.\n *\n * @param {Error} err\n * @param {number} status\n * @param {string} env\n * @return {string}\n * @private\n */\n\nfunction getErrorMessage (err, status, env) {\n var msg\n\n if (env !== 'production') {\n // use err.stack, which typically includes err.message\n msg = err.stack\n\n // fallback to err.toString() when possible\n if (!msg && typeof err.toString === 'function') {\n msg = err.toString()\n }\n }\n\n return msg || statuses[status]\n}\n\n/**\n * Get status code from Error object.\n *\n * @param {Error} err\n * @return {number}\n * @private\n */\n\nfunction getErrorStatusCode (err) {\n // check err.status\n if (typeof err.status === 'number' && err.status >= 400 && err.status < 600) {\n return err.status\n }\n\n // check err.statusCode\n if (typeof err.statusCode === 'number' && err.statusCode >= 400 && err.statusCode < 600) {\n return err.statusCode\n }\n\n return undefined\n}\n\n/**\n * Get resource name for the request.\n *\n * This is typically just the original pathname of the request\n * but will fallback to \"resource\" is that cannot be determined.\n *\n * @param {IncomingMessage} req\n * @return {string}\n * @private\n */\n\nfunction getResourceName (req) {\n try {\n return parseUrl.original(req).pathname\n } catch (e) {\n return 'resource'\n }\n}\n\n/**\n * Get status code from response.\n *\n * @param {OutgoingMessage} res\n * @return {number}\n * @private\n */\n\nfunction getResponseStatusCode (res) {\n var status = res.statusCode\n\n // default status code to 500 if outside valid range\n if (typeof status !== 'number' || status < 400 || status > 599) {\n status = 500\n }\n\n return status\n}\n\n/**\n * Determine if the response headers have been sent.\n *\n * @param {object} res\n * @returns {boolean}\n * @private\n */\n\nfunction headersSent (res) {\n return typeof res.headersSent !== 'boolean'\n ? Boolean(res._header)\n : res.headersSent\n}\n\n/**\n * Send response.\n *\n * @param {IncomingMessage} req\n * @param {OutgoingMessage} res\n * @param {number} status\n * @param {object} headers\n * @param {string} message\n * @private\n */\n\nfunction send (req, res, status, headers, message) {\n function write () {\n // response body\n var body = createHtmlDocument(message)\n\n // response status\n res.statusCode = status\n res.statusMessage = statuses[status]\n\n // response headers\n setHeaders(res, headers)\n\n // security headers\n res.setHeader('Content-Security-Policy', \"default-src 'none'\")\n res.setHeader('X-Content-Type-Options', 'nosniff')\n\n // standard headers\n res.setHeader('Content-Type', 'text/html; charset=utf-8')\n res.setHeader('Content-Length', Buffer.byteLength(body, 'utf8'))\n\n if (req.method === 'HEAD') {\n res.end()\n return\n }\n\n res.end(body, 'utf8')\n }\n\n if (isFinished(req)) {\n write()\n return\n }\n\n // unpipe everything from the request\n unpipe(req)\n\n // flush the request\n onFinished(req, write)\n req.resume()\n}\n\n/**\n * Set response headers from an object.\n *\n * @param {OutgoingMessage} res\n * @param {object} headers\n * @private\n */\n\nfunction setHeaders (res, headers) {\n if (!headers) {\n return\n }\n\n var keys = Object.keys(headers)\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i]\n res.setHeader(key, headers[key])\n }\n}\n","/**\n * Merge object b with object a.\n *\n * var a = { foo: 'bar' }\n * , b = { bar: 'baz' };\n *\n * merge(a, b);\n * // => { foo: 'bar', bar: 'baz' }\n *\n * @param {Object} a\n * @param {Object} b\n * @return {Object}\n * @api public\n */\n\nexports = module.exports = function(a, b){\n if (a && b) {\n for (var key in b) {\n a[key] = b[key];\n }\n }\n return a;\n};\n","/*!\n * connect\n * Copyright(c) 2010 Sencha Inc.\n * Copyright(c) 2011 TJ Holowaychuk\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar debug = require('debug')('connect:dispatcher');\nvar EventEmitter = require('events').EventEmitter;\nvar finalhandler = require('finalhandler');\nvar http = require('http');\nvar merge = require('utils-merge');\nvar parseUrl = require('parseurl');\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = createServer;\n\n/**\n * Module variables.\n * @private\n */\n\nvar env = process.env.NODE_ENV || 'development';\nvar proto = {};\n\n/* istanbul ignore next */\nvar defer = typeof setImmediate === 'function'\n ? setImmediate\n : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }\n\n/**\n * Create a new connect server.\n *\n * @return {function}\n * @public\n */\n\nfunction createServer() {\n function app(req, res, next){ app.handle(req, res, next); }\n merge(app, proto);\n merge(app, EventEmitter.prototype);\n app.route = '/';\n app.stack = [];\n return app;\n}\n\n/**\n * Utilize the given middleware `handle` to the given `route`,\n * defaulting to _/_. This \"route\" is the mount-point for the\n * middleware, when given a value other than _/_ the middleware\n * is only effective when that segment is present in the request's\n * pathname.\n *\n * For example if we were to mount a function at _/admin_, it would\n * be invoked on _/admin_, and _/admin/settings_, however it would\n * not be invoked for _/_, or _/posts_.\n *\n * @param {String|Function|Server} route, callback or server\n * @param {Function|Server} callback or server\n * @return {Server} for chaining\n * @public\n */\n\nproto.use = function use(route, fn) {\n var handle = fn;\n var path = route;\n\n // default route to '/'\n if (typeof route !== 'string') {\n handle = route;\n path = '/';\n }\n\n // wrap sub-apps\n if (typeof handle.handle === 'function') {\n var server = handle;\n server.route = path;\n handle = function (req, res, next) {\n server.handle(req, res, next);\n };\n }\n\n // wrap vanilla http.Servers\n if (handle instanceof http.Server) {\n handle = handle.listeners('request')[0];\n }\n\n // strip trailing slash\n if (path[path.length - 1] === '/') {\n path = path.slice(0, -1);\n }\n\n // add the middleware\n debug('use %s %s', path || '/', handle.name || 'anonymous');\n this.stack.push({ route: path, handle: handle });\n\n return this;\n};\n\n/**\n * Handle server requests, punting them down\n * the middleware stack.\n *\n * @private\n */\n\nproto.handle = function handle(req, res, out) {\n var index = 0;\n var protohost = getProtohost(req.url) || '';\n var removed = '';\n var slashAdded = false;\n var stack = this.stack;\n\n // final function handler\n var done = out || finalhandler(req, res, {\n env: env,\n onerror: logerror\n });\n\n // store the original URL\n req.originalUrl = req.originalUrl || req.url;\n\n function next(err) {\n if (slashAdded) {\n req.url = req.url.substr(1);\n slashAdded = false;\n }\n\n if (removed.length !== 0) {\n req.url = protohost + removed + req.url.substr(protohost.length);\n removed = '';\n }\n\n // next callback\n var layer = stack[index++];\n\n // all done\n if (!layer) {\n defer(done, err);\n return;\n }\n\n // route data\n var path = parseUrl(req).pathname || '/';\n var route = layer.route;\n\n // skip this layer if the route doesn't match\n if (path.toLowerCase().substr(0, route.length) !== route.toLowerCase()) {\n return next(err);\n }\n\n // skip if route match does not border \"/\", \".\", or end\n var c = path.length > route.length && path[route.length];\n if (c && c !== '/' && c !== '.') {\n return next(err);\n }\n\n // trim off the part of the url that matches the route\n if (route.length !== 0 && route !== '/') {\n removed = route;\n req.url = protohost + req.url.substr(protohost.length + removed.length);\n\n // ensure leading slash\n if (!protohost && req.url[0] !== '/') {\n req.url = '/' + req.url;\n slashAdded = true;\n }\n }\n\n // call the layer handle\n call(layer.handle, route, err, req, res, next);\n }\n\n next();\n};\n\n/**\n * Listen for connections.\n *\n * This method takes the same arguments\n * as node's `http.Server#listen()`.\n *\n * HTTP and HTTPS:\n *\n * If you run your application both as HTTP\n * and HTTPS you may wrap them individually,\n * since your Connect \"server\" is really just\n * a JavaScript `Function`.\n *\n * var connect = require('connect')\n * , http = require('http')\n * , https = require('https');\n *\n * var app = connect();\n *\n * http.createServer(app).listen(80);\n * https.createServer(options, app).listen(443);\n *\n * @return {http.Server}\n * @api public\n */\n\nproto.listen = function listen() {\n var server = http.createServer(this);\n return server.listen.apply(server, arguments);\n};\n\n/**\n * Invoke a route handle.\n * @private\n */\n\nfunction call(handle, route, err, req, res, next) {\n var arity = handle.length;\n var error = err;\n var hasError = Boolean(err);\n\n debug('%s %s : %s', handle.name || '<anonymous>', route, req.originalUrl);\n\n try {\n if (hasError && arity === 4) {\n // error-handling middleware\n handle(err, req, res, next);\n return;\n } else if (!hasError && arity < 4) {\n // request-handling middleware\n handle(req, res, next);\n return;\n }\n } catch (e) {\n // replace the error\n error = e;\n }\n\n // continue\n next(error);\n}\n\n/**\n * Log error using console.error.\n *\n * @param {Error} err\n * @private\n */\n\nfunction logerror(err) {\n if (env !== 'test') console.error(err.stack || err.toString());\n}\n\n/**\n * Get get protocol + host for a URL.\n *\n * @param {string} url\n * @private\n */\n\nfunction getProtohost(url) {\n if (url.length === 0 || url[0] === '/') {\n return undefined;\n }\n\n var fqdnIndex = url.indexOf('://')\n\n return fqdnIndex !== -1 && url.lastIndexOf('?', fqdnIndex) === -1\n ? url.substr(0, url.indexOf('/', 3 + fqdnIndex))\n : undefined;\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/*!\n * vary\n * Copyright(c) 2014-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n */\n\nmodule.exports = vary\nmodule.exports.append = append\n\n/**\n * RegExp to match field-name in RFC 7230 sec 3.2\n *\n * field-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n */\n\nvar FIELD_NAME_REGEXP = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/\n\n/**\n * Append a field to a vary header.\n *\n * @param {String} header\n * @param {String|Array} field\n * @return {String}\n * @public\n */\n\nfunction append (header, field) {\n if (typeof header !== 'string') {\n throw new TypeError('header argument is required')\n }\n\n if (!field) {\n throw new TypeError('field argument is required')\n }\n\n // get fields array\n var fields = !Array.isArray(field)\n ? parse(String(field))\n : field\n\n // assert on invalid field names\n for (var j = 0; j < fields.length; j++) {\n if (!FIELD_NAME_REGEXP.test(fields[j])) {\n throw new TypeError('field argument contains an invalid header name')\n }\n }\n\n // existing, unspecified vary\n if (header === '*') {\n return header\n }\n\n // enumerate current values\n var val = header\n var vals = parse(header.toLowerCase())\n\n // unspecified vary\n if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) {\n return '*'\n }\n\n for (var i = 0; i < fields.length; i++) {\n var fld = fields[i].toLowerCase()\n\n // append value (case-preserving)\n if (vals.indexOf(fld) === -1) {\n vals.push(fld)\n val = val\n ? val + ', ' + fields[i]\n : fields[i]\n }\n }\n\n return val\n}\n\n/**\n * Parse a vary header into an array.\n *\n * @param {String} header\n * @return {Array}\n * @private\n */\n\nfunction parse (header) {\n var end = 0\n var list = []\n var start = 0\n\n // gather tokens\n for (var i = 0, len = header.length; i < len; i++) {\n switch (header.charCodeAt(i)) {\n case 0x20: /* */\n if (start === end) {\n start = end = i + 1\n }\n break\n case 0x2c: /* , */\n list.push(header.substring(start, end))\n start = end = i + 1\n break\n default:\n end = i + 1\n break\n }\n }\n\n // final token\n list.push(header.substring(start, end))\n\n return list\n}\n\n/**\n * Mark that a request is varied on a header field.\n *\n * @param {Object} res\n * @param {String|Array} field\n * @public\n */\n\nfunction vary (res, field) {\n if (!res || !res.getHeader || !res.setHeader) {\n // quack quack\n throw new TypeError('res argument is required')\n }\n\n // get existing header\n var val = res.getHeader('Vary') || ''\n var header = Array.isArray(val)\n ? val.join(', ')\n : String(val)\n\n // set new header\n if ((val = append(header, field))) {\n res.setHeader('Vary', val)\n }\n}\n","(function () {\n\n 'use strict';\n\n var assign = require('object-assign');\n var vary = require('vary');\n\n var defaults = {\n origin: '*',\n methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',\n preflightContinue: false,\n optionsSuccessStatus: 204\n };\n\n function isString(s) {\n return typeof s === 'string' || s instanceof String;\n }\n\n function isOriginAllowed(origin, allowedOrigin) {\n if (Array.isArray(allowedOrigin)) {\n for (var i = 0; i < allowedOrigin.length; ++i) {\n if (isOriginAllowed(origin, allowedOrigin[i])) {\n return true;\n }\n }\n return false;\n } else if (isString(allowedOrigin)) {\n return origin === allowedOrigin;\n } else if (allowedOrigin instanceof RegExp) {\n return allowedOrigin.test(origin);\n } else {\n return !!allowedOrigin;\n }\n }\n\n function configureOrigin(options, req) {\n var requestOrigin = req.headers.origin,\n headers = [],\n isAllowed;\n\n if (!options.origin || options.origin === '*') {\n // allow any origin\n headers.push([{\n key: 'Access-Control-Allow-Origin',\n value: '*'\n }]);\n } else if (isString(options.origin)) {\n // fixed origin\n headers.push([{\n key: 'Access-Control-Allow-Origin',\n value: options.origin\n }]);\n headers.push([{\n key: 'Vary',\n value: 'Origin'\n }]);\n } else {\n isAllowed = isOriginAllowed(requestOrigin, options.origin);\n // reflect origin\n headers.push([{\n key: 'Access-Control-Allow-Origin',\n value: isAllowed ? requestOrigin : false\n }]);\n headers.push([{\n key: 'Vary',\n value: 'Origin'\n }]);\n }\n\n return headers;\n }\n\n function configureMethods(options) {\n var methods = options.methods;\n if (methods.join) {\n methods = options.methods.join(','); // .methods is an array, so turn it into a string\n }\n return {\n key: 'Access-Control-Allow-Methods',\n value: methods\n };\n }\n\n function configureCredentials(options) {\n if (options.credentials === true) {\n return {\n key: 'Access-Control-Allow-Credentials',\n value: 'true'\n };\n }\n return null;\n }\n\n function configureAllowedHeaders(options, req) {\n var allowedHeaders = options.allowedHeaders || options.headers;\n var headers = [];\n\n if (!allowedHeaders) {\n allowedHeaders = req.headers['access-control-request-headers']; // .headers wasn't specified, so reflect the request headers\n headers.push([{\n key: 'Vary',\n value: 'Access-Control-Request-Headers'\n }]);\n } else if (allowedHeaders.join) {\n allowedHeaders = allowedHeaders.join(','); // .headers is an array, so turn it into a string\n }\n if (allowedHeaders && allowedHeaders.length) {\n headers.push([{\n key: 'Access-Control-Allow-Headers',\n value: allowedHeaders\n }]);\n }\n\n return headers;\n }\n\n function configureExposedHeaders(options) {\n var headers = options.exposedHeaders;\n if (!headers) {\n return null;\n } else if (headers.join) {\n headers = headers.join(','); // .headers is an array, so turn it into a string\n }\n if (headers && headers.length) {\n return {\n key: 'Access-Control-Expose-Headers',\n value: headers\n };\n }\n return null;\n }\n\n function configureMaxAge(options) {\n var maxAge = (typeof options.maxAge === 'number' || options.maxAge) && options.maxAge.toString()\n if (maxAge && maxAge.length) {\n return {\n key: 'Access-Control-Max-Age',\n value: maxAge\n };\n }\n return null;\n }\n\n function applyHeaders(headers, res) {\n for (var i = 0, n = headers.length; i < n; i++) {\n var header = headers[i];\n if (header) {\n if (Array.isArray(header)) {\n applyHeaders(header, res);\n } else if (header.key === 'Vary' && header.value) {\n vary(res, header.value);\n } else if (header.value) {\n res.setHeader(header.key, header.value);\n }\n }\n }\n }\n\n function cors(options, req, res, next) {\n var headers = [],\n method = req.method && req.method.toUpperCase && req.method.toUpperCase();\n\n if (method === 'OPTIONS') {\n // preflight\n headers.push(configureOrigin(options, req));\n headers.push(configureCredentials(options, req));\n headers.push(configureMethods(options, req));\n headers.push(configureAllowedHeaders(options, req));\n headers.push(configureMaxAge(options, req));\n headers.push(configureExposedHeaders(options, req));\n applyHeaders(headers, res);\n\n if (options.preflightContinue) {\n next();\n } else {\n // Safari (and potentially other browsers) need content-length 0,\n // for 204 or they just hang waiting for a body\n res.statusCode = options.optionsSuccessStatus;\n res.setHeader('Content-Length', '0');\n res.end();\n }\n } else {\n // actual response\n headers.push(configureOrigin(options, req));\n headers.push(configureCredentials(options, req));\n headers.push(configureExposedHeaders(options, req));\n applyHeaders(headers, res);\n next();\n }\n }\n\n function middlewareWrapper(o) {\n // if options are static (either via defaults or custom options passed in), wrap in a function\n var optionsCallback = null;\n if (typeof o === 'function') {\n optionsCallback = o;\n } else {\n optionsCallback = function (req, cb) {\n cb(null, o);\n };\n }\n\n return function corsMiddleware(req, res, next) {\n optionsCallback(req, function (err, options) {\n if (err) {\n next(err);\n } else {\n var corsOptions = assign({}, defaults, options);\n var originCallback = null;\n if (corsOptions.origin && typeof corsOptions.origin === 'function') {\n originCallback = corsOptions.origin;\n } else if (corsOptions.origin) {\n originCallback = function (origin, cb) {\n cb(null, corsOptions.origin);\n };\n }\n\n if (originCallback) {\n originCallback(req.headers.origin, function (err2, origin) {\n if (err2 || !origin) {\n next(err2);\n } else {\n corsOptions.origin = origin;\n cors(corsOptions, req, res, next);\n }\n });\n } else {\n next();\n }\n }\n });\n };\n }\n\n // can pass either an options hash, an options delegate, or nothing\n module.exports = middlewareWrapper;\n\n}());\n","'use strict';\n\nconst fs = require('fs');\nconst { Readable } = require('stream');\nconst sysPath = require('path');\nconst { promisify } = require('util');\nconst picomatch = require('picomatch');\n\nconst readdir = promisify(fs.readdir);\nconst stat = promisify(fs.stat);\nconst lstat = promisify(fs.lstat);\nconst realpath = promisify(fs.realpath);\n\n/**\n * @typedef {Object} EntryInfo\n * @property {String} path\n * @property {String} fullPath\n * @property {fs.Stats=} stats\n * @property {fs.Dirent=} dirent\n * @property {String} basename\n */\n\nconst BANG = '!';\nconst RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR';\nconst NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]);\nconst FILE_TYPE = 'files';\nconst DIR_TYPE = 'directories';\nconst FILE_DIR_TYPE = 'files_directories';\nconst EVERYTHING_TYPE = 'all';\nconst ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE];\n\nconst isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code);\nconst [maj, min] = process.versions.node.split('.').slice(0, 2).map(n => Number.parseInt(n, 10));\nconst wantBigintFsStats = process.platform === 'win32' && (maj > 10 || (maj === 10 && min >= 5));\n\nconst normalizeFilter = filter => {\n if (filter === undefined) return;\n if (typeof filter === 'function') return filter;\n\n if (typeof filter === 'string') {\n const glob = picomatch(filter.trim());\n return entry => glob(entry.basename);\n }\n\n if (Array.isArray(filter)) {\n const positive = [];\n const negative = [];\n for (const item of filter) {\n const trimmed = item.trim();\n if (trimmed.charAt(0) === BANG) {\n negative.push(picomatch(trimmed.slice(1)));\n } else {\n positive.push(picomatch(trimmed));\n }\n }\n\n if (negative.length > 0) {\n if (positive.length > 0) {\n return entry =>\n positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename));\n }\n return entry => !negative.some(f => f(entry.basename));\n }\n return entry => positive.some(f => f(entry.basename));\n }\n};\n\nclass ReaddirpStream extends Readable {\n static get defaultOptions() {\n return {\n root: '.',\n /* eslint-disable no-unused-vars */\n fileFilter: (path) => true,\n directoryFilter: (path) => true,\n /* eslint-enable no-unused-vars */\n type: FILE_TYPE,\n lstat: false,\n depth: 2147483648,\n alwaysStat: false\n };\n }\n\n constructor(options = {}) {\n super({\n objectMode: true,\n autoDestroy: true,\n highWaterMark: options.highWaterMark || 4096\n });\n const opts = { ...ReaddirpStream.defaultOptions, ...options };\n const { root, type } = opts;\n\n this._fileFilter = normalizeFilter(opts.fileFilter);\n this._directoryFilter = normalizeFilter(opts.directoryFilter);\n\n const statMethod = opts.lstat ? lstat : stat;\n // Use bigint stats if it's windows and stat() supports options (node 10+).\n if (wantBigintFsStats) {\n this._stat = path => statMethod(path, { bigint: true });\n } else {\n this._stat = statMethod;\n }\n\n this._maxDepth = opts.depth;\n this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type);\n this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type);\n this._wantsEverything = type === EVERYTHING_TYPE;\n this._root = sysPath.resolve(root);\n this._isDirent = ('Dirent' in fs) && !opts.alwaysStat;\n this._statsProp = this._isDirent ? 'dirent' : 'stats';\n this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent };\n\n // Launch stream with one parent, the root dir.\n this.parents = [this._exploreDir(root, 1)];\n this.reading = false;\n this.parent = undefined;\n }\n\n async _read(batch) {\n if (this.reading) return;\n this.reading = true;\n\n try {\n while (!this.destroyed && batch > 0) {\n const { path, depth, files = [] } = this.parent || {};\n\n if (files.length > 0) {\n const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path));\n for (const entry of await Promise.all(slice)) {\n if (this.destroyed) return;\n\n const entryType = await this._getEntryType(entry);\n if (entryType === 'directory' && this._directoryFilter(entry)) {\n if (depth <= this._maxDepth) {\n this.parents.push(this._exploreDir(entry.fullPath, depth + 1));\n }\n\n if (this._wantsDir) {\n this.push(entry);\n batch--;\n }\n } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) {\n if (this._wantsFile) {\n this.push(entry);\n batch--;\n }\n }\n }\n } else {\n const parent = this.parents.pop();\n if (!parent) {\n this.push(null);\n break;\n }\n this.parent = await parent;\n if (this.destroyed) return;\n }\n }\n } catch (error) {\n this.destroy(error);\n } finally {\n this.reading = false;\n }\n }\n\n async _exploreDir(path, depth) {\n let files;\n try {\n files = await readdir(path, this._rdOptions);\n } catch (error) {\n this._onError(error);\n }\n return { files, depth, path };\n }\n\n async _formatEntry(dirent, path) {\n let entry;\n try {\n const basename = this._isDirent ? dirent.name : dirent;\n const fullPath = sysPath.resolve(sysPath.join(path, basename));\n entry = { path: sysPath.relative(this._root, fullPath), fullPath, basename };\n entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);\n } catch (err) {\n this._onError(err);\n }\n return entry;\n }\n\n _onError(err) {\n if (isNormalFlowError(err) && !this.destroyed) {\n this.emit('warn', err);\n } else {\n this.destroy(err);\n }\n }\n\n async _getEntryType(entry) {\n // entry may be undefined, because a warning or an error were emitted\n // and the statsProp is undefined\n const stats = entry && entry[this._statsProp];\n if (!stats) {\n return;\n }\n if (stats.isFile()) {\n return 'file';\n }\n if (stats.isDirectory()) {\n return 'directory';\n }\n if (stats && stats.isSymbolicLink()) {\n const full = entry.fullPath;\n try {\n const entryRealPath = await realpath(full);\n const entryRealPathStats = await lstat(entryRealPath);\n if (entryRealPathStats.isFile()) {\n return 'file';\n }\n if (entryRealPathStats.isDirectory()) {\n const len = entryRealPath.length;\n if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath.sep) {\n const recursiveError = new Error(\n `Circular symlink detected: \"${full}\" points to \"${entryRealPath}\"`\n );\n recursiveError.code = RECURSIVE_ERROR_CODE;\n return this._onError(recursiveError);\n }\n return 'directory';\n }\n } catch (error) {\n this._onError(error);\n }\n }\n }\n\n _includeAsFile(entry) {\n const stats = entry && entry[this._statsProp];\n\n return stats && this._wantsEverything && !stats.isDirectory();\n }\n}\n\n/**\n * @typedef {Object} ReaddirpArguments\n * @property {Function=} fileFilter\n * @property {Function=} directoryFilter\n * @property {String=} type\n * @property {Number=} depth\n * @property {String=} root\n * @property {Boolean=} lstat\n * @property {Boolean=} bigint\n */\n\n/**\n * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.\n * @param {String} root Root directory\n * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth\n */\nconst readdirp = (root, options = {}) => {\n let type = options.entryType || options.type;\n if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility\n if (type) options.type = type;\n if (!root) {\n throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)');\n } else if (typeof root !== 'string') {\n throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)');\n } else if (type && !ALL_TYPES.includes(type)) {\n throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`);\n }\n\n options.root = root;\n return new ReaddirpStream(options);\n};\n\nconst readdirpPromise = (root, options = {}) => {\n return new Promise((resolve, reject) => {\n const files = [];\n readdirp(root, options)\n .on('data', entry => files.push(entry))\n .on('end', () => resolve(files))\n .on('error', error => reject(error));\n });\n};\n\nreaddirp.promise = readdirpPromise;\nreaddirp.ReaddirpStream = ReaddirpStream;\nreaddirp.default = readdirp;\n\nmodule.exports = readdirp;\n","/*!\n * normalize-path <https://github.com/jonschlinkert/normalize-path>\n *\n * Copyright (c) 2014-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nmodule.exports = function(path, stripTrailing) {\n if (typeof path !== 'string') {\n throw new TypeError('expected path to be a string');\n }\n\n if (path === '\\\\' || path === '/') return '/';\n\n var len = path.length;\n if (len <= 1) return path;\n\n // ensure that win32 namespaces has two leading slashes, so that the path is\n // handled properly by the win32 version of path.parse() after being normalized\n // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces\n var prefix = '';\n if (len > 4 && path[3] === '\\\\') {\n var ch = path[2];\n if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\\\\\') {\n path = path.slice(2);\n prefix = '//';\n }\n }\n\n var segs = path.split(/[/\\\\]+/);\n if (stripTrailing !== false && segs[segs.length - 1] === '') {\n segs.pop();\n }\n return prefix + segs.join('/');\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\nconst picomatch = require('picomatch');\nconst normalizePath = require('normalize-path');\n\n/**\n * @typedef {(testString: string) => boolean} AnymatchFn\n * @typedef {string|RegExp|AnymatchFn} AnymatchPattern\n * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher\n */\nconst BANG = '!';\nconst DEFAULT_OPTIONS = {returnIndex: false};\nconst arrify = (item) => Array.isArray(item) ? item : [item];\n\n/**\n * @param {AnymatchPattern} matcher\n * @param {object} options\n * @returns {AnymatchFn}\n */\nconst createPattern = (matcher, options) => {\n if (typeof matcher === 'function') {\n return matcher;\n }\n if (typeof matcher === 'string') {\n const glob = picomatch(matcher, options);\n return (string) => matcher === string || glob(string);\n }\n if (matcher instanceof RegExp) {\n return (string) => matcher.test(string);\n }\n return (string) => false;\n};\n\n/**\n * @param {Array<Function>} patterns\n * @param {Array<Function>} negPatterns\n * @param {String|Array} args\n * @param {Boolean} returnIndex\n * @returns {boolean|number}\n */\nconst matchPatterns = (patterns, negPatterns, args, returnIndex) => {\n const isList = Array.isArray(args);\n const _path = isList ? args[0] : args;\n if (!isList && typeof _path !== 'string') {\n throw new TypeError('anymatch: second argument must be a string: got ' +\n Object.prototype.toString.call(_path))\n }\n const path = normalizePath(_path);\n\n for (let index = 0; index < negPatterns.length; index++) {\n const nglob = negPatterns[index];\n if (nglob(path)) {\n return returnIndex ? -1 : false;\n }\n }\n\n const applied = isList && [path].concat(args.slice(1));\n for (let index = 0; index < patterns.length; index++) {\n const pattern = patterns[index];\n if (isList ? pattern(...applied) : pattern(path)) {\n return returnIndex ? index : true;\n }\n }\n\n return returnIndex ? -1 : false;\n};\n\n/**\n * @param {AnymatchMatcher} matchers\n * @param {Array|string} testString\n * @param {object} options\n * @returns {boolean|number|Function}\n */\nconst anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => {\n if (matchers == null) {\n throw new TypeError('anymatch: specify first argument');\n }\n const opts = typeof options === 'boolean' ? {returnIndex: options} : options;\n const returnIndex = opts.returnIndex || false;\n\n // Early cache for matchers.\n const mtchers = arrify(matchers);\n const negatedGlobs = mtchers\n .filter(item => typeof item === 'string' && item.charAt(0) === BANG)\n .map(item => item.slice(1))\n .map(item => picomatch(item, opts));\n const patterns = mtchers\n .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG))\n .map(matcher => createPattern(matcher, opts));\n\n if (testString == null) {\n return (testString, ri = false) => {\n const returnIndex = typeof ri === 'boolean' ? ri : false;\n return matchPatterns(patterns, negatedGlobs, testString, returnIndex);\n }\n }\n\n return matchPatterns(patterns, negatedGlobs, testString, returnIndex);\n};\n\nanymatch.default = anymatch;\nmodule.exports = anymatch;\n","module.exports = require('./binary-extensions.json');\n","'use strict';\nconst path = require('path');\nconst binaryExtensions = require('binary-extensions');\n\nconst extensions = new Set(binaryExtensions);\n\nmodule.exports = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase());\n","'use strict';\n\nconst {sep} = require('path');\nconst {platform} = process;\nconst os = require('os');\n\nexports.EV_ALL = 'all';\nexports.EV_READY = 'ready';\nexports.EV_ADD = 'add';\nexports.EV_CHANGE = 'change';\nexports.EV_ADD_DIR = 'addDir';\nexports.EV_UNLINK = 'unlink';\nexports.EV_UNLINK_DIR = 'unlinkDir';\nexports.EV_RAW = 'raw';\nexports.EV_ERROR = 'error';\n\nexports.STR_DATA = 'data';\nexports.STR_END = 'end';\nexports.STR_CLOSE = 'close';\n\nexports.FSEVENT_CREATED = 'created';\nexports.FSEVENT_MODIFIED = 'modified';\nexports.FSEVENT_DELETED = 'deleted';\nexports.FSEVENT_MOVED = 'moved';\nexports.FSEVENT_CLONED = 'cloned';\nexports.FSEVENT_UNKNOWN = 'unknown';\nexports.FSEVENT_TYPE_FILE = 'file';\nexports.FSEVENT_TYPE_DIRECTORY = 'directory';\nexports.FSEVENT_TYPE_SYMLINK = 'symlink';\n\nexports.KEY_LISTENERS = 'listeners';\nexports.KEY_ERR = 'errHandlers';\nexports.KEY_RAW = 'rawEmitters';\nexports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW];\n\nexports.DOT_SLASH = `.${sep}`;\n\nexports.BACK_SLASH_RE = /\\\\/g;\nexports.DOUBLE_SLASH_RE = /\\/\\//;\nexports.SLASH_OR_BACK_SLASH_RE = /[/\\\\]/;\nexports.DOT_RE = /\\..*\\.(sw[px])$|~$|\\.subl.*\\.tmp/;\nexports.REPLACER_RE = /^\\.[/\\\\]/;\n\nexports.SLASH = '/';\nexports.SLASH_SLASH = '//';\nexports.BRACE_START = '{';\nexports.BANG = '!';\nexports.ONE_DOT = '.';\nexports.TWO_DOTS = '..';\nexports.STAR = '*';\nexports.GLOBSTAR = '**';\nexports.ROOT_GLOBSTAR = '/**/*';\nexports.SLASH_GLOBSTAR = '/**';\nexports.DIR_SUFFIX = 'Dir';\nexports.ANYMATCH_OPTS = {dot: true};\nexports.STRING_TYPE = 'string';\nexports.FUNCTION_TYPE = 'function';\nexports.EMPTY_STR = '';\nexports.EMPTY_FN = () => {};\nexports.IDENTITY_FN = val => val;\n\nexports.isWindows = platform === 'win32';\nexports.isMacos = platform === 'darwin';\nexports.isLinux = platform === 'linux';\nexports.isIBMi = os.type() === 'OS400';\n","'use strict';\n\nconst fs = require('fs');\nconst sysPath = require('path');\nconst { promisify } = require('util');\nconst isBinaryPath = require('is-binary-path');\nconst {\n isWindows,\n isLinux,\n EMPTY_FN,\n EMPTY_STR,\n KEY_LISTENERS,\n KEY_ERR,\n KEY_RAW,\n HANDLER_KEYS,\n EV_CHANGE,\n EV_ADD,\n EV_ADD_DIR,\n EV_ERROR,\n STR_DATA,\n STR_END,\n BRACE_START,\n STAR\n} = require('./constants');\n\nconst THROTTLE_MODE_WATCH = 'watch';\n\nconst open = promisify(fs.open);\nconst stat = promisify(fs.stat);\nconst lstat = promisify(fs.lstat);\nconst close = promisify(fs.close);\nconst fsrealpath = promisify(fs.realpath);\n\nconst statMethods = { lstat, stat };\n\n// TODO: emit errors properly. Example: EMFILE on Macos.\nconst foreach = (val, fn) => {\n if (val instanceof Set) {\n val.forEach(fn);\n } else {\n fn(val);\n }\n};\n\nconst addAndConvert = (main, prop, item) => {\n let container = main[prop];\n if (!(container instanceof Set)) {\n main[prop] = container = new Set([container]);\n }\n container.add(item);\n};\n\nconst clearItem = cont => key => {\n const set = cont[key];\n if (set instanceof Set) {\n set.clear();\n } else {\n delete cont[key];\n }\n};\n\nconst delFromSet = (main, prop, item) => {\n const container = main[prop];\n if (container instanceof Set) {\n container.delete(item);\n } else if (container === item) {\n delete main[prop];\n }\n};\n\nconst isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val;\n\n/**\n * @typedef {String} Path\n */\n\n// fs_watch helpers\n\n// object to hold per-process fs_watch instances\n// (may be shared across chokidar FSWatcher instances)\n\n/**\n * @typedef {Object} FsWatchContainer\n * @property {Set} listeners\n * @property {Set} errHandlers\n * @property {Set} rawEmitters\n * @property {fs.FSWatcher=} watcher\n * @property {Boolean=} watcherUnusable\n */\n\n/**\n * @type {Map<String,FsWatchContainer>}\n */\nconst FsWatchInstances = new Map();\n\n/**\n * Instantiates the fs_watch interface\n * @param {String} path to be watched\n * @param {Object} options to be passed to fs_watch\n * @param {Function} listener main event handler\n * @param {Function} errHandler emits info about errors\n * @param {Function} emitRaw emits raw event data\n * @returns {fs.FSWatcher} new fsevents instance\n */\nfunction createFsWatchInstance(path, options, listener, errHandler, emitRaw) {\n const handleEvent = (rawEvent, evPath) => {\n listener(path);\n emitRaw(rawEvent, evPath, {watchedPath: path});\n\n // emit based on events occurring for files from a directory's watcher in\n // case the file's watcher misses it (and rely on throttling to de-dupe)\n if (evPath && path !== evPath) {\n fsWatchBroadcast(\n sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath)\n );\n }\n };\n try {\n return fs.watch(path, options, handleEvent);\n } catch (error) {\n errHandler(error);\n }\n}\n\n/**\n * Helper for passing fs_watch event data to a collection of listeners\n * @param {Path} fullPath absolute path bound to fs_watch instance\n * @param {String} type listener type\n * @param {*=} val1 arguments to be passed to listeners\n * @param {*=} val2\n * @param {*=} val3\n */\nconst fsWatchBroadcast = (fullPath, type, val1, val2, val3) => {\n const cont = FsWatchInstances.get(fullPath);\n if (!cont) return;\n foreach(cont[type], (listener) => {\n listener(val1, val2, val3);\n });\n};\n\n/**\n * Instantiates the fs_watch interface or binds listeners\n * to an existing one covering the same file system entry\n * @param {String} path\n * @param {String} fullPath absolute path\n * @param {Object} options to be passed to fs_watch\n * @param {Object} handlers container for event listener functions\n */\nconst setFsWatchListener = (path, fullPath, options, handlers) => {\n const {listener, errHandler, rawEmitter} = handlers;\n let cont = FsWatchInstances.get(fullPath);\n\n /** @type {fs.FSWatcher=} */\n let watcher;\n if (!options.persistent) {\n watcher = createFsWatchInstance(\n path, options, listener, errHandler, rawEmitter\n );\n return watcher.close.bind(watcher);\n }\n if (cont) {\n addAndConvert(cont, KEY_LISTENERS, listener);\n addAndConvert(cont, KEY_ERR, errHandler);\n addAndConvert(cont, KEY_RAW, rawEmitter);\n } else {\n watcher = createFsWatchInstance(\n path,\n options,\n fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS),\n errHandler, // no need to use broadcast here\n fsWatchBroadcast.bind(null, fullPath, KEY_RAW)\n );\n if (!watcher) return;\n watcher.on(EV_ERROR, async (error) => {\n const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR);\n cont.watcherUnusable = true; // documented since Node 10.4.1\n // Workaround for https://github.com/joyent/node/issues/4337\n if (isWindows && error.code === 'EPERM') {\n try {\n const fd = await open(path, 'r');\n await close(fd);\n broadcastErr(error);\n } catch (err) {}\n } else {\n broadcastErr(error);\n }\n });\n cont = {\n listeners: listener,\n errHandlers: errHandler,\n rawEmitters: rawEmitter,\n watcher\n };\n FsWatchInstances.set(fullPath, cont);\n }\n // const index = cont.listeners.indexOf(listener);\n\n // removes this instance's listeners and closes the underlying fs_watch\n // instance if there are no more listeners left\n return () => {\n delFromSet(cont, KEY_LISTENERS, listener);\n delFromSet(cont, KEY_ERR, errHandler);\n delFromSet(cont, KEY_RAW, rawEmitter);\n if (isEmptySet(cont.listeners)) {\n // Check to protect against issue gh-730.\n // if (cont.watcherUnusable) {\n cont.watcher.close();\n // }\n FsWatchInstances.delete(fullPath);\n HANDLER_KEYS.forEach(clearItem(cont));\n cont.watcher = undefined;\n Object.freeze(cont);\n }\n };\n};\n\n// fs_watchFile helpers\n\n// object to hold per-process fs_watchFile instances\n// (may be shared across chokidar FSWatcher instances)\nconst FsWatchFileInstances = new Map();\n\n/**\n * Instantiates the fs_watchFile interface or binds listeners\n * to an existing one covering the same file system entry\n * @param {String} path to be watched\n * @param {String} fullPath absolute path\n * @param {Object} options options to be passed to fs_watchFile\n * @param {Object} handlers container for event listener functions\n * @returns {Function} closer\n */\nconst setFsWatchFileListener = (path, fullPath, options, handlers) => {\n const {listener, rawEmitter} = handlers;\n let cont = FsWatchFileInstances.get(fullPath);\n\n /* eslint-disable no-unused-vars, prefer-destructuring */\n let listeners = new Set();\n let rawEmitters = new Set();\n\n const copts = cont && cont.options;\n if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) {\n // \"Upgrade\" the watcher to persistence or a quicker interval.\n // This creates some unlikely edge case issues if the user mixes\n // settings in a very weird way, but solving for those cases\n // doesn't seem worthwhile for the added complexity.\n listeners = cont.listeners;\n rawEmitters = cont.rawEmitters;\n fs.unwatchFile(fullPath);\n cont = undefined;\n }\n\n /* eslint-enable no-unused-vars, prefer-destructuring */\n\n if (cont) {\n addAndConvert(cont, KEY_LISTENERS, listener);\n addAndConvert(cont, KEY_RAW, rawEmitter);\n } else {\n // TODO\n // listeners.add(listener);\n // rawEmitters.add(rawEmitter);\n cont = {\n listeners: listener,\n rawEmitters: rawEmitter,\n options,\n watcher: fs.watchFile(fullPath, options, (curr, prev) => {\n foreach(cont.rawEmitters, (rawEmitter) => {\n rawEmitter(EV_CHANGE, fullPath, {curr, prev});\n });\n const currmtime = curr.mtimeMs;\n if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) {\n foreach(cont.listeners, (listener) => listener(path, curr));\n }\n })\n };\n FsWatchFileInstances.set(fullPath, cont);\n }\n // const index = cont.listeners.indexOf(listener);\n\n // Removes this instance's listeners and closes the underlying fs_watchFile\n // instance if there are no more listeners left.\n return () => {\n delFromSet(cont, KEY_LISTENERS, listener);\n delFromSet(cont, KEY_RAW, rawEmitter);\n if (isEmptySet(cont.listeners)) {\n FsWatchFileInstances.delete(fullPath);\n fs.unwatchFile(fullPath);\n cont.options = cont.watcher = undefined;\n Object.freeze(cont);\n }\n };\n};\n\n/**\n * @mixin\n */\nclass NodeFsHandler {\n\n/**\n * @param {import(\"../index\").FSWatcher} fsW\n */\nconstructor(fsW) {\n this.fsw = fsW;\n this._boundHandleError = (error) => fsW._handleError(error);\n}\n\n/**\n * Watch file for changes with fs_watchFile or fs_watch.\n * @param {String} path to file or dir\n * @param {Function} listener on fs change\n * @returns {Function} closer for the watcher instance\n */\n_watchWithNodeFs(path, listener) {\n const opts = this.fsw.options;\n const directory = sysPath.dirname(path);\n const basename = sysPath.basename(path);\n const parent = this.fsw._getWatchedDir(directory);\n parent.add(basename);\n const absolutePath = sysPath.resolve(path);\n const options = {persistent: opts.persistent};\n if (!listener) listener = EMPTY_FN;\n\n let closer;\n if (opts.usePolling) {\n options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ?\n opts.binaryInterval : opts.interval;\n closer = setFsWatchFileListener(path, absolutePath, options, {\n listener,\n rawEmitter: this.fsw._emitRaw\n });\n } else {\n closer = setFsWatchListener(path, absolutePath, options, {\n listener,\n errHandler: this._boundHandleError,\n rawEmitter: this.fsw._emitRaw\n });\n }\n return closer;\n}\n\n/**\n * Watch a file and emit add event if warranted.\n * @param {Path} file Path\n * @param {fs.Stats} stats result of fs_stat\n * @param {Boolean} initialAdd was the file added at watch instantiation?\n * @returns {Function} closer for the watcher instance\n */\n_handleFile(file, stats, initialAdd) {\n if (this.fsw.closed) {\n return;\n }\n const dirname = sysPath.dirname(file);\n const basename = sysPath.basename(file);\n const parent = this.fsw._getWatchedDir(dirname);\n // stats is always present\n let prevStats = stats;\n\n // if the file is already being watched, do nothing\n if (parent.has(basename)) return;\n\n const listener = async (path, newStats) => {\n if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return;\n if (!newStats || newStats.mtimeMs === 0) {\n try {\n const newStats = await stat(file);\n if (this.fsw.closed) return;\n // Check that change event was not fired because of changed only accessTime.\n const at = newStats.atimeMs;\n const mt = newStats.mtimeMs;\n if (!at || at <= mt || mt !== prevStats.mtimeMs) {\n this.fsw._emit(EV_CHANGE, file, newStats);\n }\n if (isLinux && prevStats.ino !== newStats.ino) {\n this.fsw._closeFile(path)\n prevStats = newStats;\n this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener));\n } else {\n prevStats = newStats;\n }\n } catch (error) {\n // Fix issues where mtime is null but file is still present\n this.fsw._remove(dirname, basename);\n }\n // add is about to be emitted if file not already tracked in parent\n } else if (parent.has(basename)) {\n // Check that change event was not fired because of changed only accessTime.\n const at = newStats.atimeMs;\n const mt = newStats.mtimeMs;\n if (!at || at <= mt || mt !== prevStats.mtimeMs) {\n this.fsw._emit(EV_CHANGE, file, newStats);\n }\n prevStats = newStats;\n }\n }\n // kick off the watcher\n const closer = this._watchWithNodeFs(file, listener);\n\n // emit an add event if we're supposed to\n if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) {\n if (!this.fsw._throttle(EV_ADD, file, 0)) return;\n this.fsw._emit(EV_ADD, file, stats);\n }\n\n return closer;\n}\n\n/**\n * Handle symlinks encountered while reading a dir.\n * @param {Object} entry returned by readdirp\n * @param {String} directory path of dir being read\n * @param {String} path of this item\n * @param {String} item basename of this item\n * @returns {Promise<Boolean>} true if no more processing is needed for this entry.\n */\nasync _handleSymlink(entry, directory, path, item) {\n if (this.fsw.closed) {\n return;\n }\n const full = entry.fullPath;\n const dir = this.fsw._getWatchedDir(directory);\n\n if (!this.fsw.options.followSymlinks) {\n // watch symlink directly (don't follow) and detect changes\n this.fsw._incrReadyCount();\n const linkPath = await fsrealpath(path);\n if (this.fsw.closed) return;\n if (dir.has(item)) {\n if (this.fsw._symlinkPaths.get(full) !== linkPath) {\n this.fsw._symlinkPaths.set(full, linkPath);\n this.fsw._emit(EV_CHANGE, path, entry.stats);\n }\n } else {\n dir.add(item);\n this.fsw._symlinkPaths.set(full, linkPath);\n this.fsw._emit(EV_ADD, path, entry.stats);\n }\n this.fsw._emitReady();\n return true;\n }\n\n // don't follow the same symlink more than once\n if (this.fsw._symlinkPaths.has(full)) {\n return true;\n }\n\n this.fsw._symlinkPaths.set(full, true);\n}\n\n_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {\n // Normalize the directory name on Windows\n directory = sysPath.join(directory, EMPTY_STR);\n\n if (!wh.hasGlob) {\n throttler = this.fsw._throttle('readdir', directory, 1000);\n if (!throttler) return;\n }\n\n const previous = this.fsw._getWatchedDir(wh.path);\n const current = new Set();\n\n let stream = this.fsw._readdirp(directory, {\n fileFilter: entry => wh.filterPath(entry),\n directoryFilter: entry => wh.filterDir(entry),\n depth: 0\n }).on(STR_DATA, async (entry) => {\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n const item = entry.path;\n let path = sysPath.join(directory, item);\n current.add(item);\n\n if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) {\n return;\n }\n\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n // Files that present in current directory snapshot\n // but absent in previous are added to watch list and\n // emit `add` event.\n if (item === target || !target && !previous.has(item)) {\n this.fsw._incrReadyCount();\n\n // ensure relativeness of path is preserved in case of watcher reuse\n path = sysPath.join(dir, sysPath.relative(dir, path));\n\n this._addToNodeFs(path, initialAdd, wh, depth + 1);\n }\n }).on(EV_ERROR, this._boundHandleError);\n\n return new Promise(resolve =>\n stream.once(STR_END, () => {\n if (this.fsw.closed) {\n stream = undefined;\n return;\n }\n const wasThrottled = throttler ? throttler.clear() : false;\n\n resolve();\n\n // Files that absent in current directory snapshot\n // but present in previous emit `remove` event\n // and are removed from @watched[directory].\n previous.getChildren().filter((item) => {\n return item !== directory &&\n !current.has(item) &&\n // in case of intersecting globs;\n // a path may have been filtered out of this readdir, but\n // shouldn't be removed because it matches a different glob\n (!wh.hasGlob || wh.filterPath({\n fullPath: sysPath.resolve(directory, item)\n }));\n }).forEach((item) => {\n this.fsw._remove(directory, item);\n });\n\n stream = undefined;\n\n // one more time for any missed in case changes came in extremely quickly\n if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler);\n })\n );\n}\n\n/**\n * Read directory to add / remove files from `@watched` list and re-read it on change.\n * @param {String} dir fs path\n * @param {fs.Stats} stats\n * @param {Boolean} initialAdd\n * @param {Number} depth relative to user-supplied path\n * @param {String} target child path targeted for watch\n * @param {Object} wh Common watch helpers for this path\n * @param {String} realpath\n * @returns {Promise<Function>} closer for the watcher instance.\n */\nasync _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) {\n const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir));\n const tracked = parentDir.has(sysPath.basename(dir));\n if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) {\n if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats);\n }\n\n // ensure dir is tracked (harmless if redundant)\n parentDir.add(sysPath.basename(dir));\n this.fsw._getWatchedDir(dir);\n let throttler;\n let closer;\n\n const oDepth = this.fsw.options.depth;\n if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) {\n if (!target) {\n await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler);\n if (this.fsw.closed) return;\n }\n\n closer = this._watchWithNodeFs(dir, (dirPath, stats) => {\n // if current directory is removed, do nothing\n if (stats && stats.mtimeMs === 0) return;\n\n this._handleRead(dirPath, false, wh, target, dir, depth, throttler);\n });\n }\n return closer;\n}\n\n/**\n * Handle added file, directory, or glob pattern.\n * Delegates call to _handleFile / _handleDir after checks.\n * @param {String} path to file or ir\n * @param {Boolean} initialAdd was the file added at watch instantiation?\n * @param {Object} priorWh depth relative to user-supplied path\n * @param {Number} depth Child path actually targeted for watch\n * @param {String=} target Child path actually targeted for watch\n * @returns {Promise}\n */\nasync _addToNodeFs(path, initialAdd, priorWh, depth, target) {\n const ready = this.fsw._emitReady;\n if (this.fsw._isIgnored(path) || this.fsw.closed) {\n ready();\n return false;\n }\n\n const wh = this.fsw._getWatchHelpers(path, depth);\n if (!wh.hasGlob && priorWh) {\n wh.hasGlob = priorWh.hasGlob;\n wh.globFilter = priorWh.globFilter;\n wh.filterPath = entry => priorWh.filterPath(entry);\n wh.filterDir = entry => priorWh.filterDir(entry);\n }\n\n // evaluate what is at the path we're being asked to watch\n try {\n const stats = await statMethods[wh.statMethod](wh.watchPath);\n if (this.fsw.closed) return;\n if (this.fsw._isIgnored(wh.watchPath, stats)) {\n ready();\n return false;\n }\n\n const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START);\n let closer;\n if (stats.isDirectory()) {\n const absPath = sysPath.resolve(path);\n const targetPath = follow ? await fsrealpath(path) : path;\n if (this.fsw.closed) return;\n closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath);\n if (this.fsw.closed) return;\n // preserve this symlink's target path\n if (absPath !== targetPath && targetPath !== undefined) {\n this.fsw._symlinkPaths.set(absPath, targetPath);\n }\n } else if (stats.isSymbolicLink()) {\n const targetPath = follow ? await fsrealpath(path) : path;\n if (this.fsw.closed) return;\n const parent = sysPath.dirname(wh.watchPath);\n this.fsw._getWatchedDir(parent).add(wh.watchPath);\n this.fsw._emit(EV_ADD, wh.watchPath, stats);\n closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath);\n if (this.fsw.closed) return;\n\n // preserve this symlink's target path\n if (targetPath !== undefined) {\n this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath);\n }\n } else {\n closer = this._handleFile(wh.watchPath, stats, initialAdd);\n }\n ready();\n\n this.fsw._addPathCloser(path, closer);\n return false;\n\n } catch (error) {\n if (this.fsw._handleError(error)) {\n ready();\n return path;\n }\n }\n}\n\n}\n\nmodule.exports = NodeFsHandler;\n","'use strict';\n\nconst fs = require('fs');\nconst sysPath = require('path');\nconst { promisify } = require('util');\n\nlet fsevents;\ntry {\n fsevents = require('fsevents');\n} catch (error) {\n if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error);\n}\n\nif (fsevents) {\n // TODO: real check\n const mtch = process.version.match(/v(\\d+)\\.(\\d+)/);\n if (mtch && mtch[1] && mtch[2]) {\n const maj = Number.parseInt(mtch[1], 10);\n const min = Number.parseInt(mtch[2], 10);\n if (maj === 8 && min < 16) {\n fsevents = undefined;\n }\n }\n}\n\nconst {\n EV_ADD,\n EV_CHANGE,\n EV_ADD_DIR,\n EV_UNLINK,\n EV_ERROR,\n STR_DATA,\n STR_END,\n FSEVENT_CREATED,\n FSEVENT_MODIFIED,\n FSEVENT_DELETED,\n FSEVENT_MOVED,\n // FSEVENT_CLONED,\n FSEVENT_UNKNOWN,\n FSEVENT_TYPE_FILE,\n FSEVENT_TYPE_DIRECTORY,\n FSEVENT_TYPE_SYMLINK,\n\n ROOT_GLOBSTAR,\n DIR_SUFFIX,\n DOT_SLASH,\n FUNCTION_TYPE,\n EMPTY_FN,\n IDENTITY_FN\n} = require('./constants');\n\nconst Depth = (value) => isNaN(value) ? {} : {depth: value};\n\nconst stat = promisify(fs.stat);\nconst lstat = promisify(fs.lstat);\nconst realpath = promisify(fs.realpath);\n\nconst statMethods = { stat, lstat };\n\n/**\n * @typedef {String} Path\n */\n\n/**\n * @typedef {Object} FsEventsWatchContainer\n * @property {Set<Function>} listeners\n * @property {Function} rawEmitter\n * @property {{stop: Function}} watcher\n */\n\n// fsevents instance helper functions\n/**\n * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances)\n * @type {Map<Path,FsEventsWatchContainer>}\n */\nconst FSEventsWatchers = new Map();\n\n// Threshold of duplicate path prefixes at which to start\n// consolidating going forward\nconst consolidateThreshhold = 10;\n\nconst wrongEventFlags = new Set([\n 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912\n]);\n\n/**\n * Instantiates the fsevents interface\n * @param {Path} path path to be watched\n * @param {Function} callback called when fsevents is bound and ready\n * @returns {{stop: Function}} new fsevents instance\n */\nconst createFSEventsInstance = (path, callback) => {\n const stop = fsevents.watch(path, callback);\n return {stop};\n};\n\n/**\n * Instantiates the fsevents interface or binds listeners to an existing one covering\n * the same file tree.\n * @param {Path} path - to be watched\n * @param {Path} realPath - real path for symlinks\n * @param {Function} listener - called when fsevents emits events\n * @param {Function} rawEmitter - passes data to listeners of the 'raw' event\n * @returns {Function} closer\n */\nfunction setFSEventsListener(path, realPath, listener, rawEmitter) {\n let watchPath = sysPath.extname(realPath) ? sysPath.dirname(realPath) : realPath;\n\n const parentPath = sysPath.dirname(watchPath);\n let cont = FSEventsWatchers.get(watchPath);\n\n // If we've accumulated a substantial number of paths that\n // could have been consolidated by watching one directory\n // above the current one, create a watcher on the parent\n // path instead, so that we do consolidate going forward.\n if (couldConsolidate(parentPath)) {\n watchPath = parentPath;\n }\n\n const resolvedPath = sysPath.resolve(path);\n const hasSymlink = resolvedPath !== realPath;\n\n const filteredListener = (fullPath, flags, info) => {\n if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath);\n if (\n fullPath === resolvedPath ||\n !fullPath.indexOf(resolvedPath + sysPath.sep)\n ) listener(fullPath, flags, info);\n };\n\n // check if there is already a watcher on a parent path\n // modifies `watchPath` to the parent path when it finds a match\n let watchedParent = false;\n for (const watchedPath of FSEventsWatchers.keys()) {\n if (realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep) === 0) {\n watchPath = watchedPath;\n cont = FSEventsWatchers.get(watchPath);\n watchedParent = true;\n break;\n }\n }\n\n if (cont || watchedParent) {\n cont.listeners.add(filteredListener);\n } else {\n cont = {\n listeners: new Set([filteredListener]),\n rawEmitter,\n watcher: createFSEventsInstance(watchPath, (fullPath, flags) => {\n if (!cont.listeners.size) return;\n const info = fsevents.getInfo(fullPath, flags);\n cont.listeners.forEach(list => {\n list(fullPath, flags, info);\n });\n\n cont.rawEmitter(info.event, fullPath, info);\n })\n };\n FSEventsWatchers.set(watchPath, cont);\n }\n\n // removes this instance's listeners and closes the underlying fsevents\n // instance if there are no more listeners left\n return () => {\n const lst = cont.listeners;\n\n lst.delete(filteredListener);\n if (!lst.size) {\n FSEventsWatchers.delete(watchPath);\n if (cont.watcher) return cont.watcher.stop().then(() => {\n cont.rawEmitter = cont.watcher = undefined;\n Object.freeze(cont);\n });\n }\n };\n}\n\n// Decide whether or not we should start a new higher-level\n// parent watcher\nconst couldConsolidate = (path) => {\n let count = 0;\n for (const watchPath of FSEventsWatchers.keys()) {\n if (watchPath.indexOf(path) === 0) {\n count++;\n if (count >= consolidateThreshhold) {\n return true;\n }\n }\n }\n\n return false;\n};\n\n// returns boolean indicating whether fsevents can be used\nconst canUse = () => fsevents && FSEventsWatchers.size < 128;\n\n// determines subdirectory traversal levels from root to path\nconst calcDepth = (path, root) => {\n let i = 0;\n while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++;\n return i;\n};\n\n// returns boolean indicating whether the fsevents' event info has the same type\n// as the one returned by fs.stat\nconst sameTypes = (info, stats) => (\n info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() ||\n info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() ||\n info.type === FSEVENT_TYPE_FILE && stats.isFile()\n)\n\n/**\n * @mixin\n */\nclass FsEventsHandler {\n\n/**\n * @param {import('../index').FSWatcher} fsw\n */\nconstructor(fsw) {\n this.fsw = fsw;\n}\ncheckIgnored(path, stats) {\n const ipaths = this.fsw._ignoredPaths;\n if (this.fsw._isIgnored(path, stats)) {\n ipaths.add(path);\n if (stats && stats.isDirectory()) {\n ipaths.add(path + ROOT_GLOBSTAR);\n }\n return true;\n }\n\n ipaths.delete(path);\n ipaths.delete(path + ROOT_GLOBSTAR);\n}\n\naddOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) {\n const event = watchedDir.has(item) ? EV_CHANGE : EV_ADD;\n this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts);\n}\n\nasync checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) {\n try {\n const stats = await stat(path)\n if (this.fsw.closed) return;\n if (sameTypes(info, stats)) {\n this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);\n } else {\n this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);\n }\n } catch (error) {\n if (error.code === 'EACCES') {\n this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);\n } else {\n this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);\n }\n }\n}\n\nhandleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) {\n if (this.fsw.closed || this.checkIgnored(path)) return;\n\n if (event === EV_UNLINK) {\n const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY\n // suppress unlink events on never before seen files\n if (isDirectory || watchedDir.has(item)) {\n this.fsw._remove(parent, item, isDirectory);\n }\n } else {\n if (event === EV_ADD) {\n // track new directories\n if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path);\n\n if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) {\n // push symlinks back to the top of the stack to get handled\n const curDepth = opts.depth === undefined ?\n undefined : calcDepth(fullPath, realPath) + 1;\n return this._addToFsEvents(path, false, true, curDepth);\n }\n\n // track new paths\n // (other than symlinks being followed, which will be tracked soon)\n this.fsw._getWatchedDir(parent).add(item);\n }\n /**\n * @type {'add'|'addDir'|'unlink'|'unlinkDir'}\n */\n const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event;\n this.fsw._emit(eventName, path);\n if (eventName === EV_ADD_DIR) this._addToFsEvents(path, false, true);\n }\n}\n\n/**\n * Handle symlinks encountered during directory scan\n * @param {String} watchPath - file/dir path to be watched with fsevents\n * @param {String} realPath - real path (in case of symlinks)\n * @param {Function} transform - path transformer\n * @param {Function} globFilter - path filter in case a glob pattern was provided\n * @returns {Function} closer for the watcher instance\n*/\n_watchWithFsEvents(watchPath, realPath, transform, globFilter) {\n if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return;\n const opts = this.fsw.options;\n const watchCallback = async (fullPath, flags, info) => {\n if (this.fsw.closed) return;\n if (\n opts.depth !== undefined &&\n calcDepth(fullPath, realPath) > opts.depth\n ) return;\n const path = transform(sysPath.join(\n watchPath, sysPath.relative(watchPath, fullPath)\n ));\n if (globFilter && !globFilter(path)) return;\n // ensure directories are tracked\n const parent = sysPath.dirname(path);\n const item = sysPath.basename(path);\n const watchedDir = this.fsw._getWatchedDir(\n info.type === FSEVENT_TYPE_DIRECTORY ? path : parent\n );\n\n // correct for wrong events emitted\n if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) {\n if (typeof opts.ignored === FUNCTION_TYPE) {\n let stats;\n try {\n stats = await stat(path);\n } catch (error) {}\n if (this.fsw.closed) return;\n if (this.checkIgnored(path, stats)) return;\n if (sameTypes(info, stats)) {\n this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);\n } else {\n this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);\n }\n } else {\n this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts);\n }\n } else {\n switch (info.event) {\n case FSEVENT_CREATED:\n case FSEVENT_MODIFIED:\n return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);\n case FSEVENT_DELETED:\n case FSEVENT_MOVED:\n return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts);\n }\n }\n };\n\n const closer = setFSEventsListener(\n watchPath,\n realPath,\n watchCallback,\n this.fsw._emitRaw\n );\n\n this.fsw._emitReady();\n return closer;\n}\n\n/**\n * Handle symlinks encountered during directory scan\n * @param {String} linkPath path to symlink\n * @param {String} fullPath absolute path to the symlink\n * @param {Function} transform pre-existing path transformer\n * @param {Number} curDepth level of subdirectories traversed to where symlink is\n * @returns {Promise<void>}\n */\nasync _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) {\n // don't follow the same symlink more than once\n if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return;\n\n this.fsw._symlinkPaths.set(fullPath, true);\n this.fsw._incrReadyCount();\n\n try {\n const linkTarget = await realpath(linkPath);\n if (this.fsw.closed) return;\n if (this.fsw._isIgnored(linkTarget)) {\n return this.fsw._emitReady();\n }\n\n this.fsw._incrReadyCount();\n\n // add the linkTarget for watching with a wrapper for transform\n // that causes emitted paths to incorporate the link's path\n this._addToFsEvents(linkTarget || linkPath, (path) => {\n let aliasedPath = linkPath;\n if (linkTarget && linkTarget !== DOT_SLASH) {\n aliasedPath = path.replace(linkTarget, linkPath);\n } else if (path !== DOT_SLASH) {\n aliasedPath = sysPath.join(linkPath, path);\n }\n return transform(aliasedPath);\n }, false, curDepth);\n } catch(error) {\n if (this.fsw._handleError(error)) {\n return this.fsw._emitReady();\n }\n }\n}\n\n/**\n *\n * @param {Path} newPath\n * @param {fs.Stats} stats\n */\nemitAdd(newPath, stats, processPath, opts, forceAdd) {\n const pp = processPath(newPath);\n const isDir = stats.isDirectory();\n const dirObj = this.fsw._getWatchedDir(sysPath.dirname(pp));\n const base = sysPath.basename(pp);\n\n // ensure empty dirs get tracked\n if (isDir) this.fsw._getWatchedDir(pp);\n if (dirObj.has(base)) return;\n dirObj.add(base);\n\n if (!opts.ignoreInitial || forceAdd === true) {\n this.fsw._emit(isDir ? EV_ADD_DIR : EV_ADD, pp, stats);\n }\n}\n\ninitWatch(realPath, path, wh, processPath) {\n if (this.fsw.closed) return;\n const closer = this._watchWithFsEvents(\n wh.watchPath,\n sysPath.resolve(realPath || wh.watchPath),\n processPath,\n wh.globFilter\n );\n this.fsw._addPathCloser(path, closer);\n}\n\n/**\n * Handle added path with fsevents\n * @param {String} path file/dir path or glob pattern\n * @param {Function|Boolean=} transform converts working path to what the user expects\n * @param {Boolean=} forceAdd ensure add is emitted\n * @param {Number=} priorDepth Level of subdirectories already traversed.\n * @returns {Promise<void>}\n */\nasync _addToFsEvents(path, transform, forceAdd, priorDepth) {\n if (this.fsw.closed) {\n return;\n }\n const opts = this.fsw.options;\n const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN;\n\n const wh = this.fsw._getWatchHelpers(path);\n\n // evaluate what is at the path we're being asked to watch\n try {\n const stats = await statMethods[wh.statMethod](wh.watchPath);\n if (this.fsw.closed) return;\n if (this.fsw._isIgnored(wh.watchPath, stats)) {\n throw null;\n }\n if (stats.isDirectory()) {\n // emit addDir unless this is a glob parent\n if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd);\n\n // don't recurse further if it would exceed depth setting\n if (priorDepth && priorDepth > opts.depth) return;\n\n // scan the contents of the dir\n this.fsw._readdirp(wh.watchPath, {\n fileFilter: entry => wh.filterPath(entry),\n directoryFilter: entry => wh.filterDir(entry),\n ...Depth(opts.depth - (priorDepth || 0))\n }).on(STR_DATA, (entry) => {\n // need to check filterPath on dirs b/c filterDir is less restrictive\n if (this.fsw.closed) {\n return;\n }\n if (entry.stats.isDirectory() && !wh.filterPath(entry)) return;\n\n const joinedPath = sysPath.join(wh.watchPath, entry.path);\n const {fullPath} = entry;\n\n if (wh.followSymlinks && entry.stats.isSymbolicLink()) {\n // preserve the current depth here since it can't be derived from\n // real paths past the symlink\n const curDepth = opts.depth === undefined ?\n undefined : calcDepth(joinedPath, sysPath.resolve(wh.watchPath)) + 1;\n\n this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth);\n } else {\n this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd);\n }\n }).on(EV_ERROR, EMPTY_FN).on(STR_END, () => {\n this.fsw._emitReady();\n });\n } else {\n this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd);\n this.fsw._emitReady();\n }\n } catch (error) {\n if (!error || this.fsw._handleError(error)) {\n // TODO: Strange thing: \"should not choke on an ignored watch path\" will be failed without 2 ready calls -__-\n this.fsw._emitReady();\n this.fsw._emitReady();\n }\n }\n\n if (opts.persistent && forceAdd !== true) {\n if (typeof transform === FUNCTION_TYPE) {\n // realpath has already been resolved\n this.initWatch(undefined, path, wh, processPath);\n } else {\n let realPath;\n try {\n realPath = await realpath(wh.watchPath);\n } catch (e) {}\n this.initWatch(realPath, path, wh, processPath);\n }\n }\n}\n\n}\n\nmodule.exports = FsEventsHandler;\nmodule.exports.canUse = canUse;\n","'use strict';\n\nconst { EventEmitter } = require('events');\nconst fs = require('fs');\nconst sysPath = require('path');\nconst { promisify } = require('util');\nconst readdirp = require('readdirp');\nconst anymatch = require('anymatch').default;\nconst globParent = require('glob-parent');\nconst isGlob = require('is-glob');\nconst braces = require('braces');\nconst normalizePath = require('normalize-path');\n\nconst NodeFsHandler = require('./lib/nodefs-handler');\nconst FsEventsHandler = require('./lib/fsevents-handler');\nconst {\n EV_ALL,\n EV_READY,\n EV_ADD,\n EV_CHANGE,\n EV_UNLINK,\n EV_ADD_DIR,\n EV_UNLINK_DIR,\n EV_RAW,\n EV_ERROR,\n\n STR_CLOSE,\n STR_END,\n\n BACK_SLASH_RE,\n DOUBLE_SLASH_RE,\n SLASH_OR_BACK_SLASH_RE,\n DOT_RE,\n REPLACER_RE,\n\n SLASH,\n SLASH_SLASH,\n BRACE_START,\n BANG,\n ONE_DOT,\n TWO_DOTS,\n GLOBSTAR,\n SLASH_GLOBSTAR,\n ANYMATCH_OPTS,\n STRING_TYPE,\n FUNCTION_TYPE,\n EMPTY_STR,\n EMPTY_FN,\n\n isWindows,\n isMacos,\n isIBMi\n} = require('./lib/constants');\n\nconst stat = promisify(fs.stat);\nconst readdir = promisify(fs.readdir);\n\n/**\n * @typedef {String} Path\n * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName\n * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType\n */\n\n/**\n *\n * @typedef {Object} WatchHelpers\n * @property {Boolean} followSymlinks\n * @property {'stat'|'lstat'} statMethod\n * @property {Path} path\n * @property {Path} watchPath\n * @property {Function} entryPath\n * @property {Boolean} hasGlob\n * @property {Object} globFilter\n * @property {Function} filterPath\n * @property {Function} filterDir\n */\n\nconst arrify = (value = []) => Array.isArray(value) ? value : [value];\nconst flatten = (list, result = []) => {\n list.forEach(item => {\n if (Array.isArray(item)) {\n flatten(item, result);\n } else {\n result.push(item);\n }\n });\n return result;\n};\n\nconst unifyPaths = (paths_) => {\n /**\n * @type {Array<String>}\n */\n const paths = flatten(arrify(paths_));\n if (!paths.every(p => typeof p === STRING_TYPE)) {\n throw new TypeError(`Non-string provided as watch path: ${paths}`);\n }\n return paths.map(normalizePathToUnix);\n};\n\n// If SLASH_SLASH occurs at the beginning of path, it is not replaced\n// because \"//StoragePC/DrivePool/Movies\" is a valid network path\nconst toUnix = (string) => {\n let str = string.replace(BACK_SLASH_RE, SLASH);\n let prepend = false;\n if (str.startsWith(SLASH_SLASH)) {\n prepend = true;\n }\n while (str.match(DOUBLE_SLASH_RE)) {\n str = str.replace(DOUBLE_SLASH_RE, SLASH);\n }\n if (prepend) {\n str = SLASH + str;\n }\n return str;\n};\n\n// Our version of upath.normalize\n// TODO: this is not equal to path-normalize module - investigate why\nconst normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path)));\n\nconst normalizeIgnored = (cwd = EMPTY_STR) => (path) => {\n if (typeof path !== STRING_TYPE) return path;\n return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path));\n};\n\nconst getAbsolutePath = (path, cwd) => {\n if (sysPath.isAbsolute(path)) {\n return path;\n }\n if (path.startsWith(BANG)) {\n return BANG + sysPath.join(cwd, path.slice(1));\n }\n return sysPath.join(cwd, path);\n};\n\nconst undef = (opts, key) => opts[key] === undefined;\n\n/**\n * Directory entry.\n * @property {Path} path\n * @property {Set<Path>} items\n */\nclass DirEntry {\n /**\n * @param {Path} dir\n * @param {Function} removeWatcher\n */\n constructor(dir, removeWatcher) {\n this.path = dir;\n this._removeWatcher = removeWatcher;\n /** @type {Set<Path>} */\n this.items = new Set();\n }\n\n add(item) {\n const {items} = this;\n if (!items) return;\n if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item);\n }\n\n async remove(item) {\n const {items} = this;\n if (!items) return;\n items.delete(item);\n if (items.size > 0) return;\n\n const dir = this.path;\n try {\n await readdir(dir);\n } catch (err) {\n if (this._removeWatcher) {\n this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir));\n }\n }\n }\n\n has(item) {\n const {items} = this;\n if (!items) return;\n return items.has(item);\n }\n\n /**\n * @returns {Array<String>}\n */\n getChildren() {\n const {items} = this;\n if (!items) return;\n return [...items.values()];\n }\n\n dispose() {\n this.items.clear();\n delete this.path;\n delete this._removeWatcher;\n delete this.items;\n Object.freeze(this);\n }\n}\n\nconst STAT_METHOD_F = 'stat';\nconst STAT_METHOD_L = 'lstat';\nclass WatchHelper {\n constructor(path, watchPath, follow, fsw) {\n this.fsw = fsw;\n this.path = path = path.replace(REPLACER_RE, EMPTY_STR);\n this.watchPath = watchPath;\n this.fullWatchPath = sysPath.resolve(watchPath);\n this.hasGlob = watchPath !== path;\n /** @type {object|boolean} */\n if (path === EMPTY_STR) this.hasGlob = false;\n this.globSymlink = this.hasGlob && follow ? undefined : false;\n this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false;\n this.dirParts = this.getDirParts(path);\n this.dirParts.forEach((parts) => {\n if (parts.length > 1) parts.pop();\n });\n this.followSymlinks = follow;\n this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L;\n }\n\n checkGlobSymlink(entry) {\n // only need to resolve once\n // first entry should always have entry.parentDir === EMPTY_STR\n if (this.globSymlink === undefined) {\n this.globSymlink = entry.fullParentDir === this.fullWatchPath ?\n false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath};\n }\n\n if (this.globSymlink) {\n return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath);\n }\n\n return entry.fullPath;\n }\n\n entryPath(entry) {\n return sysPath.join(this.watchPath,\n sysPath.relative(this.watchPath, this.checkGlobSymlink(entry))\n );\n }\n\n filterPath(entry) {\n const {stats} = entry;\n if (stats && stats.isSymbolicLink()) return this.filterDir(entry);\n const resolvedPath = this.entryPath(entry);\n const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ?\n this.globFilter(resolvedPath) : true;\n return matchesGlob &&\n this.fsw._isntIgnored(resolvedPath, stats) &&\n this.fsw._hasReadPermissions(stats);\n }\n\n getDirParts(path) {\n if (!this.hasGlob) return [];\n const parts = [];\n const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path];\n expandedPath.forEach((path) => {\n parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE));\n });\n return parts;\n }\n\n filterDir(entry) {\n if (this.hasGlob) {\n const entryParts = this.getDirParts(this.checkGlobSymlink(entry));\n let globstar = false;\n this.unmatchedGlob = !this.dirParts.some((parts) => {\n return parts.every((part, i) => {\n if (part === GLOBSTAR) globstar = true;\n return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS);\n });\n });\n }\n return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats);\n }\n}\n\n/**\n * Watches files & directories for changes. Emitted events:\n * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error`\n *\n * new FSWatcher()\n * .add(directories)\n * .on('add', path => log('File', path, 'was added'))\n */\nclass FSWatcher extends EventEmitter {\n// Not indenting methods for history sake; for now.\nconstructor(_opts) {\n super();\n\n const opts = {};\n if (_opts) Object.assign(opts, _opts); // for frozen objects\n\n /** @type {Map<String, DirEntry>} */\n this._watched = new Map();\n /** @type {Map<String, Array>} */\n this._closers = new Map();\n /** @type {Set<String>} */\n this._ignoredPaths = new Set();\n\n /** @type {Map<ThrottleType, Map>} */\n this._throttled = new Map();\n\n /** @type {Map<Path, String|Boolean>} */\n this._symlinkPaths = new Map();\n\n this._streams = new Set();\n this.closed = false;\n\n // Set up default options.\n if (undef(opts, 'persistent')) opts.persistent = true;\n if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false;\n if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false;\n if (undef(opts, 'interval')) opts.interval = 100;\n if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300;\n if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false;\n opts.enableBinaryInterval = opts.binaryInterval !== opts.interval;\n\n // Enable fsevents on OS X when polling isn't explicitly enabled.\n if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling;\n\n // If we can't use fsevents, ensure the options reflect it's disabled.\n const canUseFsEvents = FsEventsHandler.canUse();\n if (!canUseFsEvents) opts.useFsEvents = false;\n\n // Use polling on Mac if not using fsevents.\n // Other platforms use non-polling fs_watch.\n if (undef(opts, 'usePolling') && !opts.useFsEvents) {\n opts.usePolling = isMacos;\n }\n\n // Always default to polling on IBM i because fs.watch() is not available on IBM i.\n if(isIBMi) {\n opts.usePolling = true;\n }\n\n // Global override (useful for end-developers that need to force polling for all\n // instances of chokidar, regardless of usage/dependency depth)\n const envPoll = process.env.CHOKIDAR_USEPOLLING;\n if (envPoll !== undefined) {\n const envLower = envPoll.toLowerCase();\n\n if (envLower === 'false' || envLower === '0') {\n opts.usePolling = false;\n } else if (envLower === 'true' || envLower === '1') {\n opts.usePolling = true;\n } else {\n opts.usePolling = !!envLower;\n }\n }\n const envInterval = process.env.CHOKIDAR_INTERVAL;\n if (envInterval) {\n opts.interval = Number.parseInt(envInterval, 10);\n }\n\n // Editor atomic write normalization enabled by default with fs.watch\n if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents;\n if (opts.atomic) this._pendingUnlinks = new Map();\n\n if (undef(opts, 'followSymlinks')) opts.followSymlinks = true;\n\n if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false;\n if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {};\n const awf = opts.awaitWriteFinish;\n if (awf) {\n if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000;\n if (!awf.pollInterval) awf.pollInterval = 100;\n this._pendingWrites = new Map();\n }\n if (opts.ignored) opts.ignored = arrify(opts.ignored);\n\n let readyCalls = 0;\n this._emitReady = () => {\n readyCalls++;\n if (readyCalls >= this._readyCount) {\n this._emitReady = EMPTY_FN;\n this._readyEmitted = true;\n // use process.nextTick to allow time for listener to be bound\n process.nextTick(() => this.emit(EV_READY));\n }\n };\n this._emitRaw = (...args) => this.emit(EV_RAW, ...args);\n this._readyEmitted = false;\n this.options = opts;\n\n // Initialize with proper watcher.\n if (opts.useFsEvents) {\n this._fsEventsHandler = new FsEventsHandler(this);\n } else {\n this._nodeFsHandler = new NodeFsHandler(this);\n }\n\n // Youre frozen when your hearts not open.\n Object.freeze(opts);\n}\n\n// Public methods\n\n/**\n * Adds paths to be watched on an existing FSWatcher instance\n * @param {Path|Array<Path>} paths_\n * @param {String=} _origAdd private; for handling non-existent paths to be watched\n * @param {Boolean=} _internal private; indicates a non-user add\n * @returns {FSWatcher} for chaining\n */\nadd(paths_, _origAdd, _internal) {\n const {cwd, disableGlobbing} = this.options;\n this.closed = false;\n let paths = unifyPaths(paths_);\n if (cwd) {\n paths = paths.map((path) => {\n const absPath = getAbsolutePath(path, cwd);\n\n // Check `path` instead of `absPath` because the cwd portion can't be a glob\n if (disableGlobbing || !isGlob(path)) {\n return absPath;\n }\n return normalizePath(absPath);\n });\n }\n\n // set aside negated glob strings\n paths = paths.filter((path) => {\n if (path.startsWith(BANG)) {\n this._ignoredPaths.add(path.slice(1));\n return false;\n }\n\n // if a path is being added that was previously ignored, stop ignoring it\n this._ignoredPaths.delete(path);\n this._ignoredPaths.delete(path + SLASH_GLOBSTAR);\n\n // reset the cached userIgnored anymatch fn\n // to make ignoredPaths changes effective\n this._userIgnored = undefined;\n\n return true;\n });\n\n if (this.options.useFsEvents && this._fsEventsHandler) {\n if (!this._readyCount) this._readyCount = paths.length;\n if (this.options.persistent) this._readyCount *= 2;\n paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path));\n } else {\n if (!this._readyCount) this._readyCount = 0;\n this._readyCount += paths.length;\n Promise.all(\n paths.map(async path => {\n const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd);\n if (res) this._emitReady();\n return res;\n })\n ).then(results => {\n if (this.closed) return;\n results.filter(item => item).forEach(item => {\n this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item));\n });\n });\n }\n\n return this;\n}\n\n/**\n * Close watchers or start ignoring events from specified paths.\n * @param {Path|Array<Path>} paths_ - string or array of strings, file/directory paths and/or globs\n * @returns {FSWatcher} for chaining\n*/\nunwatch(paths_) {\n if (this.closed) return this;\n const paths = unifyPaths(paths_);\n const {cwd} = this.options;\n\n paths.forEach((path) => {\n // convert to absolute path unless relative path already matches\n if (!sysPath.isAbsolute(path) && !this._closers.has(path)) {\n if (cwd) path = sysPath.join(cwd, path);\n path = sysPath.resolve(path);\n }\n\n this._closePath(path);\n\n this._ignoredPaths.add(path);\n if (this._watched.has(path)) {\n this._ignoredPaths.add(path + SLASH_GLOBSTAR);\n }\n\n // reset the cached userIgnored anymatch fn\n // to make ignoredPaths changes effective\n this._userIgnored = undefined;\n });\n\n return this;\n}\n\n/**\n * Close watchers and remove all listeners from watched paths.\n * @returns {Promise<void>}.\n*/\nclose() {\n if (this.closed) return this._closePromise;\n this.closed = true;\n\n // Memory management.\n this.removeAllListeners();\n const closers = [];\n this._closers.forEach(closerList => closerList.forEach(closer => {\n const promise = closer();\n if (promise instanceof Promise) closers.push(promise);\n }));\n this._streams.forEach(stream => stream.destroy());\n this._userIgnored = undefined;\n this._readyCount = 0;\n this._readyEmitted = false;\n this._watched.forEach(dirent => dirent.dispose());\n ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => {\n this[`_${key}`].clear();\n });\n\n this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve();\n return this._closePromise;\n}\n\n/**\n * Expose list of watched paths\n * @returns {Object} for chaining\n*/\ngetWatched() {\n const watchList = {};\n this._watched.forEach((entry, dir) => {\n const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir;\n watchList[key || ONE_DOT] = entry.getChildren().sort();\n });\n return watchList;\n}\n\nemitWithAll(event, args) {\n this.emit(...args);\n if (event !== EV_ERROR) this.emit(EV_ALL, ...args);\n}\n\n// Common helpers\n// --------------\n\n/**\n * Normalize and emit events.\n * Calling _emit DOES NOT MEAN emit() would be called!\n * @param {EventName} event Type of event\n * @param {Path} path File or directory path\n * @param {*=} val1 arguments to be passed with event\n * @param {*=} val2\n * @param {*=} val3\n * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag\n */\nasync _emit(event, path, val1, val2, val3) {\n if (this.closed) return;\n\n const opts = this.options;\n if (isWindows) path = sysPath.normalize(path);\n if (opts.cwd) path = sysPath.relative(opts.cwd, path);\n /** @type Array<any> */\n const args = [event, path];\n if (val3 !== undefined) args.push(val1, val2, val3);\n else if (val2 !== undefined) args.push(val1, val2);\n else if (val1 !== undefined) args.push(val1);\n\n const awf = opts.awaitWriteFinish;\n let pw;\n if (awf && (pw = this._pendingWrites.get(path))) {\n pw.lastChange = new Date();\n return this;\n }\n\n if (opts.atomic) {\n if (event === EV_UNLINK) {\n this._pendingUnlinks.set(path, args);\n setTimeout(() => {\n this._pendingUnlinks.forEach((entry, path) => {\n this.emit(...entry);\n this.emit(EV_ALL, ...entry);\n this._pendingUnlinks.delete(path);\n });\n }, typeof opts.atomic === 'number' ? opts.atomic : 100);\n return this;\n }\n if (event === EV_ADD && this._pendingUnlinks.has(path)) {\n event = args[0] = EV_CHANGE;\n this._pendingUnlinks.delete(path);\n }\n }\n\n if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) {\n const awfEmit = (err, stats) => {\n if (err) {\n event = args[0] = EV_ERROR;\n args[1] = err;\n this.emitWithAll(event, args);\n } else if (stats) {\n // if stats doesn't exist the file must have been deleted\n if (args.length > 2) {\n args[2] = stats;\n } else {\n args.push(stats);\n }\n this.emitWithAll(event, args);\n }\n };\n\n this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit);\n return this;\n }\n\n if (event === EV_CHANGE) {\n const isThrottled = !this._throttle(EV_CHANGE, path, 50);\n if (isThrottled) return this;\n }\n\n if (opts.alwaysStat && val1 === undefined &&\n (event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE)\n ) {\n const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path;\n let stats;\n try {\n stats = await stat(fullPath);\n } catch (err) {}\n // Suppress event when fs_stat fails, to avoid sending undefined 'stat'\n if (!stats || this.closed) return;\n args.push(stats);\n }\n this.emitWithAll(event, args);\n\n return this;\n}\n\n/**\n * Common handler for errors\n * @param {Error} error\n * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag\n */\n_handleError(error) {\n const code = error && error.code;\n if (error && code !== 'ENOENT' && code !== 'ENOTDIR' &&\n (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES'))\n ) {\n this.emit(EV_ERROR, error);\n }\n return error || this.closed;\n}\n\n/**\n * Helper utility for throttling\n * @param {ThrottleType} actionType type being throttled\n * @param {Path} path being acted upon\n * @param {Number} timeout duration of time to suppress duplicate actions\n * @returns {Object|false} tracking object or false if action should be suppressed\n */\n_throttle(actionType, path, timeout) {\n if (!this._throttled.has(actionType)) {\n this._throttled.set(actionType, new Map());\n }\n\n /** @type {Map<Path, Object>} */\n const action = this._throttled.get(actionType);\n /** @type {Object} */\n const actionPath = action.get(path);\n\n if (actionPath) {\n actionPath.count++;\n return false;\n }\n\n let timeoutObject;\n const clear = () => {\n const item = action.get(path);\n const count = item ? item.count : 0;\n action.delete(path);\n clearTimeout(timeoutObject);\n if (item) clearTimeout(item.timeoutObject);\n return count;\n };\n timeoutObject = setTimeout(clear, timeout);\n const thr = {timeoutObject, clear, count: 0};\n action.set(path, thr);\n return thr;\n}\n\n_incrReadyCount() {\n return this._readyCount++;\n}\n\n/**\n * Awaits write operation to finish.\n * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback.\n * @param {Path} path being acted upon\n * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished\n * @param {EventName} event\n * @param {Function} awfEmit Callback to be called when ready for event to be emitted.\n */\n_awaitWriteFinish(path, threshold, event, awfEmit) {\n let timeoutHandler;\n\n let fullPath = path;\n if (this.options.cwd && !sysPath.isAbsolute(path)) {\n fullPath = sysPath.join(this.options.cwd, path);\n }\n\n const now = new Date();\n\n const awaitWriteFinish = (prevStat) => {\n fs.stat(fullPath, (err, curStat) => {\n if (err || !this._pendingWrites.has(path)) {\n if (err && err.code !== 'ENOENT') awfEmit(err);\n return;\n }\n\n const now = Number(new Date());\n\n if (prevStat && curStat.size !== prevStat.size) {\n this._pendingWrites.get(path).lastChange = now;\n }\n const pw = this._pendingWrites.get(path);\n const df = now - pw.lastChange;\n\n if (df >= threshold) {\n this._pendingWrites.delete(path);\n awfEmit(undefined, curStat);\n } else {\n timeoutHandler = setTimeout(\n awaitWriteFinish,\n this.options.awaitWriteFinish.pollInterval,\n curStat\n );\n }\n });\n };\n\n if (!this._pendingWrites.has(path)) {\n this._pendingWrites.set(path, {\n lastChange: now,\n cancelWait: () => {\n this._pendingWrites.delete(path);\n clearTimeout(timeoutHandler);\n return event;\n }\n });\n timeoutHandler = setTimeout(\n awaitWriteFinish,\n this.options.awaitWriteFinish.pollInterval\n );\n }\n}\n\n_getGlobIgnored() {\n return [...this._ignoredPaths.values()];\n}\n\n/**\n * Determines whether user has asked to ignore this path.\n * @param {Path} path filepath or dir\n * @param {fs.Stats=} stats result of fs.stat\n * @returns {Boolean}\n */\n_isIgnored(path, stats) {\n if (this.options.atomic && DOT_RE.test(path)) return true;\n if (!this._userIgnored) {\n const {cwd} = this.options;\n const ign = this.options.ignored;\n\n const ignored = ign && ign.map(normalizeIgnored(cwd));\n const paths = arrify(ignored)\n .filter((path) => typeof path === STRING_TYPE && !isGlob(path))\n .map((path) => path + SLASH_GLOBSTAR);\n const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths);\n this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS);\n }\n\n return this._userIgnored([path, stats]);\n}\n\n_isntIgnored(path, stat) {\n return !this._isIgnored(path, stat);\n}\n\n/**\n * Provides a set of common helpers and properties relating to symlink and glob handling.\n * @param {Path} path file, directory, or glob pattern being watched\n * @param {Number=} depth at any depth > 0, this isn't a glob\n * @returns {WatchHelper} object containing helpers for this path\n */\n_getWatchHelpers(path, depth) {\n const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path);\n const follow = this.options.followSymlinks;\n\n return new WatchHelper(path, watchPath, follow, this);\n}\n\n// Directory helpers\n// -----------------\n\n/**\n * Provides directory tracking objects\n * @param {String} directory path of the directory\n * @returns {DirEntry} the directory's tracking object\n */\n_getWatchedDir(directory) {\n if (!this._boundRemove) this._boundRemove = this._remove.bind(this);\n const dir = sysPath.resolve(directory);\n if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove));\n return this._watched.get(dir);\n}\n\n// File helpers\n// ------------\n\n/**\n * Check for read permissions.\n * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405\n * @param {fs.Stats} stats - object, result of fs_stat\n * @returns {Boolean} indicates whether the file can be read\n*/\n_hasReadPermissions(stats) {\n if (this.options.ignorePermissionErrors) return true;\n\n // stats.mode may be bigint\n const md = stats && Number.parseInt(stats.mode, 10);\n const st = md & 0o777;\n const it = Number.parseInt(st.toString(8)[0], 10);\n return Boolean(4 & it);\n}\n\n/**\n * Handles emitting unlink events for\n * files and directories, and via recursion, for\n * files and directories within directories that are unlinked\n * @param {String} directory within which the following item is located\n * @param {String} item base path of item/directory\n * @returns {void}\n*/\n_remove(directory, item, isDirectory) {\n // if what is being deleted is a directory, get that directory's paths\n // for recursive deleting and cleaning of watched object\n // if it is not a directory, nestedDirectoryChildren will be empty array\n const path = sysPath.join(directory, item);\n const fullPath = sysPath.resolve(path);\n isDirectory = isDirectory != null\n ? isDirectory\n : this._watched.has(path) || this._watched.has(fullPath);\n\n // prevent duplicate handling in case of arriving here nearly simultaneously\n // via multiple paths (such as _handleFile and _handleDir)\n if (!this._throttle('remove', path, 100)) return;\n\n // if the only watched file is removed, watch for its return\n if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) {\n this.add(directory, item, true);\n }\n\n // This will create a new entry in the watched object in either case\n // so we got to do the directory check beforehand\n const wp = this._getWatchedDir(path);\n const nestedDirectoryChildren = wp.getChildren();\n\n // Recursively remove children directories / files.\n nestedDirectoryChildren.forEach(nested => this._remove(path, nested));\n\n // Check if item was on the watched list and remove it\n const parent = this._getWatchedDir(directory);\n const wasTracked = parent.has(item);\n parent.remove(item);\n\n // Fixes issue #1042 -> Relative paths were detected and added as symlinks\n // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612),\n // but never removed from the map in case the path was deleted.\n // This leads to an incorrect state if the path was recreated:\n // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553\n if (this._symlinkPaths.has(fullPath)) {\n this._symlinkPaths.delete(fullPath);\n }\n\n // If we wait for this file to be fully written, cancel the wait.\n let relPath = path;\n if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path);\n if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) {\n const event = this._pendingWrites.get(relPath).cancelWait();\n if (event === EV_ADD) return;\n }\n\n // The Entry will either be a directory that just got removed\n // or a bogus entry to a file, in either case we have to remove it\n this._watched.delete(path);\n this._watched.delete(fullPath);\n const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK;\n if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path);\n\n // Avoid conflicts if we later create another file with the same name\n if (!this.options.useFsEvents) {\n this._closePath(path);\n }\n}\n\n/**\n * Closes all watchers for a path\n * @param {Path} path\n */\n_closePath(path) {\n this._closeFile(path)\n const dir = sysPath.dirname(path);\n this._getWatchedDir(dir).remove(sysPath.basename(path));\n}\n\n/**\n * Closes only file-specific watchers\n * @param {Path} path\n */\n_closeFile(path) {\n const closers = this._closers.get(path);\n if (!closers) return;\n closers.forEach(closer => closer());\n this._closers.delete(path);\n}\n\n/**\n *\n * @param {Path} path\n * @param {Function} closer\n */\n_addPathCloser(path, closer) {\n if (!closer) return;\n let list = this._closers.get(path);\n if (!list) {\n list = [];\n this._closers.set(path, list);\n }\n list.push(closer);\n}\n\n_readdirp(root, opts) {\n if (this.closed) return;\n const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts};\n let stream = readdirp(root, options);\n this._streams.add(stream);\n stream.once(STR_CLOSE, () => {\n stream = undefined;\n });\n stream.once(STR_END, () => {\n if (stream) {\n this._streams.delete(stream);\n stream = undefined;\n }\n });\n return stream;\n}\n\n}\n\n// Export FSWatcher class\nexports.FSWatcher = FSWatcher;\n\n/**\n * Instantiates watcher with paths to be tracked.\n * @param {String|Array<String>} paths file/directory paths and/or globs\n * @param {Object=} options chokidar opts\n * @returns an instance of FSWatcher for chaining.\n */\nconst watch = (paths, options) => {\n const watcher = new FSWatcher(options);\n watcher.add(paths);\n return watcher;\n};\n\nexports.watch = watch;\n","import fs, { promises as fsp } from 'fs'\nimport path from 'path'\nimport { Server as HttpServer } from 'http'\nimport { ServerOptions as HttpsServerOptions } from 'https'\nimport { ResolvedConfig, ServerOptions } from '..'\nimport { isObject } from '../utils'\nimport { Connect } from 'types/connect'\nimport { Logger } from '../logger'\n\nexport async function resolveHttpServer(\n { proxy }: ServerOptions,\n app: Connect.Server,\n httpsOptions?: HttpsServerOptions\n): Promise<HttpServer> {\n if (!httpsOptions) {\n return require('http').createServer(app)\n }\n\n if (proxy) {\n // #484 fallback to http1 when proxy is needed.\n return require('https').createServer(httpsOptions, app)\n } else {\n return require('http2').createSecureServer(\n {\n ...httpsOptions,\n allowHTTP1: true\n },\n app\n )\n }\n}\n\nexport async function resolveHttpsConfig(\n config: ResolvedConfig\n): Promise<HttpsServerOptions | undefined> {\n if (!config.server.https) return undefined\n\n const httpsOption = isObject(config.server.https) ? config.server.https : {}\n\n const { ca, cert, key, pfx } = httpsOption\n Object.assign(httpsOption, {\n ca: readFileIfExists(ca),\n cert: readFileIfExists(cert),\n key: readFileIfExists(key),\n pfx: readFileIfExists(pfx)\n })\n if (!httpsOption.key || !httpsOption.cert) {\n httpsOption.cert = httpsOption.key = await getCertificate(config)\n }\n return httpsOption\n}\n\nfunction readFileIfExists(value?: string | Buffer | any[]) {\n if (typeof value === 'string') {\n try {\n return fs.readFileSync(path.resolve(value as string))\n } catch (e) {\n return value\n }\n }\n return value\n}\n\n/**\n * https://github.com/webpack/webpack-dev-server/blob/master/lib/utils/createCertificate.js\n *\n * Copyright JS Foundation and other contributors\n * This source code is licensed under the MIT license found in the\n * LICENSE file at\n * https://github.com/webpack/webpack-dev-server/blob/master/LICENSE\n */\nasync function createCertificate() {\n const { generate } = await import('selfsigned')\n const pems = generate(null, {\n algorithm: 'sha256',\n days: 30,\n keySize: 2048,\n extensions: [\n // {\n // name: 'basicConstraints',\n // cA: true,\n // },\n {\n name: 'keyUsage',\n keyCertSign: true,\n digitalSignature: true,\n nonRepudiation: true,\n keyEncipherment: true,\n dataEncipherment: true\n },\n {\n name: 'extKeyUsage',\n serverAuth: true,\n clientAuth: true,\n codeSigning: true,\n timeStamping: true\n },\n {\n name: 'subjectAltName',\n altNames: [\n {\n // type 2 is DNS\n type: 2,\n value: 'localhost'\n },\n {\n type: 2,\n value: 'localhost.localdomain'\n },\n {\n type: 2,\n value: 'lvh.me'\n },\n {\n type: 2,\n value: '*.lvh.me'\n },\n {\n type: 2,\n value: '[::1]'\n },\n {\n // type 7 is IP\n type: 7,\n ip: '127.0.0.1'\n },\n {\n type: 7,\n ip: 'fe80::1'\n }\n ]\n }\n ]\n })\n return pems.private + pems.cert\n}\n\nasync function getCertificate(config: ResolvedConfig) {\n if (!config.cacheDir) return await createCertificate()\n\n const cachePath = path.join(config.cacheDir, '_cert.pem')\n\n try {\n const [stat, content] = await Promise.all([\n fsp.stat(cachePath),\n fsp.readFile(cachePath, 'utf8')\n ])\n\n if (Date.now() - stat.ctime.valueOf() > 30 * 24 * 60 * 60 * 1000) {\n throw new Error('cache is outdated.')\n }\n\n return content\n } catch {\n const content = await createCertificate()\n fsp\n .mkdir(config.cacheDir, { recursive: true })\n .then(() => fsp.writeFile(cachePath, content))\n .catch(() => {})\n return content\n }\n}\n\nexport async function httpServerStart(\n httpServer: HttpServer,\n serverOptions: {\n port: number\n strictPort: boolean | undefined\n host: string | undefined\n logger: Logger\n }\n): Promise<number> {\n return new Promise((resolve, reject) => {\n let { port, strictPort, host, logger } = serverOptions\n\n const onError = (e: Error & { code?: string }) => {\n if (e.code === 'EADDRINUSE') {\n if (strictPort) {\n httpServer.removeListener('error', onError)\n reject(new Error(`Port ${port} is already in use`))\n } else {\n logger.info(`Port ${port} is in use, trying another one...`)\n httpServer.listen(++port, host)\n }\n } else {\n httpServer.removeListener('error', onError)\n reject(e)\n }\n }\n\n httpServer.on('error', onError)\n\n httpServer.listen(port, host, () => {\n httpServer.removeListener('error', onError)\n resolve(port)\n })\n })\n}\n","'use strict';\n\nmodule.exports = {\n BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n EMPTY_BUFFER: Buffer.alloc(0),\n NOOP: () => {}\n};\n","'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) return target.slice(0, offset);\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (let i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = Buffer.from(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\ntry {\n const bufferUtil = require('bufferutil');\n const bu = bufferUtil.BufferUtil || bufferUtil;\n\n module.exports = {\n concat,\n mask(source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bu.mask(source, mask, output, offset, length);\n },\n toArrayBuffer,\n toBuffer,\n unmask(buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bu.unmask(buffer, mask);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n };\n}\n","'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n","'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode, NOOP } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n //\n // An `'error'` event is emitted, only on Node.js < 10.0.0, if the\n // `zlib.DeflateRaw` instance is closed while data is being processed.\n // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong\n // time due to an abnormal WebSocket closure.\n //\n this._deflate.on('error', NOOP);\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) data = data.slice(0, data.length - 4);\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n","'use strict';\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\ntry {\n let isValidUTF8 = require('utf-8-validate');\n\n /* istanbul ignore if */\n if (typeof isValidUTF8 === 'object') {\n isValidUTF8 = isValidUTF8.Validation.isValidUTF8; // utf-8-validate@<3.0.0\n }\n\n module.exports = {\n isValidStatusCode,\n isValidUTF8(buf) {\n return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n isValidStatusCode,\n isValidUTF8: _isValidUTF8\n };\n}\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {String} [binaryType=nodebuffer] The type for binary data\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Boolean} [isServer=false] Specifies whether to operate in client or\n * server mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(binaryType, extensions, isServer, maxPayload) {\n super();\n\n this._binaryType = binaryType || BINARY_TYPES[0];\n this[kWebSocket] = undefined;\n this._extensions = extensions || {};\n this._isServer = !!isServer;\n this._maxPayload = maxPayload | 0;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._state = GET_INFO;\n this._loop = false;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = buf.slice(n);\n return buf.slice(0, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = buf.slice(n);\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n let err;\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n err = this.getInfo();\n break;\n case GET_PAYLOAD_LENGTH_16:\n err = this.getPayloadLength16();\n break;\n case GET_PAYLOAD_LENGTH_64:\n err = this.getPayloadLength64();\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n err = this.getData(cb);\n break;\n default:\n // `INFLATING`\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n cb(err);\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getInfo() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (!this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n this._loop = false;\n return error(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n }\n\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (this._payloadLength > 0x7d) {\n this._loop = false;\n return error(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n }\n } else {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n }\n } else if (this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength16() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength64() {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n this._loop = false;\n return error(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n return this.haveLength();\n }\n\n /**\n * Payload length has been read.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n haveLength() {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n this._loop = false;\n return error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n if (this._masked) unmask(data, this._mask);\n }\n\n if (this._opcode > 0x07) return this.controlMessage(data);\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its lenght is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n return this.dataMessage();\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n return cb(\n error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n )\n );\n }\n\n this._fragments.push(buf);\n }\n\n const er = this.dataMessage();\n if (er) return cb(er);\n\n this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @return {(Error|undefined)} A possible error\n * @private\n */\n dataMessage() {\n if (this._fin) {\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else {\n data = fragments;\n }\n\n this.emit('message', data);\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!isValidUTF8(buf)) {\n this._loop = false;\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('message', buf.toString());\n }\n }\n\n this._state = GET_INFO;\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data) {\n if (this._opcode === 0x08) {\n this._loop = false;\n\n if (data.length === 0) {\n this.emit('conclude', 1005, '');\n this.end();\n } else if (data.length === 1) {\n return error(\n RangeError,\n 'invalid payload length 1',\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n return error(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n }\n\n const buf = data.slice(2);\n\n if (!isValidUTF8(buf)) {\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('conclude', code, buf.toString());\n this.end();\n }\n } else if (this._opcode === 0x09) {\n this.emit('ping', data);\n } else {\n this.emit('pong', data);\n }\n\n this._state = GET_INFO;\n }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode, errorCode) {\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, error);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls$\" }] */\n\n'use strict';\n\nconst net = require('net');\nconst tls = require('tls');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst mask = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {(net.Socket|tls.Socket)} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n */\n constructor(socket, extensions) {\n this._extensions = extensions || {};\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._deflating = false;\n this._queue = [];\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {Buffer} data The data to frame\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {Buffer[]} The framed data as a list of `Buffer` instances\n * @public\n */\n static frame(data, options) {\n const merge = options.mask && options.readOnly;\n let offset = options.mask ? 6 : 2;\n let payloadLength = data.length;\n\n if (data.length >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (data.length > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(data.length, 2);\n } else if (payloadLength === 127) {\n target.writeUInt32BE(0, 2);\n target.writeUInt32BE(data.length, 6);\n }\n\n if (!options.mask) return [target, data];\n\n randomFillSync(mask, 0, 4);\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (merge) {\n applyMask(data, mask, target, offset, data.length);\n return [target];\n }\n\n applyMask(data, mask, data, 0, data.length);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {String} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || data === '') {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n buf.write(data, 2);\n }\n\n if (this._deflating) {\n this.enqueue([this.doClose, buf, mask, cb]);\n } else {\n this.doClose(buf, mask, cb);\n }\n }\n\n /**\n * Frames and sends a close message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @private\n */\n doClose(data, mask, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x08,\n mask,\n readOnly: false\n }),\n cb\n );\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPing(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a ping message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPing(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x09,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPong(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a pong message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPong(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x0a,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const buf = toBuffer(data);\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (rsv1 && perMessageDeflate) {\n rsv1 = buf.length >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n if (perMessageDeflate) {\n const opts = {\n fin: options.fin,\n rsv1,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n };\n\n if (this._deflating) {\n this.enqueue([this.dispatch, buf, this._compress, opts, cb]);\n } else {\n this.dispatch(buf, this._compress, opts, cb);\n }\n } else {\n this.sendFrame(\n Sender.frame(buf, {\n fin: options.fin,\n rsv1: false,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n }),\n cb\n );\n }\n }\n\n /**\n * Dispatches a data message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += data.length;\n this._deflating = true;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < this._queue.length; i++) {\n const callback = this._queue[i][4];\n\n if (typeof callback === 'function') callback(err);\n }\n\n return;\n }\n\n this._bufferedBytes -= data.length;\n this._deflating = false;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (!this._deflating && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[1].length;\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[1].length;\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {Buffer[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n","'use strict';\n\n/**\n * Class representing an event.\n *\n * @private\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @param {Object} target A reference to the target to which the event was\n * dispatched\n */\n constructor(type, target) {\n this.target = target;\n this.type = type;\n }\n}\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n * @private\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(data, target) {\n super('message', target);\n\n this.data = data;\n }\n}\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n * @private\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {Number} code The status code explaining why the connection is being\n * closed\n * @param {String} reason A human-readable string explaining why the\n * connection is closing\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(code, reason, target) {\n super('close', target);\n\n this.wasClean = target._closeFrameReceived && target._closeFrameSent;\n this.reason = reason;\n this.code = code;\n }\n}\n\n/**\n * Class representing an open event.\n *\n * @extends Event\n * @private\n */\nclass OpenEvent extends Event {\n /**\n * Create a new `OpenEvent`.\n *\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(target) {\n super('open', target);\n }\n}\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n * @private\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {Object} error The error that generated this event\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(error, target) {\n super('error', target);\n\n this.message = error.message;\n this.error = error;\n }\n}\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {Function} listener The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean`` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, listener, options) {\n if (typeof listener !== 'function') return;\n\n function onMessage(data) {\n listener.call(this, new MessageEvent(data, this));\n }\n\n function onClose(code, message) {\n listener.call(this, new CloseEvent(code, message, this));\n }\n\n function onError(error) {\n listener.call(this, new ErrorEvent(error, this));\n }\n\n function onOpen() {\n listener.call(this, new OpenEvent(this));\n }\n\n const method = options && options.once ? 'once' : 'on';\n\n if (type === 'message') {\n onMessage._listener = listener;\n this[method](type, onMessage);\n } else if (type === 'close') {\n onClose._listener = listener;\n this[method](type, onClose);\n } else if (type === 'error') {\n onError._listener = listener;\n this[method](type, onError);\n } else if (type === 'open') {\n onOpen._listener = listener;\n this[method](type, onOpen);\n } else {\n this[method](type, listener);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener The listener to remove\n * @public\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners(type);\n\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i] === listener || listeners[i]._listener === listener) {\n this.removeListener(type, listeners[i]);\n }\n }\n }\n};\n\nmodule.exports = EventTarget;\n","'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n\n if (header === undefined || header === '') return offers;\n\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n","'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst { addEventListener, removeEventListener } = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst protocolVersions = [8, 13];\nconst closeTimeout = 30 * 1000;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = '';\n this._closeTimer = null;\n this._extensions = {};\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (Array.isArray(protocols)) {\n protocols = protocols.join(', ');\n } else if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = undefined;\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._isServer = true;\n }\n }\n\n /**\n * This deviates from the WHATWG interface since ws doesn't support the\n * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n * type).\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onclose(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onerror(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onopen(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onmessage(listener) {}\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Number} [maxPayload=0] The maximum allowed message size\n * @private\n */\n setSocket(socket, head, maxPayload) {\n const receiver = new Receiver(\n this.binaryType,\n this._extensions,\n this._isServer,\n maxPayload\n );\n\n this._sender = new Sender(socket, this._extensions);\n this._receiver = receiver;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n socket.setTimeout(0);\n socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {String} [data] A string explaining why the connection is closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n //\n // Specify a timeout for the closing handshake to complete.\n //\n this._closeTimer = setTimeout(\n this._socket.destroy.bind(this._socket),\n closeTimeout\n );\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n },\n set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {String} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n createConnection: undefined,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: undefined,\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n websocket._url = address.href;\n } else {\n parsedUrl = new URL(address);\n websocket._url = address;\n }\n\n const isUnixSocket = parsedUrl.protocol === 'ws+unix:';\n\n if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {\n throw new Error(`Invalid URL: ${websocket.url}`);\n }\n\n const isSecure =\n parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:';\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const get = isSecure ? https.get : http.get;\n let perMessageDeflate;\n\n opts.createConnection = isSecure ? tlsConnect : netConnect;\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket',\n ...opts.headers\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols) {\n opts.headers['Sec-WebSocket-Protocol'] = protocols;\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isUnixSocket) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req = (websocket._req = get(opts));\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req.aborted) return;\n\n req = websocket._req = null;\n websocket._readyState = WebSocket.CLOSING;\n websocket.emit('error', err);\n websocket.emitClose();\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n const addr = new URL(location, address);\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the `upgrade`\n // event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n const protList = (protocols || '').split(/, */);\n let protError;\n\n if (!protocols && serverProt) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (protocols && !serverProt) {\n protError = 'Server sent no subprotocol';\n } else if (serverProt && !protList.includes(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (extensionNames.length) {\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message =\n 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n }\n\n websocket.setSocket(socket, head, opts.maxPayload);\n });\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n stream.once('abort', websocket.emitClose.bind(websocket));\n websocket.emit('error', err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n cb(err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {String} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n this[kWebSocket]._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n websocket._socket.removeListener('data', socketOnData);\n websocket._socket.resume();\n\n websocket.close(err[kStatusCode]);\n websocket.emit('error', err);\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message\n * @private\n */\nfunction receiverOnMessage(data) {\n this[kWebSocket].emit('message', data);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n websocket.pong(data, !websocket._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk and emitted synchronously in a single\n // `'data'` event.\n //\n websocket._socket.read();\n websocket._receiver.end();\n\n this.removeListener('data', socketOnData);\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n","'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let resumeOnReceiverDrain = true;\n let terminateOnDestroy = true;\n\n function receiverOnDrain() {\n if (resumeOnReceiverDrain) ws._socket.resume();\n }\n\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n });\n } else {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n }\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg) {\n if (!duplex.push(msg)) {\n resumeOnReceiverDrain = false;\n ws._socket.pause();\n }\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.readyState === ws.OPEN && !resumeOnReceiverDrain) {\n resumeOnReceiverDrain = true;\n if (!ws._receiver._writableState.needDrain) ws._socket.resume();\n }\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls|https$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst https = require('https');\nconst net = require('net');\nconst tls = require('tls');\nconst { createHash } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst WebSocket = require('./websocket');\nconst { format, parse } = require('./extension');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) this.clients = new Set();\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Close the server.\n *\n * @param {Function} [cb] Callback\n * @public\n */\n close(cb) {\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSED) {\n process.nextTick(emitClose, this);\n return;\n }\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n //\n // Terminate all associated clients.\n //\n if (this.clients) {\n for (const client of this.clients) client.terminate();\n }\n\n const server = this._server;\n\n if (server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // Close the http server if it was internally created.\n //\n if (this.options.port != null) {\n server.close(emitClose.bind(undefined, this));\n return;\n }\n }\n\n process.nextTick(emitClose, this);\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key =\n req.headers['sec-websocket-key'] !== undefined\n ? req.headers['sec-websocket-key'].trim()\n : false;\n const version = +req.headers['sec-websocket-version'];\n const extensions = {};\n\n if (\n req.method !== 'GET' ||\n req.headers.upgrade.toLowerCase() !== 'websocket' ||\n !key ||\n !keyRegex.test(key) ||\n (version !== 8 && version !== 13) ||\n !this.shouldHandle(req)\n ) {\n return abortHandshake(socket, 400);\n }\n\n if (this.options.perMessageDeflate) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = parse(req.headers['sec-websocket-extensions']);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n return abortHandshake(socket, 400);\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Object} extensions The accepted extensions\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(key, extensions, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new WebSocket(null);\n let protocol = req.headers['sec-websocket-protocol'];\n\n if (protocol) {\n protocol = protocol.split(',').map(trim);\n\n //\n // Optionally call external protocol selection handler.\n //\n if (this.options.handleProtocols) {\n protocol = this.options.handleProtocols(protocol, req);\n } else {\n protocol = protocol[0];\n }\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, this.options.maxPayload);\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => this.clients.delete(ws));\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of <event, listener>\n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.<String, Function>} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle premature socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n if (socket.writable) {\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.write(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n }\n\n socket.removeListener('error', socketOnError);\n socket.destroy();\n}\n\n/**\n * Remove whitespace characters from both ends of a string.\n *\n * @param {String} str The string\n * @return {String} A new string representing `str` stripped of whitespace\n * characters from both its beginning and end\n * @private\n */\nfunction trim(str) {\n return str.trim();\n}\n","'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nmodule.exports = WebSocket;\n","import chalk from 'chalk'\nimport { Server, STATUS_CODES } from 'http'\nimport {\n createServer as createHttpsServer,\n ServerOptions as HttpsServerOptions\n} from 'https'\nimport WebSocket from 'ws'\nimport { ErrorPayload, HMRPayload } from 'types/hmrPayload'\nimport { ResolvedConfig } from '..'\nimport { isObject } from '../utils'\nimport { Socket } from 'net'\nexport const HMR_HEADER = 'vite-hmr'\n\nexport interface WebSocketServer {\n send(payload: HMRPayload): void\n close(): Promise<void>\n}\n\nexport function createWebSocketServer(\n server: Server | null,\n config: ResolvedConfig,\n httpsOptions?: HttpsServerOptions\n): WebSocketServer {\n let wss: WebSocket.Server\n let httpsServer: Server | undefined = undefined\n\n const hmr = isObject(config.server.hmr) && config.server.hmr\n const wsServer = (hmr && hmr.server) || server\n\n if (wsServer) {\n wss = new WebSocket.Server({ noServer: true })\n wsServer.on('upgrade', (req, socket, head) => {\n if (req.headers['sec-websocket-protocol'] === HMR_HEADER) {\n wss.handleUpgrade(req, socket as Socket, head, (ws) => {\n wss.emit('connection', ws, req)\n })\n }\n })\n } else {\n const websocketServerOptions: WebSocket.ServerOptions = {}\n const port = (hmr && hmr.port) || 24678\n if (httpsOptions) {\n // if we're serving the middlewares over https, the ws library doesn't support automatically creating an https server, so we need to do it ourselves\n // create an inline https server and mount the websocket server to it\n httpsServer = createHttpsServer(httpsOptions, (req, res) => {\n const statusCode = 426\n const body = STATUS_CODES[statusCode]\n if (!body)\n throw new Error(\n `No body text found for the ${statusCode} status code`\n )\n\n res.writeHead(statusCode, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n })\n res.end(body)\n })\n\n httpsServer.listen(port)\n websocketServerOptions.server = httpsServer\n } else {\n // we don't need to serve over https, just let ws handle its own server\n websocketServerOptions.port = port\n }\n\n // vite dev server in middleware mode\n wss = new WebSocket.Server(websocketServerOptions)\n }\n\n wss.on('connection', (socket) => {\n socket.send(JSON.stringify({ type: 'connected' }))\n if (bufferedError) {\n socket.send(JSON.stringify(bufferedError))\n bufferedError = null\n }\n })\n\n wss.on('error', (e: Error & { code: string }) => {\n if (e.code !== 'EADDRINUSE') {\n config.logger.error(\n chalk.red(`WebSocket server error:\\n${e.stack || e.message}`),\n { error: e }\n )\n }\n })\n\n // On page reloads, if a file fails to compile and returns 500, the server\n // sends the error payload before the client connection is established.\n // If we have no open clients, buffer the error and send it to the next\n // connected client.\n let bufferedError: ErrorPayload | null = null\n\n return {\n send(payload: HMRPayload) {\n if (payload.type === 'error' && !wss.clients.size) {\n bufferedError = payload\n return\n }\n\n const stringified = JSON.stringify(payload)\n wss.clients.forEach((client) => {\n if (client.readyState === WebSocket.OPEN) {\n client.send(stringified)\n }\n })\n },\n\n close() {\n return new Promise((resolve, reject) => {\n wss.close((err) => {\n if (err) {\n reject(err)\n } else {\n if (httpsServer) {\n httpsServer.close((err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n } else {\n resolve()\n }\n }\n })\n })\n }\n }\n}\n","import { parse as parseUrl } from 'url'\nimport { ViteDevServer } from '..'\nimport { Connect } from 'types/connect'\n\n// this middleware is only active when (config.base !== '/')\n\nexport function baseMiddleware({\n config\n}: ViteDevServer): Connect.NextHandleFunction {\n const base = config.base\n\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return function viteBaseMiddleware(req, res, next) {\n const url = req.url!\n const parsed = parseUrl(url)\n const path = parsed.pathname || '/'\n\n if (path.startsWith(base)) {\n // rewrite url to remove base.. this ensures that other middleware does\n // not need to consider base being prepended or not\n req.url = url.replace(base, '/')\n return next()\n }\n\n // skip redirect and error fallback on middleware mode, #4057\n if (config.server.middlewareMode) {\n return next()\n }\n\n if (path === '/' || path === '/index.html') {\n // redirect root visit to based url\n res.writeHead(302, {\n Location: base\n })\n res.end()\n return\n } else if (req.headers.accept?.includes('text/html')) {\n // non-based page visit\n const redirectPath = base + url.slice(1)\n res.writeHead(404, {\n 'Content-Type': 'text/html'\n })\n res.end(\n `The server is configured with a public base URL of ${base} - ` +\n `did you mean to visit <a href=\"${redirectPath}\">${redirectPath}</a> instead?`\n )\n return\n }\n\n next()\n }\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","var common = exports,\n url = require('url'),\n extend = require('util')._extend,\n required = require('requires-port');\n\nvar upgradeHeader = /(^|,)\\s*upgrade\\s*($|,)/i,\n isSSL = /^https|wss/;\n\n/**\n * Simple Regex for testing if protocol is https\n */\ncommon.isSSL = isSSL;\n/**\n * Copies the right headers from `options` and `req` to\n * `outgoing` which is then used to fire the proxied\n * request.\n *\n * Examples:\n *\n * common.setupOutgoing(outgoing, options, req)\n * // => { host: ..., hostname: ...}\n *\n * @param {Object} Outgoing Base object to be filled with required properties\n * @param {Object} Options Config object passed to the proxy\n * @param {ClientRequest} Req Request Object\n * @param {String} Forward String to select forward or target\n * \n * @return {Object} Outgoing Object with all required properties set\n *\n * @api private\n */\n\ncommon.setupOutgoing = function(outgoing, options, req, forward) {\n outgoing.port = options[forward || 'target'].port ||\n (isSSL.test(options[forward || 'target'].protocol) ? 443 : 80);\n\n ['host', 'hostname', 'socketPath', 'pfx', 'key',\n 'passphrase', 'cert', 'ca', 'ciphers', 'secureProtocol'].forEach(\n function(e) { outgoing[e] = options[forward || 'target'][e]; }\n );\n\n outgoing.method = options.method || req.method;\n outgoing.headers = extend({}, req.headers);\n\n if (options.headers){\n extend(outgoing.headers, options.headers);\n }\n\n if (options.auth) {\n outgoing.auth = options.auth;\n }\n \n if (options.ca) {\n outgoing.ca = options.ca;\n }\n\n if (isSSL.test(options[forward || 'target'].protocol)) {\n outgoing.rejectUnauthorized = (typeof options.secure === \"undefined\") ? true : options.secure;\n }\n\n\n outgoing.agent = options.agent || false;\n outgoing.localAddress = options.localAddress;\n\n //\n // Remark: If we are false and not upgrading, set the connection: close. This is the right thing to do\n // as node core doesn't handle this COMPLETELY properly yet.\n //\n if (!outgoing.agent) {\n outgoing.headers = outgoing.headers || {};\n if (typeof outgoing.headers.connection !== 'string'\n || !upgradeHeader.test(outgoing.headers.connection)\n ) { outgoing.headers.connection = 'close'; }\n }\n\n\n // the final path is target path + relative path requested by user:\n var target = options[forward || 'target'];\n var targetPath = target && options.prependPath !== false\n ? (target.path || '')\n : '';\n\n //\n // Remark: Can we somehow not use url.parse as a perf optimization?\n //\n var outgoingPath = !options.toProxy\n ? (url.parse(req.url).path || '')\n : req.url;\n\n //\n // Remark: ignorePath will just straight up ignore whatever the request's\n // path is. This can be labeled as FOOT-GUN material if you do not know what\n // you are doing and are using conflicting options.\n //\n outgoingPath = !options.ignorePath ? outgoingPath : '';\n\n outgoing.path = common.urlJoin(targetPath, outgoingPath);\n\n if (options.changeOrigin) {\n outgoing.headers.host =\n required(outgoing.port, options[forward || 'target'].protocol) && !hasPort(outgoing.host)\n ? outgoing.host + ':' + outgoing.port\n : outgoing.host;\n }\n return outgoing;\n};\n\n/**\n * Set the proper configuration for sockets,\n * set no delay and set keep alive, also set\n * the timeout to 0.\n *\n * Examples:\n *\n * common.setupSocket(socket)\n * // => Socket\n *\n * @param {Socket} Socket instance to setup\n * \n * @return {Socket} Return the configured socket.\n *\n * @api private\n */\n\ncommon.setupSocket = function(socket) {\n socket.setTimeout(0);\n socket.setNoDelay(true);\n\n socket.setKeepAlive(true, 0);\n\n return socket;\n};\n\n/**\n * Get the port number from the host. Or guess it based on the connection type.\n *\n * @param {Request} req Incoming HTTP request.\n *\n * @return {String} The port number.\n *\n * @api private\n */\ncommon.getPort = function(req) {\n var res = req.headers.host ? req.headers.host.match(/:(\\d+)/) : '';\n\n return res ?\n res[1] :\n common.hasEncryptedConnection(req) ? '443' : '80';\n};\n\n/**\n * Check if the request has an encrypted connection.\n *\n * @param {Request} req Incoming HTTP request.\n *\n * @return {Boolean} Whether the connection is encrypted or not.\n *\n * @api private\n */\ncommon.hasEncryptedConnection = function(req) {\n return Boolean(req.connection.encrypted || req.connection.pair);\n};\n\n/**\n * OS-agnostic join (doesn't break on URLs like path.join does on Windows)>\n *\n * @return {String} The generated path.\n *\n * @api private\n */\n\ncommon.urlJoin = function() {\n //\n // We do not want to mess with the query string. All we want to touch is the path.\n //\n var args = Array.prototype.slice.call(arguments),\n lastIndex = args.length - 1,\n last = args[lastIndex],\n lastSegs = last.split('?'),\n retSegs;\n\n args[lastIndex] = lastSegs.shift();\n\n //\n // Join all strings, but remove empty strings so we don't get extra slashes from\n // joining e.g. ['', 'am']\n //\n retSegs = [\n args.filter(Boolean).join('/')\n .replace(/\\/+/g, '/')\n .replace('http:/', 'http://')\n .replace('https:/', 'https://')\n ];\n\n // Only join the query string if it exists so we don't have trailing a '?'\n // on every request\n\n // Handle case where there could be multiple ? in the URL.\n retSegs.push.apply(retSegs, lastSegs);\n\n return retSegs.join('?')\n};\n\n/**\n * Rewrites or removes the domain of a cookie header\n *\n * @param {String|Array} Header\n * @param {Object} Config, mapping of domain to rewritten domain.\n * '*' key to match any domain, null value to remove the domain.\n *\n * @api private\n */\ncommon.rewriteCookieProperty = function rewriteCookieProperty(header, config, property) {\n if (Array.isArray(header)) {\n return header.map(function (headerElement) {\n return rewriteCookieProperty(headerElement, config, property);\n });\n }\n return header.replace(new RegExp(\"(;\\\\s*\" + property + \"=)([^;]+)\", 'i'), function(match, prefix, previousValue) {\n var newValue;\n if (previousValue in config) {\n newValue = config[previousValue];\n } else if ('*' in config) {\n newValue = config['*'];\n } else {\n //no match, return previous value\n return match;\n }\n if (newValue) {\n //replace value\n return prefix + newValue;\n } else {\n //remove value\n return '';\n }\n });\n};\n\n/**\n * Check the host and see if it potentially has a port in it (keep it simple)\n *\n * @returns {Boolean} Whether we have one or not\n *\n * @api private\n */\nfunction hasPort(host) {\n return !!~host.indexOf(':');\n};\n","var url = require('url'),\n common = require('../common');\n\n\nvar redirectRegex = /^201|30(1|2|7|8)$/;\n\n/*!\n * Array of passes.\n *\n * A `pass` is just a function that is executed on `req, res, options`\n * so that you can easily add new checks while still keeping the base\n * flexible.\n */\n\nmodule.exports = { // <--\n\n /**\n * If is a HTTP 1.0 request, remove chunk headers\n *\n * @param {ClientRequest} Req Request object\n * @param {IncomingMessage} Res Response object\n * @param {proxyResponse} Res Response object from the proxy request\n *\n * @api private\n */\n removeChunked: function removeChunked(req, res, proxyRes) {\n if (req.httpVersion === '1.0') {\n delete proxyRes.headers['transfer-encoding'];\n }\n },\n\n /**\n * If is a HTTP 1.0 request, set the correct connection header\n * or if connection header not present, then use `keep-alive`\n *\n * @param {ClientRequest} Req Request object\n * @param {IncomingMessage} Res Response object\n * @param {proxyResponse} Res Response object from the proxy request\n *\n * @api private\n */\n setConnection: function setConnection(req, res, proxyRes) {\n if (req.httpVersion === '1.0') {\n proxyRes.headers.connection = req.headers.connection || 'close';\n } else if (req.httpVersion !== '2.0' && !proxyRes.headers.connection) {\n proxyRes.headers.connection = req.headers.connection || 'keep-alive';\n }\n },\n\n setRedirectHostRewrite: function setRedirectHostRewrite(req, res, proxyRes, options) {\n if ((options.hostRewrite || options.autoRewrite || options.protocolRewrite)\n && proxyRes.headers['location']\n && redirectRegex.test(proxyRes.statusCode)) {\n var target = url.parse(options.target);\n var u = url.parse(proxyRes.headers['location']);\n\n // make sure the redirected host matches the target host before rewriting\n if (target.host != u.host) {\n return;\n }\n\n if (options.hostRewrite) {\n u.host = options.hostRewrite;\n } else if (options.autoRewrite) {\n u.host = req.headers['host'];\n }\n if (options.protocolRewrite) {\n u.protocol = options.protocolRewrite;\n }\n\n proxyRes.headers['location'] = u.format();\n }\n },\n /**\n * Copy headers from proxyResponse to response\n * set each header in response object.\n *\n * @param {ClientRequest} Req Request object\n * @param {IncomingMessage} Res Response object\n * @param {proxyResponse} Res Response object from the proxy request\n * @param {Object} Options options.cookieDomainRewrite: Config to rewrite cookie domain\n *\n * @api private\n */\n writeHeaders: function writeHeaders(req, res, proxyRes, options) {\n var rewriteCookieDomainConfig = options.cookieDomainRewrite,\n rewriteCookiePathConfig = options.cookiePathRewrite,\n preserveHeaderKeyCase = options.preserveHeaderKeyCase,\n rawHeaderKeyMap,\n setHeader = function(key, header) {\n if (header == undefined) return;\n if (rewriteCookieDomainConfig && key.toLowerCase() === 'set-cookie') {\n header = common.rewriteCookieProperty(header, rewriteCookieDomainConfig, 'domain');\n }\n if (rewriteCookiePathConfig && key.toLowerCase() === 'set-cookie') {\n header = common.rewriteCookieProperty(header, rewriteCookiePathConfig, 'path');\n }\n res.setHeader(String(key).trim(), header);\n };\n\n if (typeof rewriteCookieDomainConfig === 'string') { //also test for ''\n rewriteCookieDomainConfig = { '*': rewriteCookieDomainConfig };\n }\n\n if (typeof rewriteCookiePathConfig === 'string') { //also test for ''\n rewriteCookiePathConfig = { '*': rewriteCookiePathConfig };\n }\n\n // message.rawHeaders is added in: v0.11.6\n // https://nodejs.org/api/http.html#http_message_rawheaders\n if (preserveHeaderKeyCase && proxyRes.rawHeaders != undefined) {\n rawHeaderKeyMap = {};\n for (var i = 0; i < proxyRes.rawHeaders.length; i += 2) {\n var key = proxyRes.rawHeaders[i];\n rawHeaderKeyMap[key.toLowerCase()] = key;\n }\n }\n\n Object.keys(proxyRes.headers).forEach(function(key) {\n var header = proxyRes.headers[key];\n if (preserveHeaderKeyCase && rawHeaderKeyMap) {\n key = rawHeaderKeyMap[key] || key;\n }\n setHeader(key, header);\n });\n },\n\n /**\n * Set the statusCode from the proxyResponse\n *\n * @param {ClientRequest} Req Request object\n * @param {IncomingMessage} Res Response object\n * @param {proxyResponse} Res Response object from the proxy request\n *\n * @api private\n */\n writeStatusCode: function writeStatusCode(req, res, proxyRes) {\n // From Node.js docs: response.writeHead(statusCode[, statusMessage][, headers])\n if(proxyRes.statusMessage) {\n res.statusCode = proxyRes.statusCode;\n res.statusMessage = proxyRes.statusMessage;\n } else {\n res.statusCode = proxyRes.statusCode;\n }\n }\n\n};\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!(typeof data === \"string\" || typeof data === \"object\" && (\"length\" in data))) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (typeof encoding === \"function\") {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (typeof data === \"function\") {\n callback = data;\n data = encoding = null;\n }\n else if (typeof encoding === \"function\") {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Prevent a timeout from triggering\n function clearTimer() {\n clearTimeout(this._timeout);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!this.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Start the timer when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n this.on(\"socket\", destroyOnTimeout);\n this.once(\"response\", clearTimer);\n this.once(\"error\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.substr(0, protocol.length - 1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n this._currentUrl = url.format(this._options);\n\n // Set up event handlers\n request._redirectable = this;\n for (var e = 0; e < events.length; e++) {\n request.on(events[e], eventHandlers[events[e]]);\n }\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end.\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n var location = response.headers.location;\n if (location && this._options.followRedirects !== false &&\n statusCode >= 300 && statusCode < 400) {\n // Abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.23: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var previousHostName = removeMatchingHeaders(/^host$/i, this._options.headers) ||\n url.parse(this._currentUrl).hostname;\n\n // Create the redirected request\n var redirectUrl = url.resolve(this._currentUrl, location);\n debug(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url.parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop the Authorization header if redirecting to another host\n if (redirectUrlParts.hostname !== previousHostName) {\n removeMatchingHeaders(/^authorization$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (typeof this._options.beforeRedirect === \"function\") {\n var responseDetails = { headers: response.headers };\n try {\n this._options.beforeRedirect.call(null, this._options, responseDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n var error = new RedirectionError(\"Redirected request failed: \" + cause.message);\n error.cause = cause;\n this.emit(\"error\", error);\n }\n }\n else {\n // The response is not a redirect; return it as-is\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (typeof input === \"string\") {\n var urlStr = input;\n try {\n input = urlToOptions(new URL(urlStr));\n }\n catch (err) {\n /* istanbul ignore next */\n input = url.parse(urlStr);\n }\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return lastValue;\n}\n\nfunction createErrorType(code, defaultMessage) {\n function CustomError(message) {\n Error.captureStackTrace(this, this.constructor);\n this.message = message || defaultMessage;\n }\n CustomError.prototype = new Error();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n CustomError.prototype.code = code;\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var e = 0; e < events.length; e++) {\n request.removeListener(events[e], eventHandlers[events[e]]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","var httpNative = require('http'),\n httpsNative = require('https'),\n web_o = require('./web-outgoing'),\n common = require('../common'),\n followRedirects = require('follow-redirects');\n\nweb_o = Object.keys(web_o).map(function(pass) {\n return web_o[pass];\n});\n\nvar nativeAgents = { http: httpNative, https: httpsNative };\n\n/*!\n * Array of passes.\n *\n * A `pass` is just a function that is executed on `req, res, options`\n * so that you can easily add new checks while still keeping the base\n * flexible.\n */\n\n\nmodule.exports = {\n\n /**\n * Sets `content-length` to '0' if request is of DELETE type.\n *\n * @param {ClientRequest} Req Request object\n * @param {IncomingMessage} Res Response object\n * @param {Object} Options Config object passed to the proxy\n *\n * @api private\n */\n\n deleteLength: function deleteLength(req, res, options) {\n if((req.method === 'DELETE' || req.method === 'OPTIONS')\n && !req.headers['content-length']) {\n req.headers['content-length'] = '0';\n delete req.headers['transfer-encoding'];\n }\n },\n\n /**\n * Sets timeout in request socket if it was specified in options.\n *\n * @param {ClientRequest} Req Request object\n * @param {IncomingMessage} Res Response object\n * @param {Object} Options Config object passed to the proxy\n *\n * @api private\n */\n\n timeout: function timeout(req, res, options) {\n if(options.timeout) {\n req.socket.setTimeout(options.timeout);\n }\n },\n\n /**\n * Sets `x-forwarded-*` headers if specified in config.\n *\n * @param {ClientRequest} Req Request object\n * @param {IncomingMessage} Res Response object\n * @param {Object} Options Config object passed to the proxy\n *\n * @api private\n */\n\n XHeaders: function XHeaders(req, res, options) {\n if(!options.xfwd) return;\n\n var encrypted = req.isSpdy || common.hasEncryptedConnection(req);\n var values = {\n for : req.connection.remoteAddress || req.socket.remoteAddress,\n port : common.getPort(req),\n proto: encrypted ? 'https' : 'http'\n };\n\n ['for', 'port', 'proto'].forEach(function(header) {\n req.headers['x-forwarded-' + header] =\n (req.headers['x-forwarded-' + header] || '') +\n (req.headers['x-forwarded-' + header] ? ',' : '') +\n values[header];\n });\n\n req.headers['x-forwarded-host'] = req.headers['x-forwarded-host'] || req.headers['host'] || '';\n },\n\n /**\n * Does the actual proxying. If `forward` is enabled fires up\n * a ForwardStream, same happens for ProxyStream. The request\n * just dies otherwise.\n *\n * @param {ClientRequest} Req Request object\n * @param {IncomingMessage} Res Response object\n * @param {Object} Options Config object passed to the proxy\n *\n * @api private\n */\n\n stream: function stream(req, res, options, _, server, clb) {\n\n // And we begin!\n server.emit('start', req, res, options.target || options.forward);\n\n var agents = options.followRedirects ? followRedirects : nativeAgents;\n var http = agents.http;\n var https = agents.https;\n\n if(options.forward) {\n // If forward enable, so just pipe the request\n var forwardReq = (options.forward.protocol === 'https:' ? https : http).request(\n common.setupOutgoing(options.ssl || {}, options, req, 'forward')\n );\n\n // error handler (e.g. ECONNRESET, ECONNREFUSED)\n // Handle errors on incoming request as well as it makes sense to\n var forwardError = createErrorHandler(forwardReq, options.forward);\n req.on('error', forwardError);\n forwardReq.on('error', forwardError);\n\n (options.buffer || req).pipe(forwardReq);\n if(!options.target) { return res.end(); }\n }\n\n // Request initalization\n var proxyReq = (options.target.protocol === 'https:' ? https : http).request(\n common.setupOutgoing(options.ssl || {}, options, req)\n );\n\n // Enable developers to modify the proxyReq before headers are sent\n proxyReq.on('socket', function(socket) {\n if(server && !proxyReq.getHeader('expect')) {\n server.emit('proxyReq', proxyReq, req, res, options);\n }\n });\n\n // allow outgoing socket to timeout so that we could\n // show an error page at the initial request\n if(options.proxyTimeout) {\n proxyReq.setTimeout(options.proxyTimeout, function() {\n proxyReq.abort();\n });\n }\n\n // Ensure we abort proxy if request is aborted\n req.on('aborted', function () {\n proxyReq.abort();\n });\n\n // handle errors in proxy and incoming request, just like for forward proxy\n var proxyError = createErrorHandler(proxyReq, options.target);\n req.on('error', proxyError);\n proxyReq.on('error', proxyError);\n\n function createErrorHandler(proxyReq, url) {\n return function proxyError(err) {\n if (req.socket.destroyed && err.code === 'ECONNRESET') {\n server.emit('econnreset', err, req, res, url);\n return proxyReq.abort();\n }\n\n if (clb) {\n clb(err, req, res, url);\n } else {\n server.emit('error', err, req, res, url);\n }\n }\n }\n\n (options.buffer || req).pipe(proxyReq);\n\n proxyReq.on('response', function(proxyRes) {\n if(server) { server.emit('proxyRes', proxyRes, req, res); }\n\n if(!res.headersSent && !options.selfHandleResponse) {\n for(var i=0; i < web_o.length; i++) {\n if(web_o[i](req, res, proxyRes, options)) { break; }\n }\n }\n\n if (!res.finished) {\n // Allow us to listen when the proxy has completed\n proxyRes.on('end', function () {\n if (server) server.emit('end', req, res, proxyRes);\n });\n // We pipe to the response unless its expected to be handled by the user\n if (!options.selfHandleResponse) proxyRes.pipe(res);\n } else {\n if (server) server.emit('end', req, res, proxyRes);\n }\n });\n }\n\n};\n","var http = require('http'),\n https = require('https'),\n common = require('../common');\n\n/*!\n * Array of passes.\n *\n * A `pass` is just a function that is executed on `req, socket, options`\n * so that you can easily add new checks while still keeping the base\n * flexible.\n */\n\n/*\n * Websockets Passes\n *\n */\n\n\nmodule.exports = {\n /**\n * WebSocket requests must have the `GET` method and\n * the `upgrade:websocket` header\n *\n * @param {ClientRequest} Req Request object\n * @param {Socket} Websocket\n *\n * @api private\n */\n\n checkMethodAndHeader : function checkMethodAndHeader(req, socket) {\n if (req.method !== 'GET' || !req.headers.upgrade) {\n socket.destroy();\n return true;\n }\n\n if (req.headers.upgrade.toLowerCase() !== 'websocket') {\n socket.destroy();\n return true;\n }\n },\n\n /**\n * Sets `x-forwarded-*` headers if specified in config.\n *\n * @param {ClientRequest} Req Request object\n * @param {Socket} Websocket\n * @param {Object} Options Config object passed to the proxy\n *\n * @api private\n */\n\n XHeaders : function XHeaders(req, socket, options) {\n if(!options.xfwd) return;\n\n var values = {\n for : req.connection.remoteAddress || req.socket.remoteAddress,\n port : common.getPort(req),\n proto: common.hasEncryptedConnection(req) ? 'wss' : 'ws'\n };\n\n ['for', 'port', 'proto'].forEach(function(header) {\n req.headers['x-forwarded-' + header] =\n (req.headers['x-forwarded-' + header] || '') +\n (req.headers['x-forwarded-' + header] ? ',' : '') +\n values[header];\n });\n },\n\n /**\n * Does the actual proxying. Make the request and upgrade it\n * send the Switching Protocols request and pipe the sockets.\n *\n * @param {ClientRequest} Req Request object\n * @param {Socket} Websocket\n * @param {Object} Options Config object passed to the proxy\n *\n * @api private\n */\n stream : function stream(req, socket, options, head, server, clb) {\n\n var createHttpHeader = function(line, headers) {\n return Object.keys(headers).reduce(function (head, key) {\n var value = headers[key];\n\n if (!Array.isArray(value)) {\n head.push(key + ': ' + value);\n return head;\n }\n\n for (var i = 0; i < value.length; i++) {\n head.push(key + ': ' + value[i]);\n }\n return head;\n }, [line])\n .join('\\r\\n') + '\\r\\n\\r\\n';\n }\n\n common.setupSocket(socket);\n\n if (head && head.length) socket.unshift(head);\n\n\n var proxyReq = (common.isSSL.test(options.target.protocol) ? https : http).request(\n common.setupOutgoing(options.ssl || {}, options, req)\n );\n\n // Enable developers to modify the proxyReq before headers are sent\n if (server) { server.emit('proxyReqWs', proxyReq, req, socket, options, head); }\n\n // Error Handler\n proxyReq.on('error', onOutgoingError);\n proxyReq.on('response', function (res) {\n // if upgrade event isn't going to happen, close the socket\n if (!res.upgrade) {\n socket.write(createHttpHeader('HTTP/' + res.httpVersion + ' ' + res.statusCode + ' ' + res.statusMessage, res.headers));\n res.pipe(socket);\n }\n });\n\n proxyReq.on('upgrade', function(proxyRes, proxySocket, proxyHead) {\n proxySocket.on('error', onOutgoingError);\n\n // Allow us to listen when the websocket has completed\n proxySocket.on('end', function () {\n server.emit('close', proxyRes, proxySocket, proxyHead);\n });\n\n // The pipe below will end proxySocket if socket closes cleanly, but not\n // if it errors (eg, vanishes from the net and starts returning\n // EHOSTUNREACH). We need to do that explicitly.\n socket.on('error', function () {\n proxySocket.end();\n });\n\n common.setupSocket(proxySocket);\n\n if (proxyHead && proxyHead.length) proxySocket.unshift(proxyHead);\n\n //\n // Remark: Handle writing the headers to the socket when switching protocols\n // Also handles when a header is an array\n //\n socket.write(createHttpHeader('HTTP/1.1 101 Switching Protocols', proxyRes.headers));\n\n proxySocket.pipe(socket).pipe(proxySocket);\n\n server.emit('open', proxySocket);\n server.emit('proxySocket', proxySocket); //DEPRECATED.\n });\n\n return proxyReq.end(); // XXX: CHECK IF THIS IS THIS CORRECT\n\n function onOutgoingError(err) {\n if (clb) {\n clb(err, req, socket);\n } else {\n server.emit('error', err, req, socket);\n }\n socket.end();\n }\n }\n};\n","var httpProxy = module.exports,\n extend = require('util')._extend,\n parse_url = require('url').parse,\n EE3 = require('eventemitter3'),\n http = require('http'),\n https = require('https'),\n web = require('./passes/web-incoming'),\n ws = require('./passes/ws-incoming');\n\nhttpProxy.Server = ProxyServer;\n\n/**\n * Returns a function that creates the loader for\n * either `ws` or `web`'s passes.\n *\n * Examples:\n *\n * httpProxy.createRightProxy('ws')\n * // => [Function]\n *\n * @param {String} Type Either 'ws' or 'web'\n * \n * @return {Function} Loader Function that when called returns an iterator for the right passes\n *\n * @api private\n */\n\nfunction createRightProxy(type) {\n\n return function(options) {\n return function(req, res /*, [head], [opts] */) {\n var passes = (type === 'ws') ? this.wsPasses : this.webPasses,\n args = [].slice.call(arguments),\n cntr = args.length - 1,\n head, cbl;\n\n /* optional args parse begin */\n if(typeof args[cntr] === 'function') {\n cbl = args[cntr];\n\n cntr--;\n }\n\n var requestOptions = options;\n if(\n !(args[cntr] instanceof Buffer) &&\n args[cntr] !== res\n ) {\n //Copy global options\n requestOptions = extend({}, options);\n //Overwrite with request options\n extend(requestOptions, args[cntr]);\n\n cntr--;\n }\n\n if(args[cntr] instanceof Buffer) {\n head = args[cntr];\n }\n\n /* optional args parse end */\n\n ['target', 'forward'].forEach(function(e) {\n if (typeof requestOptions[e] === 'string')\n requestOptions[e] = parse_url(requestOptions[e]);\n });\n\n if (!requestOptions.target && !requestOptions.forward) {\n return this.emit('error', new Error('Must provide a proper URL as target'));\n }\n\n for(var i=0; i < passes.length; i++) {\n /**\n * Call of passes functions\n * pass(req, res, options, head)\n *\n * In WebSockets case the `res` variable\n * refer to the connection socket\n * pass(req, socket, options, head)\n */\n if(passes[i](req, res, requestOptions, head, this, cbl)) { // passes can return a truthy value to halt the loop\n break;\n }\n }\n };\n };\n}\nhttpProxy.createRightProxy = createRightProxy;\n\nfunction ProxyServer(options) {\n EE3.call(this);\n\n options = options || {};\n options.prependPath = options.prependPath === false ? false : true;\n\n this.web = this.proxyRequest = createRightProxy('web')(options);\n this.ws = this.proxyWebsocketRequest = createRightProxy('ws')(options);\n this.options = options;\n\n this.webPasses = Object.keys(web).map(function(pass) {\n return web[pass];\n });\n\n this.wsPasses = Object.keys(ws).map(function(pass) {\n return ws[pass];\n });\n\n this.on('error', this.onError, this);\n\n}\n\nrequire('util').inherits(ProxyServer, EE3);\n\nProxyServer.prototype.onError = function (err) {\n //\n // Remark: Replicate node core behavior using EE3\n // so we force people to handle their own errors\n //\n if(this.listeners('error').length === 1) {\n throw err;\n }\n};\n\nProxyServer.prototype.listen = function(port, hostname) {\n var self = this,\n closure = function(req, res) { self.web(req, res); };\n\n this._server = this.options.ssl ?\n https.createServer(this.options.ssl, closure) :\n http.createServer(closure);\n\n if(this.options.ws) {\n this._server.on('upgrade', function(req, socket, head) { self.ws(req, socket, head); });\n }\n\n this._server.listen(port, hostname);\n\n return this;\n};\n\nProxyServer.prototype.close = function(callback) {\n var self = this;\n if (this._server) {\n this._server.close(done);\n }\n\n // Wrap callback to nullify server after all open connections are closed.\n function done() {\n self._server = null;\n if (callback) {\n callback.apply(null, arguments);\n }\n };\n};\n\nProxyServer.prototype.before = function(type, passName, callback) {\n if (type !== 'ws' && type !== 'web') {\n throw new Error('type must be `web` or `ws`');\n }\n var passes = (type === 'ws') ? this.wsPasses : this.webPasses,\n i = false;\n\n passes.forEach(function(v, idx) {\n if(v.name === passName) i = idx;\n })\n\n if(i === false) throw new Error('No such pass');\n\n passes.splice(i, 0, callback);\n};\nProxyServer.prototype.after = function(type, passName, callback) {\n if (type !== 'ws' && type !== 'web') {\n throw new Error('type must be `web` or `ws`');\n }\n var passes = (type === 'ws') ? this.wsPasses : this.webPasses,\n i = false;\n\n passes.forEach(function(v, idx) {\n if(v.name === passName) i = idx;\n })\n\n if(i === false) throw new Error('No such pass');\n\n passes.splice(i++, 0, callback);\n};\n"," // Use explicit /index.js to help browserify negociation in require '/lib/http-proxy' (!)\nvar ProxyServer = require('./http-proxy/index.js').Server;\n\n\n/**\n * Creates the proxy server.\n *\n * Examples:\n *\n * httpProxy.createProxyServer({ .. }, 8000)\n * // => '{ web: [Function], ws: [Function] ... }'\n *\n * @param {Object} Options Config object passed to the proxy\n *\n * @return {Object} Proxy Proxy object with handlers for `ws` and `web` requests\n *\n * @api public\n */\n\n\nfunction createProxyServer(options) {\n /*\n * `options` is needed and it must have the following layout:\n *\n * {\n * target : <url string to be parsed with the url module>\n * forward: <url string to be parsed with the url module>\n * agent : <object to be passed to http(s).request>\n * ssl : <object to be passed to https.createServer()>\n * ws : <true/false, if you want to proxy websockets>\n * xfwd : <true/false, adds x-forward headers>\n * secure : <true/false, verify SSL certificate>\n * toProxy: <true/false, explicitly specify if we are proxying to another proxy>\n * prependPath: <true/false, Default: true - specify whether you want to prepend the target's path to the proxy path>\n * ignorePath: <true/false, Default: false - specify whether you want to ignore the proxy path of the incoming request>\n * localAddress : <Local interface string to bind for outgoing connections>\n * changeOrigin: <true/false, Default: false - changes the origin of the host header to the target URL>\n * preserveHeaderKeyCase: <true/false, Default: false - specify whether you want to keep letter case of response header key >\n * auth : Basic authentication i.e. 'user:password' to compute an Authorization header.\n * hostRewrite: rewrites the location hostname on (201/301/302/307/308) redirects, Default: null.\n * autoRewrite: rewrites the location host/port on (201/301/302/307/308) redirects based on requested host/port. Default: false.\n * protocolRewrite: rewrites the location protocol on (201/301/302/307/308) redirects to 'http' or 'https'. Default: null.\n * }\n *\n * NOTE: `options.ws` and `options.ssl` are optional.\n * `options.target and `options.forward` cannot be\n * both missing\n * }\n */\n\n return new ProxyServer(options);\n}\n\n\nProxyServer.createProxyServer = createProxyServer;\nProxyServer.createServer = createProxyServer;\nProxyServer.createProxy = createProxyServer;\n\n\n\n\n/**\n * Export the proxy \"Server\" as the main export.\n */\nmodule.exports = ProxyServer;\n\n","/*!\n * Caron dimonio, con occhi di bragia\n * loro accennando, tutte le raccoglie;\n * batte col remo qualunque sadagia \n *\n * Charon the demon, with the eyes of glede,\n * Beckoning to them, collects them all together,\n * Beats with his oar whoever lags behind\n * \n * Dante - The Divine Comedy (Canto III)\n */\n\nmodule.exports = require('./lib/http-proxy');","import * as http from 'http'\nimport { createDebugger, isObject } from '../../utils'\nimport httpProxy from 'http-proxy'\nimport { HMR_HEADER } from '../ws'\nimport { Connect } from 'types/connect'\nimport { HttpProxy } from 'types/http-proxy'\nimport chalk from 'chalk'\nimport { ResolvedConfig } from '../..'\n\nconst debug = createDebugger('vite:proxy')\n\nexport interface ProxyOptions extends HttpProxy.ServerOptions {\n /**\n * rewrite path\n */\n rewrite?: (path: string) => string\n /**\n * configure the proxy server (e.g. listen to events)\n */\n configure?: (proxy: HttpProxy.Server, options: ProxyOptions) => void\n /**\n * webpack-dev-server style bypass function\n */\n bypass?: (\n req: http.IncomingMessage,\n res: http.ServerResponse,\n options: ProxyOptions\n ) => void | null | undefined | false | string\n}\n\nexport function proxyMiddleware(\n httpServer: http.Server | null,\n config: ResolvedConfig\n): Connect.NextHandleFunction {\n const options = config.server.proxy!\n\n // lazy require only when proxy is used\n const proxies: Record<string, [HttpProxy.Server, ProxyOptions]> = {}\n\n Object.keys(options).forEach((context) => {\n let opts = options[context]\n if (typeof opts === 'string') {\n opts = { target: opts, changeOrigin: true } as ProxyOptions\n }\n const proxy = httpProxy.createProxyServer(opts) as HttpProxy.Server\n\n proxy.on('error', (err) => {\n config.logger.error(`${chalk.red(`http proxy error:`)}\\n${err.stack}`, {\n timestamp: true,\n error: err\n })\n })\n\n if (opts.configure) {\n opts.configure(proxy, opts)\n }\n // clone before saving because http-proxy mutates the options\n proxies[context] = [proxy, { ...opts }]\n })\n\n if (httpServer) {\n httpServer.on('upgrade', (req, socket, head) => {\n const url = req.url!\n for (const context in proxies) {\n if (url.startsWith(context)) {\n const [proxy, opts] = proxies[context]\n if (\n (opts.ws || opts.target?.toString().startsWith('ws:')) &&\n req.headers['sec-websocket-protocol'] !== HMR_HEADER\n ) {\n if (opts.rewrite) {\n req.url = opts.rewrite(url)\n }\n proxy.ws(req, socket, head)\n }\n }\n }\n })\n }\n\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return function viteProxyMiddleware(req, res, next) {\n const url = req.url!\n for (const context in proxies) {\n if (\n (context.startsWith('^') && new RegExp(context).test(url)) ||\n url.startsWith(context)\n ) {\n const [proxy, opts] = proxies[context]\n const options: HttpProxy.ServerOptions = {}\n\n if (opts.bypass) {\n const bypassResult = opts.bypass(req, res, opts)\n if (typeof bypassResult === 'string') {\n req.url = bypassResult\n debug(`bypass: ${req.url} -> ${bypassResult}`)\n return next()\n } else if (isObject(bypassResult)) {\n Object.assign(options, bypassResult)\n debug(`bypass: ${req.url} use modified options: %O`, options)\n return next()\n } else if (bypassResult === false) {\n debug(`bypass: ${req.url} -> 404`)\n return res.end(404)\n }\n }\n\n debug(`${req.url} -> ${opts.target || opts.forward}`)\n if (opts.rewrite) {\n req.url = opts.rewrite(req.url!)\n }\n proxy.web(req, res, options)\n return\n }\n }\n next()\n }\n}\n","/*!\n * etag\n * Copyright(c) 2014-2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = etag\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar crypto = require('crypto')\nvar Stats = require('fs').Stats\n\n/**\n * Module variables.\n * @private\n */\n\nvar toString = Object.prototype.toString\n\n/**\n * Generate an entity tag.\n *\n * @param {Buffer|string} entity\n * @return {string}\n * @private\n */\n\nfunction entitytag (entity) {\n if (entity.length === 0) {\n // fast-path empty\n return '\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"'\n }\n\n // compute hash of entity\n var hash = crypto\n .createHash('sha1')\n .update(entity, 'utf8')\n .digest('base64')\n .substring(0, 27)\n\n // compute length of entity\n var len = typeof entity === 'string'\n ? Buffer.byteLength(entity, 'utf8')\n : entity.length\n\n return '\"' + len.toString(16) + '-' + hash + '\"'\n}\n\n/**\n * Create a simple ETag.\n *\n * @param {string|Buffer|Stats} entity\n * @param {object} [options]\n * @param {boolean} [options.weak]\n * @return {String}\n * @public\n */\n\nfunction etag (entity, options) {\n if (entity == null) {\n throw new TypeError('argument entity is required')\n }\n\n // support fs.Stats object\n var isStats = isstats(entity)\n var weak = options && typeof options.weak === 'boolean'\n ? options.weak\n : isStats\n\n // validate argument\n if (!isStats && typeof entity !== 'string' && !Buffer.isBuffer(entity)) {\n throw new TypeError('argument entity must be string, Buffer, or fs.Stats')\n }\n\n // generate entity tag\n var tag = isStats\n ? stattag(entity)\n : entitytag(entity)\n\n return weak\n ? 'W/' + tag\n : tag\n}\n\n/**\n * Determine if object is a Stats object.\n *\n * @param {object} obj\n * @return {boolean}\n * @api private\n */\n\nfunction isstats (obj) {\n // genuine fs.Stats\n if (typeof Stats === 'function' && obj instanceof Stats) {\n return true\n }\n\n // quack quack\n return obj && typeof obj === 'object' &&\n 'ctime' in obj && toString.call(obj.ctime) === '[object Date]' &&\n 'mtime' in obj && toString.call(obj.mtime) === '[object Date]' &&\n 'ino' in obj && typeof obj.ino === 'number' &&\n 'size' in obj && typeof obj.size === 'number'\n}\n\n/**\n * Generate a tag for a stat.\n *\n * @param {object} stat\n * @return {string}\n * @private\n */\n\nfunction stattag (stat) {\n var mtime = stat.mtime.getTime().toString(16)\n var size = stat.size.toString(16)\n\n return '\"' + size + '-' + mtime + '\"'\n}\n","import { IncomingMessage, ServerResponse } from 'http'\nimport getEtag from 'etag'\nimport { SourceMap } from 'rollup'\n\nconst isDebug = process.env.DEBUG\n\nconst alias: Record<string, string | undefined> = {\n js: 'application/javascript',\n css: 'text/css',\n html: 'text/html',\n json: 'application/json'\n}\n\nexport function send(\n req: IncomingMessage,\n res: ServerResponse,\n content: string | Buffer,\n type: string,\n etag = getEtag(content, { weak: true }),\n cacheControl = 'no-cache',\n map?: SourceMap | null\n): void {\n if (req.headers['if-none-match'] === etag) {\n res.statusCode = 304\n return res.end()\n }\n\n res.setHeader('Content-Type', alias[type] || type)\n res.setHeader('Cache-Control', cacheControl)\n res.setHeader('Etag', etag)\n\n // inject source map reference\n if (map && map.mappings) {\n if (isDebug) {\n content += `\\n/*${JSON.stringify(map, null, 2).replace(\n /\\*\\//g,\n '*\\\\/'\n )}*/\\n`\n }\n content += genSourceMapString(map)\n }\n\n res.statusCode = 200\n return res.end(content)\n}\n\nfunction genSourceMapString(map: SourceMap | string | undefined) {\n if (typeof map !== 'string') {\n map = JSON.stringify(map)\n }\n return `\\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(\n map\n ).toString('base64')}`\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\nvar fs = require('fs');\nvar path = require('path');\nvar SafeBuffer = require('safe-buffer');\n\nObject.defineProperty(exports, 'commentRegex', {\n get: function getCommentRegex () {\n return /^\\s*\\/(?:\\/|\\*)[@#]\\s+sourceMappingURL=data:(?:application|text)\\/json;(?:charset[:=]\\S+?;)?base64,(?:.*)$/mg;\n }\n});\n\nObject.defineProperty(exports, 'mapFileCommentRegex', {\n get: function getMapFileCommentRegex () {\n // Matches sourceMappingURL in either // or /* comment styles.\n return /(?:\\/\\/[@#][ \\t]+sourceMappingURL=([^\\s'\"`]+?)[ \\t]*$)|(?:\\/\\*[@#][ \\t]+sourceMappingURL=([^\\*]+?)[ \\t]*(?:\\*\\/){1}[ \\t]*$)/mg;\n }\n});\n\n\nfunction decodeBase64(base64) {\n return (SafeBuffer.Buffer.from(base64, 'base64') || \"\").toString();\n}\n\nfunction stripComment(sm) {\n return sm.split(',').pop();\n}\n\nfunction readFromFileMap(sm, dir) {\n // NOTE: this will only work on the server since it attempts to read the map file\n\n var r = exports.mapFileCommentRegex.exec(sm);\n\n // for some odd reason //# .. captures in 1 and /* .. */ in 2\n var filename = r[1] || r[2];\n var filepath = path.resolve(dir, filename);\n\n try {\n return fs.readFileSync(filepath, 'utf8');\n } catch (e) {\n throw new Error('An error occurred while trying to read the map file at ' + filepath + '\\n' + e);\n }\n}\n\nfunction Converter (sm, opts) {\n opts = opts || {};\n\n if (opts.isFileComment) sm = readFromFileMap(sm, opts.commentFileDir);\n if (opts.hasComment) sm = stripComment(sm);\n if (opts.isEncoded) sm = decodeBase64(sm);\n if (opts.isJSON || opts.isEncoded) sm = JSON.parse(sm);\n\n this.sourcemap = sm;\n}\n\nConverter.prototype.toJSON = function (space) {\n return JSON.stringify(this.sourcemap, null, space);\n};\n\nConverter.prototype.toBase64 = function () {\n var json = this.toJSON();\n return (SafeBuffer.Buffer.from(json, 'utf8') || \"\").toString('base64');\n};\n\nConverter.prototype.toComment = function (options) {\n var base64 = this.toBase64();\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return options && options.multiline ? '/*# ' + data + ' */' : '//# ' + data;\n};\n\n// returns copy instead of original\nConverter.prototype.toObject = function () {\n return JSON.parse(this.toJSON());\n};\n\nConverter.prototype.addProperty = function (key, value) {\n if (this.sourcemap.hasOwnProperty(key)) throw new Error('property \"' + key + '\" already exists on the sourcemap, use set property instead');\n return this.setProperty(key, value);\n};\n\nConverter.prototype.setProperty = function (key, value) {\n this.sourcemap[key] = value;\n return this;\n};\n\nConverter.prototype.getProperty = function (key) {\n return this.sourcemap[key];\n};\n\nexports.fromObject = function (obj) {\n return new Converter(obj);\n};\n\nexports.fromJSON = function (json) {\n return new Converter(json, { isJSON: true });\n};\n\nexports.fromBase64 = function (base64) {\n return new Converter(base64, { isEncoded: true });\n};\n\nexports.fromComment = function (comment) {\n comment = comment\n .replace(/^\\/\\*/g, '//')\n .replace(/\\*\\/$/g, '');\n\n return new Converter(comment, { isEncoded: true, hasComment: true });\n};\n\nexports.fromMapFileComment = function (comment, dir) {\n return new Converter(comment, { commentFileDir: dir, isFileComment: true, isJSON: true });\n};\n\n// Finds last sourcemap comment in file or returns null if none was found\nexports.fromSource = function (content) {\n var m = content.match(exports.commentRegex);\n return m ? exports.fromComment(m.pop()) : null;\n};\n\n// Finds last sourcemap comment in file or returns null if none was found\nexports.fromMapFileSource = function (content, dir) {\n var m = content.match(exports.mapFileCommentRegex);\n return m ? exports.fromMapFileComment(m.pop(), dir) : null;\n};\n\nexports.removeComments = function (src) {\n return src.replace(exports.commentRegex, '');\n};\n\nexports.removeMapFileComments = function (src) {\n return src.replace(exports.mapFileCommentRegex, '');\n};\n\nexports.generateMapFileComment = function (file, options) {\n var data = 'sourceMappingURL=' + file;\n return options && options.multiline ? '/*# ' + data + ' */' : '//# ' + data;\n};\n","import { walk } from 'estree-walker';\nimport is_reference from 'is-reference';\n\n// @ts-check\n\n/** @typedef { import('estree').Node} Node */\n/** @typedef { import('estree').VariableDeclaration} VariableDeclaration */\n/** @typedef { import('estree').ClassDeclaration} ClassDeclaration */\n/** @typedef { import('estree').VariableDeclarator} VariableDeclarator */\n/** @typedef { import('estree').Property} Property */\n/** @typedef { import('estree').RestElement} RestElement */\n/** @typedef { import('estree').Identifier} Identifier */\n\n/**\n *\n * @param {Node} expression\n */\nfunction analyze(expression) {\n\t/** @type {WeakMap<Node, Scope>} */\n\tconst map = new WeakMap();\n\n\t/** @type {Map<string, Node>} */\n\tconst globals = new Map();\n\n\tconst scope = new Scope(null, false);\n\n\t/** @type {[Scope, Identifier][]} */\n\tconst references = [];\n\tlet current_scope = scope;\n\n\twalk(expression, {\n\t\t/**\n\t\t *\n\t\t * @param {Node} node\n\t\t * @param {Node} parent\n\t\t */\n\t\tenter(node, parent) {\n\t\t\tswitch (node.type) {\n\t\t\t\tcase 'Identifier':\n\t\t\t\t\tif (is_reference(node, parent)) {\n\t\t\t\t\t\treferences.push([current_scope, node]);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ImportDeclaration':\n\t\t\t\t\tnode.specifiers.forEach((specifier) => {\n\t\t\t\t\t\tcurrent_scope.declarations.set(specifier.local.name, specifier);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'FunctionExpression':\n\t\t\t\tcase 'FunctionDeclaration':\n\t\t\t\tcase 'ArrowFunctionExpression':\n\t\t\t\t\tif (node.type === 'FunctionDeclaration') {\n\t\t\t\t\t\tif (node.id) {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(node.id.name, node);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, false));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, false));\n\n\t\t\t\t\t\tif (node.type === 'FunctionExpression' && node.id) {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(node.id.name, node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.params.forEach(param => {\n\t\t\t\t\t\textract_names(param).forEach(name => {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(name, node);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ForStatement':\n\t\t\t\tcase 'ForInStatement':\n\t\t\t\tcase 'ForOfStatement':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'BlockStatement':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ClassDeclaration':\n\t\t\t\tcase 'VariableDeclaration':\n\t\t\t\t\tcurrent_scope.add_declaration(node);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'CatchClause':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\n\t\t\t\t\tif (node.param) {\n\t\t\t\t\t\textract_names(node.param).forEach(name => {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(name, node.param);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t * @param {Node} node\n\t\t */\n\t\tleave(node) {\n\t\t\tif (map.has(node)) {\n\t\t\t\tcurrent_scope = current_scope.parent;\n\t\t\t}\n\t\t}\n\t});\n\n\tfor (let i = references.length - 1; i >= 0; --i) {\n\t\tconst [scope, reference] = references[i];\n\n\t\tif (!scope.references.has(reference.name)) {\n\t\t\tadd_reference(scope, reference.name);\n\n\t\t\tif (!scope.find_owner(reference.name)) {\n\t\t\t\tglobals.set(reference.name, reference);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { map, scope, globals };\n}\n\n/**\n *\n * @param {Scope} scope\n * @param {string} name\n */\nfunction add_reference(scope, name) {\n\tscope.references.add(name);\n\tif (scope.parent) add_reference(scope.parent, name);\n}\n\nclass Scope {\n\tconstructor(parent, block) {\n\t\t/** @type {Scope | null} */\n\t\tthis.parent = parent;\n\n\t\t/** @type {boolean} */\n\t\tthis.block = block;\n\n\t\t/** @type {Map<string, Node>} */\n\t\tthis.declarations = new Map();\n\n\t\t/** @type {Set<string>} */\n\t\tthis.initialised_declarations = new Set();\n\n\t\t/** @type {Set<string>} */\n\t\tthis.references = new Set();\n\t}\n\n\t/**\n\t *\n\t * @param {VariableDeclaration | ClassDeclaration} node\n\t */\n\tadd_declaration(node) {\n\t\tif (node.type === 'VariableDeclaration') {\n\t\t\tif (node.kind === 'var' && this.block && this.parent) {\n\t\t\t\tthis.parent.add_declaration(node);\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t *\n\t\t\t\t * @param {VariableDeclarator} declarator\n\t\t\t\t */\n\t\t\t\tconst handle_declarator = (declarator) => {\n\t\t\t\t\textract_names(declarator.id).forEach(name => {\n\t\t\t\t\t\tthis.declarations.set(name, node);\n\t\t\t\t\t\tif (declarator.init) this.initialised_declarations.add(name);\n\t\t\t\t\t});\t\t\t\t};\n\n\t\t\t\tnode.declarations.forEach(handle_declarator);\n\t\t\t}\n\t\t} else if (node.id) {\n\t\t\tthis.declarations.set(node.id.name, node);\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @returns {Scope | null}\n\t */\n\tfind_owner(name) {\n\t\tif (this.declarations.has(name)) return this;\n\t\treturn this.parent && this.parent.find_owner(name);\n\t}\n\n\t/**\n\t *\n\t * @param {string} name\n\t * @returns {boolean}\n\t */\n\thas(name) {\n\t\treturn (\n\t\t\tthis.declarations.has(name) || (!!this.parent && this.parent.has(name))\n\t\t);\n\t}\n}\n\n/**\n *\n * @param {Node} param\n * @returns {string[]}\n */\nfunction extract_names(param) {\n\treturn extract_identifiers(param).map(node => node.name);\n}\n\n/**\n *\n * @param {Node} param\n * @param {Identifier[]} nodes\n * @returns {Identifier[]}\n */\nfunction extract_identifiers(param, nodes = []) {\n\tswitch (param.type) {\n\t\tcase 'Identifier':\n\t\t\tnodes.push(param);\n\t\t\tbreak;\n\n\t\tcase 'MemberExpression':\n\t\t\tlet object = param;\n\t\t\twhile (object.type === 'MemberExpression') {\n\t\t\t\tobject = /** @type {any} */ (object.object);\n\t\t\t}\n\t\t\tnodes.push(/** @type {any} */ (object));\n\t\t\tbreak;\n\n\t\tcase 'ObjectPattern':\n\t\t\t/**\n\t\t\t *\n\t\t\t * @param {Property | RestElement} prop\n\t\t\t */\n\t\t\tconst handle_prop = (prop) => {\n\t\t\t\tif (prop.type === 'RestElement') {\n\t\t\t\t\textract_identifiers(prop.argument, nodes);\n\t\t\t\t} else {\n\t\t\t\t\textract_identifiers(prop.value, nodes);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tparam.properties.forEach(handle_prop);\n\t\t\tbreak;\n\n\t\tcase 'ArrayPattern':\n\t\t\t/**\n\t\t\t *\n\t\t\t * @param {Node} element\n\t\t\t */\n\t\t\tconst handle_element = (element) => {\n\t\t\t\tif (element) extract_identifiers(element, nodes);\n\t\t\t};\n\n\t\t\tparam.elements.forEach(handle_element);\n\t\t\tbreak;\n\n\t\tcase 'RestElement':\n\t\t\textract_identifiers(param.argument, nodes);\n\t\t\tbreak;\n\n\t\tcase 'AssignmentPattern':\n\t\t\textract_identifiers(param.left, nodes);\n\t\t\tbreak;\n\t}\n\n\treturn nodes;\n}\n\nexport { analyze, Scope, extract_names, extract_identifiers };\n","import MagicString from 'magic-string'\nimport { SourceMap } from 'rollup'\nimport { TransformResult } from '../server/transformRequest'\nimport { parser } from '../server/pluginContainer'\nimport {\n Identifier,\n Node as _Node,\n Property,\n Function as FunctionNode\n} from 'estree'\nimport { extract_names as extractNames } from 'periscopic'\nimport { walk as eswalk } from 'estree-walker'\nimport { combineSourcemaps } from '../utils'\nimport { RawSourceMap } from '@ampproject/remapping/dist/types/types'\n\ntype Node = _Node & {\n start: number\n end: number\n}\n\nexport const ssrModuleExportsKey = `__vite_ssr_exports__`\nexport const ssrImportKey = `__vite_ssr_import__`\nexport const ssrDynamicImportKey = `__vite_ssr_dynamic_import__`\nexport const ssrExportAllKey = `__vite_ssr_exportAll__`\nexport const ssrImportMetaKey = `__vite_ssr_import_meta__`\n\nexport async function ssrTransform(\n code: string,\n inMap: SourceMap | null,\n url: string\n): Promise<TransformResult | null> {\n const s = new MagicString(code)\n\n const ast = parser.parse(code, {\n sourceType: 'module',\n ecmaVersion: 2021,\n locations: true\n }) as any\n\n let uid = 0\n const deps = new Set<string>()\n const idToImportMap = new Map<string, string>()\n const declaredConst = new Set<string>()\n\n function defineImport(node: Node, source: string) {\n deps.add(source)\n const importId = `__vite_ssr_import_${uid++}__`\n s.appendLeft(\n node.start,\n `const ${importId} = await ${ssrImportKey}(${JSON.stringify(source)});\\n`\n )\n return importId\n }\n\n function defineExport(position: number, name: string, local = name) {\n s.appendRight(\n position,\n `\\nObject.defineProperty(${ssrModuleExportsKey}, \"${name}\", ` +\n `{ enumerable: true, configurable: true, get(){ return ${local} }});`\n )\n }\n\n // 1. check all import statements and record id -> importName map\n for (const node of ast.body as Node[]) {\n // import foo from 'foo' --> foo -> __import_foo__.default\n // import { baz } from 'foo' --> baz -> __import_foo__.baz\n // import * as ok from 'foo' --> ok -> __import_foo__\n if (node.type === 'ImportDeclaration') {\n const importId = defineImport(node, node.source.value as string)\n for (const spec of node.specifiers) {\n if (spec.type === 'ImportSpecifier') {\n idToImportMap.set(\n spec.local.name,\n `${importId}.${spec.imported.name}`\n )\n } else if (spec.type === 'ImportDefaultSpecifier') {\n idToImportMap.set(spec.local.name, `${importId}.default`)\n } else {\n // namespace specifier\n idToImportMap.set(spec.local.name, importId)\n }\n }\n s.remove(node.start, node.end)\n }\n }\n\n // 2. check all export statements and define exports\n for (const node of ast.body as Node[]) {\n // named exports\n if (node.type === 'ExportNamedDeclaration') {\n if (node.declaration) {\n if (\n node.declaration.type === 'FunctionDeclaration' ||\n node.declaration.type === 'ClassDeclaration'\n ) {\n // export function foo() {}\n defineExport(node.end, node.declaration.id!.name)\n } else {\n // export const foo = 1, bar = 2\n for (const declaration of node.declaration.declarations) {\n const names = extractNames(declaration.id as any)\n for (const name of names) {\n defineExport(node.end, name)\n }\n }\n }\n s.remove(node.start, (node.declaration as Node).start)\n } else {\n s.remove(node.start, node.end)\n if (node.source) {\n // export { foo, bar } from './foo'\n const importId = defineImport(node, node.source.value as string)\n for (const spec of node.specifiers) {\n defineExport(\n node.end,\n spec.exported.name,\n `${importId}.${spec.local.name}`\n )\n }\n } else {\n // export { foo, bar }\n for (const spec of node.specifiers) {\n const local = spec.local.name\n const binding = idToImportMap.get(local)\n defineExport(node.end, spec.exported.name, binding || local)\n }\n }\n }\n }\n\n // default export\n if (node.type === 'ExportDefaultDeclaration') {\n if ('id' in node.declaration && node.declaration.id) {\n // named hoistable/class exports\n // export default function foo() {}\n // export default class A {}\n const { name } = node.declaration.id\n s.remove(node.start, node.start + 15 /* 'export default '.length */)\n s.append(\n `\\nObject.defineProperty(${ssrModuleExportsKey}, \"default\", ` +\n `{ enumerable: true, value: ${name} });`\n )\n } else {\n // anonymous default exports\n s.overwrite(\n node.start,\n node.start + 14 /* 'export default'.length */,\n `${ssrModuleExportsKey}.default =`\n )\n }\n }\n\n // export * from './foo'\n if (node.type === 'ExportAllDeclaration') {\n if (node.exported) {\n const importId = defineImport(node, node.source.value as string)\n s.remove(node.start, node.end)\n defineExport(node.end, node.exported.name, `${importId}`)\n } else {\n const importId = defineImport(node, node.source.value as string)\n s.remove(node.start, node.end)\n s.appendLeft(node.end, `${ssrExportAllKey}(${importId});`)\n }\n }\n }\n\n // 3. convert references to import bindings & import.meta references\n walk(ast, {\n onIdentifier(id, parent, parentStack) {\n const binding = idToImportMap.get(id.name)\n if (!binding) {\n return\n }\n if (isStaticProperty(parent) && parent.shorthand) {\n // let binding used in a property shorthand\n // { foo } -> { foo: __import_x__.foo }\n // skip for destructuring patterns\n if (\n !(parent as any).inPattern ||\n isInDestructuringAssignment(parent, parentStack)\n ) {\n s.appendLeft(id.end, `: ${binding}`)\n }\n } else if (\n parent.type === 'ClassDeclaration' &&\n id === parent.superClass\n ) {\n if (!declaredConst.has(id.name)) {\n declaredConst.add(id.name)\n // locate the top-most node containing the class declaration\n const topNode = parentStack[1]\n s.prependRight(topNode.start, `const ${id.name} = ${binding};\\n`)\n }\n } else {\n s.overwrite(id.start, id.end, binding)\n }\n },\n onImportMeta(node) {\n s.overwrite(node.start, node.end, ssrImportMetaKey)\n },\n onDynamicImport(node) {\n s.overwrite(node.start, node.start + 6, ssrDynamicImportKey)\n }\n })\n\n let map = s.generateMap({ hires: true })\n if (inMap && inMap.mappings && inMap.sources.length > 0) {\n map = combineSourcemaps(url, [\n {\n ...map,\n sources: inMap.sources,\n sourcesContent: inMap.sourcesContent\n } as RawSourceMap,\n inMap as RawSourceMap\n ]) as SourceMap\n } else {\n map.sources = [url]\n map.sourcesContent = [code]\n }\n\n return {\n code: s.toString(),\n map,\n deps: [...deps]\n }\n}\n\ninterface Visitors {\n onIdentifier: (\n node: Identifier & {\n start: number\n end: number\n },\n parent: Node,\n parentStack: Node[]\n ) => void\n onImportMeta: (node: Node) => void\n onDynamicImport: (node: Node) => void\n}\n\n/**\n * Same logic from \\@vue/compiler-core & \\@vue/compiler-sfc\n * Except this is using acorn AST\n */\nfunction walk(\n root: Node,\n { onIdentifier, onImportMeta, onDynamicImport }: Visitors\n) {\n const parentStack: Node[] = []\n const scope: Record<string, number> = Object.create(null)\n const scopeMap = new WeakMap<_Node, Set<string>>()\n\n const setScope = (node: FunctionNode, name: string) => {\n let scopeIds = scopeMap.get(node)\n if (scopeIds && scopeIds.has(name)) {\n return\n }\n if (name in scope) {\n scope[name]++\n } else {\n scope[name] = 1\n }\n if (!scopeIds) {\n scopeIds = new Set()\n scopeMap.set(node, scopeIds)\n }\n scopeIds.add(name)\n }\n\n ;(eswalk as any)(root, {\n enter(node: Node, parent: Node | null) {\n if (node.type === 'ImportDeclaration') {\n return this.skip()\n }\n\n parent && parentStack.push(parent)\n\n if (node.type === 'MetaProperty' && node.meta.name === 'import') {\n onImportMeta(node)\n } else if (node.type === 'ImportExpression') {\n onDynamicImport(node)\n }\n\n if (node.type === 'Identifier') {\n if (!scope[node.name] && isRefIdentifier(node, parent!, parentStack)) {\n onIdentifier(node, parent!, parentStack)\n }\n } else if (isFunction(node)) {\n // walk function expressions and add its arguments to known identifiers\n // so that we don't prefix them\n node.params.forEach((p) =>\n (eswalk as any)(p, {\n enter(child: Node, parent: Node) {\n if (\n child.type === 'Identifier' &&\n // do not record as scope variable if is a destructuring key\n !isStaticPropertyKey(child, parent) &&\n // do not record if this is a default value\n // assignment of a destructuring variable\n !(\n parent &&\n parent.type === 'AssignmentPattern' &&\n parent.right === child\n )\n ) {\n setScope(node, child.name)\n }\n }\n })\n )\n } else if (node.type === 'Property' && parent!.type === 'ObjectPattern') {\n // mark property in destructuring pattern\n ;(node as any).inPattern = true\n } else if (node.type === 'VariableDeclarator') {\n const parentFunction = findParentFunction(parentStack)\n if (parentFunction) {\n if (node.id.type === 'ObjectPattern') {\n node.id.properties.forEach((property) => {\n if (property.type === 'RestElement') {\n setScope(parentFunction, (property.argument as Identifier).name)\n } else {\n setScope(parentFunction, (property.value as Identifier).name)\n }\n })\n } else {\n setScope(parentFunction, (node.id as Identifier).name)\n }\n }\n }\n },\n\n leave(node: Node, parent: Node | null) {\n parent && parentStack.pop()\n const scopeIds = scopeMap.get(node)\n if (scopeIds) {\n scopeIds.forEach((id: string) => {\n scope[id]--\n if (scope[id] === 0) {\n delete scope[id]\n }\n })\n }\n }\n })\n}\n\nfunction isRefIdentifier(id: Identifier, parent: _Node, parentStack: _Node[]) {\n // declaration id\n if (\n parent.type === 'CatchClause' ||\n ((parent.type === 'VariableDeclarator' ||\n parent.type === 'ClassDeclaration') &&\n parent.id === id)\n ) {\n return false\n }\n\n if (isFunction(parent)) {\n // function declaration/expression id\n if ((parent as any).id === id) {\n return false\n }\n // params list\n if (parent.params.includes(id)) {\n return false\n }\n }\n\n // class method name\n if (parent.type === 'MethodDefinition') {\n return false\n }\n\n // property key\n // this also covers object destructuring pattern\n if (isStaticPropertyKey(id, parent) || (parent as any).inPattern) {\n return false\n }\n\n // non-assignment array destructuring pattern\n if (\n parent.type === 'ArrayPattern' &&\n !isInDestructuringAssignment(parent, parentStack)\n ) {\n return false\n }\n\n // member expression property\n if (\n parent.type === 'MemberExpression' &&\n parent.property === id &&\n !parent.computed\n ) {\n return false\n }\n\n if (parent.type === 'ExportSpecifier') {\n return false\n }\n\n // is a special keyword but parsed as identifier\n if (id.name === 'arguments') {\n return false\n }\n\n return true\n}\n\nconst isStaticProperty = (node: _Node): node is Property =>\n node && node.type === 'Property' && !node.computed\n\nconst isStaticPropertyKey = (node: _Node, parent: _Node) =>\n isStaticProperty(parent) && parent.key === node\n\nfunction isFunction(node: _Node): node is FunctionNode {\n return /Function(?:Expression|Declaration)$|Method$/.test(node.type)\n}\n\nfunction findParentFunction(parentStack: _Node[]): FunctionNode | undefined {\n for (let i = parentStack.length - 1; i >= 0; i--) {\n const node = parentStack[i]\n if (isFunction(node)) {\n return node\n }\n }\n}\n\nfunction isInDestructuringAssignment(\n parent: _Node,\n parentStack: _Node[]\n): boolean {\n if (\n parent &&\n (parent.type === 'Property' || parent.type === 'ArrayPattern')\n ) {\n let i = parentStack.length\n while (i--) {\n const p = parentStack[i]\n if (p.type === 'AssignmentExpression') {\n return true\n } else if (p.type !== 'Property' && !p.type.endsWith('Pattern')) {\n break\n }\n }\n }\n return false\n}\n","import path from 'path'\nimport { promises as fs } from 'fs'\nimport { Logger } from '../logger'\nimport { createDebugger } from '../utils'\n\nconst isDebug = !!process.env.DEBUG\nconst debug = createDebugger('vite:sourcemap', {\n onlyWhenFocused: true\n})\n\ninterface SourceMapLike {\n sources: string[]\n sourcesContent?: (string | null)[]\n sourceRoot?: string\n}\n\nexport async function injectSourcesContent(\n map: SourceMapLike,\n file: string,\n logger: Logger\n): Promise<void> {\n let sourceRoot: string | undefined\n try {\n // The source root is undefined for virtual modules and permission errors.\n sourceRoot = await fs.realpath(\n path.resolve(path.dirname(file), map.sourceRoot || '')\n )\n } catch {}\n\n const missingSources: string[] = []\n map.sourcesContent = await Promise.all(\n map.sources.map((sourcePath) => {\n if (sourcePath) {\n sourcePath = decodeURI(sourcePath)\n if (sourceRoot) {\n sourcePath = path.resolve(sourceRoot, sourcePath)\n }\n return fs.readFile(sourcePath, 'utf-8').catch(() => {\n missingSources.push(sourcePath)\n return null\n })\n }\n return null\n })\n )\n\n // Use this command…\n // DEBUG=\"vite:sourcemap\" vite build\n // …to log the missing sources.\n if (missingSources.length) {\n logger.warnOnce(`Sourcemap for \"${file}\" points to missing source files`)\n isDebug && debug(`Missing sources:\\n ` + missingSources.join(`\\n `))\n }\n}\n","import * as qs from 'querystring';\n\n/**\n * @typedef ParsedURL\n * @type {import('.').ParsedURL}\n */\n\n/**\n * @typedef Request\n * @property {string} url\n * @property {ParsedURL} _parsedUrl\n */\n\n/**\n * @param {Request} req\n * @returns {ParsedURL|void}\n */\nexport function parse(req) {\n\tlet raw = req.url;\n\tif (raw == null) return;\n\n\tlet prev = req._parsedUrl;\n\tif (prev && prev.raw === raw) return prev;\n\n\tlet pathname=raw, search='', query;\n\n\tif (raw.length > 1) {\n\t\tlet idx = raw.indexOf('?', 1);\n\n\t\tif (idx !== -1) {\n\t\t\tsearch = raw.substring(idx);\n\t\t\tpathname = raw.substring(0, idx);\n\t\t\tif (search.length > 1) {\n\t\t\t\tquery = qs.parse(search.substring(1));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn req._parsedUrl = { pathname, search, query, raw };\n}\n","import { join, resolve } from 'path';\nimport { readdirSync, statSync } from 'fs';\n\nexport default function list(dir, callback, pre='') {\n\tdir = resolve('.', dir);\n\tlet arr = readdirSync(dir);\n\tlet i=0, abs, stats;\n\tfor (; i < arr.length; i++) {\n\t\tabs = join(dir, arr[i]);\n\t\tstats = statSync(abs);\n\t\tstats.isDirectory()\n\t\t\t? list(abs, callback, join(pre, arr[i]))\n\t\t\t: callback(join(pre, arr[i]), abs, stats);\n\t}\n}\n","import * as fs from 'fs';\nimport { join, normalize, resolve } from 'path';\nimport { parse } from '@polka/url';\nimport list from 'totalist/sync';\nimport mime from 'mime/lite';\n\nconst noop = () => {};\n\nfunction isMatch(uri, arr) {\n\tfor (let i=0; i < arr.length; i++) {\n\t\tif (arr[i].test(uri)) return true;\n\t}\n}\n\nfunction toAssume(uri, extns) {\n\tlet i=0, x, len=uri.length - 1;\n\tif (uri.charCodeAt(len) === 47) {\n\t\turi = uri.substring(0, len);\n\t}\n\n\tlet arr=[], tmp=`${uri}/index`;\n\tfor (; i < extns.length; i++) {\n\t\tx = extns[i] ? `.${extns[i]}` : '';\n\t\tif (uri) arr.push(uri + x);\n\t\tarr.push(tmp + x);\n\t}\n\n\treturn arr;\n}\n\nfunction viaCache(cache, uri, extns) {\n\tlet i=0, data, arr=toAssume(uri, extns);\n\tfor (; i < arr.length; i++) {\n\t\tif (data = cache[arr[i]]) return data;\n\t}\n}\n\nfunction viaLocal(dir, isEtag, uri, extns) {\n\tlet i=0, arr=toAssume(uri, extns);\n\tlet abs, stats, name, headers;\n\tfor (; i < arr.length; i++) {\n\t\tabs = normalize(join(dir, name=arr[i]));\n\t\tif (abs.startsWith(dir) && fs.existsSync(abs)) {\n\t\t\tstats = fs.statSync(abs);\n\t\t\tif (stats.isDirectory()) continue;\n\t\t\theaders = toHeaders(name, stats, isEtag);\n\t\t\theaders['Cache-Control'] = isEtag ? 'no-cache' : 'no-store';\n\t\t\treturn { abs, stats, headers };\n\t\t}\n\t}\n}\n\nfunction is404(req, res) {\n\treturn (res.statusCode=404,res.end());\n}\n\nfunction send(req, res, file, stats, headers) {\n\tlet code=200, tmp, opts={};\n\theaders = { ...headers };\n\n\tfor (let key in headers) {\n\t\ttmp = res.getHeader(key);\n\t\tif (tmp) headers[key] = tmp;\n\t}\n\n\tif (tmp = res.getHeader('content-type')) {\n\t\theaders['Content-Type'] = tmp;\n\t}\n\n\tif (req.headers.range) {\n\t\tcode = 206;\n\t\tlet [x, y] = req.headers.range.replace('bytes=', '').split('-');\n\t\tlet end = opts.end = parseInt(y, 10) || stats.size - 1;\n\t\tlet start = opts.start = parseInt(x, 10) || 0;\n\n\t\tif (start >= stats.size || end >= stats.size) {\n\t\t\tres.setHeader('Content-Range', `bytes */${stats.size}`);\n\t\t\tres.statusCode = 416;\n\t\t\treturn res.end();\n\t\t}\n\n\t\theaders['Content-Range'] = `bytes ${start}-${end}/${stats.size}`;\n\t\theaders['Content-Length'] = (end - start + 1);\n\t\theaders['Accept-Ranges'] = 'bytes';\n\t}\n\n\tres.writeHead(code, headers);\n\tfs.createReadStream(file, opts).pipe(res);\n}\n\nfunction isEncoding(name, type, headers) {\n\theaders['Content-Encoding'] = type;\n\theaders['Content-Type'] = mime.getType(name.replace(/\\.([^.]*)$/, '')) || '';\n}\n\nfunction toHeaders(name, stats, isEtag) {\n\tlet headers = {\n\t\t'Content-Length': stats.size,\n\t\t'Content-Type': mime.getType(name) || '',\n\t\t'Last-Modified': stats.mtime.toUTCString(),\n\t};\n\tif (isEtag) headers['ETag'] = `W/\"${stats.size}-${stats.mtime.getTime()}\"`;\n\tif (/\\.br$/.test(name)) isEncoding(name, 'br', headers);\n\tif (/\\.gz$/.test(name)) isEncoding(name, 'gzip', headers);\n\treturn headers;\n}\n\nexport default function (dir, opts={}) {\n\tdir = resolve(dir || '.');\n\n\tlet isNotFound = opts.onNoMatch || is404;\n\tlet setHeaders = opts.setHeaders || noop;\n\n\tlet extensions = opts.extensions || ['html', 'htm'];\n\tlet gzips = opts.gzip && extensions.map(x => `${x}.gz`).concat('gz');\n\tlet brots = opts.brotli && extensions.map(x => `${x}.br`).concat('br');\n\n\tconst FILES = {};\n\n\tlet fallback = '/';\n\tlet isEtag = !!opts.etag;\n\tlet isSPA = !!opts.single;\n\tif (typeof opts.single === 'string') {\n\t\tlet idx = opts.single.lastIndexOf('.');\n\t\tfallback += !!~idx ? opts.single.substring(0, idx) : opts.single;\n\t}\n\n\tlet ignores = [];\n\tif (opts.ignores !== false) {\n\t\tignores.push(/[/]([A-Za-z\\s\\d~$._-]+\\.\\w+){1,}$/); // any extn\n\t\tif (opts.dotfiles) ignores.push(/\\/\\.\\w/);\n\t\telse ignores.push(/\\/\\.well-known/);\n\t\t[].concat(opts.ignores || []).forEach(x => {\n\t\t\tignores.push(new RegExp(x, 'i'));\n\t\t});\n\t}\n\n\tlet cc = opts.maxAge != null && `public,max-age=${opts.maxAge}`;\n\tif (cc && opts.immutable) cc += ',immutable';\n\telse if (cc && opts.maxAge === 0) cc += ',must-revalidate';\n\n\tif (!opts.dev) {\n\t\tlist(dir, (name, abs, stats) => {\n\t\t\tif (/\\.well-known[\\\\+\\/]/.test(name)) {} // keep\n\t\t\telse if (!opts.dotfiles && /(^\\.|[\\\\+|\\/+]\\.)/.test(name)) return;\n\n\t\t\tlet headers = toHeaders(name, stats, isEtag);\n\t\t\tif (cc) headers['Cache-Control'] = cc;\n\n\t\t\tFILES['/' + name.normalize().replace(/\\\\+/g, '/')] = { abs, stats, headers };\n\t\t});\n\t}\n\n\tlet lookup = opts.dev ? viaLocal.bind(0, dir, isEtag) : viaCache.bind(0, FILES);\n\n\treturn function (req, res, next) {\n\t\tlet extns = [''];\n\t\tlet pathname = parse(req).pathname;\n\t\tlet val = req.headers['accept-encoding'] || '';\n\t\tif (gzips && val.includes('gzip')) extns.unshift(...gzips);\n\t\tif (brots && /(br|brotli)/i.test(val)) extns.unshift(...brots);\n\t\textns.push(...extensions); // [...br, ...gz, orig, ...exts]\n\n\t\tif (pathname.indexOf('%') !== -1) {\n\t\t\ttry { pathname = decodeURIComponent(pathname) }\n\t\t\tcatch (err) { /* malform uri */ }\n\t\t}\n\n\t\tlet data = lookup(pathname, extns) || isSPA && !isMatch(pathname, ignores) && lookup(fallback, extns);\n\t\tif (!data) return next ? next() : isNotFound(req, res);\n\n\t\tif (isEtag && req.headers['if-none-match'] === data.headers['ETag']) {\n\t\t\tres.writeHead(304);\n\t\t\treturn res.end();\n\t\t}\n\n\t\tif (gzips || brots) {\n\t\t\tres.setHeader('Vary', 'Accept-Encoding');\n\t\t}\n\n\t\tsetHeaders(res, pathname, data.stats);\n\t\tsend(req, res, data.abs, data.stats, data.headers);\n\t};\n}\n","import path from 'path'\nimport sirv, { Options } from 'sirv'\nimport { Connect } from 'types/connect'\nimport { normalizePath, ResolvedConfig, ViteDevServer } from '../..'\nimport { FS_PREFIX } from '../../constants'\nimport {\n cleanUrl,\n ensureLeadingSlash,\n fsPathFromId,\n isImportRequest,\n isInternalRequest,\n isWindows,\n slash\n} from '../../utils'\nimport { AccessRestrictedError } from './error'\n\nconst sirvOptions: Options = {\n dev: true,\n etag: true,\n extensions: [],\n setHeaders(res, pathname) {\n // Matches js, jsx, ts, tsx.\n // The reason this is done, is that the .ts file extension is reserved\n // for the MIME type video/mp2t. In almost all cases, we can expect\n // these files to be TypeScript files, and for Vite to serve them with\n // this Content-Type.\n if (/\\.[tj]sx?$/.test(pathname)) {\n res.setHeader('Content-Type', 'application/javascript')\n }\n }\n}\n\nexport function servePublicMiddleware(dir: string): Connect.NextHandleFunction {\n const serve = sirv(dir, sirvOptions)\n\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return function viteServePublicMiddleware(req, res, next) {\n // skip import request and internal requests `/@fs/ /@vite-client` etc...\n if (isImportRequest(req.url!) || isInternalRequest(req.url!)) {\n return next()\n }\n serve(req, res, next)\n }\n}\n\nexport function serveStaticMiddleware(\n dir: string,\n config: ResolvedConfig\n): Connect.NextHandleFunction {\n const serve = sirv(dir, sirvOptions)\n\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return function viteServeStaticMiddleware(req, res, next) {\n // only serve the file if it's not an html request\n // so that html requests can fallthrough to our html middleware for\n // special processing\n // also skip internal requests `/@fs/ /@vite-client` etc...\n if (\n path.extname(cleanUrl(req.url!)) === '.html' ||\n isInternalRequest(req.url!)\n ) {\n return next()\n }\n\n const url = decodeURI(req.url!)\n\n // apply aliases to static requests as well\n let redirected: string | undefined\n for (const { find, replacement } of config.resolve.alias) {\n const matches =\n typeof find === 'string' ? url.startsWith(find) : find.test(url)\n if (matches) {\n redirected = url.replace(find, replacement)\n break\n }\n }\n if (redirected) {\n // dir is pre-normalized to posix style\n if (redirected.startsWith(dir)) {\n redirected = redirected.slice(dir.length)\n }\n req.url = redirected\n }\n\n serve(req, res, next)\n }\n}\n\nexport function serveRawFsMiddleware(\n server: ViteDevServer\n): Connect.NextHandleFunction {\n const serveFromRoot = sirv('/', sirvOptions)\n\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return function viteServeRawFsMiddleware(req, res, next) {\n let url = req.url!\n // In some cases (e.g. linked monorepos) files outside of root will\n // reference assets that are also out of served root. In such cases\n // the paths are rewritten to `/@fs/` prefixed paths and must be served by\n // searching based from fs root.\n if (url.startsWith(FS_PREFIX)) {\n // restrict files outside of `fs.allow`\n ensureServingAccess(slash(path.resolve(fsPathFromId(url))), server)\n url = url.slice(FS_PREFIX.length)\n if (isWindows) url = url.replace(/^[A-Z]:/i, '')\n\n req.url = url\n serveFromRoot(req, res, next)\n } else {\n next()\n }\n }\n}\n\nexport function isFileServingAllowed(\n url: string,\n server: ViteDevServer\n): boolean {\n // explicitly disabled\n if (server.config.server.fs.strict === false) return true\n\n const file = ensureLeadingSlash(normalizePath(cleanUrl(url)))\n\n if (server.moduleGraph.safeModulesPath.has(file)) return true\n\n if (server.config.server.fs.allow.some((i) => file.startsWith(i + '/')))\n return true\n\n if (!server.config.server.fs.strict) {\n server.config.logger.warnOnce(`Unrestricted file system access to \"${url}\"`)\n server.config.logger.warnOnce(\n `For security concerns, accessing files outside of serving allow list will ` +\n `be restricted by default in the future version of Vite. ` +\n `Refer to https://vitejs.dev/config/#server-fs-allow for more details.`\n )\n return true\n }\n\n return false\n}\n\nexport function ensureServingAccess(url: string, server: ViteDevServer): void {\n if (!isFileServingAllowed(url, server)) {\n const allow = server.config.server.fs.allow\n throw new AccessRestrictedError(\n `The request url \"${url}\" is outside of Vite serving allow list:\n\n${allow.map((i) => `- ${i}`).join('\\n')}\n\nRefer to docs https://vitejs.dev/config/#server-fs-allow for configurations and more details.`\n )\n }\n}\n","import { promises as fs } from 'fs'\nimport path from 'path'\nimport getEtag from 'etag'\nimport * as convertSourceMap from 'convert-source-map'\nimport { SourceDescription, SourceMap } from 'rollup'\nimport { ViteDevServer } from '..'\nimport chalk from 'chalk'\nimport {\n createDebugger,\n cleanUrl,\n prettifyUrl,\n removeTimestampQuery,\n timeFrom,\n ensureWatchedFile,\n isObject\n} from '../utils'\nimport { checkPublicFile } from '../plugins/asset'\nimport { ssrTransform } from '../ssr/ssrTransform'\nimport { injectSourcesContent } from './sourcemap'\nimport { isFileServingAllowed } from './middlewares/static'\n\nconst debugLoad = createDebugger('vite:load')\nconst debugTransform = createDebugger('vite:transform')\nconst debugCache = createDebugger('vite:cache')\nconst isDebug = !!process.env.DEBUG\n\nexport interface TransformResult {\n code: string\n map: SourceMap | null\n etag?: string\n deps?: string[]\n}\n\nexport interface TransformOptions {\n ssr?: boolean\n html?: boolean\n}\n\nexport async function transformRequest(\n url: string,\n server: ViteDevServer,\n options: TransformOptions = {}\n): Promise<TransformResult | null> {\n const { config, pluginContainer, moduleGraph, watcher } = server\n\n url = removeTimestampQuery(url)\n const { root, logger } = config\n const prettyUrl = isDebug ? prettifyUrl(url, root) : ''\n const ssr = !!options.ssr\n\n // check if we have a fresh cache\n const module = await moduleGraph.getModuleByUrl(url)\n const cached =\n module && (ssr ? module.ssrTransformResult : module.transformResult)\n if (cached) {\n isDebug && debugCache(`[memory] ${prettyUrl}`)\n return cached\n }\n\n // resolve\n const id = (await pluginContainer.resolveId(url))?.id || url\n const file = cleanUrl(id)\n\n let code: string | null = null\n let map: SourceDescription['map'] = null\n\n // load\n const loadStart = isDebug ? Date.now() : 0\n const loadResult = await pluginContainer.load(id, ssr)\n if (loadResult == null) {\n // if this is an html request and there is no load result, skip ahead to\n // SPA fallback.\n if (options.html && !id.endsWith('.html')) {\n return null\n }\n // try fallback loading it from fs as string\n // if the file is a binary, there should be a plugin that already loaded it\n // as string\n // only try the fallback if access is allowed, skip for out of root url\n // like /service-worker.js or /api/users\n if (options.ssr || isFileServingAllowed(file, server)) {\n try {\n code = await fs.readFile(file, 'utf-8')\n isDebug && debugLoad(`${timeFrom(loadStart)} [fs] ${prettyUrl}`)\n } catch (e) {\n if (e.code !== 'ENOENT') {\n throw e\n }\n }\n }\n if (code) {\n try {\n map = (\n convertSourceMap.fromSource(code) ||\n convertSourceMap.fromMapFileSource(code, path.dirname(file))\n )?.toObject()\n } catch (e) {\n logger.warn(`Failed to load source map for ${url}.`, {\n timestamp: true\n })\n }\n }\n } else {\n isDebug && debugLoad(`${timeFrom(loadStart)} [plugin] ${prettyUrl}`)\n if (isObject(loadResult)) {\n code = loadResult.code\n map = loadResult.map\n } else {\n code = loadResult\n }\n }\n if (code == null) {\n if (checkPublicFile(url, config)) {\n throw new Error(\n `Failed to load url ${url} (resolved id: ${id}). ` +\n `This file is in /public and will be copied as-is during build without ` +\n `going through the plugin transforms, and therefore should not be ` +\n `imported from source code. It can only be referenced via HTML tags.`\n )\n } else {\n return null\n }\n }\n\n // ensure module in graph after successful load\n const mod = await moduleGraph.ensureEntryFromUrl(url)\n ensureWatchedFile(watcher, mod.file, root)\n\n // transform\n const transformStart = isDebug ? Date.now() : 0\n const transformResult = await pluginContainer.transform(code, id, map, ssr)\n if (\n transformResult == null ||\n (isObject(transformResult) && transformResult.code == null)\n ) {\n // no transform applied, keep code as-is\n isDebug &&\n debugTransform(\n timeFrom(transformStart) + chalk.dim(` [skipped] ${prettyUrl}`)\n )\n } else {\n isDebug && debugTransform(`${timeFrom(transformStart)} ${prettyUrl}`)\n code = transformResult.code!\n map = transformResult.map\n }\n\n if (map && mod.file) {\n map = (typeof map === 'string' ? JSON.parse(map) : map) as SourceMap\n if (map.mappings && !map.sourcesContent) {\n await injectSourcesContent(map, mod.file, logger)\n }\n }\n\n if (ssr) {\n return (mod.ssrTransformResult = await ssrTransform(\n code,\n map as SourceMap,\n url\n ))\n } else {\n return (mod.transformResult = {\n code,\n map,\n etag: getEtag(code, { weak: true })\n } as TransformResult)\n }\n}\n","import path from 'path'\nimport { ViteDevServer } from '..'\nimport { Connect } from 'types/connect'\nimport {\n cleanUrl,\n createDebugger,\n injectQuery,\n isImportRequest,\n isJSRequest,\n normalizePath,\n prettifyUrl,\n removeImportQuery,\n removeTimestampQuery,\n unwrapId\n} from '../../utils'\nimport { send } from '../send'\nimport { transformRequest } from '../transformRequest'\nimport { isHTMLProxy } from '../../plugins/html'\nimport chalk from 'chalk'\nimport {\n CLIENT_PUBLIC_PATH,\n DEP_VERSION_RE,\n NULL_BYTE_PLACEHOLDER\n} from '../../constants'\nimport {\n isCSSRequest,\n isDirectCSSRequest,\n isDirectRequest\n} from '../../plugins/css'\n\n/**\n * Time (ms) Vite has to full-reload the page before returning\n * an empty response.\n */\nconst NEW_DEPENDENCY_BUILD_TIMEOUT = 1000\n\nconst debugCache = createDebugger('vite:cache')\nconst isDebug = !!process.env.DEBUG\n\nconst knownIgnoreList = new Set(['/', '/favicon.ico'])\n\nexport function transformMiddleware(\n server: ViteDevServer\n): Connect.NextHandleFunction {\n const {\n config: { root, logger, cacheDir },\n moduleGraph\n } = server\n\n // determine the url prefix of files inside cache directory\n let cacheDirPrefix: string | undefined\n if (cacheDir) {\n const cacheDirRelative = normalizePath(path.relative(root, cacheDir))\n if (cacheDirRelative.startsWith('../')) {\n // if the cache directory is outside root, the url prefix would be something\n // like '/@fs/absolute/path/to/node_modules/.vite'\n cacheDirPrefix = `/@fs/${normalizePath(cacheDir).replace(/^\\//, '')}`\n } else {\n // if the cache directory is inside root, the url prefix would be something\n // like '/node_modules/.vite'\n cacheDirPrefix = `/${cacheDirRelative}`\n }\n }\n\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return async function viteTransformMiddleware(req, res, next) {\n if (req.method !== 'GET' || knownIgnoreList.has(req.url!)) {\n return next()\n }\n\n if (\n server._pendingReload &&\n // always allow vite client requests so that it can trigger page reload\n !req.url?.startsWith(CLIENT_PUBLIC_PATH) &&\n !req.url?.includes('vite/dist/client')\n ) {\n // missing dep pending reload, hold request until reload happens\n server._pendingReload.then(() =>\n // If the refresh has not happened after timeout, Vite considers\n // something unexpected has happened. In this case, Vite\n // returns an empty response that will error.\n setTimeout(() => {\n // Don't do anything if response has already been sent\n if (res.writableEnded) return\n // status code request timeout\n res.statusCode = 408\n res.end(\n `<h1>[vite] Something unexpected happened while optimizing \"${req.url}\"<h1>` +\n `<p>The current page should have reloaded by now</p>`\n )\n }, NEW_DEPENDENCY_BUILD_TIMEOUT)\n )\n return\n }\n\n let url = decodeURI(removeTimestampQuery(req.url!)).replace(\n NULL_BYTE_PLACEHOLDER,\n '\\0'\n )\n\n const withoutQuery = cleanUrl(url)\n\n try {\n const isSourceMap = withoutQuery.endsWith('.map')\n // since we generate source map references, handle those requests here\n if (isSourceMap) {\n const originalUrl = url.replace(/\\.map($|\\?)/, '$1')\n const map = (await moduleGraph.getModuleByUrl(originalUrl))\n ?.transformResult?.map\n if (map) {\n return send(req, res, JSON.stringify(map), 'json')\n } else {\n return next()\n }\n }\n\n const publicPath =\n normalizePath(server.config.publicDir).slice(\n server.config.root.length\n ) + '/'\n // warn explicit public paths\n if (url.startsWith(publicPath)) {\n logger.warn(\n chalk.yellow(\n `files in the public directory are served at the root path.\\n` +\n `Instead of ${chalk.cyan(url)}, use ${chalk.cyan(\n url.replace(publicPath, '/')\n )}.`\n )\n )\n }\n\n if (\n isJSRequest(url) ||\n isImportRequest(url) ||\n isCSSRequest(url) ||\n isHTMLProxy(url)\n ) {\n // strip ?import\n url = removeImportQuery(url)\n // Strip valid id prefix. This is prepended to resolved Ids that are\n // not valid browser import specifiers by the importAnalysis plugin.\n url = unwrapId(url)\n\n // for CSS, we need to differentiate between normal CSS requests and\n // imports\n if (\n isCSSRequest(url) &&\n !isDirectRequest(url) &&\n req.headers.accept?.includes('text/css')\n ) {\n url = injectQuery(url, 'direct')\n }\n\n // check if we can return 304 early\n const ifNoneMatch = req.headers['if-none-match']\n if (\n ifNoneMatch &&\n (await moduleGraph.getModuleByUrl(url))?.transformResult?.etag ===\n ifNoneMatch\n ) {\n isDebug && debugCache(`[304] ${prettifyUrl(url, root)}`)\n res.statusCode = 304\n return res.end()\n }\n\n // resolve, load and transform using the plugin container\n const result = await transformRequest(url, server, {\n html: req.headers.accept?.includes('text/html')\n })\n if (result) {\n const type = isDirectCSSRequest(url) ? 'css' : 'js'\n const isDep =\n DEP_VERSION_RE.test(url) ||\n (cacheDirPrefix && url.startsWith(cacheDirPrefix))\n return send(\n req,\n res,\n result.code,\n type,\n result.etag,\n // allow browser to cache npm deps!\n isDep ? 'max-age=31536000,immutable' : 'no-cache',\n result.map\n )\n }\n }\n } catch (e) {\n return next(e)\n }\n\n next()\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport MagicString from 'magic-string'\nimport { AttributeNode, NodeTypes } from '@vue/compiler-dom'\nimport { Connect } from 'types/connect'\nimport {\n applyHtmlTransforms,\n getScriptInfo,\n IndexHtmlTransformHook,\n resolveHtmlTransforms,\n traverseHtml\n} from '../../plugins/html'\nimport { ResolvedConfig, ViteDevServer } from '../..'\nimport { send } from '../send'\nimport { CLIENT_PUBLIC_PATH, FS_PREFIX } from '../../constants'\nimport { cleanUrl, fsPathFromId } from '../../utils'\nimport { assetAttrsConfig } from '../../plugins/html'\n\nexport function createDevHtmlTransformFn(\n server: ViteDevServer\n): (url: string, html: string, originalUrl: string) => Promise<string> {\n const [preHooks, postHooks] = resolveHtmlTransforms(server.config.plugins)\n\n return (url: string, html: string, originalUrl: string): Promise<string> => {\n return applyHtmlTransforms(html, [...preHooks, devHtmlHook, ...postHooks], {\n path: url,\n filename: getHtmlFilename(url, server),\n server,\n originalUrl\n })\n }\n}\n\nfunction getHtmlFilename(url: string, server: ViteDevServer) {\n if (url.startsWith(FS_PREFIX)) {\n return fsPathFromId(url)\n } else {\n return path.join(server.config.root, url.slice(1))\n }\n}\n\nconst startsWithSingleSlashRE = /^\\/(?!\\/)/\nconst processNodeUrl = (\n node: AttributeNode,\n s: MagicString,\n config: ResolvedConfig,\n htmlPath: string,\n originalUrl?: string\n) => {\n const url = node.value?.content || ''\n if (startsWithSingleSlashRE.test(url)) {\n // prefix with base\n s.overwrite(\n node.value!.loc.start.offset,\n node.value!.loc.end.offset,\n `\"${config.base + url.slice(1)}\"`\n )\n } else if (\n url.startsWith('.') &&\n originalUrl &&\n originalUrl !== '/' &&\n htmlPath === '/index.html'\n ) {\n // #3230 if some request url (localhost:3000/a/b) return to fallback html, the relative assets\n // path will add `/a/` prefix, it will caused 404.\n // rewrite before `./index.js` -> `localhost:3000/a/index.js`.\n // rewrite after `../index.js` -> `localhost:3000/index.js`.\n s.overwrite(\n node.value!.loc.start.offset,\n node.value!.loc.end.offset,\n `\"${path.posix.join(\n path.posix.relative(originalUrl, '/'),\n url.slice(1)\n )}\"`\n )\n }\n}\nconst devHtmlHook: IndexHtmlTransformHook = async (\n html,\n { path: htmlPath, server, originalUrl }\n) => {\n // TODO: solve this design issue\n // Optional chain expressions can return undefined by design\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n const config = server?.config!\n const base = config.base || '/'\n\n const s = new MagicString(html)\n let scriptModuleIndex = -1\n\n await traverseHtml(html, htmlPath, (node) => {\n if (node.type !== NodeTypes.ELEMENT) {\n return\n }\n\n // script tags\n if (node.tag === 'script') {\n const { src, isModule } = getScriptInfo(node)\n if (isModule) {\n scriptModuleIndex++\n }\n\n if (src) {\n processNodeUrl(src, s, config, htmlPath, originalUrl)\n } else if (isModule) {\n // inline js module. convert to src=\"proxy\"\n s.overwrite(\n node.loc.start.offset,\n node.loc.end.offset,\n `<script type=\"module\" src=\"${\n config.base + htmlPath.slice(1)\n }?html-proxy&index=${scriptModuleIndex}.js\"></script>`\n )\n }\n }\n\n // elements with [href/src] attrs\n const assetAttrs = assetAttrsConfig[node.tag]\n if (assetAttrs) {\n for (const p of node.props) {\n if (\n p.type === NodeTypes.ATTRIBUTE &&\n p.value &&\n assetAttrs.includes(p.name)\n ) {\n processNodeUrl(p, s, config, htmlPath, originalUrl)\n }\n }\n }\n })\n\n html = s.toString()\n\n return {\n html,\n tags: [\n {\n tag: 'script',\n attrs: {\n type: 'module',\n src: path.posix.join(base, CLIENT_PUBLIC_PATH)\n },\n injectTo: 'head-prepend'\n }\n ]\n }\n}\n\nexport function indexHtmlMiddleware(\n server: ViteDevServer\n): Connect.NextHandleFunction {\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return async function viteIndexHtmlMiddleware(req, res, next) {\n const url = req.url && cleanUrl(req.url)\n // spa-fallback always redirects to /index.html\n if (url?.endsWith('.html') && req.headers['sec-fetch-dest'] !== 'script') {\n const filename = getHtmlFilename(url, server)\n if (fs.existsSync(filename)) {\n try {\n let html = fs.readFileSync(filename, 'utf-8')\n html = await server.transformIndexHtml(url, html, req.originalUrl)\n return send(req, res, html, 'html')\n } catch (e) {\n return next(e)\n }\n }\n }\n next()\n }\n}\n","'use strict';\n\nvar url = require('url');\n\nexports = module.exports = function historyApiFallback(options) {\n options = options || {};\n var logger = getLogger(options);\n\n return function(req, res, next) {\n var headers = req.headers;\n if (req.method !== 'GET') {\n logger(\n 'Not rewriting',\n req.method,\n req.url,\n 'because the method is not GET.'\n );\n return next();\n } else if (!headers || typeof headers.accept !== 'string') {\n logger(\n 'Not rewriting',\n req.method,\n req.url,\n 'because the client did not send an HTTP accept header.'\n );\n return next();\n } else if (headers.accept.indexOf('application/json') === 0) {\n logger(\n 'Not rewriting',\n req.method,\n req.url,\n 'because the client prefers JSON.'\n );\n return next();\n } else if (!acceptsHtml(headers.accept, options)) {\n logger(\n 'Not rewriting',\n req.method,\n req.url,\n 'because the client does not accept HTML.'\n );\n return next();\n }\n\n var parsedUrl = url.parse(req.url);\n var rewriteTarget;\n options.rewrites = options.rewrites || [];\n for (var i = 0; i < options.rewrites.length; i++) {\n var rewrite = options.rewrites[i];\n var match = parsedUrl.pathname.match(rewrite.from);\n if (match !== null) {\n rewriteTarget = evaluateRewriteRule(parsedUrl, match, rewrite.to, req);\n\n if(rewriteTarget.charAt(0) !== '/') {\n logger(\n 'We recommend using an absolute path for the rewrite target.',\n 'Received a non-absolute rewrite target',\n rewriteTarget,\n 'for URL',\n req.url\n );\n }\n\n logger('Rewriting', req.method, req.url, 'to', rewriteTarget);\n req.url = rewriteTarget;\n return next();\n }\n }\n\n var pathname = parsedUrl.pathname;\n if (pathname.lastIndexOf('.') > pathname.lastIndexOf('/') &&\n options.disableDotRule !== true) {\n logger(\n 'Not rewriting',\n req.method,\n req.url,\n 'because the path includes a dot (.) character.'\n );\n return next();\n }\n\n rewriteTarget = options.index || '/index.html';\n logger('Rewriting', req.method, req.url, 'to', rewriteTarget);\n req.url = rewriteTarget;\n next();\n };\n};\n\nfunction evaluateRewriteRule(parsedUrl, match, rule, req) {\n if (typeof rule === 'string') {\n return rule;\n } else if (typeof rule !== 'function') {\n throw new Error('Rewrite rule can only be of type string or function.');\n }\n\n return rule({\n parsedUrl: parsedUrl,\n match: match,\n request: req\n });\n}\n\nfunction acceptsHtml(header, options) {\n options.htmlAcceptHeaders = options.htmlAcceptHeaders || ['text/html', '*/*'];\n for (var i = 0; i < options.htmlAcceptHeaders.length; i++) {\n if (header.indexOf(options.htmlAcceptHeaders[i]) !== -1) {\n return true;\n }\n }\n return false;\n}\n\nfunction getLogger(options) {\n if (options && options.logger) {\n return options.logger;\n } else if (options && options.verbose) {\n return console.log.bind(console);\n }\n return function(){};\n}\n","import { Connect } from 'types/connect'\nimport { createDebugger, prettifyUrl, timeFrom } from '../../utils'\n\nconst logTime = createDebugger('vite:time')\n\nexport function timeMiddleware(root: string): Connect.NextHandleFunction {\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n return function viteTimeMiddleware(req, res, next) {\n const start = Date.now()\n const end = res.end\n res.end = (...args: any[]) => {\n logTime(`${timeFrom(start)} ${prettifyUrl(req.url!, root)}`)\n // @ts-ignore\n return end.call(res, ...args)\n }\n next()\n }\n}\n","import { extname } from 'path'\nimport { isDirectCSSRequest } from '../plugins/css'\nimport {\n cleanUrl,\n normalizePath,\n removeImportQuery,\n removeTimestampQuery\n} from '../utils'\nimport { FS_PREFIX } from '../constants'\nimport { TransformResult } from './transformRequest'\nimport { PluginContainer } from './pluginContainer'\nimport { parse as parseUrl } from 'url'\n\nexport class ModuleNode {\n /**\n * Public served url path, starts with /\n */\n url: string\n /**\n * Resolved file system path + query\n */\n id: string | null = null\n file: string | null = null\n type: 'js' | 'css'\n importers = new Set<ModuleNode>()\n importedModules = new Set<ModuleNode>()\n acceptedHmrDeps = new Set<ModuleNode>()\n isSelfAccepting = false\n transformResult: TransformResult | null = null\n ssrTransformResult: TransformResult | null = null\n ssrModule: Record<string, any> | null = null\n lastHMRTimestamp = 0\n\n constructor(url: string) {\n this.url = url\n this.type = isDirectCSSRequest(url) ? 'css' : 'js'\n }\n}\n\nfunction invalidateSSRModule(mod: ModuleNode, seen: Set<ModuleNode>) {\n if (seen.has(mod)) {\n return\n }\n seen.add(mod)\n mod.ssrModule = null\n mod.importers.forEach((importer) => invalidateSSRModule(importer, seen))\n}\nexport class ModuleGraph {\n urlToModuleMap = new Map<string, ModuleNode>()\n idToModuleMap = new Map<string, ModuleNode>()\n // a single file may corresponds to multiple modules with different queries\n fileToModulesMap = new Map<string, Set<ModuleNode>>()\n safeModulesPath = new Set<string>()\n container: PluginContainer\n\n constructor(container: PluginContainer) {\n this.container = container\n }\n\n async getModuleByUrl(rawUrl: string): Promise<ModuleNode | undefined> {\n const [url] = await this.resolveUrl(rawUrl)\n return this.urlToModuleMap.get(url)\n }\n\n getModuleById(id: string): ModuleNode | undefined {\n return this.idToModuleMap.get(removeTimestampQuery(id))\n }\n\n getModulesByFile(file: string): Set<ModuleNode> | undefined {\n return this.fileToModulesMap.get(file)\n }\n\n onFileChange(file: string): void {\n const mods = this.getModulesByFile(file)\n if (mods) {\n const seen = new Set<ModuleNode>()\n mods.forEach((mod) => {\n this.invalidateModule(mod, seen)\n })\n }\n }\n\n invalidateModule(mod: ModuleNode, seen: Set<ModuleNode> = new Set()): void {\n mod.transformResult = null\n mod.ssrTransformResult = null\n invalidateSSRModule(mod, seen)\n }\n\n invalidateAll(): void {\n const seen = new Set<ModuleNode>()\n this.idToModuleMap.forEach((mod) => {\n this.invalidateModule(mod, seen)\n })\n }\n\n /**\n * Update the module graph based on a module's updated imports information\n * If there are dependencies that no longer have any importers, they are\n * returned as a Set.\n */\n async updateModuleInfo(\n mod: ModuleNode,\n importedModules: Set<string | ModuleNode>,\n acceptedModules: Set<string | ModuleNode>,\n isSelfAccepting: boolean\n ): Promise<Set<ModuleNode> | undefined> {\n mod.isSelfAccepting = isSelfAccepting\n const prevImports = mod.importedModules\n const nextImports = (mod.importedModules = new Set())\n let noLongerImported: Set<ModuleNode> | undefined\n // update import graph\n for (const imported of importedModules) {\n const dep =\n typeof imported === 'string'\n ? await this.ensureEntryFromUrl(imported)\n : imported\n dep.importers.add(mod)\n nextImports.add(dep)\n }\n // remove the importer from deps that were imported but no longer are.\n prevImports.forEach((dep) => {\n if (!nextImports.has(dep)) {\n dep.importers.delete(mod)\n if (!dep.importers.size) {\n // dependency no longer imported\n ;(noLongerImported || (noLongerImported = new Set())).add(dep)\n }\n }\n })\n // update accepted hmr deps\n const deps = (mod.acceptedHmrDeps = new Set())\n for (const accepted of acceptedModules) {\n const dep =\n typeof accepted === 'string'\n ? await this.ensureEntryFromUrl(accepted)\n : accepted\n deps.add(dep)\n }\n return noLongerImported\n }\n\n async ensureEntryFromUrl(rawUrl: string): Promise<ModuleNode> {\n const [url, resolvedId] = await this.resolveUrl(rawUrl)\n let mod = this.urlToModuleMap.get(url)\n if (!mod) {\n mod = new ModuleNode(url)\n this.urlToModuleMap.set(url, mod)\n mod.id = resolvedId\n this.idToModuleMap.set(resolvedId, mod)\n const file = (mod.file = cleanUrl(resolvedId))\n let fileMappedModules = this.fileToModulesMap.get(file)\n if (!fileMappedModules) {\n fileMappedModules = new Set()\n this.fileToModulesMap.set(file, fileMappedModules)\n }\n fileMappedModules.add(mod)\n }\n return mod\n }\n\n // some deps, like a css file referenced via @import, don't have its own\n // url because they are inlined into the main css import. But they still\n // need to be represented in the module graph so that they can trigger\n // hmr in the importing css file.\n createFileOnlyEntry(file: string): ModuleNode {\n file = normalizePath(file)\n let fileMappedModules = this.fileToModulesMap.get(file)\n if (!fileMappedModules) {\n fileMappedModules = new Set()\n this.fileToModulesMap.set(file, fileMappedModules)\n }\n\n const url = `${FS_PREFIX}${file}`\n for (const m of fileMappedModules) {\n if (m.url === url || m.id === file) {\n return m\n }\n }\n\n const mod = new ModuleNode(url)\n mod.file = file\n fileMappedModules.add(mod)\n return mod\n }\n\n // for incoming urls, it is important to:\n // 1. remove the HMR timestamp query (?t=xxxx)\n // 2. resolve its extension so that urls with or without extension all map to\n // the same module\n async resolveUrl(url: string): Promise<[string, string]> {\n url = removeImportQuery(removeTimestampQuery(url))\n const resolvedId = (await this.container.resolveId(url))?.id || url\n const ext = extname(cleanUrl(resolvedId))\n const { pathname, search, hash } = parseUrl(url)\n if (ext && !pathname!.endsWith(ext)) {\n url = pathname + ext + (search || '') + (hash || '')\n }\n return [url, resolvedId]\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport chalk from 'chalk'\nimport { createServer, ViteDevServer } from '..'\nimport { createDebugger, normalizePath } from '../utils'\nimport { ModuleNode } from './moduleGraph'\nimport { Update } from 'types/hmrPayload'\nimport { CLIENT_DIR } from '../constants'\nimport { RollupError } from 'rollup'\nimport match from 'minimatch'\nimport { Server } from 'http'\nimport { isCSSRequest } from '../plugins/css'\n\nexport const debugHmr = createDebugger('vite:hmr')\n\nconst normalizedClientDir = normalizePath(CLIENT_DIR)\n\nexport interface HmrOptions {\n protocol?: string\n host?: string\n port?: number\n clientPort?: number\n path?: string\n timeout?: number\n overlay?: boolean\n server?: Server\n}\n\nexport interface HmrContext {\n file: string\n timestamp: number\n modules: Array<ModuleNode>\n read: () => string | Promise<string>\n server: ViteDevServer\n}\n\nfunction getShortName(file: string, root: string) {\n return file.startsWith(root + '/') ? path.posix.relative(root, file) : file\n}\n\nexport async function handleHMRUpdate(\n file: string,\n server: ViteDevServer\n): Promise<any> {\n const { ws, config, moduleGraph } = server\n const shortFile = getShortName(file, config.root)\n\n const isConfig = file === config.configFile\n const isConfigDependency = config.configFileDependencies.some(\n (name) => file === path.resolve(name)\n )\n const isEnv = config.inlineConfig.envFile !== false && file.endsWith('.env')\n if (isConfig || isConfigDependency || isEnv) {\n // auto restart server\n debugHmr(`[config change] ${chalk.dim(shortFile)}`)\n config.logger.info(\n chalk.green(\n `${path.relative(process.cwd(), file)} changed, restarting server...`\n ),\n { clear: true, timestamp: true }\n )\n await restartServer(server)\n return\n }\n\n debugHmr(`[file change] ${chalk.dim(shortFile)}`)\n\n // (dev only) the client itself cannot be hot updated.\n if (file.startsWith(normalizedClientDir)) {\n ws.send({\n type: 'full-reload',\n path: '*'\n })\n return\n }\n\n const mods = moduleGraph.getModulesByFile(file)\n\n // check if any plugin wants to perform custom HMR handling\n const timestamp = Date.now()\n const hmrContext: HmrContext = {\n file,\n timestamp,\n modules: mods ? [...mods] : [],\n read: () => readModifiedFile(file),\n server\n }\n\n for (const plugin of config.plugins) {\n if (plugin.handleHotUpdate) {\n const filteredModules = await plugin.handleHotUpdate(hmrContext)\n if (filteredModules) {\n hmrContext.modules = filteredModules\n }\n }\n }\n\n if (!hmrContext.modules.length) {\n // html file cannot be hot updated\n if (file.endsWith('.html')) {\n config.logger.info(chalk.green(`page reload `) + chalk.dim(shortFile), {\n clear: true,\n timestamp: true\n })\n ws.send({\n type: 'full-reload',\n path: config.server.middlewareMode\n ? '*'\n : '/' + normalizePath(path.relative(config.root, file))\n })\n } else {\n // loaded but not in the module graph, probably not js\n debugHmr(`[no modules matched] ${chalk.dim(shortFile)}`)\n }\n return\n }\n\n updateModules(shortFile, hmrContext.modules, timestamp, server)\n}\n\nfunction updateModules(\n file: string,\n modules: ModuleNode[],\n timestamp: number,\n { config, ws }: ViteDevServer\n) {\n const updates: Update[] = []\n const invalidatedModules = new Set<ModuleNode>()\n let needFullReload = false\n\n for (const mod of modules) {\n invalidate(mod, timestamp, invalidatedModules)\n if (needFullReload) {\n continue\n }\n\n const boundaries = new Set<{\n boundary: ModuleNode\n acceptedVia: ModuleNode\n }>()\n const hasDeadEnd = propagateUpdate(mod, boundaries)\n if (hasDeadEnd) {\n needFullReload = true\n continue\n }\n\n updates.push(\n ...[...boundaries].map(({ boundary, acceptedVia }) => ({\n type: `${boundary.type}-update` as Update['type'],\n timestamp,\n path: boundary.url,\n acceptedPath: acceptedVia.url\n }))\n )\n }\n\n if (needFullReload) {\n config.logger.info(chalk.green(`page reload `) + chalk.dim(file), {\n clear: true,\n timestamp: true\n })\n ws.send({\n type: 'full-reload'\n })\n } else {\n config.logger.info(\n updates\n .map(({ path }) => chalk.green(`hmr update `) + chalk.dim(path))\n .join('\\n'),\n { clear: true, timestamp: true }\n )\n ws.send({\n type: 'update',\n updates\n })\n }\n}\n\nexport async function handleFileAddUnlink(\n file: string,\n server: ViteDevServer,\n isUnlink = false\n): Promise<void> {\n const modules = [...(server.moduleGraph.getModulesByFile(file) ?? [])]\n if (isUnlink && file in server._globImporters) {\n delete server._globImporters[file]\n } else {\n for (const i in server._globImporters) {\n const { module, importGlobs } = server._globImporters[i]\n for (const { base, pattern } of importGlobs) {\n if (match(file, pattern) || match(path.relative(base, file), pattern)) {\n modules.push(module)\n // We use `onFileChange` to invalidate `module.file` so that subsequent `ssrLoadModule()`\n // calls get fresh glob import results with(out) the newly added(/removed) `file`.\n server.moduleGraph.onFileChange(module.file!)\n break\n }\n }\n }\n }\n if (modules.length > 0) {\n updateModules(\n getShortName(file, server.config.root),\n modules,\n Date.now(),\n server\n )\n }\n}\n\nfunction propagateUpdate(\n node: ModuleNode,\n boundaries: Set<{\n boundary: ModuleNode\n acceptedVia: ModuleNode\n }>,\n currentChain: ModuleNode[] = [node]\n): boolean /* hasDeadEnd */ {\n if (node.isSelfAccepting) {\n boundaries.add({\n boundary: node,\n acceptedVia: node\n })\n\n // additionally check for CSS importers, since a PostCSS plugin like\n // Tailwind JIT may register any file as a dependency to a CSS file.\n for (const importer of node.importers) {\n if (isCSSRequest(importer.url) && !currentChain.includes(importer)) {\n propagateUpdate(importer, boundaries, currentChain.concat(importer))\n }\n }\n\n return false\n }\n\n if (!node.importers.size) {\n return true\n }\n\n // #3716, #3913\n // For a non-CSS file, if all of its importers are CSS files (registered via\n // PostCSS plugins) it should be considered a dead end and force full reload.\n if (\n !isCSSRequest(node.url) &&\n [...node.importers].every((i) => isCSSRequest(i.url))\n ) {\n return true\n }\n\n for (const importer of node.importers) {\n const subChain = currentChain.concat(importer)\n if (importer.acceptedHmrDeps.has(node)) {\n boundaries.add({\n boundary: importer,\n acceptedVia: node\n })\n continue\n }\n\n if (currentChain.includes(importer)) {\n // circular deps is considered dead end\n return true\n }\n\n if (propagateUpdate(importer, boundaries, subChain)) {\n return true\n }\n }\n return false\n}\n\nfunction invalidate(mod: ModuleNode, timestamp: number, seen: Set<ModuleNode>) {\n if (seen.has(mod)) {\n return\n }\n seen.add(mod)\n mod.lastHMRTimestamp = timestamp\n mod.transformResult = null\n mod.ssrModule = null\n mod.ssrTransformResult = null\n mod.importers.forEach((importer) => {\n if (!importer.acceptedHmrDeps.has(mod)) {\n invalidate(importer, timestamp, seen)\n }\n })\n}\n\nexport function handlePrunedModules(\n mods: Set<ModuleNode>,\n { ws }: ViteDevServer\n): void {\n // update the disposed modules' hmr timestamp\n // since if it's re-imported, it should re-apply side effects\n // and without the timestamp the browser will not re-import it!\n const t = Date.now()\n mods.forEach((mod) => {\n mod.lastHMRTimestamp = t\n debugHmr(`[dispose] ${chalk.dim(mod.file)}`)\n })\n ws.send({\n type: 'prune',\n paths: [...mods].map((m) => m.url)\n })\n}\n\nconst enum LexerState {\n inCall,\n inSingleQuoteString,\n inDoubleQuoteString,\n inTemplateString,\n inArray\n}\n\n/**\n * Lex import.meta.hot.accept() for accepted deps.\n * Since hot.accept() can only accept string literals or array of string\n * literals, we don't really need a heavy @babel/parse call on the entire source.\n *\n * @returns selfAccepts\n */\nexport function lexAcceptedHmrDeps(\n code: string,\n start: number,\n urls: Set<{ url: string; start: number; end: number }>\n): boolean {\n let state: LexerState = LexerState.inCall\n // the state can only be 2 levels deep so no need for a stack\n let prevState: LexerState = LexerState.inCall\n let currentDep: string = ''\n\n function addDep(index: number) {\n urls.add({\n url: currentDep,\n start: index - currentDep.length - 1,\n end: index + 1\n })\n currentDep = ''\n }\n\n for (let i = start; i < code.length; i++) {\n const char = code.charAt(i)\n switch (state) {\n case LexerState.inCall:\n case LexerState.inArray:\n if (char === `'`) {\n prevState = state\n state = LexerState.inSingleQuoteString\n } else if (char === `\"`) {\n prevState = state\n state = LexerState.inDoubleQuoteString\n } else if (char === '`') {\n prevState = state\n state = LexerState.inTemplateString\n } else if (/\\s/.test(char)) {\n continue\n } else {\n if (state === LexerState.inCall) {\n if (char === `[`) {\n state = LexerState.inArray\n } else {\n // reaching here means the first arg is neither a string literal\n // nor an Array literal (direct callback) or there is no arg\n // in both case this indicates a self-accepting module\n return true // done\n }\n } else if (state === LexerState.inArray) {\n if (char === `]`) {\n return false // done\n } else if (char === ',') {\n continue\n } else {\n error(i)\n }\n }\n }\n break\n case LexerState.inSingleQuoteString:\n if (char === `'`) {\n addDep(i)\n if (prevState === LexerState.inCall) {\n // accept('foo', ...)\n return false\n } else {\n state = prevState\n }\n } else {\n currentDep += char\n }\n break\n case LexerState.inDoubleQuoteString:\n if (char === `\"`) {\n addDep(i)\n if (prevState === LexerState.inCall) {\n // accept('foo', ...)\n return false\n } else {\n state = prevState\n }\n } else {\n currentDep += char\n }\n break\n case LexerState.inTemplateString:\n if (char === '`') {\n addDep(i)\n if (prevState === LexerState.inCall) {\n // accept('foo', ...)\n return false\n } else {\n state = prevState\n }\n } else if (char === '$' && code.charAt(i + 1) === '{') {\n error(i)\n } else {\n currentDep += char\n }\n break\n default:\n throw new Error('unknown import.meta.hot lexer state')\n }\n }\n return false\n}\n\nfunction error(pos: number) {\n const err = new Error(\n `import.meta.accept() can only accept string literals or an ` +\n `Array of string literals.`\n ) as RollupError\n err.pos = pos\n throw err\n}\n\n// vitejs/vite#610 when hot-reloading Vue files, we read immediately on file\n// change event and sometimes this can be too early and get an empty buffer.\n// Poll until the file's modified time has changed before reading again.\nasync function readModifiedFile(file: string): Promise<string> {\n const content = fs.readFileSync(file, 'utf-8')\n if (!content) {\n const mtime = fs.statSync(file).mtimeMs\n await new Promise((r) => {\n let n = 0\n const poll = async () => {\n n++\n const newMtime = fs.statSync(file).mtimeMs\n if (newMtime !== mtime || n > 10) {\n r(0)\n } else {\n setTimeout(poll, 10)\n }\n }\n setTimeout(poll, 10)\n })\n return fs.readFileSync(file, 'utf-8')\n } else {\n return content\n }\n}\n\nasync function restartServer(server: ViteDevServer) {\n // @ts-ignore\n global.__vite_start_time = Date.now()\n const { port } = server.config.server\n \n await server.close()\n \n let newServer = null\n try {\n newServer = await createServer(server.config.inlineConfig)\n } catch (err) {\n server.config.logger.error(err.message, {\n timestamp: true,\n })\n return\n }\n\n for (const key in newServer) {\n if (key !== 'app') {\n // @ts-ignore\n server[key] = newServer[key]\n }\n }\n if (!server.config.server.middlewareMode) {\n await server.listen(port, true)\n } else {\n server.config.logger.info('server restarted.', { timestamp: true })\n }\n}\n","'use strict';\nconst fs = require('fs');\n\nlet isDocker;\n\nfunction hasDockerEnv() {\n\ttry {\n\t\tfs.statSync('/.dockerenv');\n\t\treturn true;\n\t} catch (_) {\n\t\treturn false;\n\t}\n}\n\nfunction hasDockerCGroup() {\n\ttry {\n\t\treturn fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');\n\t} catch (_) {\n\t\treturn false;\n\t}\n}\n\nmodule.exports = () => {\n\tif (isDocker === undefined) {\n\t\tisDocker = hasDockerEnv() || hasDockerCGroup();\n\t}\n\n\treturn isDocker;\n};\n","'use strict';\nconst os = require('os');\nconst fs = require('fs');\nconst isDocker = require('is-docker');\n\nconst isWsl = () => {\n\tif (process.platform !== 'linux') {\n\t\treturn false;\n\t}\n\n\tif (os.release().toLowerCase().includes('microsoft')) {\n\t\tif (isDocker()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\ttry {\n\t\treturn fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft') ?\n\t\t\t!isDocker() : false;\n\t} catch (_) {\n\t\treturn false;\n\t}\n};\n\nif (process.env.__IS_WSL_TEST__) {\n\tmodule.exports = isWsl;\n} else {\n\tmodule.exports = isWsl();\n}\n","'use strict';\nmodule.exports = (object, propertyName, fn) => {\n\tconst define = value => Object.defineProperty(object, propertyName, {value, enumerable: true, writable: true});\n\n\tObject.defineProperty(object, propertyName, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\tget() {\n\t\t\tconst result = fn();\n\t\t\tdefine(result);\n\t\t\treturn result;\n\t\t},\n\t\tset(value) {\n\t\t\tdefine(value);\n\t\t}\n\t});\n\n\treturn object;\n};\n","const path = require('path');\nconst childProcess = require('child_process');\nconst {promises: fs, constants: fsConstants} = require('fs');\nconst isWsl = require('is-wsl');\nconst isDocker = require('is-docker');\nconst defineLazyProperty = require('define-lazy-prop');\n\n// Path to included `xdg-open`.\nconst localXdgOpenPath = path.join(__dirname, 'xdg-open');\n\nconst {platform, arch} = process;\n\n/**\nGet the mount point for fixed drives in WSL.\n\n@inner\n@returns {string} The mount point.\n*/\nconst getWslDrivesMountPoint = (() => {\n\t// Default value for \"root\" param\n\t// according to https://docs.microsoft.com/en-us/windows/wsl/wsl-config\n\tconst defaultMountPoint = '/mnt/';\n\n\tlet mountPoint;\n\n\treturn async function () {\n\t\tif (mountPoint) {\n\t\t\t// Return memoized mount point value\n\t\t\treturn mountPoint;\n\t\t}\n\n\t\tconst configFilePath = '/etc/wsl.conf';\n\n\t\tlet isConfigFileExists = false;\n\t\ttry {\n\t\t\tawait fs.access(configFilePath, fsConstants.F_OK);\n\t\t\tisConfigFileExists = true;\n\t\t} catch {}\n\n\t\tif (!isConfigFileExists) {\n\t\t\treturn defaultMountPoint;\n\t\t}\n\n\t\tconst configContent = await fs.readFile(configFilePath, {encoding: 'utf8'});\n\t\tconst configMountPoint = /(?<!#.*)root\\s*=\\s*(?<mountPoint>.*)/g.exec(configContent);\n\n\t\tif (!configMountPoint) {\n\t\t\treturn defaultMountPoint;\n\t\t}\n\n\t\tmountPoint = configMountPoint.groups.mountPoint.trim();\n\t\tmountPoint = mountPoint.endsWith('/') ? mountPoint : `${mountPoint}/`;\n\n\t\treturn mountPoint;\n\t};\n})();\n\nconst pTryEach = async (array, mapper) => {\n\tlet latestError;\n\n\tfor (const item of array) {\n\t\ttry {\n\t\t\treturn await mapper(item); // eslint-disable-line no-await-in-loop\n\t\t} catch (error) {\n\t\t\tlatestError = error;\n\t\t}\n\t}\n\n\tthrow latestError;\n};\n\nconst open = async (target, options) => {\n\tif (typeof target !== 'string') {\n\t\tthrow new TypeError('Expected a `target`');\n\t}\n\n\toptions = {\n\t\twait: false,\n\t\tbackground: false,\n\t\tnewInstance: false,\n\t\tallowNonzeroExitCode: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(options.app)) {\n\t\treturn pTryEach(options.app, singleApp => open(target, {\n\t\t\t...options,\n\t\t\tapp: singleApp\n\t\t}));\n\t}\n\n\tlet {name: app, arguments: appArguments = []} = options.app || {};\n\tappArguments = [...appArguments];\n\n\tif (Array.isArray(app)) {\n\t\treturn pTryEach(app, appName => open(target, {\n\t\t\t...options,\n\t\t\tapp: {\n\t\t\t\tname: appName,\n\t\t\t\targuments: appArguments\n\t\t\t}\n\t\t}));\n\t}\n\n\tlet command;\n\tconst cliArguments = [];\n\tconst childProcessOptions = {};\n\n\tif (platform === 'darwin') {\n\t\tcommand = 'open';\n\n\t\tif (options.wait) {\n\t\t\tcliArguments.push('--wait-apps');\n\t\t}\n\n\t\tif (options.background) {\n\t\t\tcliArguments.push('--background');\n\t\t}\n\n\t\tif (options.newInstance) {\n\t\t\tcliArguments.push('--new');\n\t\t}\n\n\t\tif (app) {\n\t\t\tcliArguments.push('-a', app);\n\t\t}\n\t} else if (platform === 'win32' || (isWsl && !isDocker())) {\n\t\tconst mountPoint = await getWslDrivesMountPoint();\n\n\t\tcommand = isWsl ?\n\t\t\t`${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe` :\n\t\t\t`${process.env.SYSTEMROOT}\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\powershell`;\n\n\t\tcliArguments.push(\n\t\t\t'-NoProfile',\n\t\t\t'-NonInteractive',\n\t\t\t'ExecutionPolicy',\n\t\t\t'Bypass',\n\t\t\t'-EncodedCommand'\n\t\t);\n\n\t\tif (!isWsl) {\n\t\t\tchildProcessOptions.windowsVerbatimArguments = true;\n\t\t}\n\n\t\tconst encodedArguments = ['Start'];\n\n\t\tif (options.wait) {\n\t\t\tencodedArguments.push('-Wait');\n\t\t}\n\n\t\tif (app) {\n\t\t\t// Double quote with double quotes to ensure the inner quotes are passed through.\n\t\t\t// Inner quotes are delimited for PowerShell interpretation with backticks.\n\t\t\tencodedArguments.push(`\"\\`\"${app}\\`\"\"`, '-ArgumentList');\n\t\t\tappArguments.unshift(target);\n\t\t} else {\n\t\t\tencodedArguments.push(`\"${target}\"`);\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tappArguments = appArguments.map(arg => `\"\\`\"${arg}\\`\"\"`);\n\t\t\tencodedArguments.push(appArguments.join(','));\n\t\t}\n\n\t\t// Using Base64-encoded command, accepted by PowerShell, to allow special characters.\n\t\ttarget = Buffer.from(encodedArguments.join(' '), 'utf16le').toString('base64');\n\t} else {\n\t\tif (app) {\n\t\t\tcommand = app;\n\t\t} else {\n\t\t\t// When bundled by Webpack, there's no actual package file path and no local `xdg-open`.\n\t\t\tconst isBundled = !__dirname || __dirname === '/';\n\n\t\t\t// Check if local `xdg-open` exists and is executable.\n\t\t\tlet exeLocalXdgOpen = false;\n\t\t\ttry {\n\t\t\t\tawait fs.access(localXdgOpenPath, fsConstants.X_OK);\n\t\t\t\texeLocalXdgOpen = true;\n\t\t\t} catch {}\n\n\t\t\tconst useSystemXdgOpen = process.versions.electron ||\n\t\t\t\tplatform === 'android' || isBundled || !exeLocalXdgOpen;\n\t\t\tcommand = useSystemXdgOpen ? 'xdg-open' : localXdgOpenPath;\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tcliArguments.push(...appArguments);\n\t\t}\n\n\t\tif (!options.wait) {\n\t\t\t// `xdg-open` will block the process unless stdio is ignored\n\t\t\t// and it's detached from the parent even if it's unref'd.\n\t\t\tchildProcessOptions.stdio = 'ignore';\n\t\t\tchildProcessOptions.detached = true;\n\t\t}\n\t}\n\n\tcliArguments.push(target);\n\n\tif (platform === 'darwin' && appArguments.length > 0) {\n\t\tcliArguments.push('--args', ...appArguments);\n\t}\n\n\tconst subprocess = childProcess.spawn(command, cliArguments, childProcessOptions);\n\n\tif (options.wait) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tsubprocess.once('error', reject);\n\n\t\t\tsubprocess.once('close', exitCode => {\n\t\t\t\tif (options.allowNonzeroExitCode && exitCode > 0) {\n\t\t\t\t\treject(new Error(`Exited with code ${exitCode}`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve(subprocess);\n\t\t\t});\n\t\t});\n\t}\n\n\tsubprocess.unref();\n\n\treturn subprocess;\n};\n\nfunction detectArchBinary(binary) {\n\tif (typeof binary === 'string' || Array.isArray(binary)) {\n\t\treturn binary;\n\t}\n\n\tconst {[arch]: archBinary} = binary;\n\n\tif (!archBinary) {\n\t\tthrow new Error(`${arch} is not supported`);\n\t}\n\n\treturn archBinary;\n}\n\nfunction detectPlatformBinary({[platform]: platformBinary}, {wsl}) {\n\tif (wsl && isWsl) {\n\t\treturn detectArchBinary(wsl);\n\t}\n\n\tif (!platformBinary) {\n\t\tthrow new Error(`${platform} is not supported`);\n\t}\n\n\treturn detectArchBinary(platformBinary);\n}\n\nconst apps = {};\n\ndefineLazyProperty(apps, 'chrome', () => detectPlatformBinary({\n\tdarwin: 'google chrome',\n\twin32: 'chrome',\n\tlinux: ['google-chrome', 'google-chrome-stable']\n}, {\n\twsl: {\n\t\tia32: '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe',\n\t\tx64: ['/mnt/c/Program Files/Google/Chrome/Application/chrome.exe', '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe']\n\t}\n}));\n\ndefineLazyProperty(apps, 'firefox', () => detectPlatformBinary({\n\tdarwin: 'firefox',\n\twin32: 'C:\\\\Program Files\\\\Mozilla Firefox\\\\firefox.exe',\n\tlinux: 'firefox'\n}, {\n\twsl: '/mnt/c/Program Files/Mozilla Firefox/firefox.exe'\n}));\n\ndefineLazyProperty(apps, 'edge', () => detectPlatformBinary({\n\tdarwin: 'microsoft edge',\n\twin32: 'msedge',\n\tlinux: 'microsoft-edge'\n}, {\n\twsl: '/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'\n}));\n\nopen.apps = apps;\n\nmodule.exports = open;\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n","module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n","var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n","const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n","'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(\\\\*)\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(\\\\*)$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n","'use strict';\nmodule.exports = /^#!(.*)/;\n","'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n","'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n","'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n","'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed, 'spawn');\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n","'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n","'use strict';\n\nmodule.exports = input => {\n\tconst LF = typeof input === 'string' ? '\\n' : '\\n'.charCodeAt();\n\tconst CR = typeof input === 'string' ? '\\r' : '\\r'.charCodeAt();\n\n\tif (input[input.length - 1] === LF) {\n\t\tinput = input.slice(0, input.length - 1);\n\t}\n\n\tif (input[input.length - 1] === CR) {\n\t\tinput = input.slice(0, input.length - 1);\n\t}\n\n\treturn input;\n};\n","'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n","'use strict';\nconst path = require('path');\nconst pathKey = require('path-key');\n\nconst npmRunPath = options => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\tpath: process.env[pathKey()],\n\t\texecPath: process.execPath,\n\t\t...options\n\t};\n\n\tlet previous;\n\tlet cwdPath = path.resolve(options.cwd);\n\tconst result = [];\n\n\twhile (previous !== cwdPath) {\n\t\tresult.push(path.join(cwdPath, 'node_modules/.bin'));\n\t\tprevious = cwdPath;\n\t\tcwdPath = path.resolve(cwdPath, '..');\n\t}\n\n\t// Ensure the running `node` binary is used\n\tconst execPathDir = path.resolve(options.cwd, options.execPath, '..');\n\tresult.push(execPathDir);\n\n\treturn result.concat(options.path).join(path.delimiter);\n};\n\nmodule.exports = npmRunPath;\n// TODO: Remove this for the next major release\nmodule.exports.default = npmRunPath;\n\nmodule.exports.env = options => {\n\toptions = {\n\t\tenv: process.env,\n\t\t...options\n\t};\n\n\tconst env = {...options.env};\n\tconst path = pathKey({env});\n\n\toptions.path = env[path];\n\tenv[path] = module.exports(options);\n\n\treturn env;\n};\n","'use strict';\n\nconst mimicFn = (to, from) => {\n\tfor (const prop of Reflect.ownKeys(from)) {\n\t\tObject.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));\n\t}\n\n\treturn to;\n};\n\nmodule.exports = mimicFn;\n// TODO: Remove this for the next major release\nmodule.exports.default = mimicFn;\n","'use strict';\nconst mimicFn = require('mimic-fn');\n\nconst calledFunctions = new WeakMap();\n\nconst onetime = (function_, options = {}) => {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet returnValue;\n\tlet callCount = 0;\n\tconst functionName = function_.displayName || function_.name || '<anonymous>';\n\n\tconst onetime = function (...arguments_) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (callCount === 1) {\n\t\t\treturnValue = function_.apply(this, arguments_);\n\t\t\tfunction_ = null;\n\t\t} else if (options.throw === true) {\n\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t}\n\n\t\treturn returnValue;\n\t};\n\n\tmimicFn(onetime, function_);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nmodule.exports = onetime;\n// TODO: Remove this for the next major release\nmodule.exports.default = onetime;\n\nmodule.exports.callCount = function_ => {\n\tif (!calledFunctions.has(function_)) {\n\t\tthrow new Error(`The given function \\`${function_.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(function_);\n};\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.SIGNALS=void 0;\n\nconst SIGNALS=[\n{\nname:\"SIGHUP\",\nnumber:1,\naction:\"terminate\",\ndescription:\"Terminal closed\",\nstandard:\"posix\"},\n\n{\nname:\"SIGINT\",\nnumber:2,\naction:\"terminate\",\ndescription:\"User interruption with CTRL-C\",\nstandard:\"ansi\"},\n\n{\nname:\"SIGQUIT\",\nnumber:3,\naction:\"core\",\ndescription:\"User interruption with CTRL-\\\\\",\nstandard:\"posix\"},\n\n{\nname:\"SIGILL\",\nnumber:4,\naction:\"core\",\ndescription:\"Invalid machine instruction\",\nstandard:\"ansi\"},\n\n{\nname:\"SIGTRAP\",\nnumber:5,\naction:\"core\",\ndescription:\"Debugger breakpoint\",\nstandard:\"posix\"},\n\n{\nname:\"SIGABRT\",\nnumber:6,\naction:\"core\",\ndescription:\"Aborted\",\nstandard:\"ansi\"},\n\n{\nname:\"SIGIOT\",\nnumber:6,\naction:\"core\",\ndescription:\"Aborted\",\nstandard:\"bsd\"},\n\n{\nname:\"SIGBUS\",\nnumber:7,\naction:\"core\",\ndescription:\n\"Bus error due to misaligned, non-existing address or paging error\",\nstandard:\"bsd\"},\n\n{\nname:\"SIGEMT\",\nnumber:7,\naction:\"terminate\",\ndescription:\"Command should be emulated but is not implemented\",\nstandard:\"other\"},\n\n{\nname:\"SIGFPE\",\nnumber:8,\naction:\"core\",\ndescription:\"Floating point arithmetic error\",\nstandard:\"ansi\"},\n\n{\nname:\"SIGKILL\",\nnumber:9,\naction:\"terminate\",\ndescription:\"Forced termination\",\nstandard:\"posix\",\nforced:true},\n\n{\nname:\"SIGUSR1\",\nnumber:10,\naction:\"terminate\",\ndescription:\"Application-specific signal\",\nstandard:\"posix\"},\n\n{\nname:\"SIGSEGV\",\nnumber:11,\naction:\"core\",\ndescription:\"Segmentation fault\",\nstandard:\"ansi\"},\n\n{\nname:\"SIGUSR2\",\nnumber:12,\naction:\"terminate\",\ndescription:\"Application-specific signal\",\nstandard:\"posix\"},\n\n{\nname:\"SIGPIPE\",\nnumber:13,\naction:\"terminate\",\ndescription:\"Broken pipe or socket\",\nstandard:\"posix\"},\n\n{\nname:\"SIGALRM\",\nnumber:14,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"posix\"},\n\n{\nname:\"SIGTERM\",\nnumber:15,\naction:\"terminate\",\ndescription:\"Termination\",\nstandard:\"ansi\"},\n\n{\nname:\"SIGSTKFLT\",\nnumber:16,\naction:\"terminate\",\ndescription:\"Stack is empty or overflowed\",\nstandard:\"other\"},\n\n{\nname:\"SIGCHLD\",\nnumber:17,\naction:\"ignore\",\ndescription:\"Child process terminated, paused or unpaused\",\nstandard:\"posix\"},\n\n{\nname:\"SIGCLD\",\nnumber:17,\naction:\"ignore\",\ndescription:\"Child process terminated, paused or unpaused\",\nstandard:\"other\"},\n\n{\nname:\"SIGCONT\",\nnumber:18,\naction:\"unpause\",\ndescription:\"Unpaused\",\nstandard:\"posix\",\nforced:true},\n\n{\nname:\"SIGSTOP\",\nnumber:19,\naction:\"pause\",\ndescription:\"Paused\",\nstandard:\"posix\",\nforced:true},\n\n{\nname:\"SIGTSTP\",\nnumber:20,\naction:\"pause\",\ndescription:\"Paused using CTRL-Z or \\\"suspend\\\"\",\nstandard:\"posix\"},\n\n{\nname:\"SIGTTIN\",\nnumber:21,\naction:\"pause\",\ndescription:\"Background process cannot read terminal input\",\nstandard:\"posix\"},\n\n{\nname:\"SIGBREAK\",\nnumber:21,\naction:\"terminate\",\ndescription:\"User interruption with CTRL-BREAK\",\nstandard:\"other\"},\n\n{\nname:\"SIGTTOU\",\nnumber:22,\naction:\"pause\",\ndescription:\"Background process cannot write to terminal output\",\nstandard:\"posix\"},\n\n{\nname:\"SIGURG\",\nnumber:23,\naction:\"ignore\",\ndescription:\"Socket received out-of-band data\",\nstandard:\"bsd\"},\n\n{\nname:\"SIGXCPU\",\nnumber:24,\naction:\"core\",\ndescription:\"Process timed out\",\nstandard:\"bsd\"},\n\n{\nname:\"SIGXFSZ\",\nnumber:25,\naction:\"core\",\ndescription:\"File too big\",\nstandard:\"bsd\"},\n\n{\nname:\"SIGVTALRM\",\nnumber:26,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"bsd\"},\n\n{\nname:\"SIGPROF\",\nnumber:27,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"bsd\"},\n\n{\nname:\"SIGWINCH\",\nnumber:28,\naction:\"ignore\",\ndescription:\"Terminal window size changed\",\nstandard:\"bsd\"},\n\n{\nname:\"SIGIO\",\nnumber:29,\naction:\"terminate\",\ndescription:\"I/O is available\",\nstandard:\"other\"},\n\n{\nname:\"SIGPOLL\",\nnumber:29,\naction:\"terminate\",\ndescription:\"Watched event\",\nstandard:\"other\"},\n\n{\nname:\"SIGINFO\",\nnumber:29,\naction:\"ignore\",\ndescription:\"Request for process information\",\nstandard:\"other\"},\n\n{\nname:\"SIGPWR\",\nnumber:30,\naction:\"terminate\",\ndescription:\"Device running out of power\",\nstandard:\"systemv\"},\n\n{\nname:\"SIGSYS\",\nnumber:31,\naction:\"core\",\ndescription:\"Invalid system call\",\nstandard:\"other\"},\n\n{\nname:\"SIGUNUSED\",\nnumber:31,\naction:\"terminate\",\ndescription:\"Invalid system call\",\nstandard:\"other\"}];exports.SIGNALS=SIGNALS;\n//# sourceMappingURL=core.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.SIGRTMAX=exports.getRealtimeSignals=void 0;\nconst getRealtimeSignals=function(){\nconst length=SIGRTMAX-SIGRTMIN+1;\nreturn Array.from({length},getRealtimeSignal);\n};exports.getRealtimeSignals=getRealtimeSignals;\n\nconst getRealtimeSignal=function(value,index){\nreturn{\nname:`SIGRT${index+1}`,\nnumber:SIGRTMIN+index,\naction:\"terminate\",\ndescription:\"Application-specific signal (realtime)\",\nstandard:\"posix\"};\n\n};\n\nconst SIGRTMIN=34;\nconst SIGRTMAX=64;exports.SIGRTMAX=SIGRTMAX;\n//# sourceMappingURL=realtime.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.getSignals=void 0;var _os=require(\"os\");\n\nvar _core=require(\"./core.js\");\nvar _realtime=require(\"./realtime.js\");\n\n\n\nconst getSignals=function(){\nconst realtimeSignals=(0,_realtime.getRealtimeSignals)();\nconst signals=[..._core.SIGNALS,...realtimeSignals].map(normalizeSignal);\nreturn signals;\n};exports.getSignals=getSignals;\n\n\n\n\n\n\n\nconst normalizeSignal=function({\nname,\nnumber:defaultNumber,\ndescription,\naction,\nforced=false,\nstandard})\n{\nconst{\nsignals:{[name]:constantSignal}}=\n_os.constants;\nconst supported=constantSignal!==undefined;\nconst number=supported?constantSignal:defaultNumber;\nreturn{name,number,description,supported,action,forced,standard};\n};\n//# sourceMappingURL=signals.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.signalsByNumber=exports.signalsByName=void 0;var _os=require(\"os\");\n\nvar _signals=require(\"./signals.js\");\nvar _realtime=require(\"./realtime.js\");\n\n\n\nconst getSignalsByName=function(){\nconst signals=(0,_signals.getSignals)();\nreturn signals.reduce(getSignalByName,{});\n};\n\nconst getSignalByName=function(\nsignalByNameMemo,\n{name,number,description,supported,action,forced,standard})\n{\nreturn{\n...signalByNameMemo,\n[name]:{name,number,description,supported,action,forced,standard}};\n\n};\n\nconst signalsByName=getSignalsByName();exports.signalsByName=signalsByName;\n\n\n\n\nconst getSignalsByNumber=function(){\nconst signals=(0,_signals.getSignals)();\nconst length=_realtime.SIGRTMAX+1;\nconst signalsA=Array.from({length},(value,number)=>\ngetSignalByNumber(number,signals));\n\nreturn Object.assign({},...signalsA);\n};\n\nconst getSignalByNumber=function(number,signals){\nconst signal=findSignalByNumber(number,signals);\n\nif(signal===undefined){\nreturn{};\n}\n\nconst{name,description,supported,action,forced,standard}=signal;\nreturn{\n[number]:{\nname,\nnumber,\ndescription,\nsupported,\naction,\nforced,\nstandard}};\n\n\n};\n\n\n\nconst findSignalByNumber=function(number,signals){\nconst signal=signals.find(({name})=>_os.constants.signals[name]===number);\n\nif(signal!==undefined){\nreturn signal;\n}\n\nreturn signals.find(signalA=>signalA.number===number);\n};\n\nconst signalsByNumber=getSignalsByNumber();exports.signalsByNumber=signalsByNumber;\n//# sourceMappingURL=main.js.map","'use strict';\nconst {signalsByName} = require('human-signals');\n\nconst getErrorPrefix = ({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}) => {\n\tif (timedOut) {\n\t\treturn `timed out after ${timeout} milliseconds`;\n\t}\n\n\tif (isCanceled) {\n\t\treturn 'was canceled';\n\t}\n\n\tif (errorCode !== undefined) {\n\t\treturn `failed with ${errorCode}`;\n\t}\n\n\tif (signal !== undefined) {\n\t\treturn `was killed with ${signal} (${signalDescription})`;\n\t}\n\n\tif (exitCode !== undefined) {\n\t\treturn `failed with exit code ${exitCode}`;\n\t}\n\n\treturn 'failed';\n};\n\nconst makeError = ({\n\tstdout,\n\tstderr,\n\tall,\n\terror,\n\tsignal,\n\texitCode,\n\tcommand,\n\tescapedCommand,\n\ttimedOut,\n\tisCanceled,\n\tkilled,\n\tparsed: {options: {timeout}}\n}) => {\n\t// `signal` and `exitCode` emitted on `spawned.on('exit')` event can be `null`.\n\t// We normalize them to `undefined`\n\texitCode = exitCode === null ? undefined : exitCode;\n\tsignal = signal === null ? undefined : signal;\n\tconst signalDescription = signal === undefined ? undefined : signalsByName[signal].description;\n\n\tconst errorCode = error && error.code;\n\n\tconst prefix = getErrorPrefix({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled});\n\tconst execaMessage = `Command ${prefix}: ${command}`;\n\tconst isError = Object.prototype.toString.call(error) === '[object Error]';\n\tconst shortMessage = isError ? `${execaMessage}\\n${error.message}` : execaMessage;\n\tconst message = [shortMessage, stderr, stdout].filter(Boolean).join('\\n');\n\n\tif (isError) {\n\t\terror.originalMessage = error.message;\n\t\terror.message = message;\n\t} else {\n\t\terror = new Error(message);\n\t}\n\n\terror.shortMessage = shortMessage;\n\terror.command = command;\n\terror.escapedCommand = escapedCommand;\n\terror.exitCode = exitCode;\n\terror.signal = signal;\n\terror.signalDescription = signalDescription;\n\terror.stdout = stdout;\n\terror.stderr = stderr;\n\n\tif (all !== undefined) {\n\t\terror.all = all;\n\t}\n\n\tif ('bufferedData' in error) {\n\t\tdelete error.bufferedData;\n\t}\n\n\terror.failed = true;\n\terror.timedOut = Boolean(timedOut);\n\terror.isCanceled = isCanceled;\n\terror.killed = killed && !timedOut;\n\n\treturn error;\n};\n\nmodule.exports = makeError;\n","'use strict';\nconst aliases = ['stdin', 'stdout', 'stderr'];\n\nconst hasAlias = options => aliases.some(alias => options[alias] !== undefined);\n\nconst normalizeStdio = options => {\n\tif (!options) {\n\t\treturn;\n\t}\n\n\tconst {stdio} = options;\n\n\tif (stdio === undefined) {\n\t\treturn aliases.map(alias => options[alias]);\n\t}\n\n\tif (hasAlias(options)) {\n\t\tthrow new Error(`It's not possible to provide \\`stdio\\` in combination with one of ${aliases.map(alias => `\\`${alias}\\``).join(', ')}`);\n\t}\n\n\tif (typeof stdio === 'string') {\n\t\treturn stdio;\n\t}\n\n\tif (!Array.isArray(stdio)) {\n\t\tthrow new TypeError(`Expected \\`stdio\\` to be of type \\`string\\` or \\`Array\\`, got \\`${typeof stdio}\\``);\n\t}\n\n\tconst length = Math.max(stdio.length, aliases.length);\n\treturn Array.from({length}, (value, index) => stdio[index]);\n};\n\nmodule.exports = normalizeStdio;\n\n// `ipc` is pushed unless it is already present\nmodule.exports.node = options => {\n\tconst stdio = normalizeStdio(options);\n\n\tif (stdio === 'ipc') {\n\t\treturn 'ipc';\n\t}\n\n\tif (stdio === undefined || typeof stdio === 'string') {\n\t\treturn [stdio, stdio, stdio, 'ipc'];\n\t}\n\n\tif (stdio.includes('ipc')) {\n\t\treturn stdio;\n\t}\n\n\treturn [...stdio, 'ipc'];\n};\n","// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n 'SIGABRT',\n 'SIGALRM',\n 'SIGHUP',\n 'SIGINT',\n 'SIGTERM'\n]\n\nif (process.platform !== 'win32') {\n module.exports.push(\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n module.exports.push(\n 'SIGIO',\n 'SIGPOLL',\n 'SIGPWR',\n 'SIGSTKFLT',\n 'SIGUNUSED'\n )\n}\n","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\nvar assert = require('assert')\nvar signals = require('./signals.js')\nvar isWin = /^win/i.test(process.platform)\n\nvar EE = require('events')\n/* istanbul ignore if */\nif (typeof EE !== 'function') {\n EE = EE.EventEmitter\n}\n\nvar emitter\nif (process.__signal_exit_emitter__) {\n emitter = process.__signal_exit_emitter__\n} else {\n emitter = process.__signal_exit_emitter__ = new EE()\n emitter.count = 0\n emitter.emitted = {}\n}\n\n// Because this emitter is a global, we have to check to see if a\n// previous version of this library failed to enable infinite listeners.\n// I know what you're about to say. But literally everything about\n// signal-exit is a compromise with evil. Get used to it.\nif (!emitter.infinite) {\n emitter.setMaxListeners(Infinity)\n emitter.infinite = true\n}\n\nmodule.exports = function (cb, opts) {\n assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')\n\n if (loaded === false) {\n load()\n }\n\n var ev = 'exit'\n if (opts && opts.alwaysLast) {\n ev = 'afterexit'\n }\n\n var remove = function () {\n emitter.removeListener(ev, cb)\n if (emitter.listeners('exit').length === 0 &&\n emitter.listeners('afterexit').length === 0) {\n unload()\n }\n }\n emitter.on(ev, cb)\n\n return remove\n}\n\nmodule.exports.unload = unload\nfunction unload () {\n if (!loaded) {\n return\n }\n loaded = false\n\n signals.forEach(function (sig) {\n try {\n process.removeListener(sig, sigListeners[sig])\n } catch (er) {}\n })\n process.emit = originalProcessEmit\n process.reallyExit = originalProcessReallyExit\n emitter.count -= 1\n}\n\nfunction emit (event, code, signal) {\n if (emitter.emitted[event]) {\n return\n }\n emitter.emitted[event] = true\n emitter.emit(event, code, signal)\n}\n\n// { <signal>: <listener fn>, ... }\nvar sigListeners = {}\nsignals.forEach(function (sig) {\n sigListeners[sig] = function listener () {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n var listeners = process.listeners(sig)\n if (listeners.length === emitter.count) {\n unload()\n emit('exit', null, sig)\n /* istanbul ignore next */\n emit('afterexit', null, sig)\n /* istanbul ignore next */\n if (isWin && sig === 'SIGHUP') {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n sig = 'SIGINT'\n }\n process.kill(process.pid, sig)\n }\n }\n})\n\nmodule.exports.signals = function () {\n return signals\n}\n\nmodule.exports.load = load\n\nvar loaded = false\n\nfunction load () {\n if (loaded) {\n return\n }\n loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n emitter.count += 1\n\n signals = signals.filter(function (sig) {\n try {\n process.on(sig, sigListeners[sig])\n return true\n } catch (er) {\n return false\n }\n })\n\n process.emit = processEmit\n process.reallyExit = processReallyExit\n}\n\nvar originalProcessReallyExit = process.reallyExit\nfunction processReallyExit (code) {\n process.exitCode = code || 0\n emit('exit', process.exitCode, null)\n /* istanbul ignore next */\n emit('afterexit', process.exitCode, null)\n /* istanbul ignore next */\n originalProcessReallyExit.call(process, process.exitCode)\n}\n\nvar originalProcessEmit = process.emit\nfunction processEmit (ev, arg) {\n if (ev === 'exit') {\n if (arg !== undefined) {\n process.exitCode = arg\n }\n var ret = originalProcessEmit.apply(this, arguments)\n emit('exit', process.exitCode, null)\n /* istanbul ignore next */\n emit('afterexit', process.exitCode, null)\n return ret\n } else {\n return originalProcessEmit.apply(this, arguments)\n }\n}\n","'use strict';\nconst os = require('os');\nconst onExit = require('signal-exit');\n\nconst DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5;\n\n// Monkey-patches `childProcess.kill()` to add `forceKillAfterTimeout` behavior\nconst spawnedKill = (kill, signal = 'SIGTERM', options = {}) => {\n\tconst killResult = kill(signal);\n\tsetKillTimeout(kill, signal, options, killResult);\n\treturn killResult;\n};\n\nconst setKillTimeout = (kill, signal, options, killResult) => {\n\tif (!shouldForceKill(signal, options, killResult)) {\n\t\treturn;\n\t}\n\n\tconst timeout = getForceKillAfterTimeout(options);\n\tconst t = setTimeout(() => {\n\t\tkill('SIGKILL');\n\t}, timeout);\n\n\t// Guarded because there's no `.unref()` when `execa` is used in the renderer\n\t// process in Electron. This cannot be tested since we don't run tests in\n\t// Electron.\n\t// istanbul ignore else\n\tif (t.unref) {\n\t\tt.unref();\n\t}\n};\n\nconst shouldForceKill = (signal, {forceKillAfterTimeout}, killResult) => {\n\treturn isSigterm(signal) && forceKillAfterTimeout !== false && killResult;\n};\n\nconst isSigterm = signal => {\n\treturn signal === os.constants.signals.SIGTERM ||\n\t\t(typeof signal === 'string' && signal.toUpperCase() === 'SIGTERM');\n};\n\nconst getForceKillAfterTimeout = ({forceKillAfterTimeout = true}) => {\n\tif (forceKillAfterTimeout === true) {\n\t\treturn DEFAULT_FORCE_KILL_TIMEOUT;\n\t}\n\n\tif (!Number.isFinite(forceKillAfterTimeout) || forceKillAfterTimeout < 0) {\n\t\tthrow new TypeError(`Expected the \\`forceKillAfterTimeout\\` option to be a non-negative integer, got \\`${forceKillAfterTimeout}\\` (${typeof forceKillAfterTimeout})`);\n\t}\n\n\treturn forceKillAfterTimeout;\n};\n\n// `childProcess.cancel()`\nconst spawnedCancel = (spawned, context) => {\n\tconst killResult = spawned.kill();\n\n\tif (killResult) {\n\t\tcontext.isCanceled = true;\n\t}\n};\n\nconst timeoutKill = (spawned, signal, reject) => {\n\tspawned.kill(signal);\n\treject(Object.assign(new Error('Timed out'), {timedOut: true, signal}));\n};\n\n// `timeout` option handling\nconst setupTimeout = (spawned, {timeout, killSignal = 'SIGTERM'}, spawnedPromise) => {\n\tif (timeout === 0 || timeout === undefined) {\n\t\treturn spawnedPromise;\n\t}\n\n\tlet timeoutId;\n\tconst timeoutPromise = new Promise((resolve, reject) => {\n\t\ttimeoutId = setTimeout(() => {\n\t\t\ttimeoutKill(spawned, killSignal, reject);\n\t\t}, timeout);\n\t});\n\n\tconst safeSpawnedPromise = spawnedPromise.finally(() => {\n\t\tclearTimeout(timeoutId);\n\t});\n\n\treturn Promise.race([timeoutPromise, safeSpawnedPromise]);\n};\n\nconst validateTimeout = ({timeout}) => {\n\tif (timeout !== undefined && (!Number.isFinite(timeout) || timeout < 0)) {\n\t\tthrow new TypeError(`Expected the \\`timeout\\` option to be a non-negative integer, got \\`${timeout}\\` (${typeof timeout})`);\n\t}\n};\n\n// `cleanup` option handling\nconst setExitHandler = async (spawned, {cleanup, detached}, timedPromise) => {\n\tif (!cleanup || detached) {\n\t\treturn timedPromise;\n\t}\n\n\tconst removeExitHandler = onExit(() => {\n\t\tspawned.kill();\n\t});\n\n\treturn timedPromise.finally(() => {\n\t\tremoveExitHandler();\n\t});\n};\n\nmodule.exports = {\n\tspawnedKill,\n\tspawnedCancel,\n\tsetupTimeout,\n\tvalidateTimeout,\n\tsetExitHandler\n};\n","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","'use strict';\nconst {PassThrough: PassThroughStream} = require('stream');\n\nmodule.exports = options => {\n\toptions = {...options};\n\n\tconst {array} = options;\n\tlet {encoding} = options;\n\tconst isBuffer = encoding === 'buffer';\n\tlet objectMode = false;\n\n\tif (array) {\n\t\tobjectMode = !(encoding || isBuffer);\n\t} else {\n\t\tencoding = encoding || 'utf8';\n\t}\n\n\tif (isBuffer) {\n\t\tencoding = null;\n\t}\n\n\tconst stream = new PassThroughStream({objectMode});\n\n\tif (encoding) {\n\t\tstream.setEncoding(encoding);\n\t}\n\n\tlet length = 0;\n\tconst chunks = [];\n\n\tstream.on('data', chunk => {\n\t\tchunks.push(chunk);\n\n\t\tif (objectMode) {\n\t\t\tlength = chunks.length;\n\t\t} else {\n\t\t\tlength += chunk.length;\n\t\t}\n\t});\n\n\tstream.getBufferedValue = () => {\n\t\tif (array) {\n\t\t\treturn chunks;\n\t\t}\n\n\t\treturn isBuffer ? Buffer.concat(chunks, length) : chunks.join('');\n\t};\n\n\tstream.getBufferedLength = () => length;\n\n\treturn stream;\n};\n","'use strict';\nconst {constants: BufferConstants} = require('buffer');\nconst stream = require('stream');\nconst {promisify} = require('util');\nconst bufferStream = require('./buffer-stream');\n\nconst streamPipelinePromisified = promisify(stream.pipeline);\n\nclass MaxBufferError extends Error {\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t\tthis.name = 'MaxBufferError';\n\t}\n}\n\nasync function getStream(inputStream, options) {\n\tif (!inputStream) {\n\t\tthrow new Error('Expected a stream');\n\t}\n\n\toptions = {\n\t\tmaxBuffer: Infinity,\n\t\t...options\n\t};\n\n\tconst {maxBuffer} = options;\n\tconst stream = bufferStream(options);\n\n\tawait new Promise((resolve, reject) => {\n\t\tconst rejectPromise = error => {\n\t\t\t// Don't retrieve an oversized buffer.\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\n\t\t\t}\n\n\t\t\treject(error);\n\t\t};\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tawait streamPipelinePromisified(inputStream, stream);\n\t\t\t\tresolve();\n\t\t\t} catch (error) {\n\t\t\t\trejectPromise(error);\n\t\t\t}\n\t\t})();\n\n\t\tstream.on('data', () => {\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\n\t\t\t\trejectPromise(new MaxBufferError());\n\t\t\t}\n\t\t});\n\t});\n\n\treturn stream.getBufferedValue();\n}\n\nmodule.exports = getStream;\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\nmodule.exports.MaxBufferError = MaxBufferError;\n","'use strict';\n\nconst { PassThrough } = require('stream');\n\nmodule.exports = function (/*streams...*/) {\n var sources = []\n var output = new PassThrough({objectMode: true})\n\n output.setMaxListeners(0)\n\n output.add = add\n output.isEmpty = isEmpty\n\n output.on('unpipe', remove)\n\n Array.prototype.slice.call(arguments).forEach(add)\n\n return output\n\n function add (source) {\n if (Array.isArray(source)) {\n source.forEach(add)\n return this\n }\n\n sources.push(source);\n source.once('end', remove.bind(null, source))\n source.once('error', output.emit.bind(output, 'error'))\n source.pipe(output, {end: false})\n return this\n }\n\n function isEmpty () {\n return sources.length == 0;\n }\n\n function remove (source) {\n sources = sources.filter(function (it) { return it !== source })\n if (!sources.length && output.readable) { output.end() }\n }\n}\n","'use strict';\nconst isStream = require('is-stream');\nconst getStream = require('get-stream');\nconst mergeStream = require('merge-stream');\n\n// `input` option\nconst handleInput = (spawned, input) => {\n\t// Checking for stdin is workaround for https://github.com/nodejs/node/issues/26852\n\t// @todo remove `|| spawned.stdin === undefined` once we drop support for Node.js <=12.2.0\n\tif (input === undefined || spawned.stdin === undefined) {\n\t\treturn;\n\t}\n\n\tif (isStream(input)) {\n\t\tinput.pipe(spawned.stdin);\n\t} else {\n\t\tspawned.stdin.end(input);\n\t}\n};\n\n// `all` interleaves `stdout` and `stderr`\nconst makeAllStream = (spawned, {all}) => {\n\tif (!all || (!spawned.stdout && !spawned.stderr)) {\n\t\treturn;\n\t}\n\n\tconst mixed = mergeStream();\n\n\tif (spawned.stdout) {\n\t\tmixed.add(spawned.stdout);\n\t}\n\n\tif (spawned.stderr) {\n\t\tmixed.add(spawned.stderr);\n\t}\n\n\treturn mixed;\n};\n\n// On failure, `result.stdout|stderr|all` should contain the currently buffered stream\nconst getBufferedData = async (stream, streamPromise) => {\n\tif (!stream) {\n\t\treturn;\n\t}\n\n\tstream.destroy();\n\n\ttry {\n\t\treturn await streamPromise;\n\t} catch (error) {\n\t\treturn error.bufferedData;\n\t}\n};\n\nconst getStreamPromise = (stream, {encoding, buffer, maxBuffer}) => {\n\tif (!stream || !buffer) {\n\t\treturn;\n\t}\n\n\tif (encoding) {\n\t\treturn getStream(stream, {encoding, maxBuffer});\n\t}\n\n\treturn getStream.buffer(stream, {maxBuffer});\n};\n\n// Retrieve result of child process: exit code, signal, error, streams (stdout/stderr/all)\nconst getSpawnedResult = async ({stdout, stderr, all}, {encoding, buffer, maxBuffer}, processDone) => {\n\tconst stdoutPromise = getStreamPromise(stdout, {encoding, buffer, maxBuffer});\n\tconst stderrPromise = getStreamPromise(stderr, {encoding, buffer, maxBuffer});\n\tconst allPromise = getStreamPromise(all, {encoding, buffer, maxBuffer: maxBuffer * 2});\n\n\ttry {\n\t\treturn await Promise.all([processDone, stdoutPromise, stderrPromise, allPromise]);\n\t} catch (error) {\n\t\treturn Promise.all([\n\t\t\t{error, signal: error.signal, timedOut: error.timedOut},\n\t\t\tgetBufferedData(stdout, stdoutPromise),\n\t\t\tgetBufferedData(stderr, stderrPromise),\n\t\t\tgetBufferedData(all, allPromise)\n\t\t]);\n\t}\n};\n\nconst validateInputSync = ({input}) => {\n\tif (isStream(input)) {\n\t\tthrow new TypeError('The `input` option cannot be a stream in sync mode');\n\t}\n};\n\nmodule.exports = {\n\thandleInput,\n\tmakeAllStream,\n\tgetSpawnedResult,\n\tvalidateInputSync\n};\n\n","'use strict';\n\nconst nativePromisePrototype = (async () => {})().constructor.prototype;\nconst descriptors = ['then', 'catch', 'finally'].map(property => [\n\tproperty,\n\tReflect.getOwnPropertyDescriptor(nativePromisePrototype, property)\n]);\n\n// The return value is a mixin of `childProcess` and `Promise`\nconst mergePromise = (spawned, promise) => {\n\tfor (const [property, descriptor] of descriptors) {\n\t\t// Starting the main `promise` is deferred to avoid consuming streams\n\t\tconst value = typeof promise === 'function' ?\n\t\t\t(...args) => Reflect.apply(descriptor.value, promise(), args) :\n\t\t\tdescriptor.value.bind(promise);\n\n\t\tReflect.defineProperty(spawned, property, {...descriptor, value});\n\t}\n\n\treturn spawned;\n};\n\n// Use promises instead of `child_process` events\nconst getSpawnedPromise = spawned => {\n\treturn new Promise((resolve, reject) => {\n\t\tspawned.on('exit', (exitCode, signal) => {\n\t\t\tresolve({exitCode, signal});\n\t\t});\n\n\t\tspawned.on('error', error => {\n\t\t\treject(error);\n\t\t});\n\n\t\tif (spawned.stdin) {\n\t\t\tspawned.stdin.on('error', error => {\n\t\t\t\treject(error);\n\t\t\t});\n\t\t}\n\t});\n};\n\nmodule.exports = {\n\tmergePromise,\n\tgetSpawnedPromise\n};\n\n","'use strict';\nconst normalizeArgs = (file, args = []) => {\n\tif (!Array.isArray(args)) {\n\t\treturn [file];\n\t}\n\n\treturn [file, ...args];\n};\n\nconst NO_ESCAPE_REGEXP = /^[\\w.-]+$/;\nconst DOUBLE_QUOTES_REGEXP = /\"/g;\n\nconst escapeArg = arg => {\n\tif (typeof arg !== 'string' || NO_ESCAPE_REGEXP.test(arg)) {\n\t\treturn arg;\n\t}\n\n\treturn `\"${arg.replace(DOUBLE_QUOTES_REGEXP, '\\\\\"')}\"`;\n};\n\nconst joinCommand = (file, args) => {\n\treturn normalizeArgs(file, args).join(' ');\n};\n\nconst getEscapedCommand = (file, args) => {\n\treturn normalizeArgs(file, args).map(arg => escapeArg(arg)).join(' ');\n};\n\nconst SPACES_REGEXP = / +/g;\n\n// Handle `execa.command()`\nconst parseCommand = command => {\n\tconst tokens = [];\n\tfor (const token of command.trim().split(SPACES_REGEXP)) {\n\t\t// Allow spaces to be escaped by a backslash if not meant as a delimiter\n\t\tconst previousToken = tokens[tokens.length - 1];\n\t\tif (previousToken && previousToken.endsWith('\\\\')) {\n\t\t\t// Merge previous token with current one\n\t\t\ttokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n\t\t} else {\n\t\t\ttokens.push(token);\n\t\t}\n\t}\n\n\treturn tokens;\n};\n\nmodule.exports = {\n\tjoinCommand,\n\tgetEscapedCommand,\n\tparseCommand\n};\n","'use strict';\nconst path = require('path');\nconst childProcess = require('child_process');\nconst crossSpawn = require('cross-spawn');\nconst stripFinalNewline = require('strip-final-newline');\nconst npmRunPath = require('npm-run-path');\nconst onetime = require('onetime');\nconst makeError = require('./lib/error');\nconst normalizeStdio = require('./lib/stdio');\nconst {spawnedKill, spawnedCancel, setupTimeout, validateTimeout, setExitHandler} = require('./lib/kill');\nconst {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = require('./lib/stream');\nconst {mergePromise, getSpawnedPromise} = require('./lib/promise');\nconst {joinCommand, parseCommand, getEscapedCommand} = require('./lib/command');\n\nconst DEFAULT_MAX_BUFFER = 1000 * 1000 * 100;\n\nconst getEnv = ({env: envOption, extendEnv, preferLocal, localDir, execPath}) => {\n\tconst env = extendEnv ? {...process.env, ...envOption} : envOption;\n\n\tif (preferLocal) {\n\t\treturn npmRunPath.env({env, cwd: localDir, execPath});\n\t}\n\n\treturn env;\n};\n\nconst handleArguments = (file, args, options = {}) => {\n\tconst parsed = crossSpawn._parse(file, args, options);\n\tfile = parsed.command;\n\targs = parsed.args;\n\toptions = parsed.options;\n\n\toptions = {\n\t\tmaxBuffer: DEFAULT_MAX_BUFFER,\n\t\tbuffer: true,\n\t\tstripFinalNewline: true,\n\t\textendEnv: true,\n\t\tpreferLocal: false,\n\t\tlocalDir: options.cwd || process.cwd(),\n\t\texecPath: process.execPath,\n\t\tencoding: 'utf8',\n\t\treject: true,\n\t\tcleanup: true,\n\t\tall: false,\n\t\twindowsHide: true,\n\t\t...options\n\t};\n\n\toptions.env = getEnv(options);\n\n\toptions.stdio = normalizeStdio(options);\n\n\tif (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') {\n\t\t// #116\n\t\targs.unshift('/q');\n\t}\n\n\treturn {file, args, options, parsed};\n};\n\nconst handleOutput = (options, value, error) => {\n\tif (typeof value !== 'string' && !Buffer.isBuffer(value)) {\n\t\t// When `execa.sync()` errors, we normalize it to '' to mimic `execa()`\n\t\treturn error === undefined ? undefined : '';\n\t}\n\n\tif (options.stripFinalNewline) {\n\t\treturn stripFinalNewline(value);\n\t}\n\n\treturn value;\n};\n\nconst execa = (file, args, options) => {\n\tconst parsed = handleArguments(file, args, options);\n\tconst command = joinCommand(file, args);\n\tconst escapedCommand = getEscapedCommand(file, args);\n\n\tvalidateTimeout(parsed.options);\n\n\tlet spawned;\n\ttry {\n\t\tspawned = childProcess.spawn(parsed.file, parsed.args, parsed.options);\n\t} catch (error) {\n\t\t// Ensure the returned error is always both a promise and a child process\n\t\tconst dummySpawned = new childProcess.ChildProcess();\n\t\tconst errorPromise = Promise.reject(makeError({\n\t\t\terror,\n\t\t\tstdout: '',\n\t\t\tstderr: '',\n\t\t\tall: '',\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tparsed,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t}));\n\t\treturn mergePromise(dummySpawned, errorPromise);\n\t}\n\n\tconst spawnedPromise = getSpawnedPromise(spawned);\n\tconst timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise);\n\tconst processDone = setExitHandler(spawned, parsed.options, timedPromise);\n\n\tconst context = {isCanceled: false};\n\n\tspawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned));\n\tspawned.cancel = spawnedCancel.bind(null, spawned, context);\n\n\tconst handlePromise = async () => {\n\t\tconst [{error, exitCode, signal, timedOut}, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone);\n\t\tconst stdout = handleOutput(parsed.options, stdoutResult);\n\t\tconst stderr = handleOutput(parsed.options, stderrResult);\n\t\tconst all = handleOutput(parsed.options, allResult);\n\n\t\tif (error || exitCode !== 0 || signal !== null) {\n\t\t\tconst returnedError = makeError({\n\t\t\t\terror,\n\t\t\t\texitCode,\n\t\t\t\tsignal,\n\t\t\t\tstdout,\n\t\t\t\tstderr,\n\t\t\t\tall,\n\t\t\t\tcommand,\n\t\t\t\tescapedCommand,\n\t\t\t\tparsed,\n\t\t\t\ttimedOut,\n\t\t\t\tisCanceled: context.isCanceled,\n\t\t\t\tkilled: spawned.killed\n\t\t\t});\n\n\t\t\tif (!parsed.options.reject) {\n\t\t\t\treturn returnedError;\n\t\t\t}\n\n\t\t\tthrow returnedError;\n\t\t}\n\n\t\treturn {\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\texitCode: 0,\n\t\t\tstdout,\n\t\t\tstderr,\n\t\t\tall,\n\t\t\tfailed: false,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t};\n\t};\n\n\tconst handlePromiseOnce = onetime(handlePromise);\n\n\thandleInput(spawned, parsed.options.input);\n\n\tspawned.all = makeAllStream(spawned, parsed.options);\n\n\treturn mergePromise(spawned, handlePromiseOnce);\n};\n\nmodule.exports = execa;\n\nmodule.exports.sync = (file, args, options) => {\n\tconst parsed = handleArguments(file, args, options);\n\tconst command = joinCommand(file, args);\n\tconst escapedCommand = getEscapedCommand(file, args);\n\n\tvalidateInputSync(parsed.options);\n\n\tlet result;\n\ttry {\n\t\tresult = childProcess.spawnSync(parsed.file, parsed.args, parsed.options);\n\t} catch (error) {\n\t\tthrow makeError({\n\t\t\terror,\n\t\t\tstdout: '',\n\t\t\tstderr: '',\n\t\t\tall: '',\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tparsed,\n\t\t\ttimedOut: false,\n\t\t\tisCanceled: false,\n\t\t\tkilled: false\n\t\t});\n\t}\n\n\tconst stdout = handleOutput(parsed.options, result.stdout, result.error);\n\tconst stderr = handleOutput(parsed.options, result.stderr, result.error);\n\n\tif (result.error || result.status !== 0 || result.signal !== null) {\n\t\tconst error = makeError({\n\t\t\tstdout,\n\t\t\tstderr,\n\t\t\terror: result.error,\n\t\t\tsignal: result.signal,\n\t\t\texitCode: result.status,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tparsed,\n\t\t\ttimedOut: result.error && result.error.code === 'ETIMEDOUT',\n\t\t\tisCanceled: false,\n\t\t\tkilled: result.signal !== null\n\t\t});\n\n\t\tif (!parsed.options.reject) {\n\t\t\treturn error;\n\t\t}\n\n\t\tthrow error;\n\t}\n\n\treturn {\n\t\tcommand,\n\t\tescapedCommand,\n\t\texitCode: 0,\n\t\tstdout,\n\t\tstderr,\n\t\tfailed: false,\n\t\ttimedOut: false,\n\t\tisCanceled: false,\n\t\tkilled: false\n\t};\n};\n\nmodule.exports.command = (command, options) => {\n\tconst [file, ...args] = parseCommand(command);\n\treturn execa(file, args, options);\n};\n\nmodule.exports.commandSync = (command, options) => {\n\tconst [file, ...args] = parseCommand(command);\n\treturn execa.sync(file, args, options);\n};\n\nmodule.exports.node = (scriptPath, args, options = {}) => {\n\tif (args && !Array.isArray(args) && typeof args === 'object') {\n\t\toptions = args;\n\t\targs = [];\n\t}\n\n\tconst stdio = normalizeStdio.node(options);\n\tconst defaultExecArgv = process.execArgv.filter(arg => !arg.startsWith('--inspect'));\n\n\tconst {\n\t\tnodePath = process.execPath,\n\t\tnodeOptions = defaultExecArgv\n\t} = options;\n\n\treturn execa(\n\t\tnodePath,\n\t\t[\n\t\t\t...nodeOptions,\n\t\t\tscriptPath,\n\t\t\t...(Array.isArray(args) ? args : [])\n\t\t],\n\t\t{\n\t\t\t...options,\n\t\t\tstdin: undefined,\n\t\t\tstdout: undefined,\n\t\t\tstderr: undefined,\n\t\t\tstdio,\n\t\t\tshell: false\n\t\t}\n\t);\n};\n","/**\n * The following is modified based on source found in\n * https://github.com/facebook/create-react-app\n *\n * MIT Licensed\n * Copyright (c) 2015-present, Facebook, Inc.\n * https://github.com/facebook/create-react-app/blob/master/LICENSE\n *\n */\n\nimport path from 'path'\nimport open from 'open'\nimport execa from 'execa'\nimport chalk from 'chalk'\nimport { execSync } from 'child_process'\nimport { Logger } from '../logger'\n\n// https://github.com/sindresorhus/open#app\nconst OSX_CHROME = 'google chrome'\n\n/**\n * Reads the BROWSER environment variable and decides what to do with it.\n * Returns true if it opened a browser or ran a node.js script, otherwise false.\n */\nexport function openBrowser(\n url: string,\n opt: string | true,\n logger: Logger\n): boolean {\n // The browser executable to open.\n // See https://github.com/sindresorhus/open#app for documentation.\n const browser = typeof opt === 'string' ? opt : process.env.BROWSER || ''\n if (browser.toLowerCase().endsWith('.js')) {\n return executeNodeScript(browser, url, logger)\n } else if (browser.toLowerCase() !== 'none') {\n return startBrowserProcess(browser, url)\n }\n return false\n}\n\nfunction executeNodeScript(scriptPath: string, url: string, logger: Logger) {\n const extraArgs = process.argv.slice(2)\n const child = execa('node', [scriptPath, ...extraArgs, url], {\n stdio: 'inherit'\n })\n child.on('close', (code) => {\n if (code !== 0) {\n logger.error(\n chalk.red(\n `\\nThe script specified as BROWSER environment variable failed.\\n\\n${chalk.cyan(\n scriptPath\n )} exited with code ${code}.`\n ),\n { error: null }\n )\n }\n })\n return true\n}\n\nfunction startBrowserProcess(browser: string | undefined, url: string) {\n // If we're on OS X, the user hasn't specifically\n // requested a different browser, we can try opening\n // Chrome with AppleScript. This lets us reuse an\n // existing tab when possible instead of creating a new one.\n const shouldTryOpenChromeWithAppleScript =\n process.platform === 'darwin' && (browser === '' || browser === OSX_CHROME)\n\n if (shouldTryOpenChromeWithAppleScript) {\n try {\n // Try our best to reuse existing tab\n // on OS X Google Chrome with AppleScript\n execSync('ps cax | grep \"Google Chrome\"')\n execSync('osascript openChrome.applescript \"' + encodeURI(url) + '\"', {\n cwd: path.dirname(require.resolve('vite/bin/openChrome.applescript')),\n stdio: 'ignore'\n })\n return true\n } catch (err) {\n // Ignore errors\n }\n }\n\n // Another special case: on OS X, check if BROWSER has been set to \"open\".\n // In this case, instead of passing the string `open` to `open` function (which won't work),\n // just ignore it (thus ensuring the intended behavior, i.e. opening the system browser):\n // https://github.com/facebook/create-react-app/pull/1690#issuecomment-283518768\n if (process.platform === 'darwin' && browser === 'open') {\n browser = undefined\n }\n\n // Fallback to open\n // (It will always open new tab)\n try {\n const options: open.Options = browser ? { app: { name: browser } } : {}\n open(url, options).catch(() => {}) // Prevent `unhandledRejection` error.\n return true\n } catch (err) {\n return false\n }\n}\n","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\nconst colorConvert = require('color-convert');\n\nconst wrapAnsi16 = (fn, offset) => function () {\n\tconst code = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => function () {\n\tconst code = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => function () {\n\tconst rgb = fn.apply(colorConvert, arguments);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\t\t\tgray: [90, 39],\n\n\t\t\t// Bright color\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Fix humans\n\tstyles.color.grey = styles.color.gray;\n\n\tfor (const groupName of Object.keys(styles)) {\n\t\tconst group = styles[groupName];\n\n\t\tfor (const styleName of Object.keys(group)) {\n\t\t\tconst style = group[styleName];\n\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tObject.defineProperty(styles, 'codes', {\n\t\t\tvalue: codes,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tconst ansi2ansi = n => n;\n\tconst rgb2rgb = (r, g, b) => [r, g, b];\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = {\n\t\tansi: wrapAnsi16(ansi2ansi, 0)\n\t};\n\tstyles.color.ansi256 = {\n\t\tansi256: wrapAnsi256(ansi2ansi, 0)\n\t};\n\tstyles.color.ansi16m = {\n\t\trgb: wrapAnsi16m(rgb2rgb, 0)\n\t};\n\n\tstyles.bgColor.ansi = {\n\t\tansi: wrapAnsi16(ansi2ansi, 10)\n\t};\n\tstyles.bgColor.ansi256 = {\n\t\tansi256: wrapAnsi256(ansi2ansi, 10)\n\t};\n\tstyles.bgColor.ansi16m = {\n\t\trgb: wrapAnsi16m(rgb2rgb, 10)\n\t};\n\n\tfor (let key of Object.keys(colorConvert)) {\n\t\tif (typeof colorConvert[key] !== 'object') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst suite = colorConvert[key];\n\n\t\tif (key === 'ansi16') {\n\t\t\tkey = 'ansi';\n\t\t}\n\n\t\tif ('ansi16' in suite) {\n\t\t\tstyles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);\n\t\t\tstyles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);\n\t\t}\n\n\t\tif ('ansi256' in suite) {\n\t\t\tstyles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);\n\t\t\tstyles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);\n\t\t}\n\n\t\tif ('rgb' in suite) {\n\t\t\tstyles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);\n\t\t\tstyles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);\n\t\t}\n\t}\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\nmodule.exports = (flag, argv) => {\n\targv = argv || process.argv;\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst pos = argv.indexOf(prefix + flag);\n\tconst terminatorPos = argv.indexOf('--');\n\treturn pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n","'use strict';\nconst os = require('os');\nconst hasFlag = require('has-flag');\n\nconst env = process.env;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false')) {\n\tforceColor = false;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n\tforceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(stream) {\n\tif (forceColor === false) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (stream && !stream.isTTY && forceColor !== true) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor ? 1 : 0;\n\n\tif (process.platform === 'win32') {\n\t\t// Node.js 7.5.0 is the first version of Node.js to include a patch to\n\t\t// libuv that enables 256 color output on Windows. Anything earlier and it\n\t\t// won't work. However, here we target Node.js 8 at minimum as it is an LTS\n\t\t// release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows\n\t\t// release that supports 256 colors. Windows 10 build 14931 is the first release\n\t\t// that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(process.versions.node.split('.')[0]) >= 8 &&\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel(process.stdout),\n\tstderr: getSupportLevel(process.stderr)\n};\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u[a-f\\d]{4}|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u[a-f\\d]{4}|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tif ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, args) {\n\tconst results = [];\n\tconst chunks = args.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tif (!isNaN(chunk)) {\n\t\t\tresults.push(Number(chunk));\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const styleName of Object.keys(enabled)) {\n\t\tif (Array.isArray(enabled[styleName])) {\n\t\t\tif (!(styleName in current)) {\n\t\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t\t}\n\n\t\t\tif (enabled[styleName].length > 0) {\n\t\t\t\tcurrent = current[styleName].apply(current, enabled[styleName]);\n\t\t\t} else {\n\t\t\t\tcurrent = current[styleName];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, tmp) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => {\n\t\tif (escapeChar) {\n\t\t\tchunk.push(unescape(escapeChar));\n\t\t} else if (style) {\n\t\t\tconst str = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(chr);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMsg);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\nconst escapeStringRegexp = require('escape-string-regexp');\nconst ansiStyles = require('ansi-styles');\nconst stdoutColor = require('supports-color').stdout;\n\nconst template = require('./templates.js');\n\nconst isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];\n\n// `color-convert` models to exclude from the Chalk API due to conflicts and such\nconst skipModels = new Set(['gray']);\n\nconst styles = Object.create(null);\n\nfunction applyOptions(obj, options) {\n\toptions = options || {};\n\n\t// Detect level if not set manually\n\tconst scLevel = stdoutColor ? stdoutColor.level : 0;\n\tobj.level = options.level === undefined ? scLevel : options.level;\n\tobj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;\n}\n\nfunction Chalk(options) {\n\t// We check for this.template here since calling `chalk.constructor()`\n\t// by itself will have a `this` of a previously constructed chalk object\n\tif (!this || !(this instanceof Chalk) || this.template) {\n\t\tconst chalk = {};\n\t\tapplyOptions(chalk, options);\n\n\t\tchalk.template = function () {\n\t\t\tconst args = [].slice.call(arguments);\n\t\t\treturn chalkTag.apply(null, [chalk.template].concat(args));\n\t\t};\n\n\t\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\t\tObject.setPrototypeOf(chalk.template, chalk);\n\n\t\tchalk.template.constructor = Chalk;\n\n\t\treturn chalk.template;\n\t}\n\n\tapplyOptions(this, options);\n}\n\n// Use bright blue on Windows as the normal blue color is illegible\nif (isSimpleWindowsTerm) {\n\tansiStyles.blue.open = '\\u001B[94m';\n}\n\nfor (const key of Object.keys(ansiStyles)) {\n\tansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n\n\tstyles[key] = {\n\t\tget() {\n\t\t\tconst codes = ansiStyles[key];\n\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\treturn build.call(this, this._styles || [], true, 'visible');\n\t}\n};\n\nansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');\nfor (const model of Object.keys(ansiStyles.color.ansi)) {\n\tif (skipModels.has(model)) {\n\t\tcontinue;\n\t}\n\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst level = this.level;\n\t\t\treturn function () {\n\t\t\t\tconst open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);\n\t\t\t\tconst codes = {\n\t\t\t\t\topen,\n\t\t\t\t\tclose: ansiStyles.color.close,\n\t\t\t\t\tcloseRe: ansiStyles.color.closeRe\n\t\t\t\t};\n\t\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);\n\t\t\t};\n\t\t}\n\t};\n}\n\nansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');\nfor (const model of Object.keys(ansiStyles.bgColor.ansi)) {\n\tif (skipModels.has(model)) {\n\t\tcontinue;\n\t}\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst level = this.level;\n\t\t\treturn function () {\n\t\t\t\tconst open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);\n\t\t\t\tconst codes = {\n\t\t\t\t\topen,\n\t\t\t\t\tclose: ansiStyles.bgColor.close,\n\t\t\t\t\tcloseRe: ansiStyles.bgColor.closeRe\n\t\t\t\t};\n\t\t\t\treturn build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, styles);\n\nfunction build(_styles, _empty, key) {\n\tconst builder = function () {\n\t\treturn applyStyle.apply(builder, arguments);\n\t};\n\n\tbuilder._styles = _styles;\n\tbuilder._empty = _empty;\n\n\tconst self = this;\n\n\tObject.defineProperty(builder, 'level', {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn self.level;\n\t\t},\n\t\tset(level) {\n\t\t\tself.level = level;\n\t\t}\n\t});\n\n\tObject.defineProperty(builder, 'enabled', {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn self.enabled;\n\t\t},\n\t\tset(enabled) {\n\t\t\tself.enabled = enabled;\n\t\t}\n\t});\n\n\t// See below for fix regarding invisible grey/dim combination on Windows\n\tbuilder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';\n\n\t// `__proto__` is used because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tbuilder.__proto__ = proto; // eslint-disable-line no-proto\n\n\treturn builder;\n}\n\nfunction applyStyle() {\n\t// Support varags, but simply cast to string in case there's only one arg\n\tconst args = arguments;\n\tconst argsLen = args.length;\n\tlet str = String(arguments[0]);\n\n\tif (argsLen === 0) {\n\t\treturn '';\n\t}\n\n\tif (argsLen > 1) {\n\t\t// Don't slice `arguments`, it prevents V8 optimizations\n\t\tfor (let a = 1; a < argsLen; a++) {\n\t\t\tstr += ' ' + args[a];\n\t\t}\n\t}\n\n\tif (!this.enabled || this.level <= 0 || !str) {\n\t\treturn this._empty ? '' : str;\n\t}\n\n\t// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,\n\t// see https://github.com/chalk/chalk/issues/58\n\t// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.\n\tconst originalDim = ansiStyles.dim.open;\n\tif (isSimpleWindowsTerm && this.hasGrey) {\n\t\tansiStyles.dim.open = '';\n\t}\n\n\tfor (const code of this._styles.slice().reverse()) {\n\t\t// Replace any instances already present with a re-opening code\n\t\t// otherwise only the part of the string until said closing code\n\t\t// will be colored, and the rest will simply be 'plain'.\n\t\tstr = code.open + str.replace(code.closeRe, code.open) + code.close;\n\n\t\t// Close the styling before a linebreak and reopen\n\t\t// after next line to fix a bleed issue on macOS\n\t\t// https://github.com/chalk/chalk/pull/92\n\t\tstr = str.replace(/\\r?\\n/g, `${code.close}$&${code.open}`);\n\t}\n\n\t// Reset the original `dim` if we changed it to work around the Windows dimmed gray issue\n\tansiStyles.dim.open = originalDim;\n\n\treturn str;\n}\n\nfunction chalkTag(chalk, strings) {\n\tif (!Array.isArray(strings)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn [].slice.call(arguments, 1).join(' ');\n\t}\n\n\tconst args = [].slice.call(arguments, 2);\n\tconst parts = [strings.raw[0]];\n\n\tfor (let i = 1; i < strings.length; i++) {\n\t\tparts.push(String(args[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'));\n\t\tparts.push(String(strings.raw[i]));\n\t}\n\n\treturn template(chalk, parts.join(''));\n}\n\nObject.defineProperties(Chalk.prototype, styles);\n\nmodule.exports = Chalk(); // eslint-disable-line new-cap\nmodule.exports.supportsColor = stdoutColor;\nmodule.exports.default = module.exports; // For TypeScript\n","exports.quote = function (xs) {\n return xs.map(function (s) {\n if (s && typeof s === 'object') {\n return s.op.replace(/(.)/g, '\\\\$1');\n }\n else if (/[\"\\s]/.test(s) && !/'/.test(s)) {\n return \"'\" + s.replace(/(['\\\\])/g, '\\\\$1') + \"'\";\n }\n else if (/[\"'\\s]/.test(s)) {\n return '\"' + s.replace(/([\"\\\\$`!])/g, '\\\\$1') + '\"';\n }\n else {\n return String(s).replace(/([A-z]:)?([#!\"$&'()*,:;<=>?@\\[\\\\\\]^`{|}])/g, '$1\\\\$2');\n }\n }).join(' ');\n};\n\n// '<(' is process substitution operator and\n// can be parsed the same as control operator\nvar CONTROL = '(?:' + [\n '\\\\|\\\\|', '\\\\&\\\\&', ';;', '\\\\|\\\\&', '\\\\<\\\\(', '>>', '>\\\\&', '[&;()|<>]'\n].join('|') + ')';\nvar META = '|&;()<> \\\\t';\nvar BAREWORD = '(\\\\\\\\[\\'\"' + META + ']|[^\\\\s\\'\"' + META + '])+';\nvar SINGLE_QUOTE = '\"((\\\\\\\\\"|[^\"])*?)\"';\nvar DOUBLE_QUOTE = '\\'((\\\\\\\\\\'|[^\\'])*?)\\'';\n\nvar TOKEN = '';\nfor (var i = 0; i < 4; i++) {\n TOKEN += (Math.pow(16,8)*Math.random()).toString(16);\n}\n\nexports.parse = function (s, env, opts) {\n var mapped = parse(s, env, opts);\n if (typeof env !== 'function') return mapped;\n return mapped.reduce(function (acc, s) {\n if (typeof s === 'object') return acc.concat(s);\n var xs = s.split(RegExp('(' + TOKEN + '.*?' + TOKEN + ')', 'g'));\n if (xs.length === 1) return acc.concat(xs[0]);\n return acc.concat(xs.filter(Boolean).map(function (x) {\n if (RegExp('^' + TOKEN).test(x)) {\n return JSON.parse(x.split(TOKEN)[1]);\n }\n else return x;\n }));\n }, []);\n};\n\nfunction parse (s, env, opts) {\n var chunker = new RegExp([\n '(' + CONTROL + ')', // control chars\n '(' + BAREWORD + '|' + SINGLE_QUOTE + '|' + DOUBLE_QUOTE + ')*'\n ].join('|'), 'g');\n var match = s.match(chunker).filter(Boolean);\n var commented = false;\n\n if (!match) return [];\n if (!env) env = {};\n if (!opts) opts = {};\n return match.map(function (s, j) {\n if (commented) {\n return;\n }\n if (RegExp('^' + CONTROL + '$').test(s)) {\n return { op: s };\n }\n\n // Hand-written scanner/parser for Bash quoting rules:\n //\n // 1. inside single quotes, all characters are printed literally.\n // 2. inside double quotes, all characters are printed literally\n // except variables prefixed by '$' and backslashes followed by\n // either a double quote or another backslash.\n // 3. outside of any quotes, backslashes are treated as escape\n // characters and not printed (unless they are themselves escaped)\n // 4. quote context can switch mid-token if there is no whitespace\n // between the two quote contexts (e.g. all'one'\"token\" parses as\n // \"allonetoken\")\n var SQ = \"'\";\n var DQ = '\"';\n var DS = '$';\n var BS = opts.escape || '\\\\';\n var quote = false;\n var esc = false;\n var out = '';\n var isGlob = false;\n\n for (var i = 0, len = s.length; i < len; i++) {\n var c = s.charAt(i);\n isGlob = isGlob || (!quote && (c === '*' || c === '?'));\n if (esc) {\n out += c;\n esc = false;\n }\n else if (quote) {\n if (c === quote) {\n quote = false;\n }\n else if (quote == SQ) {\n out += c;\n }\n else { // Double quote\n if (c === BS) {\n i += 1;\n c = s.charAt(i);\n if (c === DQ || c === BS || c === DS) {\n out += c;\n } else {\n out += BS + c;\n }\n }\n else if (c === DS) {\n out += parseEnvVar();\n }\n else {\n out += c;\n }\n }\n }\n else if (c === DQ || c === SQ) {\n quote = c;\n }\n else if (RegExp('^' + CONTROL + '$').test(c)) {\n return { op: s };\n }\n else if (RegExp('^#$').test(c)) {\n commented = true;\n if (out.length){\n return [out, { comment: s.slice(i+1) + match.slice(j+1).join(' ') }];\n }\n return [{ comment: s.slice(i+1) + match.slice(j+1).join(' ') }];\n }\n else if (c === BS) {\n esc = true;\n }\n else if (c === DS) {\n out += parseEnvVar();\n }\n else out += c;\n }\n\n if (isGlob) return {op: 'glob', pattern: out};\n\n return out;\n\n function parseEnvVar() {\n i += 1;\n var varend, varname;\n //debugger\n if (s.charAt(i) === '{') {\n i += 1;\n if (s.charAt(i) === '}') {\n throw new Error(\"Bad substitution: \" + s.substr(i - 2, 3));\n }\n varend = s.indexOf('}', i);\n if (varend < 0) {\n throw new Error(\"Bad substitution: \" + s.substr(i));\n }\n varname = s.substr(i, varend - i);\n i = varend;\n }\n else if (/[*@#?$!_\\-]/.test(s.charAt(i))) {\n varname = s.charAt(i);\n i += 1;\n }\n else {\n varend = s.substr(i).match(/[^\\w\\d_]/);\n if (!varend) {\n varname = s.substr(i);\n i = s.length;\n } else {\n varname = s.substr(i, varend.index);\n i += varend.index - 1;\n }\n }\n return getVar(null, '', varname);\n }\n })\n // finalize parsed aruments\n .reduce(function(prev, arg){\n if (arg === undefined){\n return prev;\n }\n return prev.concat(arg);\n },[]);\n\n function getVar (_, pre, key) {\n var r = typeof env === 'function' ? env(key) : env[key];\n if (r === undefined && key != '')\n r = '';\n else if (r === undefined)\n r = '$';\n\n if (typeof r === 'object') {\n return pre + TOKEN + JSON.stringify(r) + TOKEN;\n }\n else return pre + r;\n }\n}\n","module.exports = {\n '/Applications/Atom.app/Contents/MacOS/Atom': 'atom',\n '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta':\n '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta',\n '/Applications/Brackets.app/Contents/MacOS/Brackets': 'brackets',\n '/Applications/Sublime Text.app/Contents/MacOS/Sublime Text':\n '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl',\n '/Applications/Sublime Text 2.app/Contents/MacOS/Sublime Text 2':\n '/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl',\n '/Applications/Sublime Text Dev.app/Contents/MacOS/Sublime Text':\n '/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl',\n '/Applications/Visual Studio Code.app/Contents/MacOS/Electron': 'code',\n '/Applications/Visual Studio Code - Insiders.app/Contents/MacOS/Electron':\n 'code-insiders',\n '/Applications/AppCode.app/Contents/MacOS/appcode':\n '/Applications/AppCode.app/Contents/MacOS/appcode',\n '/Applications/CLion.app/Contents/MacOS/clion':\n '/Applications/CLion.app/Contents/MacOS/clion',\n '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea':\n '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea',\n '/Applications/PhpStorm.app/Contents/MacOS/phpstorm':\n '/Applications/PhpStorm.app/Contents/MacOS/phpstorm',\n '/Applications/PyCharm.app/Contents/MacOS/pycharm':\n '/Applications/PyCharm.app/Contents/MacOS/pycharm',\n '/Applications/PyCharm CE.app/Contents/MacOS/pycharm':\n '/Applications/PyCharm CE.app/Contents/MacOS/pycharm',\n '/Applications/RubyMine.app/Contents/MacOS/rubymine':\n '/Applications/RubyMine.app/Contents/MacOS/rubymine',\n '/Applications/WebStorm.app/Contents/MacOS/webstorm':\n '/Applications/WebStorm.app/Contents/MacOS/webstorm'\n}\n","module.exports = {\n atom: 'atom',\n Brackets: 'brackets',\n code: 'code',\n emacs: 'emacs',\n 'idea.sh': 'idea',\n 'phpstorm.sh': 'phpstorm',\n 'pycharm.sh': 'pycharm',\n 'rubymine.sh': 'rubymine',\n sublime_text: 'subl',\n vim: 'vim',\n 'webstorm.sh': 'webstorm'\n}\n","module.exports = [\n 'Brackets.exe',\n 'Code.exe',\n 'atom.exe',\n 'sublime_text.exe',\n 'notepad++.exe',\n 'clion.exe',\n 'clion64.exe',\n 'idea.exe',\n 'idea64.exe',\n 'phpstorm.exe',\n 'phpstorm64.exe',\n 'pycharm.exe',\n 'pycharm64.exe',\n 'rubymine.exe',\n 'rubymine64.exe',\n 'webstorm.exe',\n 'webstorm64.exe'\n]\n","const path = require('path')\nconst shellQuote = require('shell-quote')\nconst childProcess = require('child_process')\n\n// Map from full process name to binary that starts the process\n// We can't just re-use full process name, because it will spawn a new instance\n// of the app every time\nconst COMMON_EDITORS_OSX = require('./editor-info/osx')\nconst COMMON_EDITORS_LINUX = require('./editor-info/linux')\nconst COMMON_EDITORS_WIN = require('./editor-info/windows')\n\nmodule.exports = function guessEditor (specifiedEditor) {\n if (specifiedEditor) {\n return shellQuote.parse(specifiedEditor)\n }\n // We can find out which editor is currently running by:\n // `ps x` on macOS and Linux\n // `Get-Process` on Windows\n try {\n if (process.platform === 'darwin') {\n const output = childProcess.execSync('ps x').toString()\n const processNames = Object.keys(COMMON_EDITORS_OSX)\n for (let i = 0; i < processNames.length; i++) {\n const processName = processNames[i]\n if (output.indexOf(processName) !== -1) {\n return [COMMON_EDITORS_OSX[processName]]\n }\n }\n } else if (process.platform === 'win32') {\n const output = childProcess\n .execSync('powershell -Command \"Get-Process | Select-Object Path\"', {\n stdio: ['pipe', 'pipe', 'ignore']\n })\n .toString()\n const runningProcesses = output.split('\\r\\n')\n for (let i = 0; i < runningProcesses.length; i++) {\n // `Get-Process` sometimes returns empty lines\n if (!runningProcesses[i]) {\n continue\n }\n\n const fullProcessPath = runningProcesses[i].trim()\n const shortProcessName = path.basename(fullProcessPath)\n\n if (COMMON_EDITORS_WIN.indexOf(shortProcessName) !== -1) {\n return [fullProcessPath]\n }\n }\n } else if (process.platform === 'linux') {\n // --no-heading No header line\n // x List all processes owned by you\n // -o comm Need only names column\n const output = childProcess\n .execSync('ps x --no-heading -o comm --sort=comm')\n .toString()\n const processNames = Object.keys(COMMON_EDITORS_LINUX)\n for (let i = 0; i < processNames.length; i++) {\n const processName = processNames[i]\n if (output.indexOf(processName) !== -1) {\n return [COMMON_EDITORS_LINUX[processName]]\n }\n }\n }\n } catch (error) {\n // Ignore...\n }\n\n // Last resort, use old skool env vars\n if (process.env.VISUAL) {\n return [process.env.VISUAL]\n } else if (process.env.EDITOR) {\n return [process.env.EDITOR]\n }\n\n return [null]\n}\n","const path = require('path')\n\n// normalize file/line numbers into command line args for specific editors\nmodule.exports = function getArgumentsForPosition (\n editor,\n fileName,\n lineNumber,\n columnNumber = 1\n) {\n const editorBasename = path.basename(editor).replace(/\\.(exe|cmd|bat)$/i, '')\n switch (editorBasename) {\n case 'atom':\n case 'Atom':\n case 'Atom Beta':\n case 'subl':\n case 'sublime':\n case 'sublime_text':\n case 'wstorm':\n case 'charm':\n return [`${fileName}:${lineNumber}:${columnNumber}`]\n case 'notepad++':\n return ['-n' + lineNumber, fileName]\n case 'vim':\n case 'mvim':\n return [`+call cursor(${lineNumber}, ${columnNumber})`, fileName]\n case 'joe':\n return ['+' + `${lineNumber}`, fileName]\n case 'emacs':\n case 'emacsclient':\n return [`+${lineNumber}:${columnNumber}`, fileName]\n case 'rmate':\n case 'mate':\n case 'mine':\n return ['--line', lineNumber, fileName]\n case 'code':\n case 'code-insiders':\n case 'Code':\n return ['-r', '-g', `${fileName}:${lineNumber}:${columnNumber}`]\n case 'appcode':\n case 'clion':\n case 'clion64':\n case 'idea':\n case 'idea64':\n case 'phpstorm':\n case 'phpstorm64':\n case 'pycharm':\n case 'pycharm64':\n case 'rubymine':\n case 'rubymine64':\n case 'webstorm':\n case 'webstorm64':\n return ['--line', lineNumber, fileName]\n }\n\n // For all others, drop the lineNumber until we have\n // a mapping above, since providing the lineNumber incorrectly\n // can result in errors or confusing behavior.\n return [fileName]\n}\n","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file at\n * https://github.com/facebookincubator/create-react-app/blob/master/LICENSE\n *\n * Modified by Yuxi Evan You\n */\n\nconst fs = require('fs')\nconst os = require('os')\nconst path = require('path')\nconst chalk = require('chalk')\nconst childProcess = require('child_process')\n\nconst guessEditor = require('./guess')\nconst getArgumentsForPosition = require('./get-args')\n\nfunction wrapErrorCallback (cb) {\n return (fileName, errorMessage) => {\n console.log()\n console.log(\n chalk.red('Could not open ' + path.basename(fileName) + ' in the editor.')\n )\n if (errorMessage) {\n if (errorMessage[errorMessage.length - 1] !== '.') {\n errorMessage += '.'\n }\n console.log(\n chalk.red('The editor process exited with an error: ' + errorMessage)\n )\n }\n console.log()\n if (cb) cb(fileName, errorMessage)\n }\n}\n\nfunction isTerminalEditor (editor) {\n switch (editor) {\n case 'vim':\n case 'emacs':\n case 'nano':\n return true\n }\n return false\n}\n\nconst positionRE = /:(\\d+)(:(\\d+))?$/\nfunction parseFile (file) {\n const fileName = file.replace(positionRE, '')\n const match = file.match(positionRE)\n const lineNumber = match && match[1]\n const columnNumber = match && match[3]\n return {\n fileName,\n lineNumber,\n columnNumber\n }\n}\n\nlet _childProcess = null\n\nfunction launchEditor (file, specifiedEditor, onErrorCallback) {\n const parsed = parseFile(file)\n let { fileName } = parsed\n const { lineNumber, columnNumber } = parsed\n\n if (!fs.existsSync(fileName)) {\n return\n }\n\n if (typeof specifiedEditor === 'function') {\n onErrorCallback = specifiedEditor\n specifiedEditor = undefined\n }\n\n onErrorCallback = wrapErrorCallback(onErrorCallback)\n\n const [editor, ...args] = guessEditor(specifiedEditor)\n if (!editor) {\n onErrorCallback(fileName, null)\n return\n }\n\n if (\n process.platform === 'linux' &&\n fileName.startsWith('/mnt/') &&\n /Microsoft/i.test(os.release())\n ) {\n // Assume WSL / \"Bash on Ubuntu on Windows\" is being used, and\n // that the file exists on the Windows file system.\n // `os.release()` is \"4.4.0-43-Microsoft\" in the current release\n // build of WSL, see: https://github.com/Microsoft/BashOnWindows/issues/423#issuecomment-221627364\n // When a Windows editor is specified, interop functionality can\n // handle the path translation, but only if a relative path is used.\n fileName = path.relative('', fileName)\n }\n\n if (lineNumber) {\n const extraArgs = getArgumentsForPosition(editor, fileName, lineNumber, columnNumber)\n args.push.apply(args, extraArgs)\n } else {\n args.push(fileName)\n }\n\n if (_childProcess && isTerminalEditor(editor)) {\n // There's an existing editor process already and it's attached\n // to the terminal, so go kill it. Otherwise two separate editor\n // instances attach to the stdin/stdout which gets confusing.\n _childProcess.kill('SIGKILL')\n }\n\n if (process.platform === 'win32') {\n // On Windows, launch the editor in a shell because spawn can only\n // launch .exe files.\n _childProcess = childProcess.spawn(\n 'cmd.exe',\n ['/C', editor].concat(args),\n { stdio: 'inherit' }\n )\n } else {\n _childProcess = childProcess.spawn(editor, args, { stdio: 'inherit' })\n }\n _childProcess.on('exit', function (errorCode) {\n _childProcess = null\n\n if (errorCode) {\n onErrorCallback(fileName, '(code ' + errorCode + ')')\n }\n })\n\n _childProcess.on('error', function (error) {\n onErrorCallback(fileName, error.message)\n })\n}\n\nmodule.exports = launchEditor\n","const url = require('url')\nconst path = require('path')\nconst launch = require('launch-editor')\n\nmodule.exports = (specifiedEditor, srcRoot, onErrorCallback) => {\n if (typeof specifiedEditor === 'function') {\n onErrorCallback = specifiedEditor\n specifiedEditor = undefined\n }\n\n if (typeof srcRoot === 'function') {\n onErrorCallback = srcRoot\n srcRoot = undefined\n }\n\n srcRoot = srcRoot || process.cwd()\n\n return function launchEditorMiddleware (req, res, next) {\n const { file } = url.parse(req.url, true).query || {}\n if (!file) {\n res.statusCode = 500\n res.end(`launch-editor-middleware: required query param \"file\" is missing.`)\n } else {\n launch(path.resolve(srcRoot, file), specifiedEditor, onErrorCallback)\n res.end()\n }\n }\n}\n","import path from 'path'\nimport { Loader, Plugin, ImportKind } from 'esbuild'\nimport { KNOWN_ASSET_TYPES } from '../constants'\nimport { ResolvedConfig } from '..'\nimport {\n isRunningWithYarnPnp,\n flattenId,\n normalizePath,\n isExternalUrl\n} from '../utils'\nimport { browserExternalId } from '../plugins/resolve'\nimport { ExportsData } from '.'\n\nconst externalTypes = [\n 'css',\n // supported pre-processor types\n 'less',\n 'sass',\n 'scss',\n 'styl',\n 'stylus',\n 'pcss',\n 'postcss',\n // known SFC types\n 'vue',\n 'svelte',\n 'marko',\n // JSX/TSX may be configured to be compiled differently from how esbuild\n // handles it by default, so exclude them as well\n 'jsx',\n 'tsx',\n ...KNOWN_ASSET_TYPES\n]\n\nexport function esbuildDepPlugin(\n qualified: Record<string, string>,\n exportsData: Record<string, ExportsData>,\n config: ResolvedConfig,\n ssr?: boolean\n): Plugin {\n // default resolver which prefers ESM\n const _resolve = config.createResolver({ asSrc: false })\n\n // cjs resolver that prefers Node\n const _resolveRequire = config.createResolver({\n asSrc: false,\n isRequire: true\n })\n\n const resolve = (\n id: string,\n importer: string,\n kind: ImportKind,\n resolveDir?: string\n ): Promise<string | undefined> => {\n let _importer: string\n // explicit resolveDir - this is passed only during yarn pnp resolve for\n // entries\n if (resolveDir) {\n _importer = normalizePath(path.join(resolveDir, '*'))\n } else {\n // map importer ids to file paths for correct resolution\n _importer = importer in qualified ? qualified[importer] : importer\n }\n const resolver = kind.startsWith('require') ? _resolveRequire : _resolve\n return resolver(id, _importer, undefined, ssr)\n }\n\n return {\n name: 'vite:dep-pre-bundle',\n setup(build) {\n // externalize assets and commonly known non-js file types\n build.onResolve(\n {\n filter: new RegExp(`\\\\.(` + externalTypes.join('|') + `)(\\\\?.*)?$`)\n },\n async ({ path: id, importer, kind }) => {\n const resolved = await resolve(id, importer, kind)\n if (resolved) {\n return {\n path: resolved,\n external: true\n }\n }\n }\n )\n\n function resolveEntry(id: string) {\n const flatId = flattenId(id)\n if (flatId in qualified) {\n return {\n path: flatId,\n namespace: 'dep'\n }\n }\n }\n\n build.onResolve(\n { filter: /^[\\w@][^:]/ },\n async ({ path: id, importer, kind }) => {\n // ensure esbuild uses our resolved entries\n let entry: { path: string; namespace: string } | undefined\n // if this is an entry, return entry namespace resolve result\n if (!importer) {\n if ((entry = resolveEntry(id))) return entry\n // check if this is aliased to an entry - also return entry namespace\n const aliased = await _resolve(id, undefined, true)\n if (aliased && (entry = resolveEntry(aliased))) {\n return entry\n }\n }\n\n // use vite's own resolver\n const resolved = await resolve(id, importer, kind)\n if (resolved) {\n if (resolved.startsWith(browserExternalId)) {\n return {\n path: id,\n namespace: 'browser-external'\n }\n }\n if (isExternalUrl(resolved)) {\n return {\n path: resolved,\n external: true\n }\n }\n return {\n path: path.resolve(resolved)\n }\n }\n }\n )\n\n // For entry files, we'll read it ourselves and construct a proxy module\n // to retain the entry's raw id instead of file path so that esbuild\n // outputs desired output file structure.\n // It is necessary to do the re-exporting to separate the virtual proxy\n // module from the actual module since the actual module may get\n // referenced via relative imports - if we don't separate the proxy and\n // the actual module, esbuild will create duplicated copies of the same\n // module!\n const root = path.resolve(config.root)\n build.onLoad({ filter: /.*/, namespace: 'dep' }, ({ path: id }) => {\n const entryFile = qualified[id]\n\n let relativePath = normalizePath(path.relative(root, entryFile))\n if (\n !relativePath.startsWith('./') &&\n !relativePath.startsWith('../') &&\n relativePath !== '.'\n ) {\n relativePath = `./${relativePath}`\n }\n\n let contents = ''\n const data = exportsData[id]\n const [imports, exports] = data\n if (!imports.length && !exports.length) {\n // cjs\n contents += `export default require(\"${relativePath}\");`\n } else {\n if (exports.includes('default')) {\n contents += `import d from \"${relativePath}\";export default d;`\n }\n if (\n data.hasReExports ||\n exports.length > 1 ||\n exports[0] !== 'default'\n ) {\n contents += `\\nexport * from \"${relativePath}\"`\n }\n }\n\n let ext = path.extname(entryFile).slice(1)\n if (ext === 'mjs') ext = 'js'\n return {\n loader: ext as Loader,\n contents,\n resolveDir: root\n }\n })\n\n build.onLoad(\n { filter: /.*/, namespace: 'browser-external' },\n ({ path: id }) => {\n return {\n contents:\n `export default new Proxy({}, {\n get() {\n throw new Error('Module \"${id}\" has been externalized for ` +\n `browser compatibility and cannot be accessed in client code.')\n }\n})`\n }\n }\n )\n\n // yarn 2 pnp compat\n if (isRunningWithYarnPnp) {\n build.onResolve(\n { filter: /.*/ },\n async ({ path, importer, kind, resolveDir }) => ({\n // pass along resolveDir for entries\n path: await resolve(path, importer, kind, resolveDir)\n })\n )\n build.onLoad({ filter: /.*/ }, async (args) => ({\n contents: await require('fs').promises.readFile(args.path),\n loader: 'default'\n }))\n }\n }\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport chalk from 'chalk'\nimport { createHash } from 'crypto'\nimport { build, BuildOptions as EsbuildBuildOptions } from 'esbuild'\nimport { ResolvedConfig } from '../config'\nimport {\n createDebugger,\n emptyDir,\n lookupFile,\n normalizePath,\n writeFile,\n flattenId,\n normalizeId\n} from '../utils'\nimport { esbuildDepPlugin } from './esbuildDepPlugin'\nimport { ImportSpecifier, init, parse } from 'es-module-lexer'\nimport { scanImports } from './scan'\nimport { transformWithEsbuild } from '../plugins/esbuild'\n\nconst debug = createDebugger('vite:deps')\n\nexport type ExportsData = [ImportSpecifier[], string[]] & {\n // es-module-lexer has a facade detection but isn't always accurate for our\n // use case when the module has default export\n hasReExports?: true\n}\n\nexport interface DepOptimizationOptions {\n /**\n * By default, Vite will crawl your index.html to detect dependencies that\n * need to be pre-bundled. If build.rollupOptions.input is specified, Vite\n * will crawl those entry points instead.\n *\n * If neither of these fit your needs, you can specify custom entries using\n * this option - the value should be a fast-glob pattern or array of patterns\n * (https://github.com/mrmlnc/fast-glob#basic-syntax) that are relative from\n * vite project root. This will overwrite default entries inference.\n */\n entries?: string | string[]\n /**\n * Force optimize listed dependencies (must be resolvable import paths,\n * cannot be globs).\n */\n include?: string[]\n /**\n * Do not optimize these dependencies (must be resolvable import paths,\n * cannot be globs).\n */\n exclude?: string[]\n /**\n * Options to pass to esbuild during the dep scanning and optimization\n *\n * Certain options are omitted since changing them would not be compatible\n * with Vite's dep optimization.\n *\n * - `external` is also omitted, use Vite's `optimizeDeps.exclude` option\n * - `plugins` are merged with Vite's dep plugin\n * - `keepNames` takes precedence over the deprecated `optimizeDeps.keepNames`\n *\n * https://esbuild.github.io/api\n */\n esbuildOptions?: Omit<\n EsbuildBuildOptions,\n | 'bundle'\n | 'entryPoints'\n | 'external'\n | 'write'\n | 'watch'\n | 'outdir'\n | 'outfile'\n | 'outbase'\n | 'outExtension'\n | 'metafile'\n >\n /**\n * @deprecated use `esbuildOptions.keepNames`\n */\n keepNames?: boolean\n}\n\nexport interface DepOptimizationMetadata {\n /**\n * The main hash is determined by user config and dependency lockfiles.\n * This is checked on server startup to avoid unnecessary re-bundles.\n */\n hash: string\n /**\n * The browser hash is determined by the main hash plus additional dependencies\n * discovered at runtime. This is used to invalidate browser requests to\n * optimized deps.\n */\n browserHash: string\n optimized: Record<\n string,\n {\n file: string\n src: string\n needsInterop: boolean\n }\n >\n}\n\nexport async function optimizeDeps(\n config: ResolvedConfig,\n force = config.server.force,\n asCommand = false,\n newDeps?: Record<string, string>, // missing imports encountered after server has started\n ssr?: boolean\n): Promise<DepOptimizationMetadata | null> {\n config = {\n ...config,\n command: 'build'\n }\n\n const { root, logger, cacheDir } = config\n const log = asCommand ? logger.info : debug\n\n if (!cacheDir) {\n log(`No cache directory. Skipping.`)\n return null\n }\n\n const dataPath = path.join(cacheDir, '_metadata.json')\n const mainHash = getDepHash(root, config)\n const data: DepOptimizationMetadata = {\n hash: mainHash,\n browserHash: mainHash,\n optimized: {}\n }\n\n if (!force) {\n let prevData: DepOptimizationMetadata | undefined\n try {\n prevData = JSON.parse(fs.readFileSync(dataPath, 'utf-8'))\n } catch (e) {}\n // hash is consistent, no need to re-bundle\n if (prevData && prevData.hash === data.hash) {\n log('Hash is consistent. Skipping. Use --force to override.')\n return prevData\n }\n }\n\n if (fs.existsSync(cacheDir)) {\n emptyDir(cacheDir)\n } else {\n fs.mkdirSync(cacheDir, { recursive: true })\n }\n // a hint for Node.js\n // all files in the cache directory should be recognized as ES modules\n writeFile(\n path.resolve(cacheDir, 'package.json'),\n JSON.stringify({ type: 'module' })\n )\n\n let deps: Record<string, string>, missing: Record<string, string>\n if (!newDeps) {\n ;({ deps, missing } = await scanImports(config))\n } else {\n deps = newDeps\n missing = {}\n }\n\n // update browser hash\n data.browserHash = createHash('sha256')\n .update(data.hash + JSON.stringify(deps))\n .digest('hex')\n .substr(0, 8)\n\n const missingIds = Object.keys(missing)\n if (missingIds.length) {\n throw new Error(\n `The following dependencies are imported but could not be resolved:\\n\\n ${missingIds\n .map(\n (id) =>\n `${chalk.cyan(id)} ${chalk.white.dim(\n `(imported by ${missing[id]})`\n )}`\n )\n .join(`\\n `)}\\n\\nAre they installed?`\n )\n }\n\n const include = config.optimizeDeps?.include\n if (include) {\n const resolve = config.createResolver({ asSrc: false })\n for (const id of include) {\n // normalize 'foo >bar` as 'foo > bar' to prevent same id being added\n // and for pretty printing\n const normalizedId = normalizeId(id)\n if (!deps[normalizedId]) {\n const entry = await resolve(id)\n if (entry) {\n deps[normalizedId] = entry\n } else {\n throw new Error(\n `Failed to resolve force included dependency: ${chalk.cyan(id)}`\n )\n }\n }\n }\n }\n\n const qualifiedIds = Object.keys(deps)\n\n if (!qualifiedIds.length) {\n writeFile(dataPath, JSON.stringify(data, null, 2))\n log(`No dependencies to bundle. Skipping.\\n\\n\\n`)\n return data\n }\n\n const total = qualifiedIds.length\n const maxListed = 5\n const listed = Math.min(total, maxListed)\n const extra = Math.max(0, total - maxListed)\n const depsString = chalk.yellow(\n qualifiedIds.slice(0, listed).join(`\\n `) +\n (extra > 0 ? `\\n (...and ${extra} more)` : ``)\n )\n if (!asCommand) {\n if (!newDeps) {\n // This is auto run on server start - let the user know that we are\n // pre-optimizing deps\n logger.info(\n chalk.greenBright(`Pre-bundling dependencies:\\n ${depsString}`)\n )\n logger.info(\n `(this will be run only when your dependencies or config have changed)`\n )\n }\n } else {\n logger.info(chalk.greenBright(`Optimizing dependencies:\\n ${depsString}`))\n }\n\n // esbuild generates nested directory output with lowest common ancestor base\n // this is unpredictable and makes it difficult to analyze entry / output\n // mapping. So what we do here is:\n // 1. flatten all ids to eliminate slash\n // 2. in the plugin, read the entry ourselves as virtual files to retain the\n // path.\n const flatIdDeps: Record<string, string> = {}\n const idToExports: Record<string, ExportsData> = {}\n const flatIdToExports: Record<string, ExportsData> = {}\n\n const { plugins = [], ...esbuildOptions } =\n config.optimizeDeps?.esbuildOptions ?? {}\n\n await init\n for (const id in deps) {\n const flatId = flattenId(id)\n const filePath = (flatIdDeps[flatId] = deps[id])\n const entryContent = fs.readFileSync(filePath, 'utf-8')\n let exportsData: ExportsData\n try {\n exportsData = parse(entryContent) as ExportsData\n } catch {\n debug(\n `Unable to parse dependency: ${id}. Trying again with a JSX transform.`\n )\n const transformed = await transformWithEsbuild(entryContent, filePath, {\n loader: 'jsx'\n })\n // Ensure that optimization won't fail by defaulting '.js' to the JSX parser.\n // This is useful for packages such as Gatsby.\n esbuildOptions.loader = {\n '.js': 'jsx',\n ...esbuildOptions.loader\n }\n exportsData = parse(transformed.code) as ExportsData\n }\n for (const { ss, se } of exportsData[0]) {\n const exp = entryContent.slice(ss, se)\n if (/export\\s+\\*\\s+from/.test(exp)) {\n exportsData.hasReExports = true\n }\n }\n idToExports[id] = exportsData\n flatIdToExports[flatId] = exportsData\n }\n\n const define: Record<string, string> = {\n 'process.env.NODE_ENV': JSON.stringify(config.mode)\n }\n for (const key in config.define) {\n const value = config.define[key]\n define[key] = typeof value === 'string' ? value : JSON.stringify(value)\n }\n\n const start = Date.now()\n\n const result = await build({\n absWorkingDir: process.cwd(),\n entryPoints: Object.keys(flatIdDeps),\n bundle: true,\n format: 'esm',\n external: config.optimizeDeps?.exclude,\n logLevel: 'error',\n splitting: true,\n sourcemap: true,\n outdir: cacheDir,\n treeShaking: 'ignore-annotations',\n metafile: true,\n define,\n plugins: [\n ...plugins,\n esbuildDepPlugin(flatIdDeps, flatIdToExports, config, ssr)\n ],\n ...esbuildOptions\n })\n\n const meta = result.metafile!\n\n // the paths in `meta.outputs` are relative to `process.cwd()`\n const cacheDirOutputPath = path.relative(process.cwd(), cacheDir)\n\n for (const id in deps) {\n const entry = deps[id]\n data.optimized[id] = {\n file: normalizePath(path.resolve(cacheDir, flattenId(id) + '.js')),\n src: entry,\n needsInterop: needsInterop(\n id,\n idToExports[id],\n meta.outputs,\n cacheDirOutputPath\n )\n }\n }\n\n writeFile(dataPath, JSON.stringify(data, null, 2))\n\n debug(`deps bundled in ${Date.now() - start}ms`)\n return data\n}\n\n// https://github.com/vitejs/vite/issues/1724#issuecomment-767619642\n// a list of modules that pretends to be ESM but still uses `require`.\n// this causes esbuild to wrap them as CJS even when its entry appears to be ESM.\nconst KNOWN_INTEROP_IDS = new Set(['moment'])\n\nfunction needsInterop(\n id: string,\n exportsData: ExportsData,\n outputs: Record<string, any>,\n cacheDirOutputPath: string\n): boolean {\n if (KNOWN_INTEROP_IDS.has(id)) {\n return true\n }\n const [imports, exports] = exportsData\n // entry has no ESM syntax - likely CJS or UMD\n if (!exports.length && !imports.length) {\n return true\n }\n\n // if a peer dependency used require() on a ESM dependency, esbuild turns the\n // ESM dependency's entry chunk into a single default export... detect\n // such cases by checking exports mismatch, and force interop.\n const flatId = flattenId(id) + '.js'\n let generatedExports: string[] | undefined\n for (const output in outputs) {\n if (\n normalizePath(output) ===\n normalizePath(path.join(cacheDirOutputPath, flatId))\n ) {\n generatedExports = outputs[output].exports\n break\n }\n }\n\n if (\n !generatedExports ||\n (isSingleDefaultExport(generatedExports) && !isSingleDefaultExport(exports))\n ) {\n return true\n }\n return false\n}\n\nfunction isSingleDefaultExport(exports: string[]) {\n return exports.length === 1 && exports[0] === 'default'\n}\n\nconst lockfileFormats = ['package-lock.json', 'yarn.lock', 'pnpm-lock.yaml']\n\nfunction getDepHash(root: string, config: ResolvedConfig): string {\n let content = lookupFile(root, lockfileFormats) || ''\n // also take config into account\n // only a subset of config options that can affect dep optimization\n content += JSON.stringify(\n {\n mode: config.mode,\n root: config.root,\n resolve: config.resolve,\n assetsInclude: config.assetsInclude,\n plugins: config.plugins.map((p) => p.name),\n optimizeDeps: {\n include: config.optimizeDeps?.include,\n exclude: config.optimizeDeps?.exclude\n }\n },\n (_, value) => {\n if (typeof value === 'function' || value instanceof RegExp) {\n return value.toString()\n }\n return value\n }\n )\n return createHash('sha256').update(content).digest('hex').substr(0, 8)\n}\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","import { SourceMapConsumer, RawSourceMap } from 'source-map'\nimport { ModuleGraph } from '../server/moduleGraph'\n\nlet offset: number\ntry {\n new Function('throw new Error(1)')()\n} catch (e) {\n // in Node 12, stack traces account for the function wrapper.\n // in Node 13 and later, the function wrapper adds two lines,\n // which must be subtracted to generate a valid mapping\n const match = /:(\\d+):\\d+\\)$/.exec(e.stack.split('\\n')[1])\n offset = match ? +match[1] - 1 : 0\n}\n\nexport function ssrRewriteStacktrace(\n stack: string,\n moduleGraph: ModuleGraph\n): string {\n return stack\n .split('\\n')\n .map((line) => {\n return line.replace(\n /^ {4}at (?:(.+?)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?)\\)?/,\n (input, varName, url, line, column) => {\n if (!url) return input\n\n const mod = moduleGraph.urlToModuleMap.get(url)\n const rawSourceMap = mod?.ssrTransformResult?.map\n\n if (!rawSourceMap) {\n return input\n }\n\n const consumer = new SourceMapConsumer(\n rawSourceMap as unknown as RawSourceMap\n )\n\n const pos = consumer.originalPositionFor({\n line: Number(line) - offset,\n column: Number(column),\n bias: SourceMapConsumer.LEAST_UPPER_BOUND\n })\n\n if (!pos.source) {\n return input\n }\n\n const source = `${pos.source}:${pos.line || 0}:${pos.column || 0}`\n if (!varName || varName === 'eval') {\n return ` at ${source}`\n } else {\n return ` at ${varName} (${source})`\n }\n }\n )\n })\n .join('\\n')\n}\n\nexport function rebindErrorStacktrace(e: Error, stacktrace: string): void {\n const { configurable, writable } = Object.getOwnPropertyDescriptor(\n e,\n 'stack'\n )!\n if (configurable) {\n Object.defineProperty(e, 'stack', {\n value: stacktrace,\n enumerable: true,\n configurable: true,\n writable: true\n })\n } else if (writable) {\n e.stack = stacktrace\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport { ViteDevServer } from '..'\nimport { cleanUrl, resolveFrom, unwrapId } from '../utils'\nimport { rebindErrorStacktrace, ssrRewriteStacktrace } from './ssrStacktrace'\nimport {\n ssrExportAllKey,\n ssrModuleExportsKey,\n ssrImportKey,\n ssrImportMetaKey,\n ssrDynamicImportKey\n} from './ssrTransform'\nimport { transformRequest } from '../server/transformRequest'\n\ninterface SSRContext {\n global: NodeJS.Global\n}\n\ntype SSRModule = Record<string, any>\n\nconst pendingModules = new Map<string, Promise<SSRModule>>()\nconst pendingImports = new Map<string, string[]>()\n\nexport async function ssrLoadModule(\n url: string,\n server: ViteDevServer,\n context: SSRContext = { global },\n urlStack: string[] = []\n): Promise<SSRModule> {\n url = unwrapId(url)\n\n // when we instantiate multiple dependency modules in parallel, they may\n // point to shared modules. We need to avoid duplicate instantiation attempts\n // by register every module as pending synchronously so that all subsequent\n // request to that module are simply waiting on the same promise.\n const pending = pendingModules.get(url)\n if (pending) {\n return pending\n }\n\n const modulePromise = instantiateModule(url, server, context, urlStack)\n pendingModules.set(url, modulePromise)\n modulePromise\n .catch(() => {\n pendingImports.delete(url)\n })\n .finally(() => {\n pendingModules.delete(url)\n })\n return modulePromise\n}\n\nasync function instantiateModule(\n url: string,\n server: ViteDevServer,\n context: SSRContext = { global },\n urlStack: string[] = []\n): Promise<SSRModule> {\n const { moduleGraph } = server\n const mod = await moduleGraph.ensureEntryFromUrl(url)\n\n if (mod.ssrModule) {\n return mod.ssrModule\n }\n\n const result =\n mod.ssrTransformResult ||\n (await transformRequest(url, server, { ssr: true }))\n if (!result) {\n // TODO more info? is this even necessary?\n throw new Error(`failed to load module for ssr: ${url}`)\n }\n\n const ssrModule = {\n [Symbol.toStringTag]: 'Module'\n }\n Object.defineProperty(ssrModule, '__esModule', { value: true })\n\n // Tolerate circular imports by ensuring the module can be\n // referenced before it's been instantiated.\n mod.ssrModule = ssrModule\n\n const ssrImportMeta = { url }\n\n urlStack = urlStack.concat(url)\n const isCircular = (url: string) => urlStack.includes(url)\n\n // Since dynamic imports can happen in parallel, we need to\n // account for multiple pending deps and duplicate imports.\n const pendingDeps: string[] = []\n\n const ssrImport = async (dep: string) => {\n if (dep[0] !== '.' && dep[0] !== '/') {\n return nodeRequire(dep, mod.file, server.config.root)\n }\n dep = unwrapId(dep)\n if (!isCircular(dep) && !pendingImports.get(dep)?.some(isCircular)) {\n pendingDeps.push(dep)\n if (pendingDeps.length === 1) {\n pendingImports.set(url, pendingDeps)\n }\n await ssrLoadModule(dep, server, context, urlStack)\n if (pendingDeps.length === 1) {\n pendingImports.delete(url)\n } else {\n pendingDeps.splice(pendingDeps.indexOf(dep), 1)\n }\n }\n return moduleGraph.urlToModuleMap.get(dep)?.ssrModule\n }\n\n const ssrDynamicImport = (dep: string) => {\n // #3087 dynamic import vars is ignored at rewrite import path,\n // so here need process relative path\n if (dep[0] === '.') {\n dep = path.posix.resolve(path.dirname(url), dep)\n }\n return ssrImport(dep)\n }\n\n function ssrExportAll(sourceModule: any) {\n for (const key in sourceModule) {\n if (key !== 'default') {\n Object.defineProperty(ssrModule, key, {\n enumerable: true,\n configurable: true,\n get() {\n return sourceModule[key]\n }\n })\n }\n }\n }\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const AsyncFunction = async function () {}.constructor as typeof Function\n const initModule = new AsyncFunction(\n `global`,\n ssrModuleExportsKey,\n ssrImportMetaKey,\n ssrImportKey,\n ssrDynamicImportKey,\n ssrExportAllKey,\n result.code + `\\n//# sourceURL=${mod.url}`\n )\n await initModule(\n context.global,\n ssrModule,\n ssrImportMeta,\n ssrImport,\n ssrDynamicImport,\n ssrExportAll\n )\n } catch (e) {\n const stacktrace = ssrRewriteStacktrace(e.stack, moduleGraph)\n rebindErrorStacktrace(e, stacktrace)\n server.config.logger.error(\n `Error when evaluating SSR module ${url}:\\n${stacktrace}`,\n {\n timestamp: true,\n clear: server.config.clearScreen,\n error: e\n }\n )\n throw e\n }\n\n return Object.freeze(ssrModule)\n}\n\nfunction nodeRequire(id: string, importer: string | null, root: string) {\n const mod = require(resolve(id, importer, root))\n const defaultExport = mod.__esModule ? mod.default : mod\n // rollup-style default import interop for cjs\n return new Proxy(mod, {\n get(mod, prop) {\n if (prop === 'default') return defaultExport\n return mod[prop]\n }\n })\n}\n\nconst resolveCache = new Map<string, string>()\n\nfunction resolve(id: string, importer: string | null, root: string) {\n const key = id + importer + root\n const cached = resolveCache.get(key)\n if (cached) {\n return cached\n }\n const resolveDir =\n importer && fs.existsSync(cleanUrl(importer))\n ? path.dirname(importer)\n : root\n const resolved = resolveFrom(id, resolveDir, true)\n resolveCache.set(key, resolved)\n return resolved\n}\n","import chalk from 'chalk'\nimport { optimizeDeps } from '.'\nimport { ViteDevServer } from '..'\nimport { resolveSSRExternal } from '../ssr/ssrExternal'\n\n/**\n * The amount to wait for requests to register newly found dependencies before triggering\n * a re-bundle + page reload\n */\nconst debounceMs = 100\n\nexport function createMissingImporterRegisterFn(\n server: ViteDevServer\n): (id: string, resolved: string, ssr?: boolean) => void {\n const { logger } = server.config\n let knownOptimized = server._optimizeDepsMetadata!.optimized\n let currentMissing: Record<string, string> = {}\n let handle: NodeJS.Timeout\n\n let pendingResolve: (() => void) | null = null\n\n async function rerun(ssr: boolean | undefined) {\n const newDeps = currentMissing\n currentMissing = {}\n\n logger.info(\n chalk.yellow(\n `new dependencies found: ${Object.keys(newDeps).join(\n ', '\n )}, updating...`\n ),\n {\n timestamp: true\n }\n )\n\n for (const id in knownOptimized) {\n newDeps[id] = knownOptimized[id].src\n }\n\n try {\n // Nullify previous metadata so that the resolver won't\n // resolve to optimized files during the optimizer re-run\n server._isRunningOptimizer = true\n server._optimizeDepsMetadata = null\n\n const newData = (server._optimizeDepsMetadata = await optimizeDeps(\n server.config,\n true,\n false,\n newDeps,\n ssr\n ))\n knownOptimized = newData!.optimized\n\n // update ssr externals\n server._ssrExternals = resolveSSRExternal(\n server.config,\n Object.keys(knownOptimized)\n )\n\n logger.info(\n chalk.greenBright(`✨ dependencies updated, reloading page...`),\n { timestamp: true }\n )\n } catch (e) {\n logger.error(\n chalk.red(`error while updating dependencies:\\n${e.stack}`),\n { timestamp: true, error: e }\n )\n } finally {\n server._isRunningOptimizer = false\n pendingResolve && pendingResolve()\n server._pendingReload = pendingResolve = null\n }\n\n // Cached transform results have stale imports (resolved to\n // old locations) so they need to be invalidated before the page is\n // reloaded.\n server.moduleGraph.invalidateAll()\n\n server.ws.send({\n type: 'full-reload',\n path: '*'\n })\n }\n\n return function registerMissingImport(\n id: string,\n resolved: string,\n ssr?: boolean\n ) {\n if (!knownOptimized[id]) {\n currentMissing[id] = resolved\n if (handle) clearTimeout(handle)\n handle = setTimeout(() => rerun(ssr), debounceMs)\n server._pendingReload = new Promise((r) => {\n pendingResolve = r\n })\n }\n }\n}\n","import fs from 'fs'\nimport { dirname } from 'path'\nimport { join } from 'path'\n\n// https://github.com/vitejs/vite/issues/2820#issuecomment-812495079\nconst ROOT_FILES = [\n // '.git',\n\n // https://pnpm.js.org/workspaces/\n 'pnpm-workspace.yaml'\n\n // https://rushjs.io/pages/advanced/config_files/\n // 'rush.json',\n\n // https://nx.dev/latest/react/getting-started/nx-setup\n // 'workspace.json',\n // 'nx.json'\n]\n\n// npm: https://docs.npmjs.com/cli/v7/using-npm/workspaces#installing-workspaces\n// yarn: https://classic.yarnpkg.com/en/docs/workspaces/#toc-how-to-use-it\nfunction hasWorkspacePackageJSON(root: string): boolean {\n const path = join(root, 'package.json')\n try {\n fs.accessSync(path, fs.constants.R_OK)\n } catch {\n return false\n }\n const content = JSON.parse(fs.readFileSync(path, 'utf-8')) || {}\n return !!content.workspaces\n}\n\nfunction hasRootFile(root: string): boolean {\n return ROOT_FILES.some((file) => fs.existsSync(join(root, file)))\n}\n\nfunction hasPackageJSON(root: string) {\n const path = join(root, 'package.json')\n return fs.existsSync(path)\n}\n\n/**\n * Search up for the nearest `package.json`\n */\nexport function searchForPackageRoot(current: string, root = current): string {\n if (hasPackageJSON(current)) return current\n\n const dir = dirname(current)\n // reach the fs root\n if (!dir || dir === current) return root\n\n return searchForPackageRoot(dir, root)\n}\n\n/**\n * Search up for the nearest workspace root\n */\nexport function searchForWorkspaceRoot(\n current: string,\n root = searchForPackageRoot(current)\n): string {\n if (hasRootFile(current)) return current\n if (hasWorkspacePackageJSON(current)) return current\n\n const dir = dirname(current)\n // reach the fs root\n if (!dir || dir === current) return root\n\n return searchForWorkspaceRoot(dir, root)\n}\n","import fs from 'fs'\nimport path from 'path'\nimport * as net from 'net'\nimport * as http from 'http'\nimport * as https from 'https'\nimport connect from 'connect'\nimport corsMiddleware from 'cors'\nimport chalk from 'chalk'\nimport { AddressInfo } from 'net'\nimport chokidar from 'chokidar'\nimport { resolveHttpsConfig, resolveHttpServer, httpServerStart } from './http'\nimport { resolveConfig, InlineConfig, ResolvedConfig } from '../config'\nimport { createPluginContainer, PluginContainer } from './pluginContainer'\nimport { FSWatcher, WatchOptions } from 'types/chokidar'\nimport { createWebSocketServer, WebSocketServer } from './ws'\nimport { baseMiddleware } from './middlewares/base'\nimport { proxyMiddleware, ProxyOptions } from './middlewares/proxy'\nimport { transformMiddleware } from './middlewares/transform'\nimport {\n createDevHtmlTransformFn,\n indexHtmlMiddleware\n} from './middlewares/indexHtml'\nimport history from 'connect-history-api-fallback'\nimport {\n serveRawFsMiddleware,\n servePublicMiddleware,\n serveStaticMiddleware\n} from './middlewares/static'\nimport { timeMiddleware } from './middlewares/time'\nimport { ModuleGraph, ModuleNode } from './moduleGraph'\nimport { Connect } from 'types/connect'\nimport { createDebugger, ensureLeadingSlash, normalizePath } from '../utils'\nimport { errorMiddleware, prepareError } from './middlewares/error'\nimport { handleHMRUpdate, HmrOptions, handleFileAddUnlink } from './hmr'\nimport { openBrowser } from './openBrowser'\nimport launchEditorMiddleware from 'launch-editor-middleware'\nimport { TransformResult } from 'rollup'\nimport { TransformOptions, transformRequest } from './transformRequest'\nimport {\n transformWithEsbuild,\n ESBuildTransformResult\n} from '../plugins/esbuild'\nimport { TransformOptions as EsbuildTransformOptions } from 'esbuild'\nimport { DepOptimizationMetadata, optimizeDeps } from '../optimizer'\nimport { ssrLoadModule } from '../ssr/ssrModuleLoader'\nimport { resolveSSRExternal } from '../ssr/ssrExternal'\nimport {\n rebindErrorStacktrace,\n ssrRewriteStacktrace\n} from '../ssr/ssrStacktrace'\nimport { createMissingImporterRegisterFn } from '../optimizer/registerMissing'\nimport { printServerUrls } from '../logger'\nimport { resolveHostname } from '../utils'\nimport { searchForWorkspaceRoot } from './searchRoot'\nimport { CLIENT_DIR } from '../constants'\n\nexport interface ServerOptions {\n host?: string | boolean\n port?: number\n /**\n * Enable TLS + HTTP/2.\n * Note: this downgrades to TLS only when the proxy option is also used.\n */\n https?: boolean | https.ServerOptions\n /**\n * Open browser window on startup\n */\n open?: boolean | string\n /**\n * Force dep pre-optimization regardless of whether deps have changed.\n */\n force?: boolean\n /**\n * Configure HMR-specific options (port, host, path & protocol)\n */\n hmr?: HmrOptions | boolean\n /**\n * chokidar watch options\n * https://github.com/paulmillr/chokidar#api\n */\n watch?: WatchOptions\n /**\n * Configure custom proxy rules for the dev server. Expects an object\n * of `{ key: options }` pairs.\n * Uses [`http-proxy`](https://github.com/http-party/node-http-proxy).\n * Full options [here](https://github.com/http-party/node-http-proxy#options).\n *\n * Example `vite.config.js`:\n * ``` js\n * module.exports = {\n * proxy: {\n * // string shorthand\n * '/foo': 'http://localhost:4567/foo',\n * // with options\n * '/api': {\n * target: 'http://jsonplaceholder.typicode.com',\n * changeOrigin: true,\n * rewrite: path => path.replace(/^\\/api/, '')\n * }\n * }\n * }\n * ```\n */\n proxy?: Record<string, string | ProxyOptions>\n /**\n * Configure CORS for the dev server.\n * Uses https://github.com/expressjs/cors.\n * Set to `true` to allow all methods from any origin, or configure separately\n * using an object.\n */\n cors?: CorsOptions | boolean\n /**\n * If enabled, vite will exit if specified port is already in use\n */\n strictPort?: boolean\n /**\n * Create Vite dev server to be used as a middleware in an existing server\n */\n middlewareMode?: boolean | 'html' | 'ssr'\n /**\n * Prepend this folder to http requests, for use when proxying vite as a subfolder\n * Should start and end with the `/` character\n */\n base?: string\n /**\n * Options for files served via '/\\@fs/'.\n */\n fs?: FileSystemServeOptions\n}\n\nexport interface ResolvedServerOptions extends ServerOptions {\n fs: Required<FileSystemServeOptions>\n}\n\nexport interface FileSystemServeOptions {\n /**\n * Strictly restrict file accessing outside of allowing paths.\n *\n * Set to `false` to disable the warning\n * Default to false at this moment, will enabled by default in the future versions.\n *\n * @expiremental\n * @default undefined\n */\n strict?: boolean | undefined\n\n /**\n * Restrict accessing files outside the allowed directories.\n *\n * Accepts absolute path or a path relative to project root.\n * Will try to search up for workspace root by default.\n *\n * @expiremental\n */\n allow?: string[]\n}\n\n/**\n * https://github.com/expressjs/cors#configuration-options\n */\nexport interface CorsOptions {\n origin?:\n | CorsOrigin\n | ((origin: string, cb: (err: Error, origins: CorsOrigin) => void) => void)\n methods?: string | string[]\n allowedHeaders?: string | string[]\n exposedHeaders?: string | string[]\n credentials?: boolean\n maxAge?: number\n preflightContinue?: boolean\n optionsSuccessStatus?: number\n}\n\nexport type CorsOrigin = boolean | string | RegExp | (string | RegExp)[]\n\nexport type ServerHook = (\n server: ViteDevServer\n) => (() => void) | void | Promise<(() => void) | void>\n\nexport interface ViteDevServer {\n /**\n * The resolved vite config object\n */\n config: ResolvedConfig\n /**\n * A connect app instance.\n * - Can be used to attach custom middlewares to the dev server.\n * - Can also be used as the handler function of a custom http server\n * or as a middleware in any connect-style Node.js frameworks\n *\n * https://github.com/senchalabs/connect#use-middleware\n */\n middlewares: Connect.Server\n /**\n * @deprecated use `server.middlewares` instead\n */\n app: Connect.Server\n /**\n * native Node http server instance\n * will be null in middleware mode\n */\n httpServer: http.Server | null\n /**\n * chokidar watcher instance\n * https://github.com/paulmillr/chokidar#api\n */\n watcher: FSWatcher\n /**\n * web socket server with `send(payload)` method\n */\n ws: WebSocketServer\n /**\n * Rollup plugin container that can run plugin hooks on a given file\n */\n pluginContainer: PluginContainer\n /**\n * Module graph that tracks the import relationships, url to file mapping\n * and hmr state.\n */\n moduleGraph: ModuleGraph\n /**\n * Programmatically resolve, load and transform a URL and get the result\n * without going through the http request pipeline.\n */\n transformRequest(\n url: string,\n options?: TransformOptions\n ): Promise<TransformResult | null>\n /**\n * Apply vite built-in HTML transforms and any plugin HTML transforms.\n */\n transformIndexHtml(\n url: string,\n html: string,\n originalUrl?: string\n ): Promise<string>\n /**\n * Util for transforming a file with esbuild.\n * Can be useful for certain plugins.\n */\n transformWithEsbuild(\n code: string,\n filename: string,\n options?: EsbuildTransformOptions,\n inMap?: object\n ): Promise<ESBuildTransformResult>\n /**\n * Load a given URL as an instantiated module for SSR.\n */\n ssrLoadModule(url: string): Promise<Record<string, any>>\n /**\n * Fix ssr error stacktrace\n */\n ssrFixStacktrace(e: Error): void\n /**\n * Start the server.\n */\n listen(port?: number, isRestart?: boolean): Promise<ViteDevServer>\n /**\n * Stop the server.\n */\n close(): Promise<void>\n /**\n * @internal\n */\n _optimizeDepsMetadata: DepOptimizationMetadata | null\n /**\n * Deps that are externalized\n * @internal\n */\n _ssrExternals: string[] | null\n /**\n * @internal\n */\n _globImporters: Record<\n string,\n {\n module: ModuleNode\n importGlobs: {\n base: string\n pattern: string\n }[]\n }\n >\n /**\n * @internal\n */\n _isRunningOptimizer: boolean\n /**\n * @internal\n */\n _registerMissingImport:\n | ((id: string, resolved: string, ssr: boolean | undefined) => void)\n | null\n /**\n * @internal\n */\n _pendingReload: Promise<void> | null\n}\n\nexport async function createServer(\n inlineConfig: InlineConfig = {}\n): Promise<ViteDevServer> {\n const config = await resolveConfig(inlineConfig, 'serve', 'development')\n const root = config.root\n const serverConfig = config.server\n const httpsOptions = await resolveHttpsConfig(config)\n let { middlewareMode } = serverConfig\n if (middlewareMode === true) {\n middlewareMode = 'ssr'\n }\n\n const middlewares = connect() as Connect.Server\n const httpServer = middlewareMode\n ? null\n : await resolveHttpServer(serverConfig, middlewares, httpsOptions)\n const ws = createWebSocketServer(httpServer, config, httpsOptions)\n\n const { ignored = [], ...watchOptions } = serverConfig.watch || {}\n const watcher = chokidar.watch(path.resolve(root), {\n ignored: [\n '**/node_modules/**',\n '**/.git/**',\n ...(Array.isArray(ignored) ? ignored : [ignored])\n ],\n ignoreInitial: true,\n ignorePermissionErrors: true,\n disableGlobbing: true,\n ...watchOptions\n }) as FSWatcher\n\n const plugins = config.plugins\n const container = await createPluginContainer(config, watcher)\n const moduleGraph = new ModuleGraph(container)\n const closeHttpServer = createServerCloseFn(httpServer)\n\n // eslint-disable-next-line prefer-const\n let exitProcess: () => void\n\n const server: ViteDevServer = {\n config: config,\n middlewares,\n get app() {\n config.logger.warn(\n `ViteDevServer.app is deprecated. Use ViteDevServer.middlewares instead.`\n )\n return middlewares\n },\n httpServer,\n watcher,\n pluginContainer: container,\n ws,\n moduleGraph,\n transformWithEsbuild,\n transformRequest(url, options) {\n return transformRequest(url, server, options)\n },\n transformIndexHtml: null!, // to be immediately set\n ssrLoadModule(url) {\n if (!server._ssrExternals) {\n server._ssrExternals = resolveSSRExternal(\n config,\n server._optimizeDepsMetadata\n ? Object.keys(server._optimizeDepsMetadata.optimized)\n : []\n )\n }\n return ssrLoadModule(url, server)\n },\n ssrFixStacktrace(e) {\n if (e.stack) {\n const stacktrace = ssrRewriteStacktrace(e.stack, moduleGraph)\n rebindErrorStacktrace(e, stacktrace)\n }\n },\n listen(port?: number, isRestart?: boolean) {\n return startServer(server, port, isRestart)\n },\n async close() {\n process.off('SIGTERM', exitProcess)\n\n if (!middlewareMode && process.env.CI !== 'true') {\n process.stdin.off('end', exitProcess)\n }\n\n await Promise.all([\n watcher.close(),\n ws.close(),\n container.close(),\n closeHttpServer()\n ])\n },\n _optimizeDepsMetadata: null,\n _ssrExternals: null,\n _globImporters: {},\n _isRunningOptimizer: false,\n _registerMissingImport: null,\n _pendingReload: null\n }\n\n server.transformIndexHtml = createDevHtmlTransformFn(server)\n\n exitProcess = async () => {\n try {\n await server.close()\n } finally {\n process.exit(0)\n }\n }\n\n process.once('SIGTERM', exitProcess)\n\n if (!middlewareMode && process.env.CI !== 'true') {\n process.stdin.on('end', exitProcess)\n }\n\n watcher.on('change', async (file) => {\n file = normalizePath(file)\n // invalidate module graph cache on file change\n moduleGraph.onFileChange(file)\n if (serverConfig.hmr !== false) {\n try {\n await handleHMRUpdate(file, server)\n } catch (err) {\n ws.send({\n type: 'error',\n err: prepareError(err)\n })\n }\n }\n })\n\n watcher.on('add', (file) => {\n handleFileAddUnlink(normalizePath(file), server)\n })\n\n watcher.on('unlink', (file) => {\n handleFileAddUnlink(normalizePath(file), server, true)\n })\n\n if (!middlewareMode && httpServer) {\n httpServer.once('listening', () => {\n // update actual port since this may be different from initial value\n serverConfig.port = (httpServer.address() as AddressInfo).port\n })\n }\n\n // apply server configuration hooks from plugins\n const postHooks: ((() => void) | void)[] = []\n for (const plugin of plugins) {\n if (plugin.configureServer) {\n postHooks.push(await plugin.configureServer(server))\n }\n }\n\n // Internal middlewares ------------------------------------------------------\n\n // request timer\n if (process.env.DEBUG) {\n middlewares.use(timeMiddleware(root))\n }\n\n // cors (enabled by default)\n const { cors } = serverConfig\n if (cors !== false) {\n middlewares.use(corsMiddleware(typeof cors === 'boolean' ? {} : cors))\n }\n\n // proxy\n const { proxy } = serverConfig\n if (proxy) {\n middlewares.use(proxyMiddleware(httpServer, config))\n }\n\n // base\n if (config.base !== '/') {\n middlewares.use(baseMiddleware(server))\n }\n\n // open in editor support\n middlewares.use('/__open-in-editor', launchEditorMiddleware())\n\n // hmr reconnect ping\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n middlewares.use('/__vite_ping', function viteHMRPingMiddleware(_, res) {\n res.end('pong')\n })\n\n // serve static files under /public\n // this applies before the transform middleware so that these files are served\n // as-is without transforms.\n if (config.publicDir) {\n middlewares.use(servePublicMiddleware(config.publicDir))\n }\n\n // main transform middleware\n middlewares.use(transformMiddleware(server))\n\n // serve static files\n middlewares.use(serveRawFsMiddleware(server))\n middlewares.use(serveStaticMiddleware(root, config))\n\n // spa fallback\n if (!middlewareMode || middlewareMode === 'html') {\n middlewares.use(\n history({\n logger: createDebugger('vite:spa-fallback'),\n // support /dir/ without explicit index.html\n rewrites: [\n {\n from: /\\/$/,\n to({ parsedUrl }: any) {\n const rewritten = parsedUrl.pathname + 'index.html'\n if (fs.existsSync(path.join(root, rewritten))) {\n return rewritten\n } else {\n return `/index.html`\n }\n }\n }\n ]\n })\n )\n }\n\n // run post config hooks\n // This is applied before the html middleware so that user middleware can\n // serve custom content instead of index.html.\n postHooks.forEach((fn) => fn && fn())\n\n if (!middlewareMode || middlewareMode === 'html') {\n // transform index.html\n middlewares.use(indexHtmlMiddleware(server))\n // handle 404s\n // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`\n middlewares.use(function vite404Middleware(_, res) {\n res.statusCode = 404\n res.end()\n })\n }\n\n // error handler\n middlewares.use(errorMiddleware(server, !!middlewareMode))\n\n const runOptimize = async () => {\n if (config.cacheDir) {\n server._isRunningOptimizer = true\n try {\n server._optimizeDepsMetadata = await optimizeDeps(config)\n } finally {\n server._isRunningOptimizer = false\n }\n server._registerMissingImport = createMissingImporterRegisterFn(server)\n }\n }\n\n if (!middlewareMode && httpServer) {\n let isOptimized = false\n // overwrite listen to run optimizer before server start\n const listen = httpServer.listen.bind(httpServer)\n httpServer.listen = (async (port: number, ...args: any[]) => {\n if (!isOptimized) {\n try {\n await container.buildStart({})\n await runOptimize()\n isOptimized = true\n } catch (e) {\n httpServer.emit('error', e)\n return\n }\n }\n return listen(port, ...args)\n }) as any\n } else {\n await container.buildStart({})\n await runOptimize()\n }\n\n return server\n}\n\nasync function startServer(\n server: ViteDevServer,\n inlinePort?: number,\n isRestart: boolean = false\n): Promise<ViteDevServer> {\n const httpServer = server.httpServer\n if (!httpServer) {\n throw new Error('Cannot call server.listen in middleware mode.')\n }\n\n const options = server.config.server\n const port = inlinePort || options.port || 3000\n const hostname = resolveHostname(options.host)\n\n const protocol = options.https ? 'https' : 'http'\n const info = server.config.logger.info\n const base = server.config.base\n\n const serverPort = await httpServerStart(httpServer, {\n port,\n strictPort: options.strictPort,\n host: hostname.host,\n logger: server.config.logger\n })\n\n info(\n chalk.cyan(`\\n vite v${require('vite/package.json').version}`) +\n chalk.green(` dev server running at:\\n`),\n {\n clear: !server.config.logger.hasWarned\n }\n )\n\n printServerUrls(hostname, protocol, serverPort, base, info)\n\n // @ts-ignore\n if (global.__vite_start_time) {\n info(\n chalk.cyan(\n // @ts-ignore\n `\\n ready in ${Date.now() - global.__vite_start_time}ms.\\n`\n )\n )\n }\n\n // @ts-ignore\n const profileSession = global.__vite_profile_session\n if (profileSession) {\n profileSession.post('Profiler.stop', (err: any, { profile }: any) => {\n // Write profile to disk, upload, etc.\n if (!err) {\n const outPath = path.resolve('./vite-profile.cpuprofile')\n fs.writeFileSync(outPath, JSON.stringify(profile))\n info(\n chalk.yellow(` CPU profile written to ${chalk.white.dim(outPath)}\\n`)\n )\n } else {\n throw err\n }\n })\n }\n\n if (options.open && !isRestart) {\n const path = typeof options.open === 'string' ? options.open : base\n openBrowser(\n `${protocol}://${hostname.name}:${serverPort}${path}`,\n true,\n server.config.logger\n )\n }\n\n return server\n}\n\nfunction createServerCloseFn(server: http.Server | null) {\n if (!server) {\n return () => {}\n }\n\n let hasListened = false\n const openSockets = new Set<net.Socket>()\n\n server.on('connection', (socket) => {\n openSockets.add(socket)\n socket.on('close', () => {\n openSockets.delete(socket)\n })\n })\n\n server.once('listening', () => {\n hasListened = true\n })\n\n return () =>\n new Promise<void>((resolve, reject) => {\n openSockets.forEach((s) => s.destroy())\n if (hasListened) {\n server.close((err) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n } else {\n resolve()\n }\n })\n}\n\nfunction resolvedAllowDir(root: string, dir: string): string {\n return ensureLeadingSlash(normalizePath(path.resolve(root, dir)))\n}\n\nexport function resolveServerOptions(\n root: string,\n raw?: ServerOptions\n): ResolvedServerOptions {\n const server = raw || {}\n let allowDirs = server.fs?.allow\n\n if (!allowDirs) {\n allowDirs = [searchForWorkspaceRoot(root)]\n }\n\n allowDirs = allowDirs.map((i) => resolvedAllowDir(root, i))\n\n // only push client dir when vite itself is outside-of-root\n const resolvedClientDir = resolvedAllowDir(root, CLIENT_DIR)\n if (!allowDirs.some((i) => resolvedClientDir.startsWith(i))) {\n allowDirs.push(resolvedClientDir)\n }\n\n server.fs = {\n // TODO: make strict by default\n strict: server.fs?.strict,\n allow: allowDirs\n }\n return server as ResolvedServerOptions\n}\n","const noop = () => null;\nfunction matches(pattern, importee) {\n if (pattern instanceof RegExp) {\n return pattern.test(importee);\n }\n if (importee.length < pattern.length) {\n return false;\n }\n if (importee === pattern) {\n return true;\n }\n const importeeStartsWithKey = importee.indexOf(pattern) === 0;\n const importeeHasSlashAfterKey = importee.substring(pattern.length)[0] === '/';\n return importeeStartsWithKey && importeeHasSlashAfterKey;\n}\nfunction normalizeId(id) {\n return id;\n}\nfunction getEntries({ entries }) {\n if (!entries) {\n return [];\n }\n if (Array.isArray(entries)) {\n return entries;\n }\n return Object.entries(entries).map(([key, value]) => {\n return { find: key, replacement: value };\n });\n}\nfunction getCustomResolver({ customResolver }, options) {\n if (typeof customResolver === 'function') {\n return customResolver;\n }\n if (customResolver && typeof customResolver.resolveId === 'function') {\n return customResolver.resolveId;\n }\n if (typeof options.customResolver === 'function') {\n return options.customResolver;\n }\n if (options.customResolver && typeof options.customResolver.resolveId === 'function') {\n return options.customResolver.resolveId;\n }\n return null;\n}\nfunction alias(options = {}) {\n const entries = getEntries(options);\n if (entries.length === 0) {\n return {\n name: 'alias',\n resolveId: noop\n };\n }\n return {\n name: 'alias',\n buildStart(inputOptions) {\n return Promise.all([...entries, options].map(({ customResolver }) => customResolver &&\n typeof customResolver === 'object' &&\n typeof customResolver.buildStart === 'function' &&\n customResolver.buildStart.call(this, inputOptions))).then(() => {\n // enforce void return value\n });\n },\n resolveId(importee, importer) {\n const importeeId = normalizeId(importee);\n const importerId = normalizeId(importer);\n // First match is supposed to be the correct one\n const matchedEntry = entries.find((entry) => matches(entry.find, importeeId));\n if (!matchedEntry || !importerId) {\n return null;\n }\n const updatedId = normalizeId(importeeId.replace(matchedEntry.find, matchedEntry.replacement));\n const customResolver = getCustomResolver(matchedEntry, options);\n if (customResolver) {\n return customResolver.call(this, updatedId, importerId, {});\n }\n return this.resolve(updatedId, importer, { skipSelf: true }).then((resolved) => {\n let finalResult = resolved;\n if (!finalResult) {\n finalResult = { id: updatedId };\n }\n return finalResult;\n });\n }\n };\n}\n\nexport default alias;\n","/**\n * https://github.com/rollup/plugins/blob/master/packages/json/src/index.js\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file at\n * https://github.com/rollup/plugins/blob/master/LICENSE\n */\n\nimport { dataToEsm } from '@rollup/pluginutils'\nimport { Plugin } from 'rollup'\nimport { SPECIAL_QUERY_RE } from '../constants'\n\nexport interface JsonOptions {\n /**\n * Generate a named export for every property of the JSON object\n * @default true\n */\n namedExports?: boolean\n /**\n * Generate performant output as JSON.parse(\"stringified\").\n * Enabling this will disable namedExports.\n * @default false\n */\n stringify?: boolean\n}\n\n// Custom json filter for vite\nconst jsonExtRE = /\\.json($|\\?)(?!commonjs-proxy)/\n\nexport function jsonPlugin(\n options: JsonOptions = {},\n isBuild: boolean\n): Plugin {\n return {\n name: 'vite:json',\n\n transform(json, id) {\n if (!jsonExtRE.test(id)) return null\n if (SPECIAL_QUERY_RE.test(id)) return null\n\n try {\n if (options.stringify) {\n if (isBuild) {\n return {\n // during build, parse then double-stringify to remove all\n // unnecessary whitespaces to reduce bundle size.\n code: `export default JSON.parse(${JSON.stringify(\n JSON.stringify(JSON.parse(json))\n )})`,\n map: { mappings: '' }\n }\n } else {\n return `export default JSON.parse(${JSON.stringify(json)})`\n }\n }\n\n const parsed = JSON.parse(json)\n return {\n code: dataToEsm(parsed, {\n preferConst: true,\n namedExports: options.namedExports\n }),\n map: { mappings: '' }\n }\n } catch (e) {\n const errorMessageList = /[\\d]+/.exec(e.message)\n const position = errorMessageList && parseInt(errorMessageList[0], 10)\n const msg = position\n ? `, invalid JSON syntax found at line ${position}`\n : `.`\n this.error(`Failed to parse JSON file` + msg, e.idx)\n }\n }\n }\n}\n","import fs from 'fs'\nimport path from 'path'\nimport { Plugin } from '../plugin'\nimport { ResolvedConfig } from '../config'\nimport chalk from 'chalk'\nimport MagicString from 'magic-string'\nimport { init, parse as parseImports, ImportSpecifier } from 'es-module-lexer'\nimport { isCSSRequest, isDirectCSSRequest } from './css'\nimport {\n isBuiltin,\n cleanUrl,\n createDebugger,\n generateCodeFrame,\n injectQuery,\n isDataUrl,\n isExternalUrl,\n isJSRequest,\n prettifyUrl,\n timeFrom,\n normalizePath\n} from '../utils'\nimport {\n debugHmr,\n handlePrunedModules,\n lexAcceptedHmrDeps\n} from '../server/hmr'\nimport {\n FS_PREFIX,\n CLIENT_DIR,\n CLIENT_PUBLIC_PATH,\n DEP_VERSION_RE,\n VALID_ID_PREFIX,\n NULL_BYTE_PLACEHOLDER\n} from '../constants'\nimport { ViteDevServer } from '..'\nimport { checkPublicFile } from './asset'\nimport { parse as parseJS } from 'acorn'\nimport type { Node } from 'estree'\nimport { transformImportGlob } from '../importGlob'\nimport { makeLegalIdentifier } from '@rollup/pluginutils'\nimport { shouldExternalizeForSSR } from '../ssr/ssrExternal'\n\nconst isDebug = !!process.env.DEBUG\nconst debugRewrite = createDebugger('vite:rewrite')\n\nconst clientDir = normalizePath(CLIENT_DIR)\n\nconst skipRE = /\\.(map|json)$/\nconst canSkip = (id: string) => skipRE.test(id) || isDirectCSSRequest(id)\n\nfunction isExplicitImportRequired(url: string) {\n return !isJSRequest(cleanUrl(url)) && !isCSSRequest(url)\n}\n\nfunction markExplicitImport(url: string) {\n if (isExplicitImportRequired(url)) {\n return injectQuery(url, 'import')\n }\n return url\n}\n\n/**\n * Server-only plugin that lexes, resolves, rewrites and analyzes url imports.\n *\n * - Imports are resolved to ensure they exist on disk\n *\n * - Lexes HMR accept calls and updates import relationships in the module graph\n *\n * - Bare module imports are resolved (by @rollup-plugin/node-resolve) to\n * absolute file paths, e.g.\n *\n * ```js\n * import 'foo'\n * ```\n * is rewritten to\n * ```js\n * import '/@fs//project/node_modules/foo/dist/foo.js'\n * ```\n *\n * - CSS imports are appended with `.js` since both the js module and the actual\n * css (referenced via <link>) may go through the transform pipeline:\n *\n * ```js\n * import './style.css'\n * ```\n * is rewritten to\n * ```js\n * import './style.css.js'\n * ```\n */\nexport function importAnalysisPlugin(config: ResolvedConfig): Plugin {\n const { root, base } = config\n const clientPublicPath = path.posix.join(base, CLIENT_PUBLIC_PATH)\n\n let server: ViteDevServer\n\n return {\n name: 'vite:import-analysis',\n\n configureServer(_server) {\n server = _server\n },\n\n async transform(source, importer, ssr) {\n const prettyImporter = prettifyUrl(importer, root)\n\n if (canSkip(importer)) {\n isDebug && debugRewrite(chalk.dim(`[skipped] ${prettyImporter}`))\n return null\n }\n\n const rewriteStart = Date.now()\n await init\n let imports: readonly ImportSpecifier[] = []\n // strip UTF-8 BOM\n if (source.charCodeAt(0) === 0xfeff) {\n source = source.slice(1)\n }\n try {\n imports = parseImports(source)[0]\n } catch (e) {\n const isVue = importer.endsWith('.vue')\n const maybeJSX = !isVue && isJSRequest(importer)\n\n const msg = isVue\n ? `Install @vitejs/plugin-vue to handle .vue files.`\n : maybeJSX\n ? `If you are using JSX, make sure to name the file with the .jsx or .tsx extension.`\n : `You may need to install appropriate plugins to handle the ${path.extname(\n importer\n )} file format.`\n\n this.error(\n `Failed to parse source for import analysis because the content ` +\n `contains invalid JS syntax. ` +\n msg,\n e.idx\n )\n }\n\n if (!imports.length) {\n isDebug &&\n debugRewrite(\n `${timeFrom(rewriteStart)} ${chalk.dim(\n `[no imports] ${prettyImporter}`\n )}`\n )\n return source\n }\n\n let hasHMR = false\n let isSelfAccepting = false\n let hasEnv = false\n let needQueryInjectHelper = false\n let s: MagicString | undefined\n const str = () => s || (s = new MagicString(source))\n // vite-only server context\n const { moduleGraph } = server\n // since we are already in the transform phase of the importer, it must\n // have been loaded so its entry is guaranteed in the module graph.\n const importerModule = moduleGraph.getModuleById(importer)!\n const importedUrls = new Set<string>()\n const acceptedUrls = new Set<{\n url: string\n start: number\n end: number\n }>()\n const toAbsoluteUrl = (url: string) =>\n path.posix.resolve(path.posix.dirname(importerModule.url), url)\n\n const normalizeUrl = async (\n url: string,\n pos: number\n ): Promise<[string, string]> => {\n if (base !== '/' && url.startsWith(base)) {\n url = url.replace(base, '/')\n }\n\n const resolved = await this.resolve(url, importer)\n\n if (!resolved) {\n this.error(\n `Failed to resolve import \"${url}\" from \"${path.relative(\n process.cwd(),\n importer\n )}\". Does the file exist?`,\n pos\n )\n }\n\n const isRelative = url.startsWith('.')\n\n // normalize all imports into resolved URLs\n // e.g. `import 'foo'` -> `import '/@fs/.../node_modules/foo/index.js`\n if (resolved.id.startsWith(root + '/')) {\n // in root: infer short absolute path from root\n url = resolved.id.slice(root.length)\n } else if (fs.existsSync(cleanUrl(resolved.id))) {\n // exists but out of root: rewrite to absolute /@fs/ paths\n url = path.posix.join(FS_PREFIX + resolved.id)\n } else {\n url = resolved.id\n }\n\n if (isExternalUrl(url)) {\n return [url, url]\n }\n\n // if the resolved id is not a valid browser import specifier,\n // prefix it to make it valid. We will strip this before feeding it\n // back into the transform pipeline\n if (!url.startsWith('.') && !url.startsWith('/')) {\n url =\n VALID_ID_PREFIX + resolved.id.replace('\\0', NULL_BYTE_PLACEHOLDER)\n }\n\n // make the URL browser-valid if not SSR\n if (!ssr) {\n // mark non-js/css imports with `?import`\n url = markExplicitImport(url)\n\n // for relative js/css imports, inherit importer's version query\n // do not do this for unknown type imports, otherwise the appended\n // query can break 3rd party plugin's extension checks.\n if (isRelative && !/[\\?&]import=?\\b/.test(url)) {\n const versionMatch = importer.match(DEP_VERSION_RE)\n if (versionMatch) {\n url = injectQuery(url, versionMatch[1])\n }\n }\n\n // check if the dep has been hmr updated. If yes, we need to attach\n // its last updated timestamp to force the browser to fetch the most\n // up-to-date version of this module.\n try {\n const depModule = await moduleGraph.ensureEntryFromUrl(url)\n if (depModule.lastHMRTimestamp > 0) {\n url = injectQuery(url, `t=${depModule.lastHMRTimestamp}`)\n }\n } catch (e) {\n // it's possible that the dep fails to resolve (non-existent import)\n // attach location to the missing import\n e.pos = pos\n throw e\n }\n\n // prepend base (dev base is guaranteed to have ending slash)\n url = base + url.replace(/^\\//, '')\n }\n\n return [url, resolved.id]\n }\n\n for (let index = 0; index < imports.length; index++) {\n const {\n s: start,\n e: end,\n ss: expStart,\n se: expEnd,\n d: dynamicIndex,\n // #2083 User may use escape path,\n // so use imports[index].n to get the unescaped string\n // @ts-ignore\n n: specifier\n } = imports[index]\n\n const rawUrl = source.slice(start, end)\n\n // check import.meta usage\n if (rawUrl === 'import.meta') {\n const prop = source.slice(end, end + 4)\n if (prop === '.hot') {\n hasHMR = true\n if (source.slice(end + 4, end + 11) === '.accept') {\n // further analyze accepted modules\n if (\n lexAcceptedHmrDeps(\n source,\n source.indexOf('(', end + 11) + 1,\n acceptedUrls\n )\n ) {\n isSelfAccepting = true\n }\n }\n } else if (prop === '.env') {\n hasEnv = true\n } else if (prop === '.glo' && source[end + 4] === 'b') {\n // transform import.meta.glob()\n // e.g. `import.meta.glob('glob:./dir/*.js')`\n const { imports, importsString, exp, endIndex, base, pattern } =\n await transformImportGlob(\n source,\n start,\n importer,\n index,\n root,\n normalizeUrl\n )\n str().prepend(importsString)\n str().overwrite(expStart, endIndex, exp)\n imports.forEach((url) => importedUrls.add(url.replace(base, '/')))\n if (!(importerModule.file! in server._globImporters)) {\n server._globImporters[importerModule.file!] = {\n module: importerModule,\n importGlobs: []\n }\n }\n server._globImporters[importerModule.file!].importGlobs.push({\n base,\n pattern\n })\n }\n continue\n }\n\n const isDynamicImport = dynamicIndex >= 0\n\n // static import or valid string in dynamic import\n // If resolvable, let's resolve it\n if (specifier) {\n // skip external / data uri\n if (isExternalUrl(specifier) || isDataUrl(specifier)) {\n continue\n }\n // skip ssr external\n if (ssr) {\n if (\n server._ssrExternals &&\n shouldExternalizeForSSR(specifier, server._ssrExternals)\n ) {\n continue\n }\n if (isBuiltin(specifier)) {\n continue\n }\n }\n // skip client\n if (specifier === clientPublicPath) {\n continue\n }\n\n // warn imports to non-asset /public files\n if (\n specifier.startsWith('/') &&\n !config.assetsInclude(cleanUrl(specifier)) &&\n !specifier.endsWith('.json') &&\n checkPublicFile(specifier, config)\n ) {\n throw new Error(\n `Cannot import non-asset file ${specifier} which is inside /public.` +\n `JS/CSS files inside /public are copied as-is on build and ` +\n `can only be referenced via <script src> or <link href> in html.`\n )\n }\n\n // normalize\n const [normalizedUrl, resolvedId] = await normalizeUrl(\n specifier,\n start\n )\n let url = normalizedUrl\n\n // record as safe modules\n server?.moduleGraph.safeModulesPath.add(\n cleanUrl(url).slice(4 /* '/@fs'.length */)\n )\n\n // rewrite\n if (url !== specifier) {\n // for optimized cjs deps, support named imports by rewriting named\n // imports to const assignments.\n if (resolvedId.endsWith(`&es-interop`)) {\n url = url.slice(0, -11)\n if (isDynamicImport) {\n // rewrite `import('package')` to expose the default directly\n str().overwrite(\n dynamicIndex,\n end + 1,\n `import('${url}').then(m => m.default && m.default.__esModule ? m.default : ({ ...m.default, default: m.default }))`\n )\n } else {\n const exp = source.slice(expStart, expEnd)\n const rewritten = transformCjsImport(exp, url, rawUrl, index)\n if (rewritten) {\n str().overwrite(expStart, expEnd, rewritten)\n } else {\n // #1439 export * from '...'\n str().overwrite(start, end, url)\n }\n }\n } else {\n str().overwrite(start, end, isDynamicImport ? `'${url}'` : url)\n }\n }\n\n // record for HMR import chain analysis\n // make sure to normalize away base\n importedUrls.add(url.replace(base, '/'))\n } else if (!importer.startsWith(clientDir) && !ssr) {\n // check @vite-ignore which suppresses dynamic import warning\n const hasViteIgnore = /\\/\\*\\s*@vite-ignore\\s*\\*\\//.test(rawUrl)\n\n const url = rawUrl\n .replace(/\\/\\*[\\s\\S]*?\\*\\/|([^\\\\:]|^)\\/\\/.*$/gm, '')\n .trim()\n if (!hasViteIgnore && !isSupportedDynamicImport(url)) {\n this.warn(\n `\\n` +\n chalk.cyan(importerModule.file) +\n `\\n` +\n generateCodeFrame(source, start) +\n `\\nThe above dynamic import cannot be analyzed by vite.\\n` +\n `See ${chalk.blue(\n `https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations`\n )} ` +\n `for supported dynamic import formats. ` +\n `If this is intended to be left as-is, you can use the ` +\n `/* @vite-ignore */ comment inside the import() call to suppress this warning.\\n`\n )\n }\n if (\n !/^('.*'|\".*\"|`.*`)$/.test(url) ||\n isExplicitImportRequired(url.slice(1, -1))\n ) {\n needQueryInjectHelper = true\n str().overwrite(start, end, `__vite__injectQuery(${url}, 'import')`)\n }\n }\n }\n\n if (hasEnv) {\n // inject import.meta.env\n let env = `import.meta.env = ${JSON.stringify({\n ...config.env,\n SSR: !!ssr\n })};`\n // account for user env defines\n for (const key in config.define) {\n if (key.startsWith(`import.meta.env.`)) {\n const val = config.define[key]\n env += `${key} = ${\n typeof val === 'string' ? val : JSON.stringify(val)\n };`\n }\n }\n str().prepend(env)\n }\n\n if (hasHMR && !ssr) {\n debugHmr(\n `${\n isSelfAccepting\n ? `[self-accepts]`\n : acceptedUrls.size\n ? `[accepts-deps]`\n : `[detected api usage]`\n } ${prettyImporter}`\n )\n // inject hot context\n str().prepend(\n `import { createHotContext as __vite__createHotContext } from \"${clientPublicPath}\";` +\n `import.meta.hot = __vite__createHotContext(${JSON.stringify(\n importerModule.url\n )});`\n )\n }\n\n if (needQueryInjectHelper) {\n str().prepend(\n `import { injectQuery as __vite__injectQuery } from \"${clientPublicPath}\";`\n )\n }\n\n // normalize and rewrite accepted urls\n const normalizedAcceptedUrls = new Set<string>()\n for (const { url, start, end } of acceptedUrls) {\n const [normalized] = await moduleGraph.resolveUrl(\n toAbsoluteUrl(markExplicitImport(url))\n )\n normalizedAcceptedUrls.add(normalized)\n str().overwrite(start, end, JSON.stringify(normalized))\n }\n\n // update the module graph for HMR analysis.\n // node CSS imports does its own graph update in the css plugin so we\n // only handle js graph updates here.\n if (!isCSSRequest(importer)) {\n // attached by pluginContainer.addWatchFile\n const pluginImports = (this as any)._addedImports as\n | Set<string>\n | undefined\n if (pluginImports) {\n ;(\n await Promise.all(\n [...pluginImports].map((id) => normalizeUrl(id, 0))\n )\n ).forEach(([url]) => importedUrls.add(url))\n }\n const prunedImports = await moduleGraph.updateModuleInfo(\n importerModule,\n importedUrls,\n normalizedAcceptedUrls,\n isSelfAccepting\n )\n if (hasHMR && prunedImports) {\n handlePrunedModules(prunedImports, server)\n }\n }\n\n if (s) {\n return s.toString()\n } else {\n return source\n }\n }\n }\n}\n\n/**\n * https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations\n * This is probably less accurate but is much cheaper than a full AST parse.\n */\nfunction isSupportedDynamicImport(url: string) {\n url = url.trim().slice(1, -1)\n // must be relative\n if (!url.startsWith('./') && !url.startsWith('../')) {\n return false\n }\n // must have extension\n if (!path.extname(url)) {\n return false\n }\n // must be more specific if importing from same dir\n if (url.startsWith('./${') && url.indexOf('/') === url.lastIndexOf('/')) {\n return false\n }\n return true\n}\n\ntype ImportNameSpecifier = { importedName: string; localName: string }\n\n/**\n * Detect import statements to a known optimized CJS dependency and provide\n * ES named imports interop. We do this by rewriting named imports to a variable\n * assignment to the corresponding property on the `module.exports` of the cjs\n * module. Note this doesn't support dynamic re-assignments from within the cjs\n * module.\n *\n * Note that es-module-lexer treats `export * from '...'` as an import as well,\n * so, we may encounter ExportAllDeclaration here, in which case `undefined`\n * will be returned.\n *\n * Credits \\@csr632 via #837\n */\nfunction transformCjsImport(\n importExp: string,\n url: string,\n rawUrl: string,\n importIndex: number\n): string | undefined {\n const node = (\n parseJS(importExp, {\n ecmaVersion: 2020,\n sourceType: 'module'\n }) as any\n ).body[0] as Node\n\n if (node.type === 'ImportDeclaration') {\n if (!node.specifiers.length) {\n return `import \"${url}\"`\n }\n\n const importNames: ImportNameSpecifier[] = []\n for (const spec of node.specifiers) {\n if (\n spec.type === 'ImportSpecifier' &&\n spec.imported.type === 'Identifier'\n ) {\n const importedName = spec.imported.name\n const localName = spec.local.name\n importNames.push({ importedName, localName })\n } else if (spec.type === 'ImportDefaultSpecifier') {\n importNames.push({\n importedName: 'default',\n localName: spec.local.name\n })\n } else if (spec.type === 'ImportNamespaceSpecifier') {\n importNames.push({ importedName: '*', localName: spec.local.name })\n }\n }\n\n // If there is multiple import for same id in one file,\n // importIndex will prevent the cjsModuleName to be duplicate\n const cjsModuleName = makeLegalIdentifier(\n `__vite__cjsImport${importIndex}_${rawUrl}`\n )\n const lines: string[] = [`import ${cjsModuleName} from \"${url}\"`]\n importNames.forEach(({ importedName, localName }) => {\n if (importedName === '*') {\n lines.push(`const ${localName} = ${cjsModuleName}`)\n } else if (importedName === 'default') {\n lines.push(\n `const ${localName} = ${cjsModuleName}.__esModule ? ${cjsModuleName}.default : ${cjsModuleName}`\n )\n } else {\n lines.push(`const ${localName} = ${cjsModuleName}[\"${importedName}\"]`)\n }\n })\n return lines.join('; ')\n }\n}\n","import path from 'path'\nimport { Plugin } from '../plugin'\nimport { ResolvedConfig } from '../config'\nimport { CLIENT_ENTRY, ENV_ENTRY } from '../constants'\nimport { normalizePath, isObject } from '../utils'\n\n// ids in transform are normalized to unix style\nconst normalizedClientEntry = normalizePath(CLIENT_ENTRY)\nconst normalizedEnvEntry = normalizePath(ENV_ENTRY)\n\n/**\n * some values used by the client needs to be dynamically injected by the server\n * @server-only\n */\nexport function clientInjectionsPlugin(config: ResolvedConfig): Plugin {\n return {\n name: 'vite:client-inject',\n transform(code, id) {\n if (id === normalizedClientEntry || id === normalizedEnvEntry) {\n let options = config.server.hmr\n options = options && typeof options !== 'boolean' ? options : {}\n const host = options.host || null\n const protocol = options.protocol || null\n const timeout = options.timeout || 30000\n const overlay = options.overlay !== false\n let port: number | string | undefined\n if (isObject(config.server.hmr)) {\n port = config.server.hmr.clientPort || config.server.hmr.port\n }\n if (config.server.middlewareMode) {\n port = String(port || 24678)\n } else {\n port = String(port || options.port || config.server.port!)\n }\n let hmrBase = config.base\n if (options.path) {\n hmrBase = path.posix.join(hmrBase, options.path)\n }\n if (hmrBase !== '/') {\n port = path.posix.normalize(`${port}${hmrBase}`)\n }\n\n return code\n .replace(`__MODE__`, JSON.stringify(config.mode))\n .replace(`__BASE__`, JSON.stringify(config.base))\n .replace(`__DEFINES__`, serializeDefine(config.define || {}))\n .replace(`__HMR_PROTOCOL__`, JSON.stringify(protocol))\n .replace(`__HMR_HOSTNAME__`, JSON.stringify(host))\n .replace(`__HMR_PORT__`, JSON.stringify(port))\n .replace(`__HMR_TIMEOUT__`, JSON.stringify(timeout))\n .replace(`__HMR_ENABLE_OVERLAY__`, JSON.stringify(overlay))\n } else if (code.includes('process.env.NODE_ENV')) {\n // replace process.env.NODE_ENV\n return code.replace(\n /\\bprocess\\.env\\.NODE_ENV\\b/g,\n JSON.stringify(config.mode)\n )\n }\n }\n }\n}\n\nfunction serializeDefine(define: Record<string, any>): string {\n let res = `{`\n for (const key in define) {\n const val = define[key]\n res += `${JSON.stringify(key)}: ${\n typeof val === 'string' ? `(${val})` : JSON.stringify(val)\n }, `\n }\n return res + `}`\n}\n","import { ResolvedConfig } from '../config'\nimport { Plugin } from '../plugin'\nimport { fileToUrl } from './asset'\n\nconst wasmHelperId = '/__vite-wasm-helper'\n\nconst wasmHelper = async (opts = {}, url: string) => {\n let result\n if (url.startsWith('data:')) {\n // @ts-ignore\n const binaryString = atob(url.replace(/^data:.*?base64,/, ''))\n const bytes = new Uint8Array(binaryString.length)\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n // @ts-ignore\n result = await WebAssembly.instantiate(bytes, opts)\n } else {\n // https://github.com/mdn/webassembly-examples/issues/5\n // WebAssembly.instantiateStreaming requires the server to provide the\n // correct MIME type for .wasm files, which unfortunately doesn't work for\n // a lot of static file servers, so we just work around it by getting the\n // raw buffer.\n // @ts-ignore\n const response = await fetch(url)\n const contentType = response.headers.get('Content-Type') || ''\n if (\n // @ts-ignore\n 'instantiateStreaming' in WebAssembly &&\n contentType.startsWith('application/wasm')\n ) {\n // @ts-ignore\n result = await WebAssembly.instantiateStreaming(response, opts)\n } else {\n const buffer = await response.arrayBuffer()\n // @ts-ignore\n result = await WebAssembly.instantiate(buffer, opts)\n }\n }\n return result.instance.exports\n}\n\nconst wasmHelperCode = wasmHelper.toString()\n\nexport const wasmPlugin = (config: ResolvedConfig): Plugin => {\n return {\n name: 'vite:wasm',\n\n resolveId(id) {\n if (id === wasmHelperId) {\n return id\n }\n },\n\n async load(id) {\n if (id === wasmHelperId) {\n return `export default ${wasmHelperCode}`\n }\n\n if (!id.endsWith('.wasm')) {\n return\n }\n\n const url = await fileToUrl(id, config, this)\n\n return `\nimport initWasm from \"${wasmHelperId}\"\nexport default opts => initWasm(opts, ${JSON.stringify(url)})\n`\n }\n }\n}\n","import { ResolvedConfig } from '../config'\nimport { Plugin } from '../plugin'\nimport { resolvePlugins } from '../plugins'\nimport { parse as parseUrl, URLSearchParams } from 'url'\nimport { fileToUrl, getAssetHash } from './asset'\nimport { cleanUrl, injectQuery } from '../utils'\nimport Rollup from 'rollup'\nimport { ENV_PUBLIC_PATH } from '../constants'\nimport path from 'path'\n\nfunction parseWorkerRequest(id: string): Record<string, string> | null {\n const { search } = parseUrl(id)\n if (!search) {\n return null\n }\n return Object.fromEntries(new URLSearchParams(search.slice(1)))\n}\n\nconst WorkerFileId = 'worker_file'\n\nexport function webWorkerPlugin(config: ResolvedConfig): Plugin {\n const isBuild = config.command === 'build'\n\n return {\n name: 'vite:worker',\n\n load(id) {\n if (isBuild) {\n const parsedQuery = parseWorkerRequest(id)\n if (\n parsedQuery &&\n (parsedQuery.worker ?? parsedQuery.sharedworker) != null\n ) {\n return ''\n }\n }\n },\n\n async transform(_, id) {\n const query = parseWorkerRequest(id)\n if (query && query[WorkerFileId] != null) {\n return {\n code: `import '${ENV_PUBLIC_PATH}'\\n` + _\n }\n }\n if (\n query == null ||\n (query && (query.worker ?? query.sharedworker) == null)\n ) {\n return\n }\n\n let url: string\n if (isBuild) {\n // bundle the file as entry to support imports\n const rollup = require('rollup') as typeof Rollup\n const bundle = await rollup.rollup({\n input: cleanUrl(id),\n plugins: await resolvePlugins({ ...config }, [], [], [])\n })\n let code: string\n try {\n const { output } = await bundle.generate({\n format: 'iife',\n sourcemap: config.build.sourcemap\n })\n code = output[0].code\n } finally {\n await bundle.close()\n }\n const content = Buffer.from(code)\n if (query.inline != null) {\n // inline as blob data url\n return `const blob = new Blob([atob(\\\"${content.toString(\n 'base64'\n )}\\\")], { type: 'text/javascript;charset=utf-8' });\n export default function WorkerWrapper() {\n const objURL = (window.URL || window.webkitURL).createObjectURL(blob);\n try {\n return new Worker(objURL);\n } finally {\n (window.URL || window.webkitURL).revokeObjectURL(objURL);\n }\n }`\n } else {\n const basename = path.parse(cleanUrl(id)).name\n const contentHash = getAssetHash(content)\n const fileName = path.posix.join(\n config.build.assetsDir,\n `${basename}.${contentHash}.js`\n )\n url = `__VITE_ASSET__${this.emitFile({\n fileName,\n type: 'asset',\n source: code\n })}__`\n }\n } else {\n url = await fileToUrl(cleanUrl(id), config, this)\n url = injectQuery(url, WorkerFileId)\n }\n\n const workerConstructor =\n query.sharedworker != null ? 'SharedWorker' : 'Worker'\n const workerOptions = { type: 'module' }\n\n return `export default function WorkerWrapper() {\n return new ${workerConstructor}(${JSON.stringify(\n url\n )}, ${JSON.stringify(workerOptions, null, 2)})\n }`\n }\n }\n}\n","import { ViteDevServer } from '..'\nimport { Plugin } from '../plugin'\nimport { bareImportRE } from '../utils'\nimport { tryOptimizedResolve } from './resolve'\n\n/**\n * A plugin to avoid an aliased AND optimized dep from being aliased in src\n */\nexport function preAliasPlugin(): Plugin {\n let server: ViteDevServer\n return {\n name: 'vite:pre-alias',\n configureServer(_server) {\n server = _server\n },\n resolveId(id, importer, _, ssr) {\n if (!ssr && bareImportRE.test(id)) {\n return tryOptimizedResolve(id, server, importer)\n }\n }\n }\n}\n","import MagicString from 'magic-string'\nimport { TransformResult } from 'rollup'\nimport { ResolvedConfig } from '../config'\nimport { Plugin } from '../plugin'\nimport { isCSSRequest } from './css'\n\nexport function definePlugin(config: ResolvedConfig): Plugin {\n const isBuild = config.command === 'build'\n\n const userDefine: Record<string, string> = {}\n for (const key in config.define) {\n const val = config.define[key]\n userDefine[key] = typeof val === 'string' ? val : JSON.stringify(val)\n }\n\n // during dev, import.meta properties are handled by importAnalysis plugin\n const importMetaKeys: Record<string, string> = {}\n if (isBuild) {\n const env: Record<string, any> = {\n ...config.env,\n SSR: !!config.build.ssr\n }\n for (const key in env) {\n importMetaKeys[`import.meta.env.${key}`] = JSON.stringify(env[key])\n }\n Object.assign(importMetaKeys, {\n 'import.meta.env.': `({}).`,\n 'import.meta.env': JSON.stringify(config.env),\n 'import.meta.hot': `false`\n })\n }\n\n const replacements: Record<string, string | undefined> = {\n 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || config.mode),\n 'global.process.env.NODE_ENV': JSON.stringify(\n process.env.NODE_ENV || config.mode\n ),\n 'globalThis.process.env.NODE_ENV': JSON.stringify(\n process.env.NODE_ENV || config.mode\n ),\n ...userDefine,\n ...importMetaKeys,\n 'process.env.': `({}).`,\n 'global.process.env.': `({}).`,\n 'globalThis.process.env.': `({}).`\n }\n\n const pattern = new RegExp(\n // Do not allow preceding '.', but do allow preceding '...' for spread operations\n '(?<!(?<!\\\\.\\\\.)\\\\.)\\\\b(' +\n Object.keys(replacements)\n .map((str) => {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&')\n })\n .join('|') +\n ')\\\\b',\n 'g'\n )\n\n return {\n name: 'vite:define',\n transform(code, id, ssr) {\n if (!ssr && !isBuild) {\n // for dev we inject actual global defines in the vite client to\n // avoid the transform cost.\n return\n }\n\n if (\n // exclude css and static assets for performance\n isCSSRequest(id) ||\n config.assetsInclude(id)\n ) {\n return\n }\n\n if (ssr && !isBuild) {\n // ssr + dev, simple replace\n return code.replace(pattern, (_, match) => {\n return '' + replacements[match]\n })\n }\n\n const s = new MagicString(code)\n let hasReplaced = false\n let match: RegExpExecArray | null\n\n while ((match = pattern.exec(code))) {\n hasReplaced = true\n const start = match.index\n const end = start + match[0].length\n const replacement = '' + replacements[match[1]]\n s.overwrite(start, end, replacement)\n }\n\n if (!hasReplaced) {\n return null\n }\n\n const result: TransformResult = { code: s.toString() }\n if (config.build.sourcemap) {\n result.map = s.generateMap({ hires: true })\n }\n return result\n }\n }\n}\n","import { ResolvedConfig } from '../config'\nimport { Plugin } from '../plugin'\nimport aliasPlugin from '@rollup/plugin-alias'\nimport { jsonPlugin } from './json'\nimport { resolvePlugin } from './resolve'\nimport { esbuildPlugin } from './esbuild'\nimport { importAnalysisPlugin } from './importAnalysis'\nimport { cssPlugin, cssPostPlugin } from './css'\nimport { assetPlugin } from './asset'\nimport { clientInjectionsPlugin } from './clientInjections'\nimport { htmlInlineScriptProxyPlugin } from './html'\nimport { wasmPlugin } from './wasm'\nimport { modulePreloadPolyfillPlugin } from './modulePreloadPolyfill'\nimport { webWorkerPlugin } from './worker'\nimport { preAliasPlugin } from './preAlias'\nimport { definePlugin } from './define'\n\nexport async function resolvePlugins(\n config: ResolvedConfig,\n prePlugins: Plugin[],\n normalPlugins: Plugin[],\n postPlugins: Plugin[]\n): Promise<Plugin[]> {\n const isBuild = config.command === 'build'\n\n const buildPlugins = isBuild\n ? (await import('../build')).resolveBuildPlugins(config)\n : { pre: [], post: [] }\n\n return [\n isBuild ? null : preAliasPlugin(),\n aliasPlugin({ entries: config.resolve.alias }),\n ...prePlugins,\n config.build.polyfillModulePreload\n ? modulePreloadPolyfillPlugin(config)\n : null,\n resolvePlugin({\n ...config.resolve,\n root: config.root,\n isProduction: config.isProduction,\n isBuild,\n ssrConfig: config.ssr,\n asSrc: true\n }),\n htmlInlineScriptProxyPlugin(),\n cssPlugin(config),\n config.esbuild !== false ? esbuildPlugin(config.esbuild) : null,\n jsonPlugin(\n {\n namedExports: true,\n ...config.json\n },\n isBuild\n ),\n wasmPlugin(config),\n webWorkerPlugin(config),\n assetPlugin(config),\n ...normalPlugins,\n definePlugin(config),\n cssPostPlugin(config),\n ...buildPlugins.pre,\n ...postPlugins,\n ...buildPlugins.post,\n // internal server-only plugins are always applied after everything else\n ...(isBuild\n ? []\n : [clientInjectionsPlugin(config), importAnalysisPlugin(config)])\n ].filter(Boolean) as Plugin[]\n}\n","/* @flow */\n/*::\n\ntype DotenvParseOptions = {\n debug?: boolean\n}\n\n// keys and values from src\ntype DotenvParseOutput = { [string]: string }\n\ntype DotenvConfigOptions = {\n path?: string, // path to .env file\n encoding?: string, // encoding of .env file\n debug?: string // turn on logging for debugging purposes\n}\n\ntype DotenvConfigOutput = {\n parsed?: DotenvParseOutput,\n error?: Error\n}\n\n*/\n\nconst fs = require('fs')\nconst path = require('path')\nconst os = require('os')\n\nfunction log (message /*: string */) {\n console.log(`[dotenv][DEBUG] ${message}`)\n}\n\nconst NEWLINE = '\\n'\nconst RE_INI_KEY_VAL = /^\\s*([\\w.-]+)\\s*=\\s*(.*)?\\s*$/\nconst RE_NEWLINES = /\\\\n/g\nconst NEWLINES_MATCH = /\\r\\n|\\n|\\r/\n\n// Parses src into an Object\nfunction parse (src /*: string | Buffer */, options /*: ?DotenvParseOptions */) /*: DotenvParseOutput */ {\n const debug = Boolean(options && options.debug)\n const obj = {}\n\n // convert Buffers before splitting into lines and processing\n src.toString().split(NEWLINES_MATCH).forEach(function (line, idx) {\n // matching \"KEY' and 'VAL' in 'KEY=VAL'\n const keyValueArr = line.match(RE_INI_KEY_VAL)\n // matched?\n if (keyValueArr != null) {\n const key = keyValueArr[1]\n // default undefined or missing values to empty string\n let val = (keyValueArr[2] || '')\n const end = val.length - 1\n const isDoubleQuoted = val[0] === '\"' && val[end] === '\"'\n const isSingleQuoted = val[0] === \"'\" && val[end] === \"'\"\n\n // if single or double quoted, remove quotes\n if (isSingleQuoted || isDoubleQuoted) {\n val = val.substring(1, end)\n\n // if double quoted, expand newlines\n if (isDoubleQuoted) {\n val = val.replace(RE_NEWLINES, NEWLINE)\n }\n } else {\n // remove surrounding whitespace\n val = val.trim()\n }\n\n obj[key] = val\n } else if (debug) {\n log(`did not match key and value when parsing line ${idx + 1}: ${line}`)\n }\n })\n\n return obj\n}\n\nfunction resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\n// Populates process.env from .env file\nfunction config (options /*: ?DotenvConfigOptions */) /*: DotenvConfigOutput */ {\n let dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding /*: string */ = 'utf8'\n let debug = false\n\n if (options) {\n if (options.path != null) {\n dotenvPath = resolveHome(options.path)\n }\n if (options.encoding != null) {\n encoding = options.encoding\n }\n if (options.debug != null) {\n debug = true\n }\n }\n\n try {\n // specifying an encoding returns a string instead of a buffer\n const parsed = parse(fs.readFileSync(dotenvPath, { encoding }), { debug })\n\n Object.keys(parsed).forEach(function (key) {\n if (!Object.prototype.hasOwnProperty.call(process.env, key)) {\n process.env[key] = parsed[key]\n } else if (debug) {\n log(`\"${key}\" is already defined in \\`process.env\\` and will not be overwritten`)\n }\n })\n\n return { parsed }\n } catch (e) {\n return { error: e }\n }\n}\n\nmodule.exports.config = config\nmodule.exports.parse = parse\n","'use strict'\n\nvar dotenvExpand = function (config) {\n // if ignoring process.env, use a blank object\n var environment = config.ignoreProcessEnv ? {} : process.env\n\n var interpolate = function (envValue) {\n var matches = envValue.match(/(.?\\${?(?:[a-zA-Z0-9_]+)?}?)/g) || []\n\n return matches.reduce(function (newEnv, match) {\n var parts = /(.?)\\${?([a-zA-Z0-9_]+)?}?/g.exec(match)\n var prefix = parts[1]\n\n var value, replacePart\n\n if (prefix === '\\\\') {\n replacePart = parts[0]\n value = replacePart.replace('\\\\$', '$')\n } else {\n var key = parts[2]\n replacePart = parts[0].substring(prefix.length)\n // process.env value 'wins' over .env file's value\n value = environment.hasOwnProperty(key) ? environment[key] : (config.parsed[key] || '')\n\n // Resolve recursive interpolations\n value = interpolate(value)\n }\n\n return newEnv.replace(replacePart, value)\n }, envValue)\n }\n\n for (var configKey in config.parsed) {\n var value = environment.hasOwnProperty(configKey) ? environment[configKey] : config.parsed[configKey]\n\n config.parsed[configKey] = interpolate(value)\n }\n\n for (var processKey in config.parsed) {\n environment[processKey] = config.parsed[processKey]\n }\n\n return config\n}\n\nmodule.exports = dotenvExpand\n","import fs from 'fs'\nimport path from 'path'\nimport { Plugin } from './plugin'\nimport { BuildOptions, resolveBuildOptions } from './build'\nimport {\n ResolvedServerOptions,\n resolveServerOptions,\n ServerOptions\n} from './server'\nimport { CSSOptions } from './plugins/css'\nimport {\n arraify,\n createDebugger,\n isExternalUrl,\n isObject,\n lookupFile,\n normalizePath\n} from './utils'\nimport { resolvePlugins } from './plugins'\nimport chalk from 'chalk'\nimport { ESBuildOptions } from './plugins/esbuild'\nimport dotenv from 'dotenv'\nimport dotenvExpand from 'dotenv-expand'\nimport { Alias, AliasOptions } from 'types/alias'\nimport { CLIENT_ENTRY, ENV_ENTRY, DEFAULT_ASSETS_RE } from './constants'\nimport {\n InternalResolveOptions,\n ResolveOptions,\n resolvePlugin\n} from './plugins/resolve'\nimport { createLogger, Logger, LogLevel } from './logger'\nimport { DepOptimizationOptions } from './optimizer'\nimport { createFilter } from '@rollup/pluginutils'\nimport { ResolvedBuildOptions } from '.'\nimport { parse as parseUrl } from 'url'\nimport { JsonOptions } from './plugins/json'\nimport {\n createPluginContainer,\n PluginContainer\n} from './server/pluginContainer'\nimport aliasPlugin from '@rollup/plugin-alias'\nimport { build } from 'esbuild'\n\nconst debug = createDebugger('vite:config')\n\n// NOTE: every export in this file is re-exported from ./index.ts so it will\n// be part of the public API.\nexport interface ConfigEnv {\n command: 'build' | 'serve'\n mode: string\n}\n\nexport type UserConfigFn = (env: ConfigEnv) => UserConfig | Promise<UserConfig>\nexport type UserConfigExport = UserConfig | Promise<UserConfig> | UserConfigFn\n\n/**\n * Type helper to make it easier to use vite.config.ts\n * accepts a direct {@link UserConfig} object, or a function that returns it.\n * The function receives a {@link ConfigEnv} object that exposes two properties:\n * `command` (either `'build'` or `'serve'`), and `mode`.\n */\nexport function defineConfig(config: UserConfigExport): UserConfigExport {\n return config\n}\n\nexport type PluginOption = Plugin | false | null | undefined\n\nexport interface UserConfig {\n /**\n * Project root directory. Can be an absolute path, or a path relative from\n * the location of the config file itself.\n * @default process.cwd()\n */\n root?: string\n /**\n * Base public path when served in development or production.\n * @default '/'\n */\n base?: string\n /**\n * Directory to serve as plain static assets. Files in this directory are\n * served and copied to build dist dir as-is without transform. The value\n * can be either an absolute file system path or a path relative to <root>.\n *\n * Set to `false` or an empty string to disable copied static assets to build dist dir.\n * @default 'public'\n */\n publicDir?: string | false\n /**\n * Directory to save cache files. Files in this directory are pre-bundled\n * deps or some other cache files that generated by vite, which can improve\n * the performance. You can use `--force` flag or manually delete the directory\n * to regenerate the cache files. The value can be either an absolute file\n * system path or a path relative to <root>.\n * @default 'node_modules/.vite'\n */\n cacheDir?: string\n /**\n * Explicitly set a mode to run in. This will override the default mode for\n * each command, and can be overridden by the command line --mode option.\n */\n mode?: string\n /**\n * Define global variable replacements.\n * Entries will be defined on `window` during dev and replaced during build.\n */\n define?: Record<string, any>\n /**\n * Array of vite plugins to use.\n */\n plugins?: (PluginOption | PluginOption[])[]\n /**\n * Configure resolver\n */\n resolve?: ResolveOptions & { alias?: AliasOptions }\n /**\n * CSS related options (preprocessors and CSS modules)\n */\n css?: CSSOptions\n /**\n * JSON loading options\n */\n json?: JsonOptions\n /**\n * Transform options to pass to esbuild.\n * Or set to `false` to disable esbuild.\n */\n esbuild?: ESBuildOptions | false\n /**\n * Specify additional files to be treated as static assets.\n */\n assetsInclude?: string | RegExp | (string | RegExp)[]\n /**\n * Server specific options, e.g. host, port, https...\n */\n server?: ServerOptions\n /**\n * Build specific options\n */\n build?: BuildOptions\n /**\n * Dep optimization options\n */\n optimizeDeps?: DepOptimizationOptions\n /**\n * SSR specific options\n * @alpha\n */\n ssr?: SSROptions\n /**\n * Log level.\n * Default: 'info'\n */\n logLevel?: LogLevel\n /**\n * Custom logger.\n */\n customLogger?: Logger\n /**\n * Default: true\n */\n clearScreen?: boolean\n /**\n * Environment files directory. Can be an absolute path, or a path relative from\n * the location of the config file itself.\n * @default root\n */\n envDir?: string\n /**\n * Env variables starts with `envPrefix` will be exposed to your client source code via import.meta.env.\n * @default 'VITE_'\n */\n envPrefix?: string | string[]\n /**\n * Import aliases\n * @deprecated use `resolve.alias` instead\n */\n alias?: AliasOptions\n /**\n * Force Vite to always resolve listed dependencies to the same copy (from\n * project root).\n * @deprecated use `resolve.dedupe` instead\n */\n dedupe?: string[]\n}\n\nexport type SSRTarget = 'node' | 'webworker'\n\nexport interface SSROptions {\n external?: string[]\n noExternal?: string | RegExp | (string | RegExp)[] | true\n /**\n * Define the target for the ssr build. The browser field in package.json\n * is ignored for node but used if webworker is the target\n * Default: 'node'\n */\n target?: SSRTarget\n}\n\nexport interface InlineConfig extends UserConfig {\n configFile?: string | false\n envFile?: false\n}\n\nexport type ResolvedConfig = Readonly<\n Omit<\n UserConfig,\n 'plugins' | 'alias' | 'dedupe' | 'assetsInclude' | 'optimizeDeps'\n > & {\n configFile: string | undefined\n configFileDependencies: string[]\n inlineConfig: InlineConfig\n root: string\n base: string\n publicDir: string\n command: 'build' | 'serve'\n mode: string\n isProduction: boolean\n env: Record<string, any>\n resolve: ResolveOptions & {\n alias: Alias[]\n }\n plugins: readonly Plugin[]\n server: ResolvedServerOptions\n build: ResolvedBuildOptions\n assetsInclude: (file: string) => boolean\n logger: Logger\n createResolver: (options?: Partial<InternalResolveOptions>) => ResolveFn\n optimizeDeps: Omit<DepOptimizationOptions, 'keepNames'>\n }\n>\n\nexport type ResolveFn = (\n id: string,\n importer?: string,\n aliasOnly?: boolean,\n ssr?: boolean\n) => Promise<string | undefined>\n\nexport async function resolveConfig(\n inlineConfig: InlineConfig,\n command: 'build' | 'serve',\n defaultMode = 'development'\n): Promise<ResolvedConfig> {\n let config = inlineConfig\n let configFileDependencies: string[] = []\n let mode = inlineConfig.mode || defaultMode\n\n // some dependencies e.g. @vue/compiler-* relies on NODE_ENV for getting\n // production-specific behavior, so set it here even though we haven't\n // resolve the final mode yet\n if (mode === 'production') {\n process.env.NODE_ENV = 'production'\n }\n\n const configEnv = {\n mode,\n command\n }\n\n let { configFile } = config\n if (configFile !== false) {\n const loadResult = await loadConfigFromFile(\n configEnv,\n configFile,\n config.root,\n config.logLevel\n )\n if (loadResult) {\n config = mergeConfig(loadResult.config, config)\n configFile = loadResult.path\n configFileDependencies = loadResult.dependencies\n }\n }\n\n // Define logger\n const logger = createLogger(config.logLevel, {\n allowClearScreen: config.clearScreen,\n customLogger: config.customLogger\n })\n\n // user config may provide an alternative mode. But --mode has a higher prority\n mode = inlineConfig.mode || config.mode || mode\n configEnv.mode = mode\n\n // resolve plugins\n const rawUserPlugins = (config.plugins || []).flat().filter((p) => {\n return p && (!p.apply || p.apply === command)\n }) as Plugin[]\n const [prePlugins, normalPlugins, postPlugins] =\n sortUserPlugins(rawUserPlugins)\n\n // run config hooks\n const userPlugins = [...prePlugins, ...normalPlugins, ...postPlugins]\n for (const p of userPlugins) {\n if (p.config) {\n const res = await p.config(config, configEnv)\n if (res) {\n config = mergeConfig(config, res)\n }\n }\n }\n\n // resolve root\n const resolvedRoot = normalizePath(\n config.root ? path.resolve(config.root) : process.cwd()\n )\n\n const clientAlias = [\n { find: /^[\\/]?@vite\\/env/, replacement: () => ENV_ENTRY },\n { find: /^[\\/]?@vite\\/client/, replacement: () => CLIENT_ENTRY }\n ]\n\n // resolve alias with internal client alias\n const resolvedAlias = mergeAlias(\n // @ts-ignore because @rollup/plugin-alias' type doesn't allow function\n // replacement, but its implementation does work with function values.\n clientAlias,\n config.resolve?.alias || config.alias || []\n )\n\n const resolveOptions: ResolvedConfig['resolve'] = {\n dedupe: config.dedupe,\n ...config.resolve,\n alias: resolvedAlias\n }\n\n // load .env files\n const envDir = config.envDir\n ? normalizePath(path.resolve(resolvedRoot, config.envDir))\n : resolvedRoot\n const userEnv =\n inlineConfig.envFile !== false &&\n loadEnv(mode, envDir, resolveEnvPrefix(config))\n\n // Note it is possible for user to have a custom mode, e.g. `staging` where\n // production-like behavior is expected. This is indicated by NODE_ENV=production\n // loaded from `.staging.env` and set by us as VITE_USER_NODE_ENV\n const isProduction = (process.env.VITE_USER_NODE_ENV || mode) === 'production'\n if (isProduction) {\n // in case default mode was not production and is overwritten\n process.env.NODE_ENV = 'production'\n }\n\n // resolve public base url\n const BASE_URL = resolveBaseUrl(config.base, command === 'build', logger)\n const resolvedBuildOptions = resolveBuildOptions(config.build)\n\n // resolve cache directory\n const pkgPath = lookupFile(\n resolvedRoot,\n [`package.json`],\n true /* pathOnly */\n )\n const cacheDir = config.cacheDir\n ? path.resolve(resolvedRoot, config.cacheDir)\n : pkgPath && path.join(path.dirname(pkgPath), `node_modules/.vite`)\n\n const assetsFilter = config.assetsInclude\n ? createFilter(config.assetsInclude)\n : () => false\n\n // create an internal resolver to be used in special scenarios, e.g.\n // optimizer & handling css @imports\n const createResolver: ResolvedConfig['createResolver'] = (options) => {\n let aliasContainer: PluginContainer | undefined\n let resolverContainer: PluginContainer | undefined\n return async (id, importer, aliasOnly, ssr) => {\n let container: PluginContainer\n if (aliasOnly) {\n container =\n aliasContainer ||\n (aliasContainer = await createPluginContainer({\n ...resolved,\n plugins: [aliasPlugin({ entries: resolved.resolve.alias })]\n }))\n } else {\n container =\n resolverContainer ||\n (resolverContainer = await createPluginContainer({\n ...resolved,\n plugins: [\n aliasPlugin({ entries: resolved.resolve.alias }),\n resolvePlugin({\n ...resolved.resolve,\n root: resolvedRoot,\n isProduction,\n isBuild: command === 'build',\n ssrConfig: resolved.ssr,\n asSrc: true,\n preferRelative: false,\n tryIndex: true,\n ...options\n })\n ]\n }))\n }\n return (await container.resolveId(id, importer, undefined, ssr))?.id\n }\n }\n\n const { publicDir } = config\n const resolvedPublicDir =\n publicDir !== false && publicDir !== ''\n ? path.resolve(\n resolvedRoot,\n typeof publicDir === 'string' ? publicDir : 'public'\n )\n : ''\n\n const resolved: ResolvedConfig = {\n ...config,\n configFile: configFile ? normalizePath(configFile) : undefined,\n configFileDependencies,\n inlineConfig,\n root: resolvedRoot,\n base: BASE_URL,\n resolve: resolveOptions,\n publicDir: resolvedPublicDir,\n cacheDir,\n command,\n mode,\n isProduction,\n plugins: userPlugins,\n server: resolveServerOptions(resolvedRoot, config.server),\n build: resolvedBuildOptions,\n env: {\n ...userEnv,\n BASE_URL,\n MODE: mode,\n DEV: !isProduction,\n PROD: isProduction\n },\n assetsInclude(file: string) {\n return DEFAULT_ASSETS_RE.test(file) || assetsFilter(file)\n },\n logger,\n createResolver,\n optimizeDeps: {\n ...config.optimizeDeps,\n esbuildOptions: {\n keepNames: config.optimizeDeps?.keepNames,\n ...config.optimizeDeps?.esbuildOptions\n }\n }\n }\n\n ;(resolved.plugins as Plugin[]) = await resolvePlugins(\n resolved,\n prePlugins,\n normalPlugins,\n postPlugins\n )\n\n // call configResolved hooks\n await Promise.all(userPlugins.map((p) => p.configResolved?.(resolved)))\n\n if (process.env.DEBUG) {\n debug(`using resolved config: %O`, {\n ...resolved,\n plugins: resolved.plugins.map((p) => p.name)\n })\n }\n\n // TODO Deprecation warnings - remove when out of beta\n\n const logDeprecationWarning = (\n deprecatedOption: string,\n hint: string,\n error?: Error\n ) => {\n logger.warn(\n chalk.yellow.bold(\n `(!) \"${deprecatedOption}\" option is deprecated. ${hint}${\n error ? `\\n${error.stack}` : ''\n }`\n )\n )\n }\n\n if (config.build?.base) {\n logDeprecationWarning(\n 'build.base',\n '\"base\" is now a root-level config option.'\n )\n config.base = config.build.base\n }\n Object.defineProperty(resolvedBuildOptions, 'base', {\n enumerable: false,\n get() {\n logDeprecationWarning(\n 'build.base',\n '\"base\" is now a root-level config option.',\n new Error()\n )\n return resolved.base\n }\n })\n\n if (config.alias) {\n logDeprecationWarning('alias', 'Use \"resolve.alias\" instead.')\n }\n Object.defineProperty(resolved, 'alias', {\n enumerable: false,\n get() {\n logDeprecationWarning(\n 'alias',\n 'Use \"resolve.alias\" instead.',\n new Error()\n )\n return resolved.resolve.alias\n }\n })\n\n if (config.dedupe) {\n logDeprecationWarning('dedupe', 'Use \"resolve.dedupe\" instead.')\n }\n Object.defineProperty(resolved, 'dedupe', {\n enumerable: false,\n get() {\n logDeprecationWarning(\n 'dedupe',\n 'Use \"resolve.dedupe\" instead.',\n new Error()\n )\n return resolved.resolve.dedupe\n }\n })\n\n if (config.optimizeDeps?.keepNames) {\n logDeprecationWarning(\n 'optimizeDeps.keepNames',\n 'Use \"optimizeDeps.esbuildOptions.keepNames\" instead.'\n )\n }\n Object.defineProperty(resolved.optimizeDeps, 'keepNames', {\n enumerable: false,\n get() {\n logDeprecationWarning(\n 'optimizeDeps.keepNames',\n 'Use \"optimizeDeps.esbuildOptions.keepNames\" instead.',\n new Error()\n )\n return resolved.optimizeDeps.esbuildOptions?.keepNames\n }\n })\n\n if (config.build?.polyfillDynamicImport) {\n logDeprecationWarning(\n 'build.polyfillDynamicImport',\n '\"polyfillDynamicImport\" has been removed. Please use @vitejs/plugin-legacy if your target browsers do not support dynamic imports.'\n )\n }\n\n Object.defineProperty(resolvedBuildOptions, 'polyfillDynamicImport', {\n enumerable: false,\n get() {\n logDeprecationWarning(\n 'build.polyfillDynamicImport',\n '\"polyfillDynamicImport\" has been removed. Please use @vitejs/plugin-legacy if your target browsers do not support dynamic imports.',\n new Error()\n )\n return false\n }\n })\n\n if (config.build?.cleanCssOptions) {\n logDeprecationWarning(\n 'build.cleanCssOptions',\n 'Vite now uses esbuild for CSS minification.'\n )\n }\n\n return resolved\n}\n\n/**\n * Resolve base. Note that some users use Vite to build for non-web targets like\n * electron or expects to deploy\n */\nfunction resolveBaseUrl(\n base: UserConfig['base'] = '/',\n isBuild: boolean,\n logger: Logger\n): string {\n // #1669 special treatment for empty for same dir relative base\n if (base === '' || base === './') {\n return isBuild ? base : '/'\n }\n if (base.startsWith('.')) {\n logger.warn(\n chalk.yellow.bold(\n `(!) invalid \"base\" option: ${base}. The value can only be an absolute ` +\n `URL, ./, or an empty string.`\n )\n )\n base = '/'\n }\n\n // external URL\n if (isExternalUrl(base)) {\n if (!isBuild) {\n // get base from full url during dev\n const parsed = parseUrl(base)\n base = parsed.pathname || '/'\n }\n } else {\n // ensure leading slash\n if (!base.startsWith('/')) {\n logger.warn(\n chalk.yellow.bold(`(!) \"base\" option should start with a slash.`)\n )\n base = '/' + base\n }\n }\n\n // ensure ending slash\n if (!base.endsWith('/')) {\n logger.warn(chalk.yellow.bold(`(!) \"base\" option should end with a slash.`))\n base += '/'\n }\n\n return base\n}\n\nfunction mergeConfigRecursively(\n a: Record<string, any>,\n b: Record<string, any>,\n rootPath: string\n) {\n const merged: Record<string, any> = { ...a }\n for (const key in b) {\n const value = b[key]\n if (value == null) {\n continue\n }\n\n const existing = merged[key]\n if (Array.isArray(existing) && Array.isArray(value)) {\n merged[key] = [...existing, ...value]\n continue\n }\n if (isObject(existing) && isObject(value)) {\n merged[key] = mergeConfigRecursively(\n existing,\n value,\n rootPath ? `${rootPath}.${key}` : key\n )\n continue\n }\n\n // fields that require special handling\n if (existing != null) {\n if (key === 'alias' && (rootPath === 'resolve' || rootPath === '')) {\n merged[key] = mergeAlias(existing, value)\n continue\n } else if (key === 'assetsInclude' && rootPath === '') {\n merged[key] = [].concat(existing, value)\n continue\n } else if (key === 'noExternal' && existing === true) {\n continue\n }\n }\n\n merged[key] = value\n }\n return merged\n}\n\nexport function mergeConfig(\n a: Record<string, any>,\n b: Record<string, any>,\n isRoot = true\n): Record<string, any> {\n return mergeConfigRecursively(a, b, isRoot ? '' : '.')\n}\n\nfunction mergeAlias(a: AliasOptions = [], b: AliasOptions = []): Alias[] {\n return [...normalizeAlias(a), ...normalizeAlias(b)]\n}\n\nfunction normalizeAlias(o: AliasOptions): Alias[] {\n return Array.isArray(o)\n ? o.map(normalizeSingleAlias)\n : Object.keys(o).map((find) =>\n normalizeSingleAlias({\n find,\n replacement: (o as any)[find]\n })\n )\n}\n\n// https://github.com/vitejs/vite/issues/1363\n// work around https://github.com/rollup/plugins/issues/759\nfunction normalizeSingleAlias({ find, replacement }: Alias): Alias {\n if (\n typeof find === 'string' &&\n find.endsWith('/') &&\n replacement.endsWith('/')\n ) {\n find = find.slice(0, find.length - 1)\n replacement = replacement.slice(0, replacement.length - 1)\n }\n return { find, replacement }\n}\n\nexport function sortUserPlugins(\n plugins: (Plugin | Plugin[])[] | undefined\n): [Plugin[], Plugin[], Plugin[]] {\n const prePlugins: Plugin[] = []\n const postPlugins: Plugin[] = []\n const normalPlugins: Plugin[] = []\n\n if (plugins) {\n plugins.flat().forEach((p) => {\n if (p.enforce === 'pre') prePlugins.push(p)\n else if (p.enforce === 'post') postPlugins.push(p)\n else normalPlugins.push(p)\n })\n }\n\n return [prePlugins, normalPlugins, postPlugins]\n}\n\nexport async function loadConfigFromFile(\n configEnv: ConfigEnv,\n configFile?: string,\n configRoot: string = process.cwd(),\n logLevel?: LogLevel\n): Promise<{\n path: string\n config: UserConfig\n dependencies: string[]\n} | null> {\n const start = Date.now()\n\n let resolvedPath: string | undefined\n let isTS = false\n let isMjs = false\n let dependencies: string[] = []\n\n // check package.json for type: \"module\" and set `isMjs` to true\n try {\n const pkg = lookupFile(configRoot, ['package.json'])\n if (pkg && JSON.parse(pkg).type === 'module') {\n isMjs = true\n }\n } catch (e) {}\n\n if (configFile) {\n // explicit config path is always resolved from cwd\n resolvedPath = path.resolve(configFile)\n isTS = configFile.endsWith('.ts')\n } else {\n // implicit config file loaded from inline root (if present)\n // otherwise from cwd\n const jsconfigFile = path.resolve(configRoot, 'vite.config.js')\n if (fs.existsSync(jsconfigFile)) {\n resolvedPath = jsconfigFile\n }\n\n if (!resolvedPath) {\n const mjsconfigFile = path.resolve(configRoot, 'vite.config.mjs')\n if (fs.existsSync(mjsconfigFile)) {\n resolvedPath = mjsconfigFile\n isMjs = true\n }\n }\n\n if (!resolvedPath) {\n const tsconfigFile = path.resolve(configRoot, 'vite.config.ts')\n if (fs.existsSync(tsconfigFile)) {\n resolvedPath = tsconfigFile\n isTS = true\n }\n }\n }\n\n if (!resolvedPath) {\n debug('no config file found.')\n return null\n }\n\n try {\n let userConfig: UserConfigExport | undefined\n\n if (isMjs) {\n const fileUrl = require('url').pathToFileURL(resolvedPath)\n if (isTS) {\n // before we can register loaders without requiring users to run node\n // with --experimental-loader themselves, we have to do a hack here:\n // bundle the config file w/ ts transforms first, write it to disk,\n // load it with native Node ESM, then delete the file.\n const bundled = await bundleConfigFile(resolvedPath, true)\n dependencies = bundled.dependencies\n fs.writeFileSync(resolvedPath + '.js', bundled.code)\n userConfig = (await eval(`import(fileUrl + '.js?t=${Date.now()}')`))\n .default\n fs.unlinkSync(resolvedPath + '.js')\n debug(\n `TS + native esm config loaded in ${Date.now() - start}ms`,\n fileUrl\n )\n } else {\n // using eval to avoid this from being compiled away by TS/Rollup\n // append a query so that we force reload fresh config in case of\n // server restart\n userConfig = (await eval(`import(fileUrl + '?t=${Date.now()}')`))\n .default\n debug(`native esm config loaded in ${Date.now() - start}ms`, fileUrl)\n }\n }\n\n if (!userConfig && !isTS && !isMjs) {\n // 1. try to directly require the module (assuming commonjs)\n try {\n // clear cache in case of server restart\n delete require.cache[require.resolve(resolvedPath)]\n userConfig = require(resolvedPath)\n debug(`cjs config loaded in ${Date.now() - start}ms`)\n } catch (e) {\n const ignored = new RegExp(\n [\n `Cannot use import statement`,\n `Must use import to load ES Module`,\n // #1635, #2050 some Node 12.x versions don't have esm detection\n // so it throws normal syntax errors when encountering esm syntax\n `Unexpected token`,\n `Unexpected identifier`\n ].join('|')\n )\n if (!ignored.test(e.message)) {\n throw e\n }\n }\n }\n\n if (!userConfig) {\n // 2. if we reach here, the file is ts or using es import syntax, or\n // the user has type: \"module\" in their package.json (#917)\n // transpile es import syntax to require syntax using rollup.\n // lazy require rollup (it's actually in dependencies)\n const bundled = await bundleConfigFile(resolvedPath)\n dependencies = bundled.dependencies\n userConfig = await loadConfigFromBundledFile(resolvedPath, bundled.code)\n debug(`bundled config file loaded in ${Date.now() - start}ms`)\n }\n\n const config = await (typeof userConfig === 'function'\n ? userConfig(configEnv)\n : userConfig)\n if (!isObject(config)) {\n throw new Error(`config must export or return an object.`)\n }\n return {\n path: normalizePath(resolvedPath),\n config,\n dependencies\n }\n } catch (e) {\n createLogger(logLevel).error(\n chalk.red(`failed to load config from ${resolvedPath}`),\n { error: e }\n )\n throw e\n }\n}\n\nasync function bundleConfigFile(\n fileName: string,\n mjs = false\n): Promise<{ code: string; dependencies: string[] }> {\n const result = await build({\n absWorkingDir: process.cwd(),\n entryPoints: [fileName],\n outfile: 'out.js',\n write: false,\n platform: 'node',\n bundle: true,\n format: mjs ? 'esm' : 'cjs',\n sourcemap: 'inline',\n metafile: true,\n plugins: [\n {\n name: 'externalize-deps',\n setup(build) {\n build.onResolve({ filter: /.*/ }, (args) => {\n const id = args.path\n if (id[0] !== '.' && !path.isAbsolute(id)) {\n return {\n external: true\n }\n }\n })\n }\n },\n {\n name: 'replace-import-meta',\n setup(build) {\n build.onLoad({ filter: /\\.[jt]s$/ }, async (args) => {\n const contents = await fs.promises.readFile(args.path, 'utf8')\n return {\n loader: args.path.endsWith('.ts') ? 'ts' : 'js',\n contents: contents\n .replace(\n /\\bimport\\.meta\\.url\\b/g,\n JSON.stringify(`file://${args.path}`)\n )\n .replace(\n /\\b__dirname\\b/g,\n JSON.stringify(path.dirname(args.path))\n )\n .replace(/\\b__filename\\b/g, JSON.stringify(args.path))\n }\n })\n }\n }\n ]\n })\n const { text } = result.outputFiles[0]\n return {\n code: text,\n dependencies: result.metafile ? Object.keys(result.metafile.inputs) : []\n }\n}\n\ninterface NodeModuleWithCompile extends NodeModule {\n _compile(code: string, filename: string): any\n}\n\nasync function loadConfigFromBundledFile(\n fileName: string,\n bundledCode: string\n): Promise<UserConfig> {\n const extension = path.extname(fileName)\n const defaultLoader = require.extensions[extension]!\n require.extensions[extension] = (module: NodeModule, filename: string) => {\n if (filename === fileName) {\n ;(module as NodeModuleWithCompile)._compile(bundledCode, filename)\n } else {\n defaultLoader(module, filename)\n }\n }\n // clear cache in case of server restart\n delete require.cache[require.resolve(fileName)]\n const raw = require(fileName)\n const config = raw.__esModule ? raw.default : raw\n require.extensions[extension] = defaultLoader\n return config\n}\n\nexport function loadEnv(\n mode: string,\n envDir: string,\n prefixes: string | string[] = 'VITE_'\n): Record<string, string> {\n if (mode === 'local') {\n throw new Error(\n `\"local\" cannot be used as a mode name because it conflicts with ` +\n `the .local postfix for .env files.`\n )\n }\n prefixes = arraify(prefixes)\n const env: Record<string, string> = {}\n const envFiles = [\n /** mode local file */ `.env.${mode}.local`,\n /** mode file */ `.env.${mode}`,\n /** local file */ `.env.local`,\n /** default file */ `.env`\n ]\n\n // check if there are actual env variables starting with VITE_*\n // these are typically provided inline and should be prioritized\n for (const key in process.env) {\n if (\n prefixes.some((prefix) => key.startsWith(prefix)) &&\n env[key] === undefined\n ) {\n env[key] = process.env[key] as string\n }\n }\n\n for (const file of envFiles) {\n const path = lookupFile(envDir, [file], true)\n if (path) {\n const parsed = dotenv.parse(fs.readFileSync(path), {\n debug: !!process.env.DEBUG || undefined\n })\n\n // let environment variables use each other\n dotenvExpand({\n parsed,\n // prevent process.env mutation\n ignoreProcessEnv: true\n } as any)\n\n // only keys that start with prefix are exposed to client\n for (const [key, value] of Object.entries(parsed)) {\n if (\n prefixes.some((prefix) => key.startsWith(prefix)) &&\n env[key] === undefined\n ) {\n env[key] = value\n } else if (key === 'NODE_ENV') {\n // NODE_ENV override in .env file\n process.env.VITE_USER_NODE_ENV = value\n }\n }\n }\n }\n return env\n}\n\nexport function resolveEnvPrefix({\n envPrefix = 'VITE_'\n}: UserConfig): string[] {\n envPrefix = arraify(envPrefix)\n if (envPrefix.some((prefix) => prefix === '')) {\n throw new Error(\n `envPrefix option contains value '', which could lead unexpected exposure of sensitive information.`\n )\n }\n return envPrefix\n}\n"],"names":["colorName","cssKeywords","require$$0","reverseKeywords","convert","conversions","comparativeDistance","buildGraph","deriveBFS","link","wrapConversion","route","require$$1","models","wrapRaw","wrapRounded","colorConvert","hasFlag","os","require$$2","env","forceColor","translateLevel","supportsColor","getSupportLevel","supportsColor_1","stringReplaceAll","stringEncaseCRLFWithFirstIndex","util","TEMPLATE_REGEX","STYLE_REGEX","STRING_REGEX","ESCAPE_REGEX","ESCAPES","unescape","parseArguments","parseStyle","buildStyle","templates","ansiStyles","isArray","proto","require$$3","chalk","Stream","slice","duplexer","dist","stream_1","util_1","require$$4","sync","stream","s","m","h","d","y","ms","parse","fmtLong","fmtShort","plural","common","srcModule","path","charToInteger","chars","i","encode","encodeInteger","Url","normalizePath","resolve","resolve$1","binarySearch","SourceMap","slash","unwrapId","normalizeId","builtins","resolveFrom","filter","DEBUG","debug","isWindows","URL","pathToFileURL","isObject","fs","range","pad","readline","size","btoa","toString","warned","this$1","Mime","fsp","mime","parseUrl","createHash","array","flatten","errno","DirentFromStats","createDirentFromStats","path_1","escape","isExtglob","isGlob","globby","globParent","utils","stringify","isNumber","toRegexRange","fill","compile","append","expand","constants","MAX_LENGTH","CHAR_COMMA","CHAR_DOT","CHAR_LEFT_PARENTHESES","CHAR_RIGHT_PARENTHESES","CHAR_LEFT_CURLY_BRACE","CHAR_RIGHT_CURLY_BRACE","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","parse_1","braces","STAR","POSIX_REGEX_SOURCE","scan","picomatch","micromatch","pattern","GLOBSTAR","getPositivePatterns","makeRe","PassThrough","merge2","merge","string","isString","require$$5","require$$6","async","read","callFailureCallback","callSuccessCallback","settings","Settings","out","settings_1","stat","getSettings","promise","global","queueMicrotask","joinPathSegments","fsStat","constants_1","readdirWithFileTypes","readdir","reusify","noop","queueModule","reader","Reader","fsScandir","reader_1","async_1","sync_1","walk","fsWalk","entry","error","provider_1","assertPatternsInput","Node","PlainValue","Collection","Document","Alias","resolveSeq","warnings","core","createNode","Schema","defaultOptions","visit","yaml","resolveFromModule","importFromModule","importCwdModule","req","load","ArraySet","readWasmModule","readWasm","Mapping","wasmModule","SourceMapConsumer","BasicSourceMapConsumer","IndexedSourceMapConsumer","lenient","yn","ynModule","directorySeparator","normalizeSlashes","hasOwnProperty","this","ts_internals_1","matchPatterns","SyntaxError","parser","require$$7","require$$8","require$$9","internalModuleReadJSON","sourceMapSupport","require$$10","require$$11","require","config","src","ensureArray","win32","posix","getMatcherString","isAbsolute","createFilter","pm","reservedWords","forbiddenIdentifiers","makeLegalIdentifier","glob","postcssrc","transform","formatMessages","parseImports","scriptModuleRE","stripComments","createRequire","Worker","Scope","sep","realpath","version","concatMap","balanced","minimatch","Minimatch","inherits_browserModule","inheritsModule","pathIsAbsoluteModule","setopts","ownProp","isIgnored","childrenIgnored","globSync","GlobSync","rp","assert","wrappy","onceModule","once","inflight","EE","require$$12","basename","extname","dirname","existsSync","join","readFileSync","statSync","getCommonDir","arrayUnion","promisify","dirGlobModule","SLASH","fastGlob","gitignoreModule","FilterStream","UniqueStream","globbyModule","isDebug","_resolveExports","relative","has","privateClassElements","ansiRegex","strip","acorn.Parser","acornNumericSeparator","build","commonjsPlugin","dynamicImportVars","encodeUrl","escapeHtml","first","onFinishedModule","onFinished","isFinished","defer","url","parseurlModule","statuses","unpipe","finalhandler","send","EventEmitter","http","createServer","varyModule","libModule","sysPath","lstat","BANG","readdirp","anymatch_1","arrify","anymatch","anymatchModule","binaryExtensions","isBinaryPath","EMPTY_FN","EMPTY_STR","EV_CHANGE","EV_ADD","EV_ADD_DIR","EV_ERROR","STR_DATA","STR_END","BRACE_START","open","statMethods","NodeFsHandler","EV_UNLINK","FUNCTION_TYPE","FsEventsHandler","fseventsHandlerModule","EMPTY_BUFFER","concat","toArrayBuffer","toBuffer","bufferUtilModule","Limiter","kStatusCode","NOOP","PerMessageDeflate","isValidStatusCode","validationModule","Writable","BINARY_TYPES","kWebSocket","Receiver","Sender","format","https","GUID","require$$13","WebSocket","socketOnError","abortHandshake","emitClose","createHttpsServer","STATUS_CODES","followRedirectsModule","httpProxy","alias","getEtag","extractNames","eswalk","qs","readdirSync","normalize","debugCache","convertSourceMap.fromSource","convertSourceMap.fromMapFileSource","match","isDocker","isWsl","isWslModule","childProcess","windows","isexe","checkStat","which","pathKey","pathKeyModule","resolveCommand","shebangRegex","shebangCommand","readShebang","isWin","enoent","crossSpawnModule","stripFinalNewline","mimicFn","mimicFnModule","onetime","onetimeModule","signals","_os","_realtime","main","signalsByName","makeError","normalizeStdio","stdioModule","signalExitModule","spawnedKill","spawnedCancel","setupTimeout","validateTimeout","setExitHandler","isStream","bufferStream","getStream","getStreamModule","mergeStream","handleInput","makeAllStream","getSpawnedResult","validateInputSync","mergePromise","getSpawnedPromise","joinCommand","getEscapedCommand","parseCommand","execaModule","execa","execSync","conversionsModule","escapeStringRegexp","MappingList","base64VLQ","SourceMapGenerator","source","parseJS","URLSearchParams","aliasPlugin","dotenv","dotenvExpand"],"mappings":"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AAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChzC;AACA;AACA,EAAE,IAAI,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CA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KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,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;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,qBAAqB,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;AAC1E;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF;AACA,SAAS,gBAAgB,CAAC,8BAA8B,EAAE,qBAAqB,EAAE;AACjF,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC;AACpB,IAAI,8BAA8B,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,kBAAkB;AAClG,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;AACjD,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,IAAI,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACrD,EAAE,MAAM,YAAY,GAAG;AACvB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACtF;AACA,EAAE,OAAO,YAAY,EAAE,EAAE;AACzB,IAAI,YAAY,GAAG,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;AACX,GAAG;AACH;AACA,EAAE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC9B,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AAC5C,GAAG;AACH;AACA,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACD;AACA,SAAS,OAAO,CAAC,EAAE,EAAE;AACrB,EAAE,MAAM,IAAI,GAAG,mBAAmB,CAACiG,eAAQ,CAAC,EAAE,EAAEC,cAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,EAAE,IAAI,IAAI,KAAK,OAAO,EAAE;AACxB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,mBAAmB,CAACD,eAAQ,CAACE,cAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AACD;AACA,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,mCAAmC,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK;AACjE,EAAE,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpD,EAAE,OAAO,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC;AAC7C,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AAChE,MAAM,cAAc,CAAC;AACrB,CAAC,CAAC;AACF;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE;AACvC,EAAE,IAAI,UAAU,GAAG,UAAU,CAAC;AAC9B;AACA,EAAE,IAAI;AACN,IAAI,IAAIC,eAAU,CAACC,WAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE;AACnD,MAAM,UAAU;AAChB,QAAQ,IAAI,CAAC,KAAK,CAACC,iBAAY,CAACD,WAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;AAC1F,QAAQ,UAAU,CAAC;AACnB,KAAK;AACL,GAAG,CAAC,OAAO,OAAO,EAAE;AACpB;AACA,GAAG;AACH;AACA,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;AACD;AACA,SAAS,wBAAwB,CAAC,4BAA4B,EAAE,SAAS,EAAE;AAC3E,EAAE,IAAI,IAAI,GAAG,CAAC,yCAAyC,EAAE,UAAU,CAAC,2BAA2B,CAAC,CAAC;AACjG,EAAE,KAAK,MAAM,GAAG,IAAI,4BAA4B,EAAE;AAClD,IAAI,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACjD;AACA,IAAI,IAAI,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,SAAS;AACvD,MAAM,mCAAmC,CAAC,GAAG,EAAE,SAAS,CAAC;AACzD,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,mCAAmC,CAACA,WAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpG,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,4BAA4B;AACrC,EAAE,4BAA4B;AAC9B,EAAE,uBAAuB;AACzB,EAAE;AACF,EAAE,IAAI,cAAc,GAAG,KAAK,CAAC,IAAI;AACjC,IAAI,uBAAuB;AAC3B,IAAI,CAAC,SAAS,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf;AACA,EAAE,IAAI,4BAA4B,CAAC,MAAM,EAAE;AAC3C,IAAI,cAAc,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS;AAC/C,MAAM,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;AAC1D,KAAK,CAAC,EAAE,CAAC,CAAC;AACV,GAAG;AACH;AACA,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,EAAE,EAAE,uBAAuB,EAAE;AAC5D,EAAE,MAAM,cAAc,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAClD,EAAE,OAAO,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1F,CAAC;AACD;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,IAAI;AACN,IAAI,IAAIE,aAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,IAAI,CAAC;AAClD,GAAG,CAAC,OAAO,OAAO,EAAE;AACpB;AACA,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,QAAQ,EAAE;AAC1C,EAAE,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5C,EAAE,KAAK,MAAM,OAAO,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC5F,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9C,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAChG,IAAI,KAAK,MAAM,IAAI,IAAIxC,MAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE;AAC3E,MAAM,SAAS,CAAC,oBAAoB,CAACvK,cAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrD,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;AAC7B,QAAQ,SAAS,CAAC,oBAAoB,CAACA,cAAO,CAAC6M,WAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,MAAM,4BAA4B,GAAG,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI;AAChG,IAAI,WAAW,CAAC,IAAI,CAAC;AACrB,GAAG,CAAC;AACJ,EAAE,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,CAAC;AACnE,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,oBAAoB,EAAE,EAAE,EAAE;AAC1D,EAAE,IAAI,mBAAmB,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACzD,EAAE,IAAI,mBAAmB,EAAE,OAAO,mBAAmB,CAAC,OAAO,CAAC;AAC9D;AACA,EAAE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAC3C,IAAI,mBAAmB,GAAG;AAC1B,MAAM,OAAO;AACb,MAAM,OAAO,EAAE,IAAI;AACnB,KAAK,CAAC;AACN,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;AACtD,GAAG,CAAC,CAAC;AACL,EAAE,mBAAmB,CAAC,OAAO,GAAG,OAAO,CAAC;AACxC;AACA,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,oBAAoB,EAAE,EAAE,EAAE,YAAY,EAAE;AACxE,EAAE,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3D,EAAE,IAAI,mBAAmB,EAAE;AAC3B,IAAI,IAAI,mBAAmB,CAAC,OAAO,EAAE;AACrC,MAAM,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAChD,MAAM,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC;AACzC,KAAK;AACL,GAAG,MAAM;AACT,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5F,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,sBAAsB,CAAC,EAAE,EAAE;AACpC,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,EAAE,EAAE,qBAAqB,EAAE;AAC3D,EAAE,IAAI,qBAAqB,KAAK,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC9D,IAAI,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,GAAG;AACH,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3B,EAAE,MAAM,QAAQ;AAChB,IAAI,qBAAqB,KAAK,MAAM;AACpC,QAAQ,CAAC,uDAAuD,EAAE,UAAU,CAAC,uEAAuE,EAAE,IAAI,CAAC,EAAE,CAAC;AAC9J,QAAQ,qBAAqB,KAAK,WAAW;AAC7C,QAAQ,CAAC,sDAAsD,EAAE,UAAU,CAAC,sEAAsE,EAAE,IAAI,CAAC,EAAE,CAAC;AAC5J,QAAQ,CAAC,qBAAqB;AAC9B,QAAQ,CAAC,qCAAqC,EAAE,UAAU,CAAC,qDAAqD,EAAE,IAAI,CAAC,EAAE,CAAC;AAC1H,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvE,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE;AAC5C,EAAE,MAAM,cAAc,GAAG,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;AACpF,EAAE,OAAO,CAAC,kCAAkC,EAAE,UAAU,CAAC,uCAAuC,EAAE,IAAI,CAAC,SAAS;AAChH,IAAI,mCAAmC,CAAC,cAAc,EAAE,SAAS,CAAC;AAClE,GAAG,CAAC;AACJ,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAC5D,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,cAAc,EAAE,SAAS,EAAE;AAC3D,EAAE,OAAO,CAAC,kCAAkC,EAAE,UAAU,CAAC,uCAAuC,EAAE,IAAI,CAAC,SAAS;AAChH,IAAI,mCAAmC,CAAC,cAAc,EAAE,SAAS,CAAC;AAClE,GAAG,CAAC;AACJ,EAAE,EAAEC,iBAAY,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA,eAAe,qBAAqB;AACpC,EAAE,EAAE;AACJ,EAAE,qBAAqB;AACvB,EAAE,0BAA0B;AAC5B,EAAE,yBAAyB;AAC3B,EAAE,oBAAoB;AACtB,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3B,EAAE,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAC9E,EAAE,IAAI,YAAY,IAAI,YAAY,CAAC,UAAU,EAAE;AAC/C,IAAI,OAAO,CAAC,2CAA2C,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,GAAG,MAAM,IAAI,YAAY,KAAK,IAAI,EAAE;AACpC,IAAI,OAAO,sBAAsB,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAC7D,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE;AACrC,IAAI,OAAO,CAAC,uCAAuC,EAAE,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS;AAC5G,MAAM,EAAE;AACR,KAAK,CAAC,oDAAoD,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE,GAAG,MAAM;AACT,IAAI,qBAAqB,KAAK,IAAI;AAClC,KAAK,qBAAqB,KAAK,WAAW;AAC1C,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC;AACzC,OAAO,qBAAqB,KAAK,MAAM,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,IAAI;AACJ,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AACD;AACA;AACA;AACA,SAAS,yBAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE;AACxD,EAAE,OAAO,CAAC,QAAQ,GAAG,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE7B,UAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AACD;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC7C,EAAE,OAAO,UAAU,CAAC,MAAM;AAC1B,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACtF,IAAI,CAAC,QAAQ,CAAC;AACd,GAAG,CAAC;AACJ,CAAC;AACD;AACA,SAAS,YAAY,CAAC,UAAU,EAAE;AAClC,EAAE,SAAS,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACjD;AACA,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,SAAS,CAAC;AAC3D;AACA,IAAI,MAAM,QAAQ,GAAGjL,cAAO,CAAC2M,cAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1D,IAAI,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC3D;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACnD,MAAM,IAAI;AACV,QAAQ,MAAM,KAAK,GAAGI,aAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,OAAO,CAAC,OAAO,GAAG,EAAE;AACpB;AACA,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH;AACA,EAAE,OAAO,SAAS,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE;AACnD,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;AACvF,MAAM,OAAO,QAAQ,CAAC;AACtB,KAAK;AACL;AACA,IAAI,MAAM,QAAQ;AAClB,MAAM,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC;AACtE,UAAU,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;AACxD,UAAU,WAAW,CAAC;AACtB;AACA;AACA;AACA,IAAI,IAAI,QAAQ,IAAI,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE;AACzD,MAAM,OAAO,QAAQ,CAAC;AACtB,KAAK;AACL;AACA,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC9D,IAAI,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACnE,IAAI,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACrC;AACA,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAClD,KAAK,MAAM,IAAI,gBAAgB,EAAE;AACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACpD;AACA,MAAM,oBAAoB,GAAG,WAAW,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AAC5E,MAAM,IAAI,oBAAoB,EAAE;AAChC,QAAQ,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AAC/D,OAAO;AACP,KAAK;AACL;AACA,IAAI;AACJ,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;AACrC,MAAM,QAAQ,KAAK,mBAAmB;AACtC,MAAM,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC9C,MAAM;AACN,MAAM,OAAO,QAAQ,CAAC;AACtB,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAC5C,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,aAAa,IAAI,gBAAgB,EAAE,EAAE;AAClF,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;AAC1B,MAAM,IAAI,CAAC,QAAQ,EAAE;AACrB,QAAQ,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACzD,OAAO;AACP,MAAM,IAAI,QAAQ,IAAI,aAAa,EAAE;AACrC,QAAQ,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,eAAe,GAAG,YAAY,CAAC,CAAC;AAC9F,QAAQ,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;AAClC,OAAO,MAAM,IAAI,QAAQ,IAAI,oBAAoB,EAAE;AACnD,QAAQ,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACnE,OAAO,MAAM,IAAI,CAAC,QAAQ,KAAK,aAAa,IAAI,gBAAgB,CAAC,EAAE;AACnE,QAAQ,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC1E,OAAO;AACP,MAAM,OAAO,QAAQ,CAAC;AACtB,KAAK,CAAC,CAAC;AACP,GAAG,CAAC;AACJ,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,EAAE;AACrE,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9D,EAAE,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC7C,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC;AAC1B,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC;AAC1B,EAAE,IAAI,YAAY,CAAC;AACnB;AACA,EAAE,QAAQ,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG;AACrE,IAAI,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,IAAI,UAAU,GAAG,QAAQ,EAAE;AAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,QAAQ,KAAK,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,EAAE;AACpE,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM,CAAC,gFAAgF,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC;AAClJ,KAAK,CAAC;AACN,GAAG;AACH,CAAC;AACD;AACA,MAAM,SAAS,GAAG;AAClB,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC;AAC7C;AACA,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC;AAC7C;AACA,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC;AACA,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjC;AACA,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACpD;AACA,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACpD,CAAC,CAAC;AACF;AACA,SAAS,GAAG,CAAC,KAAK,EAAE;AACpB,EAAE,OAAO,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AACzC,CAAC;AACD;AACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;AAC9B,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;AACrC;AACA,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,OAAO,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;AACrF,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC;AAC1B,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACnD,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChF,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACxE,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,CAAC;AACD;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;AACnB;AACA,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAC3C,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC;AACnC;AACA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC;AACA,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,OAAO,IAAI,CAAC;AAC9C;AACA,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AACxB,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB;AACA,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5C,CAAC;AACD;AACA,MAAM,gBAAgB,GAAG,YAAY,CAAC;AACtC;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,eAAe;AACvB,IAAI,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AACpG,EAAE,IAAI,eAAe,IAAI,eAAe,CAAC,GAAG,KAAK,gBAAgB,EAAE;AACnE,IAAI,OAAO,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA,SAAS,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE;AACrD,EAAE,MAAM;AACR,IAAI,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAChC,GAAG,GAAG,IAAI,CAAC;AACX,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,OAAO;AAClF,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,OAAO;AAChG,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO;AAC1C;AACA,EAAE,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,EAAE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE;AACxE,MAAM,OAAO;AACb,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,IAAI;AACJ,MAAM,MAAM,CAAC,IAAI,KAAK,kBAAkB;AACxC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;AAC3C,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;AAC7C,MAAM;AACN,MAAM,OAAO;AACb,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO;AACrE;AACA,EAAE,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AACtF,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO;AACrD;AACA;AACA,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;AACxD,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,EAAE,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC;AAClE,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;AAC5C,IAAI;AACJ,MAAM,QAAQ,CAAC,IAAI,KAAK,UAAU;AAClC,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY;AACxC,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY;AACxC,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC9B,MAAM;AACN,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE;AAC9D,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;AAClB,EAAE,MAAM,UAAU,GAAG,EAAE,CAAC;AACxB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxB,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AACpB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzB,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,WAAW;AACb,KAAK,IAAI,EAAE;AACX,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AAClD,KAAK,MAAM,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AACD;AACA,SAAS,gCAAgC;AACzC,EAAE,WAAW;AACb,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,OAAO;AACT,EAAE,wBAAwB;AAC1B,EAAE,oCAAoC;AACtC,EAAE,wBAAwB;AAC1B,EAAE,mBAAmB;AACrB,EAAE,4BAA4B;AAC9B,EAAE,uBAAuB;AACzB,EAAE,IAAI;AACN,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,oBAAoB;AACtB,EAAE,sBAAsB;AACxB,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAChC;AACA,EAAE,IAAI,UAAU,KAAK,SAAS,EAAE;AAChC,IAAI,kCAAkC;AACtC,MAAM,WAAW;AACjB,MAAM,OAAO;AACb,MAAM,kBAAkB;AACxB,MAAM,wBAAwB;AAC9B,MAAM,oCAAoC;AAC1C,MAAM,WAAW;AACjB,KAAK,CAAC;AACN,GAAG,MAAM;AACT,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACtD,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,sBAAsB;AAC5B,QAAQ,kBAAkB;AAC1B,QAAQ,WAAW;AACnB,QAAQ,oBAAoB;AAC5B,QAAQ,YAAY;AACpB,QAAQ,sBAAsB;AAC9B,OAAO,CAAC;AACR,KAAK,MAAM;AACX,MAAM,UAAU;AAChB,QAAQ,WAAW;AACnB,QAAQ,OAAO;AACf,QAAQ,kBAAkB;AAC1B,QAAQ,wBAAwB;AAChC,QAAQ,wBAAwB;AAChC,QAAQ,uBAAuB;AAC/B,QAAQ,mBAAmB;AAC3B,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,4BAA4B;AACpC,QAAQ,YAAY;AACpB,QAAQ,sBAAsB;AAC9B,OAAO,CAAC;AACR,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;AACtB,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,GAAG;AACH;AACA,EAAE,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AACD;AACA,SAAS,kCAAkC;AAC3C,EAAE,WAAW;AACb,EAAE,OAAO;AACT,EAAE,kBAAkB;AACpB,EAAE,wBAAwB;AAC1B,EAAE,oCAAoC;AACtC,EAAE,WAAW;AACb,EAAE;AACF,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,wBAAwB,EAAE;AACnD,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE,WAAW,CAAC,YAAY,CAAC,oCAAoC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACpF,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACpD,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AACD;AACA,SAAS,sBAAsB;AAC/B,EAAE,kBAAkB;AACpB,EAAE,WAAW;AACb,EAAE,oBAAoB;AACtB,EAAE,YAAY;AACd,EAAE,sBAAsB;AACxB,EAAE;AACF,EAAE,kBAAkB,CAAC,IAAI;AACzB,IAAI,CAAC,eAAe;AACpB,MAAM,oBAAoB,IAAI,sBAAsB,KAAK,MAAM;AAC/D,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC,CAAC;AAChF,UAAU,sBAAsB,KAAK,KAAK;AAC1C,UAAU,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC;AAClC,UAAU,WAAW;AACrB,KAAK,CAAC,CAAC;AACP,GAAG,CAAC;AACJ,CAAC;AACD;AACA,SAAS,UAAU;AACnB,EAAE,WAAW;AACb,EAAE,OAAO;AACT,EAAE,kBAAkB;AACpB,EAAE,wBAAwB;AAC1B,EAAE,wBAAwB;AAC1B,EAAE,uBAAuB;AACzB,EAAE,mBAAmB;AACrB,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,4BAA4B;AAC9B,EAAE,YAAY;AACd,EAAE,sBAAsB;AACxB,EAAE;AACF,EAAE,IAAI,6BAA6B,CAAC;AACpC;AACA,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,wBAAwB,EAAE;AACnD,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzE,GAAG;AACH;AACA;AACA,EAAE,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,wBAAwB,EAAE;AAClE,IAAI,MAAM,YAAY,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAI,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAChC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,MAAM,IAAI,WAAW,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACzE,MAAM,IAAI,gBAAgB,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC7D,QAAQ,WAAW,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AAC3C,QAAQ,gBAAgB,GAAG,KAAK,CAAC;AACjC,OAAO;AACP,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;AAClC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,YAAY,GAAG,UAAU,GAAG,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAClG,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,IAAI,uBAAuB,GAAG,KAAK,CAAC;AACtC,EAAE,KAAK,MAAM,UAAU,IAAI,4BAA4B,EAAE;AACzD,IAAI,uBAAuB,GAAG,IAAI,CAAC;AACnC,IAAI,MAAM,uBAAuB;AACjC,MAAM,UAAU,CAAC,IAAI,KAAK,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9F,IAAI,WAAW,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,uBAAuB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AACnG,GAAG;AACH;AACA,EAAE,IAAI,CAAC,uBAAuB,IAAI,sBAAsB,KAAK,IAAI,EAAE;AACnE,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,GAAG,MAAM,IAAI,wBAAwB,CAAC,MAAM,KAAK,CAAC,IAAI,sBAAsB,KAAK,KAAK,EAAE;AACxF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,6BAA6B,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAC/E,GAAG,MAAM;AACT,IAAI,kBAAkB,CAAC,IAAI;AAC3B,MAAM,CAAC,4BAA4B,EAAE,YAAY,CAAC,yBAAyB,EAAE,WAAW,CAAC,EAAE,CAAC;AAC5F,KAAK,CAAC;AACN,GAAG;AACH,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE;AACzC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC;AAC1B,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,OAAO,KAAK,CAAC;AACnD;AACA;AACA,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AAChD;AACA,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AACD;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;AAChC,EAAE;AACF,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AACxF,KAAK,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtE,IAAI;AACJ,CAAC;AACD;AACA,SAAS,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE;AACtD,EAAE;AACF,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;AAChC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;AAC5B,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY;AAClC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;AAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7B,IAAI;AACJ,CAAC;AACD;AACA,SAAS,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE;AAC/C,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AACrD,EAAE,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACnC,EAAE;AACF,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;AAC7B,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;AACzC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjG,IAAI;AACJ,CAAC;AACD;AACA,MAAM,cAAc,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClE;AACA,SAAS,2BAA2B,CAAC,MAAM,EAAE;AAC7C,EAAE,OAAO,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC;AACD;AACA,SAAS,yBAAyB,CAAC,YAAY,EAAE,aAAa,EAAE;AAChE,EAAE,OAAO,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACnC,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;AAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/C,CAAC;AACD;AACA,SAAS,uBAAuB,CAAC,MAAM,EAAE,EAAE,EAAE,uBAAuB,EAAE;AACtE,EAAE,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACxD,IAAI,IAAI;AACR,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAACrO,cAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAEiO,cAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,MAAM,IAAI,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACrD,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,KAAK,CAAC,OAAO,EAAE,EAAE;AACjB;AACA,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE,KAAK,MAAM,UAAU,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;AACjD,IAAI,MAAM,YAAY,GAAG,oBAAoB,CAAC3M,cAAO,CAAC2M,cAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;AACzF,IAAI,IAAI,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACnD,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA,SAAS,kBAAkB,GAAG;AAC9B,EAAE,MAAM,eAAe,GAAG,EAAE,CAAC;AAC7B,EAAE,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/C,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;AACnC,EAAE,MAAM,qCAAqC,GAAG,EAAE,CAAC;AACnD;AACA,EAAE,SAAS,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE;AACvE,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3C,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClD,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,MAAM,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,WAAW,CAAC,QAAQ,EAAE;AACjC,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;AACrC,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC;AACA,MAAM,gBAAgB,CAAC,QAAQ,CAAC,GAAG;AACnC,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,kBAAkB,EAAE,EAAE;AAC9B,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACtC,GAAG;AACH;AACA,EAAE,SAAS,0CAA0C;AACrD,IAAI,WAAW;AACf,IAAI,oBAAoB;AACxB,IAAI,0BAA0B;AAC9B,IAAI,eAAe;AACnB,IAAI,WAAW;AACf,IAAI,sBAAsB;AAC1B,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,EAAE;AACN,IAAI,UAAU;AACd,IAAI;AACJ,IAAI,yCAAyC;AAC7C,MAAM,qCAAqC;AAC3C,MAAM,cAAc;AACpB,MAAM,WAAW;AACjB,KAAK,CAAC;AACN,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,IAAI,IAAI,UAAU,KAAK,QAAQ,EAAE;AACjC,MAAM,OAAO,CAAC,IAAI;AAClB,QAAQ,CAAC,qBAAqB,EAAE,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS;AAC9F,UAAU,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;AACnC,SAAS,CAAC,CAAC;AACX,OAAO,CAAC;AACR,KAAK,MAAM,IAAI,UAAU,KAAK,SAAS,EAAE;AACzC,MAAM,OAAO,CAAC,IAAI;AAClB,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AACnG,OAAO,CAAC;AACR,KAAK;AACL,IAAI,KAAK,MAAM,MAAM,IAAI,sBAAsB,EAAE;AACjD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,KAAK;AACL,IAAI,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE;AAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,OAAO;AACP,MAAM,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,OAAO,CAAC,IAAI;AAClB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;AACnF,UAAU,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;AACzE,SAAS,CAAC,CAAC,CAAC;AACZ,OAAO,CAAC;AACR,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7D,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,mBAAmB;AACvB,IAAI,eAAe;AACnB,IAAI,0CAA0C;AAC9C,GAAG,CAAC;AACJ,CAAC;AACD;AACA,SAAS,yCAAyC;AAClD,EAAE,qCAAqC;AACvC,EAAE,cAAc;AAChB,EAAE,WAAW;AACb,EAAE;AACF,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,KAAK,MAAM,iBAAiB,IAAI,qCAAqC,EAAE;AACzE,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxB,MAAM,IAAI,aAAa,CAAC;AACxB,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC1F,MAAM,GAAG;AACT,QAAQ,aAAa,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1C,QAAQ,GAAG,IAAI,CAAC,CAAC;AACjB,OAAO,QAAQ,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC7D,MAAM,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;AACpC,KAAK;AACL,IAAI,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzF,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA,MAAM,cAAc,GAAG,yDAAyD,CAAC;AACjF;AACA,MAAM,YAAY,GAAG,sEAAsE,CAAC;AAC5F;AACA,SAAS,iBAAiB;AAC1B,EAAE,KAAK;AACP,EAAE,IAAI;AACN,EAAE,EAAE;AACJ,EAAE,UAAU;AACZ,EAAE,YAAY;AACd,EAAE,aAAa;AACf,EAAE,qBAAqB;AACvB,EAAE,qCAAqC;AACvC,EAAE,SAAS;AACX,EAAE,8BAA8B;AAChC,EAAE,uBAAuB;AACzB,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,QAAQ;AACV,EAAE,sBAAsB;AACxB,EAAE;AACF,EAAE,MAAM,GAAG,GAAG,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACpD,EAAE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5C,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG,CAAC;AACJ,EAAE,IAAI,kBAAkB,GAAG,KAAK,CAAC;AACjC,EAAE,MAAM,yBAAyB;AACjC,IAAI,8BAA8B,IAAI,mCAAmC,CAACA,cAAO,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAClG,EAAE,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACzC,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC;AACvB,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC;AACvB,EAAE,IAAI,kBAAkB,GAAG,IAAI,CAAC;AAChC,EAAE,IAAI,UAAU,GAAG,KAAK,CAAC;AACzB;AACA,EAAE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5B;AACA;AACA,EAAE,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACvE,EAAE,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3C,EAAE,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAChC;AACA,EAAE,MAAM;AACR,IAAI,mBAAmB;AACvB,IAAI,eAAe;AACnB,IAAI,0CAA0C;AAC9C,GAAG,GAAG,kBAAkB,EAAE,CAAC;AAC3B;AACA;AACA;AACA;AACA,EAAE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AACpC,EAAE,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAClC,EAAE,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAE,CAAC;AAC/C,EAAE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AACjC,EAAE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,EAAE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,EAAE,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACtC,EAAE,IAAI,oCAAoC,GAAG,IAAI,CAAC;AAClD,EAAE,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7C,EAAE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;AACxC,EAAE,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAClD;AACA,EAAEnG,MAAI,CAAC,GAAG,EAAE;AACZ,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AACxB,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;AACpB,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,IAAI,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,kBAAkB,EAAE;AAC1E,QAAQ,kBAAkB,GAAG,IAAI,CAAC;AAClC,OAAO;AACP;AACA,MAAM,YAAY,IAAI,CAAC,CAAC;AACxB,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE;AACzC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC;AAC1D,MAAM,IAAI,SAAS,EAAE;AACrB,QAAQ,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,QAAQ,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,OAAO;AACP;AACA;AACA,MAAM,QAAQ,IAAI,CAAC,IAAI;AACvB,QAAQ,KAAK,cAAc;AAC3B,UAAU,IAAI,kBAAkB,KAAK,IAAI,EAAE;AAC3C,YAAY,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAChD,WAAW;AACX,UAAU,OAAO;AACjB,QAAQ,KAAK,sBAAsB;AACnC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACrD,YAAY,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,YAAY,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO;AACrE;AACA,YAAY,MAAM,mBAAmB,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC/E,YAAY,IAAI,CAAC,mBAAmB,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,OAAO;AAChF;AACA,YAAY,MAAM,GAAG,UAAU,CAAC,GAAG,mBAAmB,CAAC;AACvD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACxC;AACA;AACA,YAAY,IAAI,SAAS,CAAC,OAAO,KAAK,gBAAgB,EAAE;AACxD,cAAc,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,cAAc,IAAI,YAAY,GAAG,CAAC,EAAE;AACpC,gBAAgB,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9C,eAAe,MAAM,IAAI,CAAC,oCAAoC,EAAE;AAChE,gBAAgB,oCAAoC,GAAG,IAAI,CAAC;AAC5D,eAAe;AACf;AACA,cAAc,IAAI,sBAAsB,KAAK,KAAK,EAAE;AACpD,gBAAgB,UAAU,GAAG,IAAI,CAAC;AAClC,eAAe,MAAM,IAAI,sBAAsB,KAAK,MAAM,EAAE;AAC5D,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAC5D,kBAAkB,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACxD,oBAAoB,UAAU,GAAG,IAAI,CAAC;AACtC,mBAAmB;AACnB,iBAAiB,MAAM,IAAI,sBAAsB,KAAK,KAAK,EAAE;AAC7D,kBAAkB,UAAU,GAAG,IAAI,CAAC;AACpC,iBAAiB;AACjB,eAAe;AACf,aAAa,MAAM,IAAI,UAAU,KAAK,gBAAgB,EAAE;AACxD,cAAc,IAAI,YAAY,GAAG,CAAC,EAAE;AACpC,gBAAgB,UAAU,GAAG,IAAI,CAAC;AAClC,eAAe,MAAM;AACrB,gBAAgB,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChE,eAAe;AACf,aAAa,MAAM;AACnB,cAAc,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACrF,gBAAgB,KAAK,EAAE,EAAE;AACzB,gBAAgB,MAAM,EAAE,IAAI,GAAG,EAAE;AACjC,eAAe,CAAC;AAChB,cAAc,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,cAAc,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnD,cAAc,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7C,cAAc,wBAAwB,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAC3E,cAAc,IAAI,YAAY,IAAI,CAAC,EAAE;AACrC,gBAAgB,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9C,eAAe;AACf,aAAa;AACb;AACA,YAAY,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,WAAW,MAAM;AACjB,YAAY,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAChE,cAAc,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,aAAa;AACb,WAAW;AACX,UAAU,OAAO;AACjB,QAAQ,KAAK,gBAAgB,EAAE;AAC/B,UAAU,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;AACzC,YAAY,IAAI,YAAY,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE;AAC7E;AACA,cAAc,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,cAAc,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9D,aAAa,MAAM;AACnB,cAAc,UAAU,GAAG,IAAI,CAAC;AAChC,aAAa;AACb,YAAY,OAAO;AACnB,WAAW;AACX;AACA,UAAU;AACV,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM;AAC9B,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;AACjD,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;AACnD,YAAY,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,uBAAuB,CAAC;AACrE,YAAY;AACZ,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACnD,YAAY,WAAW,CAAC,UAAU;AAClC,cAAc,IAAI,CAAC,GAAG,GAAG,CAAC;AAC1B,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS;AAChC,gBAAgBmG,cAAO,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,0BAA0B,yBAAyB;AAC7F,eAAe,CAAC,CAAC;AACjB,aAAa,CAAC;AACd,YAAY,WAAW,CAAC,SAAS;AACjC,cAAc,WAAW,CAAC,KAAK;AAC/B,cAAc,WAAW,CAAC,GAAG;AAC7B,cAAc,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC;AAC/C,cAAc;AACd,gBAAgB,SAAS,EAAE,IAAI;AAC/B,eAAe;AACf,aAAa,CAAC;AACd,YAAY,OAAO;AACnB,WAAW;AACX;AACA,UAAU,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO;AAC7D,UAAU,IAAI,CAAC,8BAA8B,EAAE;AAC/C,YAAY,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,WAAW;AACX,UAAU,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;AAC/D,YAAY,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAY,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,KAAK,qBAAqB,CAAC;AAC1E;AACA,YAAY,IAAI,iBAAiB,GAAG,IAAI,CAAC;AACzC,YAAY,IAAI,4BAA4B,GAAG,KAAK,CAAC;AACrD;AACA,YAAY,IAAI,kBAAkB,KAAK,IAAI,EAAE;AAC7C,cAAc,CAAC;AACf,gBAAgB,iBAAiB;AACjC,gBAAgB,4BAA4B;AAC5C,eAAe,GAAG,qCAAqC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAClF;AACA,cAAc,IAAI,4BAA4B,EAAE;AAChD,gBAAgB,iBAAiB,GAAG,IAAI,CAAC;AACzC,eAAe;AACf,aAAa;AACb;AACA,YAAY,IAAI,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACrD,YAAY,MAAM,iBAAiB,GAAG,WAAW,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AACrF,YAAY,IAAI,iBAAiB,EAAE;AACnC,cAAc,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AACrE,cAAc,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC9C,gBAAgB,QAAQ,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAC1D,eAAe;AACf,cAAc,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;AACpF,aAAa,MAAM;AACnB,cAAc;AACd,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC3C,gBAAgB,uBAAuB,CAAC,QAAQ,EAAE,EAAE,EAAE,uBAAuB,CAAC;AAC9E,gBAAgB;AAChB,gBAAgB,IAAI,4BAA4B,EAAE;AAClD,kBAAkB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3E,iBAAiB,MAAM,IAAI,iBAAiB,EAAE;AAC9C,kBAAkB,WAAW,CAAC,SAAS;AACvC,oBAAoB,IAAI,CAAC,KAAK;AAC9B,oBAAoB,IAAI,CAAC,GAAG;AAC5B,oBAAoB,CAAC,EAAE,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS;AACrE,sBAAsB,mCAAmC,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC9E,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS;AACxC,sBAAsBA,cAAO,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,0BAA0B,yBAAyB;AACnG,qBAAqB,CAAC,CAAC,CAAC;AACxB,mBAAmB,CAAC;AACpB,kBAAkB,kBAAkB,GAAG,IAAI,CAAC;AAC5C,iBAAiB;AACjB,gBAAgB,OAAO;AACvB,eAAe;AACf;AACA,cAAc,IAAI,iBAAiB,EAAE;AACrC,gBAAgB,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AAC5E,eAAe;AACf,aAAa;AACb;AACA,YAAY,IAAI,eAAe,EAAE;AACjC,cAAc,IAAI,4BAA4B,EAAE;AAChD,gBAAgB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACzE,gBAAgB,OAAO;AACvB,eAAe;AACf;AACA,cAAc;AACd,gBAAgB,MAAM,CAAC,IAAI,KAAK,oBAAoB;AACpD,gBAAgB,CAAC,KAAK,CAAC,MAAM;AAC7B,gBAAgB,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY;AAC/C,gBAAgB;AAChB;AACA;AACA,gBAAgB,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvD,eAAe;AACf,aAAa,MAAM;AACnB;AACA;AACA,cAAc,IAAI,CAAC,iBAAiB,IAAI,CAAC,4BAA4B,EAAE;AACvE,gBAAgB,OAAO;AACvB,eAAe;AACf;AACA,cAAc,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3D,aAAa;AACb,WAAW;AACX,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,KAAK,uBAAuB,CAAC;AACrC,QAAQ,KAAK,aAAa;AAC1B;AACA,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,YAAY,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9C,WAAW,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5D,YAAY,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,WAAW;AACX,UAAU,OAAO;AACjB,QAAQ,KAAK,YAAY,EAAE;AAC3B,UAAU,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAChC,UAAU,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO;AAC5E,UAAU,QAAQ,IAAI;AACtB,YAAY,KAAK,SAAS;AAC1B,cAAc,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAE;AACvD,gBAAgB,IAAI,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,uBAAuB,CAAC,EAAE;AAC/E,kBAAkB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;AACxD,oBAAoB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE;AACnG,sBAAsB,SAAS,EAAE,IAAI;AACrC,qBAAqB,CAAC,CAAC;AACvB,mBAAmB;AACnB,iBAAiB;AACjB;AACA,gBAAgB,OAAO;AACvB,eAAe;AACf;AACA,cAAc,IAAI,8BAA8B,IAAI,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;AACvF,gBAAgB,WAAW,CAAC,UAAU;AACtC,kBAAkB,MAAM,CAAC,GAAG,GAAG,CAAC;AAChC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS;AACpC,oBAAoBA,cAAO,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,0BAA0B,yBAAyB;AACjG,mBAAmB,CAAC,CAAC;AACrB,iBAAiB,CAAC;AAClB,eAAe;AACf,cAAc,IAAI,CAAC,qBAAqB,EAAE;AAC1C,gBAAgB,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AACjD,kBAAkB,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACzF,iBAAiB,MAAM;AACvB,kBAAkB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE;AACjG,oBAAoB,SAAS,EAAE,IAAI;AACnC,mBAAmB,CAAC,CAAC;AACrB,iBAAiB;AACjB,eAAe;AACf,cAAc,kBAAkB,GAAG,IAAI,CAAC;AACxC,cAAc,OAAO;AACrB,YAAY,KAAK,QAAQ,CAAC;AAC1B,YAAY,KAAK,SAAS;AAC1B,cAAc,UAAU,GAAG,IAAI,CAAC;AAChC,cAAc,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAChC,cAAc,OAAO;AACrB,YAAY,KAAK,QAAQ;AACzB,cAAc,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACjC,cAAc,IAAI,CAAC,YAAY,EAAE;AACjC,gBAAgB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE;AAC9F,kBAAkB,SAAS,EAAE,IAAI;AACjC,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,cAAc,OAAO;AACrB,YAAY,KAAK,QAAQ;AACzB,cAAc,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;AACvE,gBAAgB,SAAS,EAAE,IAAI;AAC/B,eAAe,CAAC,CAAC;AACjB,cAAc,OAAO;AACrB,YAAY;AACZ,cAAc,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,cAAc,OAAO;AACrB,WAAW;AACX,SAAS;AACT,QAAQ,KAAK,kBAAkB;AAC/B,UAAU,IAAI,CAAC,8BAA8B,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC/E,YAAY,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE;AAC3F,cAAc,SAAS,EAAE,IAAI;AAC7B,aAAa,CAAC,CAAC;AACf,YAAY,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAY,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,WAAW;AACX,UAAU,OAAO;AACjB,QAAQ,KAAK,iBAAiB;AAC9B;AACA,UAAU,IAAI,YAAY,KAAK,CAAC,EAAE;AAClC,YAAY,UAAU,GAAG,IAAI,CAAC;AAC9B,WAAW;AACX,UAAU,OAAO;AACjB,QAAQ,KAAK,gBAAgB;AAC7B;AACA,UAAU,IAAI,YAAY,KAAK,CAAC,EAAE;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,cAAc,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE;AAC5F,gBAAgB,SAAS,EAAE,IAAI;AAC/B,eAAe,CAAC,CAAC;AACjB,aAAa;AACb,WAAW;AACX,UAAU,OAAO;AACjB,QAAQ,KAAK,iBAAiB;AAC9B;AACA,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1C,YAAY,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxD,YAAY,IAAI,CAAC,SAAS,EAAE,OAAO;AACnC;AACA,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO;AACvD;AACA,YAAY;AACZ,cAAc,SAAS,CAAC,OAAO,KAAK,gBAAgB;AACpD,cAAc,SAAS,CAAC,OAAO,KAAK,QAAQ;AAC5C,cAAc,SAAS,CAAC,OAAO,KAAK,SAAS;AAC7C,cAAc;AACd,cAAc,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;AACtE,gBAAgB,SAAS,EAAE,KAAK;AAChC,eAAe,CAAC,CAAC;AACjB,aAAa;AACb,WAAW;AACX,UAAU,OAAO;AACjB,QAAQ,KAAK,qBAAqB;AAClC,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAY,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,WAAW;AACX,OAAO;AACP,KAAK;AACL;AACA,IAAI,KAAK,CAAC,IAAI,EAAE;AAChB,MAAM,YAAY,IAAI,CAAC,CAAC;AACxB,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC;AAC1D,KAAK;AACL,GAAG,CAAC,CAAC;AACL;AACA,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,EAAE,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC9E,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACvF,EAAE,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,EAAE,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,wBAAwB,EAAE;AACnE,IAAI,uBAAuB,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACvF,GAAG;AACH;AACA;AACA,EAAE,UAAU;AACZ,IAAI,CAAC,UAAU;AACf,IAAI,CAAC,WAAW;AAChB,KAAK,UAAU,KAAK,IAAI,CAAC,OAAO,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,EAAE,MAAM,oBAAoB;AAC5B,IAAI,UAAU;AACd,KAAK,oCAAoC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACzF;AACA,EAAE;AACF,IAAI;AACJ,MAAM,eAAe,CAAC,MAAM;AAC5B,MAAM,sBAAsB,CAAC,IAAI;AACjC,MAAM,IAAI,CAAC,MAAM;AACjB,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AACvB,MAAM,oCAAoC,CAAC,MAAM,GAAG,CAAC;AACrD,KAAK;AACL,KAAK,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,IAAI;AACJ,IAAI,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACzD,GAAG;AACH;AACA,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC7B,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,IAAI,cAAc,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,MAAM,UAAU,GAAG,UAAU;AAC/B,MAAM,IAAI,CAAC,MAAM;AACjB,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,MAAM,oCAAoC;AAC1C,MAAM,wBAAwB,CAAC,IAAI,KAAK,CAAC,IAAI,oCAAoC,CAAC,MAAM,KAAK,CAAC;AAC9F,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,MAAM,wBAAwB,CAAC,MAAM,KAAK,CAAC;AAC3C,MAAM,SAAS;AACf,MAAM,QAAQ,CAAC;AACf;AACA,EAAE,MAAM,WAAW,GAAG,0CAA0C;AAChE,IAAI,WAAW;AACf,IAAI,oBAAoB;AACxB,IAAI,0BAA0B;AAC9B,IAAI,eAAe;AACnB,IAAI,YAAY;AAChB,IAAI,sBAAsB;AAC1B,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,EAAE;AACN,IAAI,UAAU;AACd,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,WAAW,GAAG,UAAU;AAChC,MAAM,EAAE;AACR,MAAM,gCAAgC;AACtC,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,wBAAwB;AAChC,QAAQ,oCAAoC;AAC5C,QAAQ,wBAAwB;AAChC,QAAQ,mBAAmB;AAC3B,QAAQ,oCAAoC;AAC5C,QAAQ,uBAAuB;AAC/B,QAAQ,IAAI;AACZ,QAAQ,YAAY;AACpB,QAAQ,UAAU;AAClB,QAAQ,oBAAoB;AAC5B,QAAQ,sBAAsB;AAC9B,OAAO,CAAC;AACR;AACA,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACzD,GAAG;AACH;AACA,EAAE,WAAW;AACb,KAAK,IAAI,EAAE;AACX,KAAK,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC;AAC1C,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;AACzB;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE;AAChC,IAAI,GAAG,EAAE,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,IAAI;AACrD,IAAI,qBAAqB,EAAE,UAAU,GAAG,KAAK,GAAG,iBAAiB;AACjE,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;AACnD,GAAG,CAAC;AACJ,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,OAAO,GAAG,EAAE,EAAE;AAChC,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,EAAE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAChE,EAAE,MAAM;AACR,IAAI,YAAY;AAChB,IAAI,qBAAqB;AACzB,IAAI,qBAAqB,EAAE,2BAA2B;AACtD,IAAI,YAAY;AAChB,GAAG,GAAG,OAAO,CAAC;AACd,EAAE,MAAM,wBAAwB;AAChC,IAAI,OAAO,2BAA2B,KAAK,UAAU;AACrD,QAAQ,2BAA2B;AACnC,QAAQ,MAAM,2BAA2B,CAAC;AAC1C,EAAE,IAAI,cAAc,CAAC;AACrB,EAAE,MAAM,aAAa;AACrB,IAAI,OAAO,YAAY,KAAK,UAAU;AACtC,QAAQ,YAAY;AACpB,QAAQ,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;AACnC,SAAS,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;AACjF,QAAQ,MAAM,YAAY,CAAC;AAC3B,EAAE,MAAM,sBAAsB;AAC9B,IAAI,OAAO,OAAO,CAAC,sBAAsB,KAAK,SAAS,GAAG,OAAO,CAAC,sBAAsB,GAAG,MAAM,CAAC;AAClG;AACA,EAAE,MAAM,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,GAAG,sBAAsB;AAC1F,IAAI,OAAO,CAAC,qBAAqB;AACjC,GAAG,CAAC;AACJ,EAAE,MAAM,8BAA8B,GAAG,uBAAuB,CAAC,IAAI,GAAG,CAAC,CAAC;AAC1E,EAAE,MAAM,SAAS,GAAG,8BAA8B;AAClD,MAAMK,SAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACnF,MAAM,IAAI,CAAC;AACX;AACA,EAAE,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAE,CAAC;AAC/C,EAAE,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC9C,EAAE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC;AACA,EAAE,MAAM,aAAa;AACrB,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU;AACxC,QAAQ,OAAO,CAAC,MAAM;AACtB,QAAQ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC3C,QAAQ,MAAM,KAAK,CAAC;AACpB;AACA,EAAE,MAAM,qCAAqC,GAAG,CAAC,EAAE,KAAK;AACxD,IAAI,MAAM,IAAI;AACd,MAAM,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU;AAClD,UAAU,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;AACpC,UAAU,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;AAC/C,UAAU,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7C,UAAU,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;AAC1C;AACA,IAAI,OAAO;AACX,MAAM,iBAAiB,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;AAC3D,MAAM,4BAA4B,EAAE,IAAI,KAAK,QAAQ;AACrD,KAAK,CAAC;AACN,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAC7C;AACA,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;AAChD;AACA,EAAE,SAAS,wBAAwB,CAAC,IAAI,EAAE,EAAE,EAAE;AAC9C,IAAI,IAAI,8BAA8B,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;AAC1E;AACA,MAAM,IAAI;AACV,QAAQ,4BAA4B,CAAC,4BAA4B,EAAE,uBAAuB,CAAC,GAAG,IAAI,CAAC;AACnG,KAAK;AACL;AACA,IAAI,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,yBAAyB;AAC5F,MAAM,IAAI,CAAC,KAAK;AAChB,MAAM,IAAI;AACV,MAAM,EAAE;AACR,KAAK,CAAC;AACN,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACxC,KAAK;AACL;AACA,IAAI;AACJ,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAC5D,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAC/F,MAAM;AACN,MAAM,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC3D,KAAK;AACL;AACA;AACA,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACjE,IAAI,IAAI,WAAW,EAAE;AACrB;AACA,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACjD,KAAK;AACL;AACA,IAAI,OAAO,iBAAiB;AAC5B,MAAM,IAAI,CAAC,KAAK;AAChB,MAAM,IAAI;AACV,MAAM,EAAE;AACR,MAAM,UAAU;AAChB,MAAM,YAAY,IAAI,UAAU;AAChC,MAAM,aAAa;AACnB,MAAM,qBAAqB,IAAI,CAAC,8BAA8B;AAC9D,MAAM,qCAAqC;AAC3C,MAAM,SAAS;AACf,MAAM,8BAA8B;AACpC,MAAM,uBAAuB;AAC7B,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,GAAG;AACT,MAAM,sBAAsB;AAC5B,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,UAAU;AACpB;AACA,IAAI,UAAU,GAAG;AACjB,MAAM,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC9E,MAAM,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;AACxC,QAAQ,IAAI,CAAC,IAAI;AACjB,UAAU,oHAAoH;AAC9H,SAAS,CAAC;AACV,OAAO;AACP,KAAK;AACL;AACA,IAAI,SAAS;AACb;AACA,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM,IAAI,EAAE,KAAK,UAAU,EAAE;AAC7B,QAAQ,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AACvF,OAAO;AACP;AACA,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AACrC,QAAQ,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;AAC1C,OAAO;AACP;AACA,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE;AAC1C,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;AACrD,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,8BAA8B,EAAE;AAC5C,UAAU,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChF,YAAY,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,WAAW;AACX,UAAU,IAAI;AACd,YAAY,CAAC,6CAA6C,EAAE,UAAU,CAAC,IAAI,CAAC;AAC5E,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS;AACxD,cAAc,mCAAmC,CAACL,cAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;AAC/E,aAAa,CAAC,IAAI,CAAC;AACnB,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3C,SAAS,MAAM;AACf,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,OAAO;AACf,UAAU,IAAI;AACd,UAAU,qBAAqB,EAAE,UAAU;AAC3C,UAAU,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;AACnD,SAAS,CAAC;AACV,OAAO;AACP;AACA,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE;AAC3C,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AACtD,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvC,QAAQ,OAAO;AACf,UAAU,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC;AACjE,UAAU,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;AACnD,SAAS,CAAC;AACV,OAAO;AACP;AACA,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE;AAC5C,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;AACvD,QAAQ,OAAO,sBAAsB;AACrC,UAAU,QAAQ;AAClB,UAAU,aAAa,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CAAC,QAAQ,CAAC,GAAG,IAAI;AAC7E,SAAS,CAAC;AACV,OAAO;AACP;AACA,MAAM,IAAI,EAAE,KAAK,mBAAmB,EAAE;AACtC,QAAQ,OAAO,wBAAwB,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;AACjF,OAAO;AACP;AACA,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE;AAC9C,QAAQ,OAAO,mBAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAClD,OAAO;AACP;AACA,MAAM,IAAI,qBAAqB,CAAC,EAAE,EAAE,uBAAuB,CAAC,EAAE;AAC9D,QAAQ,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtF,OAAO;AACP;AACA,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,uBAAuB,CAAC,EAAE;AACpD,QAAQ,OAAO,sBAAsB;AACrC,UAAU,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACrE,UAAU,SAAS;AACnB,SAAS,CAAC;AACV,OAAO;AACP;AACA,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE;AACzC,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AACpD,QAAQ,OAAO,qBAAqB;AACpC,UAAU,QAAQ;AAClB,UAAU,wBAAwB,CAAC,QAAQ,CAAC;AAC5C,UAAU,0BAA0B;AACpC,UAAU,yBAAyB;AACnC,UAAU,oBAAoB;AAC9B,SAAS,CAAC;AACV,OAAO;AACP;AACA,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3B,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC;AACrB;AACA,MAAM,IAAI,WAAW,CAAC,EAAE,EAAE,uBAAuB,CAAC,EAAE;AACpD,QAAQ,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACnD,OAAO;AACP;AACA,MAAM,MAAM,OAAO,GAAGD,cAAO,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM;AACN,QAAQ,OAAO,KAAK,MAAM;AAC1B,QAAQ,EAAE,KAAK,mBAAmB;AAClC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC3C,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtD,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP;AACA,MAAM,IAAI;AACV,QAAQ,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAChE,OAAO,CAAC,OAAO,GAAG,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,OAAO;AACP,KAAK;AACL;AACA,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE;AAC3D,MAAM,IAAI,YAAY,IAAI,YAAY,CAAC,UAAU,IAAI,IAAI,EAAE;AAC3D,QAAQ,sBAAsB,CAAC,oBAAoB,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;AACvE,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,sBAAsB,CAAC,oBAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC7D,KAAK;AACL,GAAG,CAAC;AACJ;;;;ICx2DAO,YAAc,GAAG,CAAC,GAAG,UAAU,KAAK;AACpC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;;;;;;ACHD,MAAM,YAACC,WAAS,CAAC,GAAGzR,qBAAe,CAAC;AACpC,MAAMuF,IAAE,GAAG7E,WAAa,CAAC;AACzB;AACA,eAAe,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE;AAC7D,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACnC,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,uBAAuB,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnE,EAAE;AACF;AACA,CAAC,IAAI;AACL,EAAE,MAAM,KAAK,GAAG,MAAM+Q,WAAS,CAAClM,IAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1D,EAAE,OAAO,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;AAClC,EAAE,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC/B,GAAG,OAAO,KAAK,CAAC;AAChB,GAAG;AACH;AACA,EAAE,MAAM,KAAK,CAAC;AACd,EAAE;AACF,CAAC;AACD;AACA,SAAS,UAAU,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE;AAC3D,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACnC,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,uBAAuB,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnE,EAAE;AACF;AACA,CAAC,IAAI;AACL,EAAE,OAAOA,IAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC;AACrD,EAAE,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC/B,GAAG,OAAO,KAAK,CAAC;AAChB,GAAG;AACH;AACA,EAAE,MAAM,KAAK,CAAC;AACd,EAAE;AACF,CAAC;AACD;iBACc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;sBAClC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;oBAC9C,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE;qBAC/C,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE;0BAC1C,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE;wBACtD,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,gBAAgB;;ACzC3E,MAAMxB,MAAI,GAAG/D,aAAe,CAAC;AAC7B,MAAM,QAAQ,GAAGU,UAAoB,CAAC;AACtC;AACA,MAAM,aAAa,GAAG,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACxG;AACA,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AACnC,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAChE,CAAC,OAAOqD,MAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAGA,MAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC,CAAC;AACF;AACA,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;AAC5C,CAAC,IAAIA,MAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACzB,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACtB,EAAE;AACF;AACA,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AACF;AACA,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,OAAO,KAAK;AACxC,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,+DAA+D,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAClH,EAAE;AACF;AACA,CAAC,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC/D,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,oEAAoE,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5H,EAAE;AACF;AACA,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE;AAC1C,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAIA,MAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClG,EAAE;AACF;AACA,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE;AACpB,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAIA,MAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE;AACF;AACA,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;AACzB,EAAE,OAAO,CAACA,MAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,EAAE;AACF;AACA,CAAC,OAAO,CAACA,MAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF;AACA2N,iBAAc,GAAG,OAAO,KAAK,EAAE,OAAO,KAAK;AAC3C,CAAC,OAAO,GAAG;AACX,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;AACpB,EAAE,GAAG,OAAO;AACZ,EAAE,CAAC;AACH;AACA,CAAC,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;AACtC,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,8DAA8D,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/G,EAAE;AACF;AACA,CAAC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;AACjE,EAAE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,EAAE,OAAO,WAAW,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/C,EAAE,CAAC,CAAC,CAAC;AACL;AACA,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AACF;sBACmB,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK;AAC1C,CAAC,OAAO,GAAG;AACX,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;AACpB,EAAE,GAAG,OAAO;AACZ,EAAE,CAAC;AACH;AACA,CAAC,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;AACtC,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,8DAA8D,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/G,EAAE;AACF;AACA,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACtH;AACA,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACnC;;;;AC1EA;AACA,SAAS,SAAS,EAAE,OAAO,EAAE;AAC7B,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AAC/B,MAAM,OAAO;AACb,MAAM,CAAC,OAAO,CAAC;AACf,CAAC;AACD;AACA,MAAM,KAAK,GAAG,GAAE;AAChB,MAAM,KAAK,GAAG,IAAG;AACjB,MAAM,MAAM,GAAG,KAAI;AACnB,MAAM,qBAAqB,GAAG,QAAO;AACrC,MAAM,yCAAyC,GAAG,OAAM;AACxD,MAAM,kCAAkC,GAAG,OAAM;AACjD,MAAM,mBAAmB,GAAG,SAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,MAAM,uBAAuB,GAAG,eAAc;AAC9C;AACA,MAAMC,OAAK,GAAG,IAAG;AACjB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW;AAChD,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;AAC7B;AACA,IAAI,cAAa;AACjB;AACA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK;AAClC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAC;AAC7C;AACA,MAAM,kBAAkB,GAAG,mBAAkB;AAC7C;AACA;AACA;AACA,MAAM,aAAa,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO;AAC5C,EAAE,kBAAkB;AACpB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7D,MAAM,KAAK;AACX;AACA;AACA,MAAM,KAAK;AACX,EAAC;AACD;AACA;AACA,MAAM,mBAAmB,GAAG,OAAO,IAAI;AACvC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,QAAO;AAC1B,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;AAC9C,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,GAAG;AAClB;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,IAAI,SAAS;AACb,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,QAAQ,KAAK;AACb,QAAQ,KAAK;AACb,GAAG;AACH;AACA;AACA,EAAE;AACF,IAAI,OAAO;AACX,IAAI,MAAM,KAAK;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,IAAI,gBAAgB;AACpB,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACzB,GAAG;AACH;AACA,EAAE;AACF;AACA,IAAI,WAAW;AACf,IAAI,MAAM,MAAM;AAChB,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,IAAI,KAAK;AACT,IAAI,MAAM,GAAG;AACb,GAAG;AACH;AACA;AACA,EAAE;AACF,IAAI,KAAK;AACT,IAAI,MAAM,KAAK;AACf,GAAG;AACH;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB;AACtB;AACA;AACA,IAAI,MAAM,aAAa;AACvB,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,IAAI,WAAW;AACf,IAAI,SAAS,gBAAgB,IAAI;AACjC;AACA,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA,UAAU,GAAG;AACb,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA,IAAI,yBAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB;AAC3B;AACA;AACA;AACA,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;AAC7B,GAAG;AACH;AACA,EAAE;AACF;AACA;AACA;AACA,IAAI,wBAAwB;AAC5B,IAAI,MAAM,MAAM;AAChB,GAAG;AACH;AACA,EAAE;AACF;AACA,IAAI,OAAO;AACX,IAAI,MAAM,MAAM;AAChB,GAAG;AACH;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,IAAI,+BAA+B;AACnC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,KAAK,UAAU,KAAK,MAAM;AACzE;AACA,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9D,QAAQ,KAAK,KAAK,GAAG;AACrB,UAAU,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AACpC;AACA;AACA;AACA,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACnD;AACA;AACA,YAAY,IAAI;AAChB,UAAU,IAAI;AACd,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA,IAAI,WAAW;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B;AACA,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACnB;AACA,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;AAC5B,GAAG;AACH;AACA;AACA,EAAE;AACF,IAAI,iBAAiB;AACrB,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK;AACf,MAAM,MAAM,MAAM,GAAG,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;AACtB;AACA;AACA;AACA,UAAU,QAAO;AACjB;AACA,MAAM,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;AAClC,KAAK;AACL,GAAG;AACH,EAAC;AACD;AACA;AACA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAC;AACtC;AACA;AACA,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,KAAK;AACrD,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,EAAC;AAC/B,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,OAAO,CAAC;AACZ,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM;AACjC,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzE,IAAI,OAAO;AACX,IAAG;AACH;AACA,EAAE,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU;AACzC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AAC7B,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;AACxB,EAAC;AACD;AACA,MAAM,QAAQ,GAAG,OAAO,IAAI,OAAO,OAAO,KAAK,SAAQ;AACvD;AACA;AACA,MAAM,YAAY,GAAG,OAAO,IAAI,OAAO;AACvC,KAAK,QAAQ,CAAC,OAAO,CAAC;AACtB,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC;AACA;AACA,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC;AAC/B;AACA,MAAM,YAAY,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAC;AAClE;AACA,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,CAAC;AACd,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,GAAG,OAAM;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,QAAO;AAC1B,IAAI,IAAI,CAAC,QAAQ,GAAG,SAAQ;AAC5B,IAAI,IAAI,CAAC,KAAK,GAAG,MAAK;AACtB,GAAG;AACH,CAAC;AACD;AACA,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK;AAC5C,EAAE,MAAM,MAAM,GAAG,QAAO;AACxB,EAAE,IAAI,QAAQ,GAAG,MAAK;AACtB;AACA;AACA,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAClC,IAAI,QAAQ,GAAG,KAAI;AACnB,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAC;AAC/B,GAAG;AACH;AACA,EAAE,OAAO,GAAG,OAAO;AACnB;AACA;AACA,GAAG,OAAO,CAAC,yCAAyC,EAAE,GAAG,CAAC;AAC1D;AACA;AACA,GAAG,OAAO,CAAC,kCAAkC,EAAE,GAAG,EAAC;AACnD;AACA,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAC;AACxD;AACA,EAAE,OAAO,IAAI,UAAU;AACvB,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,GAAG;AACH,EAAC;AACD;AACA,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACtC,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;AACzB,EAAC;AACD;AACA,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,KAAK;AACnD,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvB,IAAI,OAAO,OAAO;AAClB,MAAM,CAAC,iCAAiC,EAAE,YAAY,CAAC,EAAE,CAAC;AAC1D,MAAM,SAAS;AACf,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,OAAO,OAAO,CAAC,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC;AACvD,GAAG;AACH;AACA;AACA,EAAE,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACrC,IAAI,MAAM,CAAC,GAAG,qBAAoB;AAClC,IAAI,OAAO,OAAO;AAClB,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC;AAC/D,MAAM,UAAU;AAChB,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,IAAI;AACb,EAAC;AACD;AACA,MAAM,aAAa,GAAG,IAAI,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAC;AAChE;AACA,SAAS,CAAC,aAAa,GAAG,cAAa;AACvC,SAAS,CAAC,OAAO,GAAG,CAAC,IAAI,EAAC;AAC1B;AACA,MAAM,MAAM,CAAC;AACb,EAAE,WAAW,CAAC,CAAC;AACf,IAAI,UAAU,GAAG,IAAI;AACrB,GAAG,GAAG,EAAE,EAAE;AACV,IAAI,IAAI,CAAC,MAAM,GAAG,GAAE;AACpB,IAAI,IAAI,CAAC,WAAW,GAAG,WAAU;AACjC,IAAI,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC;AAClC,IAAI,IAAI,CAAC,UAAU,GAAE;AACrB,GAAG;AACH;AACA,EAAE,UAAU,CAAC,GAAG;AAChB,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAC;AAC3C,IAAI,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAC;AACzC,GAAG;AACH;AACA,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE;AACxB;AACA,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACxC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAC;AACtD,MAAM,IAAI,CAAC,MAAM,GAAG,KAAI;AACxB,MAAM,MAAM;AACZ,KAAK;AACL;AACA,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;AAC/B,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAC;AACxD,MAAM,IAAI,CAAC,MAAM,GAAG,KAAI;AACxB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAC;AAC5B,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAK;AACvB;AACA,IAAI,SAAS;AACb,MAAM,QAAQ,CAAC,OAAO,CAAC;AACvB,UAAU,YAAY,CAAC,OAAO,CAAC;AAC/B,UAAU,OAAO;AACjB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAC;AACrC;AACA;AACA;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,CAAC,UAAU,GAAE;AACvB,KAAK;AACL;AACA,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA;AACA,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE;AACvB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE;AAClC,IAAI,IAAI,OAAO,GAAG,MAAK;AACvB,IAAI,IAAI,SAAS,GAAG,MAAK;AACzB;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;AAChC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAI;AAC7B,MAAM;AACN,QAAQ,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS;AACvD,WAAW,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc;AAChE,QAAQ;AACR,QAAQ,MAAM;AACd,OAAO;AACP;AACA,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC;AAC3C;AACA,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,OAAO,GAAG,CAAC,SAAQ;AAC3B,QAAQ,SAAS,GAAG,SAAQ;AAC5B,OAAO;AACP,KAAK,EAAC;AACN;AACA,IAAI,OAAO;AACX,MAAM,OAAO;AACb,MAAM,SAAS;AACf,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,KAAK,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE;AACtD,IAAI,MAAM,IAAI,GAAG,YAAY;AAC7B;AACA,SAAS,SAAS,CAAC,OAAO,CAAC,YAAY,EAAC;AACxC;AACA,IAAI,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAC;AAC7C;AACA,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC;AACvD,GAAG;AACH;AACA,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE;AAC3C,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;AACvB,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC;AACxB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB;AACA;AACA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAACA,OAAK,EAAC;AAChC,KAAK;AACL;AACA,IAAI,MAAM,CAAC,GAAG,GAAE;AAChB;AACA;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACxB,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9D,KAAK;AACL;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;AAC1B,MAAM,MAAM,CAAC,IAAI,CAACA,OAAK,CAAC,GAAGA,OAAK;AAChC,MAAM,KAAK;AACX,MAAM,cAAc;AACpB,MAAM,MAAM;AACZ,MAAK;AACL;AACA;AACA,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO;AACvC;AACA;AACA,QAAQ,MAAM;AACd,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;AAC3C,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,OAAO;AAC7D,GAAG;AACH;AACA,EAAE,YAAY,CAAC,GAAG;AAClB,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACtC,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AACvD,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;AACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;AAClD,GAAG;AACH,CAAC;AACD;AACA,MAAM,OAAO,GAAG,OAAO,IAAI,IAAI,MAAM,CAAC,OAAO,EAAC;AAC9C;AACA,MAAM,WAAW,GAAG,MAAM,MAAK;AAC/B;AACA,MAAM,WAAW,GAAG,IAAI;AACxB,EAAE,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAC;AAC/D;AACA,OAAO,CAAC,WAAW,GAAG,YAAW;AACjC;AACA;AACA,OAAO,CAAC,OAAO,GAAG,QAAO;AACzB;IACA,MAAc,GAAG,QAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,OAAO,KAAK,WAAW;AAChC;AACA,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;AAChD,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;AACnC,GAAG;AACH,EAAE;AACF;AACA,EAAE,MAAM,SAAS,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AAChD,KAAK,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,MAAM,GAAG;AACT,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAC;AAC7B;AACA,EAAE,SAAS,CAAC,OAAO,GAAG,UAAS;AAC/B;AACA;AACA;AACA,EAAE,MAAM,8BAA8B,GAAG,aAAY;AACrD,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI;AAChC,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,OAAO,aAAa,CAAC,IAAI,EAAC;AAC1B;;ICnlBAhN,OAAc,GAAG,IAAI,IAAI;AACzB,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD;AACA,CAAC,IAAI,oBAAoB,IAAI,WAAW,EAAE;AAC1C,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACF;AACA,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;;ACTD,MAAM,YAAC8M,WAAS,CAAC,GAAGzR,qBAAe,CAAC;AACpC,MAAMuF,IAAE,GAAG7E,WAAa,CAAC;AACzB,MAAMqD,MAAI,GAAG9C,aAAe,CAAC;AAC7B,MAAM2Q,UAAQ,GAAGpP,GAAoB,CAAC;AACtC,MAAM,SAAS,GAAGQ,MAAiB,CAAC;AACpC,MAAM,KAAK,GAAGkG,OAAgB,CAAC;AAC/B;AACA,MAAM,cAAc,GAAG;AACvB,CAAC,oBAAoB;AACrB,CAAC,kBAAkB;AACnB,CAAC,gBAAgB;AACjB,CAAC,SAAS;AACV,CAAC,CAAC;AACF;AACA,MAAM,SAAS,GAAGuI,WAAS,CAAClM,IAAE,CAAC,QAAQ,CAAC,CAAC;AACzC;AACA,MAAM,qBAAqB,GAAG,IAAI,IAAI,MAAM,IAAI;AAChD,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC7B,EAAE,OAAO,GAAG,GAAGxB,MAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,EAAE;AACF;AACA,CAAC,OAAOA,MAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AAC7C,CAAC,MAAM,IAAI,GAAG,KAAK,CAACA,MAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAEA,MAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChF;AACA,CAAC,OAAO,OAAO;AACf,GAAG,KAAK,CAAC,OAAO,CAAC;AACjB,GAAG,MAAM,CAAC,OAAO,CAAC;AAClB,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACxC,GAAG,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;AACF;AACA,MAAM,YAAY,GAAG,KAAK,IAAI;AAC9B,CAAC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;AAC7B,CAAC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC3B,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3C,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG;AAChB,GAAG,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC1B,GAAG,CAAC,CAAC,CAAC;AACN,EAAE;AACF;AACA,CAAC,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AACF;AACA,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK;AAC7C,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC,IAAIA,MAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AACzB,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAChC,GAAG,OAAO,CAAC,CAAC;AACZ,GAAG;AACH;AACA,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,EAAE;AACF;AACA,CAAC,OAAOA,MAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AAChD,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAACA,MAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,GAAG,KAAK;AACrC,CAAC,MAAM,QAAQ,GAAGA,MAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnD;AACA,CAAC,OAAO;AACR,EAAE,GAAG;AACL,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK;AACnC,CAAC,MAAM,QAAQ,GAAGA,MAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,MAAM,OAAO,GAAGwB,IAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnD;AACA,CAAC,OAAO;AACR,EAAE,GAAG;AACL,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA,MAAM,gBAAgB,GAAG,CAAC;AAC1B,CAAC,MAAM,GAAG,EAAE;AACZ,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC,GAAG,EAAE,KAAK;AACX,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC;AACF;AACAsM,mBAAc,GAAG,MAAM,OAAO,IAAI;AAClC,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrC;AACA,CAAC,MAAM,KAAK,GAAG,MAAMD,UAAQ,CAAC,eAAe,EAAE;AAC/C,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/C,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG;AAClB,EAAE,CAAC,CAAC;AACJ;AACA,CAAC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC;AACA,CAAC,OAAO,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;wBACmB,GAAG,OAAO,IAAI;AACjC,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrC;AACA,CAAC,MAAM,KAAK,GAAGA,UAAQ,CAAC,IAAI,CAAC,eAAe,EAAE;AAC9C,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/C,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG;AAClB,EAAE,CAAC,CAAC;AACJ;AACA,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC;AACA,CAAC,OAAO,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACpD;;ACtHA,MAAM,CAAC,SAAS,CAAC,GAAG5R,qBAAiB,CAAC;AACtC;AACA,MAAM,eAAe,SAAS,SAAS,CAAC;AACxC,CAAC,WAAW,GAAG;AACf,EAAE,KAAK,CAAC;AACR,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,CAAC,CAAC;AACL,EAAE;AACF,CAAC;AACD;AACA,MAAM8R,cAAY,SAAS,eAAe,CAAC;AAC3C,CAAC,WAAW,CAAC,MAAM,EAAE;AACrB,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACxB,EAAE;AACF;AACA,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACtC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC1B,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,GAAG;AACH;AACA,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE;AACF,CAAC;AACD;AACA,MAAMC,cAAY,SAAS,eAAe,CAAC;AAC3C,CAAC,WAAW,GAAG;AACf,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3B,EAAE;AACF;AACA,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACtC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC/B,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE;AACF,CAAC;AACD;IACA,WAAc,GAAG;AACjB,eAACD,cAAY;AACb,eAACC,cAAY;AACb,CAAC;;AC5CD,MAAMxM,IAAE,GAAGvF,WAAa,CAAC;AACzB,MAAM,UAAU,GAAGU,YAAsB,CAAC;AAC1C,MAAM,MAAM,GAAGO,QAAiB,CAAC;AACjC,MAAM,QAAQ,GAAGuB,GAAoB,CAAC;AACtC,MAAM,OAAO,GAAGQ,iBAAmB,CAAC;AACpC,MAAM,SAAS,GAAGkG,mBAAsB,CAAC;AACzC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAGC,WAAyB,CAAC;AAC/D;AACA,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC;AACnC;AACA,MAAM,UAAU,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACjD;AACA,MAAM,mBAAmB,GAAG,QAAQ,IAAI;AACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,EAAE;AAC9D,EAAE,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;AAC1E,EAAE;AACF,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,CAAC,OAAO,GAAG,EAAE,KAAK;AACzC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACnB,EAAE,OAAO;AACT,EAAE;AACF;AACA,CAAC,IAAI,IAAI,CAAC;AACV,CAAC,IAAI;AACL,EAAE,IAAI,GAAG5D,IAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAClC,EAAE,CAAC,MAAM;AACT,EAAE,OAAO;AACT,EAAE;AACF;AACA,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AAC1B,EAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;AACpE,EAAE;AACF,CAAC,CAAC;AACF;AACA,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,YAAYA,IAAE,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACpE;AACA,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK;AACrD,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAC7B;AACA,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AACtB;AACA,CAAC,WAAW,GAAG;AACf,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,GAAG,WAAW;AAChB,EAAE,CAAC;AACH;AACA,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;AACpD,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;AAC3B,GAAG,SAAS;AACZ,GAAG;AACH;AACA,EAAE,MAAM,MAAM,GAAG,QAAQ;AACzB,IAAI,KAAK,CAAC,KAAK,CAAC;AAChB,IAAI,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAC1C,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC;AACA,EAAE,MAAM,OAAO,GAAG;AAClB,GAAG,GAAG,WAAW;AACjB,GAAG,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5C,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACrC,EAAE;AACF;AACA,CAAC,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AACF;AACA,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK;AAC/B,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACvB,EAAE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACjC,EAAE;AACF;AACA,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AACpD,EAAE,OAAO,GAAG;AACZ,GAAG,GAAG,OAAO;AACb,GAAG,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;AACxC,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,QAAQ,EAAE;AAChE,EAAE,OAAO,GAAG;AACZ,GAAG,GAAG,OAAO;AACb,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB;AACpC,GAAG,CAAC;AACJ,EAAE;AACF;AACA,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC;AACF;AACA,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtG;AACA,MAAM,aAAa,GAAG,OAAO,IAAI;AACjC,CAAC,OAAO,OAAO,IAAI,OAAO,CAAC,SAAS;AACpC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5D,EAAE,cAAc,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAM,UAAU,GAAG,IAAI,IAAI,IAAI,IAAI;AACnC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACxB,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,EAAE;AACnF,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAChD,EAAE;AACF;AACA,CAAC,OAAO;AACR,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,OAAO;AACT,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACAyM,gBAAc,GAAG,OAAO,QAAQ,EAAE,OAAO,KAAK;AAC9C,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxD;AACA,CAAC,MAAM,SAAS,GAAG,YAAY;AAC/B,EAAE,OAAO,OAAO,IAAI,OAAO,CAAC,SAAS;AACrC,GAAG,SAAS,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACxD,GAAG,cAAc,CAAC;AAClB,EAAE,CAAC;AACH;AACA,CAAC,MAAM,QAAQ,GAAG,YAAY;AAC9B,EAAE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI;AAC9D,GAAG,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,GAAG,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,GAAG,CAAC,CAAC,CAAC;AACN;AACA,EAAE,OAAO,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC;AAC9B,EAAE,CAAC;AACH;AACA,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1F;AACA,CAAC,OAAO,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC;AACF;qBACmB,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK;AAC7C,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxD;AACA,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;AAClB,CAAC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC/B,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;AACzB,EAAE;AACF;AACA,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AACvC;AACA,CAAC,IAAI,OAAO,GAAG,EAAE,CAAC;AAClB,CAAC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC3B,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3E,EAAE;AACF;AACA,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,EAAE;AACF;uBACqB,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK;AAC/C,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxD;AACA,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;AAClB,CAAC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC/B,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;AACzB,EAAE;AACF;AACA,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AACzC;AACA,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9E,GAAG,IAAI,CAAC,YAAY,CAAC;AACrB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;AACtB,EAAE;AACF;kCACgC,GAAG,kBAAkB;AACrD;yBACuB,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK,EAAE;AACnD,EAAE,MAAM,CAAC,QAAQ,CAAC;AAClB,EAAE,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;AAC/D;0BACwB,GAAG;;;;AC9K3B,MAAM,0BAA0B,SAAS,KAAK,CAAC,EAAE;AACjD;AACA;AACA,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAC1D;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACzB,IAAI,MAAM,IAAI,0BAA0B,CAAC,+CAA+C,CAAC,CAAC;AAC1F,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACrC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AAC7B,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAC1B,EAAE;AACF,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB;AACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;AACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;AACrC,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChG,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;AAC7B,IAAI,MAAM,IAAI,0BAA0B,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC;AACxF,GAAG;AACH;AACA,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AACD;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,QAAQ,IAAI,CAAC,IAAI;AACnB,IAAI,KAAK,iBAAiB;AAC1B,MAAM,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,KAAK,gBAAgB;AACzB,MAAM,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,KAAK,kBAAkB;AAC3B,MAAM,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,KAAK,SAAS,EAAE;AACpB,MAAM,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,KAAK;AACL,IAAI;AACJ,MAAM,OAAO,GAAG,CAAC;AACjB,GAAG;AACH,CAAC;AACD;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE;AACjD,EAAE,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC3B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACpC;AACA,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC5B,IAAI,MAAM,IAAI,0BAA0B;AACxC,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,yHAAyH,EAAE,OAAO,CAAC,CAAC;AAC1K,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC5B,IAAI,MAAM,IAAI,0BAA0B;AACxC,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,6GAA6G,EAAE,OAAO,CAAC,CAAC;AAC9J,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACzD,IAAI,MAAM,IAAI,0BAA0B;AACxC,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,yGAAyG,EAAE,OAAO,CAAC,CAAC;AAC1J,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA,EAAE,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AACtD,EAAE,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5C,IAAI,MAAM,IAAI,0BAA0B;AACxC,MAAM,CAAC;AACP,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC,uDAAuD,CAAC;AAChG,QAAQ,mFAAmF;AAC3F,OAAO,EAAE,OAAO,CAAC,CAAC;AAClB,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,IAAIjO,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACjC,IAAI,MAAM,IAAI,0BAA0B;AACxC,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,uEAAuE,EAAE,OAAO,CAAC,CAAC;AACxH,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;AACxE,EAAE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,wCAAwC;AAClD;AACA,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE;AACxB,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP;AACA,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACtC;AACA,MAAM,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAClC,MAAM,IAAI,EAAE,CAAC;AACb;AACA,MAAMgH,MAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,KAAK,EAAE,CAAC,IAAI,KAAK;AACzB,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAChD,YAAY,OAAO;AACnB,WAAW;AACX,UAAU,kBAAkB,IAAI,CAAC,CAAC;AAClC;AACA,UAAU,IAAI;AACd;AACA,YAAY,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChG;AACA,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB;AACA,cAAc,OAAO;AACrB,aAAa;AACb;AACA;AACA,YAAY,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAEhH,aAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,cAAc,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,aAAa,CAAC;AACd;AACA;AACA,YAAY,EAAE,GAAG,EAAE,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7C;AACA;AACA,YAAY,EAAE,CAAC,OAAO;AACtB,cAAc,CAAC,uCAAuC,EAAE,kBAAkB,CAAC;AAC3E;AACA,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzE,EAAE,CAAC;AACH;AACA;AACA;AACA,QAAQ,CAAC,CAAC;AACV,MAAM,CAAC;AACP,aAAa,CAAC;AACd;AACA;AACA,YAAY,EAAE,CAAC,SAAS;AACxB,cAAc,IAAI,CAAC,KAAK;AACxB,cAAc,IAAI,CAAC,KAAK,GAAG,CAAC;AAC5B,cAAc,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,EAAE,CAAC;AACrE,aAAa,CAAC;AACd,WAAW,CAAC,OAAO,KAAK,EAAE;AAC1B,YAAY,IAAI,KAAK,YAAY,0BAA0B,EAAE;AAC7D;AACA,cAAc,IAAI,WAAW,EAAE;AAC/B,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,eAAe,MAAM;AACrB,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,eAAe;AACf,aAAa,MAAM;AACnB,cAAc,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,CAAC,CAAC;AACT;AACA,MAAM,IAAI,EAAE,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;AAC3C,QAAQ,OAAO;AACf,UAAU,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE;AAC7B,UAAU,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC;AAC9B,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,cAAc,EAAE,IAAI;AAChC,YAAY,KAAK,EAAE,IAAI;AACvB,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,OAAO;AACP,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,GAAG,CAAC;AACJ;;AClMA,MAAM,SAAS,GAAG,uCAAuC,CAAA;AAEzD,MAAM,aAAa,GAAG,aAAa,CAAA;AAEnC;;;SAGgB,aAAa;IAC3B,IAAI,QAEH,CAAA;IAED,OAAO;QACL,IAAI,EAAE,eAAe;QAErB,UAAU;YACR,QAAQ,GAAG,EAAE,CAAA;SACd;QAED,SAAS,CAAC,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAA;aACZ;YAED,MAAM,GAAG,GAAG,IAAIqB,gBAAG,CAAC,EAAE,CAAC,CAAA;YACvB,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC5B,OAAO,IAAI,CAAA;aACZ;YAED,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC3C,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,IAAI,CAAA;aACZ;YAED,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;YACpC,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBAC9B,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAA;aACF;;YAGD,MAAM,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5D,MAAM,OAAO,GAAG,MAAM;kBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;kBAC7C,IAAI,CAAA;YACR,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAA;YACtB,OAAO,aAAa,GAAG,EAAE,CAAA;SAC1B;QAED,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBAChC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;gBACnC,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;aAC5B;SACF;KACF,CAAA;AACH;;AC/DA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;AAC7B,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAClC,EAAE,OAAO,OAAO,CAAC;AACjB,EAAE;AACF;AACA,CAAC,IAAI,OAAO,EAAE;AACd,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC;AACf,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,GAAG,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;AAC5C,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC;AACnD,IAAI;AACJ,GAAG,MAAM;AACT,GAAG,KAAK,GAAG,IAAI,OAAO,EAAE;AACxB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACvB,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AACrC,KAAK;AACL,IAAI;AACJ,GAAG;AACH,EAAE;AACF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AACtC,CAAC,MAAM,IAAI,KAAK;AAChB,EAAE,SAAS;AACX,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;AACnE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC;AACpD,EAAE,CAAC;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;AAC7B,CAAC,OAAO,KAAK,KAAK,IAAI,GAAG,GAAG;AAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK;AAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASb,SAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;AACpD,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;AAC7B;AACA,CAAC,IAAI,OAAO,EAAE;AACd,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC;AACpD;AACA,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAChD;AACA,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,GAAG,OAAO,MAAM,KAAK,GAAG,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxD,GAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;AACnD,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;AAC7C,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;AAC3C;AACA,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;AAC/B;AACA,EAAE,KAAK,GAAG,IAAI,OAAO,EAAE;AACvB,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC7B,GAAG,MAAM;AACT,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB,GAAG,OAAO,MAAM,KAAK,GAAG;AACxB,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzB,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,KAAK,GAAG,IAAI,OAAO,EAAE;AACvB,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7B,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC9C,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;AAC5C,QAAQ,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1C,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAI;AACJ,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D;AACA,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,KAAK,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;AAC7C,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI;AACJ,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5B,EAAE;AACF;;AC5EA;AACA;AACO,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAE1D,MAAM0N,SAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA;AACjC,MAAM/M,OAAK,GAAG,cAAc,CAAC,sBAAsB,EAAE;IACnD,eAAe,EAAE,IAAI;CACtB,CAAC,CAAA;SA2Bc,aAAa,CAAC,WAAmC;IAC/D,MAAM,EACJ,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,SAAS,EACT,cAAc,GAAG,KAAK,EACvB,GAAG,WAAW,CAAA;IACf,MAAM,cAAc,GAA2B;QAC7C,GAAG,WAAW;QACd,SAAS,EAAE,IAAI;KAChB,CAAA;IACD,IAAI,MAAiC,CAAA;IAErC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAA;IAExE,OAAO;QACL,IAAI,EAAE,cAAc;QAEpB,eAAe,CAAC,OAAO;YACrB,MAAM,GAAG,OAAO,CAAA;SACjB;QAED,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG;YACtC,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;gBACpC,OAAO,EAAE,CAAA;aACV;;YAGD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,oBAAoB,EAAE;gBACxD,OAAM;aACP;YAED,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,SAAS,KAAK,WAAW,CAAA;;YAGnD,MAAM,SAAS,GACb,WAAW;gBACX,WAAW,CAAC,MAAM;gBAClB,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;gBAClC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAA;YAE9C,MAAM,OAAO,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,CAAA;YAExD,IAAI,GAA2C,CAAA;;YAG/C,IAAI,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBACrC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;gBAC/B,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACnC+M,SAAO,IAAI/M,OAAK,CAAC,SAASzC,MAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAOA,MAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;;;gBAGhE,OAAO,GAAG,IAAI,MAAM,CAAA;aACrB;;;YAID,IAAI,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC/B,MAAM,MAAM,GAAGsB,aAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC9C,KAAK,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;oBACzCkO,SAAO,IAAI/M,OAAK,CAAC,SAASzC,MAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAOA,MAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBAChE,OAAO,GAAG,CAAA;iBACX;aACF;;YAGD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;gBAC5D,MAAM,OAAO,GAAG,QAAQ,GAAGsB,aAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;gBACjE,MAAM,MAAM,GAAGA,aAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;;gBAGxC,MAAM,gBAAgB,GAAGO,eAAa,CAAC,MAAM,CAAC,CAAA;gBAC9C,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC9D,IAAI,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;;;oBAGhD,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;oBACjE,IACE,CAAC,GAAG,GAAG,cAAc,CACnB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,MAAM,EACN,GAAG,CACJ;wBACD,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EACnC;wBACA,OAAO,GAAG,CAAA;qBACX;iBACF;gBAED,IACE,SAAS;qBACR,GAAG,GAAG,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EACjE;oBACA,OAAO,GAAG,CAAA;iBACX;gBAED,KAAK,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;oBACzC2N,SAAO,IAAI/M,OAAK,CAAC,cAAczC,MAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAOA,MAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBACrE,MAAM,GAAG,GAAG,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;oBACxD,IAAI,GAAG,EAAE;wBACP,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;wBACxB,OAAO;4BACL,EAAE,EAAE,GAAG;4BACP,iBAAiB,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;yBAC3C,CAAA;qBACF;oBACD,OAAO,GAAG,CAAA;iBACX;aACF;;YAGD,IAAIsB,aAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE;gBAC5DkO,SAAO,IAAI/M,OAAK,CAAC,QAAQzC,MAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAOA,MAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC/D,OAAO,GAAG,CAAA;aACX;;YAGD,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;gBACrB,OAAO;oBACL,EAAE;oBACF,QAAQ,EAAE,IAAI;iBACf,CAAA;aACF;;;YAID,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;gBACjB,OAAO,IAAI,CAAA;aACZ;;YAGD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACzB,IACE,KAAK;oBACL,MAAM;oBACN,CAAC,GAAG;qBACH,GAAG,GAAG,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,EACjD;oBACA,OAAO,GAAG,CAAA;iBACX;gBAED,IACE,SAAS;qBACR,GAAG,GAAG,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAC9D;oBACA,OAAO,GAAG,CAAA;iBACX;gBAED,KACG,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,GACpE;oBACA,OAAO,GAAG,CAAA;iBACX;;;gBAID,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;oBACjB,IAAI,GAAG,EAAE;wBACP,IAAI,aAAa,KAAK,IAAI,EAAE;4BAC1B,IAAI,OAAO,GAAG,mCAAmC,EAAE,GAAG,CAAA;4BACtD,IAAI,QAAQ,EAAE;gCACZ,OAAO,IAAI,mBAAmBsB,aAAI,CAAC,QAAQ,CACzC,OAAO,CAAC,GAAG,EAAE,EACb,QAAQ,CACT,GAAG,CAAA;6BACL;4BACD,OAAO,IAAI,wEAAwE,CAAA;4BACnF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;yBACpB;wBAED,OAAO;4BACL,EAAE;4BACF,QAAQ,EAAE,IAAI;yBACf,CAAA;qBACF;yBAAM;wBACL,IAAI,CAAC,KAAK,EAAE;4BACVmB,OAAK,CACH,+BAA+B,EAAE,qBAAqB;gCACpD,iBAAiBzC,MAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAChD,CAAA;yBACF;wBACD,OAAO,YAAY;8BACf,iBAAiB;8BACjB,GAAG,iBAAiB,IAAI,EAAE,EAAE,CAAA;qBACjC;iBACF;aACF;YAEDwP,SAAO,IAAI/M,OAAK,CAAC,iBAAiBzC,MAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;SACnD;QAED,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;gBACpC,OAAO,YAAY;sBACf,mBAAmB;sBACnB;;+BAEmB,EAAE,CAAC,KAAK,CACjC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAC7B;;GAEF,CAAA;aACI;SACF;KACF,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CACnB,MAAc,EACd,OAA+B,EAC/B,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,IAAI;IAEhB,IAAI,IAAI,GAAG,MAAM,CAAA;IACjB,IAAI,OAAO,GAAG,EAAE,CAAA;IAEhB,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACtC,IAAI,YAAY,GAAG,CAAC,EAAE;QACpB,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;KACnC;IACD,IAAI,YAAY,GAAG,CAAC,EAAE;QACpB,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;QACpC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;KACrC;IAED,IAAI,GAAuB,CAAA;IAC3B,KACG,GAAG,GAAG,cAAc,CACnB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,eAAe,CACxB,GACD;QACA,OAAO,GAAG,CAAA;KACX;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,IAAI,kBAAkB,EAAE;QAC1D,KACG,GAAG,GAAG,cAAc,CACnB,IAAI,GAAG,GAAG,EACV,OAAO,EACP,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,eAAe,CACxB,GACD;YACA,OAAO,GAAG,CAAA;SACX;KACF;IAED,KACG,GAAG,GAAG,cAAc,CACnB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,eAAe,CACxB,GACD;QACA,OAAO,GAAG,CAAA;KACX;AACH,CAAC;AAED,SAAS,cAAc,CACrB,IAAY,EACZ,OAAe,EACf,OAA+B,EAC/B,QAAiB,EACjB,SAAkB,EAClB,SAAkB,EAClB,eAAyB;IAEzB,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI;;;;QAIF8C,WAAE,CAAC,UAAU,CAAC,IAAI,EAAEA,WAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACtC,UAAU,GAAG,IAAI,CAAA;KAClB;IAAC,OAAO,CAAC,EAAE,GAAE;IACd,IAAI,UAAU,EAAE;QACd,IAAI,CAACA,WAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YACpC,OAAOjB,eAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAA;SACzD;aAAM,IAAI,QAAQ,EAAE;YACnB,IAAI,CAAC,eAAe,EAAE;gBACpB,MAAM,OAAO,GAAG,IAAI,GAAG,eAAe,CAAA;gBACtC,IAAIiB,WAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;;oBAE1B,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;oBACpC,OAAO,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;iBAC1D;aACF;YACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA;YACpD,IAAI,KAAK;gBAAE,OAAO,KAAK,GAAG,OAAO,CAAA;SAClC;KACF;IACD,IAAI,SAAS,EAAE;QACb,MAAM,QAAQ,GAAG,GAAGxB,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,GAAGA,aAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAA;QAC3E,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;KACvE;AACH,CAAC;AAEM,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAA;SAExC,cAAc,CAC5B,EAAU,EACV,QAA4B,EAC5B,OAA+B,EAC/B,SAAkB,EAClB,MAAsB,EACtB,GAAa;;IAEb,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;;;;IAKzC,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,CAAA;IACzD,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;;IAG1D,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAEhD,MAAM,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;IAEnE,IAAI,OAAe,CAAA;IACnB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACpC,OAAO,GAAG,IAAI,CAAA;KACf;SAAM,IACL,QAAQ;QACRA,aAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACzBwB,WAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACjC;QACA,OAAO,GAAGxB,aAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;KACjC;SAAM;QACL,OAAO,GAAG,IAAI,CAAA;KACf;;IAGD,IAAI,UAAU,EAAE;QACd,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;KACjD;IAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAE9C,IAAI,CAAC,GAAG,EAAE;QACR,OAAM;KACP;IAED,IAAI,QAAQ,GAAG,SAAS;UACpB,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC;UAC9C,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IACpD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAM;KACP;;IAED,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC7B,IAAI,OAAO,EAAE;;;QAGX,OAAO;YACL,EAAE,EAAE,QAAQ;YACZ,iBAAiB,EAAE,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;SAChD,CAAA;KACF;SAAM;QACL,IACE,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;YAClC,CAAC,MAAM;YACP,MAAM,CAAC,mBAAmB;YAC1B,CAAC,MAAM,CAAC,qBAAqB,EAC7B;YACA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;SACxB;;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,OAAO,GAAG,MAAA,MAAM,CAAC,MAAM,CAAC,YAAY,0CAAE,OAAO,CAAA;QACnD,IACE,CAAC,QAAQ;aACT,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;aAClC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;aACxB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YACrB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC/B;;;;;;YAMA,MAAM,WAAW,GAAG,MAAA,MAAM,CAAC,qBAAqB,0CAAE,WAAW,CAAA;YAC7D,IAAI,WAAW,IAAI,QAAQ,EAAE;gBAC3B,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,WAAW,EAAE,CAAC,CAAA;aACrD;SACF;aAAM;;;YAGL,MAAA,MAAM,CAAC,sBAAsB,+CAA7B,MAAM,EAA0B,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;SACnD;QACD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;KACxB;AACH,CAAC;SAEe,mBAAmB,CACjC,EAAU,EACV,MAAqB,EACrB,QAAiB;IAEjB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAA;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAA;IAE5C,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;QAAE,OAAM;IAEjC,MAAM,eAAe,GAAG,CAAC,aAA+C;QACtE,QACE,aAAa,CAAC,IAAI;YAClB,MAAM,OAAO,CAAC,WAAW,GACvB,aAAa,CAAC,YAAY,GAAG,aAAa,GAAG,EAC/C,EAAE,EACH;KACF,CAAA;;IAGD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACzC,IAAI,WAAW,EAAE;QACf,OAAO,eAAe,CAAC,WAAW,CAAC,CAAA;KACpC;IAED,IAAI,CAAC,QAAQ;QAAE,OAAM;;IAGrB,IAAI,WAA+B,CAAA;IAEnC,KAAK,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;;;;;QAKxE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,SAAQ;;QAGnC,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,IAAI;;gBAEF,WAAW,GAAGO,eAAa,CAACS,aAAW,CAAC,EAAE,EAAEhB,aAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;aACrE;YAAC,MAAM;;gBAEN,MAAK;aACN;SACF;;QAGD,IAAI,aAAa,CAAC,GAAG,KAAK,WAAW,EAAE;YACrC,OAAO,eAAe,CAAC,aAAa,CAAC,CAAA;SACtC;KACF;AACH,CAAC;AAoBD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAA;SAEnC,kBAAkB,CAChC,EAAU,EACV,OAAe;IAEf,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAA;IAC7B,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QAC9B,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;KAClC;IACD,IAAI;QACF,MAAM,OAAO,GAAGgB,aAAW,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QAC1D,OAAO,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;KAC1C;IAAC,OAAO,CAAC,EAAE;QACVkN,SAAO,IAAI/M,OAAK,CAAC,GAAGzC,MAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;KACxE;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,QAAQ,GAAG,OAAO;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC8C,WAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAGxB,aAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC5B,IAAI,cAAuC,CAAA;IAC3C,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE;QACpC,cAAc,GAAG,MAAM,WAAW,CAAA;KACnC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACrC,cAAc,GAAG0K,cAAY,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;KACtE;SAAM;QACL,cAAc,GAAG,MAAM,IAAI,CAAA;KAC5B;IAED,MAAM,GAAG,GAAgB;QACvB,GAAG,EAAE,MAAM;QACX,IAAI;QACJ,cAAc;QACd,kBAAkB,EAAE,EAAE;QACtB,mBAAmB,EAAE,EAAE;QACvB,gBAAgB,CAAC,GAAW,EAAE,KAAa,EAAE,SAAkB;YAC7D,IAAI,SAAS,EAAE;gBACb,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;aACpC;iBAAM;gBACL,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;aACrC;SACF;QACD,gBAAgB,CAAC,GAAW,EAAE,SAAkB;YAC9C,IAAI,SAAS,EAAE;gBACb,OAAO,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;aACnC;iBAAM;gBACL,OAAO,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;aACpC;SACF;KACF,CAAA;IACD,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC/B,OAAO,GAAG,CAAA;AACZ,CAAC;SAEe,mBAAmB,CACjC,EAAU,EACV,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,EAAe,EAC9D,OAA+B,EAC/B,SAAkB;;IAElB,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAC/C,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAA;KACd;IACD,IAAI;QACF,IAAI,UAAqC,CAAA;;;QAIzC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;SAC3D;;;;;QAMD,IAAI,SAAS,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;;;YAG7D,MAAM,YAAY,GAChB,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;kBAC5B,IAAI,CAAC,OAAO;kBACZnJ,UAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACjD,IAAI,YAAY,EAAE;;gBAEhB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;;;;;;;oBAOnE,MAAM,oBAAoB,GAAG,YAAY,CACvCvB,aAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAC5B,OAAO,CACR,CAAA;oBACD,IAAI,oBAAoB,EAAE;wBACxB,MAAM,OAAO,GAAGwB,WAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;wBAC9D,IACE,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;4BAClC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;4BACpC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EACnC;;4BAEA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;yBACzB;qBACF;iBACF;qBAAM;oBACL,UAAU,GAAG,YAAY,CAAA;iBAC1B;aACF;SACF;QAED,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,UAAU,IAAI,mBAAmB,EAAE;gBAC7D,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;oBACnC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;oBACxB,MAAK;iBACN;aACF;SACF;QAED,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,CAAA;;QAGlD,IACE,CAAA,MAAA,OAAO,CAAC,UAAU,0CAAG,CAAC,CAAC,MAAK,MAAM;YAClC,EAAC,MAAA,OAAO,CAAC,UAAU,0CAAE,QAAQ,CAACxB,aAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA,EACvD;YACA,UAAU,GAAG,EAAE,CAAA;YACf,OAAO,CAAC,eAAe,GAAG,IAAI,CAAA;SAC/B;;QAGD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;QACtC,IAAI,SAAS,IAAIuB,UAAQ,CAAC,YAAY,CAAC,EAAE;YACvC,UAAU,GAAG,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,UAAU,CAAA;SACzE;QAED,UAAU,GAAGvB,aAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACvC,MAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAE5D,IAAI,kBAAkB,EAAE;YACtBkO,SAAO;gBACL/M,OAAK,CACH,mBAAmBzC,MAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAOA,MAAK,CAAC,GAAG,CAC/C,kBAAkB,CACnB,EAAE,CACJ,CAAA;YACH,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAA;YACpD,OAAO,kBAAkB,CAAA;SAC1B;aAAM;YACL,mBAAmB,CAAC,EAAE,CAAC,CAAA;SACxB;KACF;IAAC,OAAO,CAAC,EAAE;QACV,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;KACnC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAU,EAAE,OAAgB;IACvD,MAAM,IAAI,KAAK,CACb,wCAAwC,EAAE,KAAK;QAC7C,kFAAkF;SACjF,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC,CACnC,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CACrB,GAAwB,EACxB,GAAW,EACX,OAA+B,EAC/B,SAAkB;IAElB,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,CAAA;IACxE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QACtB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;KAC1B;IACD,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;KACvC;IACD,OAAOyP,SAAe,CAAC,GAAG,EAAE,GAAG,EAAE;QAC/B,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,OAAO,CAAC,SAAS;QAC1B,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,EAAU,EACV,EACE,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,GAAG,EACH,IAAI,EACQ,EACd,OAA+B,EAC/B,SAAkB;IAElB,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IAC7C,IAAI,KAAK,EAAE;QACT,OAAO,KAAK,CAAA;KACb;IAED,IAAI,UAAU,GAA8B,EAAE,CAAA;IAC9C,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;;IAG7D,IAAI,YAAY,EAAE;QAChB,IAAI5M,UAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC1D,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;SAClE;aAAM;;YAEL,UAAU,GAAG,SAAS,CAAA;SACvB;QACD,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CACb,oBAAoB,UAAU,mCAAmC;gBAC/D,GAAGvB,aAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CACvC,CAAA;SACF;KACF;SAAM,IAAI,SAAS,IAAIuB,UAAQ,CAAC,YAAY,CAAC,EAAE;QAC9C,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAC5D,IAAI,MAAM,EAAE;YACV,UAAU,GAAG,MAAM,CAAA;SACpB;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE;YAC3B,QAAQ,kBAAkB,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAC;SACpD;KACF;IAED,IAAI,UAAU,EAAE;QACd,MAAM,QAAQ,GAAG,YAAY,CAC3BvB,aAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAC1B,OAAO,EACP,CAAC,YAAY;QACb,SAAS,CACV,CAAA;QACD,IAAI,QAAQ,EAAE;YACZkO,SAAO;gBACL/M,OAAK,CAAC,sBAAsBzC,MAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAOA,MAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACzE,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;YACzC,OAAO,QAAQ,CAAA;SAChB;KACF;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,EAAU,EACV,QAA4B,EAC5B,OAA+B,EAC/B,UAAmB;IAEnB,IAAI,GAAuB,CAAA;IAC3B,MAAM,GAAG,GAAG,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAChD,IAAI,GAAG,IAAI6C,UAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,GAAGX,OAAK,CAACZ,aAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;QACxE,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtE,IAAI,iBAAiB,EAAE;YACrB,MAAM,MAAM,GAAGA,aAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;YACpD,KAAK,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;gBACzCkO,SAAO;oBACL/M,OAAK,CAAC,oBAAoBzC,MAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAOA,MAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAClE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO;oBACL,EAAE,EAAE,GAAG;oBACP,iBAAiB,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;iBAC3C,CAAA;aACF;SACF;aAAM,IAAI,iBAAiB,KAAK,KAAK,EAAE;YACtC,OAAO,iBAAiB,CAAA;SACzB;KACF;AACH,CAAC;AAED;;;;;;;;AAQA,SAAS,mBAAmB,CAC1B,oBAA4B,EAC5B,GAAmC;IAEnC,MAAM,cAAc,GAAGsB,aAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;IAEjE,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,MAAM,aAAa,GAAGA,aAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC/C,IACE,cAAc,KAAK,aAAa;YAChC,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC;YACxD,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,EAC9D;YACA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;SAChB;KACF;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,GAAW,EAAE,MAAc;IACnE,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;AACtE;;ACr1BA;;;;;;;SAOgB,kBAAkB,CAChC,MAAsB,EACtB,YAAsB,EACtB,eAA4B,IAAI,GAAG,EAAE,EACrC,OAAoB,IAAI,GAAG,EAAE;;IAE7B,IAAI,CAAA,MAAA,MAAM,CAAC,GAAG,0CAAE,UAAU,MAAK,IAAI,EAAE;QACnC,OAAO,EAAE,CAAA;KACV;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IACvB,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IACrD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,EAAE,CAAA;KACV;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAClC,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC1E,MAAM,IAAI,GAAG,MAAM,CAAC;QAClB,GAAG,YAAY;QACf,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QACzC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;KACvC,CAAC,CAAA;IAEF,MAAM,cAAc,GAA2B;QAC7C,IAAI;QACJ,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,IAAI;KACd,CAAA;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IAErC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAChB,SAAQ;SACT;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEZ,IAAI,KAAyB,CAAA;QAC7B,IAAI,YAAoB,CAAA;QACxB,IAAI;YACF,KAAK,GAAG,MAAA,cAAc,CACpB,EAAE,EACF,SAAS,EACT,cAAc,EACd,IAAI,EACJ,SAAS,EACT,IAAI,CACL,0CAAE,EAAE,CAAA;YACL,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SACtD;QAAC,OAAO,CAAC,EAAE;;YAEV,SAAQ;SACT;QACD,IAAI,CAAC,KAAK,EAAE;;YAEV,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACpB,SAAQ;SACT;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;;;YAGnC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACnB,SAAQ;SACT;QACD,IAAI,KAAK,KAAK,YAAY,EAAE;;YAE1B,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;SACrB;aAAM;;YAEL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;;gBAE1B,SAAQ;aACT;;YAED,MAAM,OAAO,GAAGwB,WAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC/C,IAAI,mDAAmD,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACrE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;aACrB;SACF;KACF;IAED,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE;QAC5B,MAAM,OAAO,GAAGxB,aAAI,CAAC,OAAO,CAACgB,aAAW,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAA;QACrE,kBAAkB,CAChB;YACE,GAAG,MAAM;YACT,IAAI,EAAE,OAAO;SACd,EACD,YAAY,EACZ,YAAY,EACZ,IAAI,CACL,CAAA;KACF;IAED,IAAI,MAAA,MAAM,CAAC,GAAG,0CAAE,QAAQ,EAAE;QACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;KAC1D;IACD,IAAI,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC,CAAA;IACjC,IAAI,MAAA,MAAM,CAAC,GAAG,0CAAE,UAAU,EAAE;QAC1B,MAAM,MAAM,GAAG0J,cAAY,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE;YAC5D,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;KACjD;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC,CAAA;AAChD,CAAC;SAEe,uBAAuB,CACrC,EAAU,EACV,SAAmB;IAEnB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,IAAI,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,IAAI,CAAA;SACZ;;;QAGD,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC1K,aAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACvE,OAAO,IAAI,CAAA;SACZ;KACF,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;KACjC;SAAM;QACL,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;KAChB;AACH;;SC3IgB,iBAAiB,CAAC,MAAsB;;IAEtD,MAAM,WAAW,GAA6B,EAAE,CAAA;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IAExB,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,cAAc,CAAC,QAAQ,EAAE,MAAM;YAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;gBACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;;;oBAG1B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO;0BAC1B,IAAI;0BACJ,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBACvC,MAAM,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBACrD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;wBAC9B,MAAM,YAAY,GAAGO,eAAa,CAAC6N,eAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;wBAC7D,MAAM,YAAY,GAChB,WAAW,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;wBAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;4BAClB,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;yBACzC;wBACD,IAAI,QAAQ,EAAE;4BACZ,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI;gCACpB,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;6BAC/B,CAAC,CAAA;yBACH;wBACD,IAAI,UAAU,EAAE;4BACd,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI;gCACtB,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;6BAC/B,CAAC,CAAA;yBACH;qBACF;iBACF;aACF;YAED,IAAI,CAAC,QAAQ,CAAC;gBACZ,QAAQ,EAAE,mBAAmB;gBAC7B,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;aAC7C,CAAC,CAAA;SACH;KACF,CAAA;AACH;;ACpDA;AACA;AACA,IAAI,aAAa,GAAG;AACpB,EAAE,CAAC,EAAE,qNAAqN;AAC1N,EAAE,CAAC,EAAE,8CAA8C;AACnD,EAAE,CAAC,EAAE,MAAM;AACX,EAAE,MAAM,EAAE,wEAAwE;AAClF,EAAE,UAAU,EAAE,gBAAgB;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,oBAAoB,GAAG,6KAA6K,CAAC;AACzM;AACA,IAAI,QAAQ,GAAG;AACf,EAAE,CAAC,EAAE,oBAAoB;AACzB,EAAE,SAAS,EAAE,oBAAoB,GAAG,gBAAgB;AACpD,EAAE,CAAC,EAAE,oBAAoB,GAAG,0CAA0C;AACtE,CAAC,CAAC;AACF;AACA,IAAI,yBAAyB,GAAG,iBAAiB,CAAC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4BAA4B,GAAG,urIAAurI,CAAC;AAC3tI,IAAI,uBAAuB,GAAG,sjFAAsjF,CAAC;AACrlF;AACA,IAAI,uBAAuB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,GAAG,CAAC,CAAC;AACnF,IAAI,kBAAkB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,uBAAuB,GAAG,GAAG,CAAC,CAAC;AACxG;AACA,4BAA4B,GAAG,uBAAuB,GAAG,IAAI,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0BAA0B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9yC;AACA;AACA,IAAI,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC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;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AA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"}