projen 0.49.0 → 0.49.1
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 +1059 -1056
- package/.prettierignore +1 -0
- package/.prettierrc.json +3 -0
- package/API.md +1 -1
- package/changelog.md +1 -11
- package/lib/_resolve.d.ts +1 -1
- package/lib/_resolve.js +5 -7
- package/lib/awscdk/auto-discover.d.ts +4 -4
- package/lib/awscdk/auto-discover.js +2 -2
- package/lib/awscdk/awscdk-app-java.d.ts +4 -4
- package/lib/awscdk/awscdk-app-java.js +22 -18
- package/lib/awscdk/awscdk-app-ts.d.ts +5 -5
- package/lib/awscdk/awscdk-app-ts.js +33 -32
- package/lib/awscdk/awscdk-construct.d.ts +3 -3
- package/lib/awscdk/awscdk-construct.js +10 -8
- package/lib/awscdk/awscdk-deps-java.d.ts +1 -1
- package/lib/awscdk/awscdk-deps-java.js +6 -6
- package/lib/awscdk/awscdk-deps-js.d.ts +1 -1
- package/lib/awscdk/awscdk-deps-js.js +7 -7
- package/lib/awscdk/awscdk-deps.d.ts +3 -3
- package/lib/awscdk/awscdk-deps.js +17 -14
- package/lib/awscdk/cdk-config.d.ts +3 -3
- package/lib/awscdk/cdk-config.js +5 -5
- package/lib/awscdk/cdk-tasks.d.ts +3 -3
- package/lib/awscdk/cdk-tasks.js +21 -20
- package/lib/awscdk/index.d.ts +11 -11
- package/lib/awscdk/index.js +1 -1
- package/lib/awscdk/integration-test.d.ts +4 -4
- package/lib/awscdk/integration-test.js +15 -13
- package/lib/awscdk/internal.js +16 -16
- package/lib/awscdk/lambda-function.d.ts +4 -4
- package/lib/awscdk/lambda-function.js +29 -29
- package/lib/build/build-workflow.d.ts +5 -5
- package/lib/build/build-workflow.js +36 -30
- package/lib/build/index.d.ts +1 -1
- package/lib/build/index.js +1 -1
- package/lib/builtin-example.task.js +3 -3
- package/lib/cdk/construct-lib.d.ts +1 -1
- package/lib/cdk/construct-lib.js +4 -4
- package/lib/cdk/consts.d.ts +2 -2
- package/lib/cdk/consts.js +5 -5
- package/lib/cdk/index.d.ts +3 -3
- package/lib/cdk/index.js +1 -1
- package/lib/cdk/jsii-docgen.d.ts +1 -1
- package/lib/cdk/jsii-docgen.js +7 -7
- package/lib/cdk/jsii-project.d.ts +3 -3
- package/lib/cdk/jsii-project.js +39 -39
- package/lib/cdk8s/cdk8s-app-ts.d.ts +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +28 -21
- package/lib/cdk8s/cdk8s-construct.d.ts +1 -1
- package/lib/cdk8s/cdk8s-construct.js +10 -6
- package/lib/cdk8s/index.d.ts +2 -2
- package/lib/cdk8s/index.js +1 -1
- package/lib/cdktf/cdktf-construct.d.ts +1 -1
- package/lib/cdktf/cdktf-construct.js +4 -4
- package/lib/cdktf/index.d.ts +1 -1
- package/lib/cdktf/index.js +1 -1
- package/lib/cleanup.js +20 -14
- package/lib/cli/cmds/new.js +71 -42
- package/lib/cli/index.js +27 -10
- package/lib/cli/macros.js +15 -11
- package/lib/cli/synth.d.ts +1 -1
- package/lib/cli/synth.js +15 -12
- package/lib/cli/tasks.d.ts +2 -2
- package/lib/cli/tasks.js +9 -6
- package/lib/cli/util.js +4 -4
- package/lib/clobber.d.ts +2 -2
- package/lib/clobber.js +14 -10
- package/lib/common.js +7 -9
- package/lib/component.d.ts +1 -1
- package/lib/component.js +2 -2
- package/lib/dependencies.d.ts +2 -2
- package/lib/dependencies.js +14 -12
- package/lib/dev-env.d.ts +1 -1
- package/lib/dev-env.js +2 -2
- package/lib/docker-compose.d.ts +2 -2
- package/lib/docker-compose.js +23 -19
- package/lib/file.d.ts +2 -2
- package/lib/file.js +7 -5
- package/lib/gitattributes.d.ts +2 -2
- package/lib/gitattributes.js +7 -8
- package/lib/github/auto-approve.d.ts +2 -2
- package/lib/github/auto-approve.js +25 -15
- package/lib/github/auto-merge.d.ts +2 -2
- package/lib/github/auto-merge.js +14 -14
- package/lib/github/constants.d.ts +1 -1
- package/lib/github/constants.js +4 -4
- package/lib/github/dependabot.d.ts +2 -2
- package/lib/github/dependabot.js +16 -14
- package/lib/github/github-project.d.ts +5 -5
- package/lib/github/github-project.js +14 -10
- package/lib/github/github.d.ts +7 -7
- package/lib/github/github.js +7 -5
- package/lib/github/index.d.ts +13 -13
- package/lib/github/index.js +1 -1
- package/lib/github/mergify.d.ts +2 -2
- package/lib/github/mergify.js +3 -3
- package/lib/github/pr-template.d.ts +2 -2
- package/lib/github/pr-template.js +5 -5
- package/lib/github/pull-request-lint.d.ts +2 -2
- package/lib/github/pull-request-lint.js +17 -14
- package/lib/github/stale-util.d.ts +1 -1
- package/lib/github/stale-util.js +2 -3
- package/lib/github/stale.d.ts +2 -2
- package/lib/github/stale.js +28 -20
- package/lib/github/task-workflow.d.ts +4 -4
- package/lib/github/task-workflow.js +12 -10
- package/lib/github/workflow-actions.d.ts +2 -2
- package/lib/github/workflow-actions.js +22 -20
- package/lib/github/workflows-model.d.ts +20 -20
- package/lib/github/workflows-model.js +1 -1
- package/lib/github/workflows.d.ts +4 -4
- package/lib/github/workflows.js +42 -27
- package/lib/gitpod.d.ts +4 -4
- package/lib/gitpod.js +12 -9
- package/lib/ignore-file.d.ts +2 -2
- package/lib/ignore-file.js +10 -13
- package/lib/index.d.ts +46 -46
- package/lib/index.js +1 -1
- package/lib/ini.d.ts +3 -3
- package/lib/ini.js +4 -4
- package/lib/inventory.d.ts +1 -1
- package/lib/inventory.js +34 -30
- package/lib/java/index.d.ts +7 -7
- package/lib/java/index.js +1 -1
- package/lib/java/java-project.d.ts +6 -6
- package/lib/java/java-project.js +11 -13
- package/lib/java/junit.d.ts +3 -3
- package/lib/java/junit.js +17 -17
- package/lib/java/maven-compile.d.ts +3 -3
- package/lib/java/maven-compile.js +7 -7
- package/lib/java/maven-packaging.d.ts +3 -3
- package/lib/java/maven-packaging.js +12 -16
- package/lib/java/maven-sample.d.ts +2 -2
- package/lib/java/maven-sample.js +12 -12
- package/lib/java/pom.d.ts +2 -2
- package/lib/java/pom.js +16 -14
- package/lib/java/projenrc.d.ts +3 -3
- package/lib/java/projenrc.js +35 -25
- package/lib/javascript/bundler.d.ts +3 -3
- package/lib/javascript/bundler.js +14 -12
- package/lib/javascript/eslint.d.ts +4 -3
- package/lib/javascript/eslint.js +102 -86
- package/lib/javascript/index.d.ts +10 -10
- package/lib/javascript/index.js +1 -1
- package/lib/javascript/jest.d.ts +4 -4
- package/lib/javascript/jest.js +48 -37
- package/lib/javascript/node-package.d.ts +2 -2
- package/lib/javascript/node-package.js +87 -77
- package/lib/javascript/node-project.d.ts +11 -11
- package/lib/javascript/node-project.js +78 -52
- package/lib/javascript/npm-config.d.ts +2 -2
- package/lib/javascript/npm-config.js +4 -4
- package/lib/javascript/prettier.d.ts +4 -4
- package/lib/javascript/prettier.js +5 -5
- package/lib/javascript/projenrc.d.ts +2 -2
- package/lib/javascript/projenrc.js +8 -8
- package/lib/javascript/render-options.d.ts +2 -2
- package/lib/javascript/render-options.js +23 -18
- package/lib/javascript/typescript-config.d.ts +2 -2
- package/lib/javascript/typescript-config.js +5 -5
- package/lib/javascript/upgrade-dependencies.d.ts +4 -4
- package/lib/javascript/upgrade-dependencies.js +67 -53
- package/lib/javascript/util.js +2 -2
- package/lib/json.d.ts +3 -3
- package/lib/json.js +4 -4
- package/lib/license.d.ts +2 -2
- package/lib/license.js +7 -7
- package/lib/logger.d.ts +2 -2
- package/lib/logger.js +14 -9
- package/lib/logging.js +2 -2
- package/lib/makefile.d.ts +2 -2
- package/lib/makefile.js +12 -15
- package/lib/object-file.d.ts +2 -2
- package/lib/object-file.js +9 -7
- package/lib/option-hints.js +1 -1
- package/lib/project-build.d.ts +3 -3
- package/lib/project-build.js +14 -14
- package/lib/project.d.ts +14 -14
- package/lib/project.js +41 -23
- package/lib/projects.d.ts +1 -1
- package/lib/projects.js +10 -11
- package/lib/projenrc-json.d.ts +2 -2
- package/lib/projenrc-json.js +5 -5
- package/lib/python/index.d.ts +13 -13
- package/lib/python/index.js +1 -1
- package/lib/python/pip.d.ts +4 -4
- package/lib/python/pip.js +16 -12
- package/lib/python/poetry.d.ts +7 -7
- package/lib/python/poetry.js +41 -33
- package/lib/python/projenrc.d.ts +2 -2
- package/lib/python/projenrc.js +24 -21
- package/lib/python/pytest.d.ts +2 -2
- package/lib/python/pytest.js +19 -19
- package/lib/python/python-deps.d.ts +2 -2
- package/lib/python/python-deps.js +1 -1
- package/lib/python/python-packaging.d.ts +2 -2
- package/lib/python/python-packaging.js +1 -1
- package/lib/python/python-project.d.ts +7 -7
- package/lib/python/python-project.js +14 -13
- package/lib/python/python-sample.d.ts +2 -2
- package/lib/python/python-sample.js +17 -17
- package/lib/python/requirements-file.d.ts +3 -3
- package/lib/python/requirements-file.js +7 -8
- package/lib/python/setuppy.d.ts +2 -2
- package/lib/python/setuppy.js +23 -23
- package/lib/python/setuptools.d.ts +4 -4
- package/lib/python/setuptools.js +11 -11
- package/lib/python/venv.d.ts +3 -3
- package/lib/python/venv.js +6 -6
- package/lib/readme.d.ts +2 -2
- package/lib/readme.js +5 -3
- package/lib/release/bump-version.d.ts +1 -1
- package/lib/release/bump-version.js +37 -26
- package/lib/release/bump-version.task.js +7 -7
- package/lib/release/index.d.ts +3 -3
- package/lib/release/index.js +1 -1
- package/lib/release/publisher.d.ts +4 -4
- package/lib/release/publisher.js +93 -78
- package/lib/release/release-trigger.js +3 -3
- package/lib/release/release.d.ts +6 -6
- package/lib/release/release.js +37 -23
- package/lib/release/reset-version.task.js +4 -4
- package/lib/release/tag-version.js +1 -1
- package/lib/release/tag-version.task.js +3 -3
- package/lib/release/update-changelog.js +6 -4
- package/lib/release/update-changelog.task.js +4 -4
- package/lib/run-projenrc-json.task.js +5 -5
- package/lib/sample-file.d.ts +2 -2
- package/lib/sample-file.js +8 -8
- package/lib/semver.js +17 -7
- package/lib/source-code.d.ts +2 -2
- package/lib/source-code.js +5 -5
- package/lib/task-model.js +1 -1
- package/lib/task-runtime.d.ts +1 -1
- package/lib/task-runtime.js +27 -27
- package/lib/task.d.ts +1 -1
- package/lib/task.js +2 -2
- package/lib/tasks.d.ts +3 -3
- package/lib/tasks.js +5 -5
- package/lib/testing.d.ts +1 -1
- package/lib/testing.js +2 -2
- package/lib/textfile.d.ts +2 -2
- package/lib/textfile.js +3 -3
- package/lib/toml.d.ts +3 -3
- package/lib/toml.js +4 -4
- package/lib/typescript/index.d.ts +3 -3
- package/lib/typescript/index.js +1 -1
- package/lib/typescript/projenrc.d.ts +2 -2
- package/lib/typescript/projenrc.js +10 -10
- package/lib/typescript/typescript-typedoc.d.ts +1 -1
- package/lib/typescript/typescript-typedoc.js +4 -4
- package/lib/typescript/typescript.d.ts +3 -3
- package/lib/typescript/typescript.js +59 -62
- package/lib/util/semver.js +33 -33
- package/lib/util/synth.d.ts +1 -1
- package/lib/util/synth.js +15 -12
- package/lib/util.js +39 -32
- package/lib/version.d.ts +3 -3
- package/lib/version.js +12 -12
- package/lib/vscode/devcontainer.d.ts +4 -4
- package/lib/vscode/devcontainer.js +13 -8
- package/lib/vscode/index.d.ts +3 -3
- package/lib/vscode/index.js +1 -1
- package/lib/vscode/launch-config.d.ts +2 -2
- package/lib/vscode/launch-config.js +4 -4
- package/lib/vscode/vscode.d.ts +3 -3
- package/lib/vscode/vscode.js +2 -2
- package/lib/web/index.d.ts +4 -4
- package/lib/web/index.js +1 -1
- package/lib/web/next.d.ts +3 -3
- package/lib/web/next.js +241 -237
- package/lib/web/postcss.d.ts +3 -3
- package/lib/web/postcss.js +9 -6
- package/lib/web/react.d.ts +4 -4
- package/lib/web/react.js +172 -177
- package/lib/web/tailwind.d.ts +2 -2
- package/lib/web/tailwind.js +3 -3
- package/lib/xmlfile.d.ts +3 -3
- package/lib/xmlfile.js +5 -5
- package/lib/yaml.d.ts +3 -3
- package/lib/yaml.js +4 -4
- package/package.json +4 -1
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
|
@@ -11,11 +11,11 @@ const logging_1 = require("../logging");
|
|
|
11
11
|
function context(value) {
|
|
12
12
|
return `\${{ ${value} }}`;
|
|
13
13
|
}
|
|
14
|
-
const REPO = context(
|
|
15
|
-
const RUN_ID = context(
|
|
14
|
+
const REPO = context("github.repository");
|
|
15
|
+
const RUN_ID = context("github.run_id");
|
|
16
16
|
const RUN_URL = `https://github.com/${REPO}/actions/runs/${RUN_ID}`;
|
|
17
|
-
const CREATE_PATCH_STEP_ID =
|
|
18
|
-
const PATCH_CREATED_OUTPUT =
|
|
17
|
+
const CREATE_PATCH_STEP_ID = "create_patch";
|
|
18
|
+
const PATCH_CREATED_OUTPUT = "patch_created";
|
|
19
19
|
/**
|
|
20
20
|
* (experimental) Upgrade node project dependencies.
|
|
21
21
|
*
|
|
@@ -38,12 +38,12 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
38
38
|
this.workflows = [];
|
|
39
39
|
this._project = project;
|
|
40
40
|
this.options = options;
|
|
41
|
-
this.pullRequestTitle = (_c = options.pullRequestTitle) !== null && _c !== void 0 ? _c :
|
|
41
|
+
this.pullRequestTitle = (_c = options.pullRequestTitle) !== null && _c !== void 0 ? _c : "upgrade dependencies";
|
|
42
42
|
this.ignoresProjen = (_d = this.options.ignoreProjen) !== null && _d !== void 0 ? _d : true;
|
|
43
43
|
this.gitIdentity = (_f = (_e = options.workflowOptions) === null || _e === void 0 ? void 0 : _e.gitIdentity) !== null && _f !== void 0 ? _f : constants_1.DEFAULT_GITHUB_ACTIONS_USER;
|
|
44
44
|
this.postBuildSteps = [];
|
|
45
45
|
this.containerOptions = (_g = options.workflowOptions) === null || _g === void 0 ? void 0 : _g.container;
|
|
46
|
-
project.addDevDeps(
|
|
46
|
+
project.addDevDeps("npm-check-updates@^12");
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* (experimental) Add steps to execute a successful build.
|
|
@@ -68,7 +68,7 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
68
68
|
// represents the default repository branch.
|
|
69
69
|
// just like not specifying anything.
|
|
70
70
|
const defaultBranch = undefined;
|
|
71
|
-
const branches = (_e = (_d = this.options.workflowOptions) === null || _d === void 0 ? void 0 : _d.branches) !== null && _e !== void 0 ? _e : (
|
|
71
|
+
const branches = (_g = (_e = (_d = this.options.workflowOptions) === null || _d === void 0 ? void 0 : _d.branches) !== null && _e !== void 0 ? _e : (_f = this._project.release) === null || _f === void 0 ? void 0 : _f.branches) !== null && _g !== void 0 ? _g : [defaultBranch];
|
|
72
72
|
for (const branch of branches) {
|
|
73
73
|
this.workflows.push(this.createWorkflow(task, this._project.github, branch));
|
|
74
74
|
}
|
|
@@ -76,26 +76,32 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
76
76
|
}
|
|
77
77
|
createTask() {
|
|
78
78
|
var _c, _d;
|
|
79
|
-
const taskName = (_c = this.options.taskName) !== null && _c !== void 0 ? _c :
|
|
79
|
+
const taskName = (_c = this.options.taskName) !== null && _c !== void 0 ? _c : "upgrade";
|
|
80
80
|
const task = this._project.addTask(taskName, {
|
|
81
81
|
// this task should not run in CI mode because its designed to
|
|
82
82
|
// update package.json and lock files.
|
|
83
|
-
env: { CI:
|
|
83
|
+
env: { CI: "0" },
|
|
84
84
|
description: this.pullRequestTitle,
|
|
85
85
|
});
|
|
86
86
|
const exclude = (_d = this.options.exclude) !== null && _d !== void 0 ? _d : [];
|
|
87
87
|
if (this.ignoresProjen) {
|
|
88
|
-
exclude.push(
|
|
88
|
+
exclude.push("projen");
|
|
89
89
|
}
|
|
90
|
-
for (const dep of [
|
|
91
|
-
const ncuCommand = [
|
|
90
|
+
for (const dep of ["dev", "optional", "peer", "prod", "bundle"]) {
|
|
91
|
+
const ncuCommand = [
|
|
92
|
+
"npm-check-updates",
|
|
93
|
+
"--dep",
|
|
94
|
+
dep,
|
|
95
|
+
"--upgrade",
|
|
96
|
+
"--target=minor",
|
|
97
|
+
];
|
|
92
98
|
if (exclude.length > 0) {
|
|
93
|
-
ncuCommand.push(`--reject='${exclude.join(
|
|
99
|
+
ncuCommand.push(`--reject='${exclude.join(",")}'`);
|
|
94
100
|
}
|
|
95
101
|
if (this.options.include) {
|
|
96
|
-
ncuCommand.push(`--filter='${this.options.include.join(
|
|
102
|
+
ncuCommand.push(`--filter='${this.options.include.join(",")}'`);
|
|
97
103
|
}
|
|
98
|
-
task.exec(ncuCommand.join(
|
|
104
|
+
task.exec(ncuCommand.join(" "));
|
|
99
105
|
}
|
|
100
106
|
// run "yarn/npm install" to update the lockfile and install any deps (such as projen)
|
|
101
107
|
task.exec(this._project.package.installAndUpdateLockfileCommand);
|
|
@@ -108,11 +114,13 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
108
114
|
createWorkflow(task, github, branch) {
|
|
109
115
|
var _c, _d;
|
|
110
116
|
const schedule = (_d = (_c = this.options.workflowOptions) === null || _c === void 0 ? void 0 : _c.schedule) !== null && _d !== void 0 ? _d : UpgradeDependenciesSchedule.DAILY;
|
|
111
|
-
const workflowName = `${task.name}${branch ? `-${branch.replace(/\//g,
|
|
117
|
+
const workflowName = `${task.name}${branch ? `-${branch.replace(/\//g, "-")}` : ""}`;
|
|
112
118
|
const workflow = github.addWorkflow(workflowName);
|
|
113
119
|
const triggers = {
|
|
114
120
|
workflowDispatch: {},
|
|
115
|
-
schedule: schedule.cron
|
|
121
|
+
schedule: schedule.cron
|
|
122
|
+
? schedule.cron.map((e) => ({ cron: e }))
|
|
123
|
+
: undefined,
|
|
116
124
|
};
|
|
117
125
|
workflow.on(triggers);
|
|
118
126
|
const upgrade = this.createUpgrade(task, branch);
|
|
@@ -125,7 +133,7 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
125
133
|
}
|
|
126
134
|
createUpgrade(task, branch) {
|
|
127
135
|
var _c, _d;
|
|
128
|
-
const runsOn = (_d = (_c = this.options.workflowOptions) === null || _c === void 0 ? void 0 : _c.runsOn) !== null && _d !== void 0 ? _d : [
|
|
136
|
+
const runsOn = (_d = (_c = this.options.workflowOptions) === null || _c === void 0 ? void 0 : _c.runsOn) !== null && _d !== void 0 ? _d : ["ubuntu-latest"];
|
|
129
137
|
// thats all we should need at this stage since all we do is clone.
|
|
130
138
|
// note that this also prevents new code that is introduced in the upgrade
|
|
131
139
|
// to have write access to anything, in case its somehow executed. (for example during build)
|
|
@@ -134,13 +142,13 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
134
142
|
};
|
|
135
143
|
const steps = [
|
|
136
144
|
{
|
|
137
|
-
name:
|
|
138
|
-
uses:
|
|
145
|
+
name: "Checkout",
|
|
146
|
+
uses: "actions/checkout@v2",
|
|
139
147
|
with: branch ? { ref: branch } : undefined,
|
|
140
148
|
},
|
|
141
149
|
...this._project.installWorkflowSteps,
|
|
142
150
|
{
|
|
143
|
-
name:
|
|
151
|
+
name: "Upgrade dependencies",
|
|
144
152
|
run: this._project.runTaskCommand(task),
|
|
145
153
|
},
|
|
146
154
|
];
|
|
@@ -151,10 +159,10 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
151
159
|
}));
|
|
152
160
|
return {
|
|
153
161
|
job: {
|
|
154
|
-
name:
|
|
162
|
+
name: "Upgrade",
|
|
155
163
|
container: this.containerOptions,
|
|
156
164
|
permissions: permissions,
|
|
157
|
-
runsOn: runsOn !== null && runsOn !== void 0 ? runsOn : [
|
|
165
|
+
runsOn: runsOn !== null && runsOn !== void 0 ? runsOn : ["ubuntu-latest"],
|
|
158
166
|
steps: steps,
|
|
159
167
|
outputs: {
|
|
160
168
|
[PATCH_CREATED_OUTPUT]: {
|
|
@@ -163,7 +171,7 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
163
171
|
},
|
|
164
172
|
},
|
|
165
173
|
},
|
|
166
|
-
jobId:
|
|
174
|
+
jobId: "upgrade",
|
|
167
175
|
ref: branch,
|
|
168
176
|
};
|
|
169
177
|
}
|
|
@@ -174,20 +182,20 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
174
182
|
logging_1.warn(`No need to specify "workflowOptions.secret" when it is the same as the default workflow projen token secret ("${workflow.projenTokenSecret}").`);
|
|
175
183
|
}
|
|
176
184
|
const token = context(`secrets.${secretName}`);
|
|
177
|
-
const runsOn = (_g = (_f = this.options.workflowOptions) === null || _f === void 0 ? void 0 : _f.runsOn) !== null && _g !== void 0 ? _g : [
|
|
185
|
+
const runsOn = (_g = (_f = this.options.workflowOptions) === null || _f === void 0 ? void 0 : _f.runsOn) !== null && _g !== void 0 ? _g : ["ubuntu-latest"];
|
|
178
186
|
const workflowName = workflow.name;
|
|
179
187
|
const branchName = `github-actions/${workflowName}`;
|
|
180
|
-
const prStepId =
|
|
188
|
+
const prStepId = "create-pr";
|
|
181
189
|
const title = `chore(deps): ${this.pullRequestTitle}`;
|
|
182
190
|
const description = [
|
|
183
|
-
|
|
184
|
-
|
|
191
|
+
"Upgrades project dependencies. See details in [workflow run].",
|
|
192
|
+
"",
|
|
185
193
|
`[Workflow Run]: ${RUN_URL}`,
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
194
|
+
"",
|
|
195
|
+
"------",
|
|
196
|
+
"",
|
|
189
197
|
`*Automatically created by projen via the "${workflow.name}" workflow*`,
|
|
190
|
-
].join(
|
|
198
|
+
].join("\n");
|
|
191
199
|
const comitter = `${this.gitIdentity.name} <${this.gitIdentity.email}>`;
|
|
192
200
|
const steps = [
|
|
193
201
|
...workflow_actions_1.WorkflowActions.checkoutWithPatch({
|
|
@@ -196,43 +204,43 @@ class UpgradeDependencies extends component_1.Component {
|
|
|
196
204
|
}),
|
|
197
205
|
...workflow_actions_1.WorkflowActions.setGitIdentity(this.gitIdentity),
|
|
198
206
|
{
|
|
199
|
-
name:
|
|
207
|
+
name: "Create Pull Request",
|
|
200
208
|
id: prStepId,
|
|
201
|
-
uses:
|
|
209
|
+
uses: "peter-evans/create-pull-request@v3",
|
|
202
210
|
with: {
|
|
203
211
|
// the pr can modify workflow files, so we need to use the custom
|
|
204
212
|
// secret if one is configured.
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
213
|
+
token: token,
|
|
214
|
+
"commit-message": `${title}\n\n${description}`,
|
|
215
|
+
branch: branchName,
|
|
216
|
+
title: title,
|
|
217
|
+
labels: ((_j = (_h = this.options.workflowOptions) === null || _h === void 0 ? void 0 : _h.labels) === null || _j === void 0 ? void 0 : _j.join(",")) || undefined,
|
|
218
|
+
body: description,
|
|
219
|
+
author: comitter,
|
|
220
|
+
committer: comitter,
|
|
221
|
+
signoff: (_k = this.options.signoff) !== null && _k !== void 0 ? _k : true,
|
|
214
222
|
},
|
|
215
223
|
},
|
|
216
224
|
];
|
|
217
225
|
return {
|
|
218
226
|
job: {
|
|
219
|
-
name:
|
|
227
|
+
name: "Create Pull Request",
|
|
220
228
|
if: `\${{ needs.${upgrade.jobId}.outputs.${PATCH_CREATED_OUTPUT} }}`,
|
|
221
229
|
needs: [upgrade.jobId],
|
|
222
230
|
permissions: {
|
|
223
231
|
contents: github_1.workflows.JobPermission.WRITE,
|
|
224
232
|
pullRequests: github_1.workflows.JobPermission.WRITE,
|
|
225
233
|
},
|
|
226
|
-
runsOn: runsOn !== null && runsOn !== void 0 ? runsOn : [
|
|
234
|
+
runsOn: runsOn !== null && runsOn !== void 0 ? runsOn : ["ubuntu-latest"],
|
|
227
235
|
steps: steps,
|
|
228
236
|
},
|
|
229
|
-
jobId:
|
|
237
|
+
jobId: "pr",
|
|
230
238
|
};
|
|
231
239
|
}
|
|
232
240
|
}
|
|
233
241
|
exports.UpgradeDependencies = UpgradeDependencies;
|
|
234
242
|
_a = JSII_RTTI_SYMBOL_1;
|
|
235
|
-
UpgradeDependencies[_a] = { fqn: "projen.javascript.UpgradeDependencies", version: "0.49.
|
|
243
|
+
UpgradeDependencies[_a] = { fqn: "projen.javascript.UpgradeDependencies", version: "0.49.1" };
|
|
236
244
|
/**
|
|
237
245
|
* (experimental) How often to check for new versions and raise pull requests for version upgrades.
|
|
238
246
|
*
|
|
@@ -253,7 +261,7 @@ class UpgradeDependenciesSchedule {
|
|
|
253
261
|
}
|
|
254
262
|
exports.UpgradeDependenciesSchedule = UpgradeDependenciesSchedule;
|
|
255
263
|
_b = JSII_RTTI_SYMBOL_1;
|
|
256
|
-
UpgradeDependenciesSchedule[_b] = { fqn: "projen.javascript.UpgradeDependenciesSchedule", version: "0.49.
|
|
264
|
+
UpgradeDependenciesSchedule[_b] = { fqn: "projen.javascript.UpgradeDependenciesSchedule", version: "0.49.1" };
|
|
257
265
|
/**
|
|
258
266
|
* (experimental) Disables automatic upgrades.
|
|
259
267
|
*
|
|
@@ -265,23 +273,29 @@ UpgradeDependenciesSchedule.NEVER = new UpgradeDependenciesSchedule([]);
|
|
|
265
273
|
*
|
|
266
274
|
* @experimental
|
|
267
275
|
*/
|
|
268
|
-
UpgradeDependenciesSchedule.DAILY = new UpgradeDependenciesSchedule([
|
|
276
|
+
UpgradeDependenciesSchedule.DAILY = new UpgradeDependenciesSchedule(["0 0 * * *"]);
|
|
269
277
|
/**
|
|
270
278
|
* (experimental) At 00:00 on every day-of-week from Monday through Friday.
|
|
271
279
|
*
|
|
272
280
|
* @experimental
|
|
273
281
|
*/
|
|
274
|
-
UpgradeDependenciesSchedule.WEEKDAY = new UpgradeDependenciesSchedule([
|
|
282
|
+
UpgradeDependenciesSchedule.WEEKDAY = new UpgradeDependenciesSchedule([
|
|
283
|
+
"0 0 * * 1-5",
|
|
284
|
+
]);
|
|
275
285
|
/**
|
|
276
286
|
* (experimental) At 00:00 on Monday.
|
|
277
287
|
*
|
|
278
288
|
* @experimental
|
|
279
289
|
*/
|
|
280
|
-
UpgradeDependenciesSchedule.WEEKLY = new UpgradeDependenciesSchedule([
|
|
290
|
+
UpgradeDependenciesSchedule.WEEKLY = new UpgradeDependenciesSchedule([
|
|
291
|
+
"0 0 * * 1",
|
|
292
|
+
]);
|
|
281
293
|
/**
|
|
282
294
|
* (experimental) At 00:00 on day-of-month 1.
|
|
283
295
|
*
|
|
284
296
|
* @experimental
|
|
285
297
|
*/
|
|
286
|
-
UpgradeDependenciesSchedule.MONTHLY = new UpgradeDependenciesSchedule([
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC91cGdyYWRlLWRlcGVuZGVuY2llcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxzQ0FBMkU7QUFDM0UsbURBQWtFO0FBQ2xFLGlFQUE2RDtBQUc3RCx3Q0FBa0M7QUFHbEMsU0FBUyxPQUFPLENBQUMsS0FBYTtJQUM1QixPQUFPLFFBQVEsS0FBSyxLQUFLLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUN4QyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsSUFBSSxpQkFBaUIsTUFBTSxFQUFFLENBQUM7QUFDcEUsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLENBQUM7QUFDNUMsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUM7Ozs7OztBQStCN0MsTUFBYSxtQkFBb0IsU0FBUSxxQkFBUzs7OztJQWtCaEQsWUFBWSxPQUFvQixFQUFFLFVBQXNDLEVBQUU7O1FBQ3hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Ozs7Ozs7UUFoQkQsY0FBUyxHQUFxQixFQUFFLENBQUM7UUFrQi9DLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsU0FBRyxPQUFPLENBQUMsZ0JBQWdCLG1DQUFJLHNCQUFzQixDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLFNBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLG1DQUFJLElBQUksQ0FBQztRQUN2RCxJQUFJLENBQUMsV0FBVyxlQUFHLE9BQU8sQ0FBQyxlQUFlLDBDQUFFLFdBQVcsbUNBQUksdUNBQTJC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QVcsQ0FBQyxDQUFDLENBQUM7Ozs7OztBQUd4RCxtQ0FBTyxHQUFHLElBQUksMkJBQTJCLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IEdpdEh1YiwgR2l0aHViV29ya2Zsb3csIEdpdElkZW50aXR5LCB3b3JrZmxvd3MgfSBmcm9tICcuLi9naXRodWInO1xuaW1wb3J0IHsgREVGQVVMVF9HSVRIVUJfQUNUSU9OU19VU0VSIH0gZnJvbSAnLi4vZ2l0aHViL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXb3JrZmxvd0FjdGlvbnMgfSBmcm9tICcuLi9naXRodWIvd29ya2Zsb3ctYWN0aW9ucyc7XG5pbXBvcnQgeyBDb250YWluZXJPcHRpb25zLCBKb2JTdGVwIH0gZnJvbSAnLi4vZ2l0aHViL3dvcmtmbG93cy1tb2RlbCc7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJy4uL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgd2FybiB9IGZyb20gJy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2snO1xuXG5mdW5jdGlvbiBjb250ZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBcXCR7eyAke3ZhbHVlfSB9fWA7XG59XG5cbmNvbnN0IFJFUE8gPSBjb250ZXh0KCdnaXRodWIucmVwb3NpdG9yeScpO1xuY29uc3QgUlVOX0lEID0gY29udGV4dCgnZ2l0aHViLnJ1bl9pZCcpO1xuY29uc3QgUlVOX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtSRVBPfS9hY3Rpb25zL3J1bnMvJHtSVU5fSUR9YDtcbmNvbnN0IENSRUFURV9QQVRDSF9TVEVQX0lEID0gJ2NyZWF0ZV9wYXRjaCc7XG5jb25zdCBQQVRDSF9DUkVBVEVEX09VVFBVVCA9ICdwYXRjaF9jcmVhdGVkJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFVwZ3JhZGVEZXBlbmRlbmNpZXNPcHRpb25zIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB3b3JrZmxvdz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB3b3JrZmxvd09wdGlvbnM/OiBVcGdyYWRlRGVwZW5kZW5jaWVzV29ya2Zsb3dPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0YXNrTmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RUaXRsZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpZ25vcmVQcm9qZW4/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNpZ25vZmY/OiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBVcGdyYWRlRGVwZW5kZW5jaWVzIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dzOiBHaXRodWJXb3JrZmxvd1tdID0gW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBVcGdyYWRlRGVwZW5kZW5jaWVzT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvamVjdDogTm9kZVByb2plY3Q7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHVsbFJlcXVlc3RUaXRsZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBpZ25vcmVzUHJvamVuOiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBjb250YWluZXJPcHRpb25zPzogQ29udGFpbmVyT3B0aW9ucztcblxuICBwcml2YXRlIHJlYWRvbmx5IGdpdElkZW50aXR5OiBHaXRJZGVudGl0eTtcbiAgcHJpdmF0ZSByZWFkb25seSBwb3N0QnVpbGRTdGVwczogSm9iU3RlcFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBVcGdyYWRlRGVwZW5kZW5jaWVzT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLl9wcm9qZWN0ID0gcHJvamVjdDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMucHVsbFJlcXVlc3RUaXRsZSA9IG9wdGlvbnMucHVsbFJlcXVlc3RUaXRsZSA/PyAndXBncmFkZSBkZXBlbmRlbmNpZXMnO1xuICAgIHRoaXMuaWdub3Jlc1Byb2plbiA9IHRoaXMub3B0aW9ucy5pZ25vcmVQcm9qZW4gPz8gdHJ1ZTtcbiAgICB0aGlzLmdpdElkZW50aXR5ID0gb3B0aW9ucy53b3JrZmxvd09wdGlvbnM/LmdpdElkZW50aXR5ID8/IERFRkFVTFRfR0lUSFVCX0FDVElPTlNfVVNFUjtcbiAgICB0aGlzLnBvc3RCdWlsZFN0ZXBzID0gW107XG4gICAgdGhpcy5jb250YWluZXJPcHRpb25zID0gb3B0aW9ucy53b3JrZmxvd09wdGlvbnM/LmNvbnRhaW5lcjtcblxuICAgIHByb2plY3QuYWRkRGV2RGVwcygnbnBtLWNoZWNrLXVwZGF0ZXNAXjEyJyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRQb3N0QnVpbGRTdGVwcyguLi5zdGVwczogSm9iU3RlcFtdKSB7XG4gICAgdGhpcy5wb3N0QnVpbGRTdGVwcy5wdXNoKC4uLnN0ZXBzKTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSB0aGUgdXBncmFkZSB0YXNrIGFuZCBhIGNvcnJlc3BvbmRpbmcgZ2l0aHViIHdvcmtmbG93XG4gIC8vIGZvciBlYWNoIHJlcXVlc3RlZCBicmFuY2guXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIGNvbnN0IHRhc2sgPSB0aGlzLmNyZWF0ZVRhc2soKTtcbiAgICBpZiAodGhpcy5fcHJvamVjdC5naXRodWIgJiYgKHRoaXMub3B0aW9ucy53b3JrZmxvdyA/PyB0cnVlKSkge1xuICAgICAgLy8gcmVwcmVzZW50cyB0aGUgZGVmYXVsdCByZXBvc2l0b3J5IGJyYW5jaC5cbiAgICAgIC8vIGp1c3QgbGlrZSBub3Qgc3BlY2lmeWluZyBhbnl0aGluZy5cbiAgICAgIGNvbnN0IGRlZmF1bHRCcmFuY2ggPSB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IGJyYW5jaGVzID0gdGhpcy5vcHRpb25zLndvcmtmbG93T3B0aW9ucz8uYnJhbmNoZXMgPz8gKHRoaXMuX3Byb2plY3QucmVsZWFzZT8uYnJhbmNoZXMgPz8gW2RlZmF1bHRCcmFuY2hdKTtcbiAgICAgIGZvciAoY29uc3QgYnJhbmNoIG9mIGJyYW5jaGVzKSB7XG4gICAgICAgIHRoaXMud29ya2Zsb3dzLnB1c2godGhpcy5jcmVhdGVXb3JrZmxvdyh0YXNrLCB0aGlzLl9wcm9qZWN0LmdpdGh1YiwgYnJhbmNoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUYXNrKCk6IFRhc2sge1xuICAgIGNvbnN0IHRhc2tOYW1lID0gdGhpcy5vcHRpb25zLnRhc2tOYW1lID8/ICd1cGdyYWRlJztcbiAgICBjb25zdCB0YXNrID0gdGhpcy5fcHJvamVjdC5hZGRUYXNrKHRhc2tOYW1lLCB7XG4gICAgICAvLyB0aGlzIHRhc2sgc2hvdWxkIG5vdCBydW4gaW4gQ0kgbW9kZSBiZWNhdXNlIGl0cyBkZXNpZ25lZCB0b1xuICAgICAgLy8gdXBkYXRlIHBhY2thZ2UuanNvbiBhbmQgbG9jayBmaWxlcy5cbiAgICAgIGVudjogeyBDSTogJzAnIH0sXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5wdWxsUmVxdWVzdFRpdGxlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZXhjbHVkZSA9IHRoaXMub3B0aW9ucy5leGNsdWRlID8/IFtdO1xuICAgIGlmICh0aGlzLmlnbm9yZXNQcm9qZW4pIHtcbiAgICAgIGV4Y2x1ZGUucHVzaCgncHJvamVuJyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkZXAgb2YgWydkZXYnLCAnb3B0aW9uYWwnLCAncGVlcicsICdwcm9kJywgJ2J1bmRsZSddKSB7XG5cbiAgICAgIGNvbnN0IG5jdUNvbW1hbmQgPSBbJ25wbS1jaGVjay11cGRhdGVzJywgJy0tZGVwJywgZGVwLCAnLS11cGdyYWRlJywgJy0tdGFyZ2V0PW1pbm9yJ107XG4gICAgICBpZiAoZXhjbHVkZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIG5jdUNvbW1hbmQucHVzaChgLS1yZWplY3Q9JyR7ZXhjbHVkZS5qb2luKCcsJyl9J2ApO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbmNsdWRlKSB7XG4gICAgICAgIG5jdUNvbW1hbmQucHVzaChgLS1maWx0ZXI9JyR7dGhpcy5vcHRpb25zLmluY2x1ZGUuam9pbignLCcpfSdgKTtcbiAgICAgIH1cblxuICAgICAgdGFzay5leGVjKG5jdUNvbW1hbmQuam9pbignICcpKTtcblxuICAgIH1cblxuICAgIC8vIHJ1biBcInlhcm4vbnBtIGluc3RhbGxcIiB0byB1cGRhdGUgdGhlIGxvY2tmaWxlIGFuZCBpbnN0YWxsIGFueSBkZXBzIChzdWNoIGFzIHByb2plbilcbiAgICB0YXNrLmV4ZWModGhpcy5fcHJvamVjdC5wYWNrYWdlLmluc3RhbGxBbmRVcGRhdGVMb2NrZmlsZUNvbW1hbmQpO1xuXG4gICAgLy8gcnVuIHVwZ3JhZGUgY29tbWFuZCB0byB1cGdyYWRlIHRyYW5zaXRpdmUgZGVwcyBhcyB3ZWxsXG4gICAgdGFzay5leGVjKHRoaXMuX3Byb2plY3QucGFja2FnZS5yZW5kZXJVcGdyYWRlUGFja2FnZXNDb21tYW5kKGV4Y2x1ZGUsIHRoaXMub3B0aW9ucy5pbmNsdWRlKSk7XG5cbiAgICAvLyBydW4gXCJwcm9qZW5cIiB0byBnaXZlIHByb2plbiBhIGNoYW5jZSB0byB1cGRhdGUgZGVwZW5kZW5jaWVzIChpdCB3aWxsIGFsc28gcnVuIFwieWFybiBpbnN0YWxsXCIpXG4gICAgdGFzay5leGVjKHRoaXMuX3Byb2plY3QucHJvamVuQ29tbWFuZCk7XG5cbiAgICByZXR1cm4gdGFzaztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV29ya2Zsb3codGFzazogVGFzaywgZ2l0aHViOiBHaXRIdWIsIGJyYW5jaD86IHN0cmluZyk6IEdpdGh1YldvcmtmbG93IHtcbiAgICBjb25zdCBzY2hlZHVsZSA9IHRoaXMub3B0aW9ucy53b3JrZmxvd09wdGlvbnM/LnNjaGVkdWxlID8/IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZS5EQUlMWTtcblxuICAgIGNvbnN0IHdvcmtmbG93TmFtZSA9IGAke3Rhc2submFtZX0ke2JyYW5jaCA/IGAtJHticmFuY2gucmVwbGFjZSgvXFwvL2csICctJyl9YCA6ICcnfWA7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSBnaXRodWIuYWRkV29ya2Zsb3cod29ya2Zsb3dOYW1lKTtcbiAgICBjb25zdCB0cmlnZ2Vyczogd29ya2Zsb3dzLlRyaWdnZXJzID0ge1xuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sXG4gICAgICBzY2hlZHVsZTogc2NoZWR1bGUuY3JvbiA/IHNjaGVkdWxlLmNyb24ubWFwKGUgPT4gKHsgY3JvbjogZSB9KSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICB3b3JrZmxvdy5vbih0cmlnZ2Vycyk7XG5cbiAgICBjb25zdCB1cGdyYWRlID0gdGhpcy5jcmVhdGVVcGdyYWRlKHRhc2ssIGJyYW5jaCk7XG4gICAgY29uc3QgcHIgPSB0aGlzLmNyZWF0ZVByKHdvcmtmbG93LCB1cGdyYWRlKTtcblxuICAgIGNvbnN0IGpvYnM6IFJlY29yZDxzdHJpbmcsIHdvcmtmbG93cy5Kb2I+ID0ge307XG4gICAgam9ic1t1cGdyYWRlLmpvYklkXSA9IHVwZ3JhZGUuam9iO1xuICAgIGpvYnNbcHIuam9iSWRdID0gcHIuam9iO1xuXG4gICAgd29ya2Zsb3cuYWRkSm9icyhqb2JzKTtcbiAgICByZXR1cm4gd29ya2Zsb3c7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVVwZ3JhZGUodGFzazogVGFzaywgYnJhbmNoPzogc3RyaW5nKTogVXBncmFkZSB7XG4gICAgY29uc3QgcnVuc09uID0gdGhpcy5vcHRpb25zLndvcmtmbG93T3B0aW9ucz8ucnVuc09uID8/IFsndWJ1bnR1LWxhdGVzdCddO1xuXG4gICAgLy8gdGhhdHMgYWxsIHdlIHNob3VsZCBuZWVkIGF0IHRoaXMgc3RhZ2Ugc2luY2UgYWxsIHdlIGRvIGlzIGNsb25lLlxuICAgIC8vIG5vdGUgdGhhdCB0aGlzIGFsc28gcHJldmVudHMgbmV3IGNvZGUgdGhhdCBpcyBpbnRyb2R1Y2VkIGluIHRoZSB1cGdyYWRlXG4gICAgLy8gdG8gaGF2ZSB3cml0ZSBhY2Nlc3MgdG8gYW55dGhpbmcsIGluIGNhc2UgaXRzIHNvbWVob3cgZXhlY3V0ZWQuIChmb3IgZXhhbXBsZSBkdXJpbmcgYnVpbGQpXG4gICAgY29uc3QgcGVybWlzc2lvbnM6IHdvcmtmbG93cy5Kb2JQZXJtaXNzaW9ucyA9IHtcbiAgICAgIGNvbnRlbnRzOiB3b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFELFxuICAgIH07XG5cbiAgICBjb25zdCBzdGVwczogd29ya2Zsb3dzLkpvYlN0ZXBbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjInLFxuICAgICAgICB3aXRoOiBicmFuY2ggPyB7IHJlZjogYnJhbmNoIH0gOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgLi4udGhpcy5fcHJvamVjdC5pbnN0YWxsV29ya2Zsb3dTdGVwcyxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1VwZ3JhZGUgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgcnVuOiB0aGlzLl9wcm9qZWN0LnJ1blRhc2tDb21tYW5kKHRhc2spLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgc3RlcHMucHVzaCguLi50aGlzLnBvc3RCdWlsZFN0ZXBzKTtcbiAgICBzdGVwcy5wdXNoKC4uLldvcmtmbG93QWN0aW9ucy5jcmVhdGVVcGxvYWRHaXRQYXRjaCh7XG4gICAgICBzdGVwSWQ6IENSRUFURV9QQVRDSF9TVEVQX0lELFxuICAgICAgb3V0cHV0TmFtZTogUEFUQ0hfQ1JFQVRFRF9PVVRQVVQsXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGpvYjoge1xuICAgICAgICBuYW1lOiAnVXBncmFkZScsXG4gICAgICAgIGNvbnRhaW5lcjogdGhpcy5jb250YWluZXJPcHRpb25zLFxuICAgICAgICBwZXJtaXNzaW9uczogcGVybWlzc2lvbnMsXG4gICAgICAgIHJ1bnNPbjogcnVuc09uID8/IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgICBzdGVwczogc3RlcHMsXG4gICAgICAgIG91dHB1dHM6IHtcbiAgICAgICAgICBbUEFUQ0hfQ1JFQVRFRF9PVVRQVVRdOiB7XG4gICAgICAgICAgICBzdGVwSWQ6IENSRUFURV9QQVRDSF9TVEVQX0lELFxuICAgICAgICAgICAgb3V0cHV0TmFtZTogUEFUQ0hfQ1JFQVRFRF9PVVRQVVQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBqb2JJZDogJ3VwZ3JhZGUnLFxuICAgICAgcmVmOiBicmFuY2gsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHIod29ya2Zsb3c6IEdpdGh1YldvcmtmbG93LCB1cGdyYWRlOiBVcGdyYWRlKTogUFIge1xuICAgIGNvbnN0IHNlY3JldE5hbWUgPSB0aGlzLm9wdGlvbnMud29ya2Zsb3dPcHRpb25zPy5zZWNyZXQgPz8gd29ya2Zsb3cucHJvamVuVG9rZW5TZWNyZXQ7XG4gICAgaWYgKHRoaXMub3B0aW9ucy53b3JrZmxvd09wdGlvbnM/LnNlY3JldCA9PT0gd29ya2Zsb3cucHJvamVuVG9rZW5TZWNyZXQpIHtcbiAgICAgIHdhcm4oYE5vIG5lZWQgdG8gc3BlY2lmeSBcIndvcmtmbG93T3B0aW9ucy5zZWNyZXRcIiB3aGVuIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0IHdvcmtmbG93IHByb2plbiB0b2tlbiBzZWNyZXQgKFwiJHt3b3JrZmxvdy5wcm9qZW5Ub2tlblNlY3JldH1cIikuYCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gY29udGV4dChgc2VjcmV0cy4ke3NlY3JldE5hbWV9YCk7XG4gICAgY29uc3QgcnVuc09uID0gdGhpcy5vcHRpb25zLndvcmtmbG93T3B0aW9ucz8ucnVuc09uID8/IFsndWJ1bnR1LWxhdGVzdCddO1xuICAgIGNvbnN0IHdvcmtmbG93TmFtZSA9IHdvcmtmbG93Lm5hbWU7XG4gICAgY29uc3QgYnJhbmNoTmFtZSA9IGBnaXRodWItYWN0aW9ucy8ke3dvcmtmbG93TmFtZX1gO1xuICAgIGNvbnN0IHByU3RlcElkID0gJ2NyZWF0ZS1wcic7XG5cbiAgICBjb25zdCB0aXRsZSA9IGBjaG9yZShkZXBzKTogJHt0aGlzLnB1bGxSZXF1ZXN0VGl0bGV9YDtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IFtcbiAgICAgICdVcGdyYWRlcyBwcm9qZWN0IGRlcGVuZGVuY2llcy4gU2VlIGRldGFpbHMgaW4gW3dvcmtmbG93IHJ1bl0uJyxcbiAgICAgICcnLFxuICAgICAgYFtXb3JrZmxvdyBSdW5dOiAke1JVTl9VUkx9YCxcbiAgICAgICcnLFxuICAgICAgJy0tLS0tLScsXG4gICAgICAnJyxcbiAgICAgIGAqQXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IHByb2plbiB2aWEgdGhlIFwiJHt3b3JrZmxvdy5uYW1lfVwiIHdvcmtmbG93KmAsXG4gICAgXS5qb2luKCdcXG4nKTtcblxuICAgIGNvbnN0IGNvbWl0dGVyID0gYCR7dGhpcy5naXRJZGVudGl0eS5uYW1lfSA8JHt0aGlzLmdpdElkZW50aXR5LmVtYWlsfT5gO1xuXG4gICAgY29uc3Qgc3RlcHM6IHdvcmtmbG93cy5Kb2JTdGVwW10gPSBbXG4gICAgICAuLi5Xb3JrZmxvd0FjdGlvbnMuY2hlY2tvdXRXaXRoUGF0Y2goe1xuICAgICAgICB0b2tlbjogYFxcJHt7IHNlY3JldHMuJHt3b3JrZmxvdy5wcm9qZW5Ub2tlblNlY3JldH0gfX1gLFxuICAgICAgICByZWY6IHVwZ3JhZGUucmVmLFxuICAgICAgfSksXG4gICAgICAuLi5Xb3JrZmxvd0FjdGlvbnMuc2V0R2l0SWRlbnRpdHkodGhpcy5naXRJZGVudGl0eSksXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdDcmVhdGUgUHVsbCBSZXF1ZXN0JyxcbiAgICAgICAgaWQ6IHByU3RlcElkLFxuICAgICAgICB1c2VzOiAncGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEB2MycsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAvLyB0aGUgcHIgY2FuIG1vZGlmeSB3b3JrZmxvdyBmaWxlcywgc28gd2UgbmVlZCB0byB1c2UgdGhlIGN1c3RvbVxuICAgICAgICAgIC8vIHNlY3JldCBpZiBvbmUgaXMgY29uZmlndXJlZC5cbiAgICAgICAgICAndG9rZW4nOiB0b2tlbixcbiAgICAgICAgICAnY29tbWl0LW1lc3NhZ2UnOiBgJHt0aXRsZX1cXG5cXG4ke2Rlc2NyaXB0aW9ufWAsXG4gICAgICAgICAgJ2JyYW5jaCc6IGJyYW5jaE5hbWUsXG4gICAgICAgICAgJ3RpdGxlJzogdGl0bGUsXG4gICAgICAgICAgJ2xhYmVscyc6IHRoaXMub3B0aW9ucy53b3JrZmxvd09wdGlvbnM/LmxhYmVscz8uam9pbignLCcpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAnYm9keSc6IGRlc2NyaXB0aW9uLFxuICAgICAgICAgICdhdXRob3InOiBjb21pdHRlcixcbiAgICAgICAgICAnY29tbWl0dGVyJzogY29taXR0ZXIsXG4gICAgICAgICAgJ3NpZ25vZmYnOiB0aGlzLm9wdGlvbnMuc2lnbm9mZiA/PyB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGpvYjoge1xuICAgICAgICBuYW1lOiAnQ3JlYXRlIFB1bGwgUmVxdWVzdCcsXG4gICAgICAgIGlmOiBgXFwke3sgbmVlZHMuJHt1cGdyYWRlLmpvYklkfS5vdXRwdXRzLiR7UEFUQ0hfQ1JFQVRFRF9PVVRQVVR9IH19YCxcbiAgICAgICAgbmVlZHM6IFt1cGdyYWRlLmpvYklkXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICBjb250ZW50czogd29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgcHVsbFJlcXVlc3RzOiB3b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgICAgcnVuc09uOiBydW5zT24gPz8gWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICAgIHN0ZXBzOiBzdGVwcyxcbiAgICAgIH0sXG4gICAgICBqb2JJZDogJ3ByJyxcbiAgICB9O1xuICB9XG59XG5cbmludGVyZmFjZSBVcGdyYWRlIHtcbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xuICByZWFkb25seSBqb2I6IHdvcmtmbG93cy5Kb2I7XG4gIHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQUiB7XG4gIHJlYWRvbmx5IGpvYjogd29ya2Zsb3dzLkpvYjtcbiAgcmVhZG9ubHkgam9iSWQ6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBVcGdyYWRlRGVwZW5kZW5jaWVzV29ya2Zsb3dPcHRpb25zIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzZWNyZXQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbnRhaW5lcj86IHdvcmtmbG93cy5Db250YWluZXJPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZ2l0SWRlbnRpdHk/OiBHaXRJZGVudGl0eTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBydW5zT24/OiBzdHJpbmdbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBORVZFUiA9IG5ldyBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUoW10pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERBSUxZID0gbmV3IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZShbJzAgMCAqICogKiddKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBXRUVLREFZID0gbmV3IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZShbJzAgMCAqICogMS01J10pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBXRUVLTFkgPSBuZXcgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlKFsnMCAwICogKiAxJ10pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1PTlRITFkgPSBuZXcgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlKFsnMCAwIDEgKiAqJ10pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGV4cHJlc3Npb25zKGNyb246IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIG5ldyBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUoY3Jvbik7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjcm9uOiBzdHJpbmdbXSkge31cbn1cbiJdfQ==
|
|
298
|
+
UpgradeDependenciesSchedule.MONTHLY = new UpgradeDependenciesSchedule([
|
|
299
|
+
"0 0 1 * *",
|
|
300
|
+
]);
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC91cGdyYWRlLWRlcGVuZGVuY2llcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxzQ0FBMkU7QUFDM0UsbURBQWtFO0FBQ2xFLGlFQUE2RDtBQUc3RCx3Q0FBa0M7QUFHbEMsU0FBUyxPQUFPLENBQUMsS0FBYTtJQUM1QixPQUFPLFFBQVEsS0FBSyxLQUFLLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUN4QyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsSUFBSSxpQkFBaUIsTUFBTSxFQUFFLENBQUM7QUFDcEUsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLENBQUM7QUFDNUMsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUM7Ozs7OztBQThCN0MsTUFBYSxtQkFBb0IsU0FBUSxxQkFBUzs7OztJQWlCaEQsWUFBWSxPQUFvQixFQUFFLFVBQXNDLEVBQUU7O1FBQ3hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Ozs7Ozs7UUFoQkQsY0FBUyxHQUFxQixFQUFFLENBQUM7UUFrQi9DLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsU0FBRyxPQUFPLENBQUMsZ0JBQWdCLG1DQUFJLHNCQUFzQixDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLFNBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLG1DQUFJLElBQUksQ0FBQztRQUN2RCxJQUFJLENBQUMsV0FBVyxlQUNkLE9BQU8sQ0FBQyxlQUFlLDBDQUFFLFdBQVcsbUNBQUksdUNBQTJC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Q0FBQztJQUM5RCxXQUFXO0NBQ1osQ0FBQyxDQUFDOzs7Ozs7QUFHb0IsbUNBQU8sR0FBRyxJQUFJLDJCQUEyQixDQUFDO0lBQy9ELFdBQVc7Q0FDWixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBHaXRIdWIsIEdpdGh1YldvcmtmbG93LCBHaXRJZGVudGl0eSwgd29ya2Zsb3dzIH0gZnJvbSBcIi4uL2dpdGh1YlwiO1xuaW1wb3J0IHsgREVGQVVMVF9HSVRIVUJfQUNUSU9OU19VU0VSIH0gZnJvbSBcIi4uL2dpdGh1Yi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFdvcmtmbG93QWN0aW9ucyB9IGZyb20gXCIuLi9naXRodWIvd29ya2Zsb3ctYWN0aW9uc1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyT3B0aW9ucywgSm9iU3RlcCB9IGZyb20gXCIuLi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gXCIuLi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyB3YXJuIH0gZnJvbSBcIi4uL2xvZ2dpbmdcIjtcbmltcG9ydCB7IFRhc2sgfSBmcm9tIFwiLi4vdGFza1wiO1xuXG5mdW5jdGlvbiBjb250ZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBcXCR7eyAke3ZhbHVlfSB9fWA7XG59XG5cbmNvbnN0IFJFUE8gPSBjb250ZXh0KFwiZ2l0aHViLnJlcG9zaXRvcnlcIik7XG5jb25zdCBSVU5fSUQgPSBjb250ZXh0KFwiZ2l0aHViLnJ1bl9pZFwiKTtcbmNvbnN0IFJVTl9VUkwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7UkVQT30vYWN0aW9ucy9ydW5zLyR7UlVOX0lEfWA7XG5jb25zdCBDUkVBVEVfUEFUQ0hfU1RFUF9JRCA9IFwiY3JlYXRlX3BhdGNoXCI7XG5jb25zdCBQQVRDSF9DUkVBVEVEX09VVFBVVCA9IFwicGF0Y2hfY3JlYXRlZFwiO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgVXBncmFkZURlcGVuZGVuY2llc09wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB3b3JrZmxvdz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB3b3JrZmxvd09wdGlvbnM/OiBVcGdyYWRlRGVwZW5kZW5jaWVzV29ya2Zsb3dPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0YXNrTmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RUaXRsZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpZ25vcmVQcm9qZW4/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNpZ25vZmY/OiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBVcGdyYWRlRGVwZW5kZW5jaWVzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93czogR2l0aHViV29ya2Zsb3dbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVXBncmFkZURlcGVuZGVuY2llc09wdGlvbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plY3Q6IE5vZGVQcm9qZWN0O1xuICBwcml2YXRlIHJlYWRvbmx5IHB1bGxSZXF1ZXN0VGl0bGU6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgaWdub3Jlc1Byb2plbjogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgY29udGFpbmVyT3B0aW9ucz86IENvbnRhaW5lck9wdGlvbnM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnaXRJZGVudGl0eTogR2l0SWRlbnRpdHk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcG9zdEJ1aWxkU3RlcHM6IEpvYlN0ZXBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogVXBncmFkZURlcGVuZGVuY2llc09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5fcHJvamVjdCA9IHByb2plY3Q7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnB1bGxSZXF1ZXN0VGl0bGUgPSBvcHRpb25zLnB1bGxSZXF1ZXN0VGl0bGUgPz8gXCJ1cGdyYWRlIGRlcGVuZGVuY2llc1wiO1xuICAgIHRoaXMuaWdub3Jlc1Byb2plbiA9IHRoaXMub3B0aW9ucy5pZ25vcmVQcm9qZW4gPz8gdHJ1ZTtcbiAgICB0aGlzLmdpdElkZW50aXR5ID1cbiAgICAgIG9wdGlvbnMud29ya2Zsb3dPcHRpb25zPy5naXRJZGVudGl0eSA/PyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVI7XG4gICAgdGhpcy5wb3N0QnVpbGRTdGVwcyA9IFtdO1xuICAgIHRoaXMuY29udGFpbmVyT3B0aW9ucyA9IG9wdGlvbnMud29ya2Zsb3dPcHRpb25zPy5jb250YWluZXI7XG5cbiAgICBwcm9qZWN0LmFkZERldkRlcHMoXCJucG0tY2hlY2stdXBkYXRlc0BeMTJcIik7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRQb3N0QnVpbGRTdGVwcyguLi5zdGVwczogSm9iU3RlcFtdKSB7XG4gICAgdGhpcy5wb3N0QnVpbGRTdGVwcy5wdXNoKC4uLnN0ZXBzKTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSB0aGUgdXBncmFkZSB0YXNrIGFuZCBhIGNvcnJlc3BvbmRpbmcgZ2l0aHViIHdvcmtmbG93XG4gIC8vIGZvciBlYWNoIHJlcXVlc3RlZCBicmFuY2guXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIGNvbnN0IHRhc2sgPSB0aGlzLmNyZWF0ZVRhc2soKTtcbiAgICBpZiAodGhpcy5fcHJvamVjdC5naXRodWIgJiYgKHRoaXMub3B0aW9ucy53b3JrZmxvdyA/PyB0cnVlKSkge1xuICAgICAgLy8gcmVwcmVzZW50cyB0aGUgZGVmYXVsdCByZXBvc2l0b3J5IGJyYW5jaC5cbiAgICAgIC8vIGp1c3QgbGlrZSBub3Qgc3BlY2lmeWluZyBhbnl0aGluZy5cbiAgICAgIGNvbnN0IGRlZmF1bHRCcmFuY2ggPSB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IGJyYW5jaGVzID0gdGhpcy5vcHRpb25zLndvcmtmbG93T3B0aW9ucz8uYnJhbmNoZXMgPz9cbiAgICAgICAgdGhpcy5fcHJvamVjdC5yZWxlYXNlPy5icmFuY2hlcyA/PyBbZGVmYXVsdEJyYW5jaF07XG4gICAgICBmb3IgKGNvbnN0IGJyYW5jaCBvZiBicmFuY2hlcykge1xuICAgICAgICB0aGlzLndvcmtmbG93cy5wdXNoKFxuICAgICAgICAgIHRoaXMuY3JlYXRlV29ya2Zsb3codGFzaywgdGhpcy5fcHJvamVjdC5naXRodWIsIGJyYW5jaClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRhc2soKTogVGFzayB7XG4gICAgY29uc3QgdGFza05hbWUgPSB0aGlzLm9wdGlvbnMudGFza05hbWUgPz8gXCJ1cGdyYWRlXCI7XG4gICAgY29uc3QgdGFzayA9IHRoaXMuX3Byb2plY3QuYWRkVGFzayh0YXNrTmFtZSwge1xuICAgICAgLy8gdGhpcyB0YXNrIHNob3VsZCBub3QgcnVuIGluIENJIG1vZGUgYmVjYXVzZSBpdHMgZGVzaWduZWQgdG9cbiAgICAgIC8vIHVwZGF0ZSBwYWNrYWdlLmpzb24gYW5kIGxvY2sgZmlsZXMuXG4gICAgICBlbnY6IHsgQ0k6IFwiMFwiIH0sXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5wdWxsUmVxdWVzdFRpdGxlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZXhjbHVkZSA9IHRoaXMub3B0aW9ucy5leGNsdWRlID8/IFtdO1xuICAgIGlmICh0aGlzLmlnbm9yZXNQcm9qZW4pIHtcbiAgICAgIGV4Y2x1ZGUucHVzaChcInByb2plblwiKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlcCBvZiBbXCJkZXZcIiwgXCJvcHRpb25hbFwiLCBcInBlZXJcIiwgXCJwcm9kXCIsIFwiYnVuZGxlXCJdKSB7XG4gICAgICBjb25zdCBuY3VDb21tYW5kID0gW1xuICAgICAgICBcIm5wbS1jaGVjay11cGRhdGVzXCIsXG4gICAgICAgIFwiLS1kZXBcIixcbiAgICAgICAgZGVwLFxuICAgICAgICBcIi0tdXBncmFkZVwiLFxuICAgICAgICBcIi0tdGFyZ2V0PW1pbm9yXCIsXG4gICAgICBdO1xuICAgICAgaWYgKGV4Y2x1ZGUubGVuZ3RoID4gMCkge1xuICAgICAgICBuY3VDb21tYW5kLnB1c2goYC0tcmVqZWN0PScke2V4Y2x1ZGUuam9pbihcIixcIil9J2ApO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbmNsdWRlKSB7XG4gICAgICAgIG5jdUNvbW1hbmQucHVzaChgLS1maWx0ZXI9JyR7dGhpcy5vcHRpb25zLmluY2x1ZGUuam9pbihcIixcIil9J2ApO1xuICAgICAgfVxuXG4gICAgICB0YXNrLmV4ZWMobmN1Q29tbWFuZC5qb2luKFwiIFwiKSk7XG4gICAgfVxuXG4gICAgLy8gcnVuIFwieWFybi9ucG0gaW5zdGFsbFwiIHRvIHVwZGF0ZSB0aGUgbG9ja2ZpbGUgYW5kIGluc3RhbGwgYW55IGRlcHMgKHN1Y2ggYXMgcHJvamVuKVxuICAgIHRhc2suZXhlYyh0aGlzLl9wcm9qZWN0LnBhY2thZ2UuaW5zdGFsbEFuZFVwZGF0ZUxvY2tmaWxlQ29tbWFuZCk7XG5cbiAgICAvLyBydW4gdXBncmFkZSBjb21tYW5kIHRvIHVwZ3JhZGUgdHJhbnNpdGl2ZSBkZXBzIGFzIHdlbGxcbiAgICB0YXNrLmV4ZWMoXG4gICAgICB0aGlzLl9wcm9qZWN0LnBhY2thZ2UucmVuZGVyVXBncmFkZVBhY2thZ2VzQ29tbWFuZChcbiAgICAgICAgZXhjbHVkZSxcbiAgICAgICAgdGhpcy5vcHRpb25zLmluY2x1ZGVcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gcnVuIFwicHJvamVuXCIgdG8gZ2l2ZSBwcm9qZW4gYSBjaGFuY2UgdG8gdXBkYXRlIGRlcGVuZGVuY2llcyAoaXQgd2lsbCBhbHNvIHJ1biBcInlhcm4gaW5zdGFsbFwiKVxuICAgIHRhc2suZXhlYyh0aGlzLl9wcm9qZWN0LnByb2plbkNvbW1hbmQpO1xuXG4gICAgcmV0dXJuIHRhc2s7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdvcmtmbG93KFxuICAgIHRhc2s6IFRhc2ssXG4gICAgZ2l0aHViOiBHaXRIdWIsXG4gICAgYnJhbmNoPzogc3RyaW5nXG4gICk6IEdpdGh1YldvcmtmbG93IHtcbiAgICBjb25zdCBzY2hlZHVsZSA9XG4gICAgICB0aGlzLm9wdGlvbnMud29ya2Zsb3dPcHRpb25zPy5zY2hlZHVsZSA/P1xuICAgICAgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLkRBSUxZO1xuXG4gICAgY29uc3Qgd29ya2Zsb3dOYW1lID0gYCR7dGFzay5uYW1lfSR7XG4gICAgICBicmFuY2ggPyBgLSR7YnJhbmNoLnJlcGxhY2UoL1xcLy9nLCBcIi1cIil9YCA6IFwiXCJcbiAgICB9YDtcbiAgICBjb25zdCB3b3JrZmxvdyA9IGdpdGh1Yi5hZGRXb3JrZmxvdyh3b3JrZmxvd05hbWUpO1xuICAgIGNvbnN0IHRyaWdnZXJzOiB3b3JrZmxvd3MuVHJpZ2dlcnMgPSB7XG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICAgIHNjaGVkdWxlOiBzY2hlZHVsZS5jcm9uXG4gICAgICAgID8gc2NoZWR1bGUuY3Jvbi5tYXAoKGUpID0+ICh7IGNyb246IGUgfSkpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgd29ya2Zsb3cub24odHJpZ2dlcnMpO1xuXG4gICAgY29uc3QgdXBncmFkZSA9IHRoaXMuY3JlYXRlVXBncmFkZSh0YXNrLCBicmFuY2gpO1xuICAgIGNvbnN0IHByID0gdGhpcy5jcmVhdGVQcih3b3JrZmxvdywgdXBncmFkZSk7XG5cbiAgICBjb25zdCBqb2JzOiBSZWNvcmQ8c3RyaW5nLCB3b3JrZmxvd3MuSm9iPiA9IHt9O1xuICAgIGpvYnNbdXBncmFkZS5qb2JJZF0gPSB1cGdyYWRlLmpvYjtcbiAgICBqb2JzW3ByLmpvYklkXSA9IHByLmpvYjtcblxuICAgIHdvcmtmbG93LmFkZEpvYnMoam9icyk7XG4gICAgcmV0dXJuIHdvcmtmbG93O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVVcGdyYWRlKHRhc2s6IFRhc2ssIGJyYW5jaD86IHN0cmluZyk6IFVwZ3JhZGUge1xuICAgIGNvbnN0IHJ1bnNPbiA9IHRoaXMub3B0aW9ucy53b3JrZmxvd09wdGlvbnM/LnJ1bnNPbiA/PyBbXCJ1YnVudHUtbGF0ZXN0XCJdO1xuXG4gICAgLy8gdGhhdHMgYWxsIHdlIHNob3VsZCBuZWVkIGF0IHRoaXMgc3RhZ2Ugc2luY2UgYWxsIHdlIGRvIGlzIGNsb25lLlxuICAgIC8vIG5vdGUgdGhhdCB0aGlzIGFsc28gcHJldmVudHMgbmV3IGNvZGUgdGhhdCBpcyBpbnRyb2R1Y2VkIGluIHRoZSB1cGdyYWRlXG4gICAgLy8gdG8gaGF2ZSB3cml0ZSBhY2Nlc3MgdG8gYW55dGhpbmcsIGluIGNhc2UgaXRzIHNvbWVob3cgZXhlY3V0ZWQuIChmb3IgZXhhbXBsZSBkdXJpbmcgYnVpbGQpXG4gICAgY29uc3QgcGVybWlzc2lvbnM6IHdvcmtmbG93cy5Kb2JQZXJtaXNzaW9ucyA9IHtcbiAgICAgIGNvbnRlbnRzOiB3b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFELFxuICAgIH07XG5cbiAgICBjb25zdCBzdGVwczogd29ya2Zsb3dzLkpvYlN0ZXBbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJDaGVja291dFwiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvY2hlY2tvdXRAdjJcIixcbiAgICAgICAgd2l0aDogYnJhbmNoID8geyByZWY6IGJyYW5jaCB9IDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIC4uLnRoaXMuX3Byb2plY3QuaW5zdGFsbFdvcmtmbG93U3RlcHMsXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiVXBncmFkZSBkZXBlbmRlbmNpZXNcIixcbiAgICAgICAgcnVuOiB0aGlzLl9wcm9qZWN0LnJ1blRhc2tDb21tYW5kKHRhc2spLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgc3RlcHMucHVzaCguLi50aGlzLnBvc3RCdWlsZFN0ZXBzKTtcbiAgICBzdGVwcy5wdXNoKFxuICAgICAgLi4uV29ya2Zsb3dBY3Rpb25zLmNyZWF0ZVVwbG9hZEdpdFBhdGNoKHtcbiAgICAgICAgc3RlcElkOiBDUkVBVEVfUEFUQ0hfU1RFUF9JRCxcbiAgICAgICAgb3V0cHV0TmFtZTogUEFUQ0hfQ1JFQVRFRF9PVVRQVVQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgam9iOiB7XG4gICAgICAgIG5hbWU6IFwiVXBncmFkZVwiLFxuICAgICAgICBjb250YWluZXI6IHRoaXMuY29udGFpbmVyT3B0aW9ucyxcbiAgICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zLFxuICAgICAgICBydW5zT246IHJ1bnNPbiA/PyBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgICBzdGVwczogc3RlcHMsXG4gICAgICAgIG91dHB1dHM6IHtcbiAgICAgICAgICBbUEFUQ0hfQ1JFQVRFRF9PVVRQVVRdOiB7XG4gICAgICAgICAgICBzdGVwSWQ6IENSRUFURV9QQVRDSF9TVEVQX0lELFxuICAgICAgICAgICAgb3V0cHV0TmFtZTogUEFUQ0hfQ1JFQVRFRF9PVVRQVVQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBqb2JJZDogXCJ1cGdyYWRlXCIsXG4gICAgICByZWY6IGJyYW5jaCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQcih3b3JrZmxvdzogR2l0aHViV29ya2Zsb3csIHVwZ3JhZGU6IFVwZ3JhZGUpOiBQUiB7XG4gICAgY29uc3Qgc2VjcmV0TmFtZSA9XG4gICAgICB0aGlzLm9wdGlvbnMud29ya2Zsb3dPcHRpb25zPy5zZWNyZXQgPz8gd29ya2Zsb3cucHJvamVuVG9rZW5TZWNyZXQ7XG4gICAgaWYgKHRoaXMub3B0aW9ucy53b3JrZmxvd09wdGlvbnM/LnNlY3JldCA9PT0gd29ya2Zsb3cucHJvamVuVG9rZW5TZWNyZXQpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgIGBObyBuZWVkIHRvIHNwZWNpZnkgXCJ3b3JrZmxvd09wdGlvbnMuc2VjcmV0XCIgd2hlbiBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdCB3b3JrZmxvdyBwcm9qZW4gdG9rZW4gc2VjcmV0IChcIiR7d29ya2Zsb3cucHJvamVuVG9rZW5TZWNyZXR9XCIpLmBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gY29udGV4dChgc2VjcmV0cy4ke3NlY3JldE5hbWV9YCk7XG4gICAgY29uc3QgcnVuc09uID0gdGhpcy5vcHRpb25zLndvcmtmbG93T3B0aW9ucz8ucnVuc09uID8/IFtcInVidW50dS1sYXRlc3RcIl07XG4gICAgY29uc3Qgd29ya2Zsb3dOYW1lID0gd29ya2Zsb3cubmFtZTtcbiAgICBjb25zdCBicmFuY2hOYW1lID0gYGdpdGh1Yi1hY3Rpb25zLyR7d29ya2Zsb3dOYW1lfWA7XG4gICAgY29uc3QgcHJTdGVwSWQgPSBcImNyZWF0ZS1wclwiO1xuXG4gICAgY29uc3QgdGl0bGUgPSBgY2hvcmUoZGVwcyk6ICR7dGhpcy5wdWxsUmVxdWVzdFRpdGxlfWA7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBbXG4gICAgICBcIlVwZ3JhZGVzIHByb2plY3QgZGVwZW5kZW5jaWVzLiBTZWUgZGV0YWlscyBpbiBbd29ya2Zsb3cgcnVuXS5cIixcbiAgICAgIFwiXCIsXG4gICAgICBgW1dvcmtmbG93IFJ1bl06ICR7UlVOX1VSTH1gLFxuICAgICAgXCJcIixcbiAgICAgIFwiLS0tLS0tXCIsXG4gICAgICBcIlwiLFxuICAgICAgYCpBdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYnkgcHJvamVuIHZpYSB0aGUgXCIke3dvcmtmbG93Lm5hbWV9XCIgd29ya2Zsb3cqYCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG5cbiAgICBjb25zdCBjb21pdHRlciA9IGAke3RoaXMuZ2l0SWRlbnRpdHkubmFtZX0gPCR7dGhpcy5naXRJZGVudGl0eS5lbWFpbH0+YDtcblxuICAgIGNvbnN0IHN0ZXBzOiB3b3JrZmxvd3MuSm9iU3RlcFtdID0gW1xuICAgICAgLi4uV29ya2Zsb3dBY3Rpb25zLmNoZWNrb3V0V2l0aFBhdGNoKHtcbiAgICAgICAgdG9rZW46IGBcXCR7eyBzZWNyZXRzLiR7d29ya2Zsb3cucHJvamVuVG9rZW5TZWNyZXR9IH19YCxcbiAgICAgICAgcmVmOiB1cGdyYWRlLnJlZixcbiAgICAgIH0pLFxuICAgICAgLi4uV29ya2Zsb3dBY3Rpb25zLnNldEdpdElkZW50aXR5KHRoaXMuZ2l0SWRlbnRpdHkpLFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkNyZWF0ZSBQdWxsIFJlcXVlc3RcIixcbiAgICAgICAgaWQ6IHByU3RlcElkLFxuICAgICAgICB1c2VzOiBcInBldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RAdjNcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIC8vIHRoZSBwciBjYW4gbW9kaWZ5IHdvcmtmbG93IGZpbGVzLCBzbyB3ZSBuZWVkIHRvIHVzZSB0aGUgY3VzdG9tXG4gICAgICAgICAgLy8gc2VjcmV0IGlmIG9uZSBpcyBjb25maWd1cmVkLlxuICAgICAgICAgIHRva2VuOiB0b2tlbixcbiAgICAgICAgICBcImNvbW1pdC1tZXNzYWdlXCI6IGAke3RpdGxlfVxcblxcbiR7ZGVzY3JpcHRpb259YCxcbiAgICAgICAgICBicmFuY2g6IGJyYW5jaE5hbWUsXG4gICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgIGxhYmVsczogdGhpcy5vcHRpb25zLndvcmtmbG93T3B0aW9ucz8ubGFiZWxzPy5qb2luKFwiLFwiKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgYm9keTogZGVzY3JpcHRpb24sXG4gICAgICAgICAgYXV0aG9yOiBjb21pdHRlcixcbiAgICAgICAgICBjb21taXR0ZXI6IGNvbWl0dGVyLFxuICAgICAgICAgIHNpZ25vZmY6IHRoaXMub3B0aW9ucy5zaWdub2ZmID8/IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgam9iOiB7XG4gICAgICAgIG5hbWU6IFwiQ3JlYXRlIFB1bGwgUmVxdWVzdFwiLFxuICAgICAgICBpZjogYFxcJHt7IG5lZWRzLiR7dXBncmFkZS5qb2JJZH0ub3V0cHV0cy4ke1BBVENIX0NSRUFURURfT1VUUFVUfSB9fWAsXG4gICAgICAgIG5lZWRzOiBbdXBncmFkZS5qb2JJZF0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgY29udGVudHM6IHdvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIHB1bGxSZXF1ZXN0czogd29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bnNPbjogcnVuc09uID8/IFtcInVidW50dS1sYXRlc3RcIl0sXG4gICAgICAgIHN0ZXBzOiBzdGVwcyxcbiAgICAgIH0sXG4gICAgICBqb2JJZDogXCJwclwiLFxuICAgIH07XG4gIH1cbn1cblxuaW50ZXJmYWNlIFVwZ3JhZGUge1xuICByZWFkb25seSByZWY/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGpvYjogd29ya2Zsb3dzLkpvYjtcbiAgcmVhZG9ubHkgam9iSWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBSIHtcbiAgcmVhZG9ubHkgam9iOiB3b3JrZmxvd3MuSm9iO1xuICByZWFkb25seSBqb2JJZDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFVwZ3JhZGVEZXBlbmRlbmNpZXNXb3JrZmxvd09wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzZWNyZXQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbnRhaW5lcj86IHdvcmtmbG93cy5Db250YWluZXJPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZ2l0SWRlbnRpdHk/OiBHaXRJZGVudGl0eTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBydW5zT24/OiBzdHJpbmdbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkVWRVIgPSBuZXcgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlKFtdKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEQUlMWSA9IG5ldyBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUoW1wiMCAwICogKiAqXCJdKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBXRUVLREFZID0gbmV3IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZShbXG4gICAgXCIwIDAgKiAqIDEtNVwiLFxuICBdKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgV0VFS0xZID0gbmV3IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZShbXG4gICAgXCIwIDAgKiAqIDFcIixcbiAgXSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTU9OVEhMWSA9IG5ldyBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUoW1xuICAgIFwiMCAwIDEgKiAqXCIsXG4gIF0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGV4cHJlc3Npb25zKGNyb246IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIG5ldyBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUoY3Jvbik7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjcm9uOiBzdHJpbmdbXSkge31cbn1cbiJdfQ==
|
package/lib/javascript/util.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.renderBundleName = void 0;
|
|
|
4
4
|
const path_1 = require("path");
|
|
5
5
|
function renderBundleName(entrypoint) {
|
|
6
6
|
const parts = path_1.join(entrypoint).split(path_1.sep);
|
|
7
|
-
if (parts[0] ===
|
|
7
|
+
if (parts[0] === "src") {
|
|
8
8
|
parts.shift(); // just remove 'src' if its the first element for ergonomics
|
|
9
9
|
}
|
|
10
10
|
const p = parts.join(path_1.sep);
|
|
@@ -13,4 +13,4 @@ function renderBundleName(entrypoint) {
|
|
|
13
13
|
return path_1.join(dir, base);
|
|
14
14
|
}
|
|
15
15
|
exports.renderBundleName = renderBundleName;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQTZEO0FBRTdELFNBQWdCLGdCQUFnQixDQUFDLFVBQWtCO0lBQ2pELE1BQU0sS0FBSyxHQUFHLFdBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBRyxDQUFDLENBQUM7SUFDMUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQ3RCLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLDREQUE0RDtLQUM1RTtJQUVELE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBRyxDQUFDLENBQUM7SUFDMUIsTUFBTSxHQUFHLEdBQUcsY0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLGVBQVEsQ0FBQyxDQUFDLEVBQUUsY0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsT0FBTyxXQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFWRCw0Q0FVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhc2VuYW1lLCBkaXJuYW1lLCBleHRuYW1lLCBqb2luLCBzZXAgfSBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyQnVuZGxlTmFtZShlbnRyeXBvaW50OiBzdHJpbmcpIHtcbiAgY29uc3QgcGFydHMgPSBqb2luKGVudHJ5cG9pbnQpLnNwbGl0KHNlcCk7XG4gIGlmIChwYXJ0c1swXSA9PT0gXCJzcmNcIikge1xuICAgIHBhcnRzLnNoaWZ0KCk7IC8vIGp1c3QgcmVtb3ZlICdzcmMnIGlmIGl0cyB0aGUgZmlyc3QgZWxlbWVudCBmb3IgZXJnb25vbWljc1xuICB9XG5cbiAgY29uc3QgcCA9IHBhcnRzLmpvaW4oc2VwKTtcbiAgY29uc3QgZGlyID0gZGlybmFtZShwKTtcbiAgY29uc3QgYmFzZSA9IGJhc2VuYW1lKHAsIGV4dG5hbWUocCkpO1xuICByZXR1cm4gam9pbihkaXIsIGJhc2UpO1xufVxuIl19
|
package/lib/json.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IResolver } from
|
|
2
|
-
import { ObjectFile, ObjectFileOptions } from
|
|
3
|
-
import { Project } from
|
|
1
|
+
import { IResolver } from "./file";
|
|
2
|
+
import { ObjectFile, ObjectFileOptions } from "./object-file";
|
|
3
|
+
import { Project } from "./project";
|
|
4
4
|
/**
|
|
5
5
|
* (experimental) Options for `JsonFile`.
|
|
6
6
|
*
|
package/lib/json.js
CHANGED
|
@@ -33,16 +33,16 @@ class JsonFile extends object_file_1.ObjectFile {
|
|
|
33
33
|
}
|
|
34
34
|
const sanitized = JSON.parse(json);
|
|
35
35
|
if (this.marker) {
|
|
36
|
-
sanitized[
|
|
36
|
+
sanitized["//"] = JsonFile.PROJEN_MARKER;
|
|
37
37
|
}
|
|
38
38
|
let content = JSON.stringify(sanitized, undefined, 2);
|
|
39
39
|
if (this.newline) {
|
|
40
|
-
content +=
|
|
40
|
+
content += "\n";
|
|
41
41
|
}
|
|
42
42
|
return content;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
exports.JsonFile = JsonFile;
|
|
46
46
|
_a = JSII_RTTI_SYMBOL_1;
|
|
47
|
-
JsonFile[_a] = { fqn: "projen.JsonFile", version: "0.49.
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
JsonFile[_a] = { fqn: "projen.JsonFile", version: "0.49.1" };
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0NBQThEOzs7Ozs7QUFVOUQsTUFBYSxRQUFTLFNBQVEsd0JBQVU7Ozs7SUFHdEMsWUFBWSxPQUFnQixFQUFFLFFBQWdCLEVBQUUsT0FBd0I7O1FBQ3RFLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxPQUFPLFNBQUcsT0FBTyxDQUFDLE9BQU8sbUNBQUksSUFBSSxDQUFDO1FBRXZDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7Ozs7OztJQUVTLGlCQUFpQixDQUFDLFFBQW1CO1FBQzdDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1NBQzFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixPQUFPLElBQUksSUFBSSxDQUFDO1NBQ2pCO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7QUEvQkgsNEJBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVJlc29sdmVyIH0gZnJvbSBcIi4vZmlsZVwiO1xuaW1wb3J0IHsgT2JqZWN0RmlsZSwgT2JqZWN0RmlsZU9wdGlvbnMgfSBmcm9tIFwiLi9vYmplY3QtZmlsZVwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBKc29uRmlsZU9wdGlvbnMgZXh0ZW5kcyBPYmplY3RGaWxlT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBuZXdsaW5lPzogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEpzb25GaWxlIGV4dGVuZHMgT2JqZWN0RmlsZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmV3bGluZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBmaWxlUGF0aDogc3RyaW5nLCBvcHRpb25zOiBKc29uRmlsZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwgb3B0aW9ucyk7XG5cbiAgICB0aGlzLm5ld2xpbmUgPSBvcHRpb25zLm5ld2xpbmUgPz8gdHJ1ZTtcblxuICAgIGlmICghb3B0aW9ucy5vYmopIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignXCJvYmpcIiBjYW5ub3QgYmUgdW5kZWZpbmVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KHJlc29sdmVyOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGpzb24gPSBzdXBlci5zeW50aGVzaXplQ29udGVudChyZXNvbHZlcik7XG4gICAgaWYgKCFqc29uKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHNhbml0aXplZCA9IEpTT04ucGFyc2UoanNvbik7XG5cbiAgICBpZiAodGhpcy5tYXJrZXIpIHtcbiAgICAgIHNhbml0aXplZFtcIi8vXCJdID0gSnNvbkZpbGUuUFJPSkVOX01BUktFUjtcbiAgICB9XG5cbiAgICBsZXQgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KHNhbml0aXplZCwgdW5kZWZpbmVkLCAyKTtcbiAgICBpZiAodGhpcy5uZXdsaW5lKSB7XG4gICAgICBjb250ZW50ICs9IFwiXFxuXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbn1cbiJdfQ==
|
package/lib/license.d.ts
CHANGED
package/lib/license.js
CHANGED
|
@@ -14,7 +14,7 @@ class License extends file_1.FileBase {
|
|
|
14
14
|
*/
|
|
15
15
|
constructor(project, options) {
|
|
16
16
|
var _b;
|
|
17
|
-
super(project,
|
|
17
|
+
super(project, "LICENSE");
|
|
18
18
|
const spdx = options.spdx;
|
|
19
19
|
const textFile = `${__dirname}/../license-text/${spdx}.txt`;
|
|
20
20
|
if (!fs.existsSync(textFile)) {
|
|
@@ -22,14 +22,14 @@ class License extends file_1.FileBase {
|
|
|
22
22
|
}
|
|
23
23
|
const years = (_b = options.copyrightPeriod) !== null && _b !== void 0 ? _b : new Date().getFullYear().toString();
|
|
24
24
|
const owner = options.copyrightOwner;
|
|
25
|
-
let text = fs.readFileSync(textFile,
|
|
26
|
-
text = text.replace(
|
|
25
|
+
let text = fs.readFileSync(textFile, "utf-8");
|
|
26
|
+
text = text.replace("$copyright_period", years);
|
|
27
27
|
// if the license text includes $copyright_owner, then `copyrightOwner` is required.
|
|
28
|
-
if (text.indexOf(
|
|
28
|
+
if (text.indexOf("$copyright_owner") !== -1) {
|
|
29
29
|
if (!owner) {
|
|
30
30
|
throw new Error(`The ${spdx} license requires "copyrightOwner" to be specified`);
|
|
31
31
|
}
|
|
32
|
-
text = text.replace(
|
|
32
|
+
text = text.replace("$copyright_owner", owner);
|
|
33
33
|
}
|
|
34
34
|
this.text = text;
|
|
35
35
|
}
|
|
@@ -44,5 +44,5 @@ class License extends file_1.FileBase {
|
|
|
44
44
|
}
|
|
45
45
|
exports.License = License;
|
|
46
46
|
_a = JSII_RTTI_SYMBOL_1;
|
|
47
|
-
License[_a] = { fqn: "projen.License", version: "0.49.
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
License[_a] = { fqn: "projen.License", version: "0.49.1" };
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWNlbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLGlDQUE2Qzs7OztBQWM3QyxNQUFhLE9BQVEsU0FBUSxlQUFROzs7O0lBR25DLFlBQVksT0FBZ0IsRUFBRSxPQUF1Qjs7UUFDbkQsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUxQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBRTFCLE1BQU0sUUFBUSxHQUFHLEdBQUcsU0FBUyxvQkFBb0IsSUFBSSxNQUFNLENBQUM7UUFDNUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoRDtRQUVELE1BQU0sS0FBSyxTQUNULE9BQU8sQ0FBQyxlQUFlLG1DQUFJLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUVyQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVoRCxvRkFBb0Y7UUFDcEYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixNQUFNLElBQUksS0FBSyxDQUNiLE9BQU8sSUFBSSxvREFBb0QsQ0FDaEUsQ0FBQzthQUNIO1lBRUQsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEQ7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDOzs7Ozs7SUFFUyxpQkFBaUIsQ0FBQyxDQUFZO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDOztBQXJDSCwwQkFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IEZpbGVCYXNlLCBJUmVzb2x2ZXIgfSBmcm9tIFwiLi9maWxlXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpY2Vuc2VPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc3BkeDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb3B5cmlnaHRPd25lcj86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvcHlyaWdodFBlcmlvZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIExpY2Vuc2UgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IExpY2Vuc2VPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCwgXCJMSUNFTlNFXCIpO1xuXG4gICAgY29uc3Qgc3BkeCA9IG9wdGlvbnMuc3BkeDtcblxuICAgIGNvbnN0IHRleHRGaWxlID0gYCR7X19kaXJuYW1lfS8uLi9saWNlbnNlLXRleHQvJHtzcGR4fS50eHRgO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyh0ZXh0RmlsZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgbGljZW5zZSAke3NwZHh9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgeWVhcnMgPVxuICAgICAgb3B0aW9ucy5jb3B5cmlnaHRQZXJpb2QgPz8gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XG4gICAgY29uc3Qgb3duZXIgPSBvcHRpb25zLmNvcHlyaWdodE93bmVyO1xuXG4gICAgbGV0IHRleHQgPSBmcy5yZWFkRmlsZVN5bmModGV4dEZpbGUsIFwidXRmLThcIik7XG5cbiAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKFwiJGNvcHlyaWdodF9wZXJpb2RcIiwgeWVhcnMpO1xuXG4gICAgLy8gaWYgdGhlIGxpY2Vuc2UgdGV4dCBpbmNsdWRlcyAkY29weXJpZ2h0X293bmVyLCB0aGVuIGBjb3B5cmlnaHRPd25lcmAgaXMgcmVxdWlyZWQuXG4gICAgaWYgKHRleHQuaW5kZXhPZihcIiRjb3B5cmlnaHRfb3duZXJcIikgIT09IC0xKSB7XG4gICAgICBpZiAoIW93bmVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGhlICR7c3BkeH0gbGljZW5zZSByZXF1aXJlcyBcImNvcHlyaWdodE93bmVyXCIgdG8gYmUgc3BlY2lmaWVkYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKFwiJGNvcHlyaWdodF9vd25lclwiLCBvd25lcik7XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0ID0gdGV4dDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRleHQ7XG4gIH1cbn1cbiJdfQ==
|
package/lib/logger.d.ts
CHANGED
package/lib/logger.js
CHANGED
|
@@ -37,7 +37,7 @@ class Logger extends component_1.Component {
|
|
|
37
37
|
*/
|
|
38
38
|
log(level, ...text) {
|
|
39
39
|
if (level === LogLevel.OFF) {
|
|
40
|
-
throw new Error(
|
|
40
|
+
throw new Error("Cannot log a message with level LogLevel.OFF");
|
|
41
41
|
}
|
|
42
42
|
let maxLevel = this.level;
|
|
43
43
|
// logging level can be overridden through the --debug CLI option
|
|
@@ -46,7 +46,7 @@ class Logger extends component_1.Component {
|
|
|
46
46
|
}
|
|
47
47
|
if (level <= maxLevel) {
|
|
48
48
|
const color = this.colorForLogLevel(level);
|
|
49
|
-
const prefix = this.usePrefix ? `[${this.project.name}] ` :
|
|
49
|
+
const prefix = this.usePrefix ? `[${this.project.name}] ` : "";
|
|
50
50
|
console.error(`${logging_1.ICON} ${prefix}${color(...text)}`);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -97,11 +97,16 @@ class Logger extends component_1.Component {
|
|
|
97
97
|
}
|
|
98
98
|
colorForLogLevel(level) {
|
|
99
99
|
switch (level) {
|
|
100
|
-
case LogLevel.ERROR:
|
|
101
|
-
|
|
102
|
-
case LogLevel.
|
|
103
|
-
|
|
104
|
-
case LogLevel.
|
|
100
|
+
case LogLevel.ERROR:
|
|
101
|
+
return chalk.red;
|
|
102
|
+
case LogLevel.WARN:
|
|
103
|
+
return chalk.yellow;
|
|
104
|
+
case LogLevel.INFO:
|
|
105
|
+
return chalk.cyan;
|
|
106
|
+
case LogLevel.DEBUG:
|
|
107
|
+
return chalk.gray;
|
|
108
|
+
case LogLevel.VERBOSE:
|
|
109
|
+
return chalk.white;
|
|
105
110
|
default:
|
|
106
111
|
return chalk.white;
|
|
107
112
|
}
|
|
@@ -109,7 +114,7 @@ class Logger extends component_1.Component {
|
|
|
109
114
|
}
|
|
110
115
|
exports.Logger = Logger;
|
|
111
116
|
_a = JSII_RTTI_SYMBOL_1;
|
|
112
|
-
Logger[_a] = { fqn: "projen.Logger", version: "0.49.
|
|
117
|
+
Logger[_a] = { fqn: "projen.Logger", version: "0.49.1" };
|
|
113
118
|
/**
|
|
114
119
|
* (experimental) Logging verbosity.
|
|
115
120
|
*
|
|
@@ -124,4 +129,4 @@ var LogLevel;
|
|
|
124
129
|
LogLevel["DEBUG"] = "40.debug";
|
|
125
130
|
LogLevel["VERBOSE"] = "50.verbose";
|
|
126
131
|
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUErQjtBQUMvQixxQ0FBdUM7QUFDdkMsMkNBQXdDO0FBQ3hDLHVDQUFpQztBQUVqQyxpQ0FBa0M7Ozs7OztBQVlsQyxNQUFhLE1BQU8sU0FBUSxxQkFBUzs7OztJQUluQyxZQUFZLE9BQWdCLEVBQUUsVUFBeUIsRUFBRTs7UUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsc0RBQXNEO1FBQ3RELE1BQU0sWUFBWSxHQUFHLG9CQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFaEUsSUFBSSxDQUFDLEtBQUssU0FBRyxPQUFPLENBQUMsS0FBSyxtQ0FBSSxZQUFZLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsU0FBRyxPQUFPLENBQUMsU0FBUyxtQ0FBSSxLQUFLLENBQUM7SUFDOUMsQ0FBQzs7Ozs7Ozs7Ozs7SUFHTSxHQUFHLENBQUMsS0FBZSxFQUFFLEdBQUcsSUFBVztRQUN4QyxJQUFJLEtBQUssS0FBSyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFMUIsaUVBQWlFO1FBQ2pFLElBQUksZUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDNUQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDM0I7UUFFRCxJQUFJLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxjQUFJLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7Ozs7Ozs7SUFHTSxPQUFPLENBQUMsR0FBRyxJQUFXO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7Ozs7SUFHTSxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7Ozs7SUFHTSxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7Ozs7Ozs7SUFHTSxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7Ozs7Ozs7SUFHTSxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFlO1FBQ3RDLFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ25CLEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN0QixLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEIsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEtBQUssUUFBUSxDQUFDLE9BQU87Z0JBQ25CLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNyQjtnQkFDRSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDdEI7SUFDSCxDQUFDOztBQTFFSCx3QkEyRUM7Ozs7Ozs7O0FBR0QsSUFBWSxRQU9YO0FBUEQsV0FBWSxRQUFRO0lBQ2xCLDBCQUFjLENBQUE7SUFDZCw4QkFBa0IsQ0FBQTtJQUNsQiw0QkFBZ0IsQ0FBQTtJQUNoQiw0QkFBZ0IsQ0FBQTtJQUNoQiw4QkFBa0IsQ0FBQTtJQUNsQixrQ0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBUFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFPbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7IElTX1RFU1RfUlVOIH0gZnJvbSBcIi4vY29tbW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IElDT04gfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgaXNUcnV0aHkgfSBmcm9tIFwiLi91dGlsXCI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlck9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsZXZlbD86IExvZ0xldmVsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHVzZVByZWZpeD86IGJvb2xlYW47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBMb2dnZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGxldmVsOiBMb2dMZXZlbDtcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VQcmVmaXg6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogTG9nZ2VyT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICAvLyBpZiB3ZSBhcmUgcnVubmluZyBpbnNpZGUgYSB0ZXN0LCBkZWZhdWx0IHRvIG5vIGxvZ3NcbiAgICBjb25zdCBkZWZhdWx0TGV2ZWwgPSBJU19URVNUX1JVTiA/IExvZ0xldmVsLk9GRiA6IExvZ0xldmVsLklORk87XG5cbiAgICB0aGlzLmxldmVsID0gb3B0aW9ucy5sZXZlbCA/PyBkZWZhdWx0TGV2ZWw7XG4gICAgdGhpcy51c2VQcmVmaXggPSBvcHRpb25zLnVzZVByZWZpeCA/PyBmYWxzZTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgbG9nKGxldmVsOiBMb2dMZXZlbCwgLi4udGV4dDogYW55W10pIHtcbiAgICBpZiAobGV2ZWwgPT09IExvZ0xldmVsLk9GRikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGxvZyBhIG1lc3NhZ2Ugd2l0aCBsZXZlbCBMb2dMZXZlbC5PRkZcIik7XG4gICAgfVxuXG4gICAgbGV0IG1heExldmVsID0gdGhpcy5sZXZlbDtcblxuICAgIC8vIGxvZ2dpbmcgbGV2ZWwgY2FuIGJlIG92ZXJyaWRkZW4gdGhyb3VnaCB0aGUgLS1kZWJ1ZyBDTEkgb3B0aW9uXG4gICAgaWYgKGlzVHJ1dGh5KHByb2Nlc3MuZW52LkRFQlVHKSAmJiBtYXhMZXZlbCA8IExvZ0xldmVsLkRFQlVHKSB7XG4gICAgICBtYXhMZXZlbCA9IExvZ0xldmVsLkRFQlVHO1xuICAgIH1cblxuICAgIGlmIChsZXZlbCA8PSBtYXhMZXZlbCkge1xuICAgICAgY29uc3QgY29sb3IgPSB0aGlzLmNvbG9yRm9yTG9nTGV2ZWwobGV2ZWwpO1xuICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy51c2VQcmVmaXggPyBgWyR7dGhpcy5wcm9qZWN0Lm5hbWV9XSBgIDogXCJcIjtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7SUNPTn0gJHtwcmVmaXh9JHtjb2xvciguLi50ZXh0KX1gKTtcbiAgICB9XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHZlcmJvc2UoLi4udGV4dDogYW55W10pIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5WRVJCT1NFLCAuLi50ZXh0KTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGRlYnVnKC4uLnRleHQ6IGFueVtdKSB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuREVCVUcsIC4uLnRleHQpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBpbmZvKC4uLnRleHQ6IGFueVtdKSB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuSU5GTywgLi4udGV4dCk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHdhcm4oLi4udGV4dDogYW55W10pIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5XQVJOLCAuLi50ZXh0KTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGVycm9yKC4uLnRleHQ6IGFueVtdKSB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuRVJST1IsIC4uLnRleHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xvckZvckxvZ0xldmVsKGxldmVsOiBMb2dMZXZlbCk6IGNoYWxrLkNoYWxrRnVuY3Rpb24ge1xuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgIGNhc2UgTG9nTGV2ZWwuRVJST1I6XG4gICAgICAgIHJldHVybiBjaGFsay5yZWQ7XG4gICAgICBjYXNlIExvZ0xldmVsLldBUk46XG4gICAgICAgIHJldHVybiBjaGFsay55ZWxsb3c7XG4gICAgICBjYXNlIExvZ0xldmVsLklORk86XG4gICAgICAgIHJldHVybiBjaGFsay5jeWFuO1xuICAgICAgY2FzZSBMb2dMZXZlbC5ERUJVRzpcbiAgICAgICAgcmV0dXJuIGNoYWxrLmdyYXk7XG4gICAgICBjYXNlIExvZ0xldmVsLlZFUkJPU0U6XG4gICAgICAgIHJldHVybiBjaGFsay53aGl0ZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBjaGFsay53aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBlbnVtIExvZ0xldmVsIHtcbiAgT0ZGID0gXCIwMC5vZmZcIixcbiAgRVJST1IgPSBcIjEwLmVycm9yXCIsXG4gIFdBUk4gPSBcIjIwLndhcm5cIixcbiAgSU5GTyA9IFwiMzAuaW5mb1wiLFxuICBERUJVRyA9IFwiNDAuZGVidWdcIixcbiAgVkVSQk9TRSA9IFwiNTAudmVyYm9zZVwiLFxufVxuIl19
|