@nlabs/lex 1.39.0 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +1 -0
- package/.vscode/settings.json +1 -1
- package/babel.config.json +13 -0
- package/dist/LexConfig.js +40 -36
- package/dist/commands/build.js +98 -52
- package/dist/commands/bulid.test.js +314 -5
- package/dist/commands/clean.js +4 -4
- package/dist/commands/clean.test.js +63 -0
- package/dist/commands/compile.js +32 -35
- package/dist/commands/compile.test.js +93 -0
- package/dist/commands/config.js +4 -4
- package/dist/commands/copy.js +1 -1
- package/dist/commands/create.js +10 -10
- package/dist/commands/dev.js +12 -12
- package/dist/commands/init.js +17 -17
- package/dist/commands/link.js +3 -3
- package/dist/commands/lint.js +53 -39
- package/dist/commands/migrate.js +4 -4
- package/dist/commands/publish.js +7 -7
- package/dist/commands/test.js +14 -14
- package/dist/commands/update.js +10 -10
- package/dist/commands/upgrade.js +7 -7
- package/dist/commands/versions.js +8 -9
- package/dist/commands/versions.test.js +49 -0
- package/dist/create/changelog.js +3 -3
- package/dist/lex.js +16 -16
- package/dist/lint.js +8 -0
- package/dist/utils/app.js +1 -1
- package/dist/utils/file.js +20 -10
- package/jest.config.cjs +55 -0
- package/jest.config.lex.js +27 -28
- package/jest.setup.ts +3 -0
- package/package.json +76 -71
- package/resolver.cjs +86 -0
- package/test/javascript.js +6 -0
- package/test/typescript.ts +6 -0
- package/tsconfig.build.json +1 -1
- package/tsconfig.json +1 -1
- package/tsconfig.template.json +5 -5
- package/webpack.config.js +78 -65
- package/dist/resolver.js +0 -70
- package/jest.config.js +0 -14
- package/jest.setup.js +0 -3
package/dist/lex.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { program } from "commander";
|
|
2
|
+
import { Option, program } from "commander";
|
|
3
3
|
import packageJson from "../package.json" assert { type: "json" };
|
|
4
4
|
import { build } from "./commands/build.js";
|
|
5
5
|
import { clean } from "./commands/clean.js";
|
|
@@ -16,35 +16,35 @@ import { test } from "./commands/test.js";
|
|
|
16
16
|
import { update } from "./commands/update.js";
|
|
17
17
|
import { upgrade } from "./commands/upgrade.js";
|
|
18
18
|
import { versions } from "./commands/versions.js";
|
|
19
|
-
program.command("build").option("-
|
|
19
|
+
program.command("build").option("--analyze", "It invokes webpack-bundle-analyzer plugin to get bundle information.", false).addOption(new Option("--bundler <name>", 'Bundler to use ("webpack" or "esbuild"). Default: "webpack".').choices(["webpack", "esbuild"]).default("webpack")).option("--config <path>", "Custom Webpack configuration file path (ie. webpack.config.js).").option("--config-name <value...>", "Name of the configuration to use.").option("--define-process-env-node-env <value>", "Sets process.env.NODE_ENV to the specified value. (Currently an alias for `--node-env`)").option("--devtool <value>", "A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).").option("--disable-interpret", "Disable interpret for loading the config file.", false).option("--entry <value...>", "A module that is loaded upon startup. Only the last one is exported.").option("--env <value>", "Environment passed to the configuration when it is a function.").option("--fail-on-warnings", "Stop webpack-cli process with non-zero exit code on warnings from webpack", false).option("--json <value>", "Prints result as JSON or store it in a file.").option("--lexConfig <path>", "Lex configuration file path (lex.config.js).").option("--merge", 'Merge two or more configurations using "webpack-merge".', false).addOption(new Option("--mode <type>", 'Webpack mode ("production" or "development"). Default: "development".').choices(["development", "production"]).default("development")).option("--name <value>", "Name of the configuration. Used when loading multiple configurations.").option("--no-devtool", 'Negative "devtool" option.', false).option("--no-stats", 'Negative "stats" option.', false).option("--no-target", 'Negative "target" option.', false).option("--no-watch", 'Negative "watch" option.', false).option("--no-watch-options-stdin", 'Negative "watch-options-stdin" option.', false).option("--node-env <value>", "Sets process.env.NODE_ENV to the specified value.").option("--output-path <value>", "The output directory as **absolute path** (required).").option("--quiet", "No Lex notifications printed in the console.", false).option("--remove", "Removes all files from the output directory before compiling.", false).option("--sourcePath <path>", "Source path").option("--stats <value>", "Stats options object or preset name.").option("--static", "Creates static HTML files when building app.", false).option("--target <value>", "Environment to build for. Environment to build for. An array of environments to build for all of them when possible.").option("--typescript", "Transpile as Typescript.", false).option("--variables <name>", `Environment variables to set in "process.env". (ie. "{NODE_ENV: 'production'}").`).option("--watch", "Watch for changes.", false).option("--watch-options-stdin", "Stop watching when stdin stream has ended.", false).action((cmd) => build(cmd, process.exit).then(() => {
|
|
20
20
|
}));
|
|
21
|
-
program.command("clean").option("
|
|
21
|
+
program.command("clean").option("--quiet", "No Lex notifications printed in the console.").option("--snapshots", 'Remove all "__snapshots__" directories.').action((cmd) => clean(cmd, process.exit).then(() => {
|
|
22
22
|
}));
|
|
23
|
-
program.command("config <type>").option("
|
|
23
|
+
program.command("config <type>").option("--quiet", "No Lex notifications printed in the console.").option("--json <path>", "Save output to json file.").action((type, cmd) => config(type, cmd, process.exit).then(() => {
|
|
24
24
|
}));
|
|
25
|
-
program.command("compile").option("
|
|
25
|
+
program.command("compile").option("--config <path>", "Transpiler configuration file path (ie. .flowconfig or tsconfig.json).").option("--environment <name>", 'Target environment. "node" or "web". Default: "node".').option("--lexConfig <path>", "Custom Lex configuration file path (ie. lex.config.js).").option("--outputPath <path>", "Output path").option("--remove", "Removes all files from the output directory before compiling.").option("--sourcePath <path>", "Source path").option("--typescript", "Transpile as Typescript.").option("--quiet", "No Lex notifications printed in the console.").option("--watch", "Watches for changes and compiles.").action((cmd) => compile(cmd, process.exit).then(() => {
|
|
26
26
|
}));
|
|
27
|
-
program.command("create <type>").option("
|
|
27
|
+
program.command("create <type>").option("--outputFile <path>", "Output filename.").option("--outputName <name>", "Output name.").option("--quiet", "No Lex notifications printed in the console.").option("--typescript", "Create Typescript version.").action((type, cmd) => create(type, cmd, process.exit).then(() => {
|
|
28
28
|
}));
|
|
29
|
-
program.command("dev").option("
|
|
29
|
+
program.command("dev").option("--bundleAnalyzer", "Run bundle analyzer.").option("--config <path>", "Custom Webpack configuration file path (ie. webpack.config.js).").option("--lexConfig <path>", "Custom Lex configuration file path (ie. lex.config.js).").option("--open", "Automatically open dev server in a new browser window.").option("--outputPath <path>", "Output path").option("--quiet", "No Lex notifications printed in the console.").option("--remove", "Removes all files from the output directory before compiling.").option("--sourcePath <path>", "Source path").option("--typescript", "Transpile as Typescript.").option("--variables <name>", `Environment variables to set in "process.env". (ie. "{NODE_ENV: 'development'}").`).option("--watch", "Watch for changes.").action((cmd) => dev(cmd, process.exit).then(() => {
|
|
30
30
|
}));
|
|
31
|
-
program.command("init <appName> [packageName]").option("
|
|
31
|
+
program.command("init <appName> [packageName]").option("--install", "Install dependencies.").addOption(new Option("--package-manager <manager>", "Which package manager to use. Default: npm").choices(["npm", "yarn"]).default("npm")).option("--quiet", "No Lex notifications printed in the console.").option("--typescript", "Use a Typescript based app.").action((appName, packageName, cmd) => init(appName, packageName, cmd, process.exit).then(() => {
|
|
32
32
|
}));
|
|
33
|
-
program.command("linked").option("
|
|
33
|
+
program.command("linked").option("--quiet", "No Lex notifications printed in the console.").action((cmd) => linked(cmd, process.exit).then(() => {
|
|
34
34
|
}));
|
|
35
|
-
program.command("lint").option("--cache", "Only check changed files. Default: false.").option("--cache-location <path>", "Path to the cache file or directory.").option("--color", "Force enabling of color.").option("--config <path>", "Use this configuration, overriding .eslintrc.* config options if present.").option("--debug", "Output debugging information.").option("--env-info", "Output execution environment information. Default: false.").option("--env <name>", "Specify environments.").option("--ext <type>", "Specify JavaScript file extensions. Default: .js.").option("--fix", "Automatically fix problems.").option("--fix-dry-run", "Automatically fix problems without saving the changes to the file system.").option("--fix-type <type>", "Specify the types of fixes to apply (problem, suggestion, layout).").option("--format <name>", "Use a specific output format. Default: stylish.").option("--global <variables>", "Define global variables.").option("--ignore-path <path>", "Specify path of ignore file.").option("--ignore-pattern <pattern>", "Pattern of files to ignore (in addition to those in .eslintignore).").option("--init", "Run config initialization wizard. Default: false.").option("--max-warnings <num>", "Number of warnings to trigger nonzero exit code. Default: -1.").option("--no-color", "Force disabling of color.").option("--no-eslintrc", "Disable use of configuration from .eslintrc.*.").option("--no-ignore", "Disable use of ignore files and patterns.").option("--no-inline-config", "Prevent comments from changing config or rules.").option("--output-file <path>", "Specify file to write report to.").option("--parser <name>", "Specify the parser to be used.").option("--parser-options <options>", "Specify parser options.").option("--plugin <plugins>", "Specify plugins.").option("--print-config <path>", "Print the configuration for the given file.").option("
|
|
35
|
+
program.command("lint").option("--cache", "Only check changed files. Default: false.", false).option("--cache-location <path>", "Path to the cache file or directory.").option("--color", "Force enabling of color.", false).option("--config <path>", "Use this configuration, overriding .eslintrc.* config options if present.").option("--debug", "Output debugging information.", false).option("--env-info", "Output execution environment information. Default: false.", false).option("--env <name>", "Specify environments.").option("--ext <type>", "Specify JavaScript file extensions. Default: .js.").option("--fix", "Automatically fix problems.", false).option("--fix-dry-run", "Automatically fix problems without saving the changes to the file system.", false).option("--fix-type <type>", "Specify the types of fixes to apply (problem, suggestion, layout).").option("--format <name>", "Use a specific output format. Default: stylish.").option("--global <variables>", "Define global variables.").option("--ignore-path <path>", "Specify path of ignore file.").option("--ignore-pattern <pattern>", "Pattern of files to ignore (in addition to those in .eslintignore).").option("--init", "Run config initialization wizard. Default: false.", false).option("--max-warnings <num>", "Number of warnings to trigger nonzero exit code. Default: -1.").option("--no-color", "Force disabling of color.", false).option("--no-eslintrc", "Disable use of configuration from .eslintrc.*.", false).option("--no-ignore", "Disable use of ignore files and patterns.", false).option("--no-inline-config", "Prevent comments from changing config or rules.", false).option("--output-file <path>", "Specify file to write report to.").option("--parser <name>", "Specify the parser to be used.").option("--parser-options <options>", "Specify parser options.").option("--plugin <plugins>", "Specify plugins.").option("--print-config <path>", "Print the configuration for the given file.").option("--quiet", "No Lex notifications printed in the console.", false).option("--report-unused-disable-directives", "Adds reported errors for unused eslint-disable directives.", false).option("--resolve-plugins-relative-to <path>", "A folder where plugins should be resolved from.").option("--rule <path>", "Specify rules.").option("--rulesdir <path>", "Use additional rules from this directory.").option("--stdin", "Lint code provided on <STDIN> - Default: false.", false).option("--stdin-filename <name>", "Specify filename to process STDIN as.").action((cmd) => lint(cmd, process.exit).then(() => {
|
|
36
36
|
}));
|
|
37
37
|
program.command("migrate").option("-q, --quiet", "No Lex notifications printed in the console.").action((cmd) => migrate(cmd, process.exit).then(() => {
|
|
38
38
|
}));
|
|
39
|
-
program.command("publish").
|
|
39
|
+
program.command("publish").addOption(new Option("--bump <type>", 'Increments the version. Types include: major, minor, patch, beta, alpha, rc. Default: "patch".').choices(["major", "minor", "patch", "beta", "alpha", "rc"]).default("patch")).option("--new-version <versionNumber>", "Publish as a specific version.").option("--otp <code>", "Provide a two-factor code.").addOption(new Option("--package-manager <manager>", "Which package manager to use. Default: npm").choices(["npm", "yarn"]).default("npm")).option("--private", "Publishes the module as restricted.").option("--quiet", "No Lex notifications printed in the console.").option("--tag <tag>", "Registers the published package with the given tag.").action((cmd) => publish(cmd, process.exit).then(() => {
|
|
40
40
|
}));
|
|
41
|
-
program.command("test").option("
|
|
41
|
+
program.command("test").option("--bail", "Exit the test suite immediately upon the first failing test suite.").option("--changedFilesWithAncestor", "Runs tests related to the current changes and the changes made in the last commit.").option("--changedSince", "Runs tests related the changes since the provided branch.").option("--ci", "When this option is provided, Jest will assume it is running in a CI environment.").option("--clearCache", "Clear Jest cache.").option("--collectCoverageFrom <glob>", "A glob pattern relative to matching the files that coverage info needs to be collected from.").option("--colors", "Forces test results output highlighting even if stdout is not a TTY.").option("--config <path>", "Custom Jest configuration file path (ie. jest.config.js).").option("--debug", "Print debugging info about your Jest config.").option("--detectOpenHandles", "Attempt to collect and print open handles preventing Jest from exiting cleanly").option("--environment <name>", 'Target environment. "node" or "web". Default: "node".').option("--env", "The test environment used for all tests. This can point to any file or node module. Examples: jsdom, node or path/to/my-environment.js.").option("--errorOnDeprecated", "Make calling deprecated APIs throw helpful error messages.").option("--expand", "Use this flag to show full diffs and errors instead of a patch.").option("--forceExit", "Force Jest to exit after all tests have completed running.").option("--json", "Prints the test results in JSON.").option("--lastCommit", "Run all tests affected by file changes in the last commit made.").option("--lexConfig <path>", "Custom Lex configuration file path (ie. lex.config.js).").option("--listTests", "Lists all tests as JSON that Jest will run given the arguments, and exits.").option("--logHeapUsage", "Logs the heap usage after every test.").option("--maxWorkers <num>", "Specifies the maximum number of workers the worker-pool will spawn for running tests. ").option("--noStackTrace", "Disables stack trace in test results output.").option("--notify", "Activates notifications for test results.").option("--onlyChanged", "un based on which files have changed in the current repository. ").option("--outputFile <filename>", "Write test results to a file when the --json option is also specified.").option("--passWithNoTests", "Allows the test suite to pass when no files are found.").option("--quiet", "No Lex notifications printed in the console.").option("--runInBand", "Run all tests serially in the current process, rather than creating a worker pool of child processes that run tests.").option("--setup <path>", "Jest setup file path.").option("--showConfig", "Print your Jest config and then exits.").option("--silent", "Prevent tests from printing messages through the console.").option("--testLocationInResults", "Adds a location field to test results.").option("--testNamePattern <regex>", "Run only tests with a name that matches the regex. ").option("--testPathPattern <regex>", "A regexp pattern string that is matched against all tests paths before executing the test.").option("--typescript", "Transpile as Typescript.").option("--update", 'Update snapshots. Runs "jest --updateSnapshots"').option("--useStderr", "Divert all output to stderr.").option("--verbose", "Display individual test results with the test suite hierarchy.").option("--watch <path>", "Watch files for changes and rerun tests related to changed files.").option("--watchAll", "Watch files for changes and rerun all tests when something changes.").action((cmd) => test(cmd, process.exit).then(() => {
|
|
42
42
|
}));
|
|
43
|
-
program.command("update").option("
|
|
43
|
+
program.command("update").option("--interactive", "Choose which packages to update.").addOption(new Option("--package-manager <manager>", "Which package manager to use. Default: npm").choices(["npm", "yarn"]).default("npm")).option("--quiet", "No Lex notifications printed in the console.").option("--registry", "Add a custom registry url.").action((cmd) => update(cmd, process.exit).then(() => {
|
|
44
44
|
}));
|
|
45
|
-
program.command("upgrade").
|
|
45
|
+
program.command("upgrade").addOption(new Option("--package-manager <manager>", "Which package manager to use. Default: npm").choices(["npm", "yarn"]).default("npm")).option("--quiet", "No Lex notifications printed in the console.").action((cmd) => upgrade(cmd, process.exit).then(() => {
|
|
46
46
|
}));
|
|
47
|
-
program.command("versions").option("
|
|
47
|
+
program.command("versions").option("--json", "Print the version as a JSON object.").action((cmd) => versions(cmd, process.exit).then(() => {
|
|
48
48
|
}));
|
|
49
49
|
program.version(packageJson.version).parse(process.argv);
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cHJvZ3JhbX0gZnJvbSAnY29tbWFuZGVyJztcblxuaW1wb3J0IHBhY2thZ2VKc29uIGZyb20gJy4uL3BhY2thZ2UuanNvbicgYXNzZXJ0IHt0eXBlOiAnanNvbid9O1xuaW1wb3J0IHtidWlsZH0gZnJvbSAnLi9jb21tYW5kcy9idWlsZC5qcyc7XG5pbXBvcnQge2NsZWFufSBmcm9tICcuL2NvbW1hbmRzL2NsZWFuLmpzJztcbmltcG9ydCB7Y29tcGlsZX0gZnJvbSAnLi9jb21tYW5kcy9jb21waWxlLmpzJztcbmltcG9ydCB7Y29uZmlnfSBmcm9tICcuL2NvbW1hbmRzL2NvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi9jb21tYW5kcy9jcmVhdGUuanMnO1xuaW1wb3J0IHtkZXZ9IGZyb20gJy4vY29tbWFuZHMvZGV2LmpzJztcbmltcG9ydCB7aW5pdH0gZnJvbSAnLi9jb21tYW5kcy9pbml0LmpzJztcbmltcG9ydCB7bGlua2VkfSBmcm9tICcuL2NvbW1hbmRzL2xpbmsuanMnO1xuaW1wb3J0IHtsaW50fSBmcm9tICcuL2NvbW1hbmRzL2xpbnQuanMnO1xuaW1wb3J0IHttaWdyYXRlfSBmcm9tICcuL2NvbW1hbmRzL21pZ3JhdGUuanMnO1xuaW1wb3J0IHtwdWJsaXNofSBmcm9tICcuL2NvbW1hbmRzL3B1Ymxpc2guanMnO1xuaW1wb3J0IHt0ZXN0fSBmcm9tICcuL2NvbW1hbmRzL3Rlc3QuanMnO1xuaW1wb3J0IHt1cGRhdGV9IGZyb20gJy4vY29tbWFuZHMvdXBkYXRlLmpzJztcbmltcG9ydCB7dXBncmFkZX0gZnJvbSAnLi9jb21tYW5kcy91cGdyYWRlLmpzJztcbmltcG9ydCB7dmVyc2lvbnN9IGZyb20gJy4vY29tbWFuZHMvdmVyc2lvbnMuanMnO1xuXG4vLyBDb21tYW5kc1xucHJvZ3JhbS5jb21tYW5kKCdidWlsZCcpXG4gIC5vcHRpb24oJy1jLCAtLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLWwsIC0tbGV4Q29uZmlnIDxwYXRoPicsICdMZXggY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1tLCAtLW1vZGUgPHR5cGU+JywgJ1dlYnBhY2sgbW9kZSAoXCJwcm9kdWN0aW9uXCIgb3IgXCJkZXZlbG9wbWVudFwiKS4gRGVmYXVsdDogXCJkZXZlbG9wbWVudFwiLicsIC9eKGRldmVsb3BtZW50fHByb2R1Y3Rpb24pJC9pLCAnZGV2ZWxvcG1lbnQnKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1yLCAtLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLXMsIC0tc3RhdGljJywgJ0NyZWF0ZXMgc3RhdGljIEhUTUwgZmlsZXMgd2hlbiBidWlsZGluZyBhcHAuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctdiwgLS12YXJpYWJsZXMgPG5hbWU+JywgJ0Vudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gXCJwcm9jZXNzLmVudlwiLiAoaWUuIFwie05PREVfRU5WOiBcXCdwcm9kdWN0aW9uXFwnfVwiKS4nKVxuICAub3B0aW9uKCctdywgLS13YXRjaCcsICdXYXRjaCBmb3IgY2hhbmdlcy4nKVxuICAub3B0aW9uKCctLWJ1bmRsZXIgPG5hbWU+JywgJ0J1bmRsZXIgdG8gdXNlIChcIndlYnBhY2tcIiBvciBcImVzYnVpbGRcIikuIERlZmF1bHQ6IFwid2VicGFja1wiLicsIC9eKHdlYnBhY2t8ZXNidWlsZCkkL2ksICd3ZWJwYWNrJylcbiAgLm9wdGlvbignLS1zb3VyY2VQYXRoIDxwYXRoPicsICdTb3VyY2UgcGF0aCcpXG4gIC5vcHRpb24oJy0tb3V0cHV0UGF0aCA8cGF0aD4nLCAnT3V0cHV0IHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dENodW5rRmlsZW5hbWUgPGZpbGVuYW1lPicsICdUaGUgb3V0cHV0IGZpbGVuYW1lIGZvciBhZGRpdGlvbmFsIGNodW5rcy4nKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGVuYW1lIDxmaWxlbmFtZT4nLCAnVGhlIG91dHB1dCBmaWxlbmFtZSBvZiB0aGUgYnVuZGxlLiBEZWZhdWx0OiBcIltuYW1lXS5qc1wiLicpXG4gIC5vcHRpb24oJy0tb3V0cHV0SnNvbnBGdW5jdGlvbiA8ZnVuYz4nLCAnVGhlIG5hbWUgb2YgdGhlIEpTT05QIGZ1bmN0aW9uIHVzZWQgZm9yIGNodW5rIGxvYWRpbmcuIERlZmF1bHQ6IFwid2VicGFja0pzb25wXCIuJylcbiAgLm9wdGlvbignLS1vdXRwdXRMaWJyYXJ5IDxsaWJyYXJ5PicsICdFeHBvc2UgdGhlIGV4cG9ydHMgb2YgdGhlIGVudHJ5IHBvaW50IGFzIGxpYnJhcnkuJylcbiAgLm9wdGlvbignLS1vdXRwdXRMaWJyYXJ5VGFyZ2V0IDx0YXJnZXQ+JywgJ1RoZSB0eXBlIGZvciBleHBvc2luZyB0aGUgZXhwb3J0cyBvZiB0aGUgZW50cnkgcG9pbnQgYXMgbGlicmFyeS4gRGVmYXVsdDogXCJ2YXJcIi4nKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGhJbmZvIDxoYXNJbmZvPicsICdUaGUgb3V0cHV0IGZpbGVuYW1lIGZvciBhZGRpdGlvbmFsIGNodW5rcy4gRGVmYXVsdDogZmFsc2UnKVxuICAub3B0aW9uKCctLW91dHB1dFB1YmxpY1BhdGggPHBhdGg+JywgJ1RoZSBwdWJsaWMgcGF0aCBmb3IgdGhlIGFzc2V0cy4gRGVmYXVsdDogXCIvXCInKVxuICAub3B0aW9uKCctLW91dHB1dFNvdXJjZU1hcEZpbGVuYW1lIDxmaWxlbmFtZT4nLCAnVGhlIG91dHB1dCBmaWxlbmFtZSBmb3IgdGhlIFNvdXJjZU1hcC4gRGVmYXVsdDogXCJbbmFtZV0ubWFwXCInKVxuICAub3B0aW9uKCctLWJ1aWxkRGVsaW1pdGVyIDxkZWxpbWl0ZXI+JywgJ0Rpc3BsYXkgY3VzdG9tIHRleHQgYWZ0ZXIgYnVpbGQgb3V0cHV0LiBEZWZhdWx0OiBcIj09PSBCdWlsZCBkb25lID09PVwiJylcbiAgLmFjdGlvbigoY21kKSA9PiBidWlsZChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NsZWFuJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctcywgLS1zbmFwc2hvdHMnLCAnUmVtb3ZlIGFsbCBcIl9fc25hcHNob3RzX19cIiBkaXJlY3Rvcmllcy4nKVxuICAuYWN0aW9uKChjbWQpID0+IGNsZWFuKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY29uZmlnIDx0eXBlPicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1qc29uIDxwYXRoPicsICdTYXZlIG91dHB1dCB0byBqc29uIGZpbGUuJylcbiAgLmFjdGlvbigodHlwZSwgY21kKSA9PiBjb25maWcodHlwZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjb21waWxlJylcbiAgLm9wdGlvbignLWMsIC0tY29uZmlnIDxwYXRoPicsICdUcmFuc3BpbGVyIGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gLmZsb3djb25maWcgb3IgdHNjb25maWcuanNvbikuJylcbiAgLm9wdGlvbignLWUsIC0tZW52aXJvbm1lbnQgPG5hbWU+JywgJ1RhcmdldCBlbnZpcm9ubWVudC4gXCJub2RlXCIgb3IgXCJ3ZWJcIi4gRGVmYXVsdDogXCJub2RlXCIuJylcbiAgLm9wdGlvbignLWwsIC0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLXIsIC0tcmVtb3ZlJywgJ1JlbW92ZXMgYWxsIGZpbGVzIGZyb20gdGhlIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIGNvbXBpbGluZy4nKVxuICAub3B0aW9uKCctdCwgLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2gnLCAnV2F0Y2hlcyBmb3IgY2hhbmdlcyBhbmQgY29tcGlsZXMuJylcbiAgLm9wdGlvbignLS1zb3VyY2VQYXRoIDxwYXRoPicsICdTb3VyY2UgcGF0aCcpXG4gIC5vcHRpb24oJy0tb3V0cHV0UGF0aCA8cGF0aD4nLCAnT3V0cHV0IHBhdGgnKVxuICAuYWN0aW9uKChjbWQpID0+IGNvbXBpbGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjcmVhdGUgPHR5cGU+JylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctdCwgLS10eXBlc2NyaXB0JywgJ0NyZWF0ZSBUeXBlc2NyaXB0IHZlcnNpb24uJylcbiAgLm9wdGlvbignLS1vdXRwdXRGaWxlIDxwYXRoPicsICdPdXRwdXQgZmlsZW5hbWUuJylcbiAgLm9wdGlvbignLS1vdXRwdXROYW1lIDxuYW1lPicsICdPdXRwdXQgbmFtZS4nKVxuICAuYWN0aW9uKCh0eXBlLCBjbWQpID0+IGNyZWF0ZSh0eXBlLCBjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2RldicpXG4gIC5vcHRpb24oJy1jLCAtLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLWwsIC0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLW8sIC0tb3BlbicsICdBdXRvbWF0aWNhbGx5IG9wZW4gZGV2IHNlcnZlciBpbiBhIG5ldyBicm93c2VyIHdpbmRvdy4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1yLCAtLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctdiwgLS12YXJpYWJsZXMgPG5hbWU+JywgJ0Vudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gXCJwcm9jZXNzLmVudlwiLiAoaWUuIFwie05PREVfRU5WOiBcXCdkZXZlbG9wbWVudFxcJ31cIikuJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJylcbiAgLm9wdGlvbignLS1idW5kbGVBbmFseXplcicsICdSdW4gYnVuZGxlIGFuYWx5emVyLicpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLmFjdGlvbigoY21kKSA9PiBkZXYoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdpbml0IDxhcHBOYW1lPiBbcGFja2FnZU5hbWVdJylcbiAgLm9wdGlvbignLWksIC0taW5zdGFsbCcsICdJbnN0YWxsIGRlcGVuZGVuY2llcy4nKVxuICAub3B0aW9uKCctbSwgLS1wYWNrYWdlLW1hbmFnZXIgPG1hbmFnZXI+JywgJ1doaWNoIHBhY2thZ2UgbWFuYWdlciB0byB1c2UuIERlZmF1bHQ6IG5wbScsIC9eKG5wbXx5YXJuKSQvaSwgJ25wbScpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdVc2UgYSBUeXBlc2NyaXB0IGJhc2VkIGFwcC4nKVxuICAuYWN0aW9uKChhcHBOYW1lLCBwYWNrYWdlTmFtZSwgY21kKSA9PiBpbml0KGFwcE5hbWUsIHBhY2thZ2VOYW1lLCBjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2xpbmtlZCcpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFjdGlvbigoY21kKSA9PiBsaW5rZWQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW50JylcbiAgLm9wdGlvbignLS1jYWNoZScsICdPbmx5IGNoZWNrIGNoYW5nZWQgZmlsZXMuIERlZmF1bHQ6IGZhbHNlLicpXG4gIC5vcHRpb24oJy0tY2FjaGUtbG9jYXRpb24gPHBhdGg+JywgJ1BhdGggdG8gdGhlIGNhY2hlIGZpbGUgb3IgZGlyZWN0b3J5LicpXG4gIC5vcHRpb24oJy0tY29sb3InLCAnRm9yY2UgZW5hYmxpbmcgb2YgY29sb3IuJylcbiAgLm9wdGlvbignLS1jb25maWcgPHBhdGg+JywgJ1VzZSB0aGlzIGNvbmZpZ3VyYXRpb24sIG92ZXJyaWRpbmcgLmVzbGludHJjLiogY29uZmlnIG9wdGlvbnMgaWYgcHJlc2VudC4nKVxuICAub3B0aW9uKCctLWRlYnVnJywgJ091dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uJylcbiAgLm9wdGlvbignLS1lbnYtaW5mbycsICdPdXRwdXQgZXhlY3V0aW9uIGVudmlyb25tZW50IGluZm9ybWF0aW9uLiBEZWZhdWx0OiBmYWxzZS4nKVxuICAub3B0aW9uKCctLWVudiA8bmFtZT4nLCAnU3BlY2lmeSBlbnZpcm9ubWVudHMuJylcbiAgLm9wdGlvbignLS1leHQgPHR5cGU+JywgJ1NwZWNpZnkgSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbnMuIERlZmF1bHQ6IC5qcy4nKVxuICAub3B0aW9uKCctLWZpeCcsICdBdXRvbWF0aWNhbGx5IGZpeCBwcm9ibGVtcy4nKVxuICAub3B0aW9uKCctLWZpeC1kcnktcnVuJywgJ0F1dG9tYXRpY2FsbHkgZml4IHByb2JsZW1zIHdpdGhvdXQgc2F2aW5nIHRoZSBjaGFuZ2VzIHRvIHRoZSBmaWxlIHN5c3RlbS4nKVxuICAub3B0aW9uKCctLWZpeC10eXBlIDx0eXBlPicsICdTcGVjaWZ5IHRoZSB0eXBlcyBvZiBmaXhlcyB0byBhcHBseSAocHJvYmxlbSwgc3VnZ2VzdGlvbiwgbGF5b3V0KS4nKVxuICAub3B0aW9uKCctLWZvcm1hdCA8bmFtZT4nLCAnVXNlIGEgc3BlY2lmaWMgb3V0cHV0IGZvcm1hdC4gRGVmYXVsdDogc3R5bGlzaC4nKVxuICAub3B0aW9uKCctLWdsb2JhbCA8dmFyaWFibGVzPicsICdEZWZpbmUgZ2xvYmFsIHZhcmlhYmxlcy4nKVxuICAub3B0aW9uKCctLWlnbm9yZS1wYXRoIDxwYXRoPicsICdTcGVjaWZ5IHBhdGggb2YgaWdub3JlIGZpbGUuJylcbiAgLm9wdGlvbignLS1pZ25vcmUtcGF0dGVybiA8cGF0dGVybj4nLCAnUGF0dGVybiBvZiBmaWxlcyB0byBpZ25vcmUgKGluIGFkZGl0aW9uIHRvIHRob3NlIGluIC5lc2xpbnRpZ25vcmUpLicpXG4gIC5vcHRpb24oJy0taW5pdCcsICdSdW4gY29uZmlnIGluaXRpYWxpemF0aW9uIHdpemFyZC4gRGVmYXVsdDogZmFsc2UuJylcbiAgLm9wdGlvbignLS1tYXgtd2FybmluZ3MgPG51bT4nLCAnTnVtYmVyIG9mIHdhcm5pbmdzIHRvIHRyaWdnZXIgbm9uemVybyBleGl0IGNvZGUuIERlZmF1bHQ6IC0xLicpXG4gIC5vcHRpb24oJy0tbm8tY29sb3InLCAnRm9yY2UgZGlzYWJsaW5nIG9mIGNvbG9yLicpXG4gIC5vcHRpb24oJy0tbm8tZXNsaW50cmMnLCAnRGlzYWJsZSB1c2Ugb2YgY29uZmlndXJhdGlvbiBmcm9tIC5lc2xpbnRyYy4qLicpXG4gIC5vcHRpb24oJy0tbm8taWdub3JlJywgJ0Rpc2FibGUgdXNlIG9mIGlnbm9yZSBmaWxlcyBhbmQgcGF0dGVybnMuJylcbiAgLm9wdGlvbignLS1uby1pbmxpbmUtY29uZmlnJywgJ1ByZXZlbnQgY29tbWVudHMgZnJvbSBjaGFuZ2luZyBjb25maWcgb3IgcnVsZXMuJylcbiAgLm9wdGlvbignLS1vdXRwdXQtZmlsZSA8cGF0aD4nLCAnU3BlY2lmeSBmaWxlIHRvIHdyaXRlIHJlcG9ydCB0by4nKVxuICAub3B0aW9uKCctLXBhcnNlciA8bmFtZT4nLCAnU3BlY2lmeSB0aGUgcGFyc2VyIHRvIGJlIHVzZWQuJylcbiAgLm9wdGlvbignLS1wYXJzZXItb3B0aW9ucyA8b3B0aW9ucz4nLCAnU3BlY2lmeSBwYXJzZXIgb3B0aW9ucy4nKVxuICAub3B0aW9uKCctLXBsdWdpbiA8cGx1Z2lucz4nLCAnU3BlY2lmeSBwbHVnaW5zLicpXG4gIC5vcHRpb24oJy0tcHJpbnQtY29uZmlnIDxwYXRoPicsICdQcmludCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUuJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJlcG9ydC11bnVzZWQtZGlzYWJsZS1kaXJlY3RpdmVzJywgJ0FkZHMgcmVwb3J0ZWQgZXJyb3JzIGZvciB1bnVzZWQgZXNsaW50LWRpc2FibGUgZGlyZWN0aXZlcy4nKVxuICAub3B0aW9uKCctLXJlc29sdmUtcGx1Z2lucy1yZWxhdGl2ZS10byA8cGF0aD4nLCAnQSBmb2xkZXIgd2hlcmUgcGx1Z2lucyBzaG91bGQgYmUgcmVzb2x2ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLXJ1bGUgPHBhdGg+JywgJ1NwZWNpZnkgcnVsZXMuJylcbiAgLm9wdGlvbignLS1ydWxlc2RpciA8cGF0aD4nLCAnVXNlIGFkZGl0aW9uYWwgcnVsZXMgZnJvbSB0aGlzIGRpcmVjdG9yeS4nKVxuICAub3B0aW9uKCctLXN0ZGluJywgJ0xpbnQgY29kZSBwcm92aWRlZCBvbiA8U1RESU4+IC0gRGVmYXVsdDogZmFsc2UuJylcbiAgLm9wdGlvbignLS1zdGRpbi1maWxlbmFtZSA8bmFtZT4nLCAnU3BlY2lmeSBmaWxlbmFtZSB0byBwcm9jZXNzIFNURElOIGFzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gbGludChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ21pZ3JhdGUnKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gbWlncmF0ZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3B1Ymxpc2gnKVxuICAub3B0aW9uKCctYiwgLS1idW1wIDx0eXBlPicsICdJbmNyZW1lbnRzIHRoZSB2ZXJzaW9uLiBUeXBlcyBpbmNsdWRlOiBtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBhbHBoYSwgcmMuIERlZmF1bHQ6IFwicGF0Y2hcIi4sICcsIC9eKG1ham9yfG1pbm9yfHBhdGNofGJldGF8YWxwaGF8cmMpJC9pLCAncGF0Y2gnKVxuICAub3B0aW9uKCctbywgLS1vdHAgPGNvZGU+JywgJ1Byb3ZpZGUgYSB0d28tZmFjdG9yIGNvZGUuJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctcCwgLS1wcml2YXRlJywgJ1B1Ymxpc2hlcyB0aGUgbW9kdWxlIGFzIHJlc3RyaWN0ZWQuJylcbiAgLm9wdGlvbignLW0sIC0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nLCAvXihucG18eWFybikkL2ksICducG0nKVxuICAub3B0aW9uKCctdCwgLS10YWcgPHRhZz4nLCAnUmVnaXN0ZXJzIHRoZSBwdWJsaXNoZWQgcGFja2FnZSB3aXRoIHRoZSBnaXZlbiB0YWcuJylcbiAgLm9wdGlvbignLXYsIC0tbmV3LXZlcnNpb24gPHZlcnNpb25OdW1iZXI+JywgJ1B1Ymxpc2ggYXMgYSBzcGVjaWZpYyB2ZXJzaW9uLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gcHVibGlzaChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3Rlc3QnKVxuICAub3B0aW9uKCctYywgLS1jb25maWcgPHBhdGg+JywgJ0N1c3RvbSBKZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gamVzdC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1kLCAtLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seScpXG4gIC5vcHRpb24oJy1lLCAtLWVudmlyb25tZW50IDxuYW1lPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy1sLCAtLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLXIsIC0tY2xlYXJDYWNoZScsICdDbGVhciBKZXN0IGNhY2hlLicpXG4gIC5vcHRpb24oJy1zLCAtLXNldHVwIDxwYXRoPicsICdKZXN0IHNldHVwIGZpbGUgcGF0aC4nKVxuICAub3B0aW9uKCctdCwgLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy11LCAtLXVwZGF0ZScsICdVcGRhdGUgc25hcHNob3RzLiBSdW5zIFwiamVzdCAtLXVwZGF0ZVNuYXBzaG90c1wiJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2ggPHBhdGg+JywgJ1dhdGNoIGZpbGVzIGZvciBjaGFuZ2VzIGFuZCByZXJ1biB0ZXN0cyByZWxhdGVkIHRvIGNoYW5nZWQgZmlsZXMuJylcbiAgLm9wdGlvbignLS1iYWlsJywgJ0V4aXQgdGhlIHRlc3Qgc3VpdGUgaW1tZWRpYXRlbHkgdXBvbiB0aGUgZmlyc3QgZmFpbGluZyB0ZXN0IHN1aXRlLicpXG4gIC5vcHRpb24oJy0tY2hhbmdlZEZpbGVzV2l0aEFuY2VzdG9yJywgJ1J1bnMgdGVzdHMgcmVsYXRlZCB0byB0aGUgY3VycmVudCBjaGFuZ2VzIGFuZCB0aGUgY2hhbmdlcyBtYWRlIGluIHRoZSBsYXN0IGNvbW1pdC4nKVxuICAub3B0aW9uKCctLWNoYW5nZWRTaW5jZScsICdSdW5zIHRlc3RzIHJlbGF0ZWQgdGhlIGNoYW5nZXMgc2luY2UgdGhlIHByb3ZpZGVkIGJyYW5jaC4nKVxuICAub3B0aW9uKCctLWNpJywgJ1doZW4gdGhpcyBvcHRpb24gaXMgcHJvdmlkZWQsIEplc3Qgd2lsbCBhc3N1bWUgaXQgaXMgcnVubmluZyBpbiBhIENJIGVudmlyb25tZW50LicpXG4gIC5vcHRpb24oJy0tY29sbGVjdENvdmVyYWdlRnJvbSA8Z2xvYj4nLCAnQSBnbG9iIHBhdHRlcm4gcmVsYXRpdmUgdG8gbWF0Y2hpbmcgdGhlIGZpbGVzIHRoYXQgY292ZXJhZ2UgaW5mbyBuZWVkcyB0byBiZSBjb2xsZWN0ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLWNvbG9ycycsICdGb3JjZXMgdGVzdCByZXN1bHRzIG91dHB1dCBoaWdobGlnaHRpbmcgZXZlbiBpZiBzdGRvdXQgaXMgbm90IGEgVFRZLicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnUHJpbnQgZGVidWdnaW5nIGluZm8gYWJvdXQgeW91ciBKZXN0IGNvbmZpZy4nKVxuICAub3B0aW9uKCctLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seS4nKVxuICAub3B0aW9uKCctLWVudicsICdUaGUgdGVzdCBlbnZpcm9ubWVudCB1c2VkIGZvciBhbGwgdGVzdHMuIFRoaXMgY2FuIHBvaW50IHRvIGFueSBmaWxlIG9yIG5vZGUgbW9kdWxlLiBFeGFtcGxlczoganNkb20sIG5vZGUgb3IgcGF0aC90by9teS1lbnZpcm9ubWVudC5qcy4nKVxuICAub3B0aW9uKCctLWVycm9yT25EZXByZWNhdGVkJywgJ01ha2UgY2FsbGluZyBkZXByZWNhdGVkIEFQSXMgdGhyb3cgaGVscGZ1bCBlcnJvciBtZXNzYWdlcy4nKVxuICAub3B0aW9uKCctLWV4cGFuZCcsICdVc2UgdGhpcyBmbGFnIHRvIHNob3cgZnVsbCBkaWZmcyBhbmQgZXJyb3JzIGluc3RlYWQgb2YgYSBwYXRjaC4nKVxuICAub3B0aW9uKCctLWZvcmNlRXhpdCcsICdGb3JjZSBKZXN0IHRvIGV4aXQgYWZ0ZXIgYWxsIHRlc3RzIGhhdmUgY29tcGxldGVkIHJ1bm5pbmcuJylcbiAgLm9wdGlvbignLS1qc29uJywgJ1ByaW50cyB0aGUgdGVzdCByZXN1bHRzIGluIEpTT04uJylcbiAgLm9wdGlvbignLS1sYXN0Q29tbWl0JywgJ1J1biBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgZmlsZSBjaGFuZ2VzIGluIHRoZSBsYXN0IGNvbW1pdCBtYWRlLicpXG4gIC5vcHRpb24oJy0tbGlzdFRlc3RzJywgJ0xpc3RzIGFsbCB0ZXN0cyBhcyBKU09OIHRoYXQgSmVzdCB3aWxsIHJ1biBnaXZlbiB0aGUgYXJndW1lbnRzLCBhbmQgZXhpdHMuJylcbiAgLm9wdGlvbignLS1sb2dIZWFwVXNhZ2UnLCAnTG9ncyB0aGUgaGVhcCB1c2FnZSBhZnRlciBldmVyeSB0ZXN0LicpXG4gIC5vcHRpb24oJy0tbWF4V29ya2VycyA8bnVtPicsICdTcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdvcmtlcnMgdGhlIHdvcmtlci1wb29sIHdpbGwgc3Bhd24gZm9yIHJ1bm5pbmcgdGVzdHMuICcpXG4gIC5vcHRpb24oJy0tbm9TdGFja1RyYWNlJywgJ0Rpc2FibGVzIHN0YWNrIHRyYWNlIGluIHRlc3QgcmVzdWx0cyBvdXRwdXQuJylcbiAgLm9wdGlvbignLS1ub3RpZnknLCAnQWN0aXZhdGVzIG5vdGlmaWNhdGlvbnMgZm9yIHRlc3QgcmVzdWx0cy4nKVxuICAub3B0aW9uKCctLW9ubHlDaGFuZ2VkJywgJ3VuIGJhc2VkIG9uIHdoaWNoIGZpbGVzIGhhdmUgY2hhbmdlZCBpbiB0aGUgY3VycmVudCByZXBvc2l0b3J5LiAnKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPGZpbGVuYW1lPicsICdXcml0ZSB0ZXN0IHJlc3VsdHMgdG8gYSBmaWxlIHdoZW4gdGhlIC0tanNvbiBvcHRpb24gaXMgYWxzbyBzcGVjaWZpZWQuJylcbiAgLm9wdGlvbignLS1wYXNzV2l0aE5vVGVzdHMnLCAnQWxsb3dzIHRoZSB0ZXN0IHN1aXRlIHRvIHBhc3Mgd2hlbiBubyBmaWxlcyBhcmUgZm91bmQuJylcbiAgLm9wdGlvbignLS1ydW5JbkJhbmQnLCAnUnVuIGFsbCB0ZXN0cyBzZXJpYWxseSBpbiB0aGUgY3VycmVudCBwcm9jZXNzLCByYXRoZXIgdGhhbiBjcmVhdGluZyBhIHdvcmtlciBwb29sIG9mIGNoaWxkIHByb2Nlc3NlcyB0aGF0IHJ1biB0ZXN0cy4nKVxuICAub3B0aW9uKCctLXNob3dDb25maWcnLCAnUHJpbnQgeW91ciBKZXN0IGNvbmZpZyBhbmQgdGhlbiBleGl0cy4nKVxuICAub3B0aW9uKCctLXNpbGVudCcsICdQcmV2ZW50IHRlc3RzIGZyb20gcHJpbnRpbmcgbWVzc2FnZXMgdGhyb3VnaCB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXRlc3RMb2NhdGlvbkluUmVzdWx0cycsICdBZGRzIGEgbG9jYXRpb24gZmllbGQgdG8gdGVzdCByZXN1bHRzLicpXG4gIC5vcHRpb24oJy0tdGVzdE5hbWVQYXR0ZXJuIDxyZWdleD4nLCAnUnVuIG9ubHkgdGVzdHMgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSByZWdleC4gJylcbiAgLm9wdGlvbignLS10ZXN0UGF0aFBhdHRlcm4gPHJlZ2V4PicsICdBIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZyB0aGF0IGlzIG1hdGNoZWQgYWdhaW5zdCBhbGwgdGVzdHMgcGF0aHMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgdGVzdC4nKVxuICAub3B0aW9uKCctLXVzZVN0ZGVycicsICdEaXZlcnQgYWxsIG91dHB1dCB0byBzdGRlcnIuJylcbiAgLm9wdGlvbignLS12ZXJib3NlJywgJ0Rpc3BsYXkgaW5kaXZpZHVhbCB0ZXN0IHJlc3VsdHMgd2l0aCB0aGUgdGVzdCBzdWl0ZSBoaWVyYXJjaHkuJylcbiAgLm9wdGlvbignLS13YXRjaEFsbCcsICdXYXRjaCBmaWxlcyBmb3IgY2hhbmdlcyBhbmQgcmVydW4gYWxsIHRlc3RzIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMuJylcbiAgLmFjdGlvbigoY21kKSA9PiB0ZXN0KGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgndXBkYXRlJylcbiAgLm9wdGlvbignLWksIC0taW50ZXJhY3RpdmUnLCAnQ2hvb3NlIHdoaWNoIHBhY2thZ2VzIHRvIHVwZGF0ZS4nKVxuICAub3B0aW9uKCctbSwgLS1wYWNrYWdlLW1hbmFnZXIgPG1hbmFnZXI+JywgJ1doaWNoIHBhY2thZ2UgbWFuYWdlciB0byB1c2UuIERlZmF1bHQ6IG5wbScsIC9eKG5wbXx5YXJuKSQvaSwgJ25wbScpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1yZWdpc3RyeScsICdBZGQgYSBjdXN0b20gcmVnaXN0cnkgdXJsLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gdXBkYXRlKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgndXBncmFkZScpXG4gIC5vcHRpb24oJy1tLCAtLXBhY2thZ2UtbWFuYWdlciA8bWFuYWdlcj4nLCAnV2hpY2ggcGFja2FnZSBtYW5hZ2VyIHRvIHVzZS4gRGVmYXVsdDogbnBtJywgL14obnBtfHlhcm4pJC9pLCAnbnBtJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IHVwZ3JhZGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd2ZXJzaW9ucycpXG4gIC5vcHRpb24oJy1qLCAtLWpzb24nLCAnUHJpbnQgdGhlIHZlcnNpb24gYXMgYSBKU09OIG9iamVjdC4nKVxuICAuYWN0aW9uKChjbWQpID0+IHZlcnNpb25zKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbi8vIEluaXRpYWxpemVcbnByb2dyYW1cbiAgLnZlcnNpb24ocGFja2FnZUpzb24udmVyc2lvbilcbiAgLnBhcnNlKHByb2Nlc3MuYXJndik7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBS0EsU0FBUSxlQUFjO0FBRXRCLE9BQU8saUJBQWlCLGtCQUFrQixPQUFPLEVBQUMsTUFBTSxPQUFNO0FBQzlELFNBQVEsYUFBWTtBQUNwQixTQUFRLGFBQVk7QUFDcEIsU0FBUSxlQUFjO0FBQ3RCLFNBQVEsY0FBYTtBQUNyQixTQUFRLGNBQWE7QUFDckIsU0FBUSxXQUFVO0FBQ2xCLFNBQVEsWUFBVztBQUNuQixTQUFRLGNBQWE7QUFDckIsU0FBUSxZQUFXO0FBQ25CLFNBQVEsZUFBYztBQUN0QixTQUFRLGVBQWM7QUFDdEIsU0FBUSxZQUFXO0FBQ25CLFNBQVEsY0FBYTtBQUNyQixTQUFRLGVBQWM7QUFDdEIsU0FBUSxnQkFBZTtBQUd2QixRQUFRLFFBQVEsT0FBTyxFQUNwQixPQUFPLHVCQUF1QixpRUFBaUUsRUFDL0YsT0FBTywwQkFBMEIsOENBQThDLEVBQy9FLE9BQU8scUJBQXFCLHlFQUF5RSwrQkFBK0IsYUFBYSxFQUNqSixPQUFPLGVBQWUsOENBQThDLEVBQ3BFLE9BQU8sZ0JBQWdCLCtEQUErRCxFQUN0RixPQUFPLGdCQUFnQiw4Q0FBOEMsRUFDckUsT0FBTyxvQkFBb0IsMEJBQTBCLEVBQ3JELE9BQU8sMEJBQTBCLGtGQUFvRixFQUNySCxPQUFPLGVBQWUs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
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7T3B0aW9uLCBwcm9ncmFtfSBmcm9tICdjb21tYW5kZXInO1xuXG5pbXBvcnQgcGFja2FnZUpzb24gZnJvbSAnLi4vcGFja2FnZS5qc29uJyBhc3NlcnQge3R5cGU6ICdqc29uJ307XG5pbXBvcnQge2J1aWxkfSBmcm9tICcuL2NvbW1hbmRzL2J1aWxkLmpzJztcbmltcG9ydCB7Y2xlYW59IGZyb20gJy4vY29tbWFuZHMvY2xlYW4uanMnO1xuaW1wb3J0IHtjb21waWxlfSBmcm9tICcuL2NvbW1hbmRzL2NvbXBpbGUuanMnO1xuaW1wb3J0IHtjb25maWd9IGZyb20gJy4vY29tbWFuZHMvY29uZmlnLmpzJztcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL2NvbW1hbmRzL2NyZWF0ZS5qcyc7XG5pbXBvcnQge2Rldn0gZnJvbSAnLi9jb21tYW5kcy9kZXYuanMnO1xuaW1wb3J0IHtpbml0fSBmcm9tICcuL2NvbW1hbmRzL2luaXQuanMnO1xuaW1wb3J0IHtsaW5rZWR9IGZyb20gJy4vY29tbWFuZHMvbGluay5qcyc7XG5pbXBvcnQge2xpbnR9IGZyb20gJy4vY29tbWFuZHMvbGludC5qcyc7XG5pbXBvcnQge21pZ3JhdGV9IGZyb20gJy4vY29tbWFuZHMvbWlncmF0ZS5qcyc7XG5pbXBvcnQge3B1Ymxpc2h9IGZyb20gJy4vY29tbWFuZHMvcHVibGlzaC5qcyc7XG5pbXBvcnQge3Rlc3R9IGZyb20gJy4vY29tbWFuZHMvdGVzdC5qcyc7XG5pbXBvcnQge3VwZGF0ZX0gZnJvbSAnLi9jb21tYW5kcy91cGRhdGUuanMnO1xuaW1wb3J0IHt1cGdyYWRlfSBmcm9tICcuL2NvbW1hbmRzL3VwZ3JhZGUuanMnO1xuaW1wb3J0IHt2ZXJzaW9uc30gZnJvbSAnLi9jb21tYW5kcy92ZXJzaW9ucy5qcyc7XG5cbi8vIENvbW1hbmRzXG5wcm9ncmFtLmNvbW1hbmQoJ2J1aWxkJylcbiAgLm9wdGlvbignLS1hbmFseXplJywgJ0l0IGludm9rZXMgd2VicGFjay1idW5kbGUtYW5hbHl6ZXIgcGx1Z2luIHRvIGdldCBidW5kbGUgaW5mb3JtYXRpb24uJywgZmFsc2UpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1idW5kbGVyIDxuYW1lPicsICdCdW5kbGVyIHRvIHVzZSAoXCJ3ZWJwYWNrXCIgb3IgXCJlc2J1aWxkXCIpLiBEZWZhdWx0OiBcIndlYnBhY2tcIi4nKS5jaG9pY2VzKFsnd2VicGFjaycsICdlc2J1aWxkJ10pLmRlZmF1bHQoJ3dlYnBhY2snKSlcbiAgLm9wdGlvbignLS1jb25maWcgPHBhdGg+JywgJ0N1c3RvbSBXZWJwYWNrIGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gd2VicGFjay5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tY29uZmlnLW5hbWUgPHZhbHVlLi4uPicsICdOYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uIHRvIHVzZS4nKVxuICAub3B0aW9uKCctLWRlZmluZS1wcm9jZXNzLWVudi1ub2RlLWVudiA8dmFsdWU+JywgJ1NldHMgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4gKEN1cnJlbnRseSBhbiBhbGlhcyBmb3IgYC0tbm9kZS1lbnZgKScpXG4gIC5vcHRpb24oJy0tZGV2dG9vbCA8dmFsdWU+JywgJ0EgZGV2ZWxvcGVyIHRvb2wgdG8gZW5oYW5jZSBkZWJ1Z2dpbmcgKGZhbHNlIHwgZXZhbCB8IFtpbmxpbmUtfGhpZGRlbi18ZXZhbC1dW25vc291cmNlcy1dW2NoZWFwLVttb2R1bGUtXV1zb3VyY2UtbWFwKS4nKVxuICAub3B0aW9uKCctLWRpc2FibGUtaW50ZXJwcmV0JywgJ0Rpc2FibGUgaW50ZXJwcmV0IGZvciBsb2FkaW5nIHRoZSBjb25maWcgZmlsZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1lbnRyeSA8dmFsdWUuLi4+JywgJ0EgbW9kdWxlIHRoYXQgaXMgbG9hZGVkIHVwb24gc3RhcnR1cC4gT25seSB0aGUgbGFzdCBvbmUgaXMgZXhwb3J0ZWQuJylcbiAgLm9wdGlvbignLS1lbnYgPHZhbHVlPicsICdFbnZpcm9ubWVudCBwYXNzZWQgdG8gdGhlIGNvbmZpZ3VyYXRpb24gd2hlbiBpdCBpcyBhIGZ1bmN0aW9uLicpXG4gIC5vcHRpb24oJy0tZmFpbC1vbi13YXJuaW5ncycsICdTdG9wIHdlYnBhY2stY2xpIHByb2Nlc3Mgd2l0aCBub24temVybyBleGl0IGNvZGUgb24gd2FybmluZ3MgZnJvbSB3ZWJwYWNrJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tanNvbiA8dmFsdWU+JywgJ1ByaW50cyByZXN1bHQgYXMgSlNPTiBvciBzdG9yZSBpdCBpbiBhIGZpbGUuJylcbiAgLm9wdGlvbignLS1sZXhDb25maWcgPHBhdGg+JywgJ0xleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAobGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLS1tZXJnZScsICdNZXJnZSB0d28gb3IgbW9yZSBjb25maWd1cmF0aW9ucyB1c2luZyBcIndlYnBhY2stbWVyZ2VcIi4nLCBmYWxzZSlcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLW1vZGUgPHR5cGU+JywgJ1dlYnBhY2sgbW9kZSAoXCJwcm9kdWN0aW9uXCIgb3IgXCJkZXZlbG9wbWVudFwiKS4gRGVmYXVsdDogXCJkZXZlbG9wbWVudFwiLicpLmNob2ljZXMoWydkZXZlbG9wbWVudCcsICdwcm9kdWN0aW9uJ10pLmRlZmF1bHQoJ2RldmVsb3BtZW50JykpXG4gIC5vcHRpb24oJy0tbmFtZSA8dmFsdWU+JywgJ05hbWUgb2YgdGhlIGNvbmZpZ3VyYXRpb24uIFVzZWQgd2hlbiBsb2FkaW5nIG11bHRpcGxlIGNvbmZpZ3VyYXRpb25zLicpXG4gIC5vcHRpb24oJy0tbm8tZGV2dG9vbCcsICdOZWdhdGl2ZSBcImRldnRvb2xcIiBvcHRpb24uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tbm8tc3RhdHMnLCAnTmVnYXRpdmUgXCJzdGF0c1wiIG9wdGlvbi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1uby10YXJnZXQnLCAnTmVnYXRpdmUgXCJ0YXJnZXRcIiBvcHRpb24uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tbm8td2F0Y2gnLCAnTmVnYXRpdmUgXCJ3YXRjaFwiIG9wdGlvbi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1uby13YXRjaC1vcHRpb25zLXN0ZGluJywgJ05lZ2F0aXZlIFwid2F0Y2gtb3B0aW9ucy1zdGRpblwiIG9wdGlvbi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1ub2RlLWVudiA8dmFsdWU+JywgJ1NldHMgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4nKVxuICAub3B0aW9uKCctLW91dHB1dC1wYXRoIDx2YWx1ZT4nLCAnVGhlIG91dHB1dCBkaXJlY3RvcnkgYXMgKiphYnNvbHV0ZSBwYXRoKiogKHJlcXVpcmVkKS4nKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tcmVtb3ZlJywgJ1JlbW92ZXMgYWxsIGZpbGVzIGZyb20gdGhlIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIGNvbXBpbGluZy4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1zb3VyY2VQYXRoIDxwYXRoPicsICdTb3VyY2UgcGF0aCcpXG4gIC5vcHRpb24oJy0tc3RhdHMgPHZhbHVlPicsICdTdGF0cyBvcHRpb25zIG9iamVjdCBvciBwcmVzZXQgbmFtZS4nKVxuICAub3B0aW9uKCctLXN0YXRpYycsICdDcmVhdGVzIHN0YXRpYyBIVE1MIGZpbGVzIHdoZW4gYnVpbGRpbmcgYXBwLicsIGZhbHNlKVxuICAub3B0aW9uKCctLXRhcmdldCA8dmFsdWU+JywgJ0Vudmlyb25tZW50IHRvIGJ1aWxkIGZvci4gRW52aXJvbm1lbnQgdG8gYnVpbGQgZm9yLiBBbiBhcnJheSBvZiBlbnZpcm9ubWVudHMgdG8gYnVpbGQgZm9yIGFsbCBvZiB0aGVtIHdoZW4gcG9zc2libGUuJylcbiAgLm9wdGlvbignLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicsIGZhbHNlKVxuICAub3B0aW9uKCctLXZhcmlhYmxlcyA8bmFtZT4nLCAnRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiBcInByb2Nlc3MuZW52XCIuIChpZS4gXCJ7Tk9ERV9FTlY6IFxcJ3Byb2R1Y3Rpb25cXCd9XCIpLicpXG4gIC5vcHRpb24oJy0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0td2F0Y2gtb3B0aW9ucy1zdGRpbicsICdTdG9wIHdhdGNoaW5nIHdoZW4gc3RkaW4gc3RyZWFtIGhhcyBlbmRlZC4nLCBmYWxzZSlcbiAgLmFjdGlvbigoY21kKSA9PiBidWlsZChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NsZWFuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tc25hcHNob3RzJywgJ1JlbW92ZSBhbGwgXCJfX3NuYXBzaG90c19fXCIgZGlyZWN0b3JpZXMuJylcbiAgLmFjdGlvbigoY21kKSA9PiBjbGVhbihjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NvbmZpZyA8dHlwZT4nKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1qc29uIDxwYXRoPicsICdTYXZlIG91dHB1dCB0byBqc29uIGZpbGUuJylcbiAgLmFjdGlvbigodHlwZSwgY21kKSA9PiBjb25maWcodHlwZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjb21waWxlJylcbiAgLm9wdGlvbignLS1jb25maWcgPHBhdGg+JywgJ1RyYW5zcGlsZXIgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiAuZmxvd2NvbmZpZyBvciB0c2NvbmZpZy5qc29uKS4nKVxuICAub3B0aW9uKCctLWVudmlyb25tZW50IDxuYW1lPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLS1vdXRwdXRQYXRoIDxwYXRoPicsICdPdXRwdXQgcGF0aCcpXG4gIC5vcHRpb24oJy0tcmVtb3ZlJywgJ1JlbW92ZXMgYWxsIGZpbGVzIGZyb20gdGhlIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIGNvbXBpbGluZy4nKVxuICAub3B0aW9uKCctLXNvdXJjZVBhdGggPHBhdGg+JywgJ1NvdXJjZSBwYXRoJylcbiAgLm9wdGlvbignLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXdhdGNoJywgJ1dhdGNoZXMgZm9yIGNoYW5nZXMgYW5kIGNvbXBpbGVzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gY29tcGlsZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NyZWF0ZSA8dHlwZT4nKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPHBhdGg+JywgJ091dHB1dCBmaWxlbmFtZS4nKVxuICAub3B0aW9uKCctLW91dHB1dE5hbWUgPG5hbWU+JywgJ091dHB1dCBuYW1lLicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXR5cGVzY3JpcHQnLCAnQ3JlYXRlIFR5cGVzY3JpcHQgdmVyc2lvbi4nKVxuICAuYWN0aW9uKCh0eXBlLCBjbWQpID0+IGNyZWF0ZSh0eXBlLCBjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2RldicpXG4gIC5vcHRpb24oJy0tYnVuZGxlQW5hbHl6ZXInLCAnUnVuIGJ1bmRsZSBhbmFseXplci4nKVxuICAub3B0aW9uKCctLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLS1sZXhDb25maWcgPHBhdGg+JywgJ0N1c3RvbSBMZXggY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiBsZXguY29uZmlnLmpzKS4nKVxuICAub3B0aW9uKCctLW9wZW4nLCAnQXV0b21hdGljYWxseSBvcGVuIGRldiBzZXJ2ZXIgaW4gYSBuZXcgYnJvd3NlciB3aW5kb3cuJylcbiAgLm9wdGlvbignLS1vdXRwdXRQYXRoIDxwYXRoPicsICdPdXRwdXQgcGF0aCcpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLS1zb3VyY2VQYXRoIDxwYXRoPicsICdTb3VyY2UgcGF0aCcpXG4gIC5vcHRpb24oJy0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctLXZhcmlhYmxlcyA8bmFtZT4nLCAnRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiBcInByb2Nlc3MuZW52XCIuIChpZS4gXCJ7Tk9ERV9FTlY6IFxcJ2RldmVsb3BtZW50XFwnfVwiKS4nKVxuICAub3B0aW9uKCctLXdhdGNoJywgJ1dhdGNoIGZvciBjaGFuZ2VzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gZGV2KGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnaW5pdCA8YXBwTmFtZT4gW3BhY2thZ2VOYW1lXScpXG4gIC5vcHRpb24oJy0taW5zdGFsbCcsICdJbnN0YWxsIGRlcGVuZGVuY2llcy4nKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nKS5jaG9pY2VzKFsnbnBtJywgJ3lhcm4nXSkuZGVmYXVsdCgnbnBtJykpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXR5cGVzY3JpcHQnLCAnVXNlIGEgVHlwZXNjcmlwdCBiYXNlZCBhcHAuJylcbiAgLmFjdGlvbigoYXBwTmFtZSwgcGFja2FnZU5hbWUsIGNtZCkgPT4gaW5pdChhcHBOYW1lLCBwYWNrYWdlTmFtZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW5rZWQnKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFjdGlvbigoY21kKSA9PiBsaW5rZWQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW50JylcbiAgLm9wdGlvbignLS1jYWNoZScsICdPbmx5IGNoZWNrIGNoYW5nZWQgZmlsZXMuIERlZmF1bHQ6IGZhbHNlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWNhY2hlLWxvY2F0aW9uIDxwYXRoPicsICdQYXRoIHRvIHRoZSBjYWNoZSBmaWxlIG9yIGRpcmVjdG9yeS4nKVxuICAub3B0aW9uKCctLWNvbG9yJywgJ0ZvcmNlIGVuYWJsaW5nIG9mIGNvbG9yLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWNvbmZpZyA8cGF0aD4nLCAnVXNlIHRoaXMgY29uZmlndXJhdGlvbiwgb3ZlcnJpZGluZyAuZXNsaW50cmMuKiBjb25maWcgb3B0aW9ucyBpZiBwcmVzZW50LicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnT3V0cHV0IGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1lbnYtaW5mbycsICdPdXRwdXQgZXhlY3V0aW9uIGVudmlyb25tZW50IGluZm9ybWF0aW9uLiBEZWZhdWx0OiBmYWxzZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1lbnYgPG5hbWU+JywgJ1NwZWNpZnkgZW52aXJvbm1lbnRzLicpXG4gIC5vcHRpb24oJy0tZXh0IDx0eXBlPicsICdTcGVjaWZ5IEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb25zLiBEZWZhdWx0OiAuanMuJylcbiAgLm9wdGlvbignLS1maXgnLCAnQXV0b21hdGljYWxseSBmaXggcHJvYmxlbXMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tZml4LWRyeS1ydW4nLCAnQXV0b21hdGljYWxseSBmaXggcHJvYmxlbXMgd2l0aG91dCBzYXZpbmcgdGhlIGNoYW5nZXMgdG8gdGhlIGZpbGUgc3lzdGVtLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWZpeC10eXBlIDx0eXBlPicsICdTcGVjaWZ5IHRoZSB0eXBlcyBvZiBmaXhlcyB0byBhcHBseSAocHJvYmxlbSwgc3VnZ2VzdGlvbiwgbGF5b3V0KS4nKVxuICAub3B0aW9uKCctLWZvcm1hdCA8bmFtZT4nLCAnVXNlIGEgc3BlY2lmaWMgb3V0cHV0IGZvcm1hdC4gRGVmYXVsdDogc3R5bGlzaC4nKVxuICAub3B0aW9uKCctLWdsb2JhbCA8dmFyaWFibGVzPicsICdEZWZpbmUgZ2xvYmFsIHZhcmlhYmxlcy4nKVxuICAub3B0aW9uKCctLWlnbm9yZS1wYXRoIDxwYXRoPicsICdTcGVjaWZ5IHBhdGggb2YgaWdub3JlIGZpbGUuJylcbiAgLm9wdGlvbignLS1pZ25vcmUtcGF0dGVybiA8cGF0dGVybj4nLCAnUGF0dGVybiBvZiBmaWxlcyB0byBpZ25vcmUgKGluIGFkZGl0aW9uIHRvIHRob3NlIGluIC5lc2xpbnRpZ25vcmUpLicpXG4gIC5vcHRpb24oJy0taW5pdCcsICdSdW4gY29uZmlnIGluaXRpYWxpemF0aW9uIHdpemFyZC4gRGVmYXVsdDogZmFsc2UuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tbWF4LXdhcm5pbmdzIDxudW0+JywgJ051bWJlciBvZiB3YXJuaW5ncyB0byB0cmlnZ2VyIG5vbnplcm8gZXhpdCBjb2RlLiBEZWZhdWx0OiAtMS4nKVxuICAub3B0aW9uKCctLW5vLWNvbG9yJywgJ0ZvcmNlIGRpc2FibGluZyBvZiBjb2xvci4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1uby1lc2xpbnRyYycsICdEaXNhYmxlIHVzZSBvZiBjb25maWd1cmF0aW9uIGZyb20gLmVzbGludHJjLiouJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tbm8taWdub3JlJywgJ0Rpc2FibGUgdXNlIG9mIGlnbm9yZSBmaWxlcyBhbmQgcGF0dGVybnMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tbm8taW5saW5lLWNvbmZpZycsICdQcmV2ZW50IGNvbW1lbnRzIGZyb20gY2hhbmdpbmcgY29uZmlnIG9yIHJ1bGVzLicsIGZhbHNlKVxuICAub3B0aW9uKCctLW91dHB1dC1maWxlIDxwYXRoPicsICdTcGVjaWZ5IGZpbGUgdG8gd3JpdGUgcmVwb3J0IHRvLicpXG4gIC5vcHRpb24oJy0tcGFyc2VyIDxuYW1lPicsICdTcGVjaWZ5IHRoZSBwYXJzZXIgdG8gYmUgdXNlZC4nKVxuICAub3B0aW9uKCctLXBhcnNlci1vcHRpb25zIDxvcHRpb25zPicsICdTcGVjaWZ5IHBhcnNlciBvcHRpb25zLicpXG4gIC5vcHRpb24oJy0tcGx1Z2luIDxwbHVnaW5zPicsICdTcGVjaWZ5IHBsdWdpbnMuJylcbiAgLm9wdGlvbignLS1wcmludC1jb25maWcgPHBhdGg+JywgJ1ByaW50IHRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgZ2l2ZW4gZmlsZS4nKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tcmVwb3J0LXVudXNlZC1kaXNhYmxlLWRpcmVjdGl2ZXMnLCAnQWRkcyByZXBvcnRlZCBlcnJvcnMgZm9yIHVudXNlZCBlc2xpbnQtZGlzYWJsZSBkaXJlY3RpdmVzLicsIGZhbHNlKVxuICAub3B0aW9uKCctLXJlc29sdmUtcGx1Z2lucy1yZWxhdGl2ZS10byA8cGF0aD4nLCAnQSBmb2xkZXIgd2hlcmUgcGx1Z2lucyBzaG91bGQgYmUgcmVzb2x2ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLXJ1bGUgPHBhdGg+JywgJ1NwZWNpZnkgcnVsZXMuJylcbiAgLm9wdGlvbignLS1ydWxlc2RpciA8cGF0aD4nLCAnVXNlIGFkZGl0aW9uYWwgcnVsZXMgZnJvbSB0aGlzIGRpcmVjdG9yeS4nKVxuICAub3B0aW9uKCctLXN0ZGluJywgJ0xpbnQgY29kZSBwcm92aWRlZCBvbiA8U1RESU4+IC0gRGVmYXVsdDogZmFsc2UuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tc3RkaW4tZmlsZW5hbWUgPG5hbWU+JywgJ1NwZWNpZnkgZmlsZW5hbWUgdG8gcHJvY2VzcyBTVERJTiBhcy4nKVxuICAuYWN0aW9uKChjbWQpID0+IGxpbnQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdtaWdyYXRlJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IG1pZ3JhdGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdwdWJsaXNoJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWJ1bXAgPHR5cGU+JywgJ0luY3JlbWVudHMgdGhlIHZlcnNpb24uIFR5cGVzIGluY2x1ZGU6IG1ham9yLCBtaW5vciwgcGF0Y2gsIGJldGEsIGFscGhhLCByYy4gRGVmYXVsdDogXCJwYXRjaFwiLicpLmNob2ljZXMoWydtYWpvcicsICdtaW5vcicsICdwYXRjaCcsICdiZXRhJywgJ2FscGhhJywgJ3JjJ10pLmRlZmF1bHQoJ3BhdGNoJykpXG4gIC5vcHRpb24oJy0tbmV3LXZlcnNpb24gPHZlcnNpb25OdW1iZXI+JywgJ1B1Ymxpc2ggYXMgYSBzcGVjaWZpYyB2ZXJzaW9uLicpXG4gIC5vcHRpb24oJy0tb3RwIDxjb2RlPicsICdQcm92aWRlIGEgdHdvLWZhY3RvciBjb2RlLicpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1wYWNrYWdlLW1hbmFnZXIgPG1hbmFnZXI+JywgJ1doaWNoIHBhY2thZ2UgbWFuYWdlciB0byB1c2UuIERlZmF1bHQ6IG5wbScpLmNob2ljZXMoWyducG0nLCAneWFybiddKS5kZWZhdWx0KCducG0nKSlcbiAgLm9wdGlvbignLS1wcml2YXRlJywgJ1B1Ymxpc2hlcyB0aGUgbW9kdWxlIGFzIHJlc3RyaWN0ZWQuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tdGFnIDx0YWc+JywgJ1JlZ2lzdGVycyB0aGUgcHVibGlzaGVkIHBhY2thZ2Ugd2l0aCB0aGUgZ2l2ZW4gdGFnLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gcHVibGlzaChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3Rlc3QnKVxuICAub3B0aW9uKCctLWJhaWwnLCAnRXhpdCB0aGUgdGVzdCBzdWl0ZSBpbW1lZGlhdGVseSB1cG9uIHRoZSBmaXJzdCBmYWlsaW5nIHRlc3Qgc3VpdGUuJylcbiAgLm9wdGlvbignLS1jaGFuZ2VkRmlsZXNXaXRoQW5jZXN0b3InLCAnUnVucyB0ZXN0cyByZWxhdGVkIHRvIHRoZSBjdXJyZW50IGNoYW5nZXMgYW5kIHRoZSBjaGFuZ2VzIG1hZGUgaW4gdGhlIGxhc3QgY29tbWl0LicpXG4gIC5vcHRpb24oJy0tY2hhbmdlZFNpbmNlJywgJ1J1bnMgdGVzdHMgcmVsYXRlZCB0aGUgY2hhbmdlcyBzaW5jZSB0aGUgcHJvdmlkZWQgYnJhbmNoLicpXG4gIC5vcHRpb24oJy0tY2knLCAnV2hlbiB0aGlzIG9wdGlvbiBpcyBwcm92aWRlZCwgSmVzdCB3aWxsIGFzc3VtZSBpdCBpcyBydW5uaW5nIGluIGEgQ0kgZW52aXJvbm1lbnQuJylcbiAgLm9wdGlvbignLS1jbGVhckNhY2hlJywgJ0NsZWFyIEplc3QgY2FjaGUuJylcbiAgLm9wdGlvbignLS1jb2xsZWN0Q292ZXJhZ2VGcm9tIDxnbG9iPicsICdBIGdsb2IgcGF0dGVybiByZWxhdGl2ZSB0byBtYXRjaGluZyB0aGUgZmlsZXMgdGhhdCBjb3ZlcmFnZSBpbmZvIG5lZWRzIHRvIGJlIGNvbGxlY3RlZCBmcm9tLicpXG4gIC5vcHRpb24oJy0tY29sb3JzJywgJ0ZvcmNlcyB0ZXN0IHJlc3VsdHMgb3V0cHV0IGhpZ2hsaWdodGluZyBldmVuIGlmIHN0ZG91dCBpcyBub3QgYSBUVFkuJylcbiAgLm9wdGlvbignLS1jb25maWcgPHBhdGg+JywgJ0N1c3RvbSBKZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gamVzdC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnUHJpbnQgZGVidWdnaW5nIGluZm8gYWJvdXQgeW91ciBKZXN0IGNvbmZpZy4nKVxuICAub3B0aW9uKCctLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seScpXG4gIC5vcHRpb24oJy0tZW52aXJvbm1lbnQgPG5hbWU+JywgJ1RhcmdldCBlbnZpcm9ubWVudC4gXCJub2RlXCIgb3IgXCJ3ZWJcIi4gRGVmYXVsdDogXCJub2RlXCIuJylcbiAgLm9wdGlvbignLS1lbnYnLCAnVGhlIHRlc3QgZW52aXJvbm1lbnQgdXNlZCBmb3IgYWxsIHRlc3RzLiBUaGlzIGNhbiBwb2ludCB0byBhbnkgZmlsZSBvciBub2RlIG1vZHVsZS4gRXhhbXBsZXM6IGpzZG9tLCBub2RlIG9yIHBhdGgvdG8vbXktZW52aXJvbm1lbnQuanMuJylcbiAgLm9wdGlvbignLS1lcnJvck9uRGVwcmVjYXRlZCcsICdNYWtlIGNhbGxpbmcgZGVwcmVjYXRlZCBBUElzIHRocm93IGhlbHBmdWwgZXJyb3IgbWVzc2FnZXMuJylcbiAgLm9wdGlvbignLS1leHBhbmQnLCAnVXNlIHRoaXMgZmxhZyB0byBzaG93IGZ1bGwgZGlmZnMgYW5kIGVycm9ycyBpbnN0ZWFkIG9mIGEgcGF0Y2guJylcbiAgLm9wdGlvbignLS1mb3JjZUV4aXQnLCAnRm9yY2UgSmVzdCB0byBleGl0IGFmdGVyIGFsbCB0ZXN0cyBoYXZlIGNvbXBsZXRlZCBydW5uaW5nLicpXG4gIC5vcHRpb24oJy0tanNvbicsICdQcmludHMgdGhlIHRlc3QgcmVzdWx0cyBpbiBKU09OLicpXG4gIC5vcHRpb24oJy0tbGFzdENvbW1pdCcsICdSdW4gYWxsIHRlc3RzIGFmZmVjdGVkIGJ5IGZpbGUgY2hhbmdlcyBpbiB0aGUgbGFzdCBjb21taXQgbWFkZS4nKVxuICAub3B0aW9uKCctLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy0tbGlzdFRlc3RzJywgJ0xpc3RzIGFsbCB0ZXN0cyBhcyBKU09OIHRoYXQgSmVzdCB3aWxsIHJ1biBnaXZlbiB0aGUgYXJndW1lbnRzLCBhbmQgZXhpdHMuJylcbiAgLm9wdGlvbignLS1sb2dIZWFwVXNhZ2UnLCAnTG9ncyB0aGUgaGVhcCB1c2FnZSBhZnRlciBldmVyeSB0ZXN0LicpXG4gIC5vcHRpb24oJy0tbWF4V29ya2VycyA8bnVtPicsICdTcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdvcmtlcnMgdGhlIHdvcmtlci1wb29sIHdpbGwgc3Bhd24gZm9yIHJ1bm5pbmcgdGVzdHMuICcpXG4gIC5vcHRpb24oJy0tbm9TdGFja1RyYWNlJywgJ0Rpc2FibGVzIHN0YWNrIHRyYWNlIGluIHRlc3QgcmVzdWx0cyBvdXRwdXQuJylcbiAgLm9wdGlvbignLS1ub3RpZnknLCAnQWN0aXZhdGVzIG5vdGlmaWNhdGlvbnMgZm9yIHRlc3QgcmVzdWx0cy4nKVxuICAub3B0aW9uKCctLW9ubHlDaGFuZ2VkJywgJ3VuIGJhc2VkIG9uIHdoaWNoIGZpbGVzIGhhdmUgY2hhbmdlZCBpbiB0aGUgY3VycmVudCByZXBvc2l0b3J5LiAnKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPGZpbGVuYW1lPicsICdXcml0ZSB0ZXN0IHJlc3VsdHMgdG8gYSBmaWxlIHdoZW4gdGhlIC0tanNvbiBvcHRpb24gaXMgYWxzbyBzcGVjaWZpZWQuJylcbiAgLm9wdGlvbignLS1wYXNzV2l0aE5vVGVzdHMnLCAnQWxsb3dzIHRoZSB0ZXN0IHN1aXRlIHRvIHBhc3Mgd2hlbiBubyBmaWxlcyBhcmUgZm91bmQuJylcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tcnVuSW5CYW5kJywgJ1J1biBhbGwgdGVzdHMgc2VyaWFsbHkgaW4gdGhlIGN1cnJlbnQgcHJvY2VzcywgcmF0aGVyIHRoYW4gY3JlYXRpbmcgYSB3b3JrZXIgcG9vbCBvZiBjaGlsZCBwcm9jZXNzZXMgdGhhdCBydW4gdGVzdHMuJylcbiAgLm9wdGlvbignLS1zZXR1cCA8cGF0aD4nLCAnSmVzdCBzZXR1cCBmaWxlIHBhdGguJylcbiAgLm9wdGlvbignLS1zaG93Q29uZmlnJywgJ1ByaW50IHlvdXIgSmVzdCBjb25maWcgYW5kIHRoZW4gZXhpdHMuJylcbiAgLm9wdGlvbignLS1zaWxlbnQnLCAnUHJldmVudCB0ZXN0cyBmcm9tIHByaW50aW5nIG1lc3NhZ2VzIHRocm91Z2ggdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS10ZXN0TG9jYXRpb25JblJlc3VsdHMnLCAnQWRkcyBhIGxvY2F0aW9uIGZpZWxkIHRvIHRlc3QgcmVzdWx0cy4nKVxuICAub3B0aW9uKCctLXRlc3ROYW1lUGF0dGVybiA8cmVnZXg+JywgJ1J1biBvbmx5IHRlc3RzIHdpdGggYSBuYW1lIHRoYXQgbWF0Y2hlcyB0aGUgcmVnZXguICcpXG4gIC5vcHRpb24oJy0tdGVzdFBhdGhQYXR0ZXJuIDxyZWdleD4nLCAnQSByZWdleHAgcGF0dGVybiBzdHJpbmcgdGhhdCBpcyBtYXRjaGVkIGFnYWluc3QgYWxsIHRlc3RzIHBhdGhzIGJlZm9yZSBleGVjdXRpbmcgdGhlIHRlc3QuJylcbiAgLm9wdGlvbignLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy0tdXBkYXRlJywgJ1VwZGF0ZSBzbmFwc2hvdHMuIFJ1bnMgXCJqZXN0IC0tdXBkYXRlU25hcHNob3RzXCInKVxuICAub3B0aW9uKCctLXVzZVN0ZGVycicsICdEaXZlcnQgYWxsIG91dHB1dCB0byBzdGRlcnIuJylcbiAgLm9wdGlvbignLS12ZXJib3NlJywgJ0Rpc3BsYXkgaW5kaXZpZHVhbCB0ZXN0IHJlc3VsdHMgd2l0aCB0aGUgdGVzdCBzdWl0ZSBoaWVyYXJjaHkuJylcbiAgLm9wdGlvbignLS13YXRjaCA8cGF0aD4nLCAnV2F0Y2ggZmlsZXMgZm9yIGNoYW5nZXMgYW5kIHJlcnVuIHRlc3RzIHJlbGF0ZWQgdG8gY2hhbmdlZCBmaWxlcy4nKVxuICAub3B0aW9uKCctLXdhdGNoQWxsJywgJ1dhdGNoIGZpbGVzIGZvciBjaGFuZ2VzIGFuZCByZXJ1biBhbGwgdGVzdHMgd2hlbiBzb21ldGhpbmcgY2hhbmdlcy4nKVxuICAuYWN0aW9uKChjbWQpID0+IHRlc3QoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd1cGRhdGUnKVxuICAub3B0aW9uKCctLWludGVyYWN0aXZlJywgJ0Nob29zZSB3aGljaCBwYWNrYWdlcyB0byB1cGRhdGUuJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXBhY2thZ2UtbWFuYWdlciA8bWFuYWdlcj4nLCAnV2hpY2ggcGFja2FnZSBtYW5hZ2VyIHRvIHVzZS4gRGVmYXVsdDogbnBtJykuY2hvaWNlcyhbJ25wbScsICd5YXJuJ10pLmRlZmF1bHQoJ25wbScpKVxuICAub3B0aW9uKCctLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1yZWdpc3RyeScsICdBZGQgYSBjdXN0b20gcmVnaXN0cnkgdXJsLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gdXBkYXRlKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgndXBncmFkZScpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1wYWNrYWdlLW1hbmFnZXIgPG1hbmFnZXI+JywgJ1doaWNoIHBhY2thZ2UgbWFuYWdlciB0byB1c2UuIERlZmF1bHQ6IG5wbScpLmNob2ljZXMoWyducG0nLCAneWFybiddKS5kZWZhdWx0KCducG0nKSlcbiAgLm9wdGlvbignLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gdXBncmFkZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3ZlcnNpb25zJylcbiAgLm9wdGlvbignLS1qc29uJywgJ1ByaW50IHRoZSB2ZXJzaW9uIGFzIGEgSlNPTiBvYmplY3QuJylcbiAgLmFjdGlvbigoY21kKSA9PiB2ZXJzaW9ucyhjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG4vLyBJbml0aWFsaXplXG5wcm9ncmFtXG4gIC52ZXJzaW9uKHBhY2thZ2VKc29uLnZlcnNpb24pXG4gIC5wYXJzZShwcm9jZXNzLmFyZ3YpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUtBLFNBQVEsUUFBUSxlQUFjO0FBRTlCLE9BQU8saUJBQWlCLGtCQUFrQixPQUFPLEVBQUMsTUFBTSxPQUFNO0FBQzlELFNBQVEsYUFBWTtBQUNwQixTQUFRLGFBQVk7QUFDcEIsU0FBUSxlQUFjO0FBQ3RCLFNBQVEsY0FBYTtBQUNyQixTQUFRLGNBQWE7QUFDckIsU0FBUSxXQUFVO0FBQ2xCLFNBQVEsWUFBVztBQUNuQixTQUFRLGNBQWE7QUFDckIsU0FBUSxZQUFXO0FBQ25CLFNBQVEsZUFBYztBQUN0QixTQUFRLGVBQWM7QUFDdEIsU0FBUSxZQUFXO0FBQ25CLFNBQVEsY0FBYTtBQUNyQixTQUFRLGVBQWM7QUFDdEIsU0FBUSxnQkFBZTtBQUd2QixRQUFRLFFBQVEsT0FBTyxFQUNwQixPQUFPLGFBQWEsd0VBQXdFLEtBQUssRUFDakcsVUFBVSxJQUFJLE9BQU8sb0JBQW9CLDhEQUE4RCxFQUFFLFFBQVEsQ0FBQyxXQUFXLFNBQVMsQ0FBQyxFQUFFLFFBQVEsU0FBUyxDQUFDLEVBQzNKLE9BQU8sbUJBQW1CLGlFQUFpRSxFQUMz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RCxPQUFPLGlCQUFpQixrRUFBa0UsRUFDMUYsT0FBTywyQkFBMkIsd0VBQXdFLEVBQzFHLE9BQU8scUJBQXFCLHdEQUF3RCxFQUNwRixPQUFPLFdBQVcsOENBQThDLEVBQ2hFLE9BQU8sZUFBZSxzSEFBc0gsRUFDNUksT0FBTyxrQkFBa0IsdUJBQXVCLEVBQ2hELE9BQU8sZ0JBQWdCLHdDQUF3QyxFQUMvRCxPQUFPLFlBQVksMkRBQTJELEVBQzlFLE9BQU8sMkJBQTJCLHdDQUF3QyxFQUMxRSxPQUFPLDZCQUE2QixxREFBcUQsRUFDekYsT0FBTyw2QkFBNkIsNEZBQTRGLEVBQ2hJLE9BQU8sZ0JBQWdCLDBCQUEwQixFQUNqRCxPQUFPLFlBQVksaURBQWlELEVBQ3BFLE9BQU8sZUFBZSw4QkFBOEIsRUFDcEQsT0FBTyxhQUFhLGdFQUFnRSxFQUNwRixPQUFPLGtCQUFrQixtRUFBbUUsRUFDNUYsT0FBTyxjQUFjLHFFQUFxRSxFQUMxRixPQUFPLENBQUMsUUFBUSxLQUFLLEtBQUssUUFBUSxJQUFJLEVBQUUsS0FBSyxNQUFNO0FBQUMsQ0FBQyxDQUFDO0FBRXpELFFBQVEsUUFBUSxRQUFRLEVBQ3JCLE9BQU8saUJBQWlCLGtDQUFrQyxFQUMxRCxVQUFVLElBQUksT0FBTywrQkFBK0IsNENBQTRDLEVBQUUsUUFBUSxDQUFDLE9BQU8sTUFBTSxDQUFDLEVBQUUsUUFBUSxLQUFLLENBQUMsRUFDekksT0FBTyxXQUFXLDhDQUE4QyxFQUNoRSxPQUFPLGNBQWMsNEJBQTRCLEVBQ2pELE9BQU8sQ0FBQyxRQUFRLE9BQU8sS0FBSyxRQUFRLElBQUksRUFBRSxLQUFLLE1BQU07QUFBQyxDQUFDLENBQUM7QUFFM0QsUUFBUSxRQUFRLFNBQVMsRUFDdEIsVUFBVSxJQUFJLE9BQU8sK0JBQStCLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxFQUFFLFFBQVEsS0FBSyxDQUFDLEVBQ3pJLE9BQU8sV0FBVyw4Q0FBOEMsRUFDaEUsT0FBTyxDQUFDLFFBQVEsUUFBUSxLQUFLLFFBQVEsSUFBSSxFQUFFLEtBQUssTUFBTTtBQUFDLENBQUMsQ0FBQztBQUU1RCxRQUFRLFFBQVEsVUFBVSxFQUN2QixPQUFPLFVBQVUscUNBQXFDLEVBQ3RELE9BQU8sQ0FBQyxRQUFRLFNBQVMsS0FBSyxRQUFRLElBQUksRUFBRSxLQUFLLE1BQU07QUFBQyxDQUFDLENBQUM7QUFHN0QsUUFDRyxRQUFRLFlBQVksT0FBTyxFQUMzQixNQUFNLFFBQVEsSUFBSTsiLAogICJuYW1lcyI6IFtdCn0K
|
package/dist/lint.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { program } from "commander";
|
|
3
|
+
import packageJson from "../package.json" assert { type: "json" };
|
|
4
|
+
import { lint } from "./commands/lint.js";
|
|
5
|
+
program.option("--cache", "Only check changed files. Default: false.", false).option("--cache-location <path>", "Path to the cache file or directory.").option("--color", "Force enabling of color.", false).option("--config <path>", "Use this configuration, overriding .eslintrc.* config options if present.").option("--debug", "Output debugging information.", false).option("--env-info", "Output execution environment information. Default: false.", false).option("--env <name>", "Specify environments.").option("--ext <type>", "Specify JavaScript file extensions. Default: .js.").option("--fix", "Automatically fix problems.", false).option("--fix-dry-run", "Automatically fix problems without saving the changes to the file system.", false).option("--fix-type <type>", "Specify the types of fixes to apply (problem, suggestion, layout).").option("--format <name>", "Use a specific output format. Default: stylish.").option("--global <variables>", "Define global variables.").option("--ignore-path <path>", "Specify path of ignore file.").option("--ignore-pattern <pattern>", "Pattern of files to ignore (in addition to those in .eslintignore).").option("--init", "Run config initialization wizard. Default: false.", false).option("--max-warnings <num>", "Number of warnings to trigger nonzero exit code. Default: -1.").option("--no-color", "Force disabling of color.", false).option("--no-eslintrc", "Disable use of configuration from .eslintrc.*.", false).option("--no-ignore", "Disable use of ignore files and patterns.", false).option("--no-inline-config", "Prevent comments from changing config or rules.", false).option("--output-file <path>", "Specify file to write report to.").option("--parser <name>", "Specify the parser to be used.").option("--parser-options <options>", "Specify parser options.").option("--plugin <plugins>", "Specify plugins.").option("--print-config <path>", "Print the configuration for the given file.").option("--quiet", "No Lex notifications printed in the console.", false).option("--report-unused-disable-directives", "Adds reported errors for unused eslint-disable directives.", false).option("--resolve-plugins-relative-to <path>", "A folder where plugins should be resolved from.").option("--rule <path>", "Specify rules.").option("--rulesdir <path>", "Use additional rules from this directory.").option("--stdin", "Lint code provided on <STDIN> - Default: false.", false).option("--stdin-filename <name>", "Specify filename to process STDIN as.").action((cmd) => lint(cmd, process.exit).then(() => {
|
|
6
|
+
}));
|
|
7
|
+
program.version(packageJson.version).parse(process.argv);
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIiMhL3Vzci9iaW4vZW52IG5vZGVcbi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIzLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3Byb2dyYW19IGZyb20gJ2NvbW1hbmRlcic7XG5cbmltcG9ydCBwYWNrYWdlSnNvbiBmcm9tICcuLi9wYWNrYWdlLmpzb24nIGFzc2VydCB7dHlwZTogJ2pzb24nfTtcbmltcG9ydCB7bGludH0gZnJvbSAnLi9jb21tYW5kcy9saW50LmpzJztcblxucHJvZ3JhbVxuICAub3B0aW9uKCctLWNhY2hlJywgJ09ubHkgY2hlY2sgY2hhbmdlZCBmaWxlcy4gRGVmYXVsdDogZmFsc2UuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tY2FjaGUtbG9jYXRpb24gPHBhdGg+JywgJ1BhdGggdG8gdGhlIGNhY2hlIGZpbGUgb3IgZGlyZWN0b3J5LicpXG4gIC5vcHRpb24oJy0tY29sb3InLCAnRm9yY2UgZW5hYmxpbmcgb2YgY29sb3IuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tY29uZmlnIDxwYXRoPicsICdVc2UgdGhpcyBjb25maWd1cmF0aW9uLCBvdmVycmlkaW5nIC5lc2xpbnRyYy4qIGNvbmZpZyBvcHRpb25zIGlmIHByZXNlbnQuJylcbiAgLm9wdGlvbignLS1kZWJ1ZycsICdPdXRwdXQgZGVidWdnaW5nIGluZm9ybWF0aW9uLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWVudi1pbmZvJywgJ091dHB1dCBleGVjdXRpb24gZW52aXJvbm1lbnQgaW5mb3JtYXRpb24uIERlZmF1bHQ6IGZhbHNlLicsIGZhbHNlKVxuICAub3B0aW9uKCctLWVudiA8bmFtZT4nLCAnU3BlY2lmeSBlbnZpcm9ubWVudHMuJylcbiAgLm9wdGlvbignLS1leHQgPHR5cGU+JywgJ1NwZWNpZnkgSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbnMuIERlZmF1bHQ6IC5qcy4nKVxuICAub3B0aW9uKCctLWZpeCcsICdBdXRvbWF0aWNhbGx5IGZpeCBwcm9ibGVtcy4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1maXgtZHJ5LXJ1bicsICdBdXRvbWF0aWNhbGx5IGZpeCBwcm9ibGVtcyB3aXRob3V0IHNhdmluZyB0aGUgY2hhbmdlcyB0byB0aGUgZmlsZSBzeXN0ZW0uJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tZml4LXR5cGUgPHR5cGU+JywgJ1NwZWNpZnkgdGhlIHR5cGVzIG9mIGZpeGVzIHRvIGFwcGx5IChwcm9ibGVtLCBzdWdnZXN0aW9uLCBsYXlvdXQpLicpXG4gIC5vcHRpb24oJy0tZm9ybWF0IDxuYW1lPicsICdVc2UgYSBzcGVjaWZpYyBvdXRwdXQgZm9ybWF0LiBEZWZhdWx0OiBzdHlsaXNoLicpXG4gIC5vcHRpb24oJy0tZ2xvYmFsIDx2YXJpYWJsZXM+JywgJ0RlZmluZSBnbG9iYWwgdmFyaWFibGVzLicpXG4gIC5vcHRpb24oJy0taWdub3JlLXBhdGggPHBhdGg+JywgJ1NwZWNpZnkgcGF0aCBvZiBpZ25vcmUgZmlsZS4nKVxuICAub3B0aW9uKCctLWlnbm9yZS1wYXR0ZXJuIDxwYXR0ZXJuPicsICdQYXR0ZXJuIG9mIGZpbGVzIHRvIGlnbm9yZSAoaW4gYWRkaXRpb24gdG8gdGhvc2UgaW4gLmVzbGludGlnbm9yZSkuJylcbiAgLm9wdGlvbignLS1pbml0JywgJ1J1biBjb25maWcgaW5pdGlhbGl6YXRpb24gd2l6YXJkLiBEZWZhdWx0OiBmYWxzZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1tYXgtd2FybmluZ3MgPG51bT4nLCAnTnVtYmVyIG9mIHdhcm5pbmdzIHRvIHRyaWdnZXIgbm9uemVybyBleGl0IGNvZGUuIERlZmF1bHQ6IC0xLicpXG4gIC5vcHRpb24oJy0tbm8tY29sb3InLCAnRm9yY2UgZGlzYWJsaW5nIG9mIGNvbG9yLicsIGZhbHNlKVxuICAub3B0aW9uKCctLW5vLWVzbGludHJjJywgJ0Rpc2FibGUgdXNlIG9mIGNvbmZpZ3VyYXRpb24gZnJvbSAuZXNsaW50cmMuKi4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1uby1pZ25vcmUnLCAnRGlzYWJsZSB1c2Ugb2YgaWdub3JlIGZpbGVzIGFuZCBwYXR0ZXJucy4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1uby1pbmxpbmUtY29uZmlnJywgJ1ByZXZlbnQgY29tbWVudHMgZnJvbSBjaGFuZ2luZyBjb25maWcgb3IgcnVsZXMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tb3V0cHV0LWZpbGUgPHBhdGg+JywgJ1NwZWNpZnkgZmlsZSB0byB3cml0ZSByZXBvcnQgdG8uJylcbiAgLm9wdGlvbignLS1wYXJzZXIgPG5hbWU+JywgJ1NwZWNpZnkgdGhlIHBhcnNlciB0byBiZSB1c2VkLicpXG4gIC5vcHRpb24oJy0tcGFyc2VyLW9wdGlvbnMgPG9wdGlvbnM+JywgJ1NwZWNpZnkgcGFyc2VyIG9wdGlvbnMuJylcbiAgLm9wdGlvbignLS1wbHVnaW4gPHBsdWdpbnM+JywgJ1NwZWNpZnkgcGx1Z2lucy4nKVxuICAub3B0aW9uKCctLXByaW50LWNvbmZpZyA8cGF0aD4nLCAnUHJpbnQgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnaXZlbiBmaWxlLicpXG4gIC5vcHRpb24oJy0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1yZXBvcnQtdW51c2VkLWRpc2FibGUtZGlyZWN0aXZlcycsICdBZGRzIHJlcG9ydGVkIGVycm9ycyBmb3IgdW51c2VkIGVzbGludC1kaXNhYmxlIGRpcmVjdGl2ZXMuJywgZmFsc2UpXG4gIC5vcHRpb24oJy0tcmVzb2x2ZS1wbHVnaW5zLXJlbGF0aXZlLXRvIDxwYXRoPicsICdBIGZvbGRlciB3aGVyZSBwbHVnaW5zIHNob3VsZCBiZSByZXNvbHZlZCBmcm9tLicpXG4gIC5vcHRpb24oJy0tcnVsZSA8cGF0aD4nLCAnU3BlY2lmeSBydWxlcy4nKVxuICAub3B0aW9uKCctLXJ1bGVzZGlyIDxwYXRoPicsICdVc2UgYWRkaXRpb25hbCBydWxlcyBmcm9tIHRoaXMgZGlyZWN0b3J5LicpXG4gIC5vcHRpb24oJy0tc3RkaW4nLCAnTGludCBjb2RlIHByb3ZpZGVkIG9uIDxTVERJTj4gLSBEZWZhdWx0OiBmYWxzZS4nLCBmYWxzZSlcbiAgLm9wdGlvbignLS1zdGRpbi1maWxlbmFtZSA8bmFtZT4nLCAnU3BlY2lmeSBmaWxlbmFtZSB0byBwcm9jZXNzIFNURElOIGFzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gbGludChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtXG4gIC52ZXJzaW9uKHBhY2thZ2VKc29uLnZlcnNpb24pXG4gIC5wYXJzZShwcm9jZXNzLmFyZ3YpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUtBLFNBQVEsZUFBYztBQUV0QixPQUFPLGlCQUFpQixrQkFBa0IsT0FBTyxFQUFDLE1BQU0sT0FBTTtBQUM5RCxTQUFRLFlBQVc7QUFFbkIsUUFDRyxPQUFPLFdBQVcsNkNBQTZDLEtBQUssRUFDcEUsT0FBTywyQkFBMkIsc0NBQXNDLEVBQ3hFLE9BQU8sV0FBVyw0QkFBNEIsS0FBSyxFQUNuRCxPQUFPLG1CQUFtQiwyRUFBMkUsRUFDckcsT0FBTyxXQUFXLGlDQUFpQyxLQUFLLEVBQ3hELE9BQU8sY0FBYyw2REFBNkQsS0FBSyxFQUN2RixPQUFPLGdCQUFnQix1QkFBdUIsRUFDOUMsT0FBTyxnQkFBZ0IsbURBQW1ELEVBQzFFLE9BQU8sU0FBUywrQkFBK0IsS0FBSyxFQUNwRCxPQUFPLGlCQUFpQiw2RUFBNkUsS0FBSyxFQUMxRyxPQUFPLHFCQUFxQixvRUFBb0UsRUFDaEcsT0FBTyxtQkFBbUIsaURBQWlELEVBQzNFLE9BQU8sd0JBQXdCLDBCQUEwQixFQUN6RCxPQUFPLHdCQUF3Qiw4QkFBOEIsRUFDN0QsT0FBTyw4QkFBOEIscUVBQXFFLEVBQzFHLE9BQU8sVUFBVSxxREFBcUQsS0FBSyxFQUMzRSxPQUFPLHdCQUF3QiwrREFBK0QsRUFDOUYsT0FBTyxjQUFjLDZCQUE2QixLQUFLLEVBQ3ZELE9BQU8saUJBQWlCLGtEQUFrRCxLQUFLLEVBQy9FLE9BQU8sZUFBZSw2Q0FBNkMsS0FBSyxFQUN4RSxPQUFPLHNCQUFzQixtREFBbUQsS0FBSyxFQUNyRixPQUFPLHdCQUF3QixrQ0FBa0MsRUFDakUsT0FBTyxtQkFBbUIsZ0NBQWdDLEVBQzFELE9BQU8sOEJBQThCLHlCQUF5QixFQUM5RCxPQUFPLHNCQUFzQixrQkFBa0IsRUFDL0MsT0FBTyx5QkFBeUIsNkNBQTZDLEVBQzdFLE9BQU8sV0FBVyxnREFBZ0QsS0FBSyxFQUN2RSxPQUFPLHNDQUFzQyw4REFBOEQsS0FBSyxFQUNoSCxPQUFPLHdDQUF3QyxpREFBaUQsRUFDaEcsT0FBTyxpQkFBaUIsZ0JBQWdCLEVBQ3hDLE9BQU8scUJBQXFCLDJDQUEyQyxFQUN2RSxPQUFPLFdBQVcsbURBQW1ELEtBQUssRUFDMUUsT0FBTywyQkFBMkIsdUNBQXVDLEVBQ3pFLE9BQU8sQ0FBQyxRQUFRLEtBQUssS0FBSyxRQUFRLElBQUksRUFBRSxLQUFLLE1BQU07QUFBQyxDQUFDLENBQUM7QUFFekQsUUFDRyxRQUFRLFlBQVksT0FBTyxFQUMzQixNQUFNLFFBQVEsSUFBSTsiLAogICJuYW1lcyI6IFtdCn0K
|
package/dist/utils/app.js
CHANGED
|
@@ -214,4 +214,4 @@ export {
|
|
|
214
214
|
setPackageJson,
|
|
215
215
|
updateTemplateName
|
|
216
216
|
};
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBib3hlbiBmcm9tICdib3hlbic7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtnbG9iU3luY30gZnJvbSAnZ2xvYic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eS5qcyc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQge2Jhc2VuYW1lIGFzIHBhdGhCYXNlbmFtZSwgam9pbiBhcyBwYXRoSm9pbiwgcmVsYXRpdmUgYXMgcGF0aFJlbGF0aXZlLCByZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB7cmltcmFmU3luY30gZnJvbSAncmltcmFmJztcblxuaW1wb3J0IHtsb2d9IGZyb20gJy4vbG9nLmpzJztcbmltcG9ydCB0eXBlIHtMZXhDb25maWdUeXBlfSBmcm9tICcuLi9MZXhDb25maWcuanMnO1xuXG5leHBvcnQgY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZW5hbWVzID0gKHByb3BzOiBhbnkpID0+IHtcbiAgY29uc3Qge2NhbGxiYWNrLCBjbGlOYW1lLCBuYW1lLCBxdWlldCwgdHlwZSwgdXNlVHlwZXNjcmlwdH0gPSBwcm9wcztcblxuICAvLyBTZXQgZmlsZW5hbWVcbiAgbGV0IG5hbWVDYXBzOiBzdHJpbmc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYoaXRlbVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7dHlwZX0gbmFtZSBpcyByZXF1aXJlZC4gUGxlYXNlIHVzZSAnbGV4IC1oJyBmb3Igb3B0aW9ucy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2soMSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5hbWVDYXBzID0gYCR7bmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke25hbWUuc3Vic3RyKDEpfWA7XG4gIH1cblxuICAvLyBEaXNwbGF5IG1lc3NhZ2VcbiAgbG9nKGAke2NsaU5hbWV9IGFkZGluZyAke25hbWV9ICR7dHlwZX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBUZW1wbGF0ZSBkaXJlY3RvcnlcbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTcGlubmVyID0gKHF1aWV0ID0gZmFsc2UpOiBhbnkgPT4ge1xuICBpZihxdWlldCkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWlsOiAoKSA9PiB7fSxcbiAgICAgIHN0YXJ0OiAoKSA9PiB7fSxcbiAgICAgIHN1Y2NlZWQ6ICgpID0+IHt9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBvcmEoe2NvbG9yOiAneWVsbG93J30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGaWxlcyA9IGFzeW5jIChmaWxlczogc3RyaW5nW10sIHR5cGVOYW1lOiBzdHJpbmcsIHNwaW5uZXIsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB7b3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgY29uc3QgaXRlbXMgPSBmaWxlcy5tYXAoKGZpbGVOYW1lOiBzdHJpbmcpID0+ICh7XG4gICAgZnJvbTogZmlsZU5hbWUsXG4gICAgdG86IHBhdGhSZXNvbHZlKG91dHB1dEZ1bGxQYXRoLCBwYXRoUmVsYXRpdmUoc291cmNlRnVsbFBhdGgsIGZpbGVOYW1lKSlcbiAgfSkpO1xuXG4gIHRyeSB7XG4gICAgc3Bpbm5lci5zdGFydChgQ29weWluZyAke3R5cGVOYW1lfSBmaWxlcy4uLmApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zLm1hcCgoe2Zyb20sIHRvfSkgPT4gbmV3IFByb21pc2UoXG4gICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIG1rZGlyU3luYyhwYXRoUmVzb2x2ZSh0bywgJy4uJyksIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuIGNvcHlGaWxlKGZyb20sIHRvLCAoY29weUVycm9yKSA9PiB7XG4gICAgICAgICAgaWYoY29weUVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICkpKTtcbiAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBjb3BpZWQgJHtmaWxlcy5sZW5ndGh9ICR7dHlwZU5hbWV9IGZpbGVzIWApO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5mYWlsKGBDb3B5aW5nIG9mICR7dHlwZU5hbWV9IGZpbGVzIGZhaWxlZC5gKTtcbiAgICBsb2coYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJyk7XG4gICAgY29uc29sZS5sb2coZXJyb3IpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykgPT4ge1xuICBsZXQgdGFyZ2V0RmlsZTogc3RyaW5nID0gdGFyZ2V0O1xuXG4gIC8vIElmIHRhcmdldCBpcyBhIGRpcmVjdG9yeSBhIG5ldyBmaWxlIHdpdGggdGhlIHNhbWUgbmFtZSB3aWxsIGJlIGNyZWF0ZWRcbiAgaWYoZXhpc3RzU3luYyh0YXJnZXQpKSB7XG4gICAgaWYobHN0YXRTeW5jKHRhcmdldCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGFyZ2V0RmlsZSA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlRmlsZVN5bmModGFyZ2V0RmlsZSwgcmVhZEZpbGVTeW5jKHNvdXJjZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gQ2hlY2sgaWYgZm9sZGVyIG5lZWRzIHRvIGJlIGNyZWF0ZWQgb3IgaW50ZWdyYXRlZFxuICBjb25zdCB0YXJnZXRGb2xkZXI6IHN0cmluZyA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuXG4gIGlmKCFleGlzdHNTeW5jKHRhcmdldEZvbGRlcikpIHtcbiAgICBta2RpclN5bmModGFyZ2V0Rm9sZGVyKTtcbiAgfVxuXG4gIC8vIENvcHlcbiAgaWYobHN0YXRTeW5jKHNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVzID0gcmVhZGRpclN5bmMoc291cmNlKTtcbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1clNvdXJjZTogc3RyaW5nID0gcGF0aEpvaW4oc291cmNlLCBmaWxlKTtcblxuICAgICAgaWYobHN0YXRTeW5jKGN1clNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3B5RmlsZVN5bmMoY3VyU291cmNlLCB0YXJnZXRGb2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGFja2FnZUpzb24gPSAocGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZm9ybWF0UGF0aDogc3RyaW5nID0gcGFja2FnZVBhdGggfHwgYCR7cHJvY2Vzcy5jd2QoKX0vcGFja2FnZS5qc29uYDtcblxuICAvLyBDb25maWd1cmUgcGFja2FnZS5qc29uXG4gIGNvbnN0IHBhY2thZ2VEYXRhOiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoZm9ybWF0UGF0aCkudG9TdHJpbmcoKTtcbiAgcmV0dXJuIEpTT04ucGFyc2UocGFja2FnZURhdGEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGVzQnlFeHQgPSAoZXh0OiBzdHJpbmcsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3Qge3NvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgcmV0dXJuIGdsb2JTeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKiR7ZXh0fWApO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbmZsaWN0TW9kdWxlcyA9IChtb2R1bGVMaXN0OiBvYmplY3QpID0+IHtcbiAgY29uc3QgdXBkYXRlZExpc3Q6IG9iamVjdCA9IHsuLi5tb2R1bGVMaXN0fTtcblxuICBPYmplY3Qua2V5cyh1cGRhdGVkTGlzdCkuZm9yRWFjaCgobW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14oPyFAdHlwZXNcXC8pLiooamVzdHx3ZWJwYWNrKS4qJCcsICdnaScpO1xuICAgIGlmKHJlZ2V4LnRlc3QobW9kdWxlTmFtZSkpIHtcbiAgICAgIGRlbGV0ZSB1cGRhdGVkTGlzdFttb2R1bGVOYW1lXTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1cGRhdGVkTGlzdDtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVGaWxlcyA9IChmaWxlTmFtZTogc3RyaW5nLCBpc1JlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgY29uc3QgZmlsZVBhdGg6IHN0cmluZyA9IGlzUmVsYXRpdmUgPyBwYXRoUmVzb2x2ZShjd2QsIGZpbGVOYW1lKSA6IGZpbGVOYW1lO1xuICB0cnkge1xuICAgIHJpbXJhZlN5bmMoZmlsZVBhdGgpO1xuICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTW9kdWxlcyA9ICgpID0+IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgdHJ5IHtcbiAgICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vbm9kZV9tb2R1bGVzJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgeWFybiBsb2NrXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4veWFybi5sb2NrJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgbnBtIGxvY2tcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9wYWNrYWdlLWxvY2suanNvbicsIHRydWUpO1xuXG4gICAgcmVzb2x2ZShudWxsKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3Qgc2V0UGFja2FnZUpzb24gPSAoanNvbiwgcGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgaWYoIWpzb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuXG4gIC8vIFVwZGF0ZSBwYWNrYWdlLmpzb25cbiAgd3JpdGVGaWxlU3luYyhmb3JtYXRQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZE1vZHVsZVR5cGUge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGxpbmtlZE1vZHVsZXMgPSAoc3RhcnRQYXRoPzogc3RyaW5nKTogTGlua2VkTW9kdWxlVHlwZVtdID0+IHtcbiAgY29uc3Qgd29ya2luZ1BhdGg6IHN0cmluZyA9IHN0YXJ0UGF0aCB8fCBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgbW9kdWxlUGF0aDogc3RyaW5nO1xuICBsZXQgcHJlZml4OiBzdHJpbmc7XG5cbiAgLy8gaWYgd2UgaGF2ZSBhIHNjb3BlIHdlIHNob3VsZCBjaGVjayBpZiB0aGUgbW9kdWxlcyBpbnNpZGUgdGhlIGZvbGRlciBpcyBsaW5rZWRcbiAgaWYod29ya2luZ1BhdGguaW5jbHVkZXMoJ0AnKSkge1xuICAgIHByZWZpeCA9IGBAJHt3b3JraW5nUGF0aC5zcGxpdCgnQCcpLnBvcCgpfWA7XG4gICAgbW9kdWxlUGF0aCA9IHdvcmtpbmdQYXRoO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZVBhdGggPSBwYXRoSm9pbih3b3JraW5nUGF0aCwgJ25vZGVfbW9kdWxlcycpO1xuICB9XG5cbiAgY29uc3QgZm91bmRQYXRoczogc3RyaW5nW10gPSBnbG9iU3luYyhgJHttb2R1bGVQYXRofS8qYCk7XG4gIHJldHVybiBmb3VuZFBhdGhzLnJlZHVjZSgobGlzdDogTGlua2VkTW9kdWxlVHlwZVtdLCBmb3VuZFBhdGg6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IGxzdGF0U3luYyhmb3VuZFBhdGgpO1xuXG4gICAgICBpZihzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvbnN0IGRlZXBMaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10gPSBsaW5rZWRNb2R1bGVzKGZvdW5kUGF0aCk7XG4gICAgICAgIGxpc3QucHVzaCguLi5kZWVwTGlzdCk7XG4gICAgICB9IGVsc2UgaWYoc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lczogc3RyaW5nW10gPSAoW3ByZWZpeCwgcGF0aEJhc2VuYW1lKGZvdW5kUGF0aCldKS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gIWlzRW1wdHkoaXRlbSkpO1xuICAgICAgICBsaXN0LnB1c2goe25hbWU6IGAke21vZHVsZU5hbWVzLmpvaW4oJy8nKX1gLCBwYXRoOiBmb3VuZFBhdGh9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSBjYXRjaChmc0Vycm9yKSB7XG4gICAgICB0aHJvdyBmc0Vycm9yO1xuICAgIH1cbiAgfSwgW10pO1xufTtcblxuLy8gQ2hlY2sgZm9yIGxpbmtlZCBtb2R1bGVzXG5leHBvcnQgY29uc3QgY2hlY2tMaW5rZWRNb2R1bGVzID0gKCkgPT4ge1xuICBjb25zdCBsaW5rZWQgPSBsaW5rZWRNb2R1bGVzKCk7XG5cbiAgaWYobGlua2VkLmxlbmd0aCkge1xuICAgIGNvbnN0IG1zZ01vZHVsZTogc3RyaW5nID0gbGlua2VkLmxlbmd0aCA+IDEgPyAnTW9kdWxlcycgOiAnTW9kdWxlJztcbiAgICBjb25zdCBsaW5rZWRNc2c6IHN0cmluZyA9IGxpbmtlZC5yZWR1Y2UoXG4gICAgICAobXNnOiBzdHJpbmcsIGxpbmtlZE1vZHVsZTogTGlua2VkTW9kdWxlVHlwZSkgPT5cbiAgICAgICAgYCR7bXNnfVxcbiAqICR7bGlua2VkTW9kdWxlLm5hbWV9YCxcbiAgICAgIGBMaW5rZWQgJHttc2dNb2R1bGV9OmBcbiAgICApO1xuICAgIGxvZyhib3hlbihsaW5rZWRNc2csIHtkaW1Cb3JkZXI6IHRydWUsIHBhZGRpbmc6IDF9KSwgJ3dhcm4nKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRlbXBsYXRlTmFtZSA9IChmaWxlUGF0aDogc3RyaW5nLCByZXBsYWNlOiBzdHJpbmcsIHJlcGxhY2VDYXBzOiBzdHJpbmcpID0+IHtcbiAgbGV0IGRhdGE6IHN0cmluZyA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgZGF0YSA9IGRhdGEucmVwbGFjZSgvc2FtcGxlL2csIHJlcGxhY2UpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9TYW1wbGUvZywgcmVwbGFjZUNhcHMpO1xuICB3cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBkYXRhLCAndXRmOCcpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQU8sV0FBVztBQUNsQixTQUFRLFVBQVUsWUFBWSxXQUFXLFdBQVcsYUFBYSxjQUFjLHFCQUFvQjtBQUNuRyxTQUFRLGdCQUFlO0FBQ3ZCLE9BQU8sYUFBYTtBQUNwQixPQUFPLFNBQVM7QUFDaEIsU0FBUSxZQUFZLGNBQWMsUUFBUSxVQUFVLFlBQVksY0FBYyxXQUFXLG1CQUFrQjtBQUMzRyxTQUFRLGtCQUFpQjtBQUV6QixTQUFRLFdBQVU7QUFHWCxNQUFNLE1B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
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBib3hlbiBmcm9tICdib3hlbic7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtnbG9iU3luY30gZnJvbSAnZ2xvYic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eS5qcyc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQge2Jhc2VuYW1lIGFzIHBhdGhCYXNlbmFtZSwgam9pbiBhcyBwYXRoSm9pbiwgcmVsYXRpdmUgYXMgcGF0aFJlbGF0aXZlLCByZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB7cmltcmFmU3luY30gZnJvbSAncmltcmFmJztcblxuaW1wb3J0IHtsb2d9IGZyb20gJy4vbG9nLmpzJztcbmltcG9ydCB0eXBlIHtMZXhDb25maWdUeXBlfSBmcm9tICcuLi9MZXhDb25maWcuanMnO1xuXG5leHBvcnQgY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZW5hbWVzID0gKHByb3BzOiBhbnkpID0+IHtcbiAgY29uc3Qge2NhbGxiYWNrLCBjbGlOYW1lLCBuYW1lLCBxdWlldCwgdHlwZSwgdXNlVHlwZXNjcmlwdH0gPSBwcm9wcztcblxuICAvLyBTZXQgZmlsZW5hbWVcbiAgbGV0IG5hbWVDYXBzOiBzdHJpbmc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYoaXRlbVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7dHlwZX0gbmFtZSBpcyByZXF1aXJlZC4gUGxlYXNlIHVzZSAnbGV4IC1oJyBmb3Igb3B0aW9ucy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2soMSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5hbWVDYXBzID0gYCR7bmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke25hbWUuc3Vic3RyKDEpfWA7XG4gIH1cblxuICAvLyBEaXNwbGF5IG1lc3NhZ2VcbiAgbG9nKGAke2NsaU5hbWV9IGFkZGluZyAke25hbWV9ICR7dHlwZX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICAvLyBUZW1wbGF0ZSBkaXJlY3RvcnlcbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTcGlubmVyID0gKHF1aWV0ID0gZmFsc2UpOiBhbnkgPT4ge1xuICBpZihxdWlldCkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWlsOiAoKSA9PiB7fSxcbiAgICAgIHN0YXJ0OiAoKSA9PiB7fSxcbiAgICAgIHN1Y2NlZWQ6ICgpID0+IHt9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBvcmEoe2NvbG9yOiAneWVsbG93J30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGaWxlcyA9IGFzeW5jIChmaWxlczogc3RyaW5nW10sIHR5cGVOYW1lOiBzdHJpbmcsIHNwaW5uZXIsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB7b3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgY29uc3QgaXRlbXMgPSBmaWxlcy5tYXAoKGZpbGVOYW1lOiBzdHJpbmcpID0+ICh7XG4gICAgZnJvbTogZmlsZU5hbWUsXG4gICAgdG86IHBhdGhSZXNvbHZlKG91dHB1dEZ1bGxQYXRoLCBwYXRoUmVsYXRpdmUoc291cmNlRnVsbFBhdGgsIGZpbGVOYW1lKSlcbiAgfSkpO1xuXG4gIHRyeSB7XG4gICAgc3Bpbm5lci5zdGFydChgQ29weWluZyAke3R5cGVOYW1lfSBmaWxlcy4uLmApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zLm1hcCgoe2Zyb20sIHRvfSkgPT4gbmV3IFByb21pc2UoXG4gICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIG1rZGlyU3luYyhwYXRoUmVzb2x2ZSh0bywgJy4uJyksIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuIGNvcHlGaWxlKGZyb20sIHRvLCAoY29weUVycm9yKSA9PiB7XG4gICAgICAgICAgaWYoY29weUVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICkpKTtcbiAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBjb3BpZWQgJHtmaWxlcy5sZW5ndGh9ICR7dHlwZU5hbWV9IGZpbGVzIWApO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgLy8gU3RvcCBzcGlubmVyXG4gICAgc3Bpbm5lci5mYWlsKGBDb3B5aW5nIG9mICR7dHlwZU5hbWV9IGZpbGVzIGZhaWxlZC5gKTtcbiAgICBsb2coYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJyk7XG4gICAgY29uc29sZS5sb2coZXJyb3IpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykgPT4ge1xuICBsZXQgdGFyZ2V0RmlsZTogc3RyaW5nID0gdGFyZ2V0O1xuXG4gIC8vIElmIHRhcmdldCBpcyBhIGRpcmVjdG9yeSBhIG5ldyBmaWxlIHdpdGggdGhlIHNhbWUgbmFtZSB3aWxsIGJlIGNyZWF0ZWRcbiAgaWYoZXhpc3RzU3luYyh0YXJnZXQpKSB7XG4gICAgaWYobHN0YXRTeW5jKHRhcmdldCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGFyZ2V0RmlsZSA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlRmlsZVN5bmModGFyZ2V0RmlsZSwgcmVhZEZpbGVTeW5jKHNvdXJjZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gQ2hlY2sgaWYgZm9sZGVyIG5lZWRzIHRvIGJlIGNyZWF0ZWQgb3IgaW50ZWdyYXRlZFxuICBjb25zdCB0YXJnZXRGb2xkZXI6IHN0cmluZyA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuXG4gIGlmKCFleGlzdHNTeW5jKHRhcmdldEZvbGRlcikpIHtcbiAgICBta2RpclN5bmModGFyZ2V0Rm9sZGVyKTtcbiAgfVxuXG4gIC8vIENvcHlcbiAgaWYobHN0YXRTeW5jKHNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVzID0gcmVhZGRpclN5bmMoc291cmNlKTtcbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1clNvdXJjZTogc3RyaW5nID0gcGF0aEpvaW4oc291cmNlLCBmaWxlKTtcblxuICAgICAgaWYobHN0YXRTeW5jKGN1clNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3B5RmlsZVN5bmMoY3VyU291cmNlLCB0YXJnZXRGb2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGFja2FnZUpzb24gPSAocGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZm9ybWF0UGF0aDogc3RyaW5nID0gcGFja2FnZVBhdGggfHwgYCR7cHJvY2Vzcy5jd2QoKX0vcGFja2FnZS5qc29uYDtcblxuICAvLyBDb25maWd1cmUgcGFja2FnZS5qc29uXG4gIGNvbnN0IHBhY2thZ2VEYXRhOiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoZm9ybWF0UGF0aCkudG9TdHJpbmcoKTtcbiAgcmV0dXJuIEpTT04ucGFyc2UocGFja2FnZURhdGEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGVzQnlFeHQgPSAoZXh0OiBzdHJpbmcsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3Qge3NvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgcmV0dXJuIGdsb2JTeW5jKGAke3NvdXJjZUZ1bGxQYXRofS8qKi8qKiR7ZXh0fWApO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbmZsaWN0TW9kdWxlcyA9IChtb2R1bGVMaXN0OiBvYmplY3QpID0+IHtcbiAgY29uc3QgdXBkYXRlZExpc3Q6IG9iamVjdCA9IHsuLi5tb2R1bGVMaXN0fTtcblxuICBPYmplY3Qua2V5cyh1cGRhdGVkTGlzdCkuZm9yRWFjaCgobW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14oPyFAdHlwZXNcXC8pLiooamVzdHx3ZWJwYWNrKS4qJCcsICdnaScpO1xuICAgIGlmKHJlZ2V4LnRlc3QobW9kdWxlTmFtZSkpIHtcbiAgICAgIGRlbGV0ZSB1cGRhdGVkTGlzdFttb2R1bGVOYW1lXTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1cGRhdGVkTGlzdDtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVGaWxlcyA9IChmaWxlTmFtZTogc3RyaW5nLCBpc1JlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgY29uc3QgZmlsZVBhdGg6IHN0cmluZyA9IGlzUmVsYXRpdmUgPyBwYXRoUmVzb2x2ZShjd2QsIGZpbGVOYW1lKSA6IGZpbGVOYW1lO1xuICB0cnkge1xuICAgIHJpbXJhZlN5bmMoZmlsZVBhdGgpO1xuICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTW9kdWxlcyA9ICgpID0+IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgdHJ5IHtcbiAgICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vbm9kZV9tb2R1bGVzJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgeWFybiBsb2NrXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4veWFybi5sb2NrJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgbnBtIGxvY2tcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9wYWNrYWdlLWxvY2suanNvbicsIHRydWUpO1xuXG4gICAgcmVzb2x2ZShudWxsKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3Qgc2V0UGFja2FnZUpzb24gPSAoanNvbiwgcGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgaWYoIWpzb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuXG4gIC8vIFVwZGF0ZSBwYWNrYWdlLmpzb25cbiAgd3JpdGVGaWxlU3luYyhmb3JtYXRQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZE1vZHVsZVR5cGUge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGxpbmtlZE1vZHVsZXMgPSAoc3RhcnRQYXRoPzogc3RyaW5nKTogTGlua2VkTW9kdWxlVHlwZVtdID0+IHtcbiAgY29uc3Qgd29ya2luZ1BhdGg6IHN0cmluZyA9IHN0YXJ0UGF0aCB8fCBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgbW9kdWxlUGF0aDogc3RyaW5nO1xuICBsZXQgcHJlZml4OiBzdHJpbmc7XG5cbiAgLy8gaWYgd2UgaGF2ZSBhIHNjb3BlIHdlIHNob3VsZCBjaGVjayBpZiB0aGUgbW9kdWxlcyBpbnNpZGUgdGhlIGZvbGRlciBpcyBsaW5rZWRcbiAgaWYod29ya2luZ1BhdGguaW5jbHVkZXMoJ0AnKSkge1xuICAgIHByZWZpeCA9IGBAJHt3b3JraW5nUGF0aC5zcGxpdCgnQCcpLnBvcCgpfWA7XG4gICAgbW9kdWxlUGF0aCA9IHdvcmtpbmdQYXRoO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZVBhdGggPSBwYXRoSm9pbih3b3JraW5nUGF0aCwgJ25vZGVfbW9kdWxlcycpO1xuICB9XG5cbiAgY29uc3QgZm91bmRQYXRoczogc3RyaW5nW10gPSBnbG9iU3luYyhgJHttb2R1bGVQYXRofS8qYCk7XG4gIHJldHVybiBmb3VuZFBhdGhzLnJlZHVjZSgobGlzdDogTGlua2VkTW9kdWxlVHlwZVtdLCBmb3VuZFBhdGg6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IGxzdGF0U3luYyhmb3VuZFBhdGgpO1xuXG4gICAgICBpZihzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvbnN0IGRlZXBMaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10gPSBsaW5rZWRNb2R1bGVzKGZvdW5kUGF0aCk7XG4gICAgICAgIGxpc3QucHVzaCguLi5kZWVwTGlzdCk7XG4gICAgICB9IGVsc2UgaWYoc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lczogc3RyaW5nW10gPSAoW3ByZWZpeCwgcGF0aEJhc2VuYW1lKGZvdW5kUGF0aCldKS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gIWlzRW1wdHkoaXRlbSkpO1xuICAgICAgICBsaXN0LnB1c2goe25hbWU6IGAke21vZHVsZU5hbWVzLmpvaW4oJy8nKX1gLCBwYXRoOiBmb3VuZFBhdGh9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSBjYXRjaChmc0Vycm9yKSB7XG4gICAgICB0aHJvdyBmc0Vycm9yO1xuICAgIH1cbiAgfSwgW10pO1xufTtcblxuLy8gQ2hlY2sgZm9yIGxpbmtlZCBtb2R1bGVzXG5leHBvcnQgY29uc3QgY2hlY2tMaW5rZWRNb2R1bGVzID0gKCkgPT4ge1xuICBjb25zdCBsaW5rZWQgPSBsaW5rZWRNb2R1bGVzKCk7XG5cbiAgaWYobGlua2VkLmxlbmd0aCkge1xuICAgIGNvbnN0IG1zZ01vZHVsZTogc3RyaW5nID0gbGlua2VkLmxlbmd0aCA+IDEgPyAnTW9kdWxlcycgOiAnTW9kdWxlJztcbiAgICBjb25zdCBsaW5rZWRNc2c6IHN0cmluZyA9IGxpbmtlZC5yZWR1Y2UoXG4gICAgICAobXNnOiBzdHJpbmcsIGxpbmtlZE1vZHVsZTogTGlua2VkTW9kdWxlVHlwZSkgPT5cbiAgICAgICAgYCR7bXNnfVxcbiAqICR7bGlua2VkTW9kdWxlLm5hbWV9YCxcbiAgICAgIGBMaW5rZWQgJHttc2dNb2R1bGV9OmBcbiAgICApO1xuICAgIGxvZyhib3hlbihsaW5rZWRNc2csIHtkaW1Cb3JkZXI6IHRydWUsIHBhZGRpbmc6IDF9KSwgJ3dhcm4nKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRlbXBsYXRlTmFtZSA9IChmaWxlUGF0aDogc3RyaW5nLCByZXBsYWNlOiBzdHJpbmcsIHJlcGxhY2VDYXBzOiBzdHJpbmcpID0+IHtcbiAgbGV0IGRhdGE6IHN0cmluZyA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgZGF0YSA9IGRhdGEucmVwbGFjZSgvc2FtcGxlL2csIHJlcGxhY2UpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9TYW1wbGUvZywgcmVwbGFjZUNhcHMpO1xuICB3cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBkYXRhLCAndXRmOCcpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQU8sV0FBVztBQUNsQixTQUFRLFVBQVUsWUFBWSxXQUFXLFdBQVcsYUFBYSxjQUFjLHFCQUFvQjtBQUNuRyxTQUFRLGdCQUFlO0FBQ3ZCLE9BQU8sYUFBYTtBQUNwQixPQUFPLFNBQVM7QUFDaEIsU0FBUSxZQUFZLGNBQWMsUUFBUSxVQUFVLFlBQVksY0FBYyxXQUFXLG1CQUFrQjtBQUMzRyxTQUFRLGtCQUFpQjtBQUV6QixTQUFRLFdBQVU7QUFHWCxNQUFNLE1B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
|
package/dist/utils/file.js
CHANGED
|
@@ -1,28 +1,38 @@
|
|
|
1
|
-
import
|
|
1
|
+
import findFileUp from "find-file-up";
|
|
2
2
|
import { existsSync } from "fs";
|
|
3
3
|
import { resolve as pathResolve } from "path";
|
|
4
|
-
import {
|
|
5
|
-
const relativeFilePath = (filename,
|
|
4
|
+
import { URL } from "url";
|
|
5
|
+
const relativeFilePath = (filename, dirPath = "./", backUp = 0) => {
|
|
6
6
|
const nestDepth = 10;
|
|
7
7
|
if (backUp) {
|
|
8
|
-
const filePath =
|
|
8
|
+
const filePath = findFileUp.sync(filename, dirPath, nestDepth);
|
|
9
9
|
const previousPath = Array(backUp).fill(null).map(() => "../").join("");
|
|
10
10
|
return pathResolve(filePath, previousPath);
|
|
11
11
|
}
|
|
12
|
-
return
|
|
12
|
+
return findFileUp.sync(filename, dirPath, nestDepth);
|
|
13
|
+
};
|
|
14
|
+
const relativeNodePath = (filename, dirPath = "./", backUp = 0) => {
|
|
15
|
+
const nestDepth = 10;
|
|
16
|
+
if (backUp) {
|
|
17
|
+
const filePath = findFileUp.sync(`node_modules/${filename}`, dirPath, nestDepth);
|
|
18
|
+
const previousPath = Array(nestDepth).fill(null).map(() => "../").join("");
|
|
19
|
+
return pathResolve(filePath, previousPath);
|
|
20
|
+
}
|
|
21
|
+
return findFileUp.sync(`node_modules/${filename}`, dirPath, nestDepth);
|
|
13
22
|
};
|
|
14
23
|
const getNodePath = (moduleName) => {
|
|
24
|
+
const dirName = new URL(".", import.meta.url).pathname;
|
|
15
25
|
const modulePath = `node_modules/${moduleName}`;
|
|
16
|
-
const
|
|
17
|
-
const repoPath = findFileUpSync(modulePath, dirName);
|
|
26
|
+
const repoPath = findFileUp.sync(modulePath, dirName);
|
|
18
27
|
if (repoPath && existsSync(repoPath)) {
|
|
19
28
|
return repoPath;
|
|
20
29
|
}
|
|
21
|
-
const localPath =
|
|
30
|
+
const localPath = findFileUp.sync(modulePath, "./", 10) || `./${modulePath}`;
|
|
22
31
|
return localPath;
|
|
23
32
|
};
|
|
24
33
|
export {
|
|
25
34
|
getNodePath,
|
|
26
|
-
relativeFilePath
|
|
35
|
+
relativeFilePath,
|
|
36
|
+
relativeNodePath
|
|
27
37
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2ZpbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDIyLVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQgZmluZEZpbGVVcCBmcm9tICdmaW5kLWZpbGUtdXAnO1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge3Jlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbi8vIEdldCBmaWxlIHBhdGhzIHJlbGF0aXZlIHRvIExleFxuZXhwb3J0IGNvbnN0IHJlbGF0aXZlRmlsZVBhdGggPSAoZmlsZW5hbWU6IHN0cmluZywgZGlyUGF0aDogc3RyaW5nID0gJy4vJywgYmFja1VwOiBudW1iZXIgPSAwKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbmVzdERlcHRoOiBudW1iZXIgPSAxMDtcblxuICBpZihiYWNrVXApIHtcbiAgICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gZmluZEZpbGVVcC5zeW5jKGZpbGVuYW1lLCBkaXJQYXRoLCBuZXN0RGVwdGgpO1xuICAgIGNvbnN0IHByZXZpb3VzUGF0aDogc3RyaW5nID0gQXJyYXkoYmFja1VwKS5maWxsKG51bGwpLm1hcCgoKSA9PiAnLi4vJykuam9pbignJyk7XG4gICAgcmV0dXJuIHBhdGhSZXNvbHZlKGZpbGVQYXRoLCBwcmV2aW91c1BhdGgpO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRGaWxlVXAuc3luYyhmaWxlbmFtZSwgZGlyUGF0aCwgbmVzdERlcHRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZU5vZGVQYXRoID0gKGZpbGVuYW1lOiBzdHJpbmcsIGRpclBhdGg6IHN0cmluZyA9ICcuLycsIGJhY2tVcDogbnVtYmVyID0gMCk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG5lc3REZXB0aDogbnVtYmVyID0gMTA7XG5cbiAgaWYoYmFja1VwKSB7XG4gICAgY29uc3QgZmlsZVBhdGg6IHN0cmluZyA9IGZpbmRGaWxlVXAuc3luYyhgbm9kZV9tb2R1bGVzLyR7ZmlsZW5hbWV9YCwgZGlyUGF0aCwgbmVzdERlcHRoKTtcbiAgICBjb25zdCBwcmV2aW91c1BhdGg6IHN0cmluZyA9IEFycmF5KG5lc3REZXB0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gJy4uLycpLmpvaW4oJycpO1xuICAgIHJldHVybiBwYXRoUmVzb2x2ZShmaWxlUGF0aCwgcHJldmlvdXNQYXRoKTtcbiAgfVxuXG4gIHJldHVybiBmaW5kRmlsZVVwLnN5bmMoYG5vZGVfbW9kdWxlcy8ke2ZpbGVuYW1lfWAsIGRpclBhdGgsIG5lc3REZXB0aCk7XG59O1xuXG4vLyBHZXQgZmlsZSBwYXRocyByZWxhdGl2ZSB0byBMZXhcbmV4cG9ydCBjb25zdCBnZXROb2RlUGF0aCA9IChtb2R1bGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBkaXJOYW1lID0gbmV3IFVSTCgnLicsIGltcG9ydC5tZXRhLnVybCkucGF0aG5hbWU7XG4gIGNvbnN0IG1vZHVsZVBhdGg6IHN0cmluZyA9IGBub2RlX21vZHVsZXMvJHttb2R1bGVOYW1lfWA7XG4gIGNvbnN0IHJlcG9QYXRoOiBzdHJpbmcgPSBmaW5kRmlsZVVwLnN5bmMobW9kdWxlUGF0aCwgZGlyTmFtZSk7XG5cbiAgaWYocmVwb1BhdGggJiYgZXhpc3RzU3luYyhyZXBvUGF0aCkpIHtcbiAgICByZXR1cm4gcmVwb1BhdGg7XG4gIH1cblxuICBjb25zdCBsb2NhbFBhdGg6IHN0cmluZyA9IGZpbmRGaWxlVXAuc3luYyhtb2R1bGVQYXRoLCAnLi8nLCAxMCkgfHwgYC4vJHttb2R1bGVQYXRofWA7XG4gIHJldHVybiBsb2NhbFBhdGg7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUSxrQkFBaUI7QUFDekIsU0FBUSxXQUFXLG1CQUFrQjtBQUNyQyxTQUFRLFdBQVU7QUFHWCxNQUFNLG1CQUFtQixDQUFDLFVBQWtCLFVBQWtCLE1BQU0sU0FBaUIsTUFBYztBQUN4RyxRQUFNLFlBQW9CO0FBRTFCLE1BQUcsUUFBUTtBQUNULFVBQU0sV0FBbUIsV0FBVyxLQUFLLFVBQVUsU0FBUyxTQUFTO0FBQ3JFLFVBQU0sZUFBdUIsTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxNQUFNLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDOUUsV0FBTyxZQUFZLFVBQVUsWUFBWTtBQUFBLEVBQzNDO0FBRUEsU0FBTyxXQUFXLEtBQUssVUFBVSxTQUFTLFNBQVM7QUFDckQ7QUFFTyxNQUFNLG1CQUFtQixDQUFDLFVBQWtCLFVBQWtCLE1BQU0sU0FBaUIsTUFBYztBQUN4RyxRQUFNLFlBQW9CO0FBRTFCLE1BQUcsUUFBUTtBQUNULFVBQU0sV0FBbUIsV0FBVyxLQUFLLGdCQUFnQixRQUFRLElBQUksU0FBUyxTQUFTO0FBQ3ZGLFVBQU0sZUFBdUIsTUFBTSxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxNQUFNLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDakYsV0FBTyxZQUFZLFVBQVUsWUFBWTtBQUFBLEVBQzNDO0FBRUEsU0FBTyxXQUFXLEtBQUssZ0JBQWdCLFFBQVEsSUFBSSxTQUFTLFNBQVM7QUFDdkU7QUFHTyxNQUFNLGNBQWMsQ0FBQyxlQUErQjtBQUN6RCxRQUFNLFVBQVUsSUFBSSxJQUFJLEtBQUssWUFBWSxHQUFHLEVBQUU7QUFDOUMsUUFBTSxhQUFxQixnQkFBZ0IsVUFBVTtBQUNyRCxRQUFNLFdBQW1CLFdBQVcsS0FBSyxZQUFZLE9BQU87QUFFNUQsTUFBRyxZQUFZLFdBQVcsUUFBUSxHQUFHO0FBQ25DLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxZQUFvQixXQUFXLEtBQUssWUFBWSxNQUFNLEVBQUUsS0FBSyxLQUFLLFVBQVU7QUFDbEYsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/jest.config.cjs
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/
|
|
5
|
+
const base = require('../../jest.config.base');
|
|
6
|
+
const pack = require('./package.json');
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
...base,
|
|
10
|
+
collectCoverage: true,
|
|
11
|
+
coveragePathIgnorePatterns: [
|
|
12
|
+
'/node_modules/',
|
|
13
|
+
'(tests/.*.mock).(jsx?|tsx?)$'
|
|
14
|
+
],
|
|
15
|
+
coverageReporters: ['html', 'text'],
|
|
16
|
+
coverageThreshold: {
|
|
17
|
+
global: {
|
|
18
|
+
branches: 80,
|
|
19
|
+
functions: 90,
|
|
20
|
+
lines: 80,
|
|
21
|
+
statements: 80
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
displayName: pack.name,
|
|
25
|
+
extensionsToTreatAsEsm: ['.ts'],
|
|
26
|
+
moduleFileExtensions: ['js', 'ts', 'tsx', 'json'],
|
|
27
|
+
moduleNameMapper: {
|
|
28
|
+
'^(\\.{1,2}/.*)\\.js$': '$1'
|
|
29
|
+
},
|
|
30
|
+
rootDir: './',
|
|
31
|
+
setupFiles: ['<rootDir>/jest.setup.ts'],
|
|
32
|
+
testMatch: ['<rootDir>/**/*.test.ts*'],
|
|
33
|
+
transform: {
|
|
34
|
+
'\\.[jt]sx?$': [
|
|
35
|
+
'ts-jest',
|
|
36
|
+
{
|
|
37
|
+
astTransformers: {
|
|
38
|
+
before: [
|
|
39
|
+
{
|
|
40
|
+
path: '../../node_modules/ts-jest-mock-import-meta',
|
|
41
|
+
options: {metaObjectReplacement: {url: 'https://www.url.com'}}
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
diagnostics: {
|
|
46
|
+
ignoreCodes: [1343]
|
|
47
|
+
},
|
|
48
|
+
useESM: true
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
transformIgnorePatterns: [
|
|
53
|
+
'!/node_modules/(?!execa)'
|
|
54
|
+
]
|
|
55
|
+
};
|
package/jest.config.lex.js
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
import {resolve as pathResolve} from 'path';
|
|
2
|
+
import {URL} from 'url';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
import {getNodePath} from './dist/utils/file.js';
|
|
4
5
|
|
|
5
6
|
const rootDir = process.cwd();
|
|
6
7
|
const {jest, sourceFullPath, targetEnvironment, useTypescript} = JSON.parse(process.env.LEX_CONFIG || '{}');
|
|
7
8
|
|
|
8
9
|
// Polyfill path
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
getNodePath('regenerator-runtime/runtime.js')
|
|
13
|
-
];
|
|
10
|
+
const dirName = new URL('.', import.meta.url).pathname;
|
|
11
|
+
const nodePath = pathResolve(dirName, './node_modules');
|
|
12
|
+
|
|
14
13
|
let testEnvironment = 'node';
|
|
15
14
|
let testEnvironmentOptions = {};
|
|
16
15
|
|
|
17
16
|
if(targetEnvironment === 'web') {
|
|
18
|
-
testEnvironment =
|
|
17
|
+
testEnvironment = 'jsdom';
|
|
19
18
|
testEnvironmentOptions = {
|
|
20
19
|
url: 'http://localhost'
|
|
21
20
|
};
|
|
@@ -31,7 +30,7 @@ if(useTypescript) {
|
|
|
31
30
|
transformIgnorePatterns = ['[/\\\\]node_modules[/\\\\].+\\.(js|ts|tsx)$'];
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
export default {
|
|
35
34
|
collectCoverage: true,
|
|
36
35
|
coverageDirectory: '<rootDir>/coverage',
|
|
37
36
|
coveragePathIgnorePatterns: ['/node_modules/', '/dist', '/lib', '__snapshots__', '.d.ts'],
|
|
@@ -41,16 +40,20 @@ module.exports = {
|
|
|
41
40
|
nodePath
|
|
42
41
|
],
|
|
43
42
|
moduleFileExtensions,
|
|
44
|
-
moduleNameMapper: {'\\.(css|jpg|png|svg|txt)$':
|
|
43
|
+
moduleNameMapper: {'\\.(css|jpg|png|svg|txt)$': pathResolve(dirName, './emptyModule')},
|
|
45
44
|
modulePaths: [
|
|
46
45
|
rootDir,
|
|
47
46
|
`${rootDir}/node_modules`,
|
|
48
47
|
nodePath,
|
|
49
48
|
sourceFullPath
|
|
50
49
|
],
|
|
51
|
-
|
|
50
|
+
// preset: 'ts-jest/presets/js-with-ts-esm',
|
|
51
|
+
resolver: pathResolve(dirName, './resolver.cjs'),
|
|
52
52
|
rootDir,
|
|
53
|
-
setupFiles
|
|
53
|
+
setupFiles: [
|
|
54
|
+
getNodePath('core-js'),
|
|
55
|
+
getNodePath('regenerator-runtime/runtime.js')
|
|
56
|
+
],
|
|
54
57
|
testEnvironment,
|
|
55
58
|
testEnvironmentOptions,
|
|
56
59
|
testPathIgnorePatterns: [
|
|
@@ -60,24 +63,20 @@ module.exports = {
|
|
|
60
63
|
testRegex,
|
|
61
64
|
testRunner: getNodePath('jest-circus/runner.js'),
|
|
62
65
|
transform: {
|
|
63
|
-
'
|
|
64
|
-
|
|
66
|
+
'\\.[jt]sx?$': [
|
|
67
|
+
'ts-jest',
|
|
65
68
|
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
'.ts': 'ts',
|
|
69
|
-
'.test.ts': 'ts',
|
|
70
|
-
'.spec.ts': 'ts',
|
|
71
|
-
'.tsx': 'tsx',
|
|
72
|
-
'.test.tsx': 'tsx',
|
|
73
|
-
'.spec.tsx': 'tsx'
|
|
69
|
+
diagnostics: {
|
|
70
|
+
ignoreCodes: [1343]
|
|
74
71
|
},
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
72
|
+
astTransformers: {
|
|
73
|
+
before: [
|
|
74
|
+
{
|
|
75
|
+
path: getNodePath('ts-jest-mock-import-meta'),
|
|
76
|
+
options: {metaObjectReplacement: {url: 'https://www.url.com'}}
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
81
80
|
}
|
|
82
81
|
],
|
|
83
82
|
'\\.(gql|graphql)$': 'jest-transform-graphql'
|
package/jest.setup.ts
ADDED