projen 0.101.3 → 0.101.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +878 -110
- package/lib/ai-instructions.js +2 -2
- package/lib/awscdk/auto-discover.js +6 -6
- package/lib/awscdk/awscdk-app-java.js +1 -1
- package/lib/awscdk/awscdk-app-py.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +1 -1
- package/lib/awscdk/awscdk-construct.js +1 -1
- package/lib/awscdk/awscdk-deps-java.js +1 -1
- package/lib/awscdk/awscdk-deps-js.js +1 -1
- package/lib/awscdk/awscdk-deps-py.js +1 -1
- package/lib/awscdk/awscdk-deps.js +1 -1
- package/lib/awscdk/cdk-config.js +3 -3
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.js +1 -1
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/build/build-workflow.js +1 -1
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-build.js +1 -1
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.js +1 -1
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-py.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/cdk8s-deps-py.js +1 -1
- package/lib/cdk8s/cdk8s-deps.js +1 -1
- package/lib/cdk8s/integration-test.js +1 -1
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/component.d.ts +70 -0
- package/lib/component.js +183 -3
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/auto-queue.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/dependency-review.js +1 -1
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/merge-queue.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-backport.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow-job.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflow-actions.js +1 -1
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflow-steps.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +2 -2
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/biome/biome.js +1 -1
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.js +1 -1
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/license-checker.js +1 -1
- package/lib/javascript/node-package.js +1 -1
- package/lib/javascript/node-project.js +1 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +2 -2
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/javascript/yarnrc.js +1 -1
- package/lib/json-patch.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project-tree.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +1 -1
- package/lib/projenrc.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pyproject-toml-file.js +1 -1
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.d.ts +1 -1
- package/lib/python/python-project.js +2 -2
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/uv.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/renovatebot.js +1 -1
- package/lib/run-task.cjs +2 -2
- package/lib/sample-file.js +2 -2
- package/lib/script-runner.d.ts +35 -0
- package/lib/script-runner.js +22 -0
- package/lib/source-code.js +1 -1
- package/lib/task-shell.js +1 -1
- package/lib/task.js +1 -1
- package/lib/tasks.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.js +2 -1
- package/lib/typescript/projenrc-ts.d.ts +11 -3
- package/lib/typescript/projenrc-ts.js +38 -6
- package/lib/typescript/projenrc.d.ts +14 -3
- package/lib/typescript/projenrc.js +36 -18
- package/lib/typescript/typescript-runner.d.ts +146 -0
- package/lib/typescript/typescript-runner.js +134 -0
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.d.ts +14 -0
- package/lib/typescript/typescript.js +12 -6
- package/lib/util/recreate.d.ts +30 -0
- package/lib/util/recreate.js +38 -0
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +3 -3
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +2 -2
package/lib/component.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Component = void 0;
|
|
3
|
+
exports.FutureComponent = exports.Component = void 0;
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
const constructs_1 = require("constructs");
|
|
6
6
|
const constructs_2 = require("./util/constructs");
|
|
@@ -16,7 +16,7 @@ const componentId = (scope) => {
|
|
|
16
16
|
* @param id Unique id of the component. If not provided, an unstable AutoId is generated.
|
|
17
17
|
*/
|
|
18
18
|
class Component extends constructs_1.Construct {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Component", version: "0.101.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Component", version: "0.101.4" };
|
|
20
20
|
/**
|
|
21
21
|
* Test whether the given construct is a component.
|
|
22
22
|
*/
|
|
@@ -45,4 +45,184 @@ class Component extends constructs_1.Construct {
|
|
|
45
45
|
postSynthesize() { }
|
|
46
46
|
}
|
|
47
47
|
exports.Component = Component;
|
|
48
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Internal flag key read by the detached-guard proxy. A symbol so it never
|
|
50
|
+
* collides with a real (string-keyed) member and is always readable through the
|
|
51
|
+
* guard (symbol access is never blocked).
|
|
52
|
+
*/
|
|
53
|
+
const FUTURE_ATTACHED = Symbol.for("projen.future.attached");
|
|
54
|
+
/**
|
|
55
|
+
* The members a detached future component is allowed to expose. Reading anything
|
|
56
|
+
* else before attach throws. (`copy` is the copyable capability method a
|
|
57
|
+
* copyable subclass adds, per the `recreate()` convention.)
|
|
58
|
+
*/
|
|
59
|
+
const DETACHED_ALLOWLIST = new Set([
|
|
60
|
+
"attach",
|
|
61
|
+
"tryAttach",
|
|
62
|
+
"attached",
|
|
63
|
+
"copy",
|
|
64
|
+
"constructor",
|
|
65
|
+
"toString",
|
|
66
|
+
]);
|
|
67
|
+
/**
|
|
68
|
+
* Wrap a freshly constructed {@link FutureComponent} in a guard proxy.
|
|
69
|
+
*
|
|
70
|
+
* Two jobs:
|
|
71
|
+
*
|
|
72
|
+
* 1. Block use before attach. While detached, any property read outside
|
|
73
|
+
* {@link DETACHED_ALLOWLIST} (and outside symbol keys, which always pass so
|
|
74
|
+
* `instanceof`, jsii and inspection keep working) throws instead of silently
|
|
75
|
+
* returning shadow-tree state.
|
|
76
|
+
* 2. "Drop" itself on attach. Once attached, the guard is a transparent
|
|
77
|
+
* pass-through: a single boolean check, then `Reflect`. Every method it
|
|
78
|
+
* returns is bound to the *real* target, so the moment you call one method
|
|
79
|
+
* the work continues on the bare object with no further proxy traps.
|
|
80
|
+
*
|
|
81
|
+
* Only `get` is guarded. `set` is intentionally left open so a subclass
|
|
82
|
+
* constructor can assign its own fields (e.g. `this.options = options`).
|
|
83
|
+
*/
|
|
84
|
+
function guardDetached(target) {
|
|
85
|
+
const boundCache = new Map();
|
|
86
|
+
const handler = {
|
|
87
|
+
get(t, prop) {
|
|
88
|
+
// never present as a thenable, or `await futureComponent` would hang/throw
|
|
89
|
+
if (prop === "then") {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
const attached = t[FUTURE_ATTACHED] === true;
|
|
93
|
+
const allowed = attached || typeof prop !== "string" || DETACHED_ALLOWLIST.has(prop);
|
|
94
|
+
if (!allowed) {
|
|
95
|
+
const name = t.newTargetName ?? t.constructor.name;
|
|
96
|
+
throw new Error(`Cannot access '${String(prop)}' on ${name}: a future component is ` +
|
|
97
|
+
`not usable until it is attached. Call attach(scope) first, or pass ` +
|
|
98
|
+
`it to a Project which attaches it for you.`);
|
|
99
|
+
}
|
|
100
|
+
// bind functions to the *real* target so that, once invoked, all internal
|
|
101
|
+
// `this` access happens on the bare object with no proxy involvement.
|
|
102
|
+
const value = Reflect.get(t, prop, t);
|
|
103
|
+
if (typeof value === "function") {
|
|
104
|
+
let bound = boundCache.get(prop);
|
|
105
|
+
if (!bound) {
|
|
106
|
+
bound = value.bind(t);
|
|
107
|
+
boundCache.set(prop, bound);
|
|
108
|
+
}
|
|
109
|
+
return bound;
|
|
110
|
+
}
|
|
111
|
+
return value;
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
return new Proxy(target, handler);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* A {@link Component} that is created *detached* from any project and attached
|
|
118
|
+
* to one later via {@link FutureComponent.attach}.
|
|
119
|
+
*
|
|
120
|
+
* Like a regular component, but constructed without a project. It improves on a
|
|
121
|
+
* naive deferred component in three ways:
|
|
122
|
+
*
|
|
123
|
+
* - Use-before-attach is an error, not a silent footgun. The constructor hands
|
|
124
|
+
* the caller a guard proxy; touching `project`, `node`, `synthesize()` or any
|
|
125
|
+
* subclass feature before `attach()` throws.
|
|
126
|
+
* - No global shadow-tree leak. Each instance gets its own throwaway shadow
|
|
127
|
+
* root, so detached components never share an id counter and the root becomes
|
|
128
|
+
* garbage once the component is reparented on attach.
|
|
129
|
+
* - `attach()` returns the unwrapped component, so callers can opt out of the
|
|
130
|
+
* proxy entirely.
|
|
131
|
+
*
|
|
132
|
+
* The constructor takes no arguments (`super()`). A subclass that needs options
|
|
133
|
+
* captures them itself, reading the local parameter inside its constructor - NOT
|
|
134
|
+
* `this.options`, which the guard blocks until attach.
|
|
135
|
+
*
|
|
136
|
+
* ```ts
|
|
137
|
+
* class Worker extends FutureComponent {
|
|
138
|
+
* private readonly options: WorkerOptions;
|
|
139
|
+
* constructor(options: WorkerOptions = {}) {
|
|
140
|
+
* super();
|
|
141
|
+
* this.options = options; // set: allowed
|
|
142
|
+
* }
|
|
143
|
+
* protected init() {
|
|
144
|
+
* // this.project is available here
|
|
145
|
+
* }
|
|
146
|
+
* }
|
|
147
|
+
*
|
|
148
|
+
* const w = new Worker({ retries: 3 });
|
|
149
|
+
* // w.project; // throws: not attached yet
|
|
150
|
+
* const real = w.attach(project); // reparents, runs init(), returns the bare instance
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
class FutureComponent extends Component {
|
|
154
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FutureComponent", version: "0.101.4" };
|
|
155
|
+
newTargetName;
|
|
156
|
+
attachedState = false;
|
|
157
|
+
constructor() {
|
|
158
|
+
// Each future component gets its OWN shadow root. Unlike a single global
|
|
159
|
+
// shadow tree, detached components never collide on an id counter, and the
|
|
160
|
+
// root is collected once we reparent on attach().
|
|
161
|
+
const shadow = new constructs_1.RootConstruct();
|
|
162
|
+
(0, constructs_2.tagAsProject)(shadow);
|
|
163
|
+
super(shadow);
|
|
164
|
+
this.newTargetName = new.target.name;
|
|
165
|
+
// Hand the caller a guarded proxy. `this` here is still the bare object;
|
|
166
|
+
// returning it makes the proxy the instance seen by `new`. Because the base
|
|
167
|
+
// constructor returns an object, subclass constructors transparently adopt
|
|
168
|
+
// the proxy as their `this` too.
|
|
169
|
+
return guardDetached(this);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Whether `attach()` has been called. A convenience for tests/introspection;
|
|
173
|
+
* prefer `tryAttach()` over reading this and branching.
|
|
174
|
+
*/
|
|
175
|
+
get attached() {
|
|
176
|
+
return this.attachedState;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Project-dependent setup. Runs once, from `attach()`, when `this.project` is
|
|
180
|
+
* finally available.
|
|
181
|
+
*/
|
|
182
|
+
init() { }
|
|
183
|
+
/**
|
|
184
|
+
* Attach the component to a scope. Only now does it become usable.
|
|
185
|
+
*
|
|
186
|
+
* Returns the real, unwrapped component (not the proxy). A component may be
|
|
187
|
+
* attached exactly once; attaching an already-attached component throws (copy
|
|
188
|
+
* it first to attach a variant elsewhere). Use `tryAttach()` if you don't care
|
|
189
|
+
* whether it has already been attached.
|
|
190
|
+
*/
|
|
191
|
+
attach(scope, id) {
|
|
192
|
+
if (this.attachedState) {
|
|
193
|
+
throw new Error(`${this.newTargetName} is already attached to '${this.project.node.path}'. ` +
|
|
194
|
+
`Use \`tryAttach\` or \`copy\` it to attach a variant.`);
|
|
195
|
+
}
|
|
196
|
+
// constructs has no public reparent, so build a fresh node on the real
|
|
197
|
+
// scope. The per-instance shadow root and its original node become an
|
|
198
|
+
// unreachable island and are collected.
|
|
199
|
+
this.node = new constructs_1.Node(this, scope, id ?? componentId(scope));
|
|
200
|
+
// The component already carries the component tag (set by the base
|
|
201
|
+
// constructor, which is idempotent against the same object); re-add the
|
|
202
|
+
// metadata to the new node and resolve the real project.
|
|
203
|
+
this.node.addMetadata("type", "component");
|
|
204
|
+
this.node.addMetadata("construct", this.newTargetName);
|
|
205
|
+
this.project = (0, constructs_2.findClosestProject)(scope, this.newTargetName);
|
|
206
|
+
this.attachedState = true;
|
|
207
|
+
// Flip the guard into transparent pass-through for any proxy handles the
|
|
208
|
+
// caller still holds. Symbol key, so the guard can always read it.
|
|
209
|
+
this[FUTURE_ATTACHED] = true;
|
|
210
|
+
// project is now available, run project-dependent setup
|
|
211
|
+
this.init();
|
|
212
|
+
// hand back the bare object so the caller can drop the proxy entirely
|
|
213
|
+
return this;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Attach the component if it isn't already, without caring *where*.
|
|
217
|
+
*
|
|
218
|
+
* Unlike `attach()`, never throws on an already-attached component: if attached
|
|
219
|
+
* anywhere at all, the existing instance is returned and `scope` is ignored.
|
|
220
|
+
* Use `attach()` when attaching to a specific scope is part of your contract
|
|
221
|
+
* and a pre-existing attachment elsewhere would be a bug.
|
|
222
|
+
*/
|
|
223
|
+
tryAttach(scope, id) {
|
|
224
|
+
return this.attachedState ? this : this.attach(scope, id);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
exports.FutureComponent = FutureComponent;
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMkNBQTREO0FBRTVELGtEQUsyQjtBQUUzQixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztBQUNsRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN4QyxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLE9BQU8sU0FBUyxNQUFNLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsc0JBQVM7O0lBQ3RDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFNO1FBQzlCLE9BQU8sSUFBQSx3QkFBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFZSxPQUFPLENBQVU7SUFFakMsWUFBWSxLQUFpQixFQUFFLEVBQVc7UUFDeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUEsMkJBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFBLCtC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RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFWixzRUFBc0U7UUFDdEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFNBQVMsQ0FBQyxLQUFpQixFQUFFLEVBQVc7UUFDN0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7O0FBM0ZILDBDQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIE5vZGUsIFJvb3RDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuaW1wb3J0IHtcbiAgaXNDb21wb25lbnQsXG4gIGZpbmRDbG9zZXN0UHJvamVjdCxcbiAgdGFnQXNDb21wb25lbnQsXG4gIHRhZ0FzUHJvamVjdCxcbn0gZnJvbSBcIi4vdXRpbC9jb25zdHJ1Y3RzXCI7XG5cbmNvbnN0IGF1dG9JZHMgPSBuZXcgV2Vha01hcDxJQ29uc3RydWN0LCBudW1iZXI+KCk7XG5jb25zdCBjb21wb25lbnRJZCA9IChzY29wZTogSUNvbnN0cnVjdCkgPT4ge1xuICBjb25zdCBuZXh0SWQgPSAoYXV0b0lkcy5nZXQoc2NvcGUpID8/IDApICsgMTtcbiAgYXV0b0lkcy5zZXQoc2NvcGUsIG5leHRJZCk7XG4gIHJldHVybiBgQXV0b0lkJHtuZXh0SWR9YDtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHByb2plY3QgY29tcG9uZW50LlxuICogQHBhcmFtIHByb2plY3RcbiAqIEBwYXJhbSBpZCBVbmlxdWUgaWQgb2YgdGhlIGNvbXBvbmVudC4gSWYgbm90IHByb3ZpZGVkLCBhbiB1bnN0YWJsZSBBdXRvSWQgaXMgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRlc3Qgd2hldGhlciB0aGUgZ2l2ZW4gY29uc3RydWN0IGlzIGEgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NvbXBvbmVudCh4OiBhbnkpOiB4IGlzIENvbXBvbmVudCB7XG4gICAgcmV0dXJuIGlzQ29tcG9uZW50KHgpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IFByb2plY3Q7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IElDb25zdHJ1Y3QsIGlkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkIHx8IGAke25ldy50YXJnZXQubmFtZX0jJHtjb21wb25lbnRJZChzY29wZSl9YCk7XG4gICAgdGFnQXNDb21wb25lbnQodGhpcyk7XG4gICAgdGhpcy5ub2RlLmFkZE1ldGFkYXRhKFwidHlwZVwiLCBcImNvbXBvbmVudFwiKTtcbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJjb25zdHJ1Y3RcIiwgbmV3LnRhcmdldC5uYW1lKTtcblxuICAgIHRoaXMucHJvamVjdCA9IGZpbmRDbG9zZXN0UHJvamVjdChzY29wZSwgbmV3LnRhcmdldC5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIHN5bnRoZXNpcy5cbiAgICovXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge31cblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgZmlsZXMgdG8gdGhlIHByb2plY3Qgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyBzeW50aGVzaXplKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIHN5bnRoZXNpcy4gT3JkZXIgaXMgKm5vdCogZ3VhcmFudGVlZC5cbiAgICovXG4gIHB1YmxpYyBwb3N0U3ludGhlc2l6ZSgpIHt9XG59XG5cbi8qKlxuICogSW50ZXJuYWwgZmxhZyBrZXkgcmVhZCBieSB0aGUgZGV0YWNoZWQtZ3VhcmQgcHJveHkuIEEgc3ltYm9sIHNvIGl0IG5ldmVyXG4gKiBjb2xsaWRlcyB3aXRoIGEgcmVhbCAoc3RyaW5nLWtleWVkKSBtZW1iZXIgYW5kIGlzIGFsd2F5cyByZWFkYWJsZSB0aHJvdWdoIHRoZVxuICogZ3VhcmQgKHN5bWJvbCBhY2Nlc3MgaXMgbmV2ZXIgYmxvY2tlZCkuXG4gKi9cbmNvbnN0IEZVVFVSRV9BVFRBQ0hFRCA9IFN5bWJvbC5mb3IoXCJwcm9qZW4uZnV0dXJlLmF0dGFjaGVkXCIpO1xuXG4vKipcbiAqIFRoZSBtZW1iZXJzIGEgZGV0YWNoZWQgZnV0dXJlIGNvbXBvbmVudCBpcyBhbGxvd2VkIHRvIGV4cG9zZS4gUmVhZGluZyBhbnl0aGluZ1xuICogZWxzZSBiZWZvcmUgYXR0YWNoIHRocm93cy4gKGBjb3B5YCBpcyB0aGUgY29weWFibGUgY2FwYWJpbGl0eSBtZXRob2QgYVxuICogY29weWFibGUgc3ViY2xhc3MgYWRkcywgcGVyIHRoZSBgcmVjcmVhdGUoKWAgY29udmVudGlvbi4pXG4gKi9cbmNvbnN0IERFVEFDSEVEX0FMTE9XTElTVCA9IG5ldyBTZXQ8UHJvcGVydHlLZXk+KFtcbiAgXCJhdHRhY2hcIixcbiAgXCJ0cnlBdHRhY2hcIixcbiAgXCJhdHRhY2hlZFwiLFxuICBcImNvcHlcIixcbiAgXCJjb25zdHJ1Y3RvclwiLFxuICBcInRvU3RyaW5nXCIsXG5dKTtcblxuLyoqXG4gKiBXcmFwIGEgZnJlc2hseSBjb25zdHJ1Y3RlZCB7QGxpbmsgRnV0dXJlQ29tcG9uZW50fSBpbiBhIGd1YXJkIHByb3h5LlxuICpcbiAqIFR3byBqb2JzOlxuICpcbiAqIDEuIEJsb2NrIHVzZSBiZWZvcmUgYXR0YWNoLiBXaGlsZSBkZXRhY2hlZCwgYW55IHByb3BlcnR5IHJlYWQgb3V0c2lkZVxuICogICAge0BsaW5rIERFVEFDSEVEX0FMTE9XTElTVH0gKGFuZCBvdXRzaWRlIHN5bWJvbCBrZXlzLCB3aGljaCBhbHdheXMgcGFzcyBzb1xuICogICAgYGluc3RhbmNlb2ZgLCBqc2lpIGFuZCBpbnNwZWN0aW9uIGtlZXAgd29ya2luZykgdGhyb3dzIGluc3RlYWQgb2Ygc2lsZW50bHlcbiAqICAgIHJldHVybmluZyBzaGFkb3ctdHJlZSBzdGF0ZS5cbiAqIDIuIFwiRHJvcFwiIGl0c2VsZiBvbiBhdHRhY2guIE9uY2UgYXR0YWNoZWQsIHRoZSBndWFyZCBpcyBhIHRyYW5zcGFyZW50XG4gKiAgICBwYXNzLXRocm91Z2g6IGEgc2luZ2xlIGJvb2xlYW4gY2hlY2ssIHRoZW4gYFJlZmxlY3RgLiBFdmVyeSBtZXRob2QgaXRcbiAqICAgIHJldHVybnMgaXMgYm91bmQgdG8gdGhlICpyZWFsKiB0YXJnZXQsIHNvIHRoZSBtb21lbnQgeW91IGNhbGwgb25lIG1ldGhvZFxuICogICAgdGhlIHdvcmsgY29udGludWVzIG9uIHRoZSBiYXJlIG9iamVjdCB3aXRoIG5vIGZ1cnRoZXIgcHJveHkgdHJhcHMuXG4gKlxuICogT25seSBgZ2V0YCBpcyBndWFyZGVkLiBgc2V0YCBpcyBpbnRlbnRpb25hbGx5IGxlZnQgb3BlbiBzbyBhIHN1YmNsYXNzXG4gKiBjb25zdHJ1Y3RvciBjYW4gYXNzaWduIGl0cyBvd24gZmllbGRzIChlLmcuIGB0aGlzLm9wdGlvbnMgPSBvcHRpb25zYCkuXG4gKi9cbmZ1bmN0aW9uIGd1YXJkRGV0YWNoZWQ8VCBleHRlbmRzIG9iamVjdD4odGFyZ2V0OiBUKTogVCB7XG4gIGNvbnN0IGJvdW5kQ2FjaGUgPSBuZXcgTWFwPFByb3BlcnR5S2V5LCAoLi4uYXJnczogYW55W10pID0+IGFueT4oKTtcbiAgY29uc3QgaGFuZGxlcjogUHJveHlIYW5kbGVyPFQ+ID0ge1xuICAgIGdldCh0LCBwcm9wKSB7XG4gICAgICAvLyBuZXZlciBwcmVzZW50IGFzIGEgdGhlbmFibGUsIG9yIGBhd2FpdCBmdXR1cmVDb21wb25lbnRgIHdvdWxkIGhhbmcvdGhyb3dcbiAgICAgIGlmIChwcm9wID09PSBcInRoZW5cIikge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhdHRhY2hlZCA9ICh0IGFzIGFueSlbRlVUVVJFX0FUVEFDSEVEXSA9PT0gdHJ1ZTtcbiAgICAgIGNvbnN0IGFsbG93ZWQgPVxuICAgICAgICBhdHRhY2hlZCB8fCB0eXBlb2YgcHJvcCAhPT0gXCJzdHJpbmdcIiB8fCBERVRBQ0hFRF9BTExPV0xJU1QuaGFzKHByb3ApO1xuXG4gICAgICBpZiAoIWFsbG93ZWQpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9ICh0IGFzIGFueSkubmV3VGFyZ2V0TmFtZSA/PyB0LmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2Fubm90IGFjY2VzcyAnJHtTdHJpbmcocHJvcCl9JyBvbiAke25hbWV9OiBhIGZ1dHVyZSBjb21wb25lbnQgaXMgYCArXG4gICAgICAgICAgICBgbm90IHVzYWJsZSB1bnRpbCBpdCBpcyBhdHRhY2hlZC4gQ2FsbCBhdHRhY2goc2NvcGUpIGZpcnN0LCBvciBwYXNzIGAgK1xuICAgICAgICAgICAgYGl0IHRvIGEgUHJvamVjdCB3aGljaCBhdHRhY2hlcyBpdCBmb3IgeW91LmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIGJpbmQgZnVuY3Rpb25zIHRvIHRoZSAqcmVhbCogdGFyZ2V0IHNvIHRoYXQsIG9uY2UgaW52b2tlZCwgYWxsIGludGVybmFsXG4gICAgICAvLyBgdGhpc2AgYWNjZXNzIGhhcHBlbnMgb24gdGhlIGJhcmUgb2JqZWN0IHdpdGggbm8gcHJveHkgaW52b2x2ZW1lbnQuXG4gICAgICBjb25zdCB2YWx1ZSA9IFJlZmxlY3QuZ2V0KHQsIHByb3AsIHQpO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGxldCBib3VuZCA9IGJvdW5kQ2FjaGUuZ2V0KHByb3ApO1xuICAgICAgICBpZiAoIWJvdW5kKSB7XG4gICAgICAgICAgYm91bmQgPSAodmFsdWUgYXMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpLmJpbmQodCk7XG4gICAgICAgICAgYm91bmRDYWNoZS5zZXQocHJvcCwgYm91bmQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib3VuZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7XG59XG5cbi8qKlxuICogTWFrZSBhIHNwZWNpZmljIHByb3BlcnR5IHdyaXRhYmxlIGFnYWluLlxuICovXG50eXBlIFdyaXRlYWJsZVByb3A8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gT21pdDxULCBLPiAmIHtcbiAgLXJlYWRvbmx5IFtQIGluIEtdOiBUW1BdO1xufTtcblxuLyoqXG4gKiBBIHtAbGluayBDb21wb25lbnR9IHRoYXQgaXMgY3JlYXRlZCAqZGV0YWNoZWQqIGZyb20gYW55IHByb2plY3QgYW5kIGF0dGFjaGVkXG4gKiB0byBvbmUgbGF0ZXIgdmlhIHtAbGluayBGdXR1cmVDb21wb25lbnQuYXR0YWNofS5cbiAqXG4gKiBMaWtlIGEgcmVndWxhciBjb21wb25lbnQsIGJ1dCBjb25zdHJ1Y3RlZCB3aXRob3V0IGEgcHJvamVjdC4gSXQgaW1wcm92ZXMgb24gYVxuICogbmFpdmUgZGVmZXJyZWQgY29tcG9uZW50IGluIHRocmVlIHdheXM6XG4gKlxuICogLSBVc2UtYmVmb3JlLWF0dGFjaCBpcyBhbiBlcnJvciwgbm90IGEgc2lsZW50IGZvb3RndW4uIFRoZSBjb25zdHJ1Y3RvciBoYW5kc1xuICogICB0aGUgY2FsbGVyIGEgZ3VhcmQgcHJveHk7IHRvdWNoaW5nIGBwcm9qZWN0YCwgYG5vZGVgLCBgc3ludGhlc2l6ZSgpYCBvciBhbnlcbiAqICAgc3ViY2xhc3MgZmVhdHVyZSBiZWZvcmUgYGF0dGFjaCgpYCB0aHJvd3MuXG4gKiAtIE5vIGdsb2JhbCBzaGFkb3ctdHJlZSBsZWFrLiBFYWNoIGluc3RhbmNlIGdldHMgaXRzIG93biB0aHJvd2F3YXkgc2hhZG93XG4gKiAgIHJvb3QsIHNvIGRldGFjaGVkIGNvbXBvbmVudHMgbmV2ZXIgc2hhcmUgYW4gaWQgY291bnRlciBhbmQgdGhlIHJvb3QgYmVjb21lc1xuICogICBnYXJiYWdlIG9uY2UgdGhlIGNvbXBvbmVudCBpcyByZXBhcmVudGVkIG9uIGF0dGFjaC5cbiAqIC0gYGF0dGFjaCgpYCByZXR1cm5zIHRoZSB1bndyYXBwZWQgY29tcG9uZW50LCBzbyBjYWxsZXJzIGNhbiBvcHQgb3V0IG9mIHRoZVxuICogICBwcm94eSBlbnRpcmVseS5cbiAqXG4gKiBUaGUgY29uc3RydWN0b3IgdGFrZXMgbm8gYXJndW1lbnRzIChgc3VwZXIoKWApLiBBIHN1YmNsYXNzIHRoYXQgbmVlZHMgb3B0aW9uc1xuICogY2FwdHVyZXMgdGhlbSBpdHNlbGYsIHJlYWRpbmcgdGhlIGxvY2FsIHBhcmFtZXRlciBpbnNpZGUgaXRzIGNvbnN0cnVjdG9yIC0gTk9UXG4gKiBgdGhpcy5vcHRpb25zYCwgd2hpY2ggdGhlIGd1YXJkIGJsb2NrcyB1bnRpbCBhdHRhY2guXG4gKlxuICogYGBgdHNcbiAqIGNsYXNzIFdvcmtlciBleHRlbmRzIEZ1dHVyZUNvbXBvbmVudCB7XG4gKiAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogV29ya2VyT3B0aW9ucztcbiAqICAgY29uc3RydWN0b3Iob3B0aW9uczogV29ya2VyT3B0aW9ucyA9IHt9KSB7XG4gKiAgICAgc3VwZXIoKTtcbiAqICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOyAvLyBzZXQ6IGFsbG93ZWRcbiAqICAgfVxuICogICBwcm90ZWN0ZWQgaW5pdCgpIHtcbiAqICAgICAvLyB0aGlzLnByb2plY3QgaXMgYXZhaWxhYmxlIGhlcmVcbiAqICAgfVxuICogfVxuICpcbiAqIGNvbnN0IHcgPSBuZXcgV29ya2VyKHsgcmV0cmllczogMyB9KTtcbiAqIC8vIHcucHJvamVjdDsgICAgICAgICAgICAgICAgICAvLyB0aHJvd3M6IG5vdCBhdHRhY2hlZCB5ZXRcbiAqIGNvbnN0IHJlYWwgPSB3LmF0dGFjaChwcm9qZWN0KTsgLy8gcmVwYXJlbnRzLCBydW5zIGluaXQoKSwgcmV0dXJucyB0aGUgYmFyZSBpbnN0YW5jZVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGdXR1cmVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IG5ld1RhcmdldE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBhdHRhY2hlZFN0YXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gRWFjaCBmdXR1cmUgY29tcG9uZW50IGdldHMgaXRzIE9XTiBzaGFkb3cgcm9vdC4gVW5saWtlIGEgc2luZ2xlIGdsb2JhbFxuICAgIC8vIHNoYWRvdyB0cmVlLCBkZXRhY2hlZCBjb21wb25lbnRzIG5ldmVyIGNvbGxpZGUgb24gYW4gaWQgY291bnRlciwgYW5kIHRoZVxuICAgIC8vIHJvb3QgaXMgY29sbGVjdGVkIG9uY2Ugd2UgcmVwYXJlbnQgb24gYXR0YWNoKCkuXG4gICAgY29uc3Qgc2hhZG93ID0gbmV3IFJvb3RDb25zdHJ1Y3QoKTtcbiAgICB0YWdBc1Byb2plY3Qoc2hhZG93KTtcbiAgICBzdXBlcihzaGFkb3cpO1xuXG4gICAgdGhpcy5uZXdUYXJnZXROYW1lID0gbmV3LnRhcmdldC5uYW1lO1xuXG4gICAgLy8gSGFuZCB0aGUgY2FsbGVyIGEgZ3VhcmRlZCBwcm94eS4gYHRoaXNgIGhlcmUgaXMgc3RpbGwgdGhlIGJhcmUgb2JqZWN0O1xuICAgIC8vIHJldHVybmluZyBpdCBtYWtlcyB0aGUgcHJveHkgdGhlIGluc3RhbmNlIHNlZW4gYnkgYG5ld2AuIEJlY2F1c2UgdGhlIGJhc2VcbiAgICAvLyBjb25zdHJ1Y3RvciByZXR1cm5zIGFuIG9iamVjdCwgc3ViY2xhc3MgY29uc3RydWN0b3JzIHRyYW5zcGFyZW50bHkgYWRvcHRcbiAgICAvLyB0aGUgcHJveHkgYXMgdGhlaXIgYHRoaXNgIHRvby5cbiAgICByZXR1cm4gZ3VhcmREZXRhY2hlZCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGBhdHRhY2goKWAgaGFzIGJlZW4gY2FsbGVkLiBBIGNvbnZlbmllbmNlIGZvciB0ZXN0cy9pbnRyb3NwZWN0aW9uO1xuICAgKiBwcmVmZXIgYHRyeUF0dGFjaCgpYCBvdmVyIHJlYWRpbmcgdGhpcyBhbmQgYnJhbmNoaW5nLlxuICAgKi9cbiAgcHVibGljIGdldCBhdHRhY2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2hlZFN0YXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2plY3QtZGVwZW5kZW50IHNldHVwLiBSdW5zIG9uY2UsIGZyb20gYGF0dGFjaCgpYCwgd2hlbiBgdGhpcy5wcm9qZWN0YCBpc1xuICAgKiBmaW5hbGx5IGF2YWlsYWJsZS5cbiAgICovXG4gIHByb3RlY3RlZCBpbml0KCk6IHZvaWQge31cblxuICAvKipcbiAgICogQXR0YWNoIHRoZSBjb21wb25lbnQgdG8gYSBzY29wZS4gT25seSBub3cgZG9lcyBpdCBiZWNvbWUgdXNhYmxlLlxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSByZWFsLCB1bndyYXBwZWQgY29tcG9uZW50IChub3QgdGhlIHByb3h5KS4gQSBjb21wb25lbnQgbWF5IGJlXG4gICAqIGF0dGFjaGVkIGV4YWN0bHkgb25jZTsgYXR0YWNoaW5nIGFuIGFscmVhZHktYXR0YWNoZWQgY29tcG9uZW50IHRocm93cyAoY29weVxuICAgKiBpdCBmaXJzdCB0byBhdHRhY2ggYSB2YXJpYW50IGVsc2V3aGVyZSkuIFVzZSBgdHJ5QXR0YWNoKClgIGlmIHlvdSBkb24ndCBjYXJlXG4gICAqIHdoZXRoZXIgaXQgaGFzIGFscmVhZHkgYmVlbiBhdHRhY2hlZC5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2goc2NvcGU6IElDb25zdHJ1Y3QsIGlkPzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuYXR0YWNoZWRTdGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHt0aGlzLm5ld1RhcmdldE5hbWV9IGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gJyR7dGhpcy5wcm9qZWN0Lm5vZGUucGF0aH0nLiBgICtcbiAgICAgICAgICBgVXNlIFxcYHRyeUF0dGFjaFxcYCBvciBcXGBjb3B5XFxgIGl0IHRvIGF0dGFjaCBhIHZhcmlhbnQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIGNvbnN0cnVjdHMgaGFzIG5vIHB1YmxpYyByZXBhcmVudCwgc28gYnVpbGQgYSBmcmVzaCBub2RlIG9uIHRoZSByZWFsXG4gICAgLy8gc2NvcGUuIFRoZSBwZXItaW5zdGFuY2Ugc2hhZG93IHJvb3QgYW5kIGl0cyBvcmlnaW5hbCBub2RlIGJlY29tZSBhblxuICAgIC8vIHVucmVhY2hhYmxlIGlzbGFuZCBhbmQgYXJlIGNvbGxlY3RlZC5cbiAgICAodGhpcyBhcyBXcml0ZWFibGVQcm9wPHRoaXMsIFwibm9kZVwiPikubm9kZSA9IG5ldyBOb2RlKFxuICAgICAgdGhpcyxcbiAgICAgIHNjb3BlLFxuICAgICAgaWQgPz8gY29tcG9uZW50SWQoc2NvcGUpLFxuICAgICk7XG5cbiAgICAvLyBUaGUgY29tcG9uZW50IGFscmVhZHkgY2FycmllcyB0aGUgY29tcG9uZW50IHRhZyAoc2V0IGJ5IHRoZSBiYXNlXG4gICAgLy8gY29uc3RydWN0b3IsIHdoaWNoIGlzIGlkZW1wb3RlbnQgYWdhaW5zdCB0aGUgc2FtZSBvYmplY3QpOyByZS1hZGQgdGhlXG4gICAgLy8gbWV0YWRhdGEgdG8gdGhlIG5ldyBub2RlIGFuZCByZXNvbHZlIHRoZSByZWFsIHByb2plY3QuXG4gICAgdGhpcy5ub2RlLmFkZE1ldGFkYXRhKFwidHlwZVwiLCBcImNvbXBvbmVudFwiKTtcbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJjb25zdHJ1Y3RcIiwgdGhpcy5uZXdUYXJnZXROYW1lKTtcbiAgICAodGhpcyBhcyBXcml0ZWFibGVQcm9wPHRoaXMsIFwicHJvamVjdFwiPikucHJvamVjdCA9IGZpbmRDbG9zZXN0UHJvamVjdChcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5uZXdUYXJnZXROYW1lLFxuICAgICk7XG5cbiAgICB0aGlzLmF0dGFjaGVkU3RhdGUgPSB0cnVlO1xuICAgIC8vIEZsaXAgdGhlIGd1YXJkIGludG8gdHJhbnNwYXJlbnQgcGFzcy10aHJvdWdoIGZvciBhbnkgcHJveHkgaGFuZGxlcyB0aGVcbiAgICAvLyBjYWxsZXIgc3RpbGwgaG9sZHMuIFN5bWJvbCBrZXksIHNvIHRoZSBndWFyZCBjYW4gYWx3YXlzIHJlYWQgaXQuXG4gICAgKHRoaXMgYXMgYW55KVtGVVRVUkVfQVRUQUNIRURdID0gdHJ1ZTtcblxuICAgIC8vIHByb2plY3QgaXMgbm93IGF2YWlsYWJsZSwgcnVuIHByb2plY3QtZGVwZW5kZW50IHNldHVwXG4gICAgdGhpcy5pbml0KCk7XG5cbiAgICAvLyBoYW5kIGJhY2sgdGhlIGJhcmUgb2JqZWN0IHNvIHRoZSBjYWxsZXIgY2FuIGRyb3AgdGhlIHByb3h5IGVudGlyZWx5XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIHRoZSBjb21wb25lbnQgaWYgaXQgaXNuJ3QgYWxyZWFkeSwgd2l0aG91dCBjYXJpbmcgKndoZXJlKi5cbiAgICpcbiAgICogVW5saWtlIGBhdHRhY2goKWAsIG5ldmVyIHRocm93cyBvbiBhbiBhbHJlYWR5LWF0dGFjaGVkIGNvbXBvbmVudDogaWYgYXR0YWNoZWRcbiAgICogYW55d2hlcmUgYXQgYWxsLCB0aGUgZXhpc3RpbmcgaW5zdGFuY2UgaXMgcmV0dXJuZWQgYW5kIGBzY29wZWAgaXMgaWdub3JlZC5cbiAgICogVXNlIGBhdHRhY2goKWAgd2hlbiBhdHRhY2hpbmcgdG8gYSBzcGVjaWZpYyBzY29wZSBpcyBwYXJ0IG9mIHlvdXIgY29udHJhY3RcbiAgICogYW5kIGEgcHJlLWV4aXN0aW5nIGF0dGFjaG1lbnQgZWxzZXdoZXJlIHdvdWxkIGJlIGEgYnVnLlxuICAgKi9cbiAgcHVibGljIHRyeUF0dGFjaChzY29wZTogSUNvbnN0cnVjdCwgaWQ/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2hlZFN0YXRlID8gdGhpcyA6IHRoaXMuYXR0YWNoKHNjb3BlLCBpZCk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/dependencies.js
CHANGED
|
@@ -51,7 +51,7 @@ const json_1 = require("./json");
|
|
|
51
51
|
* `nodeProject.addDeps()` or use the generic API of `project.deps`:
|
|
52
52
|
*/
|
|
53
53
|
class Dependencies extends component_1.Component {
|
|
54
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Dependencies", version: "0.101.
|
|
54
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Dependencies", version: "0.101.4" };
|
|
55
55
|
/**
|
|
56
56
|
* The project-relative path of the deps manifest file.
|
|
57
57
|
*/
|
package/lib/dev-env.js
CHANGED
|
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
* Options for specifying the Docker image of the container.
|
|
7
7
|
*/
|
|
8
8
|
class DevEnvironmentDockerImage {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DevEnvironmentDockerImage", version: "0.101.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DevEnvironmentDockerImage", version: "0.101.4" };
|
|
10
10
|
/**
|
|
11
11
|
* A publicly available Docker image.
|
|
12
12
|
* @example 'ubuntu:latest'
|
|
@@ -7,7 +7,7 @@ const docker_compose_1 = require("./docker-compose");
|
|
|
7
7
|
* A docker-compose service.
|
|
8
8
|
*/
|
|
9
9
|
class DockerComposeService {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerComposeService", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerComposeService", version: "0.101.4" };
|
|
11
11
|
/**
|
|
12
12
|
* Name of the service.
|
|
13
13
|
*/
|
|
@@ -11,7 +11,7 @@ const yaml_1 = require("../yaml");
|
|
|
11
11
|
* Create a docker-compose YAML file.
|
|
12
12
|
*/
|
|
13
13
|
class DockerCompose extends component_1.Component {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerCompose", version: "0.101.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerCompose", version: "0.101.4" };
|
|
15
15
|
/**
|
|
16
16
|
* Depends on a service name.
|
|
17
17
|
*/
|
package/lib/file.js
CHANGED
|
@@ -45,7 +45,7 @@ const util_1 = require("./util");
|
|
|
45
45
|
const constructs_1 = require("./util/constructs");
|
|
46
46
|
const diff_1 = require("./util/diff");
|
|
47
47
|
class FileBase extends component_1.Component {
|
|
48
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FileBase", version: "0.101.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FileBase", version: "0.101.4" };
|
|
49
49
|
/**
|
|
50
50
|
* The file path, relative to the project's outdir.
|
|
51
51
|
*/
|
package/lib/gitattributes.js
CHANGED
|
@@ -32,7 +32,7 @@ var EndOfLine;
|
|
|
32
32
|
* @see https://git-scm.com/docs/gitattributes
|
|
33
33
|
*/
|
|
34
34
|
class GitAttributesFile extends file_1.FileBase {
|
|
35
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.GitAttributesFile", version: "0.101.
|
|
35
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.GitAttributesFile", version: "0.101.4" };
|
|
36
36
|
attributes = new Map();
|
|
37
37
|
/**
|
|
38
38
|
* The default end of line character for text files.
|
|
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
* Manage the versions used for GitHub Actions used in steps
|
|
7
7
|
*/
|
|
8
8
|
class GitHubActionsProvider {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubActionsProvider", version: "0.101.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubActionsProvider", version: "0.101.4" };
|
|
10
10
|
actions = new Map();
|
|
11
11
|
/**
|
|
12
12
|
* Define an override for a given action.
|
|
@@ -9,7 +9,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
9
9
|
* Auto approve pull requests that meet a criteria
|
|
10
10
|
*/
|
|
11
11
|
class AutoApprove extends component_1.Component {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoApprove", version: "0.101.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoApprove", version: "0.101.4" };
|
|
13
13
|
label;
|
|
14
14
|
constructor(github, options = {}) {
|
|
15
15
|
super(github.project);
|
package/lib/github/auto-merge.js
CHANGED
|
@@ -19,7 +19,7 @@ const component_1 = require("../component");
|
|
|
19
19
|
* @see https://mergify.com/
|
|
20
20
|
*/
|
|
21
21
|
class AutoMerge extends component_1.Component {
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoMerge", version: "0.101.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoMerge", version: "0.101.4" };
|
|
23
23
|
lazyConditions = new Array();
|
|
24
24
|
constructor(github, options = {}) {
|
|
25
25
|
super(github.project);
|
package/lib/github/auto-queue.js
CHANGED
|
@@ -54,7 +54,7 @@ var MergeMethod;
|
|
|
54
54
|
* PRs will be merged once they pass required checks.
|
|
55
55
|
*/
|
|
56
56
|
class AutoQueue extends component_1.Component {
|
|
57
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoQueue", version: "0.101.
|
|
57
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoQueue", version: "0.101.4" };
|
|
58
58
|
constructor(scope, options = {}) {
|
|
59
59
|
super(scope);
|
|
60
60
|
const workflowEngine = github_1.GitHub.of(this.project);
|
package/lib/github/dependabot.js
CHANGED
|
@@ -166,7 +166,7 @@ var VersioningStrategy;
|
|
|
166
166
|
* on the lockfile itself will be proposed.
|
|
167
167
|
*/
|
|
168
168
|
class Dependabot extends component_1.Component {
|
|
169
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Dependabot", version: "0.101.
|
|
169
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Dependabot", version: "0.101.4" };
|
|
170
170
|
/**
|
|
171
171
|
* The raw dependabot configuration.
|
|
172
172
|
* @see https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
@@ -15,7 +15,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
15
15
|
* @see https://github.com/actions/dependency-review-action
|
|
16
16
|
*/
|
|
17
17
|
class DependencyReview extends component_1.Component {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.DependencyReview", version: "0.101.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.DependencyReview", version: "0.101.4" };
|
|
19
19
|
constructor(github, options = {}) {
|
|
20
20
|
super(github.project);
|
|
21
21
|
const commentSummary = options.commentSummaryInPr ?? "always";
|
|
@@ -41,7 +41,7 @@ const Case = __importStar(require("case"));
|
|
|
41
41
|
*/
|
|
42
42
|
class GithubCredentials {
|
|
43
43
|
options;
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubCredentials", version: "0.101.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubCredentials", version: "0.101.4" };
|
|
45
45
|
/**
|
|
46
46
|
* Provide API access through a GitHub personal access token.
|
|
47
47
|
*
|
|
@@ -21,7 +21,7 @@ const vscode_1 = require("../vscode");
|
|
|
21
21
|
* "engines" can be used to implement our CI/CD solutions.
|
|
22
22
|
*/
|
|
23
23
|
class GitHubProject extends project_1.Project {
|
|
24
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubProject", version: "0.101.
|
|
24
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubProject", version: "0.101.4" };
|
|
25
25
|
/**
|
|
26
26
|
* Access all github components.
|
|
27
27
|
*
|
package/lib/github/github.js
CHANGED
|
@@ -15,7 +15,7 @@ const workflow_steps_1 = require("./workflow-steps");
|
|
|
15
15
|
const workflows_1 = require("./workflows");
|
|
16
16
|
const component_1 = require("../component");
|
|
17
17
|
class GitHub extends component_1.Component {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHub", version: "0.101.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHub", version: "0.101.4" };
|
|
19
19
|
/**
|
|
20
20
|
* Returns the `GitHub` component of a project or `undefined` if the project
|
|
21
21
|
* does not have a GitHub component.
|
|
@@ -10,7 +10,7 @@ const github_1 = require("./github");
|
|
|
10
10
|
*/
|
|
11
11
|
class MergeQueue extends component_1.Component {
|
|
12
12
|
options;
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.MergeQueue", version: "0.101.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.MergeQueue", version: "0.101.4" };
|
|
14
14
|
constructor(scope, options = {}) {
|
|
15
15
|
super(scope);
|
|
16
16
|
this.options = options;
|
package/lib/github/mergify.js
CHANGED
|
@@ -6,7 +6,7 @@ const component_1 = require("../component");
|
|
|
6
6
|
const util_1 = require("../util");
|
|
7
7
|
const yaml_1 = require("../yaml");
|
|
8
8
|
class Mergify extends component_1.Component {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Mergify", version: "0.101.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Mergify", version: "0.101.4" };
|
|
10
10
|
rules = new Array();
|
|
11
11
|
queues = new Array();
|
|
12
12
|
// The actual YAML file will only be created if at least 1 rule is added.
|
|
@@ -7,7 +7,7 @@ const textfile_1 = require("../textfile");
|
|
|
7
7
|
* Template for GitHub pull requests.
|
|
8
8
|
*/
|
|
9
9
|
class PullRequestTemplate extends textfile_1.TextFile {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestTemplate", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestTemplate", version: "0.101.4" };
|
|
11
11
|
/**
|
|
12
12
|
* Returns the `PullRequestTemplate` instance associated with a project or `undefined` if
|
|
13
13
|
* there is no PullRequestTemplate.
|
|
@@ -9,7 +9,7 @@ const component_1 = require("../component");
|
|
|
9
9
|
const json_1 = require("../json");
|
|
10
10
|
const release_1 = require("../release");
|
|
11
11
|
class PullRequestBackport extends component_1.Component {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestBackport", version: "0.101.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestBackport", version: "0.101.4" };
|
|
13
13
|
file;
|
|
14
14
|
workflow;
|
|
15
15
|
constructor(scope, options = {}) {
|
|
@@ -13,7 +13,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
13
13
|
class PullRequestLint extends component_1.Component {
|
|
14
14
|
github;
|
|
15
15
|
options;
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestLint", version: "0.101.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestLint", version: "0.101.4" };
|
|
17
17
|
constructor(github, options = {}) {
|
|
18
18
|
super(github.project);
|
|
19
19
|
this.github = github;
|
package/lib/github/stale.js
CHANGED
|
@@ -18,7 +18,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
18
18
|
* @see https://github.com/actions/stale
|
|
19
19
|
*/
|
|
20
20
|
class Stale extends component_1.Component {
|
|
21
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Stale", version: "0.101.
|
|
21
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Stale", version: "0.101.4" };
|
|
22
22
|
constructor(github, options = {}) {
|
|
23
23
|
super(github.project);
|
|
24
24
|
const stale = github.addWorkflow("stale");
|
|
@@ -13,7 +13,7 @@ const util_1 = require("./private/util");
|
|
|
13
13
|
* @implements {Job}
|
|
14
14
|
*/
|
|
15
15
|
class TaskWorkflowJob extends component_1.Component {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.TaskWorkflowJob", version: "0.101.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.TaskWorkflowJob", version: "0.101.4" };
|
|
17
17
|
runsOn;
|
|
18
18
|
runsOnGroup;
|
|
19
19
|
steps;
|
|
@@ -9,7 +9,7 @@ const DEFAULT_JOB_ID = "build";
|
|
|
9
9
|
* A GitHub workflow for common build tasks within a project.
|
|
10
10
|
*/
|
|
11
11
|
class TaskWorkflow extends workflows_1.GithubWorkflow {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.TaskWorkflow", version: "0.101.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.TaskWorkflow", version: "0.101.4" };
|
|
13
13
|
jobId;
|
|
14
14
|
artifactsDirectory;
|
|
15
15
|
constructor(github, options) {
|
|
@@ -15,7 +15,7 @@ const RUNNER_TEMP = "${{ runner.temp }}";
|
|
|
15
15
|
* A set of utility functions for creating GitHub actions in workflows.
|
|
16
16
|
*/
|
|
17
17
|
class WorkflowActions {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowActions", version: "0.101.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowActions", version: "0.101.4" };
|
|
19
19
|
/**
|
|
20
20
|
* Creates a .patch file from the current git diff and uploads it as an
|
|
21
21
|
* artifact. Use `checkoutWithPatch` to download and apply in another job.
|
|
@@ -10,7 +10,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
10
10
|
* A set of utility functions for creating jobs in GitHub Workflows.
|
|
11
11
|
*/
|
|
12
12
|
class WorkflowJobs {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowJobs", version: "0.101.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowJobs", version: "0.101.4" };
|
|
14
14
|
/**
|
|
15
15
|
* Creates a pull request with the changes of a patch file.
|
|
16
16
|
*
|
|
@@ -25,7 +25,7 @@ var CheckoutSubmodules;
|
|
|
25
25
|
* A collection of very commonly used, individual, GitHub Workflow Job steps.
|
|
26
26
|
*/
|
|
27
27
|
class WorkflowSteps {
|
|
28
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowSteps", version: "0.101.
|
|
28
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowSteps", version: "0.101.4" };
|
|
29
29
|
/**
|
|
30
30
|
* Checks out a repository.
|
|
31
31
|
*
|
package/lib/github/workflows.js
CHANGED
|
@@ -16,7 +16,7 @@ const yaml_1 = require("../yaml");
|
|
|
16
16
|
* @see https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
|
17
17
|
*/
|
|
18
18
|
class GithubWorkflow extends component_1.Component {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubWorkflow", version: "0.101.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubWorkflow", version: "0.101.4" };
|
|
20
20
|
/**
|
|
21
21
|
* The name of the workflow. GitHub displays the names of your workflows under your repository's
|
|
22
22
|
* "Actions" tab.
|
|
@@ -45,7 +45,7 @@ const yaml_1 = require("../yaml");
|
|
|
45
45
|
* @see https://docs.gitlab.com/ee/ci/yaml/
|
|
46
46
|
*/
|
|
47
47
|
class CiConfiguration extends component_1.Component {
|
|
48
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.CiConfiguration", version: "0.101.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.CiConfiguration", version: "0.101.4" };
|
|
49
49
|
/**
|
|
50
50
|
* The name of the configuration.
|
|
51
51
|
*/
|
|
@@ -8,7 +8,7 @@ const nested_configuration_1 = require("./nested-configuration");
|
|
|
8
8
|
* A GitLab CI for the main `.gitlab-ci.yml` file.
|
|
9
9
|
*/
|
|
10
10
|
class GitlabConfiguration extends configuration_1.CiConfiguration {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.GitlabConfiguration", version: "0.101.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.GitlabConfiguration", version: "0.101.4" };
|
|
12
12
|
nestedTemplates = {};
|
|
13
13
|
constructor(project, options) {
|
|
14
14
|
super(project, "gitlab-ci", options);
|
|
@@ -7,7 +7,7 @@ const configuration_1 = require("./configuration");
|
|
|
7
7
|
* A GitLab CI for templates that are created and included in the `.gitlab-ci.yml` file.
|
|
8
8
|
*/
|
|
9
9
|
class NestedConfiguration extends configuration_1.CiConfiguration {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.NestedConfiguration", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.NestedConfiguration", version: "0.101.4" };
|
|
11
11
|
parent;
|
|
12
12
|
constructor(project, parent, name, options) {
|
|
13
13
|
super(project, name, options);
|
package/lib/gitpod.js
CHANGED
|
@@ -106,7 +106,7 @@ var GitpodPortVisibility;
|
|
|
106
106
|
* The Gitpod component which emits .gitpod.yml
|
|
107
107
|
*/
|
|
108
108
|
class Gitpod extends component_1.Component {
|
|
109
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Gitpod", version: "0.101.
|
|
109
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Gitpod", version: "0.101.4" };
|
|
110
110
|
dockerImage;
|
|
111
111
|
prebuilds;
|
|
112
112
|
tasks = new Array();
|
package/lib/ignore-file.js
CHANGED
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const file_1 = require("./file");
|
|
6
6
|
const util_1 = require("./util");
|
|
7
7
|
class IgnoreFile extends file_1.FileBase {
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.IgnoreFile", version: "0.101.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.IgnoreFile", version: "0.101.4" };
|
|
9
9
|
_patterns;
|
|
10
10
|
filterCommentLines;
|
|
11
11
|
filterEmptyLines;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -90,4 +90,4 @@ exports.cdk8s = __importStar(require("./cdk8s"));
|
|
|
90
90
|
exports.cdktf = __importStar(require("./cdktf"));
|
|
91
91
|
exports.cdk = __importStar(require("./cdk"));
|
|
92
92
|
exports.build = __importStar(require("./build"));
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQWtDO0FBRWxDLDhDQUE0QjtBQUM1Qiw0Q0FBMEI7QUFDMUIsaURBQStCO0FBQy9CLG1EQUFpQztBQUNqQyx5Q0FBdUI7QUFDdkIsa0RBQWdDO0FBQ2hDLDJDQUF5QjtBQUN6QixtREFBaUM7QUFDakMsZ0RBQThCO0FBQzlCLHdDQUFzQjtBQUN0Qix5Q0FBdUI7QUFDdkIsK0NBQTZCO0FBQzdCLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsNkNBQTJCO0FBQzNCLGdEQUE4QjtBQUM5QixpREFBK0I7QUFDL0IsNENBQTBCO0FBQzFCLGtEQUFnQztBQUNoQyxpREFBK0I7QUFDL0IsNkNBQTJCO0FBQzNCLDZDQUEyQjtBQUMzQixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLGdEQUE4QjtBQUM5QixnREFBOEI7QUFFOUIsZ0RBQThCO0FBQzlCLHlDQUF1QjtBQUN2QiwwQ0FBd0I7QUFFeEIsK0NBQTZCO0FBQzdCLDRDQUEwQjtBQUMxQiw2Q0FBMkI7QUFDM0IseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQix5Q0FBdUI7QUFDdkIsNENBQTBCO0FBSzFCLG9CQUFvQjtBQUNwQiw2Q0FBNkI7QUFDN0IsbURBQW1DO0FBQ25DLG1EQUFtQztBQUNuQyx1REFBdUM7QUFDdkMsbURBQW1DO0FBQ25DLCtDQUErQjtBQUMvQixtREFBbUM7QUFDbkMsMkRBQTJDO0FBQzNDLDJEQUEyQztBQUMzQyxxREFBcUM7QUFDckMsbURBQW1DO0FBQ25DLGlEQUFpQztBQUNqQyxpREFBaUM7QUFDakMsNkNBQTZCO0FBQzdCLGlEQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2FpLWluc3RydWN0aW9uc1wiO1xuZXhwb3J0IHR5cGUgKiBmcm9tIFwiLi9jb21wYXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Rldi1lbnZcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlcGVuZGVuY2llc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZG9ja2VyLWNvbXBvc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dpdGF0dHJpYnV0ZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dpdHBvZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcnVubmVyLW9wdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lnbm9yZS1maWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbmlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pzb24tcGF0Y2hcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvZ2dlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGljZW5zZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWFrZWZpbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL29iamVjdC1maWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vcHRpb24taGludHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb2plY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb2plY3QtYnVpbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb2plY3QtdHJlZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvamVjdHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb2plbnJjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9qZW5yYy1qc29uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWFkbWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Jlbm92YXRlYm90XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zYW1wbGUtZmlsZVwiO1xuZXhwb3J0IHR5cGUgKiBmcm9tIFwiLi9zY3JpcHQtcnVubmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb3VyY2UtY29kZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFza1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFza3NcIjtcbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdGFzay1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFzay1zaGVsbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGVzdGluZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGV4dGZpbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RvbWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZlcnNpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3lhbWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3htbGZpbGVcIjtcblxuLy8gb25seSBleHBvcnQgc2VsZWN0ZWQgcHVibGljIHR5cGVzIGZyb20gaW52ZW50b3J5XG5leHBvcnQgdHlwZSB7IFByb2plY3RUeXBlLCBQcm9qZWN0T3B0aW9uIH0gZnJvbSBcIi4vaW52ZW50b3J5XCI7XG5cbi8vIGV4cG9ydCBzdWJtb2R1bGVzXG5leHBvcnQgKiBhcyB3ZWIgZnJvbSBcIi4vd2ViXCI7XG5leHBvcnQgKiBhcyBnaXRodWIgZnJvbSBcIi4vZ2l0aHViXCI7XG5leHBvcnQgKiBhcyBnaXRsYWIgZnJvbSBcIi4vZ2l0bGFiXCI7XG5leHBvcnQgKiBhcyBjaXJjbGVjaSBmcm9tIFwiLi9jaXJjbGVjaVwiO1xuZXhwb3J0ICogYXMgdnNjb2RlIGZyb20gXCIuL3ZzY29kZVwiO1xuZXhwb3J0ICogYXMgamF2YSBmcm9tIFwiLi9qYXZhXCI7XG5leHBvcnQgKiBhcyBweXRob24gZnJvbSBcIi4vcHl0aG9uXCI7XG5leHBvcnQgKiBhcyB0eXBlc2NyaXB0IGZyb20gXCIuL3R5cGVzY3JpcHRcIjtcbmV4cG9ydCAqIGFzIGphdmFzY3JpcHQgZnJvbSBcIi4vamF2YXNjcmlwdFwiO1xuZXhwb3J0ICogYXMgcmVsZWFzZSBmcm9tIFwiLi9yZWxlYXNlXCI7XG5leHBvcnQgKiBhcyBhd3NjZGsgZnJvbSBcIi4vYXdzY2RrXCI7XG5leHBvcnQgKiBhcyBjZGs4cyBmcm9tIFwiLi9jZGs4c1wiO1xuZXhwb3J0ICogYXMgY2RrdGYgZnJvbSBcIi4vY2RrdGZcIjtcbmV4cG9ydCAqIGFzIGNkayBmcm9tIFwiLi9jZGtcIjtcbmV4cG9ydCAqIGFzIGJ1aWxkIGZyb20gXCIuL2J1aWxkXCI7XG4iXX0=
|
package/lib/ini.js
CHANGED
|
@@ -41,7 +41,7 @@ const object_file_1 = require("./object-file");
|
|
|
41
41
|
* Represents an INI file.
|
|
42
42
|
*/
|
|
43
43
|
class IniFile extends object_file_1.ObjectFile {
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.IniFile", version: "0.101.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.IniFile", version: "0.101.4" };
|
|
45
45
|
constructor(project, filePath, options) {
|
|
46
46
|
super(project, filePath, options);
|
|
47
47
|
}
|
package/lib/java/java-project.js
CHANGED
|
@@ -16,7 +16,7 @@ const util_1 = require("../util");
|
|
|
16
16
|
* @pjid java
|
|
17
17
|
*/
|
|
18
18
|
class JavaProject extends github_1.GitHubProject {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.JavaProject", version: "0.101.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.JavaProject", version: "0.101.4" };
|
|
20
20
|
/**
|
|
21
21
|
* API for managing `pom.xml`.
|
|
22
22
|
*/
|