@xpertss/projen-types 0.0.2 → 0.0.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 +118 -103
- package/API.md +101 -61
- package/README.md +35 -13
- package/lib/actions/action-build-workflow.js +1 -1
- package/lib/actions/action-dogfood-workflow.d.ts +5 -1
- package/lib/actions/action-dogfood-workflow.js +49 -19
- package/lib/actions/action-sonar-workflow.js +1 -1
- package/lib/actions/github-action-project.d.ts +15 -6
- package/lib/actions/github-action-project.js +16 -24
- package/lib/cdk/app-runtime-scaffold.js +1 -1
- package/lib/cdk/cdk-app-project.js +1 -1
- package/lib/cdk/cdk-infra-project.js +1 -1
- package/lib/cdk/cdk-typescript-base.js +38 -2
- package/lib/cdk/components/ecr-ecs-constructs.js +1 -1
- package/lib/cdk/components/edge-networking-constructs.js +1 -1
- package/lib/cdk/database-component.js +1 -1
- package/lib/cdk/options.d.ts +14 -2
- package/lib/cdk/options.js +1 -1
- package/lib/common/actions-allowlist-guard.js +1 -1
- package/lib/common/projen-drift-check-workflow.js +7 -3
- package/lib/common/projenrc-ts.d.ts +22 -0
- package/lib/common/projenrc-ts.js +43 -0
- package/lib/common/workflow-change-notice-workflow.js +1 -1
- package/lib/java/components/cdk-deploy-hook.d.ts +7 -0
- package/lib/java/components/cdk-deploy-hook.js +26 -5
- package/lib/java/components/code-index-workflow.js +1 -1
- package/lib/java/components/docker-publish.js +1 -1
- package/lib/java/components/flyway-migration.js +1 -1
- package/lib/java/components/github-packages-publish.js +1 -1
- package/lib/java/components/maven-central-publish.js +1 -1
- package/lib/java/java-app-project.js +1 -1
- package/lib/java/java-library-project.js +1 -1
- package/lib/java/java-maven-base.js +21 -2
- package/lib/java/java-service-project.js +6 -5
- package/lib/java/options.d.ts +27 -5
- package/lib/java/options.js +1 -1
- package/package.json +2 -2
|
@@ -14,7 +14,7 @@ const SONAR_SCANNER_SHA256 = 'bb8f709f9cb73352f8d1260a3b3c506c0f41146754bc630762
|
|
|
14
14
|
* default inclusions may skip `action.yml` outside `.github/`.
|
|
15
15
|
*/
|
|
16
16
|
class ActionSonarWorkflow extends projen_1.Component {
|
|
17
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionSonarWorkflow", version: "0.0.
|
|
17
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionSonarWorkflow", version: "0.0.4" };
|
|
18
18
|
workflow;
|
|
19
19
|
constructor(scope, options) {
|
|
20
20
|
super(scope, 'ActionSonarWorkflow');
|
|
@@ -31,10 +31,19 @@ export interface GitHubActionProjectOptions extends github.GitHubProjectOptions
|
|
|
31
31
|
/**
|
|
32
32
|
* The dogfood scenario (AD-001). What fixture state, what to assert, and
|
|
33
33
|
* how to clean up are specified by the action's own F### spec - the
|
|
34
|
-
* highest-risk behavior of that action.
|
|
35
|
-
*
|
|
34
|
+
* highest-risk behavior of that action.
|
|
35
|
+
*
|
|
36
|
+
* Its type is a struct, which projen's CLI cannot render into a projenrc,
|
|
37
|
+
* so it can only be written by hand - it is therefore optional, because a
|
|
38
|
+
* *required* option `projen new` cannot supply would make this project
|
|
39
|
+
* type impossible to scaffold. AD-001's "never a silent no-op dogfood"
|
|
40
|
+
* rule is enforced instead by the workflow it generates in that case: a
|
|
41
|
+
* single step that fails on every PR until a scenario is declared.
|
|
42
|
+
*
|
|
43
|
+
* @default - `test-dogfood.yml` runs one failing step that tells you to
|
|
44
|
+
* declare a scenario
|
|
36
45
|
*/
|
|
37
|
-
readonly dogfood
|
|
46
|
+
readonly dogfood?: ActionDogfoodOptions;
|
|
38
47
|
/**
|
|
39
48
|
* SPDX identifier for the generated `LICENSE`.
|
|
40
49
|
* @default "MIT"
|
|
@@ -45,9 +54,9 @@ export interface GitHubActionProjectOptions extends github.GitHubProjectOptions
|
|
|
45
54
|
* Scaffolds the repo lifecycle (AD-001) around a hand-committed, composite
|
|
46
55
|
* (shell) GitHub Action: the `build`/`test-dogfood`/`sonar`/`release`
|
|
47
56
|
* workflows, versioning and release discipline, the F003 verify components,
|
|
48
|
-
* the F009 allowlist guard, and repo boilerplate (
|
|
49
|
-
*
|
|
50
|
-
*
|
|
57
|
+
* the F009 allowlist guard, and repo boilerplate (a private version-source
|
|
58
|
+
* `package.json`, `.yamllint`, `LICENSE`, and a `README.md` template). The
|
|
59
|
+
* action's own content
|
|
51
60
|
* (`action.yml`, its shell scripts, `test/` fixtures) is authored by hand
|
|
52
61
|
* per the action's own F### spec - this type only lints it.
|
|
53
62
|
*/
|
|
@@ -10,6 +10,7 @@ const actions_allowlist_guard_1 = require("../common/actions-allowlist-guard");
|
|
|
10
10
|
const constants_1 = require("../common/constants");
|
|
11
11
|
const internal_actions_1 = require("../common/internal-actions");
|
|
12
12
|
const projen_drift_check_workflow_1 = require("../common/projen-drift-check-workflow");
|
|
13
|
+
const projenrc_ts_1 = require("../common/projenrc-ts");
|
|
13
14
|
const workflow_change_notice_workflow_1 = require("../common/workflow-change-notice-workflow");
|
|
14
15
|
// `require('projen/package.json')`/`require('../../package.json')` resolve
|
|
15
16
|
// via Node's normal module resolution, so in a *published* package these
|
|
@@ -21,12 +22,10 @@ const workflow_change_notice_workflow_1 = require("../common/workflow-change-not
|
|
|
21
22
|
const PROJEN_VERSION = require('projen/package.json').version;
|
|
22
23
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
23
24
|
const PROJEN_TYPES_VERSION = require('../../package.json').version;
|
|
24
|
-
// Exact
|
|
25
|
-
// tag/semver range in anything a generated repo depends on). Upgrading
|
|
26
|
-
//
|
|
25
|
+
// Exact pin, recorded as a component constant (AD-001: no latest/moving
|
|
26
|
+
// tag/semver range in anything a generated repo depends on). Upgrading this
|
|
27
|
+
// is a reviewed diff of this file.
|
|
27
28
|
const COMMIT_AND_TAG_VERSION = '13.2.1';
|
|
28
|
-
const TS_NODE_VERSION = '10.9.2';
|
|
29
|
-
const TYPESCRIPT_VERSION = '6.0.3';
|
|
30
29
|
function defaultReadmeContents(options) {
|
|
31
30
|
return `# ${options.name}
|
|
32
31
|
|
|
@@ -56,14 +55,14 @@ hand-committed.
|
|
|
56
55
|
* Scaffolds the repo lifecycle (AD-001) around a hand-committed, composite
|
|
57
56
|
* (shell) GitHub Action: the `build`/`test-dogfood`/`sonar`/`release`
|
|
58
57
|
* workflows, versioning and release discipline, the F003 verify components,
|
|
59
|
-
* the F009 allowlist guard, and repo boilerplate (
|
|
60
|
-
*
|
|
61
|
-
*
|
|
58
|
+
* the F009 allowlist guard, and repo boilerplate (a private version-source
|
|
59
|
+
* `package.json`, `.yamllint`, `LICENSE`, and a `README.md` template). The
|
|
60
|
+
* action's own content
|
|
62
61
|
* (`action.yml`, its shell scripts, `test/` fixtures) is authored by hand
|
|
63
62
|
* per the action's own F### spec - this type only lints it.
|
|
64
63
|
*/
|
|
65
64
|
class GitHubActionProject extends projen_1.github.GitHubProject {
|
|
66
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubActionProject", version: "0.0.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubActionProject", version: "0.0.4" };
|
|
67
66
|
buildWorkflow;
|
|
68
67
|
dogfoodWorkflow;
|
|
69
68
|
sonarWorkflow;
|
|
@@ -72,12 +71,9 @@ class GitHubActionProject extends projen_1.github.GitHubProject {
|
|
|
72
71
|
if (!options.sonarHostUrl) {
|
|
73
72
|
throw new Error('GitHubActionProject requires sonarHostUrl');
|
|
74
73
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (!options.dogfood.cleanup || options.dogfood.cleanup.length === 0) {
|
|
79
|
-
throw new Error('GitHubActionProject requires dogfood.cleanup');
|
|
80
|
-
}
|
|
74
|
+
// A declared-but-incomplete dogfood is still an error - see
|
|
75
|
+
// `ActionDogfoodWorkflow`, which owns that check (and the
|
|
76
|
+
// no-dogfood-declared case).
|
|
81
77
|
super({
|
|
82
78
|
...options,
|
|
83
79
|
readme: options.readme ?? { contents: defaultReadmeContents(options) },
|
|
@@ -96,12 +92,10 @@ class GitHubActionProject extends projen_1.github.GitHubProject {
|
|
|
96
92
|
spdx: options.license ?? 'MIT',
|
|
97
93
|
copyrightOwner: 'xpertss',
|
|
98
94
|
});
|
|
99
|
-
//
|
|
100
|
-
// GitHubProject has no default task that
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
// resolves from the committed local install instead of the registry.
|
|
104
|
-
new projen_1.typescript.ProjenrcTs(this, { tsconfigFileName: 'tsconfig.json' });
|
|
95
|
+
// `.projenrc.ts` + `npx projen`, same as every other type here. A bare
|
|
96
|
+
// GitHubProject has no default task that runs a projenrc on its own, so
|
|
97
|
+
// this is what makes `npx projen` work in the generated repo at all.
|
|
98
|
+
(0, projenrc_ts_1.attachTypeScriptProjenrc)(this);
|
|
105
99
|
new projen_1.JsonFile(this, 'package.json', {
|
|
106
100
|
obj: {
|
|
107
101
|
name: options.name,
|
|
@@ -112,8 +106,6 @@ class GitHubActionProject extends projen_1.github.GitHubProject {
|
|
|
112
106
|
'projen': PROJEN_VERSION,
|
|
113
107
|
'@xpertss/projen-types': PROJEN_TYPES_VERSION,
|
|
114
108
|
'commit-and-tag-version': COMMIT_AND_TAG_VERSION,
|
|
115
|
-
'ts-node': TS_NODE_VERSION,
|
|
116
|
-
'typescript': TYPESCRIPT_VERSION,
|
|
117
109
|
},
|
|
118
110
|
},
|
|
119
111
|
});
|
|
@@ -152,4 +144,4 @@ class GitHubActionProject extends projen_1.github.GitHubProject {
|
|
|
152
144
|
}
|
|
153
145
|
}
|
|
154
146
|
exports.GitHubActionProject = GitHubActionProject;
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWFjdGlvbi1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvZ2l0aHViLWFjdGlvbi1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FRZ0I7QUFDaEIsbUVBQThEO0FBQzlELHVFQUF3RjtBQUN4RixtRUFBOEQ7QUFDOUQsK0VBQTBFO0FBQzFFLG1EQUErRDtBQUMvRCxpRUFBMEU7QUFDMUUsdUZBQWlGO0FBQ2pGLCtGQUF5RjtBQUV6RiwyRUFBMkU7QUFDM0UseUVBQXlFO0FBQ3pFLCtEQUErRDtBQUMvRCx5RUFBeUU7QUFDekUsb0VBQW9FO0FBQ3BFLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsTUFBTSxjQUFjLEdBQVcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3RFLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFXLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUUzRSx3RUFBd0U7QUFDeEUsMkVBQTJFO0FBQzNFLDRDQUE0QztBQUM1QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQUN4QyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUM7QUFDakMsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFpRG5DLFNBQVMscUJBQXFCLENBQUMsT0FBbUM7SUFDaEUsT0FBTyxLQUFLLE9BQU8sQ0FBQyxJQUFJOztFQUV4QixPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUU7Ozs7O2tCQUtULE9BQU8sQ0FBQyxJQUFJOzs7Ozs7Ozs7Ozs7Ozs7Q0FlN0IsQ0FBQztBQUNGLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLG1CQUFvQixTQUFRLGVBQU0sQ0FBQyxhQUFhOztJQUMzQyxhQUFhLENBQXNCO0lBQ25DLGVBQWUsQ0FBd0I7SUFDdkMsYUFBYSxDQUFzQjtJQUNuQyxPQUFPLENBQWtCO0lB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Q2pELFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNsQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1lBQzFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7U0FDbkQsQ0FBQyxDQUFDO1FBRUgscURBQXFEO1FBQ3JELGtFQUFrRTtRQUNsRSxrRUFBa0U7UUFDbEUscUVBQXFFO1FBQ3JFLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsbUVBQW1FO1lBQ25FLHdEQUF3RDtZQUN4RCxrQkFBa0IsRUFBRSxNQUFNO1lBQzFCLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ2hDLFdBQVcsRUFBRSxjQUFjO1lBQzNCLGlCQUFpQixFQUFFLDBCQUFpQixDQUFDLGdCQUFnQixFQUFFO1lBQ3ZELGNBQWMsRUFBRSxnQkFBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUU7WUFDbkQsV0FBVyxFQUFFLDBCQUEwQixzQkFBc0IsRUFBRTtZQUMvRCx5QkFBeUIsRUFBRTtnQkFDekIsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTthQUNoRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdEdILGtEQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEpzb25GaWxlLFxuICBMaWNlbnNlLFxuICBSZWxlYXNhYmxlQ29tbWl0cyxcbiAgWWFtbEZpbGUsXG4gIGdpdGh1YixcbiAgcmVsZWFzZSxcbiAgdHlwZXNjcmlwdCxcbn0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEFjdGlvbkJ1aWxkV29ya2Zsb3cgfSBmcm9tICcuL2FjdGlvbi1idWlsZC13b3JrZmxvdyc7XG5pbXBvcnQgeyBBY3Rpb25Eb2dmb29kT3B0aW9ucywgQWN0aW9uRG9nZm9vZFdvcmtmbG93IH0gZnJvbSAnLi9hY3Rpb24tZG9nZm9vZC13b3JrZmxvdyc7XG5pbXBvcnQgeyBBY3Rpb25Tb25hcldvcmtmbG93IH0gZnJvbSAnLi9hY3Rpb24tc29uYXItd29ya2Zsb3cnO1xuaW1wb3J0IHsgQWN0aW9uc0FsbG93bGlzdEd1YXJkIH0gZnJvbSAnLi4vY29tbW9uL2FjdGlvbnMtYWxsb3dsaXN0LWd1YXJkJztcbmltcG9ydCB7IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYXBwbHlJbnRlcm5hbEFjdGlvbk92ZXJyaWRlcyB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC1hY3Rpb25zJztcbmltcG9ydCB7IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyB9IGZyb20gJy4uL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cnO1xuaW1wb3J0IHsgV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvdyB9IGZyb20gJy4uL2NvbW1vbi93b3JrZmxvdy1jaGFuZ2Utbm90aWNlLXdvcmtmbG93JztcblxuLy8gYHJlcXVpcmUoJ3Byb2plbi9wYWNrYWdlLmpzb24nKWAvYHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpYCByZXNvbHZlXG4vLyB2aWEgTm9kZSdzIG5vcm1hbCBtb2R1bGUgcmVzb2x1dGlvbiwgc28gaW4gYSAqcHVibGlzaGVkKiBwYWNrYWdlIHRoZXNlXG4vLyByZWFkIHRoZSB2ZXJzaW9ucyBhY3R1YWxseSBpbnN0YWxsZWQgaW4gdGhlIGNvbnN1bWluZyByZXBvJ3Ncbi8vIG5vZGVfbW9kdWxlcyAtIGV4YWN0bHkgdGhlIFwiUFJPSkVOX1ZFUlNJT04gb2YgdGhlIHN5bnRoXCIgLyBcInZlcnNpb24gb2Zcbi8vIHRoaXMgcGFja2FnZSB0aGF0IHNjYWZmb2xkZWQgdGhlIHJlcG9cIiB0aGUgcHJpdmF0ZSBwYWNrYWdlLmpzb24nc1xuLy8gZGV2RGVwZW5kZW5jaWVzIG5lZWQgdG8gcGluIChzZWUgRjAxMCBDSS1kZXBlbmRlbmNpZXMgc2VjdGlvbikuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgUFJPSkVOX1ZFUlNJT046IHN0cmluZyA9IHJlcXVpcmUoJ3Byb2plbi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9UWVBFU19WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuXG4vLyBFeGFjdCBwaW5zLCByZWNvcmRlZCBhcyBjb21wb25lbnQgY29uc3RhbnRzIChBRC0wMDE6IG5vIGxhdGVzdC9tb3Zpbmdcbi8vIHRhZy9zZW12ZXIgcmFuZ2UgaW4gYW55dGhpbmcgYSBnZW5lcmF0ZWQgcmVwbyBkZXBlbmRzIG9uKS4gVXBncmFkaW5nIGFueVxuLy8gb2YgdGhlc2UgaXMgYSByZXZpZXdlZCBkaWZmIG9mIHRoaXMgZmlsZS5cbmNvbnN0IENPTU1JVF9BTkRfVEFHX1ZFUlNJT04gPSAnMTMuMi4xJztcbmNvbnN0IFRTX05PREVfVkVSU0lPTiA9ICcxMC45LjInO1xuY29uc3QgVFlQRVNDUklQVF9WRVJTSU9OID0gJzYuMC4zJztcblxuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJBY3Rpb25Qcm9qZWN0T3B0aW9uc1xuICBleHRlbmRzIGdpdGh1Yi5HaXRIdWJQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBPbmUtbGluZSBkZXNjcmlwdGlvbiBvZiB0aGUgYWN0aW9uLiBVc2VkIGluIHRoZSBkZWZhdWx0IFJFQURNRVxuICAgKiB0ZW1wbGF0ZSBhbmQgcmVjb3JkZWQgaW4gdGhlIHByaXZhdGUgYHBhY2thZ2UuanNvbmAuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgR2l0SHViIEFjdGlvbnMgc2VjcmV0IGhvbGRpbmcgdGhlIFBBVCB1c2VkIGZvclxuICAgKiBwcm9qZW4tYXV0b21hdGlvbiBQUiBjb21tZW50cyAoRjAwMy9GMDA5KSBhbmQsIHdoZW4gdGhlIGFjdGlvbiBoYXMgYVxuICAgKiBgdG9rZW5gIGlucHV0LCB0aGUgZG9nZm9vZCdzIGludm9jYXRpb24gb2YgaXQuXG4gICAqIEBkZWZhdWx0IFwiUFJPSkVOX0dJVEhVQl9UT0tFTlwiXG4gICAqL1xuICByZWFkb25seSBnaGVUb2tlblNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogVVJMIG9mIHRoZSBvcmcncyBzZWxmLWhvc3RlZCBTb25hclF1YmUgaW5zdGFuY2UuIE1VU1QgYmUgcmVhY2hhYmxlIGZyb21cbiAgICogZ2l0aHViLmNvbS1ob3N0ZWQgKHB1YmxpYykgcnVubmVycyAoQUQtMDAxKS4gUmVxdWlyZWQsIG5vIGRlZmF1bHQ6IGFcbiAgICogZ3Vlc3NlZCBzZXJ2ZXIgaXMgd29yc2UgdGhhbiBhIGxvdWQgZmFpbHVyZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvbmFySG9zdFVybDogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIlNPTkFSX1RPS0VOXCIgKi9cbiAgcmVhZG9ubHkgc29uYXJUb2tlblNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBgc29uYXIueW1sYCBhbHNvIHJ1bnMgb24gYHB1bGxfcmVxdWVzdGAgYXMgYSBwYXNzL2ZhaWwgZ2F0ZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc29uYXJQdWxsUmVxdWVzdEdhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZG9nZm9vZCBzY2VuYXJpbyAoQUQtMDAxKS4gV2hhdCBmaXh0dXJlIHN0YXRlLCB3aGF0IHRvIGFzc2VydCwgYW5kXG4gICAqIGhvdyB0byBjbGVhbiB1cCBhcmUgc3BlY2lmaWVkIGJ5IHRoZSBhY3Rpb24ncyBvd24gRiMjIyBzcGVjIC0gdGhlXG4gICAqIGhpZ2hlc3QtcmlzayBiZWhhdmlvciBvZiB0aGF0IGFjdGlvbi4gUmVxdWlyZWQ6IGEgZGVmYXVsdCBuby1vcFxuICAgKiBkb2dmb29kIHdvdWxkIHNpbGVudGx5IGhvbGxvdyBvdXQgYSBsb2FkLWJlYXJpbmcgQUQtMDAxIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgZG9nZm9vZDogQWN0aW9uRG9nZm9vZE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFNQRFggaWRlbnRpZmllciBmb3IgdGhlIGdlbmVyYXRlZCBgTElDRU5TRWAuXG4gICAqIEBkZWZhdWx0IFwiTUlUXCJcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2U/OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRSZWFkbWVDb250ZW50cyhvcHRpb25zOiBHaXRIdWJBY3Rpb25Qcm9qZWN0T3B0aW9ucyk6IHN0cmluZyB7XG4gIHJldHVybiBgIyAke29wdGlvbnMubmFtZX1cblxuJHtvcHRpb25zLmRlc2NyaXB0aW9uID8/ICcnfVxuXG4jIyBVc2FnZVxuXG5cXGBcXGBcXGB5YW1sXG4tIHVzZXM6IHhwZXJ0c3MvJHtvcHRpb25zLm5hbWV9QDxyZWY+XG5cXGBcXGBcXGBcblxuIyMgQnVtcGluZ1xuXG5BIFxcYGZlYXQ6XFxgL1xcYGZpeDpcXGAgY29tbWl0IHB1c2hlZCB0byBcXGBtYWluXFxgIGlzIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHk6IGJ1bXAsXG50YWcgXFxgdlguWS5aXFxgLCBHaXRIdWIgUmVsZWFzZS4gU2VlIFxcYC5naXRodWIvd29ya2Zsb3dzL3JlbGVhc2UueW1sXFxgLlxuXG4jIyBUcnVzdCBjb250cmFjdFxuXG5UaGlzIGlzIGEgY29tcG9zaXRlIChzaGVsbCkgYWN0aW9uIC0gbm8gTm9kZS9ucG0gYXQgcnVudGltZSwgbm8gRG9ja2VyLiBJdHNcbkNJIGxpbnQgZ2F0ZSAoXFxgYnVpbGQueW1sXFxgKSwgZG9nZm9vZCB0ZXN0IChcXGB0ZXN0LWRvZ2Zvb2QueW1sXFxgKSwgYW5kIFNvbmFyXG5zY2FuIChcXGBzb25hci55bWxcXGApIGFyZSBzY2FmZm9sZGVkIGJ5IFxcYEB4cGVydHNzL3Byb2plbi10eXBlc1xcYCdcblxcYEdpdEh1YkFjdGlvblByb2plY3RcXGA7IG9ubHkgXFxgYWN0aW9uLnltbFxcYCBhbmQgaXRzIHNoZWxsIHNjcmlwdHMgYXJlXG5oYW5kLWNvbW1pdHRlZC5cbmA7XG59XG5cbi8qKlxuICogU2NhZmZvbGRzIHRoZSByZXBvIGxpZmVjeWNsZSAoQUQtMDAxKSBhcm91bmQgYSBoYW5kLWNvbW1pdHRlZCwgY29tcG9zaXRlXG4gKiAoc2hlbGwpIEdpdEh1YiBBY3Rpb246IHRoZSBgYnVpbGRgL2B0ZXN0LWRvZ2Zvb2RgL2Bzb25hcmAvYHJlbGVhc2VgXG4gKiB3b3JrZmxvd3MsIHZlcnNpb25pbmcgYW5kIHJlbGVhc2UgZGlzY2lwbGluZSwgdGhlIEYwMDMgdmVyaWZ5IGNvbXBvbmVudHMsXG4gKiB0aGUgRjAwOSBhbGxvd2xpc3QgZ3VhcmQsIGFuZCByZXBvIGJvaWxlcnBsYXRlIChgdHNjb25maWcuanNvbmAgZm9yXG4gKiBgLnByb2plbnJjLnRzYCwgYSBwcml2YXRlIHZlcnNpb24tc291cmNlIGBwYWNrYWdlLmpzb25gLCBgLnlhbWxsaW50YCxcbiAqIGBMSUNFTlNFYCwgYW5kIGEgYFJFQURNRS5tZGAgdGVtcGxhdGUpLiBUaGUgYWN0aW9uJ3Mgb3duIGNvbnRlbnRcbiAqIChgYWN0aW9uLnltbGAsIGl0cyBzaGVsbCBzY3JpcHRzLCBgdGVzdC9gIGZpeHR1cmVzKSBpcyBhdXRob3JlZCBieSBoYW5kXG4gKiBwZXIgdGhlIGFjdGlvbidzIG93biBGIyMjIHNwZWMgLSB0aGlzIHR5cGUgb25seSBsaW50cyBpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdEh1YkFjdGlvblByb2plY3QgZXh0ZW5kcyBnaXRodWIuR2l0SHViUHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBidWlsZFdvcmtmbG93OiBBY3Rpb25CdWlsZFdvcmtmbG93O1xuICBwdWJsaWMgcmVhZG9ubHkgZG9nZm9vZFdvcmtmbG93OiBBY3Rpb25Eb2dmb29kV29ya2Zsb3c7XG4gIHB1YmxpYyByZWFkb25seSBzb25hcldvcmtmbG93OiBBY3Rpb25Tb25hcldvcmtmbG93O1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsZWFzZTogcmVsZWFzZS5SZWxlYXNlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEdpdEh1YkFjdGlvblByb2plY3RPcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnNvbmFySG9zdFVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdHaXRIdWJBY3Rpb25Qcm9qZWN0IHJlcXVpcmVzIHNvbmFySG9zdFVybCcpO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuZG9nZm9vZD8uc2NlbmFyaW8gfHwgb3B0aW9ucy5kb2dmb29kLnNjZW5hcmlvLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnR2l0SHViQWN0aW9uUHJvamVjdCByZXF1aXJlcyBkb2dmb29kLnNjZW5hcmlvIHdpdGggYXQgbGVhc3Qgb25lIHN0ZXAnLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLmRvZ2Zvb2QuY2xlYW51cCB8fCBvcHRpb25zLmRvZ2Zvb2QuY2xlYW51cC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignR2l0SHViQWN0aW9uUHJvamVjdCByZXF1aXJlcyBkb2dmb29kLmNsZWFudXAnKTtcbiAgICB9XG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcmVhZG1lOiBvcHRpb25zLnJlYWRtZSA/PyB7IGNvbnRlbnRzOiBkZWZhdWx0UmVhZG1lQ29udGVudHMob3B0aW9ucykgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGdoID0gdGhpcy5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnR2l0SHViQWN0aW9uUHJvamVjdCByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24gdG8gYmUgZW5hYmxlZCcsXG4gICAgICApO1xuICAgIH1cbiAgICBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzKGdoKTtcblxuICAgIG5ldyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3codGhpcywge1xuICAgICAgZ2hlVG9rZW5TZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgIH0pO1xuICAgIG5ldyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93KHRoaXMpO1xuICAgIG5ldyBBY3Rpb25zQWxsb3dsaXN0R3VhcmQodGhpcyk7XG5cbiAgICBuZXcgTGljZW5zZSh0aGlzLCB7XG4gICAgICBzcGR4OiBvcHRpb25zLmxpY2Vuc2UgPz8gJ01JVCcsXG4gICAgICBjb3B5cmlnaHRPd25lcjogJ3hwZXJ0c3MnLFxuICAgIH0pO1xuXG4gICAgLy8gV2lyZXMgdGhlIGRlZmF1bHQgdGFzayB0byBydW4gYC5wcm9qZW5yYy50c2AgdmlhIHRzLW5vZGUgLSBhIGJhcmVcbiAgICAvLyBHaXRIdWJQcm9qZWN0IGhhcyBubyBkZWZhdWx0IHRhc2sgdGhhdCBkb2VzIHRoaXMgb24gaXRzIG93bi4gUnVuc1xuICAgIC8vIGBucHggLXkgLXAgdHMtbm9kZSAtYyAuLi5gIHVuZGVyIHRoZSBob29kOyBwaW5uaW5nIGB0cy1ub2RlYC9cbiAgICAvLyBgdHlwZXNjcmlwdGAgYmVsb3cgYXMgZXhhY3QgZGV2RGVwcyBtZWFucyB0aGF0LCBhZnRlciBgbnBtIGNpYCwgdGhpc1xuICAgIC8vIHJlc29sdmVzIGZyb20gdGhlIGNvbW1pdHRlZCBsb2NhbCBpbnN0YWxsIGluc3RlYWQgb2YgdGhlIHJlZ2lzdHJ5LlxuICAgIG5ldyB0eXBlc2NyaXB0LlByb2plbnJjVHModGhpcywgeyB0c2NvbmZpZ0ZpbGVOYW1lOiAndHNjb25maWcuanNvbicgfSk7XG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcywgJ3BhY2thZ2UuanNvbicsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICAgIHZlcnNpb246ICcwLjAuMCcsXG4gICAgICAgIHByaXZhdGU6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgICAncHJvamVuJzogUFJPSkVOX1ZFUlNJT04sXG4gICAgICAgICAgJ0B4cGVydHNzL3Byb2plbi10eXBlcyc6IFBST0pFTl9UWVBFU19WRVJTSU9OLFxuICAgICAgICAgICdjb21taXQtYW5kLXRhZy12ZXJzaW9uJzogQ09NTUlUX0FORF9UQUdfVkVSU0lPTixcbiAgICAgICAgICAndHMtbm9kZSc6IFRTX05PREVfVkVSU0lPTixcbiAgICAgICAgICAndHlwZXNjcmlwdCc6IFRZUEVTQ1JJUFRfVkVSU0lPTixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgWWFtbEZpbGUodGhpcywgJy55YW1sbGludCcsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBleHRlbmRzOiAnZGVmYXVsdCcsXG4gICAgICAgIHJ1bGVzOiB7ICdsaW5lLWxlbmd0aCc6IHsgbWF4OiAxMjAgfSB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYnVpbGRXb3JrZmxvdyA9IG5ldyBBY3Rpb25CdWlsZFdvcmtmbG93KHRoaXMpO1xuXG4gICAgdGhpcy5kb2dmb29kV29ya2Zsb3cgPSBuZXcgQWN0aW9uRG9nZm9vZFdvcmtmbG93KHRoaXMsIG9wdGlvbnMuZG9nZm9vZCk7XG5cbiAgICB0aGlzLnNvbmFyV29ya2Zsb3cgPSBuZXcgQWN0aW9uU29uYXJXb3JrZmxvdyh0aGlzLCB7XG4gICAgICBzb25hckhvc3RVcmw6IG9wdGlvbnMuc29uYXJIb3N0VXJsLFxuICAgICAgc29uYXJUb2tlblNlY3JldDogb3B0aW9ucy5zb25hclRva2VuU2VjcmV0LFxuICAgICAgc29uYXJQdWxsUmVxdWVzdEdhdGU6IG9wdGlvbnMuc29uYXJQdWxsUmVxdWVzdEdhdGUsXG4gICAgfSk7XG5cbiAgICAvLyBgZ2l0aHViUmVsZWFzZWAgZGVmYXVsdHMgdG8gdHJ1ZSwgd2hpY2ggYXV0by13aXJlc1xuICAgIC8vIGBwdWJsaXNoVG9HaXRIdWJSZWxlYXNlc2AgLSBpdHMgYGdoIHJlbGVhc2UgY3JlYXRlIC4uLiAtLXRhcmdldFxuICAgIC8vICRHSVRIVUJfU0hBYCBjcmVhdGVzIHRoZSB0YWcgKmFuZCogdGhlIHJlbGVhc2UgdG9nZXRoZXIgZm9yIG91clxuICAgIC8vIGNvbnRpbnVvdXMgKHB1c2gtdG8tbWFpbikgdHJpZ2dlci4gTm8gc2VwYXJhdGUgYHB1Ymxpc2hUb0dpdGAgY2FsbFxuICAgIC8vIG5lZWRlZCAodGhhdCBwYXRoIG9ubHkgZmlyZXMgZm9yIGEgbWFudWFsIHJlbGVhc2UgdHJpZ2dlcikuXG4gICAgdGhpcy5yZWxlYXNlID0gbmV3IHJlbGVhc2UuUmVsZWFzZSh0aGlzLCB7XG4gICAgICBicmFuY2g6ICdtYWluJyxcbiAgICAgIC8vIE5vIGJ1aWxkIGFydGlmYWN0IGZvciBhIGNvbXBvc2l0ZSBhY3Rpb24gKEFELTAwMSkgLSB0aGlzIGlzIG9ubHlcbiAgICAgIC8vIHdoZXJlIFJlbGVhc2Ugc3RhZ2VzIGl0cyBvd24gdmVyc2lvbi9jaGFuZ2Vsb2cgZmlsZXMuXG4gICAgICBhcnRpZmFjdHNEaXJlY3Rvcnk6ICdkaXN0JyxcbiAgICAgIHRhc2tzOiBbdGhpcy5idWlsZFdvcmtmbG93LnRhc2tdLFxuICAgICAgdmVyc2lvbkZpbGU6ICdwYWNrYWdlLmpzb24nLFxuICAgICAgcmVsZWFzYWJsZUNvbW1pdHM6IFJlbGVhc2FibGVDb21taXRzLmZlYXR1cmVzQW5kRml4ZXMoKSxcbiAgICAgIHJlbGVhc2VUcmlnZ2VyOiByZWxlYXNlLlJlbGVhc2VUcmlnZ2VyLmNvbnRpbnVvdXMoKSxcbiAgICAgIGJ1bXBQYWNrYWdlOiBgY29tbWl0LWFuZC10YWctdmVyc2lvbkAke0NPTU1JVF9BTkRfVEFHX1ZFUlNJT059YCxcbiAgICAgIHJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHM6IFtcbiAgICAgICAgeyBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLCBydW46ICducG0gY2knIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWFjdGlvbi1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvZ2l0aHViLWFjdGlvbi1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FPZ0I7QUFDaEIsbUVBQThEO0FBQzlELHVFQUF3RjtBQUN4RixtRUFBOEQ7QUFDOUQsK0VBQTBFO0FBQzFFLG1EQUErRDtBQUMvRCxpRUFBMEU7QUFDMUUsdUZBQWlGO0FBQ2pGLHVEQUFpRTtBQUNqRSwrRkFBeUY7QUFFekYsMkVBQTJFO0FBQzNFLHlFQUF5RTtBQUN6RSwrREFBK0Q7QUFDL0QseUVBQXlFO0FBQ3pFLG9FQUFvRTtBQUNwRSxrRUFBa0U7QUFDbEUsaUVBQWlFO0FBQ2pFLE1BQU0sY0FBYyxHQUFXLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUN0RSxpRUFBaUU7QUFDakUsTUFBTSxvQkFBb0IsR0FBVyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFFM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSxtQ0FBbUM7QUFDbkMsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQUM7QUEwRHhDLFNBQVMscUJBQXFCLENBQUMsT0FBbUM7SUFDaEUsT0FBTyxLQUFLLE9BQU8sQ0FBQyxJQUFJOztFQUV4QixPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUU7Ozs7O2tCQUtULE9BQU8sQ0FBQyxJQUFJOzs7Ozs7Ozs7Ozs7Ozs7Q0FlN0IsQ0FBQztBQUNGLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLG1CQUFvQixTQUFRLGVBQU0sQ0FBQyxhQUFhOztJQUMzQyxhQUFhLENBQXNCO0lBQ25DLGVBQWUsQ0FBd0I7SUFDdkMsYUFBYSxDQUFzQjtJQUNuQyxPQUFPLENBQWtCO0lBRXpDLFlBQVksT0FBbUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELDREQUE0RDtRQUM1RCwwREFBMEQ7UUFDMUQsNkJBQTZCO1FBRTdCLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1NBQ3ZFLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FDYiwrREFBK0QsQ0FDaEUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFBLCtDQUE0QixFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWpDLElBQUksc0RBQXdCLENBQUMsSUFBSSxFQUFFO1lBQ2pDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLG9DQUF3QjtTQUNuRSxDQUFDLENBQUM7UUFDSCxJQUFJLDhEQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksK0NBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsSUFBSSxnQkFBTyxDQUFDLElBQUksRUFBRTtZQUNoQixJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sSUFBSSxLQUFLO1lBQzlCLGNBQWMsRUFBRSxTQUFTO1NBQzFCLENBQUMsQ0FBQztRQUVILHVFQUF1RTtRQUN2RSx3RUFBd0U7UUFDeEUscUVBQXFFO1FBQ3JFLElBQUEsc0NBQXdCLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsSUFBSSxpQkFBUSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDakMsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtnQkFDbEIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsZUFBZSxFQUFFO29CQUNmLFFBQVEsRUFBRSxjQUFjO29CQUN4Qix1QkFBdUIsRUFBRSxvQkFBb0I7b0JBQzdDLHdCQUF3QixFQUFFLHNCQUFzQjtpQkFDakQ7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzlCLEdBQUcsRUFBRTtnQkFDSCxPQUFPLEVBQUUsU0FBUztnQkFDbEIsS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO2FBQ3ZDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLDJDQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSwrQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSwyQ0FBbUIsQ0FBQyxJQUFJLEVBQUU7WUFDakQsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ2xDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDMUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtTQUNuRCxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDckQsa0VBQWtFO1FBQ2xFLGtFQUFrRTtRQUNsRSxxRUFBcUU7UUFDckUsOERBQThEO1FBQzlELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDdkMsTUFBTSxFQUFFLE1BQU07WUFDZCxtRUFBbUU7WUFDbkUsd0RBQXdEO1lBQ3hELGtCQUFrQixFQUFFLE1BQU07WUFDMUIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDaEMsV0FBVyxFQUFFLGNBQWM7WUFDM0IsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkQsY0FBYyxFQUFFLGdCQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRTtZQUNuRCxXQUFXLEVBQUUsMEJBQTBCLHNCQUFzQixFQUFFO1lBQy9ELHlCQUF5QixFQUFFO2dCQUN6QixFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFO2FBQ2hEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE3Rkgsa0RBOEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSnNvbkZpbGUsXG4gIExpY2Vuc2UsXG4gIFJlbGVhc2FibGVDb21taXRzLFxuICBZYW1sRmlsZSxcbiAgZ2l0aHViLFxuICByZWxlYXNlLFxufSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQWN0aW9uQnVpbGRXb3JrZmxvdyB9IGZyb20gJy4vYWN0aW9uLWJ1aWxkLXdvcmtmbG93JztcbmltcG9ydCB7IEFjdGlvbkRvZ2Zvb2RPcHRpb25zLCBBY3Rpb25Eb2dmb29kV29ya2Zsb3cgfSBmcm9tICcuL2FjdGlvbi1kb2dmb29kLXdvcmtmbG93JztcbmltcG9ydCB7IEFjdGlvblNvbmFyV29ya2Zsb3cgfSBmcm9tICcuL2FjdGlvbi1zb25hci13b3JrZmxvdyc7XG5pbXBvcnQgeyBBY3Rpb25zQWxsb3dsaXN0R3VhcmQgfSBmcm9tICcuLi9jb21tb24vYWN0aW9ucy1hbGxvd2xpc3QtZ3VhcmQnO1xuaW1wb3J0IHsgREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVUIH0gZnJvbSAnLi4vY29tbW9uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzIH0gZnJvbSAnLi4vY29tbW9uL2ludGVybmFsLWFjdGlvbnMnO1xuaW1wb3J0IHsgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3Byb2plbi1kcmlmdC1jaGVjay13b3JrZmxvdyc7XG5pbXBvcnQgeyBhdHRhY2hUeXBlU2NyaXB0UHJvamVucmMgfSBmcm9tICcuLi9jb21tb24vcHJvamVucmMtdHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvdyB9IGZyb20gJy4uL2NvbW1vbi93b3JrZmxvdy1jaGFuZ2Utbm90aWNlLXdvcmtmbG93JztcblxuLy8gYHJlcXVpcmUoJ3Byb2plbi9wYWNrYWdlLmpzb24nKWAvYHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpYCByZXNvbHZlXG4vLyB2aWEgTm9kZSdzIG5vcm1hbCBtb2R1bGUgcmVzb2x1dGlvbiwgc28gaW4gYSAqcHVibGlzaGVkKiBwYWNrYWdlIHRoZXNlXG4vLyByZWFkIHRoZSB2ZXJzaW9ucyBhY3R1YWxseSBpbnN0YWxsZWQgaW4gdGhlIGNvbnN1bWluZyByZXBvJ3Ncbi8vIG5vZGVfbW9kdWxlcyAtIGV4YWN0bHkgdGhlIFwiUFJPSkVOX1ZFUlNJT04gb2YgdGhlIHN5bnRoXCIgLyBcInZlcnNpb24gb2Zcbi8vIHRoaXMgcGFja2FnZSB0aGF0IHNjYWZmb2xkZWQgdGhlIHJlcG9cIiB0aGUgcHJpdmF0ZSBwYWNrYWdlLmpzb24nc1xuLy8gZGV2RGVwZW5kZW5jaWVzIG5lZWQgdG8gcGluIChzZWUgRjAxMCBDSS1kZXBlbmRlbmNpZXMgc2VjdGlvbikuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgUFJPSkVOX1ZFUlNJT046IHN0cmluZyA9IHJlcXVpcmUoJ3Byb2plbi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9UWVBFU19WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuXG4vLyBFeGFjdCBwaW4sIHJlY29yZGVkIGFzIGEgY29tcG9uZW50IGNvbnN0YW50IChBRC0wMDE6IG5vIGxhdGVzdC9tb3Zpbmdcbi8vIHRhZy9zZW12ZXIgcmFuZ2UgaW4gYW55dGhpbmcgYSBnZW5lcmF0ZWQgcmVwbyBkZXBlbmRzIG9uKS4gVXBncmFkaW5nIHRoaXNcbi8vIGlzIGEgcmV2aWV3ZWQgZGlmZiBvZiB0aGlzIGZpbGUuXG5jb25zdCBDT01NSVRfQU5EX1RBR19WRVJTSU9OID0gJzEzLjIuMSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViQWN0aW9uUHJvamVjdE9wdGlvbnNcbiAgZXh0ZW5kcyBnaXRodWIuR2l0SHViUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogT25lLWxpbmUgZGVzY3JpcHRpb24gb2YgdGhlIGFjdGlvbi4gVXNlZCBpbiB0aGUgZGVmYXVsdCBSRUFETUVcbiAgICogdGVtcGxhdGUgYW5kIHJlY29yZGVkIGluIHRoZSBwcml2YXRlIGBwYWNrYWdlLmpzb25gLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEdpdEh1YiBBY3Rpb25zIHNlY3JldCBob2xkaW5nIHRoZSBQQVQgdXNlZCBmb3JcbiAgICogcHJvamVuLWF1dG9tYXRpb24gUFIgY29tbWVudHMgKEYwMDMvRjAwOSkgYW5kLCB3aGVuIHRoZSBhY3Rpb24gaGFzIGFcbiAgICogYHRva2VuYCBpbnB1dCwgdGhlIGRvZ2Zvb2QncyBpbnZvY2F0aW9uIG9mIGl0LlxuICAgKiBAZGVmYXVsdCBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIlxuICAgKi9cbiAgcmVhZG9ubHkgZ2hlVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgb3JnJ3Mgc2VsZi1ob3N0ZWQgU29uYXJRdWJlIGluc3RhbmNlLiBNVVNUIGJlIHJlYWNoYWJsZSBmcm9tXG4gICAqIGdpdGh1Yi5jb20taG9zdGVkIChwdWJsaWMpIHJ1bm5lcnMgKEFELTAwMSkuIFJlcXVpcmVkLCBubyBkZWZhdWx0OiBhXG4gICAqIGd1ZXNzZWQgc2VydmVyIGlzIHdvcnNlIHRoYW4gYSBsb3VkIGZhaWx1cmUuXG4gICAqL1xuICByZWFkb25seSBzb25hckhvc3RVcmw6IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJTT05BUl9UT0tFTlwiICovXG4gIHJlYWRvbmx5IHNvbmFyVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYHNvbmFyLnltbGAgYWxzbyBydW5zIG9uIGBwdWxsX3JlcXVlc3RgIGFzIGEgcGFzcy9mYWlsIGdhdGUuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvbmFyUHVsbFJlcXVlc3RHYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGRvZ2Zvb2Qgc2NlbmFyaW8gKEFELTAwMSkuIFdoYXQgZml4dHVyZSBzdGF0ZSwgd2hhdCB0byBhc3NlcnQsIGFuZFxuICAgKiBob3cgdG8gY2xlYW4gdXAgYXJlIHNwZWNpZmllZCBieSB0aGUgYWN0aW9uJ3Mgb3duIEYjIyMgc3BlYyAtIHRoZVxuICAgKiBoaWdoZXN0LXJpc2sgYmVoYXZpb3Igb2YgdGhhdCBhY3Rpb24uXG4gICAqXG4gICAqIEl0cyB0eXBlIGlzIGEgc3RydWN0LCB3aGljaCBwcm9qZW4ncyBDTEkgY2Fubm90IHJlbmRlciBpbnRvIGEgcHJvamVucmMsXG4gICAqIHNvIGl0IGNhbiBvbmx5IGJlIHdyaXR0ZW4gYnkgaGFuZCAtIGl0IGlzIHRoZXJlZm9yZSBvcHRpb25hbCwgYmVjYXVzZSBhXG4gICAqICpyZXF1aXJlZCogb3B0aW9uIGBwcm9qZW4gbmV3YCBjYW5ub3Qgc3VwcGx5IHdvdWxkIG1ha2UgdGhpcyBwcm9qZWN0XG4gICAqIHR5cGUgaW1wb3NzaWJsZSB0byBzY2FmZm9sZC4gQUQtMDAxJ3MgXCJuZXZlciBhIHNpbGVudCBuby1vcCBkb2dmb29kXCJcbiAgICogcnVsZSBpcyBlbmZvcmNlZCBpbnN0ZWFkIGJ5IHRoZSB3b3JrZmxvdyBpdCBnZW5lcmF0ZXMgaW4gdGhhdCBjYXNlOiBhXG4gICAqIHNpbmdsZSBzdGVwIHRoYXQgZmFpbHMgb24gZXZlcnkgUFIgdW50aWwgYSBzY2VuYXJpbyBpcyBkZWNsYXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgdGVzdC1kb2dmb29kLnltbGAgcnVucyBvbmUgZmFpbGluZyBzdGVwIHRoYXQgdGVsbHMgeW91IHRvXG4gICAqIGRlY2xhcmUgYSBzY2VuYXJpb1xuICAgKi9cbiAgcmVhZG9ubHkgZG9nZm9vZD86IEFjdGlvbkRvZ2Zvb2RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBTUERYIGlkZW50aWZpZXIgZm9yIHRoZSBnZW5lcmF0ZWQgYExJQ0VOU0VgLlxuICAgKiBAZGVmYXVsdCBcIk1JVFwiXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0UmVhZG1lQ29udGVudHMob3B0aW9uczogR2l0SHViQWN0aW9uUHJvamVjdE9wdGlvbnMpOiBzdHJpbmcge1xuICByZXR1cm4gYCMgJHtvcHRpb25zLm5hbWV9XG5cbiR7b3B0aW9ucy5kZXNjcmlwdGlvbiA/PyAnJ31cblxuIyMgVXNhZ2VcblxuXFxgXFxgXFxgeWFtbFxuLSB1c2VzOiB4cGVydHNzLyR7b3B0aW9ucy5uYW1lfUA8cmVmPlxuXFxgXFxgXFxgXG5cbiMjIEJ1bXBpbmdcblxuQSBcXGBmZWF0OlxcYC9cXGBmaXg6XFxgIGNvbW1pdCBwdXNoZWQgdG8gXFxgbWFpblxcYCBpcyByZWxlYXNlZCBhdXRvbWF0aWNhbGx5OiBidW1wLFxudGFnIFxcYHZYLlkuWlxcYCwgR2l0SHViIFJlbGVhc2UuIFNlZSBcXGAuZ2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLnltbFxcYC5cblxuIyMgVHJ1c3QgY29udHJhY3RcblxuVGhpcyBpcyBhIGNvbXBvc2l0ZSAoc2hlbGwpIGFjdGlvbiAtIG5vIE5vZGUvbnBtIGF0IHJ1bnRpbWUsIG5vIERvY2tlci4gSXRzXG5DSSBsaW50IGdhdGUgKFxcYGJ1aWxkLnltbFxcYCksIGRvZ2Zvb2QgdGVzdCAoXFxgdGVzdC1kb2dmb29kLnltbFxcYCksIGFuZCBTb25hclxuc2NhbiAoXFxgc29uYXIueW1sXFxgKSBhcmUgc2NhZmZvbGRlZCBieSBcXGBAeHBlcnRzcy9wcm9qZW4tdHlwZXNcXGAnXG5cXGBHaXRIdWJBY3Rpb25Qcm9qZWN0XFxgOyBvbmx5IFxcYGFjdGlvbi55bWxcXGAgYW5kIGl0cyBzaGVsbCBzY3JpcHRzIGFyZVxuaGFuZC1jb21taXR0ZWQuXG5gO1xufVxuXG4vKipcbiAqIFNjYWZmb2xkcyB0aGUgcmVwbyBsaWZlY3ljbGUgKEFELTAwMSkgYXJvdW5kIGEgaGFuZC1jb21taXR0ZWQsIGNvbXBvc2l0ZVxuICogKHNoZWxsKSBHaXRIdWIgQWN0aW9uOiB0aGUgYGJ1aWxkYC9gdGVzdC1kb2dmb29kYC9gc29uYXJgL2ByZWxlYXNlYFxuICogd29ya2Zsb3dzLCB2ZXJzaW9uaW5nIGFuZCByZWxlYXNlIGRpc2NpcGxpbmUsIHRoZSBGMDAzIHZlcmlmeSBjb21wb25lbnRzLFxuICogdGhlIEYwMDkgYWxsb3dsaXN0IGd1YXJkLCBhbmQgcmVwbyBib2lsZXJwbGF0ZSAoYSBwcml2YXRlIHZlcnNpb24tc291cmNlXG4gKiBgcGFja2FnZS5qc29uYCwgYC55YW1sbGludGAsIGBMSUNFTlNFYCwgYW5kIGEgYFJFQURNRS5tZGAgdGVtcGxhdGUpLiBUaGVcbiAqIGFjdGlvbidzIG93biBjb250ZW50XG4gKiAoYGFjdGlvbi55bWxgLCBpdHMgc2hlbGwgc2NyaXB0cywgYHRlc3QvYCBmaXh0dXJlcykgaXMgYXV0aG9yZWQgYnkgaGFuZFxuICogcGVyIHRoZSBhY3Rpb24ncyBvd24gRiMjIyBzcGVjIC0gdGhpcyB0eXBlIG9ubHkgbGludHMgaXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBHaXRIdWJBY3Rpb25Qcm9qZWN0IGV4dGVuZHMgZ2l0aHViLkdpdEh1YlByb2plY3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRXb3JrZmxvdzogQWN0aW9uQnVpbGRXb3JrZmxvdztcbiAgcHVibGljIHJlYWRvbmx5IGRvZ2Zvb2RXb3JrZmxvdzogQWN0aW9uRG9nZm9vZFdvcmtmbG93O1xuICBwdWJsaWMgcmVhZG9ubHkgc29uYXJXb3JrZmxvdzogQWN0aW9uU29uYXJXb3JrZmxvdztcbiAgcHVibGljIHJlYWRvbmx5IHJlbGVhc2U6IHJlbGVhc2UuUmVsZWFzZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBHaXRIdWJBY3Rpb25Qcm9qZWN0T3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucy5zb25hckhvc3RVcmwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignR2l0SHViQWN0aW9uUHJvamVjdCByZXF1aXJlcyBzb25hckhvc3RVcmwnKTtcbiAgICB9XG4gICAgLy8gQSBkZWNsYXJlZC1idXQtaW5jb21wbGV0ZSBkb2dmb29kIGlzIHN0aWxsIGFuIGVycm9yIC0gc2VlXG4gICAgLy8gYEFjdGlvbkRvZ2Zvb2RXb3JrZmxvd2AsIHdoaWNoIG93bnMgdGhhdCBjaGVjayAoYW5kIHRoZVxuICAgIC8vIG5vLWRvZ2Zvb2QtZGVjbGFyZWQgY2FzZSkuXG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcmVhZG1lOiBvcHRpb25zLnJlYWRtZSA/PyB7IGNvbnRlbnRzOiBkZWZhdWx0UmVhZG1lQ29udGVudHMob3B0aW9ucykgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGdoID0gdGhpcy5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnR2l0SHViQWN0aW9uUHJvamVjdCByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24gdG8gYmUgZW5hYmxlZCcsXG4gICAgICApO1xuICAgIH1cbiAgICBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzKGdoKTtcblxuICAgIG5ldyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3codGhpcywge1xuICAgICAgZ2hlVG9rZW5TZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgIH0pO1xuICAgIG5ldyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93KHRoaXMpO1xuICAgIG5ldyBBY3Rpb25zQWxsb3dsaXN0R3VhcmQodGhpcyk7XG5cbiAgICBuZXcgTGljZW5zZSh0aGlzLCB7XG4gICAgICBzcGR4OiBvcHRpb25zLmxpY2Vuc2UgPz8gJ01JVCcsXG4gICAgICBjb3B5cmlnaHRPd25lcjogJ3hwZXJ0c3MnLFxuICAgIH0pO1xuXG4gICAgLy8gYC5wcm9qZW5yYy50c2AgKyBgbnB4IHByb2plbmAsIHNhbWUgYXMgZXZlcnkgb3RoZXIgdHlwZSBoZXJlLiBBIGJhcmVcbiAgICAvLyBHaXRIdWJQcm9qZWN0IGhhcyBubyBkZWZhdWx0IHRhc2sgdGhhdCBydW5zIGEgcHJvamVucmMgb24gaXRzIG93biwgc29cbiAgICAvLyB0aGlzIGlzIHdoYXQgbWFrZXMgYG5weCBwcm9qZW5gIHdvcmsgaW4gdGhlIGdlbmVyYXRlZCByZXBvIGF0IGFsbC5cbiAgICBhdHRhY2hUeXBlU2NyaXB0UHJvamVucmModGhpcyk7XG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcywgJ3BhY2thZ2UuanNvbicsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICAgIHZlcnNpb246ICcwLjAuMCcsXG4gICAgICAgIHByaXZhdGU6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgICAncHJvamVuJzogUFJPSkVOX1ZFUlNJT04sXG4gICAgICAgICAgJ0B4cGVydHNzL3Byb2plbi10eXBlcyc6IFBST0pFTl9UWVBFU19WRVJTSU9OLFxuICAgICAgICAgICdjb21taXQtYW5kLXRhZy12ZXJzaW9uJzogQ09NTUlUX0FORF9UQUdfVkVSU0lPTixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgWWFtbEZpbGUodGhpcywgJy55YW1sbGludCcsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBleHRlbmRzOiAnZGVmYXVsdCcsXG4gICAgICAgIHJ1bGVzOiB7ICdsaW5lLWxlbmd0aCc6IHsgbWF4OiAxMjAgfSB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYnVpbGRXb3JrZmxvdyA9IG5ldyBBY3Rpb25CdWlsZFdvcmtmbG93KHRoaXMpO1xuXG4gICAgdGhpcy5kb2dmb29kV29ya2Zsb3cgPSBuZXcgQWN0aW9uRG9nZm9vZFdvcmtmbG93KHRoaXMsIG9wdGlvbnMuZG9nZm9vZCk7XG5cbiAgICB0aGlzLnNvbmFyV29ya2Zsb3cgPSBuZXcgQWN0aW9uU29uYXJXb3JrZmxvdyh0aGlzLCB7XG4gICAgICBzb25hckhvc3RVcmw6IG9wdGlvbnMuc29uYXJIb3N0VXJsLFxuICAgICAgc29uYXJUb2tlblNlY3JldDogb3B0aW9ucy5zb25hclRva2VuU2VjcmV0LFxuICAgICAgc29uYXJQdWxsUmVxdWVzdEdhdGU6IG9wdGlvbnMuc29uYXJQdWxsUmVxdWVzdEdhdGUsXG4gICAgfSk7XG5cbiAgICAvLyBgZ2l0aHViUmVsZWFzZWAgZGVmYXVsdHMgdG8gdHJ1ZSwgd2hpY2ggYXV0by13aXJlc1xuICAgIC8vIGBwdWJsaXNoVG9HaXRIdWJSZWxlYXNlc2AgLSBpdHMgYGdoIHJlbGVhc2UgY3JlYXRlIC4uLiAtLXRhcmdldFxuICAgIC8vICRHSVRIVUJfU0hBYCBjcmVhdGVzIHRoZSB0YWcgKmFuZCogdGhlIHJlbGVhc2UgdG9nZXRoZXIgZm9yIG91clxuICAgIC8vIGNvbnRpbnVvdXMgKHB1c2gtdG8tbWFpbikgdHJpZ2dlci4gTm8gc2VwYXJhdGUgYHB1Ymxpc2hUb0dpdGAgY2FsbFxuICAgIC8vIG5lZWRlZCAodGhhdCBwYXRoIG9ubHkgZmlyZXMgZm9yIGEgbWFudWFsIHJlbGVhc2UgdHJpZ2dlcikuXG4gICAgdGhpcy5yZWxlYXNlID0gbmV3IHJlbGVhc2UuUmVsZWFzZSh0aGlzLCB7XG4gICAgICBicmFuY2g6ICdtYWluJyxcbiAgICAgIC8vIE5vIGJ1aWxkIGFydGlmYWN0IGZvciBhIGNvbXBvc2l0ZSBhY3Rpb24gKEFELTAwMSkgLSB0aGlzIGlzIG9ubHlcbiAgICAgIC8vIHdoZXJlIFJlbGVhc2Ugc3RhZ2VzIGl0cyBvd24gdmVyc2lvbi9jaGFuZ2Vsb2cgZmlsZXMuXG4gICAgICBhcnRpZmFjdHNEaXJlY3Rvcnk6ICdkaXN0JyxcbiAgICAgIHRhc2tzOiBbdGhpcy5idWlsZFdvcmtmbG93LnRhc2tdLFxuICAgICAgdmVyc2lvbkZpbGU6ICdwYWNrYWdlLmpzb24nLFxuICAgICAgcmVsZWFzYWJsZUNvbW1pdHM6IFJlbGVhc2FibGVDb21taXRzLmZlYXR1cmVzQW5kRml4ZXMoKSxcbiAgICAgIHJlbGVhc2VUcmlnZ2VyOiByZWxlYXNlLlJlbGVhc2VUcmlnZ2VyLmNvbnRpbnVvdXMoKSxcbiAgICAgIGJ1bXBQYWNrYWdlOiBgY29tbWl0LWFuZC10YWctdmVyc2lvbkAke0NPTU1JVF9BTkRfVEFHX1ZFUlNJT059YCxcbiAgICAgIHJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHM6IFtcbiAgICAgICAgeyBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLCBydW46ICducG0gY2knIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -8,7 +8,7 @@ const projen_1 = require("projen");
|
|
|
8
8
|
* layered on top of `CdkTypescriptProject`'s pure-infra scaffold.
|
|
9
9
|
*/
|
|
10
10
|
class AppRuntimeScaffold extends projen_1.Component {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.AppRuntimeScaffold", version: "0.0.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.AppRuntimeScaffold", version: "0.0.4" };
|
|
12
12
|
constructor(project, appEntryPoint = 'src/app.ts') {
|
|
13
13
|
super(project, 'AppRuntimeScaffold');
|
|
14
14
|
const app = new projen_1.SourceCode(project, appEntryPoint);
|
|
@@ -12,7 +12,7 @@ const database_component_1 = require("./database-component");
|
|
|
12
12
|
* application source, a database, and an app-level build/test workflow.
|
|
13
13
|
*/
|
|
14
14
|
class CdkAppProject extends cdk_infra_project_1.CdkInfraProject {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkAppProject", version: "0.0.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkAppProject", version: "0.0.4" };
|
|
16
16
|
constructor(options) {
|
|
17
17
|
super(options);
|
|
18
18
|
new app_runtime_scaffold_1.AppRuntimeScaffold(this, options.appEntryPoint ?? 'src/app.ts');
|
|
@@ -11,7 +11,7 @@ const edge_networking_constructs_1 = require("./components/edge-networking-const
|
|
|
11
11
|
* externally-built images). Reference example: SimulcastAVDelivery.
|
|
12
12
|
*/
|
|
13
13
|
class CdkInfraProject extends cdk_typescript_base_1.CdkTypescriptProject {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkInfraProject", version: "0.0.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkInfraProject", version: "0.0.4" };
|
|
15
15
|
constructor(options) {
|
|
16
16
|
super(options);
|
|
17
17
|
if (options.ecrEcs?.enabled) {
|
|
@@ -9,6 +9,11 @@ const internal_actions_1 = require("../common/internal-actions");
|
|
|
9
9
|
const manual_deploy_workflow_1 = require("../common/manual-deploy-workflow");
|
|
10
10
|
const projen_drift_check_workflow_1 = require("../common/projen-drift-check-workflow");
|
|
11
11
|
const workflow_change_notice_workflow_1 = require("../common/workflow-change-notice-workflow");
|
|
12
|
+
// Resolved through Node's normal module resolution, so in a *published*
|
|
13
|
+
// package this is the version of this package that scaffolded the repo (same
|
|
14
|
+
// trick as `GitHubActionProject`).
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
16
|
+
const PROJEN_TYPES_VERSION = require('../../package.json').version;
|
|
12
17
|
/**
|
|
13
18
|
* Shared CDK + TypeScript foundation for `CdkInfraProject` and
|
|
14
19
|
* `CdkAppProject`: standard app structure (via `AwsCdkTypeScriptApp`,
|
|
@@ -17,19 +22,50 @@ const workflow_change_notice_workflow_1 = require("../common/workflow-change-not
|
|
|
17
22
|
* `ManualDeployWorkflow` when `environments` is provided.
|
|
18
23
|
*/
|
|
19
24
|
class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
20
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkTypescriptProject", version: "0.0.
|
|
25
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkTypescriptProject", version: "0.0.4" };
|
|
21
26
|
constructor(options) {
|
|
22
27
|
super({
|
|
28
|
+
// Spread first, overrides after: forwarding the caller's options is
|
|
29
|
+
// what lets `projen new --from @xpertss/projen-types cdk_infra` work
|
|
30
|
+
// - projen smuggles its bootstrap marker (`__new__`) through the
|
|
31
|
+
// options object, and it is that marker which makes the
|
|
32
|
+
// `ProjenrcFile` component write the initial `.projenrc.ts`. Drop it
|
|
33
|
+
// and `projen new` scaffolds a repo with no projenrc at all.
|
|
34
|
+
...options,
|
|
23
35
|
name: options.name,
|
|
24
36
|
cdkVersion: options.cdkVersion ?? '2.189.1',
|
|
25
37
|
defaultReleaseBranch: 'main',
|
|
26
38
|
sampleCode: true,
|
|
39
|
+
// Generated repos are configured through `.projenrc.ts`; without this
|
|
40
|
+
// `TypeScriptProject` defaults to `projenrcTs: false` and wires the
|
|
41
|
+
// default task to `node .projenrc.js`.
|
|
42
|
+
projenrcTs: true,
|
|
43
|
+
// Pinned, not `TypeScriptProject`'s default `*`: `typescript@7` no
|
|
44
|
+
// longer exposes `ts.sys` from its JS API, which breaks the `ts-node`
|
|
45
|
+
// that `projenrcTs` wires the default task to (AD-001 wants the pin
|
|
46
|
+
// regardless).
|
|
47
|
+
typescriptVersion: '~6.0.3',
|
|
48
|
+
// Declared floor for the generated repo. Also required by the pin
|
|
49
|
+
// above: with no `minNodeVersion`, projen derives `@types/node` from
|
|
50
|
+
// the TypeScript version instead, and the `@types/node@ts6.0`
|
|
51
|
+
// dist-tag it asks for does not exist - `npm install` fails outright.
|
|
52
|
+
minNodeVersion: '22.0.0',
|
|
53
|
+
// Without this projen defaults to yarn classic and the generated repo's
|
|
54
|
+
// own install step runs `yarn install --check-files`, while every
|
|
55
|
+
// workflow this package generates - and the README - use npm.
|
|
56
|
+
packageManager: projen_1.javascript.NodePackageManager.NPM,
|
|
27
57
|
// Fail PR checks on drift instead of auto-committing projen's output.
|
|
28
58
|
buildWorkflowOptions: { mutableBuild: false },
|
|
29
59
|
projenCredentials: projen_1.github.GithubCredentials.fromPersonalAccessToken({
|
|
30
60
|
secret: options.gheTokenSecret ?? constants_1.DEFAULT_GHE_TOKEN_SECRET,
|
|
31
61
|
}),
|
|
32
62
|
});
|
|
63
|
+
// `.projenrc.ts` imports this package, so the generated repo has to
|
|
64
|
+
// declare it: projen prunes any dependency of a `NodeProject` that the
|
|
65
|
+
// projenrc does not ask for ("Removing unmanaged dependencies..."), which
|
|
66
|
+
// would leave a repo whose `npx projen` cannot resolve its own project
|
|
67
|
+
// type after a clean `npm ci`.
|
|
68
|
+
this.addDevDeps(`@xpertss/projen-types@${PROJEN_TYPES_VERSION}`);
|
|
33
69
|
this.addDevDeps('esbuild');
|
|
34
70
|
const gh = this.github;
|
|
35
71
|
if (!gh) {
|
|
@@ -63,4 +99,4 @@ class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
|
63
99
|
}
|
|
64
100
|
}
|
|
65
101
|
exports.CdkTypescriptProject = CdkTypescriptProject;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXR5cGVzY3JpcHQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvY2RrLXR5cGVzY3JpcHQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQW9EO0FBRXBELCtFQUEwRTtBQUMxRSxtREFBK0Q7QUFFL0QsaUVBQTBFO0FBQzFFLDZFQUF3RTtBQUN4RSx1RkFBaUY7QUFDakYsK0ZBQXlGO0FBRXpGLHdFQUF3RTtBQUN4RSw2RUFBNkU7QUFDN0UsbUNBQW1DO0FBQ25DLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFXLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQU0zRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLGVBQU0sQ0FBQyxtQkFBbUI7O0lBQ2xFLFlBQVksT0FBb0M7UUFDOUMsS0FBSyxDQUFDO1lBQ0osb0VBQW9FO1lBQ3BFLHFFQUFxRTtZQUNyRSxpRUFBaUU7WUFDakUsd0RBQXdEO1lBQ3hELHFFQUFxRTtZQUNyRSw2REFBNkQ7WUFDN0QsR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVM7WUFDM0Msb0JBQW9CLEVBQUUsTUFBTTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQixzRUFBc0U7WUFDdEUsb0VBQW9FO1lBQ3BFLHVDQUF1QztZQUN2QyxVQUFVLEVBQUUsSUFBSTtZQUNoQixtRUFBbUU7WUFDbkUsc0VBQXNFO1lBQ3RFLG9FQUFvRTtZQUNwRSxlQUFlO1lBQ2YsaUJBQWlCLEVBQUUsUUFBUTtZQUMzQixrRUFBa0U7WUFDbEUscUVBQXFFO1lBQ3JFLDhEQUE4RDtZQUM5RCxzRUFBc0U7WUFDdEUsY0FBYyxFQUFFLFFBQVE7WUFDeEIsd0VBQXdFO1lBQ3hFLGtFQUFrRTtZQUNsRSw4REFBOEQ7WUFDOUQsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsR0FBRztZQUNqRCxzRUFBc0U7WUFDdEUsb0JBQW9CLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFO1lBQzdDLGlCQUFpQixFQUFFLGVBQU0sQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDbEUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksb0NBQXdCO2FBQzNELENBQUM7U0FDSCxDQUFDLENBQUM7UUFFSCxvRUFBb0U7UUFDcEUsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSx1RUFBdUU7UUFDdkUsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTNCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FDYixnRUFBZ0UsQ0FDakUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFBLCtDQUE0QixFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWpDLElBQUksc0RBQXdCLENBQUMsSUFBSSxFQUFFO1lBQ2pDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLG9DQUF3QjtTQUNuRSxDQUFDLENBQUM7UUFDSCxJQUFJLDhEQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksK0NBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVELElBQUksNkNBQW9CLENBQUMsSUFBSSxFQUFFO2dCQUM3QixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQ2xDLFdBQVcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7b0JBQ3BCO3dCQUNFLElBQUksRUFBRSxTQUFTO3dCQUNmLEdBQUcsRUFBRSxRQUFRO3FCQUNkO29CQUNEO3dCQUNFLElBQUksRUFBRSxlQUFlLEdBQUcsQ0FBQyxJQUFJLEdBQUc7d0JBQ2hDLEdBQUcsRUFBRSx1RUFBdUUsR0FBRyxDQUFDLElBQUksRUFBRTt3QkFDdEYsR0FBRyxFQUFFOzRCQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNoRSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt5QkFDMUQ7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUFoRkgsb0RBaUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrLCBnaXRodWIsIGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ29tbW9uQ2RrT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBBY3Rpb25zQWxsb3dsaXN0R3VhcmQgfSBmcm9tICcuLi9jb21tb24vYWN0aW9ucy1hbGxvd2xpc3QtZ3VhcmQnO1xuaW1wb3J0IHsgREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVUIH0gZnJvbSAnLi4vY29tbW9uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudE9wdGlvbnMgfSBmcm9tICcuLi9jb21tb24vZW52aXJvbm1lbnQtb3B0aW9ucyc7XG5pbXBvcnQgeyBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzIH0gZnJvbSAnLi4vY29tbW9uL2ludGVybmFsLWFjdGlvbnMnO1xuaW1wb3J0IHsgTWFudWFsRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vbWFudWFsLWRlcGxveS13b3JrZmxvdyc7XG5pbXBvcnQgeyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vcHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93JztcbmltcG9ydCB7IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdyc7XG5cbi8vIFJlc29sdmVkIHRocm91Z2ggTm9kZSdzIG5vcm1hbCBtb2R1bGUgcmVzb2x1dGlvbiwgc28gaW4gYSAqcHVibGlzaGVkKlxuLy8gcGFja2FnZSB0aGlzIGlzIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZSB0aGF0IHNjYWZmb2xkZWQgdGhlIHJlcG8gKHNhbWVcbi8vIHRyaWNrIGFzIGBHaXRIdWJBY3Rpb25Qcm9qZWN0YCkuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgUFJPSkVOX1RZUEVTX1ZFUlNJT046IHN0cmluZyA9IHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrVHlwZXNjcmlwdFByb2plY3RPcHRpb25zIGV4dGVuZHMgQ29tbW9uQ2RrT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGVudmlyb25tZW50cz86IChzdHJpbmcgfCBFbnZpcm9ubWVudE9wdGlvbnMpW107XG59XG5cbi8qKlxuICogU2hhcmVkIENESyArIFR5cGVTY3JpcHQgZm91bmRhdGlvbiBmb3IgYENka0luZnJhUHJvamVjdGAgYW5kXG4gKiBgQ2RrQXBwUHJvamVjdGA6IHN0YW5kYXJkIGFwcCBzdHJ1Y3R1cmUgKHZpYSBgQXdzQ2RrVHlwZVNjcmlwdEFwcGAsXG4gKiBgY2RrLmpzb25gLCBgY2RrIHN5bnRoYC9gY2RrIGRpZmZgIHRhc2tzKSwgYSBQUi1jaGVjayBidWlsZCB0aGF0IGhhcmQtZmFpbHNcbiAqIG9uIHByb2plbiBkcmlmdCAocmF0aGVyIHRoYW4gc2VsZi1tdXRhdGluZyksIGFuZCBhbiBvcHRpb25hbFxuICogYE1hbnVhbERlcGxveVdvcmtmbG93YCB3aGVuIGBlbnZpcm9ubWVudHNgIGlzIHByb3ZpZGVkLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrVHlwZXNjcmlwdFByb2plY3QgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka1R5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC8vIFNwcmVhZCBmaXJzdCwgb3ZlcnJpZGVzIGFmdGVyOiBmb3J3YXJkaW5nIHRoZSBjYWxsZXIncyBvcHRpb25zIGlzXG4gICAgICAvLyB3aGF0IGxldHMgYHByb2plbiBuZXcgLS1mcm9tIEB4cGVydHNzL3Byb2plbi10eXBlcyBjZGtfaW5mcmFgIHdvcmtcbiAgICAgIC8vIC0gcHJvamVuIHNtdWdnbGVzIGl0cyBib290c3RyYXAgbWFya2VyIChgX19uZXdfX2ApIHRocm91Z2ggdGhlXG4gICAgICAvLyBvcHRpb25zIG9iamVjdCwgYW5kIGl0IGlzIHRoYXQgbWFya2VyIHdoaWNoIG1ha2VzIHRoZVxuICAgICAgLy8gYFByb2plbnJjRmlsZWAgY29tcG9uZW50IHdyaXRlIHRoZSBpbml0aWFsIGAucHJvamVucmMudHNgLiBEcm9wIGl0XG4gICAgICAvLyBhbmQgYHByb2plbiBuZXdgIHNjYWZmb2xkcyBhIHJlcG8gd2l0aCBubyBwcm9qZW5yYyBhdCBhbGwuXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgY2RrVmVyc2lvbjogb3B0aW9ucy5jZGtWZXJzaW9uID8/ICcyLjE4OS4xJyxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBzYW1wbGVDb2RlOiB0cnVlLFxuICAgICAgLy8gR2VuZXJhdGVkIHJlcG9zIGFyZSBjb25maWd1cmVkIHRocm91Z2ggYC5wcm9qZW5yYy50c2A7IHdpdGhvdXQgdGhpc1xuICAgICAgLy8gYFR5cGVTY3JpcHRQcm9qZWN0YCBkZWZhdWx0cyB0byBgcHJvamVucmNUczogZmFsc2VgIGFuZCB3aXJlcyB0aGVcbiAgICAgIC8vIGRlZmF1bHQgdGFzayB0byBgbm9kZSAucHJvamVucmMuanNgLlxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIC8vIFBpbm5lZCwgbm90IGBUeXBlU2NyaXB0UHJvamVjdGAncyBkZWZhdWx0IGAqYDogYHR5cGVzY3JpcHRAN2Agbm9cbiAgICAgIC8vIGxvbmdlciBleHBvc2VzIGB0cy5zeXNgIGZyb20gaXRzIEpTIEFQSSwgd2hpY2ggYnJlYWtzIHRoZSBgdHMtbm9kZWBcbiAgICAgIC8vIHRoYXQgYHByb2plbnJjVHNgIHdpcmVzIHRoZSBkZWZhdWx0IHRhc2sgdG8gKEFELTAwMSB3YW50cyB0aGUgcGluXG4gICAgICAvLyByZWdhcmRsZXNzKS5cbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uOiAnfjYuMC4zJyxcbiAgICAgIC8vIERlY2xhcmVkIGZsb29yIGZvciB0aGUgZ2VuZXJhdGVkIHJlcG8uIEFsc28gcmVxdWlyZWQgYnkgdGhlIHBpblxuICAgICAgLy8gYWJvdmU6IHdpdGggbm8gYG1pbk5vZGVWZXJzaW9uYCwgcHJvamVuIGRlcml2ZXMgYEB0eXBlcy9ub2RlYCBmcm9tXG4gICAgICAvLyB0aGUgVHlwZVNjcmlwdCB2ZXJzaW9uIGluc3RlYWQsIGFuZCB0aGUgYEB0eXBlcy9ub2RlQHRzNi4wYFxuICAgICAgLy8gZGlzdC10YWcgaXQgYXNrcyBmb3IgZG9lcyBub3QgZXhpc3QgLSBgbnBtIGluc3RhbGxgIGZhaWxzIG91dHJpZ2h0LlxuICAgICAgbWluTm9kZVZlcnNpb246ICcyMi4wLjAnLFxuICAgICAgLy8gV2l0aG91dCB0aGlzIHByb2plbiBkZWZhdWx0cyB0byB5YXJuIGNsYXNzaWMgYW5kIHRoZSBnZW5lcmF0ZWQgcmVwbydzXG4gICAgICAvLyBvd24gaW5zdGFsbCBzdGVwIHJ1bnMgYHlhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzYCwgd2hpbGUgZXZlcnlcbiAgICAgIC8vIHdvcmtmbG93IHRoaXMgcGFja2FnZSBnZW5lcmF0ZXMgLSBhbmQgdGhlIFJFQURNRSAtIHVzZSBucG0uXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuTlBNLFxuICAgICAgLy8gRmFpbCBQUiBjaGVja3Mgb24gZHJpZnQgaW5zdGVhZCBvZiBhdXRvLWNvbW1pdHRpbmcgcHJvamVuJ3Mgb3V0cHV0LlxuICAgICAgYnVpbGRXb3JrZmxvd09wdGlvbnM6IHsgbXV0YWJsZUJ1aWxkOiBmYWxzZSB9LFxuICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgIHNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIC8vIGAucHJvamVucmMudHNgIGltcG9ydHMgdGhpcyBwYWNrYWdlLCBzbyB0aGUgZ2VuZXJhdGVkIHJlcG8gaGFzIHRvXG4gICAgLy8gZGVjbGFyZSBpdDogcHJvamVuIHBydW5lcyBhbnkgZGVwZW5kZW5jeSBvZiBhIGBOb2RlUHJvamVjdGAgdGhhdCB0aGVcbiAgICAvLyBwcm9qZW5yYyBkb2VzIG5vdCBhc2sgZm9yIChcIlJlbW92aW5nIHVubWFuYWdlZCBkZXBlbmRlbmNpZXMuLi5cIiksIHdoaWNoXG4gICAgLy8gd291bGQgbGVhdmUgYSByZXBvIHdob3NlIGBucHggcHJvamVuYCBjYW5ub3QgcmVzb2x2ZSBpdHMgb3duIHByb2plY3RcbiAgICAvLyB0eXBlIGFmdGVyIGEgY2xlYW4gYG5wbSBjaWAuXG4gICAgdGhpcy5hZGREZXZEZXBzKGBAeHBlcnRzcy9wcm9qZW4tdHlwZXNAJHtQUk9KRU5fVFlQRVNfVkVSU0lPTn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoJ2VzYnVpbGQnKTtcblxuICAgIGNvbnN0IGdoID0gdGhpcy5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2RrVHlwZXNjcmlwdFByb2plY3QgcmVxdWlyZXMgR2l0SHViIGludGVncmF0aW9uIHRvIGJlIGVuYWJsZWQnLFxuICAgICAgKTtcbiAgICB9XG4gICAgYXBwbHlJbnRlcm5hbEFjdGlvbk92ZXJyaWRlcyhnaCk7XG5cbiAgICBuZXcgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93KHRoaXMsIHtcbiAgICAgIGdoZVRva2VuU2VjcmV0OiBvcHRpb25zLmdoZVRva2VuU2VjcmV0ID8/IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCxcbiAgICB9KTtcbiAgICBuZXcgV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvdyh0aGlzKTtcbiAgICBuZXcgQWN0aW9uc0FsbG93bGlzdEd1YXJkKHRoaXMpO1xuXG4gICAgaWYgKG9wdGlvbnMuZW52aXJvbm1lbnRzICYmIG9wdGlvbnMuZW52aXJvbm1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIG5ldyBNYW51YWxEZXBsb3lXb3JrZmxvdyh0aGlzLCB7XG4gICAgICAgIGVudmlyb25tZW50czogb3B0aW9ucy5lbnZpcm9ubWVudHMsXG4gICAgICAgIGRlcGxveVN0ZXBzOiAoZW52KSA9PiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0luc3RhbGwnLFxuICAgICAgICAgICAgcnVuOiAnbnBtIGNpJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IGBjZGsgZGVwbG95ICgke2Vudi5uYW1lfSlgLFxuICAgICAgICAgICAgcnVuOiBgbnB4IGNkayBkZXBsb3kgLS1hbGwgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIC0tY29udGV4dCBlbnZpcm9ubWVudD0ke2Vudi5uYW1lfWAsXG4gICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgLi4uKGVudi5hY2NvdW50SWQgPyB7IENES19ERUZBVUxUX0FDQ09VTlQ6IGVudi5hY2NvdW50SWQgfSA6IHt9KSxcbiAgICAgICAgICAgICAgLi4uKGVudi5yZWdpb24gPyB7IENES19ERUZBVUxUX1JFR0lPTjogZW52LnJlZ2lvbiB9IDoge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -10,7 +10,7 @@ const projen_1 = require("projen");
|
|
|
10
10
|
* built from this project's own source (app projects).
|
|
11
11
|
*/
|
|
12
12
|
class EcrEcsConstructs extends projen_1.Component {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EcrEcsConstructs", version: "0.0.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EcrEcsConstructs", version: "0.0.4" };
|
|
14
14
|
constructor(project, options = {}) {
|
|
15
15
|
super(project, 'EcrEcsConstructs');
|
|
16
16
|
const externalImageSource = options.externalImageSource ?? true;
|
|
@@ -42,7 +42,7 @@ const HELPERS = {
|
|
|
42
42
|
* to whichever `edgeResources` the consuming project type opts into.
|
|
43
43
|
*/
|
|
44
44
|
class EdgeNetworkingConstructs extends projen_1.Component {
|
|
45
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EdgeNetworkingConstructs", version: "0.0.
|
|
45
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EdgeNetworkingConstructs", version: "0.0.4" };
|
|
46
46
|
constructor(project, resources) {
|
|
47
47
|
super(project, 'EdgeNetworkingConstructs');
|
|
48
48
|
if (resources.length === 0) {
|
|
@@ -10,7 +10,7 @@ const projen_1 = require("projen");
|
|
|
10
10
|
* the consuming team to wire up; no opinionated default is imposed.
|
|
11
11
|
*/
|
|
12
12
|
class DatabaseComponent extends projen_1.Component {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DatabaseComponent", version: "0.0.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DatabaseComponent", version: "0.0.4" };
|
|
14
14
|
constructor(project, options = {}) {
|
|
15
15
|
super(project, 'DatabaseComponent');
|
|
16
16
|
const engine = options.engine ?? 'postgres';
|
package/lib/cdk/options.d.ts
CHANGED
|
@@ -19,8 +19,20 @@ export interface CommonCdkOptions {
|
|
|
19
19
|
readonly gheTokenSecret?: string;
|
|
20
20
|
}
|
|
21
21
|
export interface CdkInfraProjectOptions extends CommonCdkOptions {
|
|
22
|
-
/**
|
|
23
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Deploy targets for the manual-dispatch deploy workflow, e.g.
|
|
24
|
+
* ["dev", "stage", "prod"]. No `deploy` workflow is generated when this is
|
|
25
|
+
* empty or omitted.
|
|
26
|
+
*
|
|
27
|
+
* Optional rather than required so that `projen new --from` can scaffold
|
|
28
|
+
* the repo: its union type (`string | EnvironmentOptions`) is not
|
|
29
|
+
* "JSON-like", so projen's CLI cannot render a value for it into the
|
|
30
|
+
* initial `.projenrc.ts` - and a *required* option it cannot render leaves
|
|
31
|
+
* behind a projenrc that does not type-check.
|
|
32
|
+
*
|
|
33
|
+
* @default - no deploy workflow
|
|
34
|
+
*/
|
|
35
|
+
readonly environments?: (string | EnvironmentOptions)[];
|
|
24
36
|
readonly ecrEcs?: EcrEcsOptions;
|
|
25
37
|
readonly edgeResources?: EdgeResource[];
|
|
26
38
|
}
|
package/lib/cdk/options.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi4vY29tbW9uL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBFZGdlUmVzb3VyY2UgPVxuICB8ICdjbG91ZGZyb250J1xuICB8ICdyb3V0ZTUzJ1xuICB8ICdhcGlnYXRld2F5J1xuICB8ICdjb2duaXRvJ1xuICB8ICdzcXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVjckVjc09wdGlvbnMge1xuICAvKiogQGRlZmF1bHQgZmFsc2UgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIEVDUyBzZXJ2aWNlIHN0YW5kcyB1cCBhbiBleHRlcm5hbGx5LWJ1aWx0IGltYWdlIChpbmZyYS1vbmx5KVxuICAgKiByYXRoZXIgdGhhbiBvbmUgYnVpbHQgZnJvbSB0aGlzIHByb2plY3QncyBvd24gc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbEltYWdlU291cmNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25DZGtPcHRpb25zIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIjIuMTg5LjFcIiAqL1xuICByZWFkb25seSBjZGtWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIiAqL1xuICByZWFkb25seSBnaGVUb2tlblNlY3JldD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtJbmZyYVByb2plY3RPcHRpb25zIGV4dGVuZHMgQ29tbW9uQ2RrT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEZXBsb3kgdGFyZ2V0cyBmb3IgdGhlIG1hbnVhbC1kaXNwYXRjaCBkZXBsb3kgd29ya2Zsb3csIGUuZy5cbiAgICogW1wiZGV2XCIsIFwic3RhZ2VcIiwgXCJwcm9kXCJdLiBObyBgZGVwbG95YCB3b3JrZmxvdyBpcyBnZW5lcmF0ZWQgd2hlbiB0aGlzIGlzXG4gICAqIGVtcHR5IG9yIG9taXR0ZWQuXG4gICAqXG4gICAqIE9wdGlvbmFsIHJhdGhlciB0aGFuIHJlcXVpcmVkIHNvIHRoYXQgYHByb2plbiBuZXcgLS1mcm9tYCBjYW4gc2NhZmZvbGRcbiAgICogdGhlIHJlcG86IGl0cyB1bmlvbiB0eXBlIChgc3RyaW5nIHwgRW52aXJvbm1lbnRPcHRpb25zYCkgaXMgbm90XG4gICAqIFwiSlNPTi1saWtlXCIsIHNvIHByb2plbidzIENMSSBjYW5ub3QgcmVuZGVyIGEgdmFsdWUgZm9yIGl0IGludG8gdGhlXG4gICAqIGluaXRpYWwgYC5wcm9qZW5yYy50c2AgLSBhbmQgYSAqcmVxdWlyZWQqIG9wdGlvbiBpdCBjYW5ub3QgcmVuZGVyIGxlYXZlc1xuICAgKiBiZWhpbmQgYSBwcm9qZW5yYyB0aGF0IGRvZXMgbm90IHR5cGUtY2hlY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVwbG95IHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudHM/OiAoc3RyaW5nIHwgRW52aXJvbm1lbnRPcHRpb25zKVtdO1xuXG4gIHJlYWRvbmx5IGVjckVjcz86IEVjckVjc09wdGlvbnM7XG5cbiAgcmVhZG9ubHkgZWRnZVJlc291cmNlcz86IEVkZ2VSZXNvdXJjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlT3B0aW9ucyB7XG4gIC8qKiBAZGVmYXVsdCBcInBvc3RncmVzXCIgKi9cbiAgcmVhZG9ubHkgZW5naW5lPzogJ3Bvc3RncmVzJyB8ICdteXNxbCcgfCAnZHluYW1vZGInO1xuXG4gIC8qKiBNaWdyYXRpb24gdG9vbCB0byB3aXJlIHVwLCBlLmcuIFwiZmx5d2F5XCIsIFwibGlxdWliYXNlXCIsIFwicHJpc21hXCIuIExlZnQgcGx1Z2dhYmxlIC0gbm8gZGVmYXVsdC4gKi9cbiAgcmVhZG9ubHkgbWlncmF0aW9uVG9vbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtBcHBQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENka0luZnJhUHJvamVjdE9wdGlvbnMge1xuICByZWFkb25seSBkYXRhYmFzZT86IERhdGFiYXNlT3B0aW9ucztcblxuICAvKiogQGRlZmF1bHQgXCJzcmMvYXBwLnRzXCIgKi9cbiAgcmVhZG9ubHkgYXBwRW50cnlQb2ludD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
const constants_1 = require("./constants");
|
|
7
7
|
class ActionsAllowlistGuard extends projen_1.Component {
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionsAllowlistGuard", version: "0.0.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionsAllowlistGuard", version: "0.0.4" };
|
|
9
9
|
workflow;
|
|
10
10
|
constructor(scope, options = {}) {
|
|
11
11
|
super(scope, 'ActionsAllowlistGuard');
|
|
@@ -4,7 +4,7 @@ exports.ProjenDriftCheckWorkflow = void 0;
|
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
class ProjenDriftCheckWorkflow extends projen_1.Component {
|
|
7
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.
|
|
7
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.4" };
|
|
8
8
|
workflow;
|
|
9
9
|
constructor(scope, options = {}) {
|
|
10
10
|
super(scope, 'ProjenDriftCheckWorkflow');
|
|
@@ -32,7 +32,11 @@ class ProjenDriftCheckWorkflow extends projen_1.Component {
|
|
|
32
32
|
{
|
|
33
33
|
name: 'Setup Node',
|
|
34
34
|
uses: 'actions/setup-node@v4',
|
|
35
|
-
|
|
35
|
+
// Pinned, not `lts/*` - a floating version can resolve a
|
|
36
|
+
// different npm than whatever generated the committed
|
|
37
|
+
// package-lock.json, and `npm ci` then fails on optional-
|
|
38
|
+
// dependency drift that isn't a real dependency bug.
|
|
39
|
+
with: { 'node-version': '24' },
|
|
36
40
|
},
|
|
37
41
|
{
|
|
38
42
|
name: 'Install dependencies',
|
|
@@ -70,4 +74,4 @@ fi
|
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
exports.ProjenDriftCheckWorkflow = ProjenDriftCheckWorkflow;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUEyQztBQW9DM0MsTUFBYSx3QkFBeUIsU0FBUSxrQkFBUzs7SUFDckMsUUFBUSxDQUF3QjtJQUVoRCxZQUNFLEtBQTJCLEVBQzNCLFVBQTJDLEVBQUU7UUFFN0MsS0FBSyxDQUFDLEtBQUssRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDeEIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FDYixvRUFBb0UsQ0FDckUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLFlBQVksQ0FBQztRQUM1RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLHFCQUFxQixDQUFDO1FBRXZFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFNLENBQUMsY0FBYyxDQUN2QyxFQUFFLEVBQ0YsT0FBTyxDQUFDLFlBQVksSUFBSSxvQkFBb0IsQ0FDN0MsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQzVCLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUN6QixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQzlELEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsY0FBYyxLQUFLLEVBQUU7WUFDdEQsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUscUJBQXFCO29CQUMzQixJQUFJLEVBQUU7d0JBQ0osR0FBRyxFQUFFLDJDQUEyQzt3QkFDaEQsVUFBVSxFQUFFLHNEQUFzRDtxQkFDbkU7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLHlEQUF5RDtvQkFDekQsc0RBQXNEO29CQUN0RCwwREFBMEQ7b0JBQzFELHFEQUFxRDtvQkFDckQsSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRTtpQkFDL0I7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtvQkFDNUIsR0FBRyxFQUFFLFFBQVE7aUJBQ2Q7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLHdCQUF3QjtvQkFDOUIsR0FBRyxFQUFFO0VBQ2IsYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCZDtpQkFDUTthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUEvRUgsNERBZ0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuXG4vKipcbiAqIFBSLXRyaWdnZXJlZCBjaGVjayB0aGF0IHJlamVjdHMgZGlyZWN0IGVkaXRzIHRvIHByb2plbi1tYW5hZ2VkIGZpbGVzLlxuICpcbiAqIFJlLXJ1bnMgdGhlIHByb2plY3QncyBzeW50aCBjb21tYW5kIG9uIHRoZSBQUiBoZWFkIGFuZCBmYWlscyBpZiB0aGVcbiAqIHJlZ2VuZXJhdGVkIG91dHB1dCBubyBsb25nZXIgbWF0Y2hlcyB3aGF0J3MgY29tbWl0dGVkIC0gaS5lLiBzb21lb25lXG4gKiBoYW5kLWVkaXRlZCBhIGdlbmVyYXRlZCBmaWxlIChwYWNrYWdlLmpzb24gLyBwb20ueG1sIC9cbiAqIC5naXRodWIvd29ya2Zsb3dzLyoueW1sIC8gLi4uKSBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggYC5wcm9qZW5yYy50c2AuXG4gKlxuICogUnVucyBvbiBgcHVsbF9yZXF1ZXN0YCBzbyBpdCBnZW51aW5lbHkgZXhlY3V0ZXMgdGhlIFBSJ3Mgb3duIGNvZGUgKHRoZVxuICogb25seSB3YXkgdG8gZGV0ZWN0IGRyaWZ0KSAtIGFuZCB0aGVyZWZvcmUsIGJ5IG5lY2Vzc2l0eSwgYSBQUiBhdXRob3IgY2FuXG4gKiBkaXNhYmxlIGl0IHdpdGhpbiB0aGVpciBvd24gUFIuIFRoYXQgcmVzaWR1YWwgZXhwb3N1cmUgaXMgYm91bmRlZCBieVxuICogYFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3dgIChDaGVjayAyKSwgd2hpY2ggaXMgdGFtcGVyLXByb29mIGFuZCBmbGFnc1xuICogYW55IHRvdWNoIHRvIGAuZ2l0aHViL3dvcmtmbG93cy8qKmAuIFNlZSB0aGUgRjAwMyBzcGVjJ3MgU2VjdXJpdHkgc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3dPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHRoYXQgcmVnZW5lcmF0ZXMgdGhlIHByb2plY3QgZnJvbSBgLnByb2plbnJjLnRzYC5cbiAgICogQGRlZmF1bHQgXCJucHggcHJvamVuXCJcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNvbW1hbmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgaG9sZGluZyBhIHRva2VuIHdpdGggcGVybWlzc2lvbiB0byBjb21tZW50IG9uIFBScywgdXNlZFxuICAgKiBmb3IgdGhlIGJlc3QtZWZmb3J0IGRyaWZ0IHJlcG9ydCBjb21tZW50LiBUaGUgY2hlY2sgc3RpbGwgZmFpbHMgKGFuZFxuICAgKiBlbWl0cyBgOjplcnJvcjo6YCBhbm5vdGF0aW9ucykgd2l0aG91dCBpdCwgc28gZm9yayBQUnMgLSB3aGljaCBnZXQgbm9cbiAgICogc2VjcmV0cyAtIGFyZSBvbmx5IG1pc3NpbmcgdGhlIGV4dHJhIGNvbW1lbnQuXG4gICAqIEBkZWZhdWx0IFwiUFJPSkVOX0dJVEhVQl9UT0tFTlwiXG4gICAqL1xuICByZWFkb25seSBnaGVUb2tlblNlY3JldD86IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJwcm9qZW4tZHJpZnQtY2hlY2tcIiAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3c6IGdpdGh1Yi5HaXRodWJXb3JrZmxvdztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogZ2l0aHViLkdpdEh1YlByb2plY3QsXG4gICAgb3B0aW9uczogUHJvamVuRHJpZnRDaGVja1dvcmtmbG93T3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgJ1Byb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdycpO1xuXG4gICAgY29uc3QgZ2ggPSBzY29wZS5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUHJvamVuRHJpZnRDaGVja1dvcmtmbG93IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVuQ29tbWFuZCA9IG9wdGlvbnMucHJvamVuQ29tbWFuZCA/PyAnbnB4IHByb2plbic7XG4gICAgY29uc3QgZ2hlVG9rZW5TZWNyZXQgPSBvcHRpb25zLmdoZVRva2VuU2VjcmV0ID8/ICdQUk9KRU5fR0lUSFVCX1RPS0VOJztcblxuICAgIHRoaXMud29ya2Zsb3cgPSBuZXcgZ2l0aHViLkdpdGh1YldvcmtmbG93KFxuICAgICAgZ2gsXG4gICAgICBvcHRpb25zLndvcmtmbG93TmFtZSA/PyAncHJvamVuLWRyaWZ0LWNoZWNrJyxcbiAgICApO1xuICAgIHRoaXMud29ya2Zsb3cub24oeyBwdWxsUmVxdWVzdDoge30gfSk7XG4gICAgdGhpcy53b3JrZmxvdy5hZGRKb2IoJ2NoZWNrJywge1xuICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCB9LFxuICAgICAgZW52OiB7IEdIX1RPS0VOOiBgXFwke3sgc2VjcmV0cy4ke2doZVRva2VuU2VjcmV0fSB9fWAgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ2hlY2tvdXQnLFxuICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICByZWY6ICcke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnJlZiB9fScsXG4gICAgICAgICAgICByZXBvc2l0b3J5OiAnJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZXBvLmZ1bGxfbmFtZSB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlJyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY0JyxcbiAgICAgICAgICAvLyBQaW5uZWQsIG5vdCBgbHRzLypgIC0gYSBmbG9hdGluZyB2ZXJzaW9uIGNhbiByZXNvbHZlIGFcbiAgICAgICAgICAvLyBkaWZmZXJlbnQgbnBtIHRoYW4gd2hhdGV2ZXIgZ2VuZXJhdGVkIHRoZSBjb21taXR0ZWRcbiAgICAgICAgICAvLyBwYWNrYWdlLWxvY2suanNvbiwgYW5kIGBucG0gY2lgIHRoZW4gZmFpbHMgb24gb3B0aW9uYWwtXG4gICAgICAgICAgLy8gZGVwZW5kZW5jeSBkcmlmdCB0aGF0IGlzbid0IGEgcmVhbCBkZXBlbmRlbmN5IGJ1Zy5cbiAgICAgICAgICB3aXRoOiB7ICdub2RlLXZlcnNpb24nOiAnMjQnIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICAgICAgIHJ1bjogJ25wbSBjaScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ2hlY2sgZm9yIHByb2plbiBkcmlmdCcsXG4gICAgICAgICAgcnVuOiBgc2V0IC1ldW8gcGlwZWZhaWxcbiR7cHJvamVuQ29tbWFuZH1cbmRyaWZ0ZWQ9XCIkKGdpdCBkaWZmIC0tbmFtZS1vbmx5KVwiXG5pZiBbIC1uIFwiJGRyaWZ0ZWRcIiBdOyB0aGVuXG4gIHdoaWxlIElGUz0gcmVhZCAtciBmOyBkb1xuICAgIGVjaG8gXCI6OmVycm9yIGZpbGU9JGY6OnByb2plbi1tYW5hZ2VkIGZpbGUgd2FzIGVkaXRlZCBkaXJlY3RseTsgbWFrZSB0aGUgY2hhbmdlIGluIC5wcm9qZW5yYy50cyBhbmQgcmUtcnVuIG5weCBwcm9qZW5cIlxuICBkb25lIDw8PCBcIiRkcmlmdGVkXCJcbiAgaWYgWyAtbiBcIiRHSF9UT0tFTlwiIF0gJiYgWyAtbiBcIiRHSVRIVUJfRVZFTlRfUEFUSFwiIF07IHRoZW5cbiAgICBwcl9udW1iZXI9XCIkKGpxIC1yIFwiLnB1bGxfcmVxdWVzdC5udW1iZXIgLy8gZW1wdHlcIiBcIiRHSVRIVUJfRVZFTlRfUEFUSFwiIDI+L2Rldi9udWxsIHx8IHRydWUpXCJcbiAgICBpZiBbIC1uIFwiJHByX251bWJlclwiIF07IHRoZW5cbiAgICAgIHtcbiAgICAgICAgZWNobyBcIuKdjCBwcm9qZW4gZHJpZnQgZGV0ZWN0ZWRcIlxuICAgICAgICBlY2hvIFwiXCJcbiAgICAgICAgZWNobyBcIlRoZXNlIGZpbGVzIGFyZSBtYW5hZ2VkIGJ5IHByb2plbiBhbmQgd2VyZSBlZGl0ZWQgZGlyZWN0bHkuIERpcmVjdCBlZGl0cyBhcmUgc2lsZW50bHkgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgbnB4IHByb2plbiBydW4sIHNvIHRoZXkgY2Fubm90IGJlIG1lcmdlZCBhcy1pczpcIlxuICAgICAgICBlY2hvIFwiXCJcbiAgICAgICAgd2hpbGUgSUZTPSByZWFkIC1yIGY7IGRvIGVjaG8gXCIgIC0gJGZcIjsgZG9uZSA8PDwgXCIkZHJpZnRlZFwiXG4gICAgICAgIGVjaG8gXCJcIlxuICAgICAgICBlY2hvIFwiVG8gZml4OiByZXZlcnQgdGhlIGRpcmVjdCBlZGl0cyBhYm92ZSwgbWFrZSB0aGUgZXF1aXZhbGVudCBjaGFuZ2UgaW4gLnByb2plbnJjLnRzLCB0aGVuIHJ1biBucHggcHJvamVuIGFuZCBjb21taXQgdGhlIHJlZ2VuZXJhdGVkIG91dHB1dC5cIlxuICAgICAgfSB8IGdoIHByIGNvbW1lbnQgXCIkcHJfbnVtYmVyXCIgLS1ib2R5LWZpbGUgLSB8fCBlY2hvIFwiOjp3YXJuaW5nOjpjb3VsZCBub3QgcG9zdCBQUiBjb21tZW50IChmb3JrIFBSIG9yIG1pc3NpbmcgdG9rZW4pXCJcbiAgICBmaVxuICBmaVxuICBleGl0IDFcbmZpXG5gLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Project, typescript } from 'projen';
|
|
2
|
+
/**
|
|
3
|
+
* Attaches a TypeScript projenrc (`.projenrc.ts`) to a project whose primary
|
|
4
|
+
* language is not TypeScript - a Maven repo, a composite-action repo - so
|
|
5
|
+
* that every project type this package ships is configured the same way:
|
|
6
|
+
* edit `.projenrc.ts`, run `npx projen`.
|
|
7
|
+
*
|
|
8
|
+
* `typescript.ProjenrcTs` is explicitly language-agnostic and does the
|
|
9
|
+
* projen-native part: it registers the project's `ProjenrcFile` component -
|
|
10
|
+
* which is what makes `projen new --from @xpertss/projen-types <type>` write
|
|
11
|
+
* the initial `.projenrc.ts` - and emits the `tsconfig.projen.json` the
|
|
12
|
+
* runner compiles against.
|
|
13
|
+
*
|
|
14
|
+
* Only its default task is replaced. `ProjenrcTs` renders that task as
|
|
15
|
+
* `npx -y -p ts-node -c "<command>"`, and projen POSIX-quotes the `-c`
|
|
16
|
+
* payload; on Windows npx hands it to `cmd.exe`, which has no single-quote
|
|
17
|
+
* syntax, so `npx projen` fails with `''ts-node'' is not recognized`
|
|
18
|
+
* (projen 0.103.x). The `npx -p <pkg> <bin>` form has no such quoting
|
|
19
|
+
* problem and lets both halves of the toolchain be pinned, so the step is
|
|
20
|
+
* rewritten to use it.
|
|
21
|
+
*/
|
|
22
|
+
export declare function attachTypeScriptProjenrc(project: Project): typescript.ProjenrcTs;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.attachTypeScriptProjenrc = attachTypeScriptProjenrc;
|
|
4
|
+
const projen_1 = require("projen");
|
|
5
|
+
// The toolchain that runs `.projenrc.ts`, pinned exactly (AD-001): `ts-node`
|
|
6
|
+
// resolves `typescript` as a peer, and an unpinned `typescript` now installs
|
|
7
|
+
// 7.x, whose JS API no longer exposes `ts.sys` - ts-node 10.x then dies with
|
|
8
|
+
// `TypeError: Cannot read properties of undefined (reading 'fileExists')`.
|
|
9
|
+
const TS_NODE_VERSION = '10.9.2';
|
|
10
|
+
const TYPESCRIPT_VERSION = '6.0.3';
|
|
11
|
+
/**
|
|
12
|
+
* Attaches a TypeScript projenrc (`.projenrc.ts`) to a project whose primary
|
|
13
|
+
* language is not TypeScript - a Maven repo, a composite-action repo - so
|
|
14
|
+
* that every project type this package ships is configured the same way:
|
|
15
|
+
* edit `.projenrc.ts`, run `npx projen`.
|
|
16
|
+
*
|
|
17
|
+
* `typescript.ProjenrcTs` is explicitly language-agnostic and does the
|
|
18
|
+
* projen-native part: it registers the project's `ProjenrcFile` component -
|
|
19
|
+
* which is what makes `projen new --from @xpertss/projen-types <type>` write
|
|
20
|
+
* the initial `.projenrc.ts` - and emits the `tsconfig.projen.json` the
|
|
21
|
+
* runner compiles against.
|
|
22
|
+
*
|
|
23
|
+
* Only its default task is replaced. `ProjenrcTs` renders that task as
|
|
24
|
+
* `npx -y -p ts-node -c "<command>"`, and projen POSIX-quotes the `-c`
|
|
25
|
+
* payload; on Windows npx hands it to `cmd.exe`, which has no single-quote
|
|
26
|
+
* syntax, so `npx projen` fails with `''ts-node'' is not recognized`
|
|
27
|
+
* (projen 0.103.x). The `npx -p <pkg> <bin>` form has no such quoting
|
|
28
|
+
* problem and lets both halves of the toolchain be pinned, so the step is
|
|
29
|
+
* rewritten to use it.
|
|
30
|
+
*/
|
|
31
|
+
function attachTypeScriptProjenrc(project) {
|
|
32
|
+
const projenrc = new projen_1.typescript.ProjenrcTs(project);
|
|
33
|
+
project.defaultTask?.reset([
|
|
34
|
+
'npx -y',
|
|
35
|
+
`-p ts-node@${TS_NODE_VERSION}`,
|
|
36
|
+
`-p typescript@${TYPESCRIPT_VERSION}`,
|
|
37
|
+
'ts-node',
|
|
38
|
+
`--project ${projenrc.tsconfig.fileName}`,
|
|
39
|
+
projenrc.filePath,
|
|
40
|
+
].join(' '));
|
|
41
|
+
return projenrc;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMtdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL3Byb2plbnJjLXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNkJBLDREQWVDO0FBNUNELG1DQUE2QztBQUU3Qyw2RUFBNkU7QUFDN0UsNkVBQTZFO0FBQzdFLDZFQUE2RTtBQUM3RSwyRUFBMkU7QUFDM0UsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ2pDLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDO0FBRW5DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsT0FBZ0I7SUFDdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxtQkFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVwRCxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FDeEI7UUFDRSxRQUFRO1FBQ1IsY0FBYyxlQUFlLEVBQUU7UUFDL0IsaUJBQWlCLGtCQUFrQixFQUFFO1FBQ3JDLFNBQVM7UUFDVCxhQUFhLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO1FBQ3pDLFFBQVEsQ0FBQyxRQUFRO0tBQ2xCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNaLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvamVjdCwgdHlwZXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5cbi8vIFRoZSB0b29sY2hhaW4gdGhhdCBydW5zIGAucHJvamVucmMudHNgLCBwaW5uZWQgZXhhY3RseSAoQUQtMDAxKTogYHRzLW5vZGVgXG4vLyByZXNvbHZlcyBgdHlwZXNjcmlwdGAgYXMgYSBwZWVyLCBhbmQgYW4gdW5waW5uZWQgYHR5cGVzY3JpcHRgIG5vdyBpbnN0YWxsc1xuLy8gNy54LCB3aG9zZSBKUyBBUEkgbm8gbG9uZ2VyIGV4cG9zZXMgYHRzLnN5c2AgLSB0cy1ub2RlIDEwLnggdGhlbiBkaWVzIHdpdGhcbi8vIGBUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgdW5kZWZpbmVkIChyZWFkaW5nICdmaWxlRXhpc3RzJylgLlxuY29uc3QgVFNfTk9ERV9WRVJTSU9OID0gJzEwLjkuMic7XG5jb25zdCBUWVBFU0NSSVBUX1ZFUlNJT04gPSAnNi4wLjMnO1xuXG4vKipcbiAqIEF0dGFjaGVzIGEgVHlwZVNjcmlwdCBwcm9qZW5yYyAoYC5wcm9qZW5yYy50c2ApIHRvIGEgcHJvamVjdCB3aG9zZSBwcmltYXJ5XG4gKiBsYW5ndWFnZSBpcyBub3QgVHlwZVNjcmlwdCAtIGEgTWF2ZW4gcmVwbywgYSBjb21wb3NpdGUtYWN0aW9uIHJlcG8gLSBzb1xuICogdGhhdCBldmVyeSBwcm9qZWN0IHR5cGUgdGhpcyBwYWNrYWdlIHNoaXBzIGlzIGNvbmZpZ3VyZWQgdGhlIHNhbWUgd2F5OlxuICogZWRpdCBgLnByb2plbnJjLnRzYCwgcnVuIGBucHggcHJvamVuYC5cbiAqXG4gKiBgdHlwZXNjcmlwdC5Qcm9qZW5yY1RzYCBpcyBleHBsaWNpdGx5IGxhbmd1YWdlLWFnbm9zdGljIGFuZCBkb2VzIHRoZVxuICogcHJvamVuLW5hdGl2ZSBwYXJ0OiBpdCByZWdpc3RlcnMgdGhlIHByb2plY3QncyBgUHJvamVucmNGaWxlYCBjb21wb25lbnQgLVxuICogd2hpY2ggaXMgd2hhdCBtYWtlcyBgcHJvamVuIG5ldyAtLWZyb20gQHhwZXJ0c3MvcHJvamVuLXR5cGVzIDx0eXBlPmAgd3JpdGVcbiAqIHRoZSBpbml0aWFsIGAucHJvamVucmMudHNgIC0gYW5kIGVtaXRzIHRoZSBgdHNjb25maWcucHJvamVuLmpzb25gIHRoZVxuICogcnVubmVyIGNvbXBpbGVzIGFnYWluc3QuXG4gKlxuICogT25seSBpdHMgZGVmYXVsdCB0YXNrIGlzIHJlcGxhY2VkLiBgUHJvamVucmNUc2AgcmVuZGVycyB0aGF0IHRhc2sgYXNcbiAqIGBucHggLXkgLXAgdHMtbm9kZSAtYyBcIjxjb21tYW5kPlwiYCwgYW5kIHByb2plbiBQT1NJWC1xdW90ZXMgdGhlIGAtY2BcbiAqIHBheWxvYWQ7IG9uIFdpbmRvd3MgbnB4IGhhbmRzIGl0IHRvIGBjbWQuZXhlYCwgd2hpY2ggaGFzIG5vIHNpbmdsZS1xdW90ZVxuICogc3ludGF4LCBzbyBgbnB4IHByb2plbmAgZmFpbHMgd2l0aCBgJyd0cy1ub2RlJycgaXMgbm90IHJlY29nbml6ZWRgXG4gKiAocHJvamVuIDAuMTAzLngpLiBUaGUgYG5weCAtcCA8cGtnPiA8YmluPmAgZm9ybSBoYXMgbm8gc3VjaCBxdW90aW5nXG4gKiBwcm9ibGVtIGFuZCBsZXRzIGJvdGggaGFsdmVzIG9mIHRoZSB0b29sY2hhaW4gYmUgcGlubmVkLCBzbyB0aGUgc3RlcCBpc1xuICogcmV3cml0dGVuIHRvIHVzZSBpdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaFR5cGVTY3JpcHRQcm9qZW5yYyhwcm9qZWN0OiBQcm9qZWN0KTogdHlwZXNjcmlwdC5Qcm9qZW5yY1RzIHtcbiAgY29uc3QgcHJvamVucmMgPSBuZXcgdHlwZXNjcmlwdC5Qcm9qZW5yY1RzKHByb2plY3QpO1xuXG4gIHByb2plY3QuZGVmYXVsdFRhc2s/LnJlc2V0KFxuICAgIFtcbiAgICAgICducHggLXknLFxuICAgICAgYC1wIHRzLW5vZGVAJHtUU19OT0RFX1ZFUlNJT059YCxcbiAgICAgIGAtcCB0eXBlc2NyaXB0QCR7VFlQRVNDUklQVF9WRVJTSU9OfWAsXG4gICAgICAndHMtbm9kZScsXG4gICAgICBgLS1wcm9qZWN0ICR7cHJvamVucmMudHNjb25maWcuZmlsZU5hbWV9YCxcbiAgICAgIHByb2plbnJjLmZpbGVQYXRoLFxuICAgIF0uam9pbignICcpLFxuICApO1xuXG4gIHJldHVybiBwcm9qZW5yYztcbn1cbiJdfQ==
|
|
@@ -4,7 +4,7 @@ exports.WorkflowChangeNoticeWorkflow = void 0;
|
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
class WorkflowChangeNoticeWorkflow extends projen_1.Component {
|
|
7
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.
|
|
7
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.4" };
|
|
8
8
|
workflow;
|
|
9
9
|
constructor(scope, options = {}) {
|
|
10
10
|
super(scope, 'WorkflowChangeNoticeWorkflow');
|
|
@@ -7,6 +7,13 @@ import { CdkDeployHookOptions } from '../options';
|
|
|
7
7
|
* companion `CdkInfraProject`/`CdkAppProject` repo, using the same
|
|
8
8
|
* `ManualDeployWorkflow` contract those project types use for their own
|
|
9
9
|
* deploys - see the CDK spec's open question about sharing this contract.
|
|
10
|
+
*
|
|
11
|
+
* With no `targetRepo` the workflow is still generated, but every job's
|
|
12
|
+
* only step fails with instructions. Synthesizing is not the place to
|
|
13
|
+
* enforce this: it would make the project type unscaffoldable by
|
|
14
|
+
* `projen new` (which cannot supply the value), and it is a dispatch-only
|
|
15
|
+
* workflow - nobody hits the failure until they actually try to deploy,
|
|
16
|
+
* which is exactly when "this repo has no deploy target" needs saying.
|
|
10
17
|
*/
|
|
11
18
|
export declare class CdkDeployHook extends Component {
|
|
12
19
|
constructor(project: java.JavaProject, environments: (string | EnvironmentOptions)[], options?: CdkDeployHookOptions);
|