projen 0.0.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/.jsii +36365 -0
- package/API.md +14952 -0
- package/LICENSE +202 -0
- package/README.md +373 -0
- package/assets/web/react/favicon.ico +0 -0
- package/assets/web/react/index.html +43 -0
- package/assets/web/react/logo192.png +0 -0
- package/assets/web/react/logo512.png +0 -0
- package/assets/web/react/manifest.json +25 -0
- package/assets/web/react/robots.txt +3 -0
- package/bin/projen +3 -0
- package/docs/awscdk-apps.md +15 -0
- package/docs/awscdk-construct.md +195 -0
- package/docs/awscdk.md +200 -0
- package/docs/build.md +55 -0
- package/docs/bundling.md +30 -0
- package/docs/deps.md +59 -0
- package/docs/escape-hatches.md +27 -0
- package/docs/java.md +213 -0
- package/docs/mutable-builds.md +0 -0
- package/docs/node.md +20 -0
- package/docs/programmatic-api.md +56 -0
- package/docs/publisher.md +148 -0
- package/docs/python.md +167 -0
- package/docs/releases.md +71 -0
- package/docs/subproject.md +37 -0
- package/docs/tasks.md +178 -0
- package/docs/typescript.md +108 -0
- package/lib/_resolve.d.ts +2 -0
- package/lib/_resolve.js +53 -0
- package/lib/awscdk/auto-discover.d.ts +54 -0
- package/lib/awscdk/auto-discover.js +54 -0
- package/lib/awscdk/awscdk-app-ts.d.ts +78 -0
- package/lib/awscdk/awscdk-app-ts.js +185 -0
- package/lib/awscdk/awscdk-construct.d.ts +80 -0
- package/lib/awscdk/awscdk-construct.js +116 -0
- package/lib/awscdk/awscdk-deps.d.ts +158 -0
- package/lib/awscdk/awscdk-deps.js +169 -0
- package/lib/awscdk/cdk-config.d.ts +128 -0
- package/lib/awscdk/cdk-config.js +61 -0
- package/lib/awscdk/cdk-tasks.d.ts +50 -0
- package/lib/awscdk/cdk-tasks.js +54 -0
- package/lib/awscdk/index.d.ts +9 -0
- package/lib/awscdk/index.js +22 -0
- package/lib/awscdk/integration-test.d.ts +90 -0
- package/lib/awscdk/integration-test.js +106 -0
- package/lib/awscdk/internal.d.ts +12 -0
- package/lib/awscdk/internal.js +30 -0
- package/lib/awscdk/java-app.d.ts +92 -0
- package/lib/awscdk/java-app.js +90 -0
- package/lib/awscdk/lambda-function.d.ts +143 -0
- package/lib/awscdk/lambda-function.js +176 -0
- package/lib/build/build-workflow.d.ts +125 -0
- package/lib/build/build-workflow.js +223 -0
- package/lib/build/index.d.ts +1 -0
- package/lib/build/index.js +14 -0
- package/lib/builtin-example.task.d.ts +0 -0
- package/lib/builtin-example.task.js +4 -0
- package/lib/cdk/construct-lib.d.ts +52 -0
- package/lib/cdk/construct-lib.js +30 -0
- package/lib/cdk/consts.d.ts +14 -0
- package/lib/cdk/consts.js +37 -0
- package/lib/cdk/index.d.ts +3 -0
- package/lib/cdk/index.js +16 -0
- package/lib/cdk/jsii-docgen.d.ts +12 -0
- package/lib/cdk/jsii-docgen.js +29 -0
- package/lib/cdk/jsii-project.d.ts +205 -0
- package/lib/cdk/jsii-project.js +250 -0
- package/lib/cdk8s/cdk8s-app-ts.d.ts +111 -0
- package/lib/cdk8s/cdk8s-app-ts.js +134 -0
- package/lib/cdk8s/cdk8s-construct.d.ts +79 -0
- package/lib/cdk8s/cdk8s-construct.js +39 -0
- package/lib/cdk8s/index.d.ts +2 -0
- package/lib/cdk8s/index.js +15 -0
- package/lib/cdktf/cdktf-construct.d.ts +30 -0
- package/lib/cdktf/cdktf-construct.js +33 -0
- package/lib/cdktf/index.d.ts +1 -0
- package/lib/cdktf/index.js +14 -0
- package/lib/cleanup.d.ts +2 -0
- package/lib/cleanup.js +73 -0
- package/lib/cli/cmds/new.d.ts +1 -0
- package/lib/cli/cmds/new.js +232 -0
- package/lib/cli/index.d.ts +1 -0
- package/lib/cli/index.js +50 -0
- package/lib/cli/macros.d.ts +1 -0
- package/lib/cli/macros.js +40 -0
- package/lib/cli/synth.d.ts +19 -0
- package/lib/cli/synth.js +104 -0
- package/lib/cli/tasks.d.ts +7 -0
- package/lib/cli/tasks.js +62 -0
- package/lib/cli/util.d.ts +19 -0
- package/lib/cli/util.js +52 -0
- package/lib/clobber.d.ts +5 -0
- package/lib/clobber.js +24 -0
- package/lib/common.d.ts +5 -0
- package/lib/common.js +14 -0
- package/lib/component.d.ts +33 -0
- package/lib/component.js +43 -0
- package/lib/dependencies.d.ts +187 -0
- package/lib/dependencies.js +219 -0
- package/lib/dev-env.d.ts +107 -0
- package/lib/dev-env.js +41 -0
- package/lib/docker-compose.d.ts +434 -0
- package/lib/docker-compose.js +308 -0
- package/lib/file.d.ts +141 -0
- package/lib/file.js +75 -0
- package/lib/gitattributes.d.ts +29 -0
- package/lib/gitattributes.js +61 -0
- package/lib/github/auto-approve.d.ts +59 -0
- package/lib/github/auto-approve.js +63 -0
- package/lib/github/auto-merge.d.ts +44 -0
- package/lib/github/auto-merge.js +67 -0
- package/lib/github/constants.d.ts +17 -0
- package/lib/github/constants.js +33 -0
- package/lib/github/dependabot.d.ts +340 -0
- package/lib/github/dependabot.js +119 -0
- package/lib/github/github-project.d.ts +193 -0
- package/lib/github/github-project.js +70 -0
- package/lib/github/github.d.ts +110 -0
- package/lib/github/github.js +86 -0
- package/lib/github/index.d.ts +13 -0
- package/lib/github/index.js +26 -0
- package/lib/github/mergify.d.ts +75 -0
- package/lib/github/mergify.js +40 -0
- package/lib/github/pr-template.d.ts +29 -0
- package/lib/github/pr-template.js +28 -0
- package/lib/github/pull-request-lint.d.ts +68 -0
- package/lib/github/pull-request-lint.js +62 -0
- package/lib/github/stale-util.d.ts +8 -0
- package/lib/github/stale-util.js +20 -0
- package/lib/github/stale.d.ts +106 -0
- package/lib/github/stale.js +71 -0
- package/lib/github/task-workflow.d.ts +155 -0
- package/lib/github/task-workflow.js +84 -0
- package/lib/github/workflows-model.d.ts +1280 -0
- package/lib/github/workflows-model.js +17 -0
- package/lib/github/workflows.d.ts +99 -0
- package/lib/github/workflows.js +208 -0
- package/lib/gitpod.d.ts +397 -0
- package/lib/gitpod.js +208 -0
- package/lib/ignore-file.d.ts +55 -0
- package/lib/ignore-file.js +112 -0
- package/lib/index.d.ts +46 -0
- package/lib/index.js +60 -0
- package/lib/ini.d.ts +27 -0
- package/lib/ini.js +40 -0
- package/lib/inventory.d.ts +45 -0
- package/lib/inventory.js +273 -0
- package/lib/java/index.d.ts +7 -0
- package/lib/java/index.js +20 -0
- package/lib/java/java-project.d.ts +181 -0
- package/lib/java/java-project.js +98 -0
- package/lib/java/junit.d.ts +41 -0
- package/lib/java/junit.js +50 -0
- package/lib/java/maven-compile.d.ts +35 -0
- package/lib/java/maven-compile.js +32 -0
- package/lib/java/maven-packaging.d.ts +49 -0
- package/lib/java/maven-packaging.js +71 -0
- package/lib/java/maven-sample.d.ts +24 -0
- package/lib/java/maven-sample.js +39 -0
- package/lib/java/pom.d.ts +243 -0
- package/lib/java/pom.js +176 -0
- package/lib/java/projenrc.d.ts +65 -0
- package/lib/java/projenrc.js +147 -0
- package/lib/javascript/bundler.d.ts +182 -0
- package/lib/javascript/bundler.js +123 -0
- package/lib/javascript/eslint.d.ts +177 -0
- package/lib/javascript/eslint.js +261 -0
- package/lib/javascript/index.d.ts +9 -0
- package/lib/javascript/index.js +22 -0
- package/lib/javascript/jest.d.ts +766 -0
- package/lib/javascript/jest.js +185 -0
- package/lib/javascript/node-package.d.ts +649 -0
- package/lib/javascript/node-package.js +687 -0
- package/lib/javascript/node-project.d.ts +572 -0
- package/lib/javascript/node-project.js +473 -0
- package/lib/javascript/npm-config.d.ts +50 -0
- package/lib/javascript/npm-config.js +53 -0
- package/lib/javascript/projenrc.d.ts +27 -0
- package/lib/javascript/projenrc.js +59 -0
- package/lib/javascript/render-options.d.ts +57 -0
- package/lib/javascript/render-options.js +169 -0
- package/lib/javascript/typescript-config.d.ts +424 -0
- package/lib/javascript/typescript-config.js +71 -0
- package/lib/javascript/upgrade-dependencies.d.ts +252 -0
- package/lib/javascript/upgrade-dependencies.js +341 -0
- package/lib/javascript/util.d.ts +1 -0
- package/lib/javascript/util.js +16 -0
- package/lib/json.d.ts +27 -0
- package/lib/json.js +42 -0
- package/lib/license.d.ts +48 -0
- package/lib/license.js +48 -0
- package/lib/logger.d.ts +117 -0
- package/lib/logger.js +127 -0
- package/lib/logging.d.ts +8 -0
- package/lib/logging.js +46 -0
- package/lib/makefile.d.ts +108 -0
- package/lib/makefile.js +99 -0
- package/lib/object-file.d.ts +112 -0
- package/lib/object-file.js +125 -0
- package/lib/option-hints.d.ts +27 -0
- package/lib/option-hints.js +17 -0
- package/lib/project-build.d.ts +60 -0
- package/lib/project-build.js +61 -0
- package/lib/project.d.ts +427 -0
- package/lib/project.js +391 -0
- package/lib/projects.d.ts +80 -0
- package/lib/projects.js +81 -0
- package/lib/projenrc-json.d.ts +27 -0
- package/lib/projenrc-json.js +47 -0
- package/lib/python/index.d.ts +13 -0
- package/lib/python/index.js +26 -0
- package/lib/python/pip.d.ts +48 -0
- package/lib/python/pip.js +78 -0
- package/lib/python/poetry.d.ts +262 -0
- package/lib/python/poetry.js +169 -0
- package/lib/python/projenrc.d.ts +42 -0
- package/lib/python/projenrc.js +135 -0
- package/lib/python/pytest.d.ts +36 -0
- package/lib/python/pytest.js +52 -0
- package/lib/python/python-deps.d.ts +44 -0
- package/lib/python/python-deps.js +3 -0
- package/lib/python/python-env.d.ts +11 -0
- package/lib/python/python-env.js +3 -0
- package/lib/python/python-packaging.d.ts +80 -0
- package/lib/python/python-packaging.js +3 -0
- package/lib/python/python-project.d.ts +202 -0
- package/lib/python/python-project.js +155 -0
- package/lib/python/python-sample.d.ts +20 -0
- package/lib/python/python-sample.js +48 -0
- package/lib/python/requirements-file.d.ts +44 -0
- package/lib/python/requirements-file.js +75 -0
- package/lib/python/setuppy.d.ts +88 -0
- package/lib/python/setuppy.js +78 -0
- package/lib/python/setuptools.d.ts +27 -0
- package/lib/python/setuptools.js +47 -0
- package/lib/python/venv.d.ts +38 -0
- package/lib/python/venv.js +44 -0
- package/lib/readme.d.ts +37 -0
- package/lib/readme.js +24 -0
- package/lib/release/bump-version.d.ts +59 -0
- package/lib/release/bump-version.js +151 -0
- package/lib/release/bump-version.task.d.ts +1 -0
- package/lib/release/bump-version.task.js +60 -0
- package/lib/release/index.d.ts +3 -0
- package/lib/release/index.js +16 -0
- package/lib/release/publisher.d.ts +554 -0
- package/lib/release/publisher.js +407 -0
- package/lib/release/release-trigger.d.ts +129 -0
- package/lib/release/release-trigger.js +88 -0
- package/lib/release/release.d.ts +361 -0
- package/lib/release/release.js +287 -0
- package/lib/release/reset-version.task.d.ts +1 -0
- package/lib/release/reset-version.task.js +17 -0
- package/lib/release/tag-version.d.ts +31 -0
- package/lib/release/tag-version.js +36 -0
- package/lib/release/tag-version.task.d.ts +1 -0
- package/lib/release/tag-version.task.js +34 -0
- package/lib/release/update-changelog.d.ts +36 -0
- package/lib/release/update-changelog.js +41 -0
- package/lib/release/update-changelog.task.d.ts +1 -0
- package/lib/release/update-changelog.task.js +39 -0
- package/lib/run-projenrc-json.task.d.ts +1 -0
- package/lib/run-projenrc-json.task.js +31 -0
- package/lib/sample-file.d.ts +121 -0
- package/lib/sample-file.js +129 -0
- package/lib/semver.d.ts +51 -0
- package/lib/semver.js +61 -0
- package/lib/source-code.d.ts +51 -0
- package/lib/source-code.js +66 -0
- package/lib/task-model.d.ts +156 -0
- package/lib/task-model.js +3 -0
- package/lib/task-runtime.d.ts +43 -0
- package/lib/task-runtime.js +272 -0
- package/lib/task.d.ts +161 -0
- package/lib/task.js +215 -0
- package/lib/tasks.d.ts +73 -0
- package/lib/tasks.js +129 -0
- package/lib/testing.d.ts +20 -0
- package/lib/testing.js +31 -0
- package/lib/textfile.d.ts +48 -0
- package/lib/textfile.js +47 -0
- package/lib/toml.d.ts +27 -0
- package/lib/toml.js +40 -0
- package/lib/typescript/index.d.ts +3 -0
- package/lib/typescript/index.js +16 -0
- package/lib/typescript/projenrc.d.ts +34 -0
- package/lib/typescript/projenrc.js +72 -0
- package/lib/typescript/typescript-typedoc.d.ts +12 -0
- package/lib/typescript/typescript-typedoc.js +28 -0
- package/lib/typescript/typescript.d.ts +215 -0
- package/lib/typescript/typescript.js +287 -0
- package/lib/util/semver.d.ts +43 -0
- package/lib/util/semver.js +210 -0
- package/lib/util/synth.d.ts +24 -0
- package/lib/util/synth.js +69 -0
- package/lib/util.d.ts +99 -0
- package/lib/util.js +254 -0
- package/lib/version.d.ts +70 -0
- package/lib/version.js +60 -0
- package/lib/vscode/devcontainer.d.ts +68 -0
- package/lib/vscode/devcontainer.js +104 -0
- package/lib/vscode/index.d.ts +3 -0
- package/lib/vscode/index.js +16 -0
- package/lib/vscode/launch-config.d.ts +149 -0
- package/lib/vscode/launch-config.js +51 -0
- package/lib/vscode/vscode.d.ts +17 -0
- package/lib/vscode/vscode.js +31 -0
- package/lib/web/index.d.ts +4 -0
- package/lib/web/index.js +17 -0
- package/lib/web/next.d.ts +141 -0
- package/lib/web/next.js +403 -0
- package/lib/web/postcss.d.ts +49 -0
- package/lib/web/postcss.js +35 -0
- package/lib/web/react.d.ts +152 -0
- package/lib/web/react.js +379 -0
- package/lib/web/tailwind.d.ts +35 -0
- package/lib/web/tailwind.js +42 -0
- package/lib/xmlfile.d.ts +30 -0
- package/lib/xmlfile.js +46 -0
- package/lib/yaml.d.ts +27 -0
- package/lib/yaml.js +40 -0
- package/license-text/Apache-2.0.txt +202 -0
- package/license-text/Artistic-1.0.txt +122 -0
- package/license-text/Artistic-2.0.txt +181 -0
- package/license-text/GPL-2.0-or-later.txt +339 -0
- package/license-text/GPL-3.0-WITH-GCC-exception-3.1.txt +73 -0
- package/license-text/GPL-3.0-or-later.txt +674 -0
- package/license-text/LGPL-2.1-or-later.txt +502 -0
- package/license-text/LGPL-3.0-or-later.txt +165 -0
- package/license-text/MIT-0.txt +15 -0
- package/license-text/MIT.txt +19 -0
- package/license-text/MPL-2.0.txt +353 -0
- package/license-text/OFL-1.1.txt +91 -0
- package/license-text/PHP-3.01.txt +68 -0
- package/license-text/Ruby.txt +52 -0
- package/license-text/Unlicense.txt +24 -0
- package/license-text/WTFPL.txt +14 -0
- package/license-text/ZPL-2.1.txt +44 -0
- package/logo/projen.svg +211 -0
- package/node_modules/@iarna/toml/CHANGELOG.md +278 -0
- package/node_modules/@iarna/toml/LICENSE +14 -0
- package/node_modules/@iarna/toml/README.md +301 -0
- package/node_modules/@iarna/toml/index.d.ts +57 -0
- package/node_modules/@iarna/toml/lib/create-date.js +23 -0
- package/node_modules/@iarna/toml/lib/create-datetime-float.js +24 -0
- package/node_modules/@iarna/toml/lib/create-datetime.js +10 -0
- package/node_modules/@iarna/toml/lib/create-time.js +22 -0
- package/node_modules/@iarna/toml/lib/format-num.js +6 -0
- package/node_modules/@iarna/toml/lib/parser-debug.js +60 -0
- package/node_modules/@iarna/toml/lib/parser.js +127 -0
- package/node_modules/@iarna/toml/lib/toml-parser.js +1379 -0
- package/node_modules/@iarna/toml/package.json +82 -0
- package/node_modules/@iarna/toml/parse-async.js +30 -0
- package/node_modules/@iarna/toml/parse-pretty-error.js +33 -0
- package/node_modules/@iarna/toml/parse-stream.js +80 -0
- package/node_modules/@iarna/toml/parse-string.js +18 -0
- package/node_modules/@iarna/toml/parse.js +5 -0
- package/node_modules/@iarna/toml/stringify.js +296 -0
- package/node_modules/@iarna/toml/toml.js +3 -0
- package/node_modules/@oozcitak/dom/LICENSE +21 -0
- package/node_modules/@oozcitak/dom/README.md +32 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.d.ts +21 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.js +79 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.d.ts +8 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.js +23 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.d.ts +8 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.js +76 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.d.ts +19 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.js +140 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.d.ts +192 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.js +303 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.d.ts +61 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.js +108 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.d.ts +72 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.js +288 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.d.ts +21 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.js +61 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.d.ts +29 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.js +161 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.d.ts +121 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.js +608 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.d.ts +146 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.js +995 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.d.ts +33 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.js +142 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.d.ts +66 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.js +1173 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.d.ts +43 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.js +276 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.d.ts +25 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.js +85 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.d.ts +68 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.js +543 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.d.ts +15 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.js +105 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.d.ts +27 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.js +125 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.d.ts +9 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.js +69 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.d.ts +82 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.js +829 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.d.ts +8 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.js +21 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.d.ts +57 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.js +316 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.d.ts +30 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.js +226 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.d.ts +8 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.js +62 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.d.ts +268 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.js +853 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.d.ts +17 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.js +147 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.d.ts +8 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.js +14 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.d.ts +25 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.js +164 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/index.d.ts +28 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/index.js +34 -0
- package/node_modules/@oozcitak/dom/lib/algorithm/index.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.d.ts +15 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.js +32 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.d.ts +23 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.js +59 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.d.ts +23 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.js +70 -0
- package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.d.ts +45 -0
- package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.js +118 -0
- package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.d.ts +21 -0
- package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.js +51 -0
- package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.d.ts +35 -0
- package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.js +132 -0
- package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.d.ts +16 -0
- package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.js +165 -0
- package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.d.ts +21 -0
- package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.js +52 -0
- package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.d.ts +16 -0
- package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.js +60 -0
- package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMException.d.ts +171 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMException.js +347 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMException.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.d.ts +48 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.js +100 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.d.ts +29 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.js +149 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.d.ts +46 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.js +312 -0
- package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.d.ts +32 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.js +103 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.d.ts +116 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.js +545 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.d.ts +11 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.js +17 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.d.ts +39 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.js +109 -0
- package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.d.ts +132 -0
- package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.js +714 -0
- package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/EventImpl.d.ts +74 -0
- package/node_modules/@oozcitak/dom/lib/dom/EventImpl.js +313 -0
- package/node_modules/@oozcitak/dom/lib/dom/EventImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.d.ts +30 -0
- package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.js +133 -0
- package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.d.ts +44 -0
- package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.js +157 -0
- package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.d.ts +22 -0
- package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.js +184 -0
- package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.d.ts +73 -0
- package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.js +116 -0
- package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.d.ts +34 -0
- package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.js +112 -0
- package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.d.ts +50 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.js +64 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.d.ts +252 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.js +891 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.d.ts +34 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.js +86 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.d.ts +46 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.js +198 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.d.ts +49 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.js +188 -0
- package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.d.ts +12 -0
- package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.js +53 -0
- package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.d.ts +9 -0
- package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.js +31 -0
- package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.d.ts +24 -0
- package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.js +158 -0
- package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.d.ts +25 -0
- package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.js +59 -0
- package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.d.ts +71 -0
- package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.js +649 -0
- package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.d.ts +33 -0
- package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.js +82 -0
- package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.d.ts +16 -0
- package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.js +35 -0
- package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.d.ts +13 -0
- package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.js +48 -0
- package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/TextImpl.d.ts +28 -0
- package/node_modules/@oozcitak/dom/lib/dom/TextImpl.js +109 -0
- package/node_modules/@oozcitak/dom/lib/dom/TextImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.d.ts +23 -0
- package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.js +41 -0
- package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.d.ts +36 -0
- package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.js +249 -0
- package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.d.ts +26 -0
- package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.js +57 -0
- package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.d.ts +11 -0
- package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.js +31 -0
- package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/index.d.ts +36 -0
- package/node_modules/@oozcitak/dom/lib/dom/index.js +102 -0
- package/node_modules/@oozcitak/dom/lib/dom/index.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/dom/interfaces.d.ts +2218 -0
- package/node_modules/@oozcitak/dom/lib/dom/interfaces.js +91 -0
- package/node_modules/@oozcitak/dom/lib/dom/interfaces.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/index.d.ts +3 -0
- package/node_modules/@oozcitak/dom/lib/index.js +11 -0
- package/node_modules/@oozcitak/dom/lib/index.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.d.ts +11 -0
- package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.js +37 -0
- package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.d.ts +14 -0
- package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.js +220 -0
- package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.d.ts +159 -0
- package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.js +512 -0
- package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/parser/index.d.ts +1 -0
- package/node_modules/@oozcitak/dom/lib/parser/index.js +6 -0
- package/node_modules/@oozcitak/dom/lib/parser/index.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/parser/interfaces.d.ts +131 -0
- package/node_modules/@oozcitak/dom/lib/parser/interfaces.js +18 -0
- package/node_modules/@oozcitak/dom/lib/parser/interfaces.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.d.ts +27 -0
- package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.js +56 -0
- package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.d.ts +52 -0
- package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.js +151 -0
- package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.d.ts +166 -0
- package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.js +1479 -0
- package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl2.d.ts +2 -0
- package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl2.js +962 -0
- package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl2.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/serializer/index.d.ts +1 -0
- package/node_modules/@oozcitak/dom/lib/serializer/index.js +6 -0
- package/node_modules/@oozcitak/dom/lib/serializer/index.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/serializer/interfaces.d.ts +15 -0
- package/node_modules/@oozcitak/dom/lib/serializer/interfaces.js +3 -0
- package/node_modules/@oozcitak/dom/lib/serializer/interfaces.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/util/Cast.d.ts +12 -0
- package/node_modules/@oozcitak/dom/lib/util/Cast.js +26 -0
- package/node_modules/@oozcitak/dom/lib/util/Cast.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/util/EmptySet.d.ts +13 -0
- package/node_modules/@oozcitak/dom/lib/util/EmptySet.js +61 -0
- package/node_modules/@oozcitak/dom/lib/util/EmptySet.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/util/Guard.d.ts +135 -0
- package/node_modules/@oozcitak/dom/lib/util/Guard.js +192 -0
- package/node_modules/@oozcitak/dom/lib/util/Guard.js.map +1 -0
- package/node_modules/@oozcitak/dom/lib/util/index.d.ts +3 -0
- package/node_modules/@oozcitak/dom/lib/util/index.js +9 -0
- package/node_modules/@oozcitak/dom/lib/util/index.js.map +1 -0
- package/node_modules/@oozcitak/dom/package.json +72 -0
- package/node_modules/@oozcitak/infra/LICENSE +21 -0
- package/node_modules/@oozcitak/infra/README.md +13 -0
- package/node_modules/@oozcitak/infra/lib/Base64.d.ts +12 -0
- package/node_modules/@oozcitak/infra/lib/Base64.js +82 -0
- package/node_modules/@oozcitak/infra/lib/Base64.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/Byte.d.ts +6 -0
- package/node_modules/@oozcitak/infra/lib/Byte.js +15 -0
- package/node_modules/@oozcitak/infra/lib/Byte.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/ByteSequence.d.ts +45 -0
- package/node_modules/@oozcitak/infra/lib/ByteSequence.js +171 -0
- package/node_modules/@oozcitak/infra/lib/ByteSequence.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/CodePoints.d.ts +82 -0
- package/node_modules/@oozcitak/infra/lib/CodePoints.js +85 -0
- package/node_modules/@oozcitak/infra/lib/CodePoints.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/JSON.d.ts +24 -0
- package/node_modules/@oozcitak/infra/lib/JSON.js +123 -0
- package/node_modules/@oozcitak/infra/lib/JSON.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/List.d.ts +101 -0
- package/node_modules/@oozcitak/infra/lib/List.js +325 -0
- package/node_modules/@oozcitak/infra/lib/List.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/Map.d.ts +87 -0
- package/node_modules/@oozcitak/infra/lib/Map.js +308 -0
- package/node_modules/@oozcitak/infra/lib/Map.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/Namespace.d.ts +6 -0
- package/node_modules/@oozcitak/infra/lib/Namespace.js +9 -0
- package/node_modules/@oozcitak/infra/lib/Namespace.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/Queue.d.ts +13 -0
- package/node_modules/@oozcitak/infra/lib/Queue.js +22 -0
- package/node_modules/@oozcitak/infra/lib/Queue.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/Set.d.ts +136 -0
- package/node_modules/@oozcitak/infra/lib/Set.js +467 -0
- package/node_modules/@oozcitak/infra/lib/Set.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/Stack.d.ts +13 -0
- package/node_modules/@oozcitak/infra/lib/Stack.js +22 -0
- package/node_modules/@oozcitak/infra/lib/Stack.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/String.d.ts +129 -0
- package/node_modules/@oozcitak/infra/lib/String.js +472 -0
- package/node_modules/@oozcitak/infra/lib/String.js.map +1 -0
- package/node_modules/@oozcitak/infra/lib/index.d.ts +13 -0
- package/node_modules/@oozcitak/infra/lib/index.js +34 -0
- package/node_modules/@oozcitak/infra/lib/index.js.map +1 -0
- package/node_modules/@oozcitak/infra/package.json +54 -0
- package/node_modules/@oozcitak/url/LICENSE +21 -0
- package/node_modules/@oozcitak/url/README.md +27 -0
- package/node_modules/@oozcitak/url/lib/URLAlgorithm.d.ts +267 -0
- package/node_modules/@oozcitak/url/lib/URLAlgorithm.js +2758 -0
- package/node_modules/@oozcitak/url/lib/URLAlgorithm.js.map +1 -0
- package/node_modules/@oozcitak/url/lib/URLImpl.d.ts +53 -0
- package/node_modules/@oozcitak/url/lib/URLImpl.js +377 -0
- package/node_modules/@oozcitak/url/lib/URLImpl.js.map +1 -0
- package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.d.ts +38 -0
- package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.js +303 -0
- package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.js.map +1 -0
- package/node_modules/@oozcitak/url/lib/index.d.ts +2 -0
- package/node_modules/@oozcitak/url/lib/index.js +7 -0
- package/node_modules/@oozcitak/url/lib/index.js.map +1 -0
- package/node_modules/@oozcitak/url/lib/interfaces.d.ts +195 -0
- package/node_modules/@oozcitak/url/lib/interfaces.js +31 -0
- package/node_modules/@oozcitak/url/lib/interfaces.js.map +1 -0
- package/node_modules/@oozcitak/url/package.json +55 -0
- package/node_modules/@oozcitak/util/LICENSE +21 -0
- package/node_modules/@oozcitak/util/README.md +10 -0
- package/node_modules/@oozcitak/util/lib/CompareCache.d.ts +32 -0
- package/node_modules/@oozcitak/util/lib/CompareCache.js +59 -0
- package/node_modules/@oozcitak/util/lib/CompareCache.js.map +1 -0
- package/node_modules/@oozcitak/util/lib/FixedSizeSet.d.ts +64 -0
- package/node_modules/@oozcitak/util/lib/FixedSizeSet.js +174 -0
- package/node_modules/@oozcitak/util/lib/FixedSizeSet.js.map +1 -0
- package/node_modules/@oozcitak/util/lib/Lazy.d.ts +18 -0
- package/node_modules/@oozcitak/util/lib/Lazy.js +34 -0
- package/node_modules/@oozcitak/util/lib/Lazy.js.map +1 -0
- package/node_modules/@oozcitak/util/lib/ObjectCache.d.ts +71 -0
- package/node_modules/@oozcitak/util/lib/ObjectCache.js +181 -0
- package/node_modules/@oozcitak/util/lib/ObjectCache.js.map +1 -0
- package/node_modules/@oozcitak/util/lib/StringWalker.d.ts +49 -0
- package/node_modules/@oozcitak/util/lib/StringWalker.js +105 -0
- package/node_modules/@oozcitak/util/lib/StringWalker.js.map +1 -0
- package/node_modules/@oozcitak/util/lib/index.d.ts +178 -0
- package/node_modules/@oozcitak/util/lib/index.js +439 -0
- package/node_modules/@oozcitak/util/lib/index.js.map +1 -0
- package/node_modules/@oozcitak/util/package.json +50 -0
- package/node_modules/ansi-regex/index.d.ts +37 -0
- package/node_modules/ansi-regex/index.js +10 -0
- package/node_modules/ansi-regex/license +9 -0
- package/node_modules/ansi-regex/package.json +55 -0
- package/node_modules/ansi-regex/readme.md +78 -0
- package/node_modules/ansi-styles/index.d.ts +345 -0
- package/node_modules/ansi-styles/index.js +163 -0
- package/node_modules/ansi-styles/license +9 -0
- package/node_modules/ansi-styles/package.json +56 -0
- package/node_modules/ansi-styles/readme.md +152 -0
- package/node_modules/argparse/CHANGELOG.md +185 -0
- package/node_modules/argparse/LICENSE +21 -0
- package/node_modules/argparse/README.md +257 -0
- package/node_modules/argparse/index.js +3 -0
- package/node_modules/argparse/lib/action/append/constant.js +47 -0
- package/node_modules/argparse/lib/action/append.js +53 -0
- package/node_modules/argparse/lib/action/count.js +40 -0
- package/node_modules/argparse/lib/action/help.js +47 -0
- package/node_modules/argparse/lib/action/store/constant.js +43 -0
- package/node_modules/argparse/lib/action/store/false.js +27 -0
- package/node_modules/argparse/lib/action/store/true.js +26 -0
- package/node_modules/argparse/lib/action/store.js +50 -0
- package/node_modules/argparse/lib/action/subparsers.js +149 -0
- package/node_modules/argparse/lib/action/version.js +47 -0
- package/node_modules/argparse/lib/action.js +146 -0
- package/node_modules/argparse/lib/action_container.js +482 -0
- package/node_modules/argparse/lib/argparse.js +14 -0
- package/node_modules/argparse/lib/argument/error.js +50 -0
- package/node_modules/argparse/lib/argument/exclusive.js +54 -0
- package/node_modules/argparse/lib/argument/group.js +75 -0
- package/node_modules/argparse/lib/argument_parser.js +1161 -0
- package/node_modules/argparse/lib/const.js +21 -0
- package/node_modules/argparse/lib/help/added_formatters.js +87 -0
- package/node_modules/argparse/lib/help/formatter.js +795 -0
- package/node_modules/argparse/lib/namespace.js +76 -0
- package/node_modules/argparse/lib/utils.js +57 -0
- package/node_modules/argparse/package.json +34 -0
- package/node_modules/at-least-node/LICENSE +6 -0
- package/node_modules/at-least-node/README.md +25 -0
- package/node_modules/at-least-node/index.js +5 -0
- package/node_modules/at-least-node/package.json +32 -0
- package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/node_modules/balanced-match/LICENSE.md +21 -0
- package/node_modules/balanced-match/README.md +97 -0
- package/node_modules/balanced-match/index.js +62 -0
- package/node_modules/balanced-match/package.json +48 -0
- package/node_modules/brace-expansion/LICENSE +21 -0
- package/node_modules/brace-expansion/README.md +129 -0
- package/node_modules/brace-expansion/index.js +201 -0
- package/node_modules/brace-expansion/package.json +47 -0
- package/node_modules/case/LICENSE +22 -0
- package/node_modules/case/README.md +139 -0
- package/node_modules/case/case.d.ts +43 -0
- package/node_modules/case/dist/Case.js +171 -0
- package/node_modules/case/dist/Case.min.js +5 -0
- package/node_modules/case/dist/Case.min.js.map +1 -0
- package/node_modules/case/dist/Case.plus.js +189 -0
- package/node_modules/case/dist/Case.plus.min.js +5 -0
- package/node_modules/case/dist/Case.plus.min.js.map +1 -0
- package/node_modules/case/package.json +58 -0
- package/node_modules/chalk/index.d.ts +415 -0
- package/node_modules/chalk/license +9 -0
- package/node_modules/chalk/package.json +68 -0
- package/node_modules/chalk/readme.md +341 -0
- package/node_modules/chalk/source/index.js +229 -0
- package/node_modules/chalk/source/templates.js +134 -0
- package/node_modules/chalk/source/util.js +39 -0
- package/node_modules/cliui/CHANGELOG.md +121 -0
- package/node_modules/cliui/LICENSE.txt +14 -0
- package/node_modules/cliui/README.md +141 -0
- package/node_modules/cliui/build/index.cjs +302 -0
- package/node_modules/cliui/build/lib/index.js +287 -0
- package/node_modules/cliui/build/lib/string-utils.js +27 -0
- package/node_modules/cliui/index.mjs +13 -0
- package/node_modules/cliui/package.json +83 -0
- package/node_modules/color-convert/CHANGELOG.md +54 -0
- package/node_modules/color-convert/LICENSE +21 -0
- package/node_modules/color-convert/README.md +68 -0
- package/node_modules/color-convert/conversions.js +839 -0
- package/node_modules/color-convert/index.js +81 -0
- package/node_modules/color-convert/package.json +48 -0
- package/node_modules/color-convert/route.js +97 -0
- package/node_modules/color-name/LICENSE +8 -0
- package/node_modules/color-name/README.md +11 -0
- package/node_modules/color-name/index.js +152 -0
- package/node_modules/color-name/package.json +28 -0
- package/node_modules/concat-map/.travis.yml +4 -0
- package/node_modules/concat-map/LICENSE +18 -0
- package/node_modules/concat-map/README.markdown +62 -0
- package/node_modules/concat-map/example/map.js +6 -0
- package/node_modules/concat-map/index.js +13 -0
- package/node_modules/concat-map/package.json +43 -0
- package/node_modules/concat-map/test/map.js +39 -0
- package/node_modules/conventional-changelog-config-spec/CHANGELOG.md +15 -0
- package/node_modules/conventional-changelog-config-spec/README.md +7 -0
- package/node_modules/conventional-changelog-config-spec/index.js +1 -0
- package/node_modules/conventional-changelog-config-spec/package.json +32 -0
- package/node_modules/conventional-changelog-config-spec/renovate.json +5 -0
- package/node_modules/conventional-changelog-config-spec/tests/shared.js +38 -0
- package/node_modules/conventional-changelog-config-spec/tests/v1.test.js +7 -0
- package/node_modules/conventional-changelog-config-spec/tests/v2.test.js +26 -0
- package/node_modules/conventional-changelog-config-spec/versions/1.0.0/README.md +143 -0
- package/node_modules/conventional-changelog-config-spec/versions/1.0.0/schema.json +81 -0
- package/node_modules/conventional-changelog-config-spec/versions/2.0.0/README.md +155 -0
- package/node_modules/conventional-changelog-config-spec/versions/2.0.0/schema.json +89 -0
- package/node_modules/conventional-changelog-config-spec/versions/2.1.0/README.md +166 -0
- package/node_modules/conventional-changelog-config-spec/versions/2.1.0/schema.json +97 -0
- package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
- package/node_modules/emoji-regex/README.md +73 -0
- package/node_modules/emoji-regex/es2015/index.js +6 -0
- package/node_modules/emoji-regex/es2015/text.js +6 -0
- package/node_modules/emoji-regex/index.d.ts +23 -0
- package/node_modules/emoji-regex/index.js +6 -0
- package/node_modules/emoji-regex/package.json +50 -0
- package/node_modules/emoji-regex/text.js +6 -0
- package/node_modules/escalade/dist/index.js +22 -0
- package/node_modules/escalade/dist/index.mjs +22 -0
- package/node_modules/escalade/index.d.ts +3 -0
- package/node_modules/escalade/license +9 -0
- package/node_modules/escalade/package.json +61 -0
- package/node_modules/escalade/readme.md +211 -0
- package/node_modules/escalade/sync/index.d.ts +2 -0
- package/node_modules/escalade/sync/index.js +18 -0
- package/node_modules/escalade/sync/index.mjs +18 -0
- package/node_modules/esprima/ChangeLog +235 -0
- package/node_modules/esprima/LICENSE.BSD +21 -0
- package/node_modules/esprima/README.md +46 -0
- package/node_modules/esprima/bin/esparse.js +139 -0
- package/node_modules/esprima/bin/esvalidate.js +236 -0
- package/node_modules/esprima/dist/esprima.js +6709 -0
- package/node_modules/esprima/package.json +112 -0
- package/node_modules/fs-extra/CHANGELOG.md +902 -0
- package/node_modules/fs-extra/LICENSE +15 -0
- package/node_modules/fs-extra/README.md +264 -0
- package/node_modules/fs-extra/lib/copy/copy.js +232 -0
- package/node_modules/fs-extra/lib/copy/index.js +6 -0
- package/node_modules/fs-extra/lib/copy-sync/copy-sync.js +166 -0
- package/node_modules/fs-extra/lib/copy-sync/index.js +5 -0
- package/node_modules/fs-extra/lib/empty/index.js +48 -0
- package/node_modules/fs-extra/lib/ensure/file.js +69 -0
- package/node_modules/fs-extra/lib/ensure/index.js +23 -0
- package/node_modules/fs-extra/lib/ensure/link.js +61 -0
- package/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
- package/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
- package/node_modules/fs-extra/lib/ensure/symlink.js +63 -0
- package/node_modules/fs-extra/lib/fs/index.js +130 -0
- package/node_modules/fs-extra/lib/index.js +27 -0
- package/node_modules/fs-extra/lib/json/index.js +16 -0
- package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
- package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
- package/node_modules/fs-extra/lib/json/output-json.js +12 -0
- package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
- package/node_modules/fs-extra/lib/mkdirs/make-dir.js +141 -0
- package/node_modules/fs-extra/lib/move/index.js +6 -0
- package/node_modules/fs-extra/lib/move/move.js +65 -0
- package/node_modules/fs-extra/lib/move-sync/index.js +5 -0
- package/node_modules/fs-extra/lib/move-sync/move-sync.js +47 -0
- package/node_modules/fs-extra/lib/output/index.js +40 -0
- package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
- package/node_modules/fs-extra/lib/remove/index.js +9 -0
- package/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
- package/node_modules/fs-extra/lib/util/stat.js +139 -0
- package/node_modules/fs-extra/lib/util/utimes.js +26 -0
- package/node_modules/fs-extra/node_modules/universalify/LICENSE +20 -0
- package/node_modules/fs-extra/node_modules/universalify/README.md +76 -0
- package/node_modules/fs-extra/node_modules/universalify/index.js +24 -0
- package/node_modules/fs-extra/node_modules/universalify/package.json +34 -0
- package/node_modules/fs-extra/package.json +70 -0
- package/node_modules/fs.realpath/LICENSE +43 -0
- package/node_modules/fs.realpath/README.md +33 -0
- package/node_modules/fs.realpath/index.js +66 -0
- package/node_modules/fs.realpath/old.js +303 -0
- package/node_modules/fs.realpath/package.json +26 -0
- package/node_modules/function-bind/.editorconfig +20 -0
- package/node_modules/function-bind/.eslintrc +15 -0
- package/node_modules/function-bind/.jscs.json +176 -0
- package/node_modules/function-bind/.npmignore +22 -0
- package/node_modules/function-bind/.travis.yml +168 -0
- package/node_modules/function-bind/LICENSE +20 -0
- package/node_modules/function-bind/README.md +48 -0
- package/node_modules/function-bind/implementation.js +52 -0
- package/node_modules/function-bind/index.js +5 -0
- package/node_modules/function-bind/package.json +63 -0
- package/node_modules/function-bind/test/.eslintrc +9 -0
- package/node_modules/function-bind/test/index.js +252 -0
- package/node_modules/get-caller-file/LICENSE.md +6 -0
- package/node_modules/get-caller-file/README.md +41 -0
- package/node_modules/get-caller-file/index.d.ts +2 -0
- package/node_modules/get-caller-file/index.js +22 -0
- package/node_modules/get-caller-file/index.js.map +1 -0
- package/node_modules/get-caller-file/package.json +42 -0
- package/node_modules/glob/LICENSE +21 -0
- package/node_modules/glob/README.md +378 -0
- package/node_modules/glob/common.js +236 -0
- package/node_modules/glob/glob.js +787 -0
- package/node_modules/glob/package.json +52 -0
- package/node_modules/glob/sync.js +483 -0
- package/node_modules/graceful-fs/LICENSE +15 -0
- package/node_modules/graceful-fs/README.md +143 -0
- package/node_modules/graceful-fs/clone.js +23 -0
- package/node_modules/graceful-fs/graceful-fs.js +429 -0
- package/node_modules/graceful-fs/legacy-streams.js +118 -0
- package/node_modules/graceful-fs/package.json +50 -0
- package/node_modules/graceful-fs/polyfills.js +346 -0
- package/node_modules/has/LICENSE-MIT +22 -0
- package/node_modules/has/README.md +18 -0
- package/node_modules/has/package.json +48 -0
- package/node_modules/has/src/index.js +5 -0
- package/node_modules/has/test/index.js +10 -0
- package/node_modules/has-flag/index.d.ts +39 -0
- package/node_modules/has-flag/index.js +8 -0
- package/node_modules/has-flag/license +9 -0
- package/node_modules/has-flag/package.json +46 -0
- package/node_modules/has-flag/readme.md +89 -0
- package/node_modules/inflight/LICENSE +15 -0
- package/node_modules/inflight/README.md +37 -0
- package/node_modules/inflight/inflight.js +54 -0
- package/node_modules/inflight/package.json +29 -0
- package/node_modules/inherits/LICENSE +16 -0
- package/node_modules/inherits/README.md +42 -0
- package/node_modules/inherits/inherits.js +9 -0
- package/node_modules/inherits/inherits_browser.js +27 -0
- package/node_modules/inherits/package.json +29 -0
- package/node_modules/ini/LICENSE +15 -0
- package/node_modules/ini/README.md +102 -0
- package/node_modules/ini/ini.js +206 -0
- package/node_modules/ini/package.json +36 -0
- package/node_modules/interpret/CHANGELOG +115 -0
- package/node_modules/interpret/LICENSE +22 -0
- package/node_modules/interpret/README.md +187 -0
- package/node_modules/interpret/index.js +168 -0
- package/node_modules/interpret/mjs-stub.js +1 -0
- package/node_modules/interpret/package.json +75 -0
- package/node_modules/is-core-module/.eslintignore +1 -0
- package/node_modules/is-core-module/.eslintrc +18 -0
- package/node_modules/is-core-module/.nycrc +9 -0
- package/node_modules/is-core-module/CHANGELOG.md +117 -0
- package/node_modules/is-core-module/LICENSE +20 -0
- package/node_modules/is-core-module/README.md +40 -0
- package/node_modules/is-core-module/core.json +152 -0
- package/node_modules/is-core-module/index.js +69 -0
- package/node_modules/is-core-module/package.json +69 -0
- package/node_modules/is-core-module/test/index.js +130 -0
- package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
- package/node_modules/is-fullwidth-code-point/index.js +50 -0
- package/node_modules/is-fullwidth-code-point/license +9 -0
- package/node_modules/is-fullwidth-code-point/package.json +42 -0
- package/node_modules/is-fullwidth-code-point/readme.md +39 -0
- package/node_modules/jsonfile/CHANGELOG.md +171 -0
- package/node_modules/jsonfile/LICENSE +15 -0
- package/node_modules/jsonfile/README.md +230 -0
- package/node_modules/jsonfile/index.js +88 -0
- package/node_modules/jsonfile/node_modules/universalify/LICENSE +20 -0
- package/node_modules/jsonfile/node_modules/universalify/README.md +76 -0
- package/node_modules/jsonfile/node_modules/universalify/index.js +24 -0
- package/node_modules/jsonfile/node_modules/universalify/package.json +34 -0
- package/node_modules/jsonfile/package.json +40 -0
- package/node_modules/jsonfile/utils.js +14 -0
- package/node_modules/lru-cache/LICENSE +15 -0
- package/node_modules/lru-cache/README.md +166 -0
- package/node_modules/lru-cache/index.js +334 -0
- package/node_modules/lru-cache/package.json +34 -0
- package/node_modules/minimatch/LICENSE +15 -0
- package/node_modules/minimatch/README.md +209 -0
- package/node_modules/minimatch/minimatch.js +923 -0
- package/node_modules/minimatch/package.json +30 -0
- package/node_modules/minimist/.travis.yml +8 -0
- package/node_modules/minimist/LICENSE +18 -0
- package/node_modules/minimist/example/parse.js +2 -0
- package/node_modules/minimist/index.js +245 -0
- package/node_modules/minimist/package.json +45 -0
- package/node_modules/minimist/readme.markdown +95 -0
- package/node_modules/minimist/test/all_bool.js +32 -0
- package/node_modules/minimist/test/bool.js +178 -0
- package/node_modules/minimist/test/dash.js +31 -0
- package/node_modules/minimist/test/default_bool.js +35 -0
- package/node_modules/minimist/test/dotted.js +22 -0
- package/node_modules/minimist/test/kv_short.js +16 -0
- package/node_modules/minimist/test/long.js +31 -0
- package/node_modules/minimist/test/num.js +36 -0
- package/node_modules/minimist/test/parse.js +197 -0
- package/node_modules/minimist/test/parse_modified.js +9 -0
- package/node_modules/minimist/test/proto.js +44 -0
- package/node_modules/minimist/test/short.js +67 -0
- package/node_modules/minimist/test/stop_early.js +15 -0
- package/node_modules/minimist/test/unknown.js +102 -0
- package/node_modules/minimist/test/whitespace.js +8 -0
- package/node_modules/once/LICENSE +15 -0
- package/node_modules/once/README.md +79 -0
- package/node_modules/once/once.js +42 -0
- package/node_modules/once/package.json +33 -0
- package/node_modules/path-is-absolute/index.js +20 -0
- package/node_modules/path-is-absolute/license +21 -0
- package/node_modules/path-is-absolute/package.json +43 -0
- package/node_modules/path-is-absolute/readme.md +59 -0
- package/node_modules/path-parse/LICENSE +21 -0
- package/node_modules/path-parse/README.md +42 -0
- package/node_modules/path-parse/index.js +75 -0
- package/node_modules/path-parse/package.json +33 -0
- package/node_modules/rechoir/.npmignore +1 -0
- package/node_modules/rechoir/.travis.yml +24 -0
- package/node_modules/rechoir/CHANGELOG +38 -0
- package/node_modules/rechoir/LICENSE +22 -0
- package/node_modules/rechoir/README.md +42 -0
- package/node_modules/rechoir/index.js +59 -0
- package/node_modules/rechoir/lib/extension.js +11 -0
- package/node_modules/rechoir/lib/normalize.js +15 -0
- package/node_modules/rechoir/lib/register.js +15 -0
- package/node_modules/rechoir/package.json +88 -0
- package/node_modules/require-directory/.jshintrc +67 -0
- package/node_modules/require-directory/.npmignore +1 -0
- package/node_modules/require-directory/.travis.yml +3 -0
- package/node_modules/require-directory/LICENSE +22 -0
- package/node_modules/require-directory/README.markdown +184 -0
- package/node_modules/require-directory/index.js +86 -0
- package/node_modules/require-directory/package.json +40 -0
- package/node_modules/resolve/.editorconfig +37 -0
- package/node_modules/resolve/.eslintignore +1 -0
- package/node_modules/resolve/.eslintrc +39 -0
- package/node_modules/resolve/LICENSE +21 -0
- package/node_modules/resolve/SECURITY.md +3 -0
- package/node_modules/resolve/appveyor.yml +74 -0
- package/node_modules/resolve/example/async.js +5 -0
- package/node_modules/resolve/example/sync.js +3 -0
- package/node_modules/resolve/index.js +6 -0
- package/node_modules/resolve/lib/async.js +320 -0
- package/node_modules/resolve/lib/caller.js +8 -0
- package/node_modules/resolve/lib/core.js +53 -0
- package/node_modules/resolve/lib/core.json +83 -0
- package/node_modules/resolve/lib/is-core.js +5 -0
- package/node_modules/resolve/lib/node-modules-paths.js +42 -0
- package/node_modules/resolve/lib/normalize-options.js +10 -0
- package/node_modules/resolve/lib/sync.js +199 -0
- package/node_modules/resolve/package.json +51 -0
- package/node_modules/resolve/readme.markdown +279 -0
- package/node_modules/resolve/test/.eslintrc +5 -0
- package/node_modules/resolve/test/core.js +81 -0
- package/node_modules/resolve/test/dotdot/abc/index.js +2 -0
- package/node_modules/resolve/test/dotdot/index.js +1 -0
- package/node_modules/resolve/test/dotdot.js +29 -0
- package/node_modules/resolve/test/faulty_basedir.js +29 -0
- package/node_modules/resolve/test/filter.js +34 -0
- package/node_modules/resolve/test/filter_sync.js +33 -0
- package/node_modules/resolve/test/mock.js +315 -0
- package/node_modules/resolve/test/mock_sync.js +216 -0
- package/node_modules/resolve/test/module_dir/xmodules/aaa/index.js +1 -0
- package/node_modules/resolve/test/module_dir/ymodules/aaa/index.js +1 -0
- package/node_modules/resolve/test/module_dir/zmodules/bbb/main.js +1 -0
- package/node_modules/resolve/test/module_dir/zmodules/bbb/package.json +3 -0
- package/node_modules/resolve/test/module_dir.js +56 -0
- package/node_modules/resolve/test/node-modules-paths.js +143 -0
- package/node_modules/resolve/test/node_path/x/aaa/index.js +1 -0
- package/node_modules/resolve/test/node_path/x/ccc/index.js +1 -0
- package/node_modules/resolve/test/node_path/y/bbb/index.js +1 -0
- package/node_modules/resolve/test/node_path/y/ccc/index.js +1 -0
- package/node_modules/resolve/test/node_path.js +70 -0
- package/node_modules/resolve/test/nonstring.js +9 -0
- package/node_modules/resolve/test/pathfilter/deep_ref/main.js +0 -0
- package/node_modules/resolve/test/pathfilter.js +75 -0
- package/node_modules/resolve/test/precedence/aaa/index.js +1 -0
- package/node_modules/resolve/test/precedence/aaa/main.js +1 -0
- package/node_modules/resolve/test/precedence/aaa.js +1 -0
- package/node_modules/resolve/test/precedence/bbb/main.js +1 -0
- package/node_modules/resolve/test/precedence/bbb.js +1 -0
- package/node_modules/resolve/test/precedence.js +23 -0
- package/node_modules/resolve/test/resolver/baz/doom.js +0 -0
- package/node_modules/resolve/test/resolver/baz/package.json +4 -0
- package/node_modules/resolve/test/resolver/baz/quux.js +1 -0
- package/node_modules/resolve/test/resolver/browser_field/a.js +0 -0
- package/node_modules/resolve/test/resolver/browser_field/b.js +0 -0
- package/node_modules/resolve/test/resolver/browser_field/package.json +5 -0
- package/node_modules/resolve/test/resolver/cup.coffee +1 -0
- package/node_modules/resolve/test/resolver/dot_main/index.js +1 -0
- package/node_modules/resolve/test/resolver/dot_main/package.json +3 -0
- package/node_modules/resolve/test/resolver/dot_slash_main/index.js +1 -0
- package/node_modules/resolve/test/resolver/dot_slash_main/package.json +3 -0
- package/node_modules/resolve/test/resolver/foo.js +1 -0
- package/node_modules/resolve/test/resolver/incorrect_main/index.js +2 -0
- package/node_modules/resolve/test/resolver/incorrect_main/package.json +3 -0
- package/node_modules/resolve/test/resolver/invalid_main/package.json +7 -0
- package/node_modules/resolve/test/resolver/mug.coffee +0 -0
- package/node_modules/resolve/test/resolver/mug.js +0 -0
- package/node_modules/resolve/test/resolver/multirepo/lerna.json +6 -0
- package/node_modules/resolve/test/resolver/multirepo/package.json +20 -0
- package/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js +35 -0
- package/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json +14 -0
- package/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js +0 -0
- package/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json +14 -0
- package/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js +26 -0
- package/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json +15 -0
- package/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js +12 -0
- package/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
- package/node_modules/resolve/test/resolver/other_path/root.js +0 -0
- package/node_modules/resolve/test/resolver/quux/foo/index.js +1 -0
- package/node_modules/resolve/test/resolver/same_names/foo/index.js +1 -0
- package/node_modules/resolve/test/resolver/same_names/foo.js +1 -0
- package/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js +0 -0
- package/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep +0 -0
- package/node_modules/resolve/test/resolver/symlinked/package/bar.js +1 -0
- package/node_modules/resolve/test/resolver/symlinked/package/package.json +3 -0
- package/node_modules/resolve/test/resolver/without_basedir/main.js +5 -0
- package/node_modules/resolve/test/resolver.js +450 -0
- package/node_modules/resolve/test/resolver_sync.js +358 -0
- package/node_modules/resolve/test/shadowed_core/node_modules/util/index.js +0 -0
- package/node_modules/resolve/test/shadowed_core.js +54 -0
- package/node_modules/resolve/test/subdirs.js +13 -0
- package/node_modules/resolve/test/symlinks.js +176 -0
- package/node_modules/semver/CHANGELOG.md +111 -0
- package/node_modules/semver/LICENSE +15 -0
- package/node_modules/semver/README.md +566 -0
- package/node_modules/semver/bin/semver.js +173 -0
- package/node_modules/semver/classes/comparator.js +135 -0
- package/node_modules/semver/classes/index.js +5 -0
- package/node_modules/semver/classes/range.js +510 -0
- package/node_modules/semver/classes/semver.js +287 -0
- package/node_modules/semver/functions/clean.js +6 -0
- package/node_modules/semver/functions/cmp.js +48 -0
- package/node_modules/semver/functions/coerce.js +51 -0
- package/node_modules/semver/functions/compare-build.js +7 -0
- package/node_modules/semver/functions/compare-loose.js +3 -0
- package/node_modules/semver/functions/compare.js +5 -0
- package/node_modules/semver/functions/diff.js +23 -0
- package/node_modules/semver/functions/eq.js +3 -0
- package/node_modules/semver/functions/gt.js +3 -0
- package/node_modules/semver/functions/gte.js +3 -0
- package/node_modules/semver/functions/inc.js +15 -0
- package/node_modules/semver/functions/lt.js +3 -0
- package/node_modules/semver/functions/lte.js +3 -0
- package/node_modules/semver/functions/major.js +3 -0
- package/node_modules/semver/functions/minor.js +3 -0
- package/node_modules/semver/functions/neq.js +3 -0
- package/node_modules/semver/functions/parse.js +33 -0
- package/node_modules/semver/functions/patch.js +3 -0
- package/node_modules/semver/functions/prerelease.js +6 -0
- package/node_modules/semver/functions/rcompare.js +3 -0
- package/node_modules/semver/functions/rsort.js +3 -0
- package/node_modules/semver/functions/satisfies.js +10 -0
- package/node_modules/semver/functions/sort.js +3 -0
- package/node_modules/semver/functions/valid.js +6 -0
- package/node_modules/semver/index.js +48 -0
- package/node_modules/semver/internal/constants.js +17 -0
- package/node_modules/semver/internal/debug.js +9 -0
- package/node_modules/semver/internal/identifiers.js +23 -0
- package/node_modules/semver/internal/parse-options.js +11 -0
- package/node_modules/semver/internal/re.js +182 -0
- package/node_modules/semver/package.json +41 -0
- package/node_modules/semver/preload.js +2 -0
- package/node_modules/semver/range.bnf +16 -0
- package/node_modules/semver/ranges/gtr.js +4 -0
- package/node_modules/semver/ranges/intersects.js +7 -0
- package/node_modules/semver/ranges/ltr.js +4 -0
- package/node_modules/semver/ranges/max-satisfying.js +25 -0
- package/node_modules/semver/ranges/min-satisfying.js +24 -0
- package/node_modules/semver/ranges/min-version.js +60 -0
- package/node_modules/semver/ranges/outside.js +80 -0
- package/node_modules/semver/ranges/simplify.js +44 -0
- package/node_modules/semver/ranges/subset.js +222 -0
- package/node_modules/semver/ranges/to-comparators.js +8 -0
- package/node_modules/semver/ranges/valid.js +11 -0
- package/node_modules/shelljs/CHANGELOG.md +942 -0
- package/node_modules/shelljs/LICENSE +26 -0
- package/node_modules/shelljs/README.md +835 -0
- package/node_modules/shelljs/bin/shjs +48 -0
- package/node_modules/shelljs/commands.js +29 -0
- package/node_modules/shelljs/global.js +12 -0
- package/node_modules/shelljs/make.js +57 -0
- package/node_modules/shelljs/package.json +79 -0
- package/node_modules/shelljs/plugin.js +16 -0
- package/node_modules/shelljs/shell.js +156 -0
- package/node_modules/shelljs/src/cat.js +76 -0
- package/node_modules/shelljs/src/cd.js +39 -0
- package/node_modules/shelljs/src/chmod.js +216 -0
- package/node_modules/shelljs/src/common.js +468 -0
- package/node_modules/shelljs/src/cp.js +304 -0
- package/node_modules/shelljs/src/dirs.js +212 -0
- package/node_modules/shelljs/src/echo.js +63 -0
- package/node_modules/shelljs/src/error.js +15 -0
- package/node_modules/shelljs/src/exec-child.js +39 -0
- package/node_modules/shelljs/src/exec.js +208 -0
- package/node_modules/shelljs/src/find.js +61 -0
- package/node_modules/shelljs/src/grep.js +73 -0
- package/node_modules/shelljs/src/head.js +107 -0
- package/node_modules/shelljs/src/ln.js +73 -0
- package/node_modules/shelljs/src/ls.js +141 -0
- package/node_modules/shelljs/src/mkdir.js +100 -0
- package/node_modules/shelljs/src/mv.js +118 -0
- package/node_modules/shelljs/src/popd.js +1 -0
- package/node_modules/shelljs/src/pushd.js +1 -0
- package/node_modules/shelljs/src/pwd.js +16 -0
- package/node_modules/shelljs/src/rm.js +201 -0
- package/node_modules/shelljs/src/sed.js +87 -0
- package/node_modules/shelljs/src/set.js +56 -0
- package/node_modules/shelljs/src/sort.js +97 -0
- package/node_modules/shelljs/src/tail.js +80 -0
- package/node_modules/shelljs/src/tempdir.js +75 -0
- package/node_modules/shelljs/src/test.js +85 -0
- package/node_modules/shelljs/src/to.js +37 -0
- package/node_modules/shelljs/src/toEnd.js +36 -0
- package/node_modules/shelljs/src/touch.js +111 -0
- package/node_modules/shelljs/src/uniq.js +92 -0
- package/node_modules/shelljs/src/which.js +118 -0
- package/node_modules/shx/CHANGELOG.md +224 -0
- package/node_modules/shx/LICENSE +21 -0
- package/node_modules/shx/README.md +149 -0
- package/node_modules/shx/lib/cli.js +40 -0
- package/node_modules/shx/lib/config.js +58 -0
- package/node_modules/shx/lib/help.js +37 -0
- package/node_modules/shx/lib/plugin-true-false.js +25 -0
- package/node_modules/shx/lib/printCmdRet.js +17 -0
- package/node_modules/shx/lib/shx.js +157 -0
- package/node_modules/shx/package.json +80 -0
- package/node_modules/sprintf-js/.npmignore +1 -0
- package/node_modules/sprintf-js/LICENSE +24 -0
- package/node_modules/sprintf-js/README.md +88 -0
- package/node_modules/sprintf-js/bower.json +14 -0
- package/node_modules/sprintf-js/demo/angular.html +20 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
- package/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
- package/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
- package/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
- package/node_modules/sprintf-js/gruntfile.js +36 -0
- package/node_modules/sprintf-js/package.json +22 -0
- package/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
- package/node_modules/sprintf-js/src/sprintf.js +208 -0
- package/node_modules/sprintf-js/test/test.js +82 -0
- package/node_modules/string-width/index.d.ts +29 -0
- package/node_modules/string-width/index.js +47 -0
- package/node_modules/string-width/license +9 -0
- package/node_modules/string-width/package.json +56 -0
- package/node_modules/string-width/readme.md +50 -0
- package/node_modules/strip-ansi/index.d.ts +17 -0
- package/node_modules/strip-ansi/index.js +4 -0
- package/node_modules/strip-ansi/license +9 -0
- package/node_modules/strip-ansi/package.json +54 -0
- package/node_modules/strip-ansi/readme.md +46 -0
- package/node_modules/supports-color/browser.js +5 -0
- package/node_modules/supports-color/index.js +135 -0
- package/node_modules/supports-color/license +9 -0
- package/node_modules/supports-color/package.json +53 -0
- package/node_modules/supports-color/readme.md +76 -0
- package/node_modules/wrap-ansi/index.js +216 -0
- package/node_modules/wrap-ansi/license +9 -0
- package/node_modules/wrap-ansi/package.json +62 -0
- package/node_modules/wrap-ansi/readme.md +91 -0
- package/node_modules/wrappy/LICENSE +15 -0
- package/node_modules/wrappy/README.md +36 -0
- package/node_modules/wrappy/package.json +29 -0
- package/node_modules/wrappy/wrappy.js +33 -0
- package/node_modules/xmlbuilder2/CHANGELOG.md +215 -0
- package/node_modules/xmlbuilder2/LICENSE +21 -0
- package/node_modules/xmlbuilder2/README.md +182 -0
- package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.d.ts +236 -0
- package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.js +108 -0
- package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.d.ts +17 -0
- package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.js +26 -0
- package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.d.ts +122 -0
- package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.js +791 -0
- package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.d.ts +143 -0
- package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.js +841 -0
- package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/builder/dom.d.ts +8 -0
- package/node_modules/xmlbuilder2/lib/builder/dom.js +67 -0
- package/node_modules/xmlbuilder2/lib/builder/dom.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/builder/index.d.ts +4 -0
- package/node_modules/xmlbuilder2/lib/builder/index.js +15 -0
- package/node_modules/xmlbuilder2/lib/builder/index.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/index.d.ts +1 -0
- package/node_modules/xmlbuilder2/lib/index.js +10 -0
- package/node_modules/xmlbuilder2/lib/index.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/interfaces.d.ts +1343 -0
- package/node_modules/xmlbuilder2/lib/interfaces.js +75 -0
- package/node_modules/xmlbuilder2/lib/interfaces.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/readers/BaseReader.d.ts +96 -0
- package/node_modules/xmlbuilder2/lib/readers/BaseReader.js +138 -0
- package/node_modules/xmlbuilder2/lib/readers/BaseReader.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/readers/JSONReader.d.ts +14 -0
- package/node_modules/xmlbuilder2/lib/readers/JSONReader.js +38 -0
- package/node_modules/xmlbuilder2/lib/readers/JSONReader.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/readers/ObjectReader.d.ts +15 -0
- package/node_modules/xmlbuilder2/lib/readers/ObjectReader.js +161 -0
- package/node_modules/xmlbuilder2/lib/readers/ObjectReader.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/readers/XMLReader.d.ts +14 -0
- package/node_modules/xmlbuilder2/lib/readers/XMLReader.js +200 -0
- package/node_modules/xmlbuilder2/lib/readers/XMLReader.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/readers/YAMLReader.d.ts +14 -0
- package/node_modules/xmlbuilder2/lib/readers/YAMLReader.js +44 -0
- package/node_modules/xmlbuilder2/lib/readers/YAMLReader.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/readers/index.d.ts +4 -0
- package/node_modules/xmlbuilder2/lib/readers/index.js +11 -0
- package/node_modules/xmlbuilder2/lib/readers/index.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.d.ts +110 -0
- package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.js +23 -0
- package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/BaseWriter.d.ts +276 -0
- package/node_modules/xmlbuilder2/lib/writers/BaseWriter.js +1637 -0
- package/node_modules/xmlbuilder2/lib/writers/BaseWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.d.ts +68 -0
- package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.js +172 -0
- package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/JSONWriter.d.ts +67 -0
- package/node_modules/xmlbuilder2/lib/writers/JSONWriter.js +224 -0
- package/node_modules/xmlbuilder2/lib/writers/JSONWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/MapWriter.d.ts +27 -0
- package/node_modules/xmlbuilder2/lib/writers/MapWriter.js +86 -0
- package/node_modules/xmlbuilder2/lib/writers/MapWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.d.ts +56 -0
- package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.js +484 -0
- package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.d.ts +51 -0
- package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.js +165 -0
- package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/XMLWriter.d.ts +60 -0
- package/node_modules/xmlbuilder2/lib/writers/XMLWriter.js +237 -0
- package/node_modules/xmlbuilder2/lib/writers/XMLWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.d.ts +61 -0
- package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.js +161 -0
- package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.d.ts +55 -0
- package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.js +188 -0
- package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/writers/index.d.ts +5 -0
- package/node_modules/xmlbuilder2/lib/writers/index.js +13 -0
- package/node_modules/xmlbuilder2/lib/writers/index.js.map +1 -0
- package/node_modules/xmlbuilder2/lib/xmlbuilder2.min.js +8 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/LICENSE +21 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/README.md +16 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/assert/strict.d.ts +8 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/assert.d.ts +912 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/async_hooks.d.ts +501 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/buffer.d.ts +2142 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/child_process.d.ts +1366 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/cluster.d.ts +414 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/console.d.ts +412 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/constants.d.ts +18 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/crypto.d.ts +3307 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/dgram.d.ts +545 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/diagnostics_channel.d.ts +134 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/dns/promises.d.ts +370 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/dns.d.ts +659 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/domain.d.ts +169 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/events.d.ts +623 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/fs/promises.d.ts +1091 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/fs.d.ts +3835 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/globals.d.ts +284 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/globals.global.d.ts +1 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/http.d.ts +1386 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/http2.d.ts +2100 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/https.d.ts +391 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/index.d.ts +131 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/inspector.d.ts +2744 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/module.d.ts +114 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/net.d.ts +783 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/os.d.ts +455 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/package.json +230 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/path.d.ts +180 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/perf_hooks.d.ts +557 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/process.d.ts +1481 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/punycode.d.ts +117 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/querystring.d.ts +131 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/readline.d.ts +650 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/repl.d.ts +424 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/stream/consumers.d.ts +24 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/stream/promises.d.ts +42 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/stream/web.d.ts +329 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/stream.d.ts +1249 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/timers/promises.d.ts +68 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/timers.d.ts +94 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/tls.d.ts +1020 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/trace_events.d.ts +161 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/tty.d.ts +204 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/url.d.ts +861 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/util.d.ts +1594 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/v8.d.ts +378 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/vm.d.ts +507 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/wasi.d.ts +158 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/worker_threads.d.ts +649 -0
- package/node_modules/xmlbuilder2/node_modules/@types/node/zlib.d.ts +517 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/CHANGELOG.md +551 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/LICENSE +21 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/README.md +299 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/bin/js-yaml.js +132 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/dist/js-yaml.js +3989 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/index.js +7 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/loader.js +1644 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml.js +39 -0
- package/node_modules/xmlbuilder2/node_modules/js-yaml/package.json +49 -0
- package/node_modules/xmlbuilder2/package.json +82 -0
- package/node_modules/y18n/CHANGELOG.md +100 -0
- package/node_modules/y18n/LICENSE +13 -0
- package/node_modules/y18n/README.md +127 -0
- package/node_modules/y18n/build/index.cjs +203 -0
- package/node_modules/y18n/build/lib/cjs.js +6 -0
- package/node_modules/y18n/build/lib/index.js +174 -0
- package/node_modules/y18n/build/lib/platform-shims/node.js +19 -0
- package/node_modules/y18n/index.mjs +8 -0
- package/node_modules/y18n/package.json +70 -0
- package/node_modules/yallist/LICENSE +15 -0
- package/node_modules/yallist/README.md +204 -0
- package/node_modules/yallist/iterator.js +8 -0
- package/node_modules/yallist/package.json +29 -0
- package/node_modules/yallist/yallist.js +426 -0
- package/node_modules/yaml/LICENSE +13 -0
- package/node_modules/yaml/README.md +127 -0
- package/node_modules/yaml/browser/dist/PlainValue-b8036b75.js +1275 -0
- package/node_modules/yaml/browser/dist/Schema-e94716c8.js +682 -0
- package/node_modules/yaml/browser/dist/index.js +1002 -0
- package/node_modules/yaml/browser/dist/legacy-exports.js +3 -0
- package/node_modules/yaml/browser/dist/package.json +1 -0
- package/node_modules/yaml/browser/dist/parse-cst.js +1904 -0
- package/node_modules/yaml/browser/dist/resolveSeq-492ab440.js +2419 -0
- package/node_modules/yaml/browser/dist/types.js +4 -0
- package/node_modules/yaml/browser/dist/util.js +2 -0
- package/node_modules/yaml/browser/dist/warnings-df54cb69.js +499 -0
- package/node_modules/yaml/browser/index.js +1 -0
- package/node_modules/yaml/browser/map.js +2 -0
- package/node_modules/yaml/browser/pair.js +2 -0
- package/node_modules/yaml/browser/parse-cst.js +1 -0
- package/node_modules/yaml/browser/scalar.js +2 -0
- package/node_modules/yaml/browser/schema.js +9 -0
- package/node_modules/yaml/browser/seq.js +2 -0
- package/node_modules/yaml/browser/types/binary.js +8 -0
- package/node_modules/yaml/browser/types/omap.js +3 -0
- package/node_modules/yaml/browser/types/pairs.js +3 -0
- package/node_modules/yaml/browser/types/set.js +3 -0
- package/node_modules/yaml/browser/types/timestamp.js +10 -0
- package/node_modules/yaml/browser/types.js +1 -0
- package/node_modules/yaml/browser/util.js +1 -0
- package/node_modules/yaml/dist/Document-9b4560a1.js +757 -0
- package/node_modules/yaml/dist/PlainValue-ec8e588e.js +876 -0
- package/node_modules/yaml/dist/Schema-88e323a7.js +525 -0
- package/node_modules/yaml/dist/index.js +79 -0
- package/node_modules/yaml/dist/legacy-exports.js +16 -0
- package/node_modules/yaml/dist/parse-cst.js +1753 -0
- package/node_modules/yaml/dist/resolveSeq-d03cb037.js +2161 -0
- package/node_modules/yaml/dist/test-events.js +162 -0
- package/node_modules/yaml/dist/types.js +23 -0
- package/node_modules/yaml/dist/util.js +19 -0
- package/node_modules/yaml/dist/warnings-1000a372.js +416 -0
- package/node_modules/yaml/index.d.ts +372 -0
- package/node_modules/yaml/index.js +1 -0
- package/node_modules/yaml/map.js +2 -0
- package/node_modules/yaml/package.json +106 -0
- package/node_modules/yaml/pair.js +2 -0
- package/node_modules/yaml/parse-cst.d.ts +191 -0
- package/node_modules/yaml/parse-cst.js +1 -0
- package/node_modules/yaml/scalar.js +2 -0
- package/node_modules/yaml/schema.js +9 -0
- package/node_modules/yaml/seq.js +2 -0
- package/node_modules/yaml/types/binary.js +8 -0
- package/node_modules/yaml/types/omap.js +3 -0
- package/node_modules/yaml/types/pairs.js +3 -0
- package/node_modules/yaml/types/set.js +3 -0
- package/node_modules/yaml/types/timestamp.js +10 -0
- package/node_modules/yaml/types.d.ts +407 -0
- package/node_modules/yaml/types.js +17 -0
- package/node_modules/yaml/types.mjs +17 -0
- package/node_modules/yaml/util.d.ts +86 -0
- package/node_modules/yaml/util.js +16 -0
- package/node_modules/yaml/util.mjs +18 -0
- package/node_modules/yargs/CHANGELOG.md +88 -0
- package/node_modules/yargs/LICENSE +21 -0
- package/node_modules/yargs/README.md +202 -0
- package/node_modules/yargs/browser.mjs +7 -0
- package/node_modules/yargs/build/index.cjs +2920 -0
- package/node_modules/yargs/build/lib/argsert.js +62 -0
- package/node_modules/yargs/build/lib/command.js +382 -0
- package/node_modules/yargs/build/lib/completion-templates.js +47 -0
- package/node_modules/yargs/build/lib/completion.js +128 -0
- package/node_modules/yargs/build/lib/middleware.js +53 -0
- package/node_modules/yargs/build/lib/parse-command.js +32 -0
- package/node_modules/yargs/build/lib/typings/common-types.js +9 -0
- package/node_modules/yargs/build/lib/typings/yargs-parser-types.js +1 -0
- package/node_modules/yargs/build/lib/usage.js +548 -0
- package/node_modules/yargs/build/lib/utils/apply-extends.js +59 -0
- package/node_modules/yargs/build/lib/utils/is-promise.js +5 -0
- package/node_modules/yargs/build/lib/utils/levenshtein.js +26 -0
- package/node_modules/yargs/build/lib/utils/obj-filter.js +10 -0
- package/node_modules/yargs/build/lib/utils/process-argv.js +17 -0
- package/node_modules/yargs/build/lib/utils/set-blocking.js +12 -0
- package/node_modules/yargs/build/lib/utils/which-module.js +10 -0
- package/node_modules/yargs/build/lib/validation.js +308 -0
- package/node_modules/yargs/build/lib/yargs-factory.js +1143 -0
- package/node_modules/yargs/build/lib/yerror.js +7 -0
- package/node_modules/yargs/helpers/helpers.mjs +10 -0
- package/node_modules/yargs/helpers/index.js +14 -0
- package/node_modules/yargs/helpers/package.json +3 -0
- package/node_modules/yargs/index.cjs +39 -0
- package/node_modules/yargs/index.mjs +8 -0
- package/node_modules/yargs/lib/platform-shims/browser.mjs +92 -0
- package/node_modules/yargs/lib/platform-shims/esm.mjs +67 -0
- package/node_modules/yargs/locales/be.json +46 -0
- package/node_modules/yargs/locales/de.json +46 -0
- package/node_modules/yargs/locales/en.json +51 -0
- package/node_modules/yargs/locales/es.json +46 -0
- package/node_modules/yargs/locales/fi.json +49 -0
- package/node_modules/yargs/locales/fr.json +53 -0
- package/node_modules/yargs/locales/hi.json +49 -0
- package/node_modules/yargs/locales/hu.json +46 -0
- package/node_modules/yargs/locales/id.json +50 -0
- package/node_modules/yargs/locales/it.json +46 -0
- package/node_modules/yargs/locales/ja.json +51 -0
- package/node_modules/yargs/locales/ko.json +49 -0
- package/node_modules/yargs/locales/nb.json +44 -0
- package/node_modules/yargs/locales/nl.json +49 -0
- package/node_modules/yargs/locales/nn.json +44 -0
- package/node_modules/yargs/locales/pirate.json +13 -0
- package/node_modules/yargs/locales/pl.json +49 -0
- package/node_modules/yargs/locales/pt.json +45 -0
- package/node_modules/yargs/locales/pt_BR.json +48 -0
- package/node_modules/yargs/locales/ru.json +46 -0
- package/node_modules/yargs/locales/th.json +46 -0
- package/node_modules/yargs/locales/tr.json +48 -0
- package/node_modules/yargs/locales/zh_CN.json +48 -0
- package/node_modules/yargs/locales/zh_TW.json +47 -0
- package/node_modules/yargs/package.json +122 -0
- package/node_modules/yargs/yargs +9 -0
- package/node_modules/yargs-parser/CHANGELOG.md +263 -0
- package/node_modules/yargs-parser/LICENSE.txt +14 -0
- package/node_modules/yargs-parser/README.md +518 -0
- package/node_modules/yargs-parser/browser.js +29 -0
- package/node_modules/yargs-parser/build/index.cjs +1042 -0
- package/node_modules/yargs-parser/build/lib/index.js +59 -0
- package/node_modules/yargs-parser/build/lib/string-utils.js +65 -0
- package/node_modules/yargs-parser/build/lib/tokenize-arg-string.js +40 -0
- package/node_modules/yargs-parser/build/lib/yargs-parser-types.js +12 -0
- package/node_modules/yargs-parser/build/lib/yargs-parser.js +1037 -0
- package/node_modules/yargs-parser/package.json +87 -0
- package/package.json +181 -0
- package/rfcs/github-project-settings.md +95 -0
- package/version.json +3 -0
|
@@ -0,0 +1,687 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.defaultNpmToken = exports.NpmAccess = exports.NodePackageManager = exports.NodePackage = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const url_1 = require("url");
|
|
8
|
+
const fs_extra_1 = require("fs-extra");
|
|
9
|
+
const semver = require("semver");
|
|
10
|
+
const _resolve_1 = require("../_resolve");
|
|
11
|
+
const component_1 = require("../component");
|
|
12
|
+
const dependencies_1 = require("../dependencies");
|
|
13
|
+
const json_1 = require("../json");
|
|
14
|
+
const release_1 = require("../release");
|
|
15
|
+
const util_1 = require("../util");
|
|
16
|
+
const UNLICENSED = 'UNLICENSED';
|
|
17
|
+
const DEFAULT_NPM_REGISTRY_URL = 'https://registry.npmjs.org/';
|
|
18
|
+
const GITHUB_PACKAGES_REGISTRY = 'npm.pkg.github.com';
|
|
19
|
+
const DEFAULT_NPM_TOKEN_SECRET = 'NPM_TOKEN';
|
|
20
|
+
const DEFAULT_GITHUB_TOKEN_SECRET = 'GITHUB_TOKEN';
|
|
21
|
+
/**
|
|
22
|
+
* (experimental) Represents the npm `package.json` file.
|
|
23
|
+
*
|
|
24
|
+
* @experimental
|
|
25
|
+
*/
|
|
26
|
+
class NodePackage extends component_1.Component {
|
|
27
|
+
/**
|
|
28
|
+
* @experimental
|
|
29
|
+
*/
|
|
30
|
+
constructor(project, options = {}) {
|
|
31
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
32
|
+
super(project);
|
|
33
|
+
this.keywords = new Set();
|
|
34
|
+
this.bin = {};
|
|
35
|
+
this.engines = {};
|
|
36
|
+
this.packageName = (_b = options.packageName) !== null && _b !== void 0 ? _b : project.name;
|
|
37
|
+
this.peerDependencyOptions = (_c = options.peerDependencyOptions) !== null && _c !== void 0 ? _c : {};
|
|
38
|
+
this.allowLibraryDependencies = (_d = options.allowLibraryDependencies) !== null && _d !== void 0 ? _d : true;
|
|
39
|
+
this.packageManager = (_e = options.packageManager) !== null && _e !== void 0 ? _e : NodePackageManager.YARN;
|
|
40
|
+
this.entrypoint = (_f = options.entrypoint) !== null && _f !== void 0 ? _f : 'lib/index.js';
|
|
41
|
+
this.lockFile = determineLockfile(this.packageManager);
|
|
42
|
+
this.project.annotateGenerated(`/${this.lockFile}`);
|
|
43
|
+
const { npmAccess, npmRegistry, npmRegistryUrl, npmTokenSecret, codeArtifactOptions, } = this.parseNpmOptions(options);
|
|
44
|
+
this.npmAccess = npmAccess;
|
|
45
|
+
this.npmRegistry = npmRegistry;
|
|
46
|
+
this.npmRegistryUrl = npmRegistryUrl;
|
|
47
|
+
this.npmTokenSecret = npmTokenSecret;
|
|
48
|
+
this.codeArtifactOptions = codeArtifactOptions;
|
|
49
|
+
this.processDeps(options);
|
|
50
|
+
const prev = (_g = this.readPackageJson()) !== null && _g !== void 0 ? _g : {};
|
|
51
|
+
// empty objects are here to preserve order for backwards compatibility
|
|
52
|
+
this.manifest = {
|
|
53
|
+
name: this.packageName,
|
|
54
|
+
description: options.description,
|
|
55
|
+
repository: !options.repository ? undefined : {
|
|
56
|
+
type: 'git',
|
|
57
|
+
url: options.repository,
|
|
58
|
+
directory: options.repositoryDirectory,
|
|
59
|
+
},
|
|
60
|
+
bin: () => this.renderBin(),
|
|
61
|
+
scripts: () => this.renderScripts(),
|
|
62
|
+
author: this.renderAuthor(options),
|
|
63
|
+
devDependencies: {},
|
|
64
|
+
peerDependencies: {},
|
|
65
|
+
dependencies: {},
|
|
66
|
+
bundledDependencies: [],
|
|
67
|
+
keywords: () => this.renderKeywords(),
|
|
68
|
+
engines: () => this.renderEngines(),
|
|
69
|
+
main: this.entrypoint !== '' ? this.entrypoint : undefined,
|
|
70
|
+
license: () => { var _b; return (_b = this.license) !== null && _b !== void 0 ? _b : UNLICENSED; },
|
|
71
|
+
homepage: options.homepage,
|
|
72
|
+
publishConfig: () => this.renderPublishConfig(),
|
|
73
|
+
// in release CI builds we bump the version before we run "build" so we want
|
|
74
|
+
// to preserve the version number. otherwise, we always set it to 0.0.0
|
|
75
|
+
version: this.determineVersion(prev === null || prev === void 0 ? void 0 : prev.version),
|
|
76
|
+
bugs: (options.bugsEmail || options.bugsUrl) ? {
|
|
77
|
+
email: options.bugsEmail,
|
|
78
|
+
url: options.bugsUrl,
|
|
79
|
+
} : undefined,
|
|
80
|
+
};
|
|
81
|
+
// override any scripts from options (if specified)
|
|
82
|
+
for (const [cmdname, shell] of Object.entries((_h = options.scripts) !== null && _h !== void 0 ? _h : {})) {
|
|
83
|
+
project.addTask(cmdname, { exec: shell });
|
|
84
|
+
}
|
|
85
|
+
this.file = new json_1.JsonFile(this.project, 'package.json', {
|
|
86
|
+
obj: this.manifest,
|
|
87
|
+
readonly: false,
|
|
88
|
+
});
|
|
89
|
+
this.addKeywords(...(_j = options.keywords) !== null && _j !== void 0 ? _j : []);
|
|
90
|
+
this.addBin((_k = options.bin) !== null && _k !== void 0 ? _k : {});
|
|
91
|
+
// automatically add all executable files under "bin"
|
|
92
|
+
if ((_l = options.autoDetectBin) !== null && _l !== void 0 ? _l : true) {
|
|
93
|
+
this.autoDiscoverBinaries();
|
|
94
|
+
}
|
|
95
|
+
// node version
|
|
96
|
+
this.minNodeVersion = options.minNodeVersion;
|
|
97
|
+
this.maxNodeVersion = options.maxNodeVersion;
|
|
98
|
+
this.addNodeEngine();
|
|
99
|
+
// license
|
|
100
|
+
if ((_m = options.licensed) !== null && _m !== void 0 ? _m : true) {
|
|
101
|
+
this.license = (_o = options.license) !== null && _o !== void 0 ? _o : 'Apache-2.0';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* (experimental) Defines normal dependencies.
|
|
106
|
+
*
|
|
107
|
+
* @param deps Names modules to install.
|
|
108
|
+
* @experimental
|
|
109
|
+
*/
|
|
110
|
+
addDeps(...deps) {
|
|
111
|
+
for (const dep of deps) {
|
|
112
|
+
this.project.deps.addDependency(dep, dependencies_1.DependencyType.RUNTIME);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* (experimental) Defines development/test dependencies.
|
|
117
|
+
*
|
|
118
|
+
* @param deps Names modules to install.
|
|
119
|
+
* @experimental
|
|
120
|
+
*/
|
|
121
|
+
addDevDeps(...deps) {
|
|
122
|
+
for (const dep of deps) {
|
|
123
|
+
this.project.deps.addDependency(dep, dependencies_1.DependencyType.BUILD);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* (experimental) Defines peer dependencies.
|
|
128
|
+
*
|
|
129
|
+
* When adding peer dependencies, a devDependency will also be added on the
|
|
130
|
+
* pinned version of the declared peer. This will ensure that you are testing
|
|
131
|
+
* your code against the minimum version required from your consumers.
|
|
132
|
+
*
|
|
133
|
+
* @param deps Names modules to install.
|
|
134
|
+
* @experimental
|
|
135
|
+
*/
|
|
136
|
+
addPeerDeps(...deps) {
|
|
137
|
+
if (Object.keys(deps).length && !this.allowLibraryDependencies) {
|
|
138
|
+
throw new Error(`cannot add peer dependencies to an APP project: ${Object.keys(deps).join(',')}`);
|
|
139
|
+
}
|
|
140
|
+
for (const dep of deps) {
|
|
141
|
+
this.project.deps.addDependency(dep, dependencies_1.DependencyType.PEER);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* (experimental) Defines bundled dependencies.
|
|
146
|
+
*
|
|
147
|
+
* Bundled dependencies will be added as normal dependencies as well as to the
|
|
148
|
+
* `bundledDependencies` section of your `package.json`.
|
|
149
|
+
*
|
|
150
|
+
* @param deps Names modules to install.
|
|
151
|
+
* @experimental
|
|
152
|
+
*/
|
|
153
|
+
addBundledDeps(...deps) {
|
|
154
|
+
if (deps.length && !this.allowLibraryDependencies) {
|
|
155
|
+
throw new Error(`cannot add bundled dependencies to an APP project: ${deps.join(',')}`);
|
|
156
|
+
}
|
|
157
|
+
for (const dep of deps) {
|
|
158
|
+
this.project.deps.addDependency(dep, dependencies_1.DependencyType.BUNDLED);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* (experimental) Adds an `engines` requirement to your package.
|
|
163
|
+
*
|
|
164
|
+
* @param engine The engine (e.g. `node`).
|
|
165
|
+
* @param version The semantic version requirement (e.g. `^10`).
|
|
166
|
+
* @experimental
|
|
167
|
+
*/
|
|
168
|
+
addEngine(engine, version) {
|
|
169
|
+
this.engines[engine] = version;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* (experimental) Adds keywords to package.json (deduplicated).
|
|
173
|
+
*
|
|
174
|
+
* @param keywords The keywords to add.
|
|
175
|
+
* @experimental
|
|
176
|
+
*/
|
|
177
|
+
addKeywords(...keywords) {
|
|
178
|
+
for (const k of keywords) {
|
|
179
|
+
this.keywords.add(k);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* @experimental
|
|
184
|
+
*/
|
|
185
|
+
addBin(bins) {
|
|
186
|
+
for (const [k, v] of Object.entries(bins)) {
|
|
187
|
+
this.bin[k] = v;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* (experimental) Override the contents of an npm package.json script.
|
|
192
|
+
*
|
|
193
|
+
* @param name The script name.
|
|
194
|
+
* @param command The command to execute.
|
|
195
|
+
* @experimental
|
|
196
|
+
*/
|
|
197
|
+
setScript(name, command) {
|
|
198
|
+
this.file.addOverride(`scripts.${name}`, command);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* (experimental) Removes the npm script (always successful).
|
|
202
|
+
*
|
|
203
|
+
* @param name The name of the script.
|
|
204
|
+
* @experimental
|
|
205
|
+
*/
|
|
206
|
+
removeScript(name) {
|
|
207
|
+
this.file.addDeletionOverride(`scripts.${name}`);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* (deprecated) Indicates if a script by the given name is defined.
|
|
211
|
+
*
|
|
212
|
+
* @param name The name of the script.
|
|
213
|
+
* @deprecated Use `project.tasks.tryFind(name)`
|
|
214
|
+
*/
|
|
215
|
+
hasScript(name) {
|
|
216
|
+
return this.project.tasks.tryFind(name) !== undefined;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* (experimental) Directly set fields in `package.json`.
|
|
220
|
+
*
|
|
221
|
+
* @param name field name.
|
|
222
|
+
* @param value field value.
|
|
223
|
+
* @experimental
|
|
224
|
+
* @escape true
|
|
225
|
+
*/
|
|
226
|
+
addField(name, value) {
|
|
227
|
+
this.manifest[name] = value;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* (experimental) Sets the package version.
|
|
231
|
+
*
|
|
232
|
+
* @param version Package version.
|
|
233
|
+
* @experimental
|
|
234
|
+
*/
|
|
235
|
+
addVersion(version) {
|
|
236
|
+
this.manifest.version = version;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* (experimental) Returns the command to execute in order to install all dependencies (always frozen).
|
|
240
|
+
*
|
|
241
|
+
* @experimental
|
|
242
|
+
*/
|
|
243
|
+
get installCommand() {
|
|
244
|
+
return this.renderInstallCommand(true);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* (experimental) Renders `yarn install` or `npm install` with lockfile update (not frozen).
|
|
248
|
+
*
|
|
249
|
+
* @experimental
|
|
250
|
+
*/
|
|
251
|
+
get installAndUpdateLockfileCommand() {
|
|
252
|
+
return this.renderInstallCommand(false);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* (experimental) Render a package manager specific command to upgrade all requested dependencies.
|
|
256
|
+
*
|
|
257
|
+
* @experimental
|
|
258
|
+
*/
|
|
259
|
+
renderUpgradePackagesCommand(exclude, include) {
|
|
260
|
+
const project = this.project;
|
|
261
|
+
function upgradePackages(command) {
|
|
262
|
+
return () => {
|
|
263
|
+
if (exclude.length === 0 && !include) {
|
|
264
|
+
// request to upgrade all packages
|
|
265
|
+
// separated for asthetic reasons.
|
|
266
|
+
return command;
|
|
267
|
+
}
|
|
268
|
+
// filter by exclude and include.
|
|
269
|
+
return `${command} ${project.deps.all
|
|
270
|
+
.map(d => d.name)
|
|
271
|
+
.filter(d => include ? include.includes(d) : true)
|
|
272
|
+
.filter(d => !exclude.includes(d))
|
|
273
|
+
.join(' ')}`;
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
let lazy = undefined;
|
|
277
|
+
switch (this.packageManager) {
|
|
278
|
+
case NodePackageManager.YARN:
|
|
279
|
+
lazy = upgradePackages('yarn upgrade');
|
|
280
|
+
break;
|
|
281
|
+
case NodePackageManager.NPM:
|
|
282
|
+
lazy = upgradePackages('npm update');
|
|
283
|
+
break;
|
|
284
|
+
case NodePackageManager.PNPM:
|
|
285
|
+
lazy = upgradePackages('pnpm update');
|
|
286
|
+
break;
|
|
287
|
+
default:
|
|
288
|
+
throw new Error(`unexpected package manager ${this.packageManager}`);
|
|
289
|
+
}
|
|
290
|
+
// return a lazy function so that dependencies include ones that were
|
|
291
|
+
// added post project instantiation (i.e using project.addDeps)
|
|
292
|
+
return lazy;
|
|
293
|
+
}
|
|
294
|
+
// ---------------------------------------------------------------------------------------
|
|
295
|
+
/**
|
|
296
|
+
* (experimental) Called before synthesis.
|
|
297
|
+
*
|
|
298
|
+
* @experimental
|
|
299
|
+
*/
|
|
300
|
+
preSynthesize() {
|
|
301
|
+
super.preSynthesize();
|
|
302
|
+
this._renderedDeps = this.renderDependencies();
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* (experimental) Called after synthesis.
|
|
306
|
+
*
|
|
307
|
+
* Order is *not* guaranteed.
|
|
308
|
+
*
|
|
309
|
+
* @experimental
|
|
310
|
+
*/
|
|
311
|
+
postSynthesize() {
|
|
312
|
+
super.postSynthesize();
|
|
313
|
+
const outdir = this.project.outdir;
|
|
314
|
+
util_1.exec(this.renderInstallCommand(this.isAutomatedBuild), { cwd: outdir });
|
|
315
|
+
this.resolveDepsAndWritePackageJson(outdir);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* (experimental) The command which executes "projen".
|
|
319
|
+
*
|
|
320
|
+
* @experimental
|
|
321
|
+
*/
|
|
322
|
+
get projenCommand() {
|
|
323
|
+
return this.project.projenCommand;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Returns `true` if we are running within a CI build.
|
|
327
|
+
*/
|
|
328
|
+
get isAutomatedBuild() {
|
|
329
|
+
return util_1.isTruthy(process.env.CI);
|
|
330
|
+
}
|
|
331
|
+
determineVersion(currVersion) {
|
|
332
|
+
if (!this.isReleaseBuild) {
|
|
333
|
+
return '0.0.0';
|
|
334
|
+
}
|
|
335
|
+
return currVersion !== null && currVersion !== void 0 ? currVersion : '0.0.0';
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Returns `true` if this is a CI release build.
|
|
339
|
+
*/
|
|
340
|
+
get isReleaseBuild() {
|
|
341
|
+
return util_1.isTruthy(process.env.RELEASE);
|
|
342
|
+
}
|
|
343
|
+
// -------------------------------------------------------------------------------------------
|
|
344
|
+
parseNpmOptions(options) {
|
|
345
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
346
|
+
let npmRegistryUrl = options.npmRegistryUrl;
|
|
347
|
+
if (options.npmRegistry) {
|
|
348
|
+
if (npmRegistryUrl) {
|
|
349
|
+
throw new Error('cannot use the deprecated "npmRegistry" together with "npmRegistryUrl". please use "npmRegistryUrl" instead.');
|
|
350
|
+
}
|
|
351
|
+
npmRegistryUrl = `https://${options.npmRegistry}`;
|
|
352
|
+
}
|
|
353
|
+
const npmr = url_1.parse(npmRegistryUrl !== null && npmRegistryUrl !== void 0 ? npmRegistryUrl : DEFAULT_NPM_REGISTRY_URL);
|
|
354
|
+
if (!npmr || !npmr.hostname || !npmr.href) {
|
|
355
|
+
throw new Error(`unable to determine npm registry host from url ${npmRegistryUrl}. Is this really a URL?`);
|
|
356
|
+
}
|
|
357
|
+
const npmAccess = (_b = options.npmAccess) !== null && _b !== void 0 ? _b : defaultNpmAccess(this.packageName);
|
|
358
|
+
if (!isScoped(this.packageName) && npmAccess === NpmAccess.RESTRICTED) {
|
|
359
|
+
throw new Error(`"npmAccess" cannot be RESTRICTED for non-scoped npm package "${this.packageName}"`);
|
|
360
|
+
}
|
|
361
|
+
const isAwsCodeArtifact = release_1.isAwsCodeArtifactRegistry(npmRegistryUrl);
|
|
362
|
+
if (isAwsCodeArtifact) {
|
|
363
|
+
if (options.npmTokenSecret) {
|
|
364
|
+
throw new Error('"npmTokenSecret" must not be specified when publishing AWS CodeArtifact.');
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
if (((_c = options.codeArtifactOptions) === null || _c === void 0 ? void 0 : _c.accessKeyIdSecret) || ((_d = options.codeArtifactOptions) === null || _d === void 0 ? void 0 : _d.secretAccessKeySecret) || ((_e = options.codeArtifactOptions) === null || _e === void 0 ? void 0 : _e.roleToAssume)) {
|
|
369
|
+
throw new Error('codeArtifactOptions must only be specified when publishing AWS CodeArtifact.');
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
// apply defaults for AWS CodeArtifact
|
|
373
|
+
let codeArtifactOptions;
|
|
374
|
+
if (isAwsCodeArtifact) {
|
|
375
|
+
codeArtifactOptions = {
|
|
376
|
+
accessKeyIdSecret: (_g = (_f = options.codeArtifactOptions) === null || _f === void 0 ? void 0 : _f.accessKeyIdSecret) !== null && _g !== void 0 ? _g : 'AWS_ACCESS_KEY_ID',
|
|
377
|
+
secretAccessKeySecret: (_j = (_h = options.codeArtifactOptions) === null || _h === void 0 ? void 0 : _h.secretAccessKeySecret) !== null && _j !== void 0 ? _j : 'AWS_SECRET_ACCESS_KEY',
|
|
378
|
+
roleToAssume: (_k = options.codeArtifactOptions) === null || _k === void 0 ? void 0 : _k.roleToAssume,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
return {
|
|
382
|
+
npmAccess,
|
|
383
|
+
npmRegistry: npmr.hostname + this.renderNpmRegistryPath(npmr.pathname),
|
|
384
|
+
npmRegistryUrl: npmr.href,
|
|
385
|
+
npmTokenSecret: defaultNpmToken(options.npmTokenSecret, npmr.hostname),
|
|
386
|
+
codeArtifactOptions,
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
addNodeEngine() {
|
|
390
|
+
if (!this.minNodeVersion && !this.maxNodeVersion) {
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
let nodeVersion = '';
|
|
394
|
+
if (this.minNodeVersion) {
|
|
395
|
+
nodeVersion += `>= ${this.minNodeVersion}`;
|
|
396
|
+
}
|
|
397
|
+
if (this.maxNodeVersion) {
|
|
398
|
+
nodeVersion += ` <= ${this.maxNodeVersion}`;
|
|
399
|
+
}
|
|
400
|
+
this.addEngine('node', nodeVersion);
|
|
401
|
+
}
|
|
402
|
+
renderNpmRegistryPath(path) {
|
|
403
|
+
if (!path || path == '/') {
|
|
404
|
+
return '';
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
return path;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
renderInstallCommand(frozen) {
|
|
411
|
+
switch (this.packageManager) {
|
|
412
|
+
case NodePackageManager.YARN:
|
|
413
|
+
return [
|
|
414
|
+
'yarn install',
|
|
415
|
+
'--check-files',
|
|
416
|
+
...frozen ? ['--frozen-lockfile'] : [],
|
|
417
|
+
].join(' ');
|
|
418
|
+
case NodePackageManager.NPM:
|
|
419
|
+
return frozen
|
|
420
|
+
? 'npm ci'
|
|
421
|
+
: 'npm install';
|
|
422
|
+
case NodePackageManager.PNPM:
|
|
423
|
+
return [
|
|
424
|
+
'pnpm i',
|
|
425
|
+
...frozen ? ['--frozen-lockfile'] : [],
|
|
426
|
+
].join(' ');
|
|
427
|
+
default:
|
|
428
|
+
throw new Error(`unexpected package manager ${this.packageManager}`);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
processDeps(options) {
|
|
432
|
+
var _b, _c, _d, _e;
|
|
433
|
+
this.addDeps(...(_b = options.deps) !== null && _b !== void 0 ? _b : []);
|
|
434
|
+
this.addDevDeps(...(_c = options.devDeps) !== null && _c !== void 0 ? _c : []);
|
|
435
|
+
this.addPeerDeps(...(_d = options.peerDeps) !== null && _d !== void 0 ? _d : []);
|
|
436
|
+
this.addBundledDeps(...(_e = options.bundledDeps) !== null && _e !== void 0 ? _e : []);
|
|
437
|
+
}
|
|
438
|
+
renderDependencies() {
|
|
439
|
+
var _b, _c, _d;
|
|
440
|
+
const devDependencies = {};
|
|
441
|
+
const peerDependencies = {};
|
|
442
|
+
const dependencies = {};
|
|
443
|
+
const bundledDependencies = new Array();
|
|
444
|
+
// synthetic dependencies: add a pinned build dependency to ensure we are
|
|
445
|
+
// testing against the minimum requirement of the peer.
|
|
446
|
+
const pinned = (_b = this.peerDependencyOptions.pinnedDevDependency) !== null && _b !== void 0 ? _b : true;
|
|
447
|
+
if (pinned) {
|
|
448
|
+
for (const dep of this.project.deps.all.filter(d => d.type === dependencies_1.DependencyType.PEER)) {
|
|
449
|
+
let req = dep.name;
|
|
450
|
+
// skip if we already have a runtime dependency on this peer
|
|
451
|
+
if (this.project.deps.tryGetDependency(dep.name, dependencies_1.DependencyType.RUNTIME)) {
|
|
452
|
+
continue;
|
|
453
|
+
}
|
|
454
|
+
if (dep.version) {
|
|
455
|
+
const ver = (_c = semver.minVersion(dep.version)) === null || _c === void 0 ? void 0 : _c.version;
|
|
456
|
+
if (!ver) {
|
|
457
|
+
throw new Error(`unable to determine minimum semver for peer dependency ${dep.name}@${dep.version}`);
|
|
458
|
+
}
|
|
459
|
+
req += '@' + ver;
|
|
460
|
+
}
|
|
461
|
+
this.addDevDeps(req);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
for (const dep of this.project.deps.all) {
|
|
465
|
+
const version = (_d = dep.version) !== null && _d !== void 0 ? _d : '*';
|
|
466
|
+
switch (dep.type) {
|
|
467
|
+
case dependencies_1.DependencyType.BUNDLED:
|
|
468
|
+
bundledDependencies.push(dep.name);
|
|
469
|
+
if (this.project.deps.all.find(d => d.name === dep.name && d.type === dependencies_1.DependencyType.PEER)) {
|
|
470
|
+
throw new Error(`unable to bundle "${dep.name}". it cannot appear as a peer dependency`);
|
|
471
|
+
}
|
|
472
|
+
// also add as a runtime dependency
|
|
473
|
+
dependencies[dep.name] = version;
|
|
474
|
+
break;
|
|
475
|
+
case dependencies_1.DependencyType.PEER:
|
|
476
|
+
peerDependencies[dep.name] = version;
|
|
477
|
+
break;
|
|
478
|
+
case dependencies_1.DependencyType.RUNTIME:
|
|
479
|
+
dependencies[dep.name] = version;
|
|
480
|
+
break;
|
|
481
|
+
case dependencies_1.DependencyType.TEST:
|
|
482
|
+
case dependencies_1.DependencyType.DEVENV:
|
|
483
|
+
case dependencies_1.DependencyType.BUILD:
|
|
484
|
+
devDependencies[dep.name] = version;
|
|
485
|
+
break;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
// update the manifest we are about to save into `package.json`
|
|
489
|
+
this.manifest.devDependencies = devDependencies;
|
|
490
|
+
this.manifest.peerDependencies = peerDependencies;
|
|
491
|
+
this.manifest.dependencies = dependencies;
|
|
492
|
+
this.manifest.bundledDependencies = bundledDependencies;
|
|
493
|
+
// nothing further to do if package.json file does not exist
|
|
494
|
+
const pkg = this.readPackageJson();
|
|
495
|
+
if (!pkg) {
|
|
496
|
+
return { devDependencies, peerDependencies, dependencies };
|
|
497
|
+
}
|
|
498
|
+
const readDeps = (user, current = {}) => {
|
|
499
|
+
for (const [name, userVersion] of Object.entries(user)) {
|
|
500
|
+
const currentVersion = current[name];
|
|
501
|
+
// respect user version if it's not '*' or if current version is undefined
|
|
502
|
+
if (userVersion !== '*' || !currentVersion || currentVersion === '*') {
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
// memoize current version in memory so it is preserved when saving
|
|
506
|
+
user[name] = currentVersion;
|
|
507
|
+
}
|
|
508
|
+
// report removals
|
|
509
|
+
for (const name of Object.keys(current !== null && current !== void 0 ? current : {})) {
|
|
510
|
+
if (!user[name]) {
|
|
511
|
+
this.project.logger.verbose(`${name}: removed`);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
};
|
|
515
|
+
readDeps(devDependencies, pkg.devDependencies);
|
|
516
|
+
readDeps(dependencies, pkg.dependencies);
|
|
517
|
+
readDeps(peerDependencies, pkg.peerDependencies);
|
|
518
|
+
return { devDependencies, dependencies, peerDependencies };
|
|
519
|
+
}
|
|
520
|
+
resolveDepsAndWritePackageJson(outdir) {
|
|
521
|
+
const root = path_1.join(outdir, 'package.json');
|
|
522
|
+
const pkg = fs_extra_1.readJsonSync(root);
|
|
523
|
+
const resolveDeps = (current, user) => {
|
|
524
|
+
const result = {};
|
|
525
|
+
current = current !== null && current !== void 0 ? current : {};
|
|
526
|
+
user = user !== null && user !== void 0 ? user : {};
|
|
527
|
+
for (const [name, currentDefinition] of Object.entries(user)) {
|
|
528
|
+
// find actual version from node_modules
|
|
529
|
+
let desiredVersion = currentDefinition;
|
|
530
|
+
if (currentDefinition === '*') {
|
|
531
|
+
try {
|
|
532
|
+
const modulePath = require.resolve(`${name}/package.json`, { paths: [outdir] });
|
|
533
|
+
const module = fs_extra_1.readJsonSync(modulePath);
|
|
534
|
+
desiredVersion = `^${module.version}`;
|
|
535
|
+
}
|
|
536
|
+
catch (e) { }
|
|
537
|
+
if (!desiredVersion) {
|
|
538
|
+
this.project.logger.warn(`unable to resolve version for ${name} from installed modules`);
|
|
539
|
+
continue;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
if (currentDefinition !== desiredVersion) {
|
|
543
|
+
this.project.logger.verbose(`${name}: ${currentDefinition} => ${desiredVersion}`);
|
|
544
|
+
}
|
|
545
|
+
result[name] = desiredVersion;
|
|
546
|
+
}
|
|
547
|
+
// print removed packages
|
|
548
|
+
for (const name of Object.keys(current)) {
|
|
549
|
+
if (!result[name]) {
|
|
550
|
+
this.project.logger.verbose(`${name} removed`);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
return util_1.sorted(result);
|
|
554
|
+
};
|
|
555
|
+
const rendered = this._renderedDeps;
|
|
556
|
+
if (!rendered) {
|
|
557
|
+
throw new Error('assertion failed');
|
|
558
|
+
}
|
|
559
|
+
pkg.dependencies = resolveDeps(pkg.dependencies, rendered.dependencies);
|
|
560
|
+
pkg.devDependencies = resolveDeps(pkg.devDependencies, rendered.devDependencies);
|
|
561
|
+
pkg.peerDependencies = resolveDeps(pkg.peerDependencies, rendered.peerDependencies);
|
|
562
|
+
util_1.writeFile(root, JSON.stringify(pkg, undefined, 2));
|
|
563
|
+
}
|
|
564
|
+
renderPublishConfig() {
|
|
565
|
+
// omit values if they are the same as the npm defaults
|
|
566
|
+
return _resolve_1.resolve({
|
|
567
|
+
registry: this.npmRegistryUrl !== DEFAULT_NPM_REGISTRY_URL ? this.npmRegistryUrl : undefined,
|
|
568
|
+
access: this.npmAccess !== defaultNpmAccess(this.packageName) ? this.npmAccess : undefined,
|
|
569
|
+
}, { omitEmpty: true });
|
|
570
|
+
}
|
|
571
|
+
renderKeywords() {
|
|
572
|
+
const kwds = Array.from(this.keywords);
|
|
573
|
+
return util_1.sorted(kwds.sort());
|
|
574
|
+
}
|
|
575
|
+
renderEngines() {
|
|
576
|
+
return util_1.sorted(this.engines);
|
|
577
|
+
}
|
|
578
|
+
autoDiscoverBinaries() {
|
|
579
|
+
const binrel = 'bin';
|
|
580
|
+
const bindir = path_1.join(this.project.outdir, binrel);
|
|
581
|
+
if (fs_extra_1.existsSync(bindir)) {
|
|
582
|
+
for (const file of fs_extra_1.readdirSync(bindir)) {
|
|
583
|
+
try {
|
|
584
|
+
fs_extra_1.accessSync(path_1.join(bindir, file), fs_extra_1.constants.X_OK);
|
|
585
|
+
this.bin[file] = path_1.join(binrel, file).replace(/\\/g, '/');
|
|
586
|
+
}
|
|
587
|
+
catch (e) {
|
|
588
|
+
// not executable, skip
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
renderAuthor(options) {
|
|
594
|
+
var _b;
|
|
595
|
+
let author;
|
|
596
|
+
if (options.authorName) {
|
|
597
|
+
author = {
|
|
598
|
+
name: options.authorName,
|
|
599
|
+
email: options.authorEmail,
|
|
600
|
+
url: options.authorUrl,
|
|
601
|
+
organization: (_b = options.authorOrganization) !== null && _b !== void 0 ? _b : false,
|
|
602
|
+
};
|
|
603
|
+
}
|
|
604
|
+
else {
|
|
605
|
+
if (options.authorEmail || options.authorUrl || options.authorOrganization !== undefined) {
|
|
606
|
+
throw new Error('"authorName" is required if specifying "authorEmail" or "authorUrl"');
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
return author;
|
|
610
|
+
}
|
|
611
|
+
renderBin() {
|
|
612
|
+
return util_1.sorted(this.bin);
|
|
613
|
+
}
|
|
614
|
+
renderScripts() {
|
|
615
|
+
const result = {};
|
|
616
|
+
for (const task of this.project.tasks.all.sort((x, y) => x.name.localeCompare(y.name))) {
|
|
617
|
+
result[task.name] = this.npmScriptForTask(task);
|
|
618
|
+
}
|
|
619
|
+
return result;
|
|
620
|
+
}
|
|
621
|
+
npmScriptForTask(task) {
|
|
622
|
+
return `${this.projenCommand} ${task.name}`;
|
|
623
|
+
}
|
|
624
|
+
readPackageJson() {
|
|
625
|
+
const file = path_1.join(this.project.outdir, 'package.json');
|
|
626
|
+
if (!fs_extra_1.existsSync(file)) {
|
|
627
|
+
return undefined;
|
|
628
|
+
}
|
|
629
|
+
return fs_extra_1.readJsonSync(file);
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
exports.NodePackage = NodePackage;
|
|
633
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
634
|
+
NodePackage[_a] = { fqn: "projen.javascript.NodePackage", version: "0.46.8" };
|
|
635
|
+
/**
|
|
636
|
+
* (experimental) The node package manager to use.
|
|
637
|
+
*
|
|
638
|
+
* @experimental
|
|
639
|
+
*/
|
|
640
|
+
var NodePackageManager;
|
|
641
|
+
(function (NodePackageManager) {
|
|
642
|
+
NodePackageManager["YARN"] = "yarn";
|
|
643
|
+
NodePackageManager["NPM"] = "npm";
|
|
644
|
+
NodePackageManager["PNPM"] = "pnpm";
|
|
645
|
+
})(NodePackageManager = exports.NodePackageManager || (exports.NodePackageManager = {}));
|
|
646
|
+
/**
|
|
647
|
+
* (experimental) Npm package access level.
|
|
648
|
+
*
|
|
649
|
+
* @experimental
|
|
650
|
+
*/
|
|
651
|
+
var NpmAccess;
|
|
652
|
+
(function (NpmAccess) {
|
|
653
|
+
NpmAccess["PUBLIC"] = "public";
|
|
654
|
+
NpmAccess["RESTRICTED"] = "restricted";
|
|
655
|
+
})(NpmAccess = exports.NpmAccess || (exports.NpmAccess = {}));
|
|
656
|
+
/**
|
|
657
|
+
* Determines if an npm package is "scoped" (i.e. it starts with "xxx@").
|
|
658
|
+
*/
|
|
659
|
+
function isScoped(packageName) {
|
|
660
|
+
return packageName.includes('@');
|
|
661
|
+
}
|
|
662
|
+
function defaultNpmAccess(packageName) {
|
|
663
|
+
return isScoped(packageName) ? NpmAccess.RESTRICTED : NpmAccess.PUBLIC;
|
|
664
|
+
}
|
|
665
|
+
function defaultNpmToken(npmToken, registry) {
|
|
666
|
+
// if we are publishing to AWS CdodeArtifact, no NPM_TOKEN used (will be requested using AWS CLI later).
|
|
667
|
+
if (release_1.isAwsCodeArtifactRegistry(registry)) {
|
|
668
|
+
return undefined;
|
|
669
|
+
}
|
|
670
|
+
// if we are publishing to GitHub Packages, default to GITHUB_TOKEN.
|
|
671
|
+
const isGitHubPackages = registry === GITHUB_PACKAGES_REGISTRY;
|
|
672
|
+
return npmToken !== null && npmToken !== void 0 ? npmToken : (isGitHubPackages ? DEFAULT_GITHUB_TOKEN_SECRET : DEFAULT_NPM_TOKEN_SECRET);
|
|
673
|
+
}
|
|
674
|
+
exports.defaultNpmToken = defaultNpmToken;
|
|
675
|
+
function determineLockfile(packageManager) {
|
|
676
|
+
if (packageManager === NodePackageManager.YARN) {
|
|
677
|
+
return 'yarn.lock';
|
|
678
|
+
}
|
|
679
|
+
else if (packageManager === NodePackageManager.NPM) {
|
|
680
|
+
return 'package-lock.json';
|
|
681
|
+
}
|
|
682
|
+
else if (packageManager === NodePackageManager.PNPM) {
|
|
683
|
+
return 'pnpm-lock.yaml';
|
|
684
|
+
}
|
|
685
|
+
throw new Error(`unsupported package manager ${packageManager}`);
|
|
686
|
+
}
|
|
687
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1wYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmFzY3JpcHQvbm9kZS1wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLDZCQUF3QztBQUN4Qyx1Q0FBd0Y7QUFDeEYsaUNBQWlDO0FBQ2pDLDBDQUFxRDtBQUNyRCw0Q0FBeUM7QUFDekMsa0RBQWlEO0FBQ2pELGtDQUFtQztBQUVuQyx3Q0FBdUQ7QUFFdkQsa0NBQTREO0FBRTVELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUNoQyxNQUFNLHdCQUF3QixHQUFHLDZCQUE2QixDQUFDO0FBQy9ELE1BQU0sd0JBQXdCLEdBQUcsb0JBQW9CLENBQUM7QUFDdEQsTUFBTSx3QkFBd0IsR0FBRyxXQUFXLENBQUM7QUFDN0MsTUFBTSwyQkFBMkIsR0FBRyxjQUFjLENBQUM7Ozs7OztBQW9IbkQsTUFBYSxXQUFZLFNBQVEscUJBQVM7Ozs7SUFtRHhDLFlBQVksT0FBZ0IsRUFBRSxVQUE4QixFQUFFOztRQUM1RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFSQSxhQUFRLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDbEMsUUFBRyxHQUEyQixFQUFFLENBQUM7UUFDakMsWUFBTyxHQUEyQixFQUFFLENBQUM7UUFRcEQsSUFBSSxDQUFDLFdBQVcsU0FBRyxPQUFPLENBQUMsV0FBVyxtQ0FBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxxQkFBcUIsU0FBRyxPQUFPLENBQUMscUJBQXFCLG1DQUFJLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsd0JBQXdCLFNBQUcsT0FBTyxDQUFDLHdCQUF3QixtQ0FBSSxJQUFJLENBQUM7UUFDekUsSUFBSSxDQUFDLGNBQWMsU0FBRyxPQUFPLENBQUMsY0FBYyxtQ0FBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUs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Q3pCO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsY0FBYyxFQUFFLENBQUMsQ0FBQztBQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcGFyc2UgYXMgdXJscGFyc2UgfSBmcm9tICd1cmwnO1xuaW1wb3J0IHsgYWNjZXNzU3luYywgY29uc3RhbnRzLCBleGlzdHNTeW5jLCByZWFkZGlyU3luYywgcmVhZEpzb25TeW5jIH0gZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyByZXNvbHZlIGFzIHJlc29sdmVKc29uIH0gZnJvbSAnLi4vX3Jlc29sdmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSAnLi4vanNvbic7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdCc7XG5pbXBvcnQgeyBpc0F3c0NvZGVBcnRpZmFjdFJlZ2lzdHJ5IH0gZnJvbSAnLi4vcmVsZWFzZSc7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdGFzayc7XG5pbXBvcnQgeyBleGVjLCBpc1RydXRoeSwgc29ydGVkLCB3cml0ZUZpbGUgfSBmcm9tICcuLi91dGlsJztcblxuY29uc3QgVU5MSUNFTlNFRCA9ICdVTkxJQ0VOU0VEJztcbmNvbnN0IERFRkFVTFRfTlBNX1JFR0lTVFJZX1VSTCA9ICdodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8nO1xuY29uc3QgR0lUSFVCX1BBQ0tBR0VTX1JFR0lTVFJZID0gJ25wbS5wa2cuZ2l0aHViLmNvbSc7XG5jb25zdCBERUZBVUxUX05QTV9UT0tFTl9TRUNSRVQgPSAnTlBNX1RPS0VOJztcbmNvbnN0IERFRkFVTFRfR0lUSFVCX1RPS0VOX1NFQ1JFVCA9ICdHSVRIVUJfVE9LRU4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVQYWNrYWdlT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGFja2FnZU5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRlcHM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkZXZEZXBzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHBlZXJEZXBzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJ1bmRsZWREZXBzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGVlckRlcGVuZGVuY3lPcHRpb25zPzogUGVlckRlcGVuZGVuY3lPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhbGxvd0xpYnJhcnlEZXBlbmRlbmNpZXM/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGtleXdvcmRzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYmluPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXV0b0RldGVjdEJpbj86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc2NyaXB0cz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI/OiBOb2RlUGFja2FnZU1hbmFnZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhdXRob3JOYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhdXRob3JFbWFpbD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGF1dGhvclVybD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXV0aG9yT3JnYW5pemF0aW9uPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGhvbWVwYWdlPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc3RhYmlsaXR5Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWluTm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWF4Tm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGxpY2Vuc2U/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGxpY2Vuc2VkPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBucG1SZWdpc3RyeVVybD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG5wbVJlZ2lzdHJ5Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVnc1VybD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWdzRW1haWw/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbnBtQWNjZXNzPzogTnBtQWNjZXNzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbnBtVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29kZUFydGlmYWN0T3B0aW9ucz86IENvZGVBcnRpZmFjdE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUFydGlmYWN0T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhY2Nlc3NLZXlJZFNlY3JldD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNlY3JldEFjY2Vzc0tleVNlY3JldD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcm9sZVRvQXNzdW1lPzogc3RyaW5nO1xufVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgTm9kZVBhY2thZ2UgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHBhY2thZ2VOYW1lOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZW50cnlwb2ludDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGFsbG93TGlicmFyeURlcGVuZGVuY2llczogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IG1hbmlmZXN0OiBhbnk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWluTm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IG1heE5vZGVWZXJzaW9uPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBucG1SZWdpc3RyeVVybDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBucG1SZWdpc3RyeTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbnBtVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29kZUFydGlmYWN0T3B0aW9ucz86IENvZGVBcnRpZmFjdE9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbnBtQWNjZXNzOiBOcG1BY2Nlc3M7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGxvY2tGaWxlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBrZXl3b3JkczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmluOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgZW5naW5lczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IHBlZXJEZXBlbmRlbmN5T3B0aW9uczogUGVlckRlcGVuZGVuY3lPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGU6IEpzb25GaWxlO1xuICBwcml2YXRlIF9yZW5kZXJlZERlcHM/OiBOcG1EZXBlbmRlbmNpZXM7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogTm9kZVBhY2thZ2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMucGFja2FnZU5hbWUgPSBvcHRpb25zLnBhY2thZ2VOYW1lID8/IHByb2plY3QubmFtZTtcbiAgICB0aGlzLnBlZXJEZXBlbmRlbmN5T3B0aW9ucyA9IG9wdGlvbnMucGVlckRlcGVuZGVuY3lPcHRpb25zID8/IHt9O1xuICAgIHRoaXMuYWxsb3dMaWJyYXJ5RGVwZW5kZW5jaWVzID0gb3B0aW9ucy5hbGxvd0xpYnJhcnlEZXBlbmRlbmNpZXMgPz8gdHJ1ZTtcbiAgICB0aGlzLnBhY2thZ2VNYW5hZ2VyID0gb3B0aW9ucy5wYWNrYWdlTWFuYWdlciA/PyBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTjtcbiAgICB0aGlzLmVudHJ5cG9pbnQgPSBvcHRpb25zLmVudHJ5cG9pbnQgPz8gJ2xpYi9pbmRleC5qcyc7XG4gICAgdGhpcy5sb2NrRmlsZSA9IGRldGVybWluZUxvY2tmaWxlKHRoaXMucGFja2FnZU1hbmFnZXIpO1xuXG4gICAgdGhpcy5wcm9qZWN0LmFubm90YXRlR2VuZXJhdGVkKGAvJHt0aGlzLmxvY2tGaWxlfWApO1xuXG4gICAgY29uc3Qge1xuICAgICAgbnBtQWNjZXNzLCBucG1SZWdpc3RyeSwgbnBtUmVnaXN0cnlVcmwsIG5wbVRva2VuU2VjcmV0LCBjb2RlQXJ0aWZhY3RPcHRpb25zLFxuICAgIH0gPSB0aGlzLnBhcnNlTnBtT3B0aW9ucyhvcHRpb25zKTtcbiAgICB0aGlzLm5wbUFjY2VzcyA9IG5wbUFjY2VzcztcbiAgICB0aGlzLm5wbVJlZ2lzdHJ5ID0gbnBtUmVnaXN0cnk7XG4gICAgdGhpcy5ucG1SZWdpc3RyeVVybCA9IG5wbVJlZ2lzdHJ5VXJsO1xuICAgIHRoaXMubnBtVG9rZW5TZWNyZXQgPSBucG1Ub2tlblNlY3JldDtcbiAgICB0aGlzLmNvZGVBcnRpZmFjdE9wdGlvbnMgPSBjb2RlQXJ0aWZhY3RPcHRpb25zO1xuXG4gICAgdGhpcy5wcm9jZXNzRGVwcyhvcHRpb25zKTtcblxuICAgIGNvbnN0IHByZXYgPSB0aGlzLnJlYWRQYWNrYWdlSnNvbigpID8/IHt9O1xuXG4gICAgLy8gZW1wdHkgb2JqZWN0cyBhcmUgaGVyZSB0byBwcmVzZXJ2ZSBvcmRlciBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICB0aGlzLm1hbmlmZXN0ID0ge1xuICAgICAgbmFtZTogdGhpcy5wYWNrYWdlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgcmVwb3NpdG9yeTogIW9wdGlvbnMucmVwb3NpdG9yeSA/IHVuZGVmaW5lZCA6IHtcbiAgICAgICAgdHlwZTogJ2dpdCcsXG4gICAgICAgIHVybDogb3B0aW9ucy5yZXBvc2l0b3J5LFxuICAgICAgICBkaXJlY3Rvcnk6IG9wdGlvbnMucmVwb3NpdG9yeURpcmVjdG9yeSxcbiAgICAgIH0sXG4gICAgICBiaW46ICgpID0+IHRoaXMucmVuZGVyQmluKCksXG4gICAgICBzY3JpcHRzOiAoKSA9PiB0aGlzLnJlbmRlclNjcmlwdHMoKSxcbiAgICAgIGF1dGhvcjogdGhpcy5yZW5kZXJBdXRob3Iob3B0aW9ucyksXG4gICAgICBkZXZEZXBlbmRlbmNpZXM6IHt9LFxuICAgICAgcGVlckRlcGVuZGVuY2llczoge30sXG4gICAgICBkZXBlbmRlbmNpZXM6IHt9LFxuICAgICAgYnVuZGxlZERlcGVuZGVuY2llczogW10sXG4gICAgICBrZXl3b3JkczogKCkgPT4gdGhpcy5yZW5kZXJLZXl3b3JkcygpLFxuICAgICAgZW5naW5lczogKCkgPT4gdGhpcy5yZW5kZXJFbmdpbmVzKCksXG4gICAgICBtYWluOiB0aGlzLmVudHJ5cG9pbnQgIT09ICcnID8gdGhpcy5lbnRyeXBvaW50IDogdW5kZWZpbmVkLFxuICAgICAgbGljZW5zZTogKCkgPT4gdGhpcy5saWNlbnNlID8/IFVOTElDRU5TRUQsXG4gICAgICBob21lcGFnZTogb3B0aW9ucy5ob21lcGFnZSxcbiAgICAgIHB1Ymxpc2hDb25maWc6ICgpID0+IHRoaXMucmVuZGVyUHVibGlzaENvbmZpZygpLFxuXG4gICAgICAvLyBpbiByZWxlYXNlIENJIGJ1aWxkcyB3ZSBidW1wIHRoZSB2ZXJzaW9uIGJlZm9yZSB3ZSBydW4gXCJidWlsZFwiIHNvIHdlIHdhbnRcbiAgICAgIC8vIHRvIHByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlci4gb3RoZXJ3aXNlLCB3ZSBhbHdheXMgc2V0IGl0IHRvIDAuMC4wXG4gICAgICB2ZXJzaW9uOiB0aGlzLmRldGVybWluZVZlcnNpb24ocHJldj8udmVyc2lvbiksXG4gICAgICBidWdzOiAob3B0aW9ucy5idWdzRW1haWwgfHwgb3B0aW9ucy5idWdzVXJsKSA/IHtcbiAgICAgICAgZW1haWw6IG9wdGlvbnMuYnVnc0VtYWlsLFxuICAgICAgICB1cmw6IG9wdGlvbnMuYnVnc1VybCxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIC8vIG92ZXJyaWRlIGFueSBzY3JpcHRzIGZyb20gb3B0aW9ucyAoaWYgc3BlY2lmaWVkKVxuICAgIGZvciAoY29uc3QgW2NtZG5hbWUsIHNoZWxsXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zLnNjcmlwdHMgPz8ge30pKSB7XG4gICAgICBwcm9qZWN0LmFkZFRhc2soY21kbmFtZSwgeyBleGVjOiBzaGVsbCB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbGUgPSBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCAncGFja2FnZS5qc29uJywge1xuICAgICAgb2JqOiB0aGlzLm1hbmlmZXN0LFxuICAgICAgcmVhZG9ubHk6IGZhbHNlLCAvLyB3ZSB3YW50IFwieWFybiBhZGRcIiB0byB3b3JrIGFuZCB3ZSBoYXZlIGFudGktdGFtcGVyXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEtleXdvcmRzKC4uLm9wdGlvbnMua2V5d29yZHMgPz8gW10pO1xuICAgIHRoaXMuYWRkQmluKG9wdGlvbnMuYmluID8/IHt9KTtcblxuICAgIC8vIGF1dG9tYXRpY2FsbHkgYWRkIGFsbCBleGVjdXRhYmxlIGZpbGVzIHVuZGVyIFwiYmluXCJcbiAgICBpZiAob3B0aW9ucy5hdXRvRGV0ZWN0QmluID8/IHRydWUpIHtcbiAgICAgIHRoaXMuYXV0b0Rpc2NvdmVyQmluYXJpZXMoKTtcbiAgICB9XG5cbiAgICAvLyBub2RlIHZlcnNpb25cbiAgICB0aGlzLm1pbk5vZGVWZXJzaW9uID0gb3B0aW9ucy5taW5Ob2RlVmVyc2lvbjtcbiAgICB0aGlzLm1heE5vZGVWZXJzaW9uID0gb3B0aW9ucy5tYXhOb2RlVmVyc2lvbjtcbiAgICB0aGlzLmFkZE5vZGVFbmdpbmUoKTtcblxuICAgIC8vIGxpY2Vuc2VcbiAgICBpZiAob3B0aW9ucy5saWNlbnNlZCA/PyB0cnVlKSB7XG4gICAgICB0aGlzLmxpY2Vuc2UgPSBvcHRpb25zLmxpY2Vuc2UgPz8gJ0FwYWNoZS0yLjAnO1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGREZXBzKC4uLmRlcHM6IHN0cmluZ1tdKSB7XG4gICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xuICAgICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShkZXAsIERlcGVuZGVuY3lUeXBlLlJVTlRJTUUpO1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkRGV2RGVwcyguLi5kZXBzOiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koZGVwLCBEZXBlbmRlbmN5VHlwZS5CVUlMRCk7XG5cbiAgICB9XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkUGVlckRlcHMoLi4uZGVwczogc3RyaW5nW10pIHtcbiAgICBpZiAoT2JqZWN0LmtleXMoZGVwcykubGVuZ3RoICYmICF0aGlzLmFsbG93TGlicmFyeURlcGVuZGVuY2llcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgYWRkIHBlZXIgZGVwZW5kZW5jaWVzIHRvIGFuIEFQUCBwcm9qZWN0OiAke09iamVjdC5rZXlzKGRlcHMpLmpvaW4oJywnKX1gKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlcCBvZiBkZXBzKSB7XG4gICAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KGRlcCwgRGVwZW5kZW5jeVR5cGUuUEVFUik7XG4gICAgfVxuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkQnVuZGxlZERlcHMoLi4uZGVwczogc3RyaW5nW10pIHtcbiAgICBpZiAoZGVwcy5sZW5ndGggJiYgIXRoaXMuYWxsb3dMaWJyYXJ5RGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBhZGQgYnVuZGxlZCBkZXBlbmRlbmNpZXMgdG8gYW4gQVBQIHByb2plY3Q6ICR7ZGVwcy5qb2luKCcsJyl9YCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xuICAgICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShkZXAsIERlcGVuZGVuY3lUeXBlLkJVTkRMRUQpO1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkRW5naW5lKGVuZ2luZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVuZ2luZXNbZW5naW5lXSA9IHZlcnNpb247XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRLZXl3b3JkcyguLi5rZXl3b3Jkczogc3RyaW5nW10pIHtcbiAgICBmb3IgKGNvbnN0IGsgb2Yga2V5d29yZHMpIHtcbiAgICAgIHRoaXMua2V5d29yZHMuYWRkKGspO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRCaW4oYmluczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGJpbnMpKSB7XG4gICAgICB0aGlzLmJpbltrXSA9IHY7XG4gICAgfVxuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc2V0U2NyaXB0KG5hbWU6IHN0cmluZywgY29tbWFuZDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWxlLmFkZE92ZXJyaWRlKGBzY3JpcHRzLiR7bmFtZX1gLCBjb21tYW5kKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVtb3ZlU2NyaXB0KG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuZmlsZS5hZGREZWxldGlvbk92ZXJyaWRlKGBzY3JpcHRzLiR7bmFtZX1gKTtcbiAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgaGFzU2NyaXB0KG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChuYW1lKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkRmllbGQobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5tYW5pZmVzdFtuYW1lXSA9IHZhbHVlO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZFZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5tYW5pZmVzdC52ZXJzaW9uID0gdmVyc2lvbjtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgZ2V0IGluc3RhbGxDb21tYW5kKCkge1xuICAgIHJldHVybiB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kKHRydWUpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgZ2V0IGluc3RhbGxBbmRVcGRhdGVMb2NrZmlsZUNvbW1hbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVySW5zdGFsbENvbW1hbmQoZmFsc2UpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlbmRlclVwZ3JhZGVQYWNrYWdlc0NvbW1hbmQoZXhjbHVkZTogc3RyaW5nW10sIGluY2x1ZGU/OiBzdHJpbmdbXSk6IHN0cmluZyB7XG5cbiAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0O1xuICAgIGZ1bmN0aW9uIHVwZ3JhZGVQYWNrYWdlcyhjb21tYW5kOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChleGNsdWRlLmxlbmd0aCA9PT0gMCAmJiAhaW5jbHVkZSkge1xuICAgICAgICAgIC8vIHJlcXVlc3QgdG8gdXBncmFkZSBhbGwgcGFja2FnZXNcbiAgICAgICAgICAvLyBzZXBhcmF0ZWQgZm9yIGFzdGhldGljIHJlYXNvbnMuXG4gICAgICAgICAgcmV0dXJuIGNvbW1hbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBmaWx0ZXIgYnkgZXhjbHVkZSBhbmQgaW5jbHVkZS5cbiAgICAgICAgcmV0dXJuIGAke2NvbW1hbmR9ICR7cHJvamVjdC5kZXBzLmFsbFxuICAgICAgICAgIC5tYXAoZCA9PiBkLm5hbWUpXG4gICAgICAgICAgLmZpbHRlcihkID0+IGluY2x1ZGUgPyBpbmNsdWRlLmluY2x1ZGVzKGQpIDogdHJ1ZSlcbiAgICAgICAgICAuZmlsdGVyKGQgPT4gIWV4Y2x1ZGUuaW5jbHVkZXMoZCkpXG4gICAgICAgICAgLmpvaW4oJyAnKX1gO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgbGF6eSA9IHVuZGVmaW5lZDtcbiAgICBzd2l0Y2ggKHRoaXMucGFja2FnZU1hbmFnZXIpIHtcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk46XG4gICAgICAgIGxhenkgPSB1cGdyYWRlUGFja2FnZXMoJ3lhcm4gdXBncmFkZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgICAgbGF6eSA9IHVwZ3JhZGVQYWNrYWdlcygnbnBtIHVwZGF0ZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICAgIGxhenkgPSB1cGdyYWRlUGFja2FnZXMoJ3BucG0gdXBkYXRlJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHBhY2thZ2UgbWFuYWdlciAke3RoaXMucGFja2FnZU1hbmFnZXJ9YCk7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJuIGEgbGF6eSBmdW5jdGlvbiBzbyB0aGF0IGRlcGVuZGVuY2llcyBpbmNsdWRlIG9uZXMgdGhhdCB3ZXJlXG4gICAgLy8gYWRkZWQgcG9zdCBwcm9qZWN0IGluc3RhbnRpYXRpb24gKGkuZSB1c2luZyBwcm9qZWN0LmFkZERlcHMpXG4gICAgcmV0dXJuIGxhenkgYXMgdW5rbm93biBhcyBzdHJpbmc7XG5cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcbiAgICB0aGlzLl9yZW5kZXJlZERlcHMgPSB0aGlzLnJlbmRlckRlcGVuZGVuY2llcygpO1xuICB9XG5cbiAgcHVibGljIHBvc3RTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnBvc3RTeW50aGVzaXplKCk7XG5cbiAgICBjb25zdCBvdXRkaXIgPSB0aGlzLnByb2plY3Qub3V0ZGlyO1xuXG4gICAgZXhlYyh0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kKHRoaXMuaXNBdXRvbWF0ZWRCdWlsZCksIHsgY3dkOiBvdXRkaXIgfSk7XG5cbiAgICB0aGlzLnJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbihvdXRkaXIpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBnZXQgcHJvamVuQ29tbWFuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LnByb2plbkNvbW1hbmQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgd2UgYXJlIHJ1bm5pbmcgd2l0aGluIGEgQ0kgYnVpbGQuXG4gICAqL1xuICBwcml2YXRlIGdldCBpc0F1dG9tYXRlZEJ1aWxkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydXRoeShwcm9jZXNzLmVudi5DSSk7XG4gIH1cblxuICBwcml2YXRlIGRldGVybWluZVZlcnNpb24oY3VyclZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuaXNSZWxlYXNlQnVpbGQpIHtcbiAgICAgIHJldHVybiAnMC4wLjAnO1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyVmVyc2lvbiA/PyAnMC4wLjAnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYHRydWVgIGlmIHRoaXMgaXMgYSBDSSByZWxlYXNlIGJ1aWxkLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgaXNSZWxlYXNlQnVpbGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1dGh5KHByb2Nlc3MuZW52LlJFTEVBU0UpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByaXZhdGUgcGFyc2VOcG1PcHRpb25zKG9wdGlvbnM6IE5vZGVQYWNrYWdlT3B0aW9ucykge1xuICAgIGxldCBucG1SZWdpc3RyeVVybCA9IG9wdGlvbnMubnBtUmVnaXN0cnlVcmw7XG4gICAgaWYgKG9wdGlvbnMubnBtUmVnaXN0cnkpIHtcbiAgICAgIGlmIChucG1SZWdpc3RyeVVybCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCB1c2UgdGhlIGRlcHJlY2F0ZWQgXCJucG1SZWdpc3RyeVwiIHRvZ2V0aGVyIHdpdGggXCJucG1SZWdpc3RyeVVybFwiLiBwbGVhc2UgdXNlIFwibnBtUmVnaXN0cnlVcmxcIiBpbnN0ZWFkLicpO1xuICAgICAgfVxuXG4gICAgICBucG1SZWdpc3RyeVVybCA9IGBodHRwczovLyR7b3B0aW9ucy5ucG1SZWdpc3RyeX1gO1xuICAgIH1cblxuICAgIGNvbnN0IG5wbXIgPSB1cmxwYXJzZShucG1SZWdpc3RyeVVybCA/PyBERUZBVUxUX05QTV9SRUdJU1RSWV9VUkwpO1xuICAgIGlmICghbnBtciB8fCAhbnBtci5ob3N0bmFtZSB8fCAhbnBtci5ocmVmKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuYWJsZSB0byBkZXRlcm1pbmUgbnBtIHJlZ2lzdHJ5IGhvc3QgZnJvbSB1cmwgJHtucG1SZWdpc3RyeVVybH0uIElzIHRoaXMgcmVhbGx5IGEgVVJMP2ApO1xuICAgIH1cblxuICAgIGNvbnN0IG5wbUFjY2VzcyA9IG9wdGlvbnMubnBtQWNjZXNzID8/IGRlZmF1bHROcG1BY2Nlc3ModGhpcy5wYWNrYWdlTmFtZSk7XG4gICAgaWYgKCFpc1Njb3BlZCh0aGlzLnBhY2thZ2VOYW1lKSAmJiBucG1BY2Nlc3MgPT09IE5wbUFjY2Vzcy5SRVNUUklDVEVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibnBtQWNjZXNzXCIgY2Fubm90IGJlIFJFU1RSSUNURUQgZm9yIG5vbi1zY29wZWQgbnBtIHBhY2thZ2UgXCIke3RoaXMucGFja2FnZU5hbWV9XCJgKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0F3c0NvZGVBcnRpZmFjdCA9IGlzQXdzQ29kZUFydGlmYWN0UmVnaXN0cnkobnBtUmVnaXN0cnlVcmwpO1xuICAgIGlmIChpc0F3c0NvZGVBcnRpZmFjdCkge1xuICAgICAgaWYgKG9wdGlvbnMubnBtVG9rZW5TZWNyZXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIm5wbVRva2VuU2VjcmV0XCIgbXVzdCBub3QgYmUgc3BlY2lmaWVkIHdoZW4gcHVibGlzaGluZyBBV1MgQ29kZUFydGlmYWN0LicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zPy5hY2Nlc3NLZXlJZFNlY3JldCB8fFxuICAgICAgICBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LnNlY3JldEFjY2Vzc0tleVNlY3JldCB8fFxuICAgICAgICBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LnJvbGVUb0Fzc3VtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvZGVBcnRpZmFjdE9wdGlvbnMgbXVzdCBvbmx5IGJlIHNwZWNpZmllZCB3aGVuIHB1Ymxpc2hpbmcgQVdTIENvZGVBcnRpZmFjdC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhcHBseSBkZWZhdWx0cyBmb3IgQVdTIENvZGVBcnRpZmFjdFxuICAgIGxldCBjb2RlQXJ0aWZhY3RPcHRpb25zOiBDb2RlQXJ0aWZhY3RPcHRpb25zIHzCoHVuZGVmaW5lZDtcbiAgICBpZiAoaXNBd3NDb2RlQXJ0aWZhY3QpIHtcbiAgICAgIGNvZGVBcnRpZmFjdE9wdGlvbnMgPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkU2VjcmV0OiBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LmFjY2Vzc0tleUlkU2VjcmV0ID8/ICdBV1NfQUNDRVNTX0tFWV9JRCcsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleVNlY3JldDogb3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zPy5zZWNyZXRBY2Nlc3NLZXlTZWNyZXQgPz8gJ0FXU19TRUNSRVRfQUNDRVNTX0tFWScsXG4gICAgICAgIHJvbGVUb0Fzc3VtZTogb3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zPy5yb2xlVG9Bc3N1bWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBucG1BY2Nlc3MsXG4gICAgICBucG1SZWdpc3RyeTogbnBtci5ob3N0bmFtZSArIHRoaXMucmVuZGVyTnBtUmVnaXN0cnlQYXRoKG5wbXIucGF0aG5hbWUhKSxcbiAgICAgIG5wbVJlZ2lzdHJ5VXJsOiBucG1yLmhyZWYsXG4gICAgICBucG1Ub2tlblNlY3JldDogZGVmYXVsdE5wbVRva2VuKG9wdGlvbnMubnBtVG9rZW5TZWNyZXQsIG5wbXIuaG9zdG5hbWUpLFxuICAgICAgY29kZUFydGlmYWN0T3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGROb2RlRW5naW5lKCkge1xuICAgIGlmICghdGhpcy5taW5Ob2RlVmVyc2lvbiAmJiAhdGhpcy5tYXhOb2RlVmVyc2lvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBub2RlVmVyc2lvbiA9ICcnO1xuICAgIGlmICh0aGlzLm1pbk5vZGVWZXJzaW9uKSB7XG4gICAgICBub2RlVmVyc2lvbiArPSBgPj0gJHt0aGlzLm1pbk5vZGVWZXJzaW9ufWA7XG4gICAgfVxuICAgIGlmICh0aGlzLm1heE5vZGVWZXJzaW9uKSB7XG4gICAgICBub2RlVmVyc2lvbiArPSBgIDw9ICR7dGhpcy5tYXhOb2RlVmVyc2lvbn1gO1xuICAgIH1cbiAgICB0aGlzLmFkZEVuZ2luZSgnbm9kZScsIG5vZGVWZXJzaW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyTnBtUmVnaXN0cnlQYXRoKHBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgaWYgKCFwYXRoIHx8IHBhdGggPT0gJy8nKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVySW5zdGFsbENvbW1hbmQoZnJvemVuOiBib29sZWFuKSB7XG4gICAgc3dpdGNoICh0aGlzLnBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOOlxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICd5YXJuIGluc3RhbGwnLFxuICAgICAgICAgICctLWNoZWNrLWZpbGVzJywgLy8gZW5zdXJlIGFsbCBtb2R1bGVzIGV4aXN0IChlc3BlY2lhbGx5IHByb2plbiB3aGljaCB3YXMganVzdCByZW1vdmVkKS5cbiAgICAgICAgICAuLi5mcm96ZW4gPyBbJy0tZnJvemVuLWxvY2tmaWxlJ10gOiBbXSxcbiAgICAgICAgXS5qb2luKCcgJyk7XG5cbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgICAgcmV0dXJuIGZyb3plblxuICAgICAgICAgID8gJ25wbSBjaSdcbiAgICAgICAgICA6ICducG0gaW5zdGFsbCc7XG5cbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgJ3BucG0gaScsXG4gICAgICAgICAgLi4uZnJvemVuID8gWyctLWZyb3plbi1sb2NrZmlsZSddIDogW10sXG4gICAgICAgIF0uam9pbignICcpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgcGFja2FnZSBtYW5hZ2VyICR7dGhpcy5wYWNrYWdlTWFuYWdlcn1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NEZXBzKG9wdGlvbnM6IE5vZGVQYWNrYWdlT3B0aW9ucykge1xuICAgIHRoaXMuYWRkRGVwcyguLi5vcHRpb25zLmRlcHMgPz8gW10pO1xuICAgIHRoaXMuYWRkRGV2RGVwcyguLi5vcHRpb25zLmRldkRlcHMgPz8gW10pO1xuICAgIHRoaXMuYWRkUGVlckRlcHMoLi4ub3B0aW9ucy5wZWVyRGVwcyA/PyBbXSk7XG4gICAgdGhpcy5hZGRCdW5kbGVkRGVwcyguLi5vcHRpb25zLmJ1bmRsZWREZXBzID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRGVwZW5kZW5jaWVzKCk6IE5wbURlcGVuZGVuY2llcyB7XG4gICAgY29uc3QgZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgY29uc3QgcGVlckRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGNvbnN0IGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGNvbnN0IGJ1bmRsZWREZXBlbmRlbmNpZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgLy8gc3ludGhldGljIGRlcGVuZGVuY2llczogYWRkIGEgcGlubmVkIGJ1aWxkIGRlcGVuZGVuY3kgdG8gZW5zdXJlIHdlIGFyZVxuICAgIC8vIHRlc3RpbmcgYWdhaW5zdCB0aGUgbWluaW11bSByZXF1aXJlbWVudCBvZiB0aGUgcGVlci5cbiAgICBjb25zdCBwaW5uZWQgPSB0aGlzLnBlZXJEZXBlbmRlbmN5T3B0aW9ucy5waW5uZWREZXZEZXBlbmRlbmN5ID8/IHRydWU7XG4gICAgaWYgKHBpbm5lZCkge1xuICAgICAgZm9yIChjb25zdCBkZXAgb2YgdGhpcy5wcm9qZWN0LmRlcHMuYWxsLmZpbHRlcihkID0+IGQudHlwZSA9PT0gRGVwZW5kZW5jeVR5cGUuUEVFUikpIHtcbiAgICAgICAgbGV0IHJlcSA9IGRlcC5uYW1lO1xuXG4gICAgICAgIC8vIHNraXAgaWYgd2UgYWxyZWFkeSBoYXZlIGEgcnVudGltZSBkZXBlbmRlbmN5IG9uIHRoaXMgcGVlclxuICAgICAgICBpZiAodGhpcy5wcm9qZWN0LmRlcHMudHJ5R2V0RGVwZW5kZW5jeShkZXAubmFtZSwgRGVwZW5kZW5jeVR5cGUuUlVOVElNRSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXAudmVyc2lvbikge1xuICAgICAgICAgIGNvbnN0IHZlciA9IHNlbXZlci5taW5WZXJzaW9uKGRlcC52ZXJzaW9uKT8udmVyc2lvbjtcbiAgICAgICAgICBpZiAoIXZlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gZGV0ZXJtaW5lIG1pbmltdW0gc2VtdmVyIGZvciBwZWVyIGRlcGVuZGVuY3kgJHtkZXAubmFtZX1AJHtkZXAudmVyc2lvbn1gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXEgKz0gJ0AnICsgdmVyO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkRGV2RGVwcyhyZXEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGVwIG9mIHRoaXMucHJvamVjdC5kZXBzLmFsbCkge1xuICAgICAgY29uc3QgdmVyc2lvbiA9IGRlcC52ZXJzaW9uID8/ICcqJztcblxuICAgICAgc3dpdGNoIChkZXAudHlwZSkge1xuICAgICAgICBjYXNlIERlcGVuZGVuY3lUeXBlLkJVTkRMRUQ6XG4gICAgICAgICAgYnVuZGxlZERlcGVuZGVuY2llcy5wdXNoKGRlcC5uYW1lKTtcblxuICAgICAgICAgIGlmICh0aGlzLnByb2plY3QuZGVwcy5hbGwuZmluZChkID0+IGQubmFtZSA9PT0gZGVwLm5hbWUgJiYgZC50eXBlID09PSBEZXBlbmRlbmN5VHlwZS5QRUVSKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gYnVuZGxlIFwiJHtkZXAubmFtZX1cIi4gaXQgY2Fubm90IGFwcGVhciBhcyBhIHBlZXIgZGVwZW5kZW5jeWApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGFsc28gYWRkIGFzIGEgcnVudGltZSBkZXBlbmRlbmN5XG4gICAgICAgICAgZGVwZW5kZW5jaWVzW2RlcC5uYW1lXSA9IHZlcnNpb247XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5QRUVSOlxuICAgICAgICAgIHBlZXJEZXBlbmRlbmNpZXNbZGVwLm5hbWVdID0gdmVyc2lvbjtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIERlcGVuZGVuY3lUeXBlLlJVTlRJTUU6XG4gICAgICAgICAgZGVwZW5kZW5jaWVzW2RlcC5uYW1lXSA9IHZlcnNpb247XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5URVNUOlxuICAgICAgICBjYXNlIERlcGVuZGVuY3lUeXBlLkRFVkVOVjpcbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5CVUlMRDpcbiAgICAgICAgICBkZXZEZXBlbmRlbmNpZXNbZGVwLm5hbWVdID0gdmVyc2lvbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgdGhlIG1hbmlmZXN0IHdlIGFyZSBhYm91dCB0byBzYXZlIGludG8gYHBhY2thZ2UuanNvbmBcbiAgICB0aGlzLm1hbmlmZXN0LmRldkRlcGVuZGVuY2llcyA9IGRldkRlcGVuZGVuY2llcztcbiAgICB0aGlzLm1hbmlmZXN0LnBlZXJEZXBlbmRlbmNpZXMgPSBwZWVyRGVwZW5kZW5jaWVzO1xuICAgIHRoaXMubWFuaWZlc3QuZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzO1xuICAgIHRoaXMubWFuaWZlc3QuYnVuZGxlZERlcGVuZGVuY2llcyA9IGJ1bmRsZWREZXBlbmRlbmNpZXM7XG5cbiAgICAvLyBub3RoaW5nIGZ1cnRoZXIgdG8gZG8gaWYgcGFja2FnZS5qc29uIGZpbGUgZG9lcyBub3QgZXhpc3RcbiAgICBjb25zdCBwa2cgPSB0aGlzLnJlYWRQYWNrYWdlSnNvbigpO1xuICAgIGlmICghcGtnKSB7XG4gICAgICByZXR1cm4geyBkZXZEZXBlbmRlbmNpZXMsIHBlZXJEZXBlbmRlbmNpZXMsIGRlcGVuZGVuY2llcyB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlYWREZXBzID0gKHVzZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGN1cnJlbnQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fSkgPT4ge1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdXNlclZlcnNpb25dIG9mIE9iamVjdC5lbnRyaWVzKHVzZXIpKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gY3VycmVudFtuYW1lXTtcblxuICAgICAgICAvLyByZXNwZWN0IHVzZXIgdmVyc2lvbiBpZiBpdCdzIG5vdCAnKicgb3IgaWYgY3VycmVudCB2ZXJzaW9uIGlzIHVuZGVmaW5lZFxuICAgICAgICBpZiAodXNlclZlcnNpb24gIT09ICcqJyB8fCAhY3VycmVudFZlcnNpb24gfHwgY3VycmVudFZlcnNpb24gPT09ICcqJykge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWVtb2l6ZSBjdXJyZW50IHZlcnNpb24gaW4gbWVtb3J5IHNvIGl0IGlzIHByZXNlcnZlZCB3aGVuIHNhdmluZ1xuICAgICAgICB1c2VyW25hbWVdID0gY3VycmVudFZlcnNpb247XG4gICAgICB9XG5cbiAgICAgIC8vIHJlcG9ydCByZW1vdmFsc1xuICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGN1cnJlbnQgPz8ge30pKSB7XG4gICAgICAgIGlmICghdXNlcltuYW1lXSkge1xuICAgICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIudmVyYm9zZShgJHtuYW1lfTogcmVtb3ZlZGApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJlYWREZXBzKGRldkRlcGVuZGVuY2llcywgcGtnLmRldkRlcGVuZGVuY2llcyk7XG4gICAgcmVhZERlcHMoZGVwZW5kZW5jaWVzLCBwa2cuZGVwZW5kZW5jaWVzKTtcbiAgICByZWFkRGVwcyhwZWVyRGVwZW5kZW5jaWVzLCBwa2cucGVlckRlcGVuZGVuY2llcyk7XG5cbiAgICByZXR1cm4geyBkZXZEZXBlbmRlbmNpZXMsIGRlcGVuZGVuY2llcywgcGVlckRlcGVuZGVuY2llcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb24ob3V0ZGlyOiBzdHJpbmcpIHtcbiAgICBjb25zdCByb290ID0gam9pbihvdXRkaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgICBjb25zdCBwa2cgPSByZWFkSnNvblN5bmMocm9vdCk7XG5cbiAgICBjb25zdCByZXNvbHZlRGVwcyA9IChjdXJyZW50OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSwgdXNlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgICBjdXJyZW50ID0gY3VycmVudCA/PyB7fTtcbiAgICAgIHVzZXIgPSB1c2VyID8/IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCBjdXJyZW50RGVmaW5pdGlvbl0gb2YgT2JqZWN0LmVudHJpZXModXNlcikpIHtcbiAgICAgICAgLy8gZmluZCBhY3R1YWwgdmVyc2lvbiBmcm9tIG5vZGVfbW9kdWxlc1xuICAgICAgICBsZXQgZGVzaXJlZFZlcnNpb24gPSBjdXJyZW50RGVmaW5pdGlvbjtcblxuICAgICAgICBpZiAoY3VycmVudERlZmluaXRpb24gPT09ICcqJykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBtb2R1bGVQYXRoID0gcmVxdWlyZS5yZXNvbHZlKGAke25hbWV9L3BhY2thZ2UuanNvbmAsIHsgcGF0aHM6IFtvdXRkaXJdIH0pO1xuICAgICAgICAgICAgY29uc3QgbW9kdWxlID0gcmVhZEpzb25TeW5jKG1vZHVsZVBhdGgpO1xuICAgICAgICAgICAgZGVzaXJlZFZlcnNpb24gPSBgXiR7bW9kdWxlLnZlcnNpb259YDtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cblxuICAgICAgICAgIGlmICghZGVzaXJlZFZlcnNpb24pIHtcbiAgICAgICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihgdW5hYmxlIHRvIHJlc29sdmUgdmVyc2lvbiBmb3IgJHtuYW1lfSBmcm9tIGluc3RhbGxlZCBtb2R1bGVzYCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudERlZmluaXRpb24gIT09IGRlc2lyZWRWZXJzaW9uKSB7XG4gICAgICAgICAgdGhpcy5wcm9qZWN0LmxvZ2dlci52ZXJib3NlKGAke25hbWV9OiAke2N1cnJlbnREZWZpbml0aW9ufSA9PiAke2Rlc2lyZWRWZXJzaW9ufWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzdWx0W25hbWVdID0gZGVzaXJlZFZlcnNpb247XG4gICAgICB9XG5cbiAgICAgIC8vIHByaW50IHJlbW92ZWQgcGFja2FnZXNcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhjdXJyZW50KSkge1xuICAgICAgICBpZiAoIXJlc3VsdFtuYW1lXSkge1xuICAgICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIudmVyYm9zZShgJHtuYW1lfSByZW1vdmVkYCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNvcnRlZChyZXN1bHQpO1xuICAgIH07XG5cbiAgICBjb25zdCByZW5kZXJlZCA9IHRoaXMuX3JlbmRlcmVkRGVwcztcbiAgICBpZiAoIXJlbmRlcmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Fzc2VydGlvbiBmYWlsZWQnKTtcbiAgICB9XG4gICAgcGtnLmRlcGVuZGVuY2llcyA9IHJlc29sdmVEZXBzKHBrZy5kZXBlbmRlbmNpZXMsIHJlbmRlcmVkLmRlcGVuZGVuY2llcyk7XG4gICAgcGtnLmRldkRlcGVuZGVuY2llcyA9IHJlc29sdmVEZXBzKHBrZy5kZXZEZXBlbmRlbmNpZXMsIHJlbmRlcmVkLmRldkRlcGVuZGVuY2llcyk7XG4gICAgcGtnLnBlZXJEZXBlbmRlbmNpZXMgPSByZXNvbHZlRGVwcyhwa2cucGVlckRlcGVuZGVuY2llcywgcmVuZGVyZWQucGVlckRlcGVuZGVuY2llcyk7XG5cbiAgICB3cml0ZUZpbGUocm9vdCwgSlNPTi5zdHJpbmdpZnkocGtnLCB1bmRlZmluZWQsIDIpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUHVibGlzaENvbmZpZygpIHtcbiAgICAvLyBvbWl0IHZhbHVlcyBpZiB0aGV5IGFyZSB0aGUgc2FtZSBhcyB0aGUgbnBtIGRlZmF1bHRzXG4gICAgcmV0dXJuIHJlc29sdmVKc29uKHtcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLm5wbVJlZ2lzdHJ5VXJsICE9PSBERUZBVUxUX05QTV9SRUdJU1RSWV9VUkwgPyB0aGlzLm5wbVJlZ2lzdHJ5VXJsIDogdW5kZWZpbmVkLFxuICAgICAgYWNjZXNzOiB0aGlzLm5wbUFjY2VzcyAhPT0gZGVmYXVsdE5wbUFjY2Vzcyh0aGlzLnBhY2thZ2VOYW1lKSA/IHRoaXMubnBtQWNjZXNzIDogdW5kZWZpbmVkLFxuICAgIH0sIHsgb21pdEVtcHR5OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJLZXl3b3JkcygpIHtcbiAgICBjb25zdCBrd2RzID0gQXJyYXkuZnJvbSh0aGlzLmtleXdvcmRzKTtcbiAgICByZXR1cm4gc29ydGVkKGt3ZHMuc29ydCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRW5naW5lcygpIHtcbiAgICByZXR1cm4gc29ydGVkKHRoaXMuZW5naW5lcyk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9EaXNjb3ZlckJpbmFyaWVzKCkge1xuICAgIGNvbnN0IGJpbnJlbCA9ICdiaW4nO1xuICAgIGNvbnN0IGJpbmRpciA9IGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgYmlucmVsKTtcbiAgICBpZiAoZXhpc3RzU3luYyhiaW5kaXIpKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgcmVhZGRpclN5bmMoYmluZGlyKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGFjY2Vzc1N5bmMoam9pbihiaW5kaXIsIGZpbGUpLCBjb25zdGFudHMuWF9PSyk7XG4gICAgICAgICAgdGhpcy5iaW5bZmlsZV0gPSBqb2luKGJpbnJlbCwgZmlsZSkucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gbm90IGV4ZWN1dGFibGUsIHNraXBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQXV0aG9yKG9wdGlvbnM6IE5vZGVQYWNrYWdlT3B0aW9ucykge1xuICAgIGxldCBhdXRob3I7XG4gICAgaWYgKG9wdGlvbnMuYXV0aG9yTmFtZSkge1xuICAgICAgYXV0aG9yID0ge1xuICAgICAgICBuYW1lOiBvcHRpb25zLmF1dGhvck5hbWUsXG4gICAgICAgIGVtYWlsOiBvcHRpb25zLmF1dGhvckVtYWlsLFxuICAgICAgICB1cmw6IG9wdGlvbnMuYXV0aG9yVXJsLFxuICAgICAgICBvcmdhbml6YXRpb246IG9wdGlvbnMuYXV0aG9yT3JnYW5pemF0aW9uID8/IGZhbHNlLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9wdGlvbnMuYXV0aG9yRW1haWwgfHwgb3B0aW9ucy5hdXRob3JVcmwgfHwgb3B0aW9ucy5hdXRob3JPcmdhbml6YXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiYXV0aG9yTmFtZVwiIGlzIHJlcXVpcmVkIGlmIHNwZWNpZnlpbmcgXCJhdXRob3JFbWFpbFwiIG9yIFwiYXV0aG9yVXJsXCInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGF1dGhvcjtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQmluKCkge1xuICAgIHJldHVybiBzb3J0ZWQodGhpcy5iaW4pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJTY3JpcHRzKCkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCB0YXNrIG9mIHRoaXMucHJvamVjdC50YXNrcy5hbGwuc29ydCgoeCwgeSkgPT4geC5uYW1lLmxvY2FsZUNvbXBhcmUoeS5uYW1lKSkpIHtcbiAgICAgIHJlc3VsdFt0YXNrLm5hbWVdID0gdGhpcy5ucG1TY3JpcHRGb3JUYXNrKHRhc2spO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuXG4gIHByaXZhdGUgbnBtU2NyaXB0Rm9yVGFzayh0YXNrOiBUYXNrKSB7XG4gICAgcmV0dXJuIGAke3RoaXMucHJvamVuQ29tbWFuZH0gJHt0YXNrLm5hbWV9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFBhY2thZ2VKc29uKCkge1xuICAgIGNvbnN0IGZpbGUgPSBqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgICBpZiAoIWV4aXN0c1N5bmMoZmlsZSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlYWRKc29uU3luYyhmaWxlKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlZXJEZXBlbmRlbmN5T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGlubmVkRGV2RGVwZW5kZW5jeT86IGJvb2xlYW47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBlbnVtIE5vZGVQYWNrYWdlTWFuYWdlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgWUFSTiA9ICd5YXJuJyxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgTlBNID0gJ25wbScsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBQTlBNID0gJ3BucG0nXG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgZW51bSBOcG1BY2Nlc3Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgUFVCTElDID0gJ3B1YmxpYycsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBSRVNUUklDVEVEID0gJ3Jlc3RyaWN0ZWQnXG59XG5cbmludGVyZmFjZSBOcG1EZXBlbmRlbmNpZXMge1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IGRldkRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcmVhZG9ubHkgcGVlckRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGFuIG5wbSBwYWNrYWdlIGlzIFwic2NvcGVkXCIgKGkuZS4gaXQgc3RhcnRzIHdpdGggXCJ4eHhAXCIpLlxuICovXG5mdW5jdGlvbiBpc1Njb3BlZChwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYWNrYWdlTmFtZS5pbmNsdWRlcygnQCcpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0TnBtQWNjZXNzKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGlzU2NvcGVkKHBhY2thZ2VOYW1lKSA/IE5wbUFjY2Vzcy5SRVNUUklDVEVEIDogTnBtQWNjZXNzLlBVQkxJQztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHROcG1Ub2tlbihucG1Ub2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkLCByZWdpc3RyeTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIC8vIGlmIHdlIGFyZSBwdWJsaXNoaW5nIHRvIEFXUyBDZG9kZUFydGlmYWN0LCBubyBOUE1fVE9LRU4gdXNlZCAod2lsbCBiZSByZXF1ZXN0ZWQgdXNpbmcgQVdTIENMSSBsYXRlcikuXG4gIGlmIChpc0F3c0NvZGVBcnRpZmFjdFJlZ2lzdHJ5KHJlZ2lzdHJ5KSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBpZiB3ZSBhcmUgcHVibGlzaGluZyB0byBHaXRIdWIgUGFja2FnZXMsIGRlZmF1bHQgdG8gR0lUSFVCX1RPS0VOLlxuICBjb25zdCBpc0dpdEh1YlBhY2thZ2VzID0gcmVnaXN0cnkgPT09IEdJVEhVQl9QQUNLQUdFU19SRUdJU1RSWTtcbiAgcmV0dXJuIG5wbVRva2VuID8/IChpc0dpdEh1YlBhY2thZ2VzID8gREVGQVVMVF9HSVRIVUJfVE9LRU5fU0VDUkVUIDogREVGQVVMVF9OUE1fVE9LRU5fU0VDUkVUKTtcbn1cblxuZnVuY3Rpb24gZGV0ZXJtaW5lTG9ja2ZpbGUocGFja2FnZU1hbmFnZXI6IE5vZGVQYWNrYWdlTWFuYWdlcikge1xuICBpZiAocGFja2FnZU1hbmFnZXIgPT09IE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOKSB7XG4gICAgcmV0dXJuICd5YXJuLmxvY2snO1xuICB9IGVsc2UgaWYgKHBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuTlBNKSB7XG4gICAgcmV0dXJuICdwYWNrYWdlLWxvY2suanNvbic7XG4gIH0gZWxzZSBpZiAocGFja2FnZU1hbmFnZXIgPT09IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNKSB7XG4gICAgcmV0dXJuICdwbnBtLWxvY2sueWFtbCc7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIHBhY2thZ2UgbWFuYWdlciAke3BhY2thZ2VNYW5hZ2VyfWApO1xufSJdfQ==
|