projen 0.101.2 → 0.101.4
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 +878 -110
- package/lib/ai-instructions.js +2 -2
- package/lib/awscdk/auto-discover.js +6 -6
- package/lib/awscdk/awscdk-app-java.js +1 -1
- package/lib/awscdk/awscdk-app-py.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +1 -1
- package/lib/awscdk/awscdk-construct.js +1 -1
- package/lib/awscdk/awscdk-deps-java.js +1 -1
- package/lib/awscdk/awscdk-deps-js.js +1 -1
- package/lib/awscdk/awscdk-deps-py.js +1 -1
- package/lib/awscdk/awscdk-deps.js +1 -1
- package/lib/awscdk/cdk-config.js +3 -3
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.js +1 -1
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/build/build-workflow.js +1 -1
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-build.js +1 -1
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.js +1 -1
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-py.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/cdk8s-deps-py.js +1 -1
- package/lib/cdk8s/cdk8s-deps.js +1 -1
- package/lib/cdk8s/integration-test.js +1 -1
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/cli/task-runtime.js +34 -7
- package/lib/component.d.ts +70 -0
- package/lib/component.js +183 -3
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/auto-queue.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/dependency-review.js +1 -1
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/merge-queue.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-backport.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow-job.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflow-actions.js +1 -1
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflow-steps.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +2 -2
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/biome/biome.js +1 -1
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.js +1 -1
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/license-checker.js +1 -1
- package/lib/javascript/node-package.js +1 -1
- package/lib/javascript/node-project.js +1 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +2 -2
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/javascript/yarnrc.js +1 -1
- package/lib/json-patch.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project-tree.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +1 -1
- package/lib/projenrc.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pyproject-toml-file.js +1 -1
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.d.ts +1 -1
- package/lib/python/python-project.js +2 -2
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/uv.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/renovatebot.js +1 -1
- package/lib/run-task.cjs +20 -3
- package/lib/sample-file.js +2 -2
- package/lib/script-runner.d.ts +35 -0
- package/lib/script-runner.js +22 -0
- package/lib/source-code.js +1 -1
- package/lib/task-shell.js +1 -1
- package/lib/task.js +1 -1
- package/lib/tasks.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.js +2 -1
- package/lib/typescript/projenrc-ts.d.ts +11 -3
- package/lib/typescript/projenrc-ts.js +38 -6
- package/lib/typescript/projenrc.d.ts +14 -3
- package/lib/typescript/projenrc.js +36 -18
- package/lib/typescript/typescript-runner.d.ts +146 -0
- package/lib/typescript/typescript-runner.js +134 -0
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.d.ts +14 -0
- package/lib/typescript/typescript.js +12 -6
- package/lib/util/recreate.d.ts +30 -0
- package/lib/util/recreate.js +38 -0
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +3 -3
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +2 -2
package/lib/task-shell.js
CHANGED
|
@@ -19,7 +19,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
19
19
|
*/
|
|
20
20
|
class TaskShell {
|
|
21
21
|
value;
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TaskShell", version: "0.101.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TaskShell", version: "0.101.4" };
|
|
23
23
|
/**
|
|
24
24
|
* The built-in cross-platform shell (the default). It interprets POSIX-style
|
|
25
25
|
* task syntax (`mkdir -p`, `&&`, `$VAR`, ...) identically on every platform,
|
package/lib/task.js
CHANGED
|
@@ -8,7 +8,7 @@ const logging_1 = require("./logging");
|
|
|
8
8
|
* commands and subtasks.
|
|
9
9
|
*/
|
|
10
10
|
class Task {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.101.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.101.4" };
|
|
12
12
|
/**
|
|
13
13
|
* Task name.
|
|
14
14
|
*/
|
package/lib/tasks.js
CHANGED
|
@@ -48,7 +48,7 @@ const task_runner_1 = require("./task-runner");
|
|
|
48
48
|
* synthesized into `.projen/tasks.json`.
|
|
49
49
|
*/
|
|
50
50
|
class Tasks extends component_1.Component {
|
|
51
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.101.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.101.4" };
|
|
52
52
|
_tasks;
|
|
53
53
|
_env;
|
|
54
54
|
_shell;
|
package/lib/testing.js
CHANGED
|
@@ -10,7 +10,7 @@ const synth_1 = require("./util/synth");
|
|
|
10
10
|
* @example `expect(Testing.synth(someProject)).toMatchSnapshot()`
|
|
11
11
|
*/
|
|
12
12
|
class Testing {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.101.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.101.4" };
|
|
14
14
|
/**
|
|
15
15
|
* Produces a simple JS object that represents the contents of the projects with field names being file paths.
|
|
16
16
|
* @param project the project to produce a snapshot for
|
package/lib/textfile.js
CHANGED
|
@@ -7,7 +7,7 @@ const file_1 = require("./file");
|
|
|
7
7
|
* A text file.
|
|
8
8
|
*/
|
|
9
9
|
class TextFile extends file_1.FileBase {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.101.4" };
|
|
11
11
|
lines;
|
|
12
12
|
/**
|
|
13
13
|
* Defines a text file.
|
package/lib/toml.js
CHANGED
|
@@ -41,7 +41,7 @@ const object_file_1 = require("./object-file");
|
|
|
41
41
|
* Represents a TOML file.
|
|
42
42
|
*/
|
|
43
43
|
class TomlFile extends object_file_1.ObjectFile {
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.101.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.101.4" };
|
|
45
45
|
constructor(scope, filePath, options) {
|
|
46
46
|
super(scope, filePath, options);
|
|
47
47
|
}
|
package/lib/typescript/index.js
CHANGED
|
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./projenrc"), exports);
|
|
18
18
|
__exportStar(require("./projenrc-ts"), exports);
|
|
19
19
|
__exportStar(require("./typescript"), exports);
|
|
20
|
+
__exportStar(require("./typescript-runner"), exports);
|
|
20
21
|
__exportStar(require("./typescript-typedoc"), exports);
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLGdEQUE4QjtBQUM5QiwrQ0FBNkI7QUFDN0Isc0RBQW9DO0FBQ3BDLHVEQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3Byb2plbnJjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9qZW5yYy10c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNjcmlwdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNjcmlwdC1ydW5uZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzY3JpcHQtdHlwZWRvY1wiO1xuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TypescriptConfig } from "../javascript";
|
|
2
|
+
import { TypeScriptRunner } from "./typescript-runner";
|
|
2
3
|
import type { Project } from "../project";
|
|
3
4
|
import { ProjenrcFile } from "../projenrc";
|
|
4
5
|
export interface ProjenrcTsOptions {
|
|
@@ -15,20 +16,25 @@ export interface ProjenrcTsOptions {
|
|
|
15
16
|
*/
|
|
16
17
|
readonly projenCodeDir?: string;
|
|
17
18
|
/**
|
|
18
|
-
* The name of the tsconfig file that will be used by
|
|
19
|
+
* The name of the tsconfig file that will be used by the runner
|
|
19
20
|
* when compiling projen source files.
|
|
20
21
|
*
|
|
21
22
|
* @default "tsconfig.projen.json"
|
|
23
|
+
* @deprecated Use `runner` to configure the tsconfigFileName directly.
|
|
22
24
|
*/
|
|
23
25
|
readonly tsconfigFileName?: string;
|
|
26
|
+
/**
|
|
27
|
+
* The runner to use for executing TypeScript files.
|
|
28
|
+
*
|
|
29
|
+
* @default TypeScriptRunner.tsNode()
|
|
30
|
+
*/
|
|
31
|
+
readonly runner?: TypeScriptRunner;
|
|
24
32
|
}
|
|
25
33
|
/**
|
|
26
34
|
* A projenrc file written in TypeScript
|
|
27
35
|
*
|
|
28
36
|
* This component can be instantiated in any type of project
|
|
29
37
|
* and has no expectations around the project's main language.
|
|
30
|
-
*
|
|
31
|
-
* Requires that `npx` is available.
|
|
32
38
|
*/
|
|
33
39
|
export declare class ProjenrcTs extends ProjenrcFile {
|
|
34
40
|
/**
|
|
@@ -37,7 +43,9 @@ export declare class ProjenrcTs extends ProjenrcFile {
|
|
|
37
43
|
readonly tsconfig: TypescriptConfig;
|
|
38
44
|
readonly filePath: string;
|
|
39
45
|
private readonly _projenCodeDir;
|
|
46
|
+
private readonly _runner;
|
|
40
47
|
constructor(project: Project, options?: ProjenrcTsOptions);
|
|
48
|
+
private getRunner;
|
|
41
49
|
preSynthesize(): void;
|
|
42
50
|
private generateProjenrc;
|
|
43
51
|
}
|
|
@@ -5,6 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const fs_1 = require("fs");
|
|
6
6
|
const path_1 = require("path");
|
|
7
7
|
const javascript_1 = require("../javascript");
|
|
8
|
+
const typescript_runner_1 = require("./typescript-runner");
|
|
8
9
|
const render_options_1 = require("../javascript/render-options");
|
|
9
10
|
const projenrc_1 = require("../projenrc");
|
|
10
11
|
const DEFAULT_FILENAME = ".projenrc.ts";
|
|
@@ -13,17 +14,16 @@ const DEFAULT_FILENAME = ".projenrc.ts";
|
|
|
13
14
|
*
|
|
14
15
|
* This component can be instantiated in any type of project
|
|
15
16
|
* and has no expectations around the project's main language.
|
|
16
|
-
*
|
|
17
|
-
* Requires that `npx` is available.
|
|
18
17
|
*/
|
|
19
18
|
class ProjenrcTs extends projenrc_1.ProjenrcFile {
|
|
20
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.101.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.101.4" };
|
|
21
20
|
/**
|
|
22
21
|
* TypeScript configuration file used to compile projen source files
|
|
23
22
|
*/
|
|
24
23
|
tsconfig;
|
|
25
24
|
filePath;
|
|
26
25
|
_projenCodeDir;
|
|
26
|
+
_runner;
|
|
27
27
|
constructor(project, options = {}) {
|
|
28
28
|
super(project);
|
|
29
29
|
this.filePath = options.filename ?? DEFAULT_FILENAME;
|
|
@@ -34,10 +34,42 @@ class ProjenrcTs extends projenrc_1.ProjenrcFile {
|
|
|
34
34
|
fileName: options.tsconfigFileName ?? "tsconfig.projen.json",
|
|
35
35
|
compilerOptions: {},
|
|
36
36
|
});
|
|
37
|
-
//
|
|
38
|
-
|
|
37
|
+
// A runner is a future component, make sure it is attached
|
|
38
|
+
this._runner = this.getRunner(options).tryAttach(project);
|
|
39
|
+
// Build the run config
|
|
40
|
+
const { dependencies, steps } = this._runner.configFor(this.filePath);
|
|
41
|
+
// If the runner has dependencies, run each step through an `npx` shell
|
|
42
|
+
// (`npx -y -p <deps> -c "<command>"`) to make them available without install.
|
|
43
|
+
if (dependencies.length > 0) {
|
|
44
|
+
const shell = [
|
|
45
|
+
"npx",
|
|
46
|
+
"-y",
|
|
47
|
+
...dependencies.flatMap((d) => [
|
|
48
|
+
"-p",
|
|
49
|
+
d.version ? `${d.name}@${d.version}` : d.name,
|
|
50
|
+
]),
|
|
51
|
+
"-c",
|
|
52
|
+
];
|
|
53
|
+
for (const step of steps) {
|
|
54
|
+
project.defaultTask?.addSteps({ ...step, shell });
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
project.defaultTask?.addSteps(...steps);
|
|
59
|
+
}
|
|
39
60
|
this.generateProjenrc();
|
|
40
61
|
}
|
|
62
|
+
getRunner(options) {
|
|
63
|
+
// use a provide runner as is
|
|
64
|
+
if (options.runner) {
|
|
65
|
+
return options.runner;
|
|
66
|
+
}
|
|
67
|
+
// use a default runner with the correct tsconfig and type-checking enabled
|
|
68
|
+
return typescript_runner_1.TypeScriptRunner.tsNode({
|
|
69
|
+
tsconfig: this.tsconfig.fileName,
|
|
70
|
+
typeCheck: true,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
41
73
|
preSynthesize() {
|
|
42
74
|
super.preSynthesize();
|
|
43
75
|
this.tsconfig.addInclude(this.filePath);
|
|
@@ -73,4 +105,4 @@ class ProjenrcTs extends projenrc_1.ProjenrcFile {
|
|
|
73
105
|
}
|
|
74
106
|
}
|
|
75
107
|
exports.ProjenrcTs = ProjenrcTs;
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMtdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9wcm9qZW5yYy10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkJBQStDO0FBQy9DLCtCQUErQjtBQUUvQiw4Q0FBaUQ7QUFDakQsaUVBQXVFO0FBRXZFLDBDQUEyQztBQTBCM0MsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFFeEM7Ozs7Ozs7R0FPRztBQUNILE1BQWEsVUFBVyxTQUFRLHVCQUFZOztJQUMxQzs7T0FFRztJQUNhLFFBQVEsQ0FBbUI7SUFDM0IsUUFBUSxDQUFTO0lBQ2hCLGNBQWMsQ0FBUztJQUV4QyxZQUFZLE9BQWdCLEVBQUUsVUFBNkIsRUFBRTtRQUMzRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLFVBQVUsQ0FBQztRQUUxRCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUU5QyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDZCQUFnQixDQUFDLE9BQU8sRUFBRTtZQUM1QyxRQUFRLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLHNCQUFzQjtZQUM1RCxlQUFlLEVBQUUsRUFBRTtTQUNwQixDQUFDLENBQUM7UUFFSCx3RUFBd0U7UUFDeEUsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQ3ZCLDRCQUE0QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQ3RFLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRWUsYUFBYTtRQUMzQixLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsVUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFBLGNBQU8sRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFBLGVBQVUsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxpQkFBaUI7UUFDM0IsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUEsd0NBQXVCLEVBQUM7WUFDM0QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBNEI7WUFDNUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1NBQzdCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXBDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsdUJBQXVCLFNBQVMsSUFBSSxlQUFlLElBQUksQ0FBQyxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUvQixJQUFBLGtCQUFhLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3RCLDBDQUEwQyxNQUFNLEVBQUUsQ0FDbkQsQ0FBQztJQUNKLENBQUM7O0FBeEVILGdDQXlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBJbnZlbnRvcnlQcm9qZWN0VHlwZSB9IGZyb20gXCIuLi9pbnZlbnRvcnlcIjtcbmltcG9ydCB7IFR5cGVzY3JpcHRDb25maWcgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgcmVuZGVySmF2YVNjcmlwdE9wdGlvbnMgfSBmcm9tIFwiLi4vamF2YXNjcmlwdC9yZW5kZXItb3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IFByb2plbnJjRmlsZSB9IGZyb20gXCIuLi9wcm9qZW5yY1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plbnJjVHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9qZW5yYyBmaWxlLlxuICAgKiBAZGVmYXVsdCBcIi5wcm9qZW5yYy50c1wiXG4gICAqL1xuICByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkaXJlY3RvcnkgdHJlZSB0aGF0IG1heSBjb250YWluICoudHMgZmlsZXMgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tXG4gICAqIHlvdXIgcHJvamVucmMgdHlwZXNjcmlwdCBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInByb2plbnJjXCJcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNvZGVEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0c2NvbmZpZyBmaWxlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRzLW5vZGVcbiAgICogd2hlbiBjb21waWxpbmcgcHJvamVuIHNvdXJjZSBmaWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJ0c2NvbmZpZy5wcm9qZW4uanNvblwiXG4gICAqL1xuICByZWFkb25seSB0c2NvbmZpZ0ZpbGVOYW1lPzogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0ZJTEVOQU1FID0gXCIucHJvamVucmMudHNcIjtcblxuLyoqXG4gKiBBIHByb2plbnJjIGZpbGUgd3JpdHRlbiBpbiBUeXBlU2NyaXB0XG4gKlxuICogVGhpcyBjb21wb25lbnQgY2FuIGJlIGluc3RhbnRpYXRlZCBpbiBhbnkgdHlwZSBvZiBwcm9qZWN0XG4gKiBhbmQgaGFzIG5vIGV4cGVjdGF0aW9ucyBhcm91bmQgdGhlIHByb2plY3QncyBtYWluIGxhbmd1YWdlLlxuICpcbiAqIFJlcXVpcmVzIHRoYXQgYG5weGAgaXMgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVucmNUcyBleHRlbmRzIFByb2plbnJjRmlsZSB7XG4gIC8qKlxuICAgKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB1c2VkIHRvIGNvbXBpbGUgcHJvamVuIHNvdXJjZSBmaWxlc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRzY29uZmlnOiBUeXBlc2NyaXB0Q29uZmlnO1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZVBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvamVuQ29kZURpcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFByb2plbnJjVHNPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZmlsZVBhdGggPSBvcHRpb25zLmZpbGVuYW1lID8/IERFRkFVTFRfRklMRU5BTUU7XG4gICAgdGhpcy5fcHJvamVuQ29kZURpciA9IG9wdGlvbnMucHJvamVuQ29kZURpciA/PyBcInByb2plbnJjXCI7XG5cbiAgICBwcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke3RoaXMuZmlsZVBhdGh9YCk7XG5cbiAgICAvLyBDcmVhdGUgYSBkZWRpY2F0ZWQgdHNjb25maWcgZm9yIHByb2plbiBzb3VyY2UgZmlsZXNcbiAgICB0aGlzLnRzY29uZmlnID0gbmV3IFR5cGVzY3JpcHRDb25maWcocHJvamVjdCwge1xuICAgICAgZmlsZU5hbWU6IG9wdGlvbnMudHNjb25maWdGaWxlTmFtZSA/PyBcInRzY29uZmlnLnByb2plbi5qc29uXCIsXG4gICAgICBjb21waWxlck9wdGlvbnM6IHt9LFxuICAgIH0pO1xuXG4gICAgLy8gVXNlIG5weCBzaW5jZSBwcm9qZWN0J3MgZGVwcyBtYW5hZ2VyIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIEpTLWJhc2VkXG4gICAgcHJvamVjdC5kZWZhdWx0VGFzaz8uZXhlYyhcbiAgICAgIGBucHggLXkgdHMtbm9kZSAtLXByb2plY3QgJHt0aGlzLnRzY29uZmlnLmZpbGVOYW1lfSAke3RoaXMuZmlsZVBhdGh9YCxcbiAgICApO1xuXG4gICAgdGhpcy5nZW5lcmF0ZVByb2plbnJjKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcHJlU3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG5cbiAgICB0aGlzLnRzY29uZmlnLmFkZEluY2x1ZGUodGhpcy5maWxlUGF0aCk7XG4gICAgdGhpcy50c2NvbmZpZy5hZGRJbmNsdWRlKGAke3RoaXMuX3Byb2plbkNvZGVEaXJ9LyoqLyoudHNgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQcm9qZW5yYygpIHtcbiAgICBjb25zdCByY2ZpbGUgPSByZXNvbHZlKHRoaXMucHJvamVjdC5vdXRkaXIsIHRoaXMuZmlsZVBhdGgpO1xuICAgIGlmIChleGlzdHNTeW5jKHJjZmlsZSkpIHtcbiAgICAgIHJldHVybjsgLy8gYWxyZWFkeSBleGlzdHNcbiAgICB9XG5cbiAgICBjb25zdCBib290c3RyYXAgPSB0aGlzLnByb2plY3QuaW5pdFByb2plY3Q7XG4gICAgaWYgKCFib290c3RyYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0cyA9IGJvb3RzdHJhcC5mcW4uc3BsaXQoXCIuXCIpO1xuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBwYXJ0c1swXTtcbiAgICBjb25zdCBpbXBvcnROYW1lID0gcGFydHNbMV07XG4gICAgY29uc3QgY2xhc3NOYW1lID0gcGFydHMuc2xpY2UoMSkuam9pbihcIi5cIik7XG5cbiAgICBjb25zdCB7IHJlbmRlcmVkT3B0aW9ucywgaW1wb3J0cyB9ID0gcmVuZGVySmF2YVNjcmlwdE9wdGlvbnMoe1xuICAgICAgYXJnczogYm9vdHN0cmFwLmFyZ3MsXG4gICAgICB0eXBlOiBib290c3RyYXAudHlwZSBhcyBJbnZlbnRvcnlQcm9qZWN0VHlwZSxcbiAgICAgIGNvbW1lbnRzOiBib290c3RyYXAuY29tbWVudHMsXG4gICAgfSk7XG5cbiAgICBpbXBvcnRzLmFkZChtb2R1bGVOYW1lLCBpbXBvcnROYW1lKTtcblxuICAgIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICBsaW5lcy5wdXNoKC4uLmltcG9ydHMuYXNFc21JbXBvcnRzKCkpO1xuICAgIGxpbmVzLnB1c2goKTtcbiAgICBsaW5lcy5wdXNoKGBjb25zdCBwcm9qZWN0ID0gbmV3ICR7Y2xhc3NOYW1lfSgke3JlbmRlcmVkT3B0aW9uc30pO2ApO1xuICAgIGxpbmVzLnB1c2goKTtcbiAgICBsaW5lcy5wdXNoKFwicHJvamVjdC5zeW50aCgpO1wiKTtcblxuICAgIHdyaXRlRmlsZVN5bmMocmNmaWxlLCBsaW5lcy5qb2luKFwiXFxuXCIpKTtcbiAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oXG4gICAgICBgUHJvamVjdCBkZWZpbml0aW9uIGZpbGUgd2FzIGNyZWF0ZWQgYXQgJHtyY2ZpbGV9YCxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMtdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9wcm9qZW5yYy10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkJBQStDO0FBQy9DLCtCQUErQjtBQUUvQiw4Q0FBaUQ7QUFDakQsMkRBQXVEO0FBQ3ZELGlFQUF1RTtBQUV2RSwwQ0FBMkM7QUFrQzNDLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDO0FBRXhDOzs7OztHQUtHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsdUJBQVk7O0lBQzFDOztPQUVHO0lBQ2EsUUFBUSxDQUFtQjtJQUMzQixRQUFRLENBQVM7SUFFaEIsY0FBYyxDQUFTO0lBQ3ZCLE9BQU8sQ0FBbUI7SUFFM0MsWUFBWSxPQUFnQixFQUFFLFVBQTZCLEVBQUU7UUFDM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLGdCQUFnQixDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxVQUFVLENBQUM7UUFFMUQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFOUMsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw2QkFBZ0IsQ0FBQyxPQUFPLEVBQUU7WUFDNUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxzQkFBc0I7WUFDNUQsZUFBZSxFQUFFLEVBQUU7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUQsdUJBQXVCO1FBQ3ZCLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcs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QUMsQ0FBQztRQUVwQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixTQUFTLElBQUksZUFBZSxJQUFJLENBQUMsQ0FBQztRQUNwRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFL0IsSUFBQSxrQkFBYSxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QiwwQ0FBMEMsTUFBTSxFQUFFLENBQ25ELENBQUM7SUFDSixDQUFDOztBQTNHSCxnQ0E0R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB0eXBlIHsgSW52ZW50b3J5UHJvamVjdFR5cGUgfSBmcm9tIFwiLi4vaW52ZW50b3J5XCI7XG5pbXBvcnQgeyBUeXBlc2NyaXB0Q29uZmlnIH0gZnJvbSBcIi4uL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi90eXBlc2NyaXB0LXJ1bm5lclwiO1xuaW1wb3J0IHsgcmVuZGVySmF2YVNjcmlwdE9wdGlvbnMgfSBmcm9tIFwiLi4vamF2YXNjcmlwdC9yZW5kZXItb3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IFByb2plbnJjRmlsZSB9IGZyb20gXCIuLi9wcm9qZW5yY1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plbnJjVHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9qZW5yYyBmaWxlLlxuICAgKiBAZGVmYXVsdCBcIi5wcm9qZW5yYy50c1wiXG4gICAqL1xuICByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkaXJlY3RvcnkgdHJlZSB0aGF0IG1heSBjb250YWluICoudHMgZmlsZXMgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tXG4gICAqIHlvdXIgcHJvamVucmMgdHlwZXNjcmlwdCBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInByb2plbnJjXCJcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNvZGVEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0c2NvbmZpZyBmaWxlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBydW5uZXJcbiAgICogd2hlbiBjb21waWxpbmcgcHJvamVuIHNvdXJjZSBmaWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJ0c2NvbmZpZy5wcm9qZW4uanNvblwiXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcnVubmVyYCB0byBjb25maWd1cmUgdGhlIHRzY29uZmlnRmlsZU5hbWUgZGlyZWN0bHkuXG4gICAqL1xuICByZWFkb25seSB0c2NvbmZpZ0ZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcnVubmVyIHRvIHVzZSBmb3IgZXhlY3V0aW5nIFR5cGVTY3JpcHQgZmlsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFR5cGVTY3JpcHRSdW5uZXIudHNOb2RlKClcbiAgICovXG4gIHJlYWRvbmx5IHJ1bm5lcj86IFR5cGVTY3JpcHRSdW5uZXI7XG59XG5cbmNvbnN0IERFRkFVTFRfRklMRU5BTUUgPSBcIi5wcm9qZW5yYy50c1wiO1xuXG4vKipcbiAqIEEgcHJvamVucmMgZmlsZSB3cml0dGVuIGluIFR5cGVTY3JpcHRcbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBjYW4gYmUgaW5zdGFudGlhdGVkIGluIGFueSB0eXBlIG9mIHByb2plY3RcbiAqIGFuZCBoYXMgbm8gZXhwZWN0YXRpb25zIGFyb3VuZCB0aGUgcHJvamVjdCdzIG1haW4gbGFuZ3VhZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9qZW5yY1RzIGV4dGVuZHMgUHJvamVucmNGaWxlIHtcbiAgLyoqXG4gICAqIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHVzZWQgdG8gY29tcGlsZSBwcm9qZW4gc291cmNlIGZpbGVzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHNjb25maWc6IFR5cGVzY3JpcHRDb25maWc7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plbkNvZGVEaXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfcnVubmVyOiBUeXBlU2NyaXB0UnVubmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFByb2plbnJjVHNPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZmlsZVBhdGggPSBvcHRpb25zLmZpbGVuYW1lID8/IERFRkFVTFRfRklMRU5BTUU7XG4gICAgdGhpcy5fcHJvamVuQ29kZURpciA9IG9wdGlvbnMucHJvamVuQ29kZURpciA/PyBcInByb2plbnJjXCI7XG5cbiAgICBwcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke3RoaXMuZmlsZVBhdGh9YCk7XG5cbiAgICAvLyBDcmVhdGUgYSBkZWRpY2F0ZWQgdHNjb25maWcgZm9yIHByb2plbiBzb3VyY2UgZmlsZXNcbiAgICB0aGlzLnRzY29uZmlnID0gbmV3IFR5cGVzY3JpcHRDb25maWcocHJvamVjdCwge1xuICAgICAgZmlsZU5hbWU6IG9wdGlvbnMudHNjb25maWdGaWxlTmFtZSA/PyBcInRzY29uZmlnLnByb2plbi5qc29uXCIsXG4gICAgICBjb21waWxlck9wdGlvbnM6IHt9LFxuICAgIH0pO1xuXG4gICAgLy8gQSBydW5uZXIgaXMgYSBmdXR1cmUgY29tcG9uZW50LCBtYWtlIHN1cmUgaXQgaXMgYXR0YWNoZWRcbiAgICB0aGlzLl9ydW5uZXIgPSB0aGlzLmdldFJ1bm5lcihvcHRpb25zKS50cnlBdHRhY2gocHJvamVjdCk7XG5cbiAgICAvLyBCdWlsZCB0aGUgcnVuIGNvbmZpZ1xuICAgIGNvbnN0IHsgZGVwZW5kZW5jaWVzLCBzdGVwcyB9ID0gdGhpcy5fcnVubmVyLmNvbmZpZ0Zvcih0aGlzLmZpbGVQYXRoKTtcblxuICAgIC8vIElmIHRoZSBydW5uZXIgaGFzIGRlcGVuZGVuY2llcywgcnVuIGVhY2ggc3RlcCB0aHJvdWdoIGFuIGBucHhgIHNoZWxsXG4gICAgLy8gKGBucHggLXkgLXAgPGRlcHM+IC1jIFwiPGNvbW1hbmQ+XCJgKSB0byBtYWtlIHRoZW0gYXZhaWxhYmxlIHdpdGhvdXQgaW5zdGFsbC5cbiAgICBpZiAoZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNoZWxsID0gW1xuICAgICAgICBcIm5weFwiLFxuICAgICAgICBcIi15XCIsXG4gICAgICAgIC4uLmRlcGVuZGVuY2llcy5mbGF0TWFwKChkKSA9PiBbXG4gICAgICAgICAgXCItcFwiLFxuICAgICAgICAgIGQudmVyc2lvbiA/IGAke2QubmFtZX1AJHtkLnZlcnNpb259YCA6IGQubmFtZSxcbiAgICAgICAgXSksXG4gICAgICAgIFwiLWNcIixcbiAgICAgIF07XG4gICAgICBmb3IgKGNvbnN0IHN0ZXAgb2Ygc3RlcHMpIHtcbiAgICAgICAgcHJvamVjdC5kZWZhdWx0VGFzaz8uYWRkU3RlcHMoeyAuLi5zdGVwLCBzaGVsbCB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcHJvamVjdC5kZWZhdWx0VGFzaz8uYWRkU3RlcHMoLi4uc3RlcHMpO1xuICAgIH1cblxuICAgIHRoaXMuZ2VuZXJhdGVQcm9qZW5yYygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSdW5uZXIob3B0aW9uczogUHJvamVucmNUc09wdGlvbnMpOiBUeXBlU2NyaXB0UnVubmVyIHtcbiAgICAvLyB1c2UgYSBwcm92aWRlIHJ1bm5lciBhcyBpc1xuICAgIGlmIChvcHRpb25zLnJ1bm5lcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnMucnVubmVyO1xuICAgIH1cblxuICAgIC8vIHVzZSBhIGRlZmF1bHQgcnVubmVyIHdpdGggdGhlIGNvcnJlY3QgdHNjb25maWcgYW5kIHR5cGUtY2hlY2tpbmcgZW5hYmxlZFxuICAgIHJldHVybiBUeXBlU2NyaXB0UnVubmVyLnRzTm9kZSh7XG4gICAgICB0c2NvbmZpZzogdGhpcy50c2NvbmZpZy5maWxlTmFtZSxcbiAgICAgIHR5cGVDaGVjazogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcblxuICAgIHRoaXMudHNjb25maWcuYWRkSW5jbHVkZSh0aGlzLmZpbGVQYXRoKTtcbiAgICB0aGlzLnRzY29uZmlnLmFkZEluY2x1ZGUoYCR7dGhpcy5fcHJvamVuQ29kZURpcn0vKiovKi50c2ApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVByb2plbnJjKCkge1xuICAgIGNvbnN0IHJjZmlsZSA9IHJlc29sdmUodGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5maWxlUGF0aCk7XG4gICAgaWYgKGV4aXN0c1N5bmMocmNmaWxlKSkge1xuICAgICAgcmV0dXJuOyAvLyBhbHJlYWR5IGV4aXN0c1xuICAgIH1cblxuICAgIGNvbnN0IGJvb3RzdHJhcCA9IHRoaXMucHJvamVjdC5pbml0UHJvamVjdDtcbiAgICBpZiAoIWJvb3RzdHJhcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnRzID0gYm9vdHN0cmFwLmZxbi5zcGxpdChcIi5cIik7XG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IHBhcnRzWzBdO1xuICAgIGNvbnN0IGltcG9ydE5hbWUgPSBwYXJ0c1sxXTtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBwYXJ0cy5zbGljZSgxKS5qb2luKFwiLlwiKTtcblxuICAgIGNvbnN0IHsgcmVuZGVyZWRPcHRpb25zLCBpbXBvcnRzIH0gPSByZW5kZXJKYXZhU2NyaXB0T3B0aW9ucyh7XG4gICAgICBhcmdzOiBib290c3RyYXAuYXJncyxcbiAgICAgIHR5cGU6IGJvb3RzdHJhcC50eXBlIGFzIEludmVudG9yeVByb2plY3RUeXBlLFxuICAgICAgY29tbWVudHM6IGJvb3RzdHJhcC5jb21tZW50cyxcbiAgICB9KTtcblxuICAgIGltcG9ydHMuYWRkKG1vZHVsZU5hbWUsIGltcG9ydE5hbWUpO1xuXG4gICAgY29uc3QgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGxpbmVzLnB1c2goLi4uaW1wb3J0cy5hc0VzbUltcG9ydHMoKSk7XG4gICAgbGluZXMucHVzaCgpO1xuICAgIGxpbmVzLnB1c2goYGNvbnN0IHByb2plY3QgPSBuZXcgJHtjbGFzc05hbWV9KCR7cmVuZGVyZWRPcHRpb25zfSk7YCk7XG4gICAgbGluZXMucHVzaCgpO1xuICAgIGxpbmVzLnB1c2goXCJwcm9qZWN0LnN5bnRoKCk7XCIpO1xuXG4gICAgd3JpdGVGaWxlU3luYyhyY2ZpbGUsIGxpbmVzLmpvaW4oXCJcXG5cIikpO1xuICAgIHRoaXMucHJvamVjdC5sb2dnZXIuaW5mbyhcbiAgICAgIGBQcm9qZWN0IGRlZmluaXRpb24gZmlsZSB3YXMgY3JlYXRlZCBhdCAke3JjZmlsZX1gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TypescriptConfig } from "../javascript";
|
|
2
|
+
import type { TypeScriptProject } from "./typescript";
|
|
2
3
|
import { ProjenrcFile } from "../projenrc";
|
|
3
|
-
import
|
|
4
|
+
import { TypeScriptRunner } from "./typescript-runner";
|
|
4
5
|
export interface ProjenrcOptions {
|
|
5
6
|
/**
|
|
6
7
|
* The name of the projenrc file.
|
|
@@ -18,20 +19,30 @@ export interface ProjenrcOptions {
|
|
|
18
19
|
* Whether to use `SWC` for ts-node.
|
|
19
20
|
*
|
|
20
21
|
* @default false
|
|
22
|
+
* @deprecated Use `runner: TypeScriptRunner.tsNode({ swc: true })` instead.
|
|
21
23
|
*/
|
|
22
24
|
readonly swc?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The runner to use for executing TypeScript files.
|
|
27
|
+
*
|
|
28
|
+
* @default - the project's runner
|
|
29
|
+
*/
|
|
30
|
+
readonly runner?: TypeScriptRunner;
|
|
23
31
|
}
|
|
24
32
|
/**
|
|
25
|
-
*
|
|
33
|
+
* A projenrc file written in TypeScript
|
|
34
|
+
*
|
|
35
|
+
* This component is used within TypeScriptProject.
|
|
26
36
|
*/
|
|
27
37
|
export declare class Projenrc extends ProjenrcFile {
|
|
28
38
|
readonly filePath: string;
|
|
29
39
|
readonly tsconfig: TypescriptConfig;
|
|
30
40
|
private readonly _projenCodeDir;
|
|
31
41
|
private readonly _tsProject;
|
|
32
|
-
private readonly
|
|
42
|
+
private readonly _runner;
|
|
33
43
|
constructor(project: TypeScriptProject, options?: ProjenrcOptions);
|
|
34
44
|
private addDefaultTask;
|
|
45
|
+
private getRunner;
|
|
35
46
|
preSynthesize(): void;
|
|
36
47
|
private generateProjenrc;
|
|
37
48
|
}
|
|
@@ -7,23 +7,25 @@ const path_1 = require("path");
|
|
|
7
7
|
const javascript_1 = require("../javascript");
|
|
8
8
|
const render_options_1 = require("../javascript/render-options");
|
|
9
9
|
const projenrc_1 = require("../projenrc");
|
|
10
|
+
const typescript_runner_1 = require("./typescript-runner");
|
|
10
11
|
const DEFAULT_FILENAME = ".projenrc.ts";
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
+
* A projenrc file written in TypeScript
|
|
14
|
+
*
|
|
15
|
+
* This component is used within TypeScriptProject.
|
|
13
16
|
*/
|
|
14
17
|
class Projenrc extends projenrc_1.ProjenrcFile {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.Projenrc", version: "0.101.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.Projenrc", version: "0.101.4" };
|
|
16
19
|
filePath;
|
|
17
20
|
tsconfig;
|
|
18
21
|
_projenCodeDir;
|
|
19
22
|
_tsProject;
|
|
20
|
-
|
|
23
|
+
_runner;
|
|
21
24
|
constructor(project, options = {}) {
|
|
22
25
|
super(project);
|
|
23
26
|
this._tsProject = project;
|
|
24
27
|
this.filePath = options.filename ?? DEFAULT_FILENAME;
|
|
25
28
|
this._projenCodeDir = options.projenCodeDir ?? "projenrc";
|
|
26
|
-
this._swc = options.swc ?? false;
|
|
27
29
|
// Give the projenrc source tree its own `tsconfig.json` so the eslint
|
|
28
30
|
// project service (and editors) resolve it as the nearest config for those
|
|
29
31
|
// files. This avoids listing the whole tree under `allowDefaultProject`,
|
|
@@ -32,30 +34,46 @@ class Projenrc extends projenrc_1.ProjenrcFile {
|
|
|
32
34
|
const baseTsconfig = project.tsconfig ?? project.tsconfigDev;
|
|
33
35
|
this.tsconfig = new javascript_1.TypescriptConfig(project, {
|
|
34
36
|
fileName: `${this._projenCodeDir}/tsconfig.json`,
|
|
35
|
-
include: ["**/*.ts"],
|
|
37
|
+
include: ["**/*.ts", path_1.posix.relative(this._projenCodeDir, this.filePath)],
|
|
36
38
|
extends: javascript_1.TypescriptConfigExtends.fromTypescriptConfigs([baseTsconfig]),
|
|
37
39
|
compilerOptions: {
|
|
38
40
|
noEmit: true,
|
|
39
41
|
rootDir: path_1.posix.relative(this._projenCodeDir, ".") || ".",
|
|
40
42
|
},
|
|
41
43
|
});
|
|
44
|
+
// A runner is a future component, make sure it is attached
|
|
45
|
+
this._runner = this.getRunner(options).tryAttach(this._tsProject);
|
|
42
46
|
this.addDefaultTask();
|
|
43
47
|
this.generateProjenrc();
|
|
44
48
|
}
|
|
45
49
|
addDefaultTask() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
// Render the run config for the entrypoint
|
|
51
|
+
const { dependencies, steps } = this._runner.configFor(this.filePath);
|
|
52
|
+
// Request runner dependencies
|
|
53
|
+
for (const dep of dependencies) {
|
|
54
|
+
this._tsProject.deps.requestDependency(dep);
|
|
49
55
|
}
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
// Add runner steps
|
|
57
|
+
this._tsProject.defaultTask?.addSteps(...steps);
|
|
58
|
+
}
|
|
59
|
+
getRunner(options) {
|
|
60
|
+
// use a provide runner as is
|
|
61
|
+
if (options.runner) {
|
|
62
|
+
return options.runner;
|
|
63
|
+
}
|
|
64
|
+
// swc implies ts-node runner for backwards compatibility
|
|
65
|
+
if (options.swc) {
|
|
66
|
+
return typescript_runner_1.TypeScriptRunner.tsNode({
|
|
67
|
+
swc: true,
|
|
68
|
+
typeCheck: true,
|
|
69
|
+
tsconfig: this.tsconfig.fileName,
|
|
70
|
+
}).tryAttach(this._tsProject);
|
|
71
|
+
}
|
|
72
|
+
// we use the project's default runner with the correct tsconfig and type-checking enabled
|
|
73
|
+
return this._tsProject.runner.copy({
|
|
74
|
+
tsconfig: this.tsconfig.fileName,
|
|
75
|
+
typeCheck: true,
|
|
76
|
+
});
|
|
59
77
|
}
|
|
60
78
|
preSynthesize() {
|
|
61
79
|
super.preSynthesize();
|
|
@@ -118,4 +136,4 @@ class Projenrc extends projenrc_1.ProjenrcFile {
|
|
|
118
136
|
}
|
|
119
137
|
}
|
|
120
138
|
exports.Projenrc = Projenrc;
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9wcm9qZW5yYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkJBQTBEO0FBQzFELCtCQUErQztBQUUvQyw4Q0FBMEU7QUFDMUUsaUVBQXVFO0FBQ3ZFLDBDQUEyQztBQTBCM0MsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSx1QkFBWTs7SUFDeEIsUUFBUSxDQUFTO0lBQ2pCLFFBQVEsQ0FBbUI7SUFFMUIsY0FBYyxDQUFTO0lBQ3ZCLFVBQVUsQ0FBb0I7SUFDOUIsSUFBSSxDQUFVO0lBRS9CLFlBQVksT0FBMEIsRUFBRSxVQUEyQixFQUFFO1FBQ25FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO1FBRTFCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQztRQUNyRCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksVUFBVSxDQUFDO1FBQzFELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUM7UUFFakMsc0VBQXNFO1FBQ3RFLDJFQUEyRTtRQUMzRSx5RUFBeUU7UUFDekUscUVBQXFFO1FBQ3JFLDZEQUE2RDtRQUM3RCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDZCQUFnQixDQUFDLE9BQU8sRUFBRTtZQUM1QyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxnQkFBZ0I7WUFDaEQsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3BCLE9BQU8sRUFBRSxvQ0FBdUIsQ0FBQyxxQkFBcUIs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LFFBQVE7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsU0FBUyxJQUFJLGVBQWUsSUFBSSxDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRS9CLElBQUEsY0FBUyxFQUFDLElBQUEsY0FBTyxFQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBQSxrQkFBYSxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QiwwQ0FBMEMsTUFBTSxFQUFFLENBQ25ELENBQUM7SUFDSixDQUFDOztBQXRJSCw0QkF1SUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCB3cml0ZUZpbGVTeW5jLCBta2RpclN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGRpcm5hbWUsIHBvc2l4LCByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB0eXBlIHsgSW52ZW50b3J5UHJvamVjdFR5cGUgfSBmcm9tIFwiLi4vaW52ZW50b3J5XCI7XG5pbXBvcnQgeyBUeXBlc2NyaXB0Q29uZmlnLCBUeXBlc2NyaXB0Q29uZmlnRXh0ZW5kcyB9IGZyb20gXCIuLi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyByZW5kZXJKYXZhU2NyaXB0T3B0aW9ucyB9IGZyb20gXCIuLi9qYXZhc2NyaXB0L3JlbmRlci1vcHRpb25zXCI7XG5pbXBvcnQgeyBQcm9qZW5yY0ZpbGUgfSBmcm9tIFwiLi4vcHJvamVucmNcIjtcbmltcG9ydCB0eXBlIHsgVHlwZVNjcmlwdFByb2plY3QgfSBmcm9tIFwiLi4vdHlwZXNjcmlwdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plbnJjT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvamVucmMgZmlsZS5cbiAgICogQGRlZmF1bHQgXCIucHJvamVucmMudHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZW5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGlyZWN0b3J5IHRyZWUgdGhhdCBtYXkgY29udGFpbiAqLnRzIGZpbGVzIHRoYXQgY2FuIGJlIHJlZmVyZW5jZWQgZnJvbVxuICAgKiB5b3VyIHByb2plbnJjIHR5cGVzY3JpcHQgZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJwcm9qZW5yY1wiXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5Db2RlRGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBgU1dDYCBmb3IgdHMtbm9kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN3Yz86IGJvb2xlYW47XG59XG5cbmNvbnN0IERFRkFVTFRfRklMRU5BTUUgPSBcIi5wcm9qZW5yYy50c1wiO1xuXG4vKipcbiAqIFNldHMgdXAgYSB0eXBlc2NyaXB0IHByb2plY3QgdG8gdXNlIFR5cGVTY3JpcHQgZm9yIHByb2plbnJjLlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVucmMgZXh0ZW5kcyBQcm9qZW5yY0ZpbGUge1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZVBhdGg6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRzY29uZmlnOiBUeXBlc2NyaXB0Q29uZmlnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plbkNvZGVEaXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfdHNQcm9qZWN0OiBUeXBlU2NyaXB0UHJvamVjdDtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3djOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0LCBvcHRpb25zOiBQcm9qZW5yY09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIHRoaXMuX3RzUHJvamVjdCA9IHByb2plY3Q7XG5cbiAgICB0aGlzLmZpbGVQYXRoID0gb3B0aW9ucy5maWxlbmFtZSA/PyBERUZBVUxUX0ZJTEVOQU1FO1xuICAgIHRoaXMuX3Byb2plbkNvZGVEaXIgPSBvcHRpb25zLnByb2plbkNvZGVEaXIgPz8gXCJwcm9qZW5yY1wiO1xuICAgIHRoaXMuX3N3YyA9IG9wdGlvbnMuc3djID8/IGZhbHNlO1xuXG4gICAgLy8gR2l2ZSB0aGUgcHJvamVucmMgc291cmNlIHRyZWUgaXRzIG93biBgdHNjb25maWcuanNvbmAgc28gdGhlIGVzbGludFxuICAgIC8vIHByb2plY3Qgc2VydmljZSAoYW5kIGVkaXRvcnMpIHJlc29sdmUgaXQgYXMgdGhlIG5lYXJlc3QgY29uZmlnIGZvciB0aG9zZVxuICAgIC8vIGZpbGVzLiBUaGlzIGF2b2lkcyBsaXN0aW5nIHRoZSB3aG9sZSB0cmVlIHVuZGVyIGBhbGxvd0RlZmF1bHRQcm9qZWN0YCxcbiAgICAvLyB3aGljaCBvbmx5IHBlcm1pdHMgYSBzbWFsbCBudW1iZXIgb2YgbG9vc2UgZmlsZXMgKGFuZCByZWplY3RzIGAqKmBcbiAgICAvLyBnbG9icykuIEl0IGV4dGVuZHMgdGhlIHJvb3QgY29uZmlnIGFuZCBpcyB0eXBlLWNoZWNrIG9ubHkuXG4gICAgY29uc3QgYmFzZVRzY29uZmlnID0gcHJvamVjdC50c2NvbmZpZyA/PyBwcm9qZWN0LnRzY29uZmlnRGV2O1xuICAgIHRoaXMudHNjb25maWcgPSBuZXcgVHlwZXNjcmlwdENvbmZpZyhwcm9qZWN0LCB7XG4gICAgICBmaWxlTmFtZTogYCR7dGhpcy5fcHJvamVuQ29kZURpcn0vdHNjb25maWcuanNvbmAsXG4gICAgICBpbmNsdWRlOiBbXCIqKi8qLnRzXCJdLFxuICAgICAgZXh0ZW5kczogVHlwZXNjcmlwdENvbmZpZ0V4dGVuZHMuZnJvbVR5cGVzY3JpcHRDb25maWdzKFtiYXNlVHNjb25maWddKSxcbiAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICBub0VtaXQ6IHRydWUsXG4gICAgICAgIHJvb3REaXI6IHBvc2l4LnJlbGF0aXZlKHRoaXMuX3Byb2plbkNvZGVEaXIsIFwiLlwiKSB8fCBcIi5cIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZERlZmF1bHRUYXNrKCk7XG5cbiAgICB0aGlzLmdlbmVyYXRlUHJvamVucmMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRGVmYXVsdFRhc2soKSB7XG4gICAgY29uc3QgZGVwcyA9IFtcInRzLW5vZGVcIl07XG4gICAgaWYgKHRoaXMuX3N3Yykge1xuICAgICAgZGVwcy5wdXNoKFwiQHN3Yy9jb3JlXCIpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgaXMgdGhlIHRhc2sgcHJvamVuIGV4ZWN1dGVzIHdoZW4gcnVubmluZyBgcHJvamVuYCB3aXRob3V0IGFcbiAgICAvLyBzcGVjaWZpYyB0YXNrIChpZiB0aGlzIHRhc2sgaXMgbm90IGRlZmluZWQsIHByb2plbiBmYWxscyBiYWNrIHRvXG4gICAgLy8gcnVubmluZyBcIm5vZGUgLnByb2plbnJjLmpzXCIpLlxuICAgIHRoaXMuX3RzUHJvamVjdC5hZGREZXZEZXBzKC4uLmRlcHMpO1xuXG4gICAgY29uc3QgdHNOb2RlID0gdGhpcy5fc3djID8gXCJ0cy1ub2RlIC0tc3djXCIgOiBcInRzLW5vZGVcIjtcblxuICAgIC8vIHRzLW5vZGUgY29tcGlsZXMgdGhlIGVudHJ5cG9pbnQgYW5kIGl0cyBpbXBvcnRzIG9uIGRlbWFuZCB1c2luZyB0aGUgZGV2XG4gICAgLy8gdHNjb25maWcncyBjb21waWxlciBvcHRpb25zLCBzbyBwcm9qZW4gc291cmNlIGZpbGVzIG1heSByZXNpZGUgYW55d2hlcmVcbiAgICAvLyBpbiB0aGUgcHJvamVjdCB0cmVlIHJlZ2FyZGxlc3Mgb2YgdGhlIGNvbmZpZydzIGBpbmNsdWRlYC5cbiAgICB0aGlzLl90c1Byb2plY3QuZGVmYXVsdFRhc2s/LmV4ZWMoXG4gICAgICBgJHt0c05vZGV9IC0tcHJvamVjdCAke3RoaXMuX3RzUHJvamVjdC50c2NvbmZpZ0Rldi5maWxlTmFtZX0gJHt0aGlzLmZpbGVQYXRofWAsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcblxuICAgIHRoaXMuX3RzUHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGAvJHt0aGlzLmZpbGVQYXRofWApO1xuICAgIHRoaXMuX3RzUHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGAvJHt0aGlzLl9wcm9qZW5Db2RlRGlyfWApO1xuXG4gICAgLy8gVGhlIHByb2plbnJjIGVudHJ5cG9pbnQgbGl2ZXMgYXQgdGhlIHJlcG9zaXRvcnkgcm9vdCBhbmQgaXMgbm90IGNvdmVyZWRcbiAgICAvLyBieSBhbnkgYHRzY29uZmlnLmpzb25gLiBSZWdpc3RlciBvbmx5IHRoaXMgc2luZ2xlIGZpbGUgd2l0aCB0aGUgZXNsaW50XG4gICAgLy8gcHJvamVjdCBzZXJ2aWNlJ3MgZGVmYXVsdCBwcm9qZWN0ICh0aGUgcHJvamVucmMgc291cmNlIHRyZWUgaXMgY292ZXJlZFxuICAgIC8vIGJ5IGl0cyBvd24gdHNjb25maWcpLiBgYWxsb3dEZWZhdWx0UHJvamVjdGAgZG9lcyBub3QgcGVybWl0IGAqKmAgZ2xvYnMuXG4gICAgdGhpcy5fdHNQcm9qZWN0LmVzbGludD8uYWxsb3dEZWZhdWx0UHJvamVjdEZpbGVzKHRoaXMuZmlsZVBhdGgpO1xuXG4gICAgdGhpcy5fdHNQcm9qZWN0LmVzbGludD8uYWRkTGludFBhdHRlcm4odGhpcy5fcHJvamVuQ29kZURpcik7XG4gICAgdGhpcy5fdHNQcm9qZWN0LmVzbGludD8uYWRkTGludFBhdHRlcm4odGhpcy5maWxlUGF0aCk7XG4gICAgdGhpcy5fdHNQcm9qZWN0LmVzbGludD8uYWxsb3dEZXZEZXBzKHRoaXMuZmlsZVBhdGgpO1xuICAgIHRoaXMuX3RzUHJvamVjdC5lc2xpbnQ/LmFsbG93RGV2RGVwcyhgJHt0aGlzLl9wcm9qZW5Db2RlRGlyfS8qKi8qLnRzYCk7XG4gICAgdGhpcy5fdHNQcm9qZWN0LmVzbGludD8uYWRkSWdub3JlUGF0dGVybihgISR7dGhpcy5maWxlUGF0aH1gKTtcbiAgICB0aGlzLl90c1Byb2plY3QuZXNsaW50Py5hZGRJZ25vcmVQYXR0ZXJuKGAhJHt0aGlzLl9wcm9qZW5Db2RlRGlyfS8qKi8qLnRzYCk7XG5cbiAgICB0aGlzLl90c1Byb2plY3QuZXNsaW50Py5hZGRPdmVycmlkZSh7XG4gICAgICBmaWxlczogW3RoaXMuZmlsZVBhdGhdLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXCI6IFwib2ZmXCIsXG4gICAgICAgIFwiaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXCI6IFwib2ZmXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5fdHNQcm9qZWN0LmJpb21lPy5hZGRGaWxlUGF0dGVybih0aGlzLmZpbGVQYXRoKTtcbiAgICB0aGlzLl90c1Byb2plY3QuYmlvbWU/LmFkZEZpbGVQYXR0ZXJuKGAke3RoaXMuX3Byb2plbkNvZGVEaXJ9LyoqYCk7XG5cbiAgICB0aGlzLl90c1Byb2plY3QuamVzdD8uZGlzY292ZXJUZXN0TWF0Y2hQYXR0ZXJuc0ZvckRpcnMoXG4gICAgICBbdGhpcy5fcHJvamVuQ29kZURpcl0sXG4gICAgICB7XG4gICAgICAgIGZpbGVFeHRlbnNpb25QYXR0ZXJuOiB0aGlzLl90c1Byb2plY3QudHNjb25maWc/LmNvbXBpbGVyT3B0aW9ucz8uYWxsb3dKc1xuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiBcInRzPyh4KVwiLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVByb2plbnJjKCkge1xuICAgIGNvbnN0IHJjZmlsZSA9IHJlc29sdmUodGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5maWxlUGF0aCk7XG4gICAgaWYgKGV4aXN0c1N5bmMocmNmaWxlKSkge1xuICAgICAgcmV0dXJuOyAvLyBhbHJlYWR5IGV4aXN0c1xuICAgIH1cblxuICAgIGNvbnN0IGJvb3RzdHJhcCA9IHRoaXMucHJvamVjdC5pbml0UHJvamVjdDtcbiAgICBpZiAoIWJvb3RzdHJhcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnRzID0gYm9vdHN0cmFwLmZxbi5zcGxpdChcIi5cIik7XG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IHBhcnRzWzBdO1xuICAgIGNvbnN0IGltcG9ydE5hbWUgPSBwYXJ0c1sxXTtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBwYXJ0cy5zbGljZSgxKS5qb2luKFwiLlwiKTtcblxuICAgIGNvbnN0IHsgcmVuZGVyZWRPcHRpb25zLCBpbXBvcnRzIH0gPSByZW5kZXJKYXZhU2NyaXB0T3B0aW9ucyh7XG4gICAgICBhcmdzOiBib290c3RyYXAuYXJncyxcbiAgICAgIHR5cGU6IGJvb3RzdHJhcC50eXBlIGFzIEludmVudG9yeVByb2plY3RUeXBlLFxuICAgICAgY29tbWVudHM6IGJvb3RzdHJhcC5jb21tZW50cyxcbiAgICB9KTtcblxuICAgIGltcG9ydHMuYWRkKG1vZHVsZU5hbWUsIGltcG9ydE5hbWUpO1xuXG4gICAgY29uc3QgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGxpbmVzLnB1c2goLi4uaW1wb3J0cy5hc0VzbUltcG9ydHMoKSk7XG4gICAgbGluZXMucHVzaCgpO1xuICAgIGxpbmVzLnB1c2goYGNvbnN0IHByb2plY3QgPSBuZXcgJHtjbGFzc05hbWV9KCR7cmVuZGVyZWRPcHRpb25zfSk7YCk7XG4gICAgbGluZXMucHVzaCgpO1xuICAgIGxpbmVzLnB1c2goXCJwcm9qZWN0LnN5bnRoKCk7XCIpO1xuXG4gICAgbWtkaXJTeW5jKGRpcm5hbWUocmNmaWxlKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgd3JpdGVGaWxlU3luYyhyY2ZpbGUsIGxpbmVzLmpvaW4oXCJcXG5cIikpO1xuICAgIHRoaXMucHJvamVjdC5sb2dnZXIuaW5mbyhcbiAgICAgIGBQcm9qZWN0IGRlZmluaXRpb24gZmlsZSB3YXMgY3JlYXRlZCBhdCAke3JjZmlsZX1gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9wcm9qZW5yYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkJBQTBEO0FBQzFELCtCQUErQztBQUUvQyw4Q0FBMEU7QUFFMUUsaUVBQXVFO0FBQ3ZFLDBDQUEyQztBQUMzQywyREFBdUQ7QUFpQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDO0FBRXhDOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSx1QkFBWTs7SUFDeEIsUUFBUSxDQUFTO0lBQ2pCLFFBQVEsQ0FBbUI7SUFFMUIsY0FBYyxDQUFTO0lBQ3ZCLFVBQVUsQ0FBb0I7SUFDOUIsT0FBTyxDQUFtQjtJQUUzQyxZQUFZLE9BQTBCLEVBQUUsVUFBMkIsRUFBRTtRQUNuRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztRQUUxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLFVBQVUsQ0FBQztRQUUxRCxzRUFBc0U7UUFDdEUsMkVBQTJFO1FBQzNFLHlFQUF5RTtRQUN6RSxxRUFBcUU7UUFDckUsNkRBQTZEO1FBQzdELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksNkJBQWdCLENBQUMsT0FBTyxFQUFFO1lBQzVDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLGdCQUFnQjtZQUNoRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RSxPQUFP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QSxrQkFBYSxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QiwwQ0FBMEMsTUFBTSxFQUFFLENBQ25ELENBQUM7SUFDSixDQUFDOztBQXRKSCw0QkF1SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCBta2RpclN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGRpcm5hbWUsIHBvc2l4LCByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB0eXBlIHsgSW52ZW50b3J5UHJvamVjdFR5cGUgfSBmcm9tIFwiLi4vaW52ZW50b3J5XCI7XG5pbXBvcnQgeyBUeXBlc2NyaXB0Q29uZmlnLCBUeXBlc2NyaXB0Q29uZmlnRXh0ZW5kcyB9IGZyb20gXCIuLi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgdHlwZSB7IFR5cGVTY3JpcHRQcm9qZWN0IH0gZnJvbSBcIi4vdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHsgcmVuZGVySmF2YVNjcmlwdE9wdGlvbnMgfSBmcm9tIFwiLi4vamF2YXNjcmlwdC9yZW5kZXItb3B0aW9uc1wiO1xuaW1wb3J0IHsgUHJvamVucmNGaWxlIH0gZnJvbSBcIi4uL3Byb2plbnJjXCI7XG5pbXBvcnQgeyBUeXBlU2NyaXB0UnVubmVyIH0gZnJvbSBcIi4vdHlwZXNjcmlwdC1ydW5uZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZW5yY09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHByb2plbnJjIGZpbGUuXG4gICAqIEBkZWZhdWx0IFwiLnByb2plbnJjLnRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRpcmVjdG9yeSB0cmVlIHRoYXQgbWF5IGNvbnRhaW4gKi50cyBmaWxlcyB0aGF0IGNhbiBiZSByZWZlcmVuY2VkIGZyb21cbiAgICogeW91ciBwcm9qZW5yYyB0eXBlc2NyaXB0IGZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwicHJvamVucmNcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVuQ29kZURpcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgYFNXQ2AgZm9yIHRzLW5vZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcnVubmVyOiBUeXBlU2NyaXB0UnVubmVyLnRzTm9kZSh7IHN3YzogdHJ1ZSB9KWAgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IHN3Yz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBydW5uZXIgdG8gdXNlIGZvciBleGVjdXRpbmcgVHlwZVNjcmlwdCBmaWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgcHJvamVjdCdzIHJ1bm5lclxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmVyPzogVHlwZVNjcmlwdFJ1bm5lcjtcbn1cblxuY29uc3QgREVGQVVMVF9GSUxFTkFNRSA9IFwiLnByb2plbnJjLnRzXCI7XG5cbi8qKlxuICogQSBwcm9qZW5yYyBmaWxlIHdyaXR0ZW4gaW4gVHlwZVNjcmlwdFxuICpcbiAqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgd2l0aGluIFR5cGVTY3JpcHRQcm9qZWN0LlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVucmMgZXh0ZW5kcyBQcm9qZW5yY0ZpbGUge1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZVBhdGg6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRzY29uZmlnOiBUeXBlc2NyaXB0Q29uZmlnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plbkNvZGVEaXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfdHNQcm9qZWN0OiBUeXBlU2NyaXB0UHJvamVjdDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcnVubmVyOiBUeXBlU2NyaXB0UnVubmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0LCBvcHRpb25zOiBQcm9qZW5yY09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIHRoaXMuX3RzUHJvamVjdCA9IHByb2plY3Q7XG5cbiAgICB0aGlzLmZpbGVQYXRoID0gb3B0aW9ucy5maWxlbmFtZSA/PyBERUZBVUxUX0ZJTEVOQU1FO1xuICAgIHRoaXMuX3Byb2plbkNvZGVEaXIgPSBvcHRpb25zLnByb2plbkNvZGVEaXIgPz8gXCJwcm9qZW5yY1wiO1xuXG4gICAgLy8gR2l2ZSB0aGUgcHJvamVucmMgc291cmNlIHRyZWUgaXRzIG93biBgdHNjb25maWcuanNvbmAgc28gdGhlIGVzbGludFxuICAgIC8vIHByb2plY3Qgc2VydmljZSAoYW5kIGVkaXRvcnMpIHJlc29sdmUgaXQgYXMgdGhlIG5lYXJlc3QgY29uZmlnIGZvciB0aG9zZVxuICAgIC8vIGZpbGVzLiBUaGlzIGF2b2lkcyBsaXN0aW5nIHRoZSB3aG9sZSB0cmVlIHVuZGVyIGBhbGxvd0RlZmF1bHRQcm9qZWN0YCxcbiAgICAvLyB3aGljaCBvbmx5IHBlcm1pdHMgYSBzbWFsbCBudW1iZXIgb2YgbG9vc2UgZmlsZXMgKGFuZCByZWplY3RzIGAqKmBcbiAgICAvLyBnbG9icykuIEl0IGV4dGVuZHMgdGhlIHJvb3QgY29uZmlnIGFuZCBpcyB0eXBlLWNoZWNrIG9ubHkuXG4gICAgY29uc3QgYmFzZVRzY29uZmlnID0gcHJvamVjdC50c2NvbmZpZyA/PyBwcm9qZWN0LnRzY29uZmlnRGV2O1xuICAgIHRoaXMudHNjb25maWcgPSBuZXcgVHlwZXNjcmlwdENvbmZpZyhwcm9qZWN0LCB7XG4gICAgICBmaWxlTmFtZTogYCR7dGhpcy5fcHJvamVuQ29kZURpcn0vdHNjb25maWcuanNvbmAsXG4gICAgICBpbmNsdWRlOiBbXCIqKi8qLnRzXCIsIHBvc2l4LnJlbGF0aXZlKHRoaXMuX3Byb2plbkNvZGVEaXIsIHRoaXMuZmlsZVBhdGgpXSxcbiAgICAgIGV4dGVuZHM6IFR5cGVzY3JpcHRDb25maWdFeHRlbmRzLmZyb21UeXBlc2NyaXB0Q29uZmlncyhbYmFzZVRzY29uZmlnXSksXG4gICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgbm9FbWl0OiB0cnVlLFxuICAgICAgICByb290RGlyOiBwb3NpeC5yZWxhdGl2ZSh0aGlzLl9wcm9qZW5Db2RlRGlyLCBcIi5cIikgfHwgXCIuXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQSBydW5uZXIgaXMgYSBmdXR1cmUgY29tcG9uZW50LCBtYWtlIHN1cmUgaXQgaXMgYXR0YWNoZWRcbiAgICB0aGlzLl9ydW5uZXIgPSB0aGlzLmdldFJ1bm5lcihvcHRpb25zKS50cnlBdHRhY2godGhpcy5fdHNQcm9qZWN0KTtcblxuICAgIHRoaXMuYWRkRGVmYXVsdFRhc2soKTtcblxuICAgIHRoaXMuZ2VuZXJhdGVQcm9qZW5yYygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGREZWZhdWx0VGFzaygpIHtcbiAgICAvLyBSZW5kZXIgdGhlIHJ1biBjb25maWcgZm9yIHRoZSBlbnRyeXBvaW50XG4gICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIHN0ZXBzIH0gPSB0aGlzLl9ydW5uZXIuY29uZmlnRm9yKHRoaXMuZmlsZVBhdGgpO1xuXG4gICAgLy8gUmVxdWVzdCBydW5uZXIgZGVwZW5kZW5jaWVzXG4gICAgZm9yIChjb25zdCBkZXAgb2YgZGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLl90c1Byb2plY3QuZGVwcy5yZXF1ZXN0RGVwZW5kZW5jeShkZXApO1xuICAgIH1cblxuICAgIC8vIEFkZCBydW5uZXIgc3RlcHNcbiAgICB0aGlzLl90c1Byb2plY3QuZGVmYXVsdFRhc2s/LmFkZFN0ZXBzKC4uLnN0ZXBzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UnVubmVyKG9wdGlvbnM6IFByb2plbnJjT3B0aW9ucyk6IFR5cGVTY3JpcHRSdW5uZXIge1xuICAgIC8vIHVzZSBhIHByb3ZpZGUgcnVubmVyIGFzIGlzXG4gICAgaWYgKG9wdGlvbnMucnVubmVyKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5ydW5uZXI7XG4gICAgfVxuXG4gICAgLy8gc3djIGltcGxpZXMgdHMtbm9kZSBydW5uZXIgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgaWYgKG9wdGlvbnMuc3djKSB7XG4gICAgICByZXR1cm4gVHlwZVNjcmlwdFJ1bm5lci50c05vZGUoe1xuICAgICAgICBzd2M6IHRydWUsXG4gICAgICAgIHR5cGVDaGVjazogdHJ1ZSxcbiAgICAgICAgdHNjb25maWc6IHRoaXMudHNjb25maWcuZmlsZU5hbWUsXG4gICAgICB9KS50cnlBdHRhY2godGhpcy5fdHNQcm9qZWN0KTtcbiAgICB9XG5cbiAgICAvLyB3ZSB1c2UgdGhlIHByb2plY3QncyBkZWZhdWx0IHJ1bm5lciB3aXRoIHRoZSBjb3JyZWN0IHRzY29uZmlnIGFuZCB0eXBlLWNoZWNraW5nIGVuYWJsZWRcbiAgICByZXR1cm4gdGhpcy5fdHNQcm9qZWN0LnJ1bm5lci5jb3B5KHtcbiAgICAgIHRzY29uZmlnOiB0aGlzLnRzY29uZmlnLmZpbGVOYW1lLFxuICAgICAgdHlwZUNoZWNrOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHByZVN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpO1xuXG4gICAgdGhpcy5fdHNQcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke3RoaXMuZmlsZVBhdGh9YCk7XG4gICAgdGhpcy5fdHNQcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke3RoaXMuX3Byb2plbkNvZGVEaXJ9YCk7XG5cbiAgICAvLyBUaGUgcHJvamVucmMgZW50cnlwb2ludCBsaXZlcyBhdCB0aGUgcmVwb3NpdG9yeSByb290IGFuZCBpcyBub3QgY292ZXJlZFxuICAgIC8vIGJ5IGFueSBgdHNjb25maWcuanNvbmAuIFJlZ2lzdGVyIG9ubHkgdGhpcyBzaW5nbGUgZmlsZSB3aXRoIHRoZSBlc2xpbnRcbiAgICAvLyBwcm9qZWN0IHNlcnZpY2UncyBkZWZhdWx0IHByb2plY3QgKHRoZSBwcm9qZW5yYyBzb3VyY2UgdHJlZSBpcyBjb3ZlcmVkXG4gICAgLy8gYnkgaXRzIG93biB0c2NvbmZpZykuIGBhbGxvd0RlZmF1bHRQcm9qZWN0YCBkb2VzIG5vdCBwZXJtaXQgYCoqYCBnbG9icy5cbiAgICB0aGlzLl90c1Byb2plY3QuZXNsaW50Py5hbGxvd0RlZmF1bHRQcm9qZWN0RmlsZXModGhpcy5maWxlUGF0aCk7XG5cbiAgICB0aGlzLl90c1Byb2plY3QuZXNsaW50Py5hZGRMaW50UGF0dGVybih0aGlzLl9wcm9qZW5Db2RlRGlyKTtcbiAgICB0aGlzLl90c1Byb2plY3QuZXNsaW50Py5hZGRMaW50UGF0dGVybih0aGlzLmZpbGVQYXRoKTtcbiAgICB0aGlzLl90c1Byb2plY3QuZXNsaW50Py5hbGxvd0RldkRlcHModGhpcy5maWxlUGF0aCk7XG4gICAgdGhpcy5fdHNQcm9qZWN0LmVzbGludD8uYWxsb3dEZXZEZXBzKGAke3RoaXMuX3Byb2plbkNvZGVEaXJ9LyoqLyoudHNgKTtcbiAgICB0aGlzLl90c1Byb2plY3QuZXNsaW50Py5hZGRJZ25vcmVQYXR0ZXJuKGAhJHt0aGlzLmZpbGVQYXRofWApO1xuICAgIHRoaXMuX3RzUHJvamVjdC5lc2xpbnQ/LmFkZElnbm9yZVBhdHRlcm4oYCEke3RoaXMuX3Byb2plbkNvZGVEaXJ9LyoqLyoudHNgKTtcblxuICAgIHRoaXMuX3RzUHJvamVjdC5lc2xpbnQ/LmFkZE92ZXJyaWRlKHtcbiAgICAgIGZpbGVzOiBbdGhpcy5maWxlUGF0aF0sXG4gICAgICBydWxlczoge1xuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcIjogXCJvZmZcIixcbiAgICAgICAgXCJpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLl90c1Byb2plY3QuYmlvbWU/LmFkZEZpbGVQYXR0ZXJuKHRoaXMuZmlsZVBhdGgpO1xuICAgIHRoaXMuX3RzUHJvamVjdC5iaW9tZT8uYWRkRmlsZVBhdHRlcm4oYCR7dGhpcy5fcHJvamVuQ29kZURpcn0vKipgKTtcblxuICAgIHRoaXMuX3RzUHJvamVjdC5qZXN0Py5kaXNjb3ZlclRlc3RNYXRjaFBhdHRlcm5zRm9yRGlycyhcbiAgICAgIFt0aGlzLl9wcm9qZW5Db2RlRGlyXSxcbiAgICAgIHtcbiAgICAgICAgZmlsZUV4dGVuc2lvblBhdHRlcm46IHRoaXMuX3RzUHJvamVjdC50c2NvbmZpZz8uY29tcGlsZXJPcHRpb25zPy5hbGxvd0pzXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IFwidHM/KHgpXCIsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlUHJvamVucmMoKSB7XG4gICAgY29uc3QgcmNmaWxlID0gcmVzb2x2ZSh0aGlzLnByb2plY3Qub3V0ZGlyLCB0aGlzLmZpbGVQYXRoKTtcbiAgICBpZiAoZXhpc3RzU3luYyhyY2ZpbGUpKSB7XG4gICAgICByZXR1cm47IC8vIGFscmVhZHkgZXhpc3RzXG4gICAgfVxuXG4gICAgY29uc3QgYm9vdHN0cmFwID0gdGhpcy5wcm9qZWN0LmluaXRQcm9qZWN0O1xuICAgIGlmICghYm9vdHN0cmFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFydHMgPSBib290c3RyYXAuZnFuLnNwbGl0KFwiLlwiKTtcbiAgICBjb25zdCBtb2R1bGVOYW1lID0gcGFydHNbMF07XG4gICAgY29uc3QgaW1wb3J0TmFtZSA9IHBhcnRzWzFdO1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHBhcnRzLnNsaWNlKDEpLmpvaW4oXCIuXCIpO1xuXG4gICAgY29uc3QgeyByZW5kZXJlZE9wdGlvbnMsIGltcG9ydHMgfSA9IHJlbmRlckphdmFTY3JpcHRPcHRpb25zKHtcbiAgICAgIGFyZ3M6IGJvb3RzdHJhcC5hcmdzLFxuICAgICAgdHlwZTogYm9vdHN0cmFwLnR5cGUgYXMgSW52ZW50b3J5UHJvamVjdFR5cGUsXG4gICAgICBjb21tZW50czogYm9vdHN0cmFwLmNvbW1lbnRzLFxuICAgIH0pO1xuXG4gICAgaW1wb3J0cy5hZGQobW9kdWxlTmFtZSwgaW1wb3J0TmFtZSk7XG5cbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgbGluZXMucHVzaCguLi5pbXBvcnRzLmFzRXNtSW1wb3J0cygpKTtcbiAgICBsaW5lcy5wdXNoKCk7XG4gICAgbGluZXMucHVzaChgY29uc3QgcHJvamVjdCA9IG5ldyAke2NsYXNzTmFtZX0oJHtyZW5kZXJlZE9wdGlvbnN9KTtgKTtcbiAgICBsaW5lcy5wdXNoKCk7XG4gICAgbGluZXMucHVzaChcInByb2plY3Quc3ludGgoKTtcIik7XG5cbiAgICBta2RpclN5bmMoZGlybmFtZShyY2ZpbGUpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB3cml0ZUZpbGVTeW5jKHJjZmlsZSwgbGluZXMuam9pbihcIlxcblwiKSk7XG4gICAgdGhpcy5wcm9qZWN0LmxvZ2dlci5pbmZvKFxuICAgICAgYFByb2plY3QgZGVmaW5pdGlvbiBmaWxlIHdhcyBjcmVhdGVkIGF0ICR7cmNmaWxlfWAsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { type RunScriptConfig, ScriptRunner } from "../script-runner";
|
|
2
|
+
/**
|
|
3
|
+
* Options for the ts-node runner.
|
|
4
|
+
*/
|
|
5
|
+
export interface TsNodeRunnerOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Whether to type-check the script during executing.
|
|
8
|
+
*
|
|
9
|
+
* @see https://github.com/TypeStrong/ts-node#typecheck
|
|
10
|
+
*
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
readonly typeCheck?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Path to the tsconfig file to use.
|
|
16
|
+
*
|
|
17
|
+
* @default - ts-node default discovery
|
|
18
|
+
*/
|
|
19
|
+
readonly tsconfig?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Whether to use SWC for transpilation.
|
|
22
|
+
*
|
|
23
|
+
* This will disable type-checking.
|
|
24
|
+
*
|
|
25
|
+
* @see https://github.com/TypeStrong/ts-node#swc
|
|
26
|
+
*
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
readonly swc?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Options for the tsx runner.
|
|
33
|
+
*/
|
|
34
|
+
export interface TsxRunnerOptions {
|
|
35
|
+
/**
|
|
36
|
+
* Whether to type-check the entrypoint before executing.
|
|
37
|
+
*
|
|
38
|
+
* Because tsx does not type check code, you may want to enable this for additional type safety.
|
|
39
|
+
* When enabled, runs `tsc --noEmit`, using the provided tsconfig.
|
|
40
|
+
*
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
readonly typeCheck?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Path to the tsconfig file to use.
|
|
46
|
+
* When specified, will use this tsconfig for running tsx and type-checking (if enabled).
|
|
47
|
+
*
|
|
48
|
+
* @default - tsx/typescript default discovery
|
|
49
|
+
*/
|
|
50
|
+
readonly tsconfig?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Options for the native Node.js TypeScript runner.
|
|
54
|
+
*/
|
|
55
|
+
export interface NodeRunnerOptions {
|
|
56
|
+
/**
|
|
57
|
+
* Whether to type-check the entrypoint before executing.
|
|
58
|
+
*
|
|
59
|
+
* Because the native Node.js TypeScript does not type check code,
|
|
60
|
+
* you may want to enable this for additional type safety.
|
|
61
|
+
* When enabled, runs `tsc --noEmit`, using the provided tsconfig.
|
|
62
|
+
*
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
65
|
+
readonly typeCheck?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Path to the tsconfig file for type-checking.
|
|
68
|
+
* When specified, will use this tsconfig for type-checking (if enabled).
|
|
69
|
+
*
|
|
70
|
+
* @default - typescript default discovery
|
|
71
|
+
*/
|
|
72
|
+
readonly tsconfig?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Whether to also enable `--experimental-transform-types`.
|
|
75
|
+
* @default false
|
|
76
|
+
*/
|
|
77
|
+
readonly experimentalTransformTypes?: boolean;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The options that can be adjusted on any {@link TypeScriptRunner}, regardless
|
|
81
|
+
* of its runtime.
|
|
82
|
+
*
|
|
83
|
+
* This is the override type for {@link TypeScriptRunner.copy}. Runtime-specific
|
|
84
|
+
* creation options (such as `swc` for ts-node) are set via the static factories
|
|
85
|
+
* and are preserved - but cannot be changed - by `copy`, so a copy can never
|
|
86
|
+
* change the runtime of a runner.
|
|
87
|
+
*/
|
|
88
|
+
export interface TypeScriptRunnerOptions {
|
|
89
|
+
/**
|
|
90
|
+
* Whether to type-check the entrypoint.
|
|
91
|
+
*/
|
|
92
|
+
readonly typeCheck?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Path to the tsconfig file to use.
|
|
95
|
+
*/
|
|
96
|
+
readonly tsconfig?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* The runner used to execute TypeScript files.
|
|
100
|
+
*
|
|
101
|
+
* A runner is a {@link FutureComponent}: create it standalone (e.g. via one of
|
|
102
|
+
* the static factories) and it is attached to a project by the component that
|
|
103
|
+
* consumes it. Use {@link TypeScriptRunner.copy} to derive a new runner with
|
|
104
|
+
* adjusted options.
|
|
105
|
+
*/
|
|
106
|
+
export declare class TypeScriptRunner extends ScriptRunner {
|
|
107
|
+
/**
|
|
108
|
+
* Use ts-node to execute TypeScript files.
|
|
109
|
+
*/
|
|
110
|
+
static tsNode(options?: TsNodeRunnerOptions): TypeScriptRunner;
|
|
111
|
+
/**
|
|
112
|
+
* Use tsx to execute TypeScript files.
|
|
113
|
+
*
|
|
114
|
+
* tsx is a fast TypeScript runtime that does not perform type-checking.
|
|
115
|
+
* You may opt-in to an explicit type-checking step before the script is run.
|
|
116
|
+
*/
|
|
117
|
+
static tsx(options?: TsxRunnerOptions): TypeScriptRunner;
|
|
118
|
+
/**
|
|
119
|
+
* Use the native Node.js TypeScript support.
|
|
120
|
+
*
|
|
121
|
+
* Requires Node.js 22.18.0 or later.
|
|
122
|
+
* The script must use ESM style imports (no directories, include file endings, etc.).
|
|
123
|
+
*
|
|
124
|
+
* Named `nodejs` (not `node`) because a runner is a construct, and `node` is
|
|
125
|
+
* reserved by `constructs.Construct` for the construct's tree node.
|
|
126
|
+
*/
|
|
127
|
+
static nodejs(options?: NodeRunnerOptions): TypeScriptRunner;
|
|
128
|
+
private readonly _kind;
|
|
129
|
+
private readonly _options;
|
|
130
|
+
private constructor();
|
|
131
|
+
/**
|
|
132
|
+
* Returns a new (detached) runner of the same kind, with `overrides` merged
|
|
133
|
+
* over the current options.
|
|
134
|
+
*
|
|
135
|
+
* Safe to call while detached.
|
|
136
|
+
*/
|
|
137
|
+
copy(overrides?: TypeScriptRunnerOptions): TypeScriptRunner;
|
|
138
|
+
/**
|
|
139
|
+
* Produce the {@link RunScriptConfig} to run the given entrypoint with this
|
|
140
|
+
* runner.
|
|
141
|
+
*/
|
|
142
|
+
configFor(entrypoint: string): RunScriptConfig;
|
|
143
|
+
private renderTsNode;
|
|
144
|
+
private renderTsx;
|
|
145
|
+
private renderNode;
|
|
146
|
+
}
|