@nikovirtala/projen-constructs 0.3.79 → 0.3.80
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 +263 -130
- package/docs/api/classes/Bundler.html +33 -6
- package/docs/api/classes/Colima.html +4 -0
- package/docs/api/classes/LambdaFunctionCodeBundle.html +22 -2
- package/docs/api/classes/LambdaFunctionConstructGenerator.html +4 -0
- package/docs/api/classes/LocalStack.html +4 -0
- package/docs/api/functions/convertToPosixPath.html +2 -0
- package/docs/api/functions/renderBundleName.html +9 -1
- package/docs/api/interfaces/Bundle.html +12 -3
- package/docs/api/interfaces/BundlerOptions.html +40 -4
- package/docs/api/interfaces/BundlingOptions.html +139 -12
- package/docs/api/interfaces/LambdaFunctionCodeBundleOptions.html +53 -5
- package/docs/api/interfaces/LambdaFunctionCodeBundlerOptions.html +26 -3
- package/docs/api/interfaces/LambdaFunctionConstructGeneratorOptions.html +90 -8
- package/docs/api/interfaces/LocalStackOptions.html +46 -4
- package/lib/components/bundle-lambda-function-code.d.ts +243 -0
- package/lib/components/bundle-lambda-function-code.js +75 -5
- package/lib/components/colima.d.ts +5 -0
- package/lib/components/colima.js +7 -2
- package/lib/components/homebrew.js +1 -1
- package/lib/components/lambda-function-construct-generator.d.ts +54 -0
- package/lib/components/lambda-function-construct-generator.js +7 -2
- package/lib/components/localstack.d.ts +32 -0
- package/lib/components/localstack.js +14 -2
- package/lib/components/mise.js +1 -1
- package/lib/components/typedoc.js +1 -1
- package/lib/components/vitest.js +1 -1
- package/lib/project-generator.js +1 -1
- package/lib/projects/awscdk-construct-library.generated.js +1 -1
- package/lib/projects/awscdk-typescript-app.generated.js +1 -1
- package/lib/projects/jsii.generated.js +1 -1
- package/lib/projects/typescript.generated.js +1 -1
- package/package.json +1 -1
|
@@ -1,16 +1,70 @@
|
|
|
1
1
|
import type { BuildOptions } from "@mrgrain/cdk-esbuild";
|
|
2
2
|
import { Component } from "projen";
|
|
3
3
|
import type { NodeProject } from "projen/lib/javascript";
|
|
4
|
+
/**
|
|
5
|
+
* Options for the LambdaFunctionConstructGenerator
|
|
6
|
+
*/
|
|
4
7
|
export interface LambdaFunctionConstructGeneratorOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Source directory where Lambda Function handlers are located
|
|
10
|
+
*
|
|
11
|
+
* @default "src/handlers"
|
|
12
|
+
*/
|
|
5
13
|
readonly sourceDir?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Output directory where Lambda Function constructs will be generated
|
|
16
|
+
*
|
|
17
|
+
* @default "src/constructs/lambda"
|
|
18
|
+
*/
|
|
6
19
|
readonly outputDir?: string;
|
|
20
|
+
/**
|
|
21
|
+
* File pattern to identify Lambda Function handlers
|
|
22
|
+
*
|
|
23
|
+
* @default "*.lambda.ts"
|
|
24
|
+
*/
|
|
7
25
|
readonly filePattern?: string;
|
|
26
|
+
/**
|
|
27
|
+
* esbuild options to customize the bundling process
|
|
28
|
+
*
|
|
29
|
+
* @default {}
|
|
30
|
+
*/
|
|
8
31
|
readonly esbuildOptions?: BuildOptions;
|
|
32
|
+
/**
|
|
33
|
+
* Whether to automatically add the required dependencies
|
|
34
|
+
*
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
9
37
|
readonly addDependencies?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Import statement for the base construct
|
|
40
|
+
*
|
|
41
|
+
* @example "import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';"
|
|
42
|
+
*
|
|
43
|
+
* @default "import { aws_lambda } from 'aws-cdk-lib';"
|
|
44
|
+
*/
|
|
10
45
|
readonly baseConstructImport?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Name of the construct class to extend
|
|
48
|
+
*
|
|
49
|
+
* @example "NodejsFunction"
|
|
50
|
+
*
|
|
51
|
+
* @default "aws_lambda.Function"
|
|
52
|
+
*/
|
|
11
53
|
readonly baseConstructClass?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Package name to add as dependency for the base construct
|
|
56
|
+
*
|
|
57
|
+
* @example "aws-cdk-lib"
|
|
58
|
+
*
|
|
59
|
+
* @default "aws-cdk-lib"
|
|
60
|
+
*/
|
|
12
61
|
readonly baseConstructPackage?: string;
|
|
13
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* A projen component that generates AWS CDK Lambda Function constructs and bundles their code assets using esbuild.
|
|
65
|
+
*
|
|
66
|
+
* The bundling happens during projen execution, not during CDK synth, enabling a "build once, deploy many" pattern.
|
|
67
|
+
*/
|
|
14
68
|
export declare class LambdaFunctionConstructGenerator extends Component {
|
|
15
69
|
readonly sourceDir: string;
|
|
16
70
|
readonly outputDir: string;
|
|
@@ -38,8 +38,13 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
38
38
|
const path = __importStar(require("node:path"));
|
|
39
39
|
const projen_1 = require("projen");
|
|
40
40
|
const utils_1 = require("../utils");
|
|
41
|
+
/**
|
|
42
|
+
* A projen component that generates AWS CDK Lambda Function constructs and bundles their code assets using esbuild.
|
|
43
|
+
*
|
|
44
|
+
* The bundling happens during projen execution, not during CDK synth, enabling a "build once, deploy many" pattern.
|
|
45
|
+
*/
|
|
41
46
|
class LambdaFunctionConstructGenerator extends projen_1.Component {
|
|
42
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionConstructGenerator", version: "0.3.
|
|
47
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionConstructGenerator", version: "0.3.80" };
|
|
43
48
|
sourceDir;
|
|
44
49
|
outputDir;
|
|
45
50
|
filePattern;
|
|
@@ -237,4 +242,4 @@ main().catch(error => {
|
|
|
237
242
|
}
|
|
238
243
|
}
|
|
239
244
|
exports.LambdaFunctionConstructGenerator = LambdaFunctionConstructGenerator;
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWZ1bmN0aW9uLWNvbnN0cnVjdC1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9sYW1iZGEtZnVuY3Rpb24tY29uc3RydWN0LWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBRWxDLG1DQUErQztBQUUvQyxvQ0FBMkM7QUFhM0MsTUFBYSxnQ0FBaUMsU0FBUSxrQkFBUzs7SUFDM0MsU0FBUyxDQUFTO0lBQ2xCLFNBQVMsQ0FBUztJQUNsQixXQUFXLENBQVM7SUFDcEIsY0FBYyxDQUFlO0lBQzdCLG1CQUFtQixDQUFVO0lBQzdCLGtCQUFrQixDQUFVO0lBQzVCLG9CQUFvQixDQUFVO0lBQzdCLFdBQVcsQ0FBYztJQUN6QixpQkFBaUIsQ0FBUztJQUUzQyxZQUFZLE9BQW9CLEVBQUUsT0FBaUQ7UUFDL0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLEVBQUUsU0FBUyxJQUFJLGNBQWMsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLElBQUksdUJBQXVCLENBQUM7UUFDL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsV0FBVyxJQUFJLGFBQWEsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sRUFBRSxjQUFjLElBQUksRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQztRQUN0RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxFQUFFLG9CQUFvQixDQUFD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Qzs7QUFwTkwsNEVBcU5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkT3B0aW9ucyB9IGZyb20gXCJAbXJncmFpbi9jZGstZXNidWlsZFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBTb3VyY2VDb2RlIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHR5cGUgeyBOb2RlUHJvamVjdCB9IGZyb20gXCJwcm9qZW4vbGliL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IHRzY29uZmlnRGV2UGF0aCB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9yT3B0aW9ucyB7XG4gICAgcmVhZG9ubHkgc291cmNlRGlyPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IG91dHB1dERpcj86IHN0cmluZztcbiAgICByZWFkb25seSBmaWxlUGF0dGVybj86IHN0cmluZztcbiAgICByZWFkb25seSBlc2J1aWxkT3B0aW9ucz86IEJ1aWxkT3B0aW9ucztcbiAgICByZWFkb25seSBhZGREZXBlbmRlbmNpZXM/OiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGJhc2VDb25zdHJ1Y3RJbXBvcnQ/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYmFzZUNvbnN0cnVjdENsYXNzPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGJhc2VDb25zdHJ1Y3RQYWNrYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHB1YmxpYyByZWFkb25seSBzb3VyY2VEaXI6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0RGlyOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGZpbGVQYXR0ZXJuOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGVzYnVpbGRPcHRpb25zOiBCdWlsZE9wdGlvbnM7XG4gICAgcHVibGljIHJlYWRvbmx5IGJhc2VDb25zdHJ1Y3RJbXBvcnQ/OiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGJhc2VDb25zdHJ1Y3RDbGFzcz86IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgYmFzZUNvbnN0cnVjdFBhY2thZ2U/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBub2RlUHJvamVjdDogTm9kZVByb2plY3Q7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidW5kbGVyU2NyaXB0UGF0aDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM/OiBMYW1iZGFGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRvck9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIocHJvamVjdCk7XG4gICAgICAgIHRoaXMubm9kZVByb2plY3QgPSBwcm9qZWN0O1xuICAgICAgICB0aGlzLnNvdXJjZURpciA9IG9wdGlvbnM/LnNvdXJjZURpciA/PyBcInNyYy9oYW5kbGVyc1wiO1xuICAgICAgICB0aGlzLm91dHB1dERpciA9IG9wdGlvbnM/Lm91dHB1dERpciA/PyBcInNyYy9jb25zdHJ1Y3RzL2xhbWJkYVwiO1xuICAgICAgICB0aGlzLmZpbGVQYXR0ZXJuID0gb3B0aW9ucz8uZmlsZVBhdHRlcm4gPz8gXCIqLmxhbWJkYS50c1wiO1xuICAgICAgICB0aGlzLmVzYnVpbGRPcHRpb25zID0gb3B0aW9ucz8uZXNidWlsZE9wdGlvbnMgPz8ge307XG4gICAgICAgIHRoaXMuYmFzZUNvbnN0cnVjdEltcG9ydCA9IG9wdGlvbnM/LmJhc2VDb25zdHJ1Y3RJbXBvcnQ7XG4gICAgICAgIHRoaXMuYmFzZUNvbnN0cnVjdENsYXNzID0gb3B0aW9ucz8uYmFzZUNvbnN0cnVjdENsYXNzO1xuICAgICAgICB0aGlzLmJhc2VDb25zdHJ1Y3RQYWNrYWdlID0gb3B0aW9ucz8uYmFzZUNvbnN0cnVjdFBhY2thZ2U7XG5cbiAgICAgICAgY29uc3QgdW5pcXVlSWQgPSB0aGlzLmNyZWF0ZVVuaXF1ZUlkKHRoaXMuc291cmNlRGlyLCB0aGlzLmZpbGVQYXR0ZXJuKTtcbiAgICAgICAgdGhpcy5idW5kbGVyU2NyaXB0UGF0aCA9IHBhdGguam9pbihcIi5wcm9qZW5cIiwgYGdlbmVyYXRlLWFuZC1idW5kbGUtJHt1bmlxdWVJZH0udHNgKTtcblxuICAgICAgICBpZiAob3B0aW9ucz8uYWRkRGVwZW5kZW5jaWVzID8/IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jaWVzKG9wdGlvbnM/LmJhc2VDb25zdHJ1Y3RQYWNrYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3JlYXRlQnVuZGxlVGFzaygpO1xuICAgICAgICB0aGlzLmFkZEJ1bmRsZVRhc2tUb1dvcmtmbG93KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGREZXBlbmRlbmNpZXMoYWRkaXRpb25hbFBhY2thZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ub2RlUHJvamVjdC5hZGREZXBzKFwiYXdzLWNkay1saWJcIiwgXCJjb25zdHJ1Y3RzXCIpO1xuXG4gICAgICAgIGlmIChhZGRpdGlvbmFsUGFja2FnZSAmJiBhZGRpdGlvbmFsUGFja2FnZSAhPT0gXCJhd3MtY2RrLWxpYlwiICYmIGFkZGl0aW9uYWxQYWNrYWdlICE9PSBcImNvbnN0cnVjdHNcIikge1xuICAgICAgICAgICAgdGhpcy5ub2RlUHJvamVjdC5hZGREZXBzKGFkZGl0aW9uYWxQYWNrYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVW5pcXVlSWQoc291cmNlRGlyOiBzdHJpbmcsIGZpbGVQYXR0ZXJuOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkaXJQYXJ0ID0gc291cmNlRGlyLnJlcGxhY2UoL1xcLy9nLCBcIi1cIikucmVwbGFjZSgvW15cXHctXS9nLCBcIlwiKTtcbiAgICAgICAgY29uc3QgcGF0dGVyblBhcnQgPSBmaWxlUGF0dGVyblxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKi9nLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcLi9nLCBcIi1cIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXlxcdy1dL2csIFwiXCIpO1xuICAgICAgICByZXR1cm4gYCR7ZGlyUGFydH0tJHtwYXR0ZXJuUGFydH1gLnJlcGxhY2UoLy0tKy9nLCBcIi1cIikucmVwbGFjZSgvXi18LSQvZywgXCJcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVCdW5kbGVUYXNrKCkge1xuICAgICAgICBjb25zdCB1bmlxdWVJZCA9IHRoaXMuY3JlYXRlVW5pcXVlSWQodGhpcy5zb3VyY2VEaXIsIHRoaXMuZmlsZVBhdHRlcm4pO1xuICAgICAgICBjb25zdCB0YXNrTmFtZSA9IGBnZW5lcmF0ZS1hbmQtYnVuZGxlLSR7dW5pcXVlSWR9YDtcblxuICAgICAgICBsZXQgYmFzZUNvbnN0cnVjdEFyZ3MgPSBcIlwiO1xuICAgICAgICBpZiAodGhpcy5iYXNlQ29uc3RydWN0SW1wb3J0KSB7XG4gICAgICAgICAgICBiYXNlQ29uc3RydWN0QXJncyArPSBgIC0tYmFzZS1jb25zdHJ1Y3QtaW1wb3J0ICcke3RoaXMuYmFzZUNvbnN0cnVjdEltcG9ydH0nYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5iYXNlQ29uc3RydWN0Q2xhc3MpIHtcbiAgICAgICAgICAgIGJhc2VDb25zdHJ1Y3RBcmdzICs9IGAgLS1iYXNlLWNvbnN0cnVjdC1jbGFzcyAnJHt0aGlzLmJhc2VDb25zdHJ1Y3RDbGFzc30nYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJ1bmRsZVRhc2sgPSB0aGlzLm5vZGVQcm9qZWN0LmFkZFRhc2sodGFza05hbWUsIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgR2VuZXJhdGUgTGFtYmRhIEZ1bmN0aW9uIENvbnN0cnVjdHMgZnJvbSAke3RoaXMuc291cmNlRGlyfS8ke3RoaXMuZmlsZVBhdHRlcm59IGFuZCBidW5kbGUgdGhlaXIgaGFuZGxlcnNgLFxuICAgICAgICAgICAgZXhlYzogYHRzeCAtLXRzY29uZmlnICR7dHNjb25maWdEZXZQYXRoKHRoaXMubm9kZVByb2plY3QpfSAke3RoaXMuYnVuZGxlclNjcmlwdFBhdGh9IC0tc291cmNlLWRpciAke3RoaXMuc291cmNlRGlyfSAtLW91dHB1dC1kaXIgJHt0aGlzLm91dHB1dERpcn0gLS1maWxlLXBhdHRlcm4gXCIke3RoaXMuZmlsZVBhdHRlcm59XCIgLS1lc2J1aWxkLW9wdGlvbnMgJyR7SlNPTi5zdHJpbmdpZnkodGhpcy5lc2J1aWxkT3B0aW9ucyl9JyR7YmFzZUNvbnN0cnVjdEFyZ3N9YCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVCdW5kbGVyU2NyaXB0KCk7XG5cbiAgICAgICAgcmV0dXJuIGJ1bmRsZVRhc2s7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVCdW5kbGVyU2NyaXB0KCkge1xuICAgICAgICBjb25zdCBidW5kbGVyU2NyaXB0ID0gYC8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi5cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGVzYnVpbGQgZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHsgcGFzY2FsQ2FzZSB9IGZyb20gJ2NoYW5nZS1jYXNlJztcbmltcG9ydCB5YXJncyBmcm9tICd5YXJncy95YXJncyc7XG5pbXBvcnQgeyBoaWRlQmluIH0gZnJvbSAneWFyZ3MvaGVscGVycyc7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IGFyZ3YgPSBhd2FpdCB5YXJncyhoaWRlQmluKHByb2Nlc3MuYXJndikpXG4gICAgLm9wdGlvbignc291cmNlLWRpcicsIHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdzcmMvaGFuZGxlcnMnLCBkZXNjcmlwdGlvbjogJ1NvdXJjZSBkaXJlY3Rvcnkgd2hlcmUgTGFtYmRhIEZ1bmN0aW9uIGhhbmRsZXJzIGFyZSBsb2NhdGVkJyB9KVxuICAgIC5vcHRpb24oJ291dHB1dC1kaXInLCB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnc3JjL2NvbnN0cnVjdHMvbGFtYmRhJywgZGVzY3JpcHRpb246ICdPdXRwdXQgZGlyZWN0b3J5IHdoZXJlIExhbWJkYSBGdW5jdGlvbiBjb25zdHJ1Y3RzIHdpbGwgYmUgZ2VuZXJhdGVkJyB9KVxuICAgIC5vcHRpb24oJ2ZpbGUtcGF0dGVybicsIHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICcqLmxhbWJkYS50cycsIGRlc2NyaXB0aW9uOiAnRmlsZSBwYXR0ZXJuIHRvIGlkZW50aWZ5IExhbWJkYSBGdW5jdGlvbiBoYW5kbGVycycgfSlcbiAgICAub3B0aW9uKCdlc2J1aWxkLW9wdGlvbnMnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAne30nLCBkZXNjcmlwdGlvbjogJ2VzYnVpbGQgb3B0aW9ucyBhcyBKU09OIHN0cmluZycgfSlcbiAgICAub3B0aW9uKCdiYXNlLWNvbnN0cnVjdC1pbXBvcnQnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ltcG9ydCBzdGF0ZW1lbnQgZm9yIHRoZSBiYXNlIGNvbnN0cnVjdCcgfSlcbiAgICAub3B0aW9uKCdiYXNlLWNvbnN0cnVjdC1jbGFzcycsIHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgY29uc3RydWN0IGNsYXNzIHRvIGV4dGVuZCcgfSlcbiAgICAuaGVscCgpXG4gICAgLnBhcnNlKCk7XG5cbiAgY29uc3Qgc291cmNlRGlyID0gYXJndlsnc291cmNlLWRpciddO1xuICBjb25zdCBvdXRwdXREaXIgPSBhcmd2WydvdXRwdXQtZGlyJ107XG4gIGNvbnN0IGZpbGVQYXR0ZXJuID0gYXJndlsnZmlsZS1wYXR0ZXJuJ107XG4gIGNvbnN0IGVzYnVpbGRPcHRpb25zID0gSlNPTi5wYXJzZShhcmd2Wydlc2J1aWxkLW9wdGlvbnMnXSBhcyBzdHJpbmcpO1xuICBjb25zdCBiYXNlQ29uc3RydWN0SW1wb3J0ID0gYXJndlsnYmFzZS1jb25zdHJ1Y3QtaW1wb3J0J10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb25zdCBiYXNlQ29uc3RydWN0Q2xhc3MgPSBhcmd2WydiYXNlLWNvbnN0cnVjdC1jbGFzcyddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBmcy5ta2RpclN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG91dHB1dERpciksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGNvbnN0IGFzc2V0c0RpciA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnYXNzZXRzJywgJ2hhbmRsZXJzJyk7XG4gIGZzLm1rZGlyU3luYyhhc3NldHNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGNvbnN0IGhhbmRsZXJGaWxlcyA9IGdsb2Iuc3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgc291cmNlRGlyLCBmaWxlUGF0dGVybikpO1xuXG4gIGNvbnNvbGUubG9nKFxcYEZvdW5kIFxcJHtoYW5kbGVyRmlsZXMubGVuZ3RofSBMYW1iZGEgRnVuY3Rpb24gaGFuZGxlciBmaWxlc1xcYCk7XG5cbiAgZm9yIChjb25zdCBoYW5kbGVyRmlsZSBvZiBoYW5kbGVyRmlsZXMpIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBzb3VyY2VEaXIpLCBoYW5kbGVyRmlsZSk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBwYXRoLmJhc2VuYW1lKHJlbGF0aXZlUGF0aCwgcGF0aC5leHRuYW1lKHJlbGF0aXZlUGF0aCkpO1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGZpbGVOYW1lLnJlcGxhY2UoJy5sYW1iZGEnLCAnJyk7XG5cbiAgICBjb25zb2xlLmxvZyhcXGBQcm9jZXNzaW5nIExhbWJkYSBGdW5jdGlvbiBoYW5kbGVyOiBcXCR7ZnVuY3Rpb25OYW1lfVxcYCk7XG5cbiAgICBjb25zdCBmdW5jdGlvbkRpciA9IHBhdGguam9pbihhc3NldHNEaXIsIGZ1bmN0aW9uTmFtZSk7XG4gICAgZnMubWtkaXJTeW5jKGZ1bmN0aW9uRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IG91dGZpbGUgPSBwYXRoLmpvaW4oZnVuY3Rpb25EaXIsICdpbmRleC5qcycpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGVzYnVpbGQuYnVpbGQoe1xuICAgICAgICBlbnRyeVBvaW50czogW2hhbmRsZXJGaWxlXSxcbiAgICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgICBtaW5pZnk6IHRydWUsXG4gICAgICAgIHBsYXRmb3JtOiAnbm9kZScsXG4gICAgICAgIHRhcmdldDogJ25vZGUxOCcsXG4gICAgICAgIG91dGZpbGUsXG4gICAgICAgIC4uLmVzYnVpbGRPcHRpb25zLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnNvbGUubG9nKFxcYFN1Y2Nlc3NmdWxseSBidW5kbGVkIFxcJHtmdW5jdGlvbk5hbWV9IHRvIFxcJHtvdXRmaWxlfVxcYCk7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdEZpbGVQYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG91dHB1dERpciwgXFxgXFwke2Z1bmN0aW9uTmFtZX0udHNcXGApO1xuICAgICAgY29uc3QgY29uc3RydWN0Q29kZSA9IGdlbmVyYXRlQ29uc3RydWN0Q29kZShmdW5jdGlvbk5hbWUsIHJlbGF0aXZlUGF0aCwgYmFzZUNvbnN0cnVjdEltcG9ydCwgYmFzZUNvbnN0cnVjdENsYXNzKTtcblxuICAgICAgZnMud3JpdGVGaWxlU3luYyhjb25zdHJ1Y3RGaWxlUGF0aCwgY29uc3RydWN0Q29kZSk7XG4gICAgICBjb25zb2xlLmxvZyhcXGBHZW5lcmF0ZWQgY29uc3RydWN0IGF0IFxcJHtjb25zdHJ1Y3RGaWxlUGF0aH1cXGApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxcYEVycm9yIHByb2Nlc3NpbmcgXFwke2Z1bmN0aW9uTmFtZX06XFxgLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ29uc3RydWN0Q29kZShmdW5jdGlvbk5hbWU6IHN0cmluZywgaGFuZGxlclBhdGg6IHN0cmluZywgYmFzZUNvbnN0cnVjdEltcG9ydD86IHN0cmluZywgYmFzZUNvbnN0cnVjdENsYXNzPzogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnN0cnVjdE5hbWUgPSBcXGBcXCR7cGFzY2FsQ2FzZShmdW5jdGlvbk5hbWUpfUZ1bmN0aW9uXFxgO1xuXG4gIGNvbnN0IGltcG9ydFN0YXRlbWVudCA9IGJhc2VDb25zdHJ1Y3RJbXBvcnQgPz8gXCJcIjtcbiAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGJhc2VDb25zdHJ1Y3RDbGFzcyA/PyBcImF3c19sYW1iZGEuRnVuY3Rpb25cIjtcblxuICBjb25zdCB1c2VBd3NMYW1iZGFSdW50aW1lID0gIWJhc2VDb25zdHJ1Y3RDbGFzcyB8fCBiYXNlQ2xhc3NOYW1lLmluY2x1ZGVzKFwiRnVuY3Rpb25cIik7XG5cbiAgcmV0dXJuIFxcYC8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi5cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICd1cmwnO1xuXFwke2ltcG9ydFN0YXRlbWVudH1cbmltcG9ydCB7IGF3c19sYW1iZGEgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShfX2ZpbGVuYW1lKTtcblxuZXhwb3J0IGludGVyZmFjZSBcXCR7Y29uc3RydWN0TmFtZX1Qcm9wcyBleHRlbmRzIE9taXQ8XFwke2Jhc2VDbGFzc05hbWUgPT09IFwiYXdzX2xhbWJkYS5GdW5jdGlvblwiID8gXCJhd3NfbGFtYmRhLkZ1bmN0aW9uUHJvcHNcIiA6IFxcYFxcJHtiYXNlQ2xhc3NOYW1lfVByb3BzXFxgfSwgJ2NvZGUnXFwke3VzZUF3c0xhbWJkYVJ1bnRpbWUgPyBcIiB8ICdydW50aW1lJ1wiIDogXCJcIn0gfCAnaGFuZGxlcic+IHtcbiAgXFwke3VzZUF3c0xhbWJkYVJ1bnRpbWUgPyBcXGAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgcnVudGltZVxuICAgKiBAZGVmYXVsdCBub2RlanMyMi54XG4gICAqL1xuICByZWFkb25seSBydW50aW1lPzogYXdzX2xhbWJkYS5SdW50aW1lO1xcYCA6IFwiXCJ9XG59XG5cbmV4cG9ydCBjbGFzcyBcXCR7Y29uc3RydWN0TmFtZX0gZXh0ZW5kcyBcXCR7YmFzZUNsYXNzTmFtZX0ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogXFwke2NvbnN0cnVjdE5hbWV9UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBcXCR7dXNlQXdzTGFtYmRhUnVudGltZSA/IFwicnVudGltZTogcHJvcHMucnVudGltZSA/PyBhd3NfbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIyX1gsXCIgOiBcIlwifVxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogYXdzX2xhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vYXNzZXRzL2hhbmRsZXJzL1xcJHtmdW5jdGlvbk5hbWV9JykpLFxuICAgIH0pO1xuICB9XG59XG5cXGA7XG59XG5cbm1haW4oKS5jYXRjaChlcnJvciA9PiB7XG4gIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufSk7XG5gO1xuXG4gICAgICAgIGNvbnN0IHNyYyA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgdGhpcy5idW5kbGVyU2NyaXB0UGF0aCk7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gYnVuZGxlclNjcmlwdC5zcGxpdChcIlxcblwiKTtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICBzcmMubGluZShsaW5lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubm9kZVByb2plY3QuYWRkRGV2RGVwcyhcImVzYnVpbGRcIiwgXCJnbG9iXCIsIFwieWFyZ3NcIiwgXCJAdHlwZXMvZ2xvYlwiLCBcIkB0eXBlcy95YXJnc1wiLCBcInRzeFwiLCBcImNoYW5nZS1jYXNlXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQnVuZGxlVGFza1RvV29ya2Zsb3coKSB7XG4gICAgICAgIGNvbnN0IGNvbXBpbGVUYXNrID0gdGhpcy5ub2RlUHJvamVjdC50YXNrcy50cnlGaW5kKFwiY29tcGlsZVwiKTtcblxuICAgICAgICBpZiAoY29tcGlsZVRhc2spIHtcbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUlkID0gdGhpcy5jcmVhdGVVbmlxdWVJZCh0aGlzLnNvdXJjZURpciwgdGhpcy5maWxlUGF0dGVybik7XG4gICAgICAgICAgICBjb25zdCB0YXNrTmFtZSA9IGBnZW5lcmF0ZS1hbmQtYnVuZGxlLSR7dW5pcXVlSWR9YDtcbiAgICAgICAgICAgIGNvbnN0IGJ1bmRsZVRhc2sgPSB0aGlzLm5vZGVQcm9qZWN0LnRhc2tzLnRyeUZpbmQodGFza05hbWUpO1xuICAgICAgICAgICAgaWYgKGJ1bmRsZVRhc2spIHtcbiAgICAgICAgICAgICAgICBjb21waWxlVGFzay5wcmVwZW5kU3Bhd24oYnVuZGxlVGFzayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWZ1bmN0aW9uLWNvbnN0cnVjdC1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9sYW1iZGEtZnVuY3Rpb24tY29uc3RydWN0LWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBRWxDLG1DQUErQztBQUUvQyxvQ0FBMkM7QUFxRTNDOzs7O0dBSUc7QUFDSCxNQUFhLGdDQUFpQyxTQUFRLGtCQUFTOztJQUMzQyxTQUFTLENBQVM7SUFDbEIsU0FBUyxDQUFTO0lBQ2xCLFdBQVcsQ0FBUztJQUNwQixjQUFjLENBQWU7SUFDN0IsbUJBQW1CLENBQVU7SUFDN0Isa0JBQWtCLENBQVU7SUFDNUIsb0JBQW9CLENBQVU7SUFDN0IsV0FBVyxDQUFjO0lBQ3pCLGlCQUFpQixDQUFTO0lBRTNDLFlBQVksT0FBb0IsRUFBRSxPQUFpRDtRQUMvRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLElBQUksY0FBYyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsSUFBSSx1QkFBdUIsQ0FBQztRQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLElBQUksYUFBYSxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxFQUFFLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxFQUFFLGtCQUFrQixDQUFDO1FBQ3RELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLEVB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LENBQUM7SUFDTCxDQUFDOztBQXBOTCw0RUFxTkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQnVpbGRPcHRpb25zIH0gZnJvbSBcIkBtcmdyYWluL2Nkay1lc2J1aWxkXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIFNvdXJjZUNvZGUgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgdHlwZSB7IE5vZGVQcm9qZWN0IH0gZnJvbSBcInByb2plbi9saWIvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgdHNjb25maWdEZXZQYXRoIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIExhbWJkYUZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3JPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBTb3VyY2UgZGlyZWN0b3J5IHdoZXJlIExhbWJkYSBGdW5jdGlvbiBoYW5kbGVycyBhcmUgbG9jYXRlZFxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJzcmMvaGFuZGxlcnNcIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNvdXJjZURpcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE91dHB1dCBkaXJlY3Rvcnkgd2hlcmUgTGFtYmRhIEZ1bmN0aW9uIGNvbnN0cnVjdHMgd2lsbCBiZSBnZW5lcmF0ZWRcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwic3JjL2NvbnN0cnVjdHMvbGFtYmRhXCJcbiAgICAgKi9cbiAgICByZWFkb25seSBvdXRwdXREaXI/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBGaWxlIHBhdHRlcm4gdG8gaWRlbnRpZnkgTGFtYmRhIEZ1bmN0aW9uIGhhbmRsZXJzXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcIioubGFtYmRhLnRzXCJcbiAgICAgKi9cbiAgICByZWFkb25seSBmaWxlUGF0dGVybj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIGVzYnVpbGQgb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIGJ1bmRsaW5nIHByb2Nlc3NcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHt9XG4gICAgICovXG4gICAgcmVhZG9ubHkgZXNidWlsZE9wdGlvbnM/OiBCdWlsZE9wdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSByZXF1aXJlZCBkZXBlbmRlbmNpZXNcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICByZWFkb25seSBhZGREZXBlbmRlbmNpZXM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogSW1wb3J0IHN0YXRlbWVudCBmb3IgdGhlIGJhc2UgY29uc3RydWN0XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZSBcImltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1wiXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcImltcG9ydCB7IGF3c19sYW1iZGEgfSBmcm9tICdhd3MtY2RrLWxpYic7XCJcbiAgICAgKi9cbiAgICByZWFkb25seSBiYXNlQ29uc3RydWN0SW1wb3J0Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgY29uc3RydWN0IGNsYXNzIHRvIGV4dGVuZFxuICAgICAqXG4gICAgICogQGV4YW1wbGUgXCJOb2RlanNGdW5jdGlvblwiXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcImF3c19sYW1iZGEuRnVuY3Rpb25cIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGJhc2VDb25zdHJ1Y3RDbGFzcz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFBhY2thZ2UgbmFtZSB0byBhZGQgYXMgZGVwZW5kZW5jeSBmb3IgdGhlIGJhc2UgY29uc3RydWN0XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZSBcImF3cy1jZGstbGliXCJcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiYXdzLWNkay1saWJcIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGJhc2VDb25zdHJ1Y3RQYWNrYWdlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcHJvamVuIGNvbXBvbmVudCB0aGF0IGdlbmVyYXRlcyBBV1MgQ0RLIExhbWJkYSBGdW5jdGlvbiBjb25zdHJ1Y3RzIGFuZCBidW5kbGVzIHRoZWlyIGNvZGUgYXNzZXRzIHVzaW5nIGVzYnVpbGQuXG4gKlxuICogVGhlIGJ1bmRsaW5nIGhhcHBlbnMgZHVyaW5nIHByb2plbiBleGVjdXRpb24sIG5vdCBkdXJpbmcgQ0RLIHN5bnRoLCBlbmFibGluZyBhIFwiYnVpbGQgb25jZSwgZGVwbG95IG1hbnlcIiBwYXR0ZXJuLlxuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHB1YmxpYyByZWFkb25seSBzb3VyY2VEaXI6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0RGlyOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGZpbGVQYXR0ZXJuOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGVzYnVpbGRPcHRpb25zOiBCdWlsZE9wdGlvbnM7XG4gICAgcHVibGljIHJlYWRvbmx5IGJhc2VDb25zdHJ1Y3RJbXBvcnQ/OiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGJhc2VDb25zdHJ1Y3RDbGFzcz86IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgYmFzZUNvbnN0cnVjdFBhY2thZ2U/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBub2RlUHJvamVjdDogTm9kZVByb2plY3Q7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidW5kbGVyU2NyaXB0UGF0aDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM/OiBMYW1iZGFGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRvck9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIocHJvamVjdCk7XG4gICAgICAgIHRoaXMubm9kZVByb2plY3QgPSBwcm9qZWN0O1xuICAgICAgICB0aGlzLnNvdXJjZURpciA9IG9wdGlvbnM/LnNvdXJjZURpciA/PyBcInNyYy9oYW5kbGVyc1wiO1xuICAgICAgICB0aGlzLm91dHB1dERpciA9IG9wdGlvbnM/Lm91dHB1dERpciA/PyBcInNyYy9jb25zdHJ1Y3RzL2xhbWJkYVwiO1xuICAgICAgICB0aGlzLmZpbGVQYXR0ZXJuID0gb3B0aW9ucz8uZmlsZVBhdHRlcm4gPz8gXCIqLmxhbWJkYS50c1wiO1xuICAgICAgICB0aGlzLmVzYnVpbGRPcHRpb25zID0gb3B0aW9ucz8uZXNidWlsZE9wdGlvbnMgPz8ge307XG4gICAgICAgIHRoaXMuYmFzZUNvbnN0cnVjdEltcG9ydCA9IG9wdGlvbnM/LmJhc2VDb25zdHJ1Y3RJbXBvcnQ7XG4gICAgICAgIHRoaXMuYmFzZUNvbnN0cnVjdENsYXNzID0gb3B0aW9ucz8uYmFzZUNvbnN0cnVjdENsYXNzO1xuICAgICAgICB0aGlzLmJhc2VDb25zdHJ1Y3RQYWNrYWdlID0gb3B0aW9ucz8uYmFzZUNvbnN0cnVjdFBhY2thZ2U7XG5cbiAgICAgICAgY29uc3QgdW5pcXVlSWQgPSB0aGlzLmNyZWF0ZVVuaXF1ZUlkKHRoaXMuc291cmNlRGlyLCB0aGlzLmZpbGVQYXR0ZXJuKTtcbiAgICAgICAgdGhpcy5idW5kbGVyU2NyaXB0UGF0aCA9IHBhdGguam9pbihcIi5wcm9qZW5cIiwgYGdlbmVyYXRlLWFuZC1idW5kbGUtJHt1bmlxdWVJZH0udHNgKTtcblxuICAgICAgICBpZiAob3B0aW9ucz8uYWRkRGVwZW5kZW5jaWVzID8/IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jaWVzKG9wdGlvbnM/LmJhc2VDb25zdHJ1Y3RQYWNrYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3JlYXRlQnVuZGxlVGFzaygpO1xuICAgICAgICB0aGlzLmFkZEJ1bmRsZVRhc2tUb1dvcmtmbG93KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGREZXBlbmRlbmNpZXMoYWRkaXRpb25hbFBhY2thZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ub2RlUHJvamVjdC5hZGREZXBzKFwiYXdzLWNkay1saWJcIiwgXCJjb25zdHJ1Y3RzXCIpO1xuXG4gICAgICAgIGlmIChhZGRpdGlvbmFsUGFja2FnZSAmJiBhZGRpdGlvbmFsUGFja2FnZSAhPT0gXCJhd3MtY2RrLWxpYlwiICYmIGFkZGl0aW9uYWxQYWNrYWdlICE9PSBcImNvbnN0cnVjdHNcIikge1xuICAgICAgICAgICAgdGhpcy5ub2RlUHJvamVjdC5hZGREZXBzKGFkZGl0aW9uYWxQYWNrYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVW5pcXVlSWQoc291cmNlRGlyOiBzdHJpbmcsIGZpbGVQYXR0ZXJuOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkaXJQYXJ0ID0gc291cmNlRGlyLnJlcGxhY2UoL1xcLy9nLCBcIi1cIikucmVwbGFjZSgvW15cXHctXS9nLCBcIlwiKTtcbiAgICAgICAgY29uc3QgcGF0dGVyblBhcnQgPSBmaWxlUGF0dGVyblxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKi9nLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcLi9nLCBcIi1cIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXlxcdy1dL2csIFwiXCIpO1xuICAgICAgICByZXR1cm4gYCR7ZGlyUGFydH0tJHtwYXR0ZXJuUGFydH1gLnJlcGxhY2UoLy0tKy9nLCBcIi1cIikucmVwbGFjZSgvXi18LSQvZywgXCJcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVCdW5kbGVUYXNrKCkge1xuICAgICAgICBjb25zdCB1bmlxdWVJZCA9IHRoaXMuY3JlYXRlVW5pcXVlSWQodGhpcy5zb3VyY2VEaXIsIHRoaXMuZmlsZVBhdHRlcm4pO1xuICAgICAgICBjb25zdCB0YXNrTmFtZSA9IGBnZW5lcmF0ZS1hbmQtYnVuZGxlLSR7dW5pcXVlSWR9YDtcblxuICAgICAgICBsZXQgYmFzZUNvbnN0cnVjdEFyZ3MgPSBcIlwiO1xuICAgICAgICBpZiAodGhpcy5iYXNlQ29uc3RydWN0SW1wb3J0KSB7XG4gICAgICAgICAgICBiYXNlQ29uc3RydWN0QXJncyArPSBgIC0tYmFzZS1jb25zdHJ1Y3QtaW1wb3J0ICcke3RoaXMuYmFzZUNvbnN0cnVjdEltcG9ydH0nYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5iYXNlQ29uc3RydWN0Q2xhc3MpIHtcbiAgICAgICAgICAgIGJhc2VDb25zdHJ1Y3RBcmdzICs9IGAgLS1iYXNlLWNvbnN0cnVjdC1jbGFzcyAnJHt0aGlzLmJhc2VDb25zdHJ1Y3RDbGFzc30nYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJ1bmRsZVRhc2sgPSB0aGlzLm5vZGVQcm9qZWN0LmFkZFRhc2sodGFza05hbWUsIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgR2VuZXJhdGUgTGFtYmRhIEZ1bmN0aW9uIENvbnN0cnVjdHMgZnJvbSAke3RoaXMuc291cmNlRGlyfS8ke3RoaXMuZmlsZVBhdHRlcm59IGFuZCBidW5kbGUgdGhlaXIgaGFuZGxlcnNgLFxuICAgICAgICAgICAgZXhlYzogYHRzeCAtLXRzY29uZmlnICR7dHNjb25maWdEZXZQYXRoKHRoaXMubm9kZVByb2plY3QpfSAke3RoaXMuYnVuZGxlclNjcmlwdFBhdGh9IC0tc291cmNlLWRpciAke3RoaXMuc291cmNlRGlyfSAtLW91dHB1dC1kaXIgJHt0aGlzLm91dHB1dERpcn0gLS1maWxlLXBhdHRlcm4gXCIke3RoaXMuZmlsZVBhdHRlcm59XCIgLS1lc2J1aWxkLW9wdGlvbnMgJyR7SlNPTi5zdHJpbmdpZnkodGhpcy5lc2J1aWxkT3B0aW9ucyl9JyR7YmFzZUNvbnN0cnVjdEFyZ3N9YCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVCdW5kbGVyU2NyaXB0KCk7XG5cbiAgICAgICAgcmV0dXJuIGJ1bmRsZVRhc2s7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVCdW5kbGVyU2NyaXB0KCkge1xuICAgICAgICBjb25zdCBidW5kbGVyU2NyaXB0ID0gYC8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi5cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGVzYnVpbGQgZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHsgcGFzY2FsQ2FzZSB9IGZyb20gJ2NoYW5nZS1jYXNlJztcbmltcG9ydCB5YXJncyBmcm9tICd5YXJncy95YXJncyc7XG5pbXBvcnQgeyBoaWRlQmluIH0gZnJvbSAneWFyZ3MvaGVscGVycyc7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IGFyZ3YgPSBhd2FpdCB5YXJncyhoaWRlQmluKHByb2Nlc3MuYXJndikpXG4gICAgLm9wdGlvbignc291cmNlLWRpcicsIHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdzcmMvaGFuZGxlcnMnLCBkZXNjcmlwdGlvbjogJ1NvdXJjZSBkaXJlY3Rvcnkgd2hlcmUgTGFtYmRhIEZ1bmN0aW9uIGhhbmRsZXJzIGFyZSBsb2NhdGVkJyB9KVxuICAgIC5vcHRpb24oJ291dHB1dC1kaXInLCB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnc3JjL2NvbnN0cnVjdHMvbGFtYmRhJywgZGVzY3JpcHRpb246ICdPdXRwdXQgZGlyZWN0b3J5IHdoZXJlIExhbWJkYSBGdW5jdGlvbiBjb25zdHJ1Y3RzIHdpbGwgYmUgZ2VuZXJhdGVkJyB9KVxuICAgIC5vcHRpb24oJ2ZpbGUtcGF0dGVybicsIHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICcqLmxhbWJkYS50cycsIGRlc2NyaXB0aW9uOiAnRmlsZSBwYXR0ZXJuIHRvIGlkZW50aWZ5IExhbWJkYSBGdW5jdGlvbiBoYW5kbGVycycgfSlcbiAgICAub3B0aW9uKCdlc2J1aWxkLW9wdGlvbnMnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAne30nLCBkZXNjcmlwdGlvbjogJ2VzYnVpbGQgb3B0aW9ucyBhcyBKU09OIHN0cmluZycgfSlcbiAgICAub3B0aW9uKCdiYXNlLWNvbnN0cnVjdC1pbXBvcnQnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ltcG9ydCBzdGF0ZW1lbnQgZm9yIHRoZSBiYXNlIGNvbnN0cnVjdCcgfSlcbiAgICAub3B0aW9uKCdiYXNlLWNvbnN0cnVjdC1jbGFzcycsIHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgY29uc3RydWN0IGNsYXNzIHRvIGV4dGVuZCcgfSlcbiAgICAuaGVscCgpXG4gICAgLnBhcnNlKCk7XG5cbiAgY29uc3Qgc291cmNlRGlyID0gYXJndlsnc291cmNlLWRpciddO1xuICBjb25zdCBvdXRwdXREaXIgPSBhcmd2WydvdXRwdXQtZGlyJ107XG4gIGNvbnN0IGZpbGVQYXR0ZXJuID0gYXJndlsnZmlsZS1wYXR0ZXJuJ107XG4gIGNvbnN0IGVzYnVpbGRPcHRpb25zID0gSlNPTi5wYXJzZShhcmd2Wydlc2J1aWxkLW9wdGlvbnMnXSBhcyBzdHJpbmcpO1xuICBjb25zdCBiYXNlQ29uc3RydWN0SW1wb3J0ID0gYXJndlsnYmFzZS1jb25zdHJ1Y3QtaW1wb3J0J10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBjb25zdCBiYXNlQ29uc3RydWN0Q2xhc3MgPSBhcmd2WydiYXNlLWNvbnN0cnVjdC1jbGFzcyddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBmcy5ta2RpclN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG91dHB1dERpciksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGNvbnN0IGFzc2V0c0RpciA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnYXNzZXRzJywgJ2hhbmRsZXJzJyk7XG4gIGZzLm1rZGlyU3luYyhhc3NldHNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGNvbnN0IGhhbmRsZXJGaWxlcyA9IGdsb2Iuc3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgc291cmNlRGlyLCBmaWxlUGF0dGVybikpO1xuXG4gIGNvbnNvbGUubG9nKFxcYEZvdW5kIFxcJHtoYW5kbGVyRmlsZXMubGVuZ3RofSBMYW1iZGEgRnVuY3Rpb24gaGFuZGxlciBmaWxlc1xcYCk7XG5cbiAgZm9yIChjb25zdCBoYW5kbGVyRmlsZSBvZiBoYW5kbGVyRmlsZXMpIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBzb3VyY2VEaXIpLCBoYW5kbGVyRmlsZSk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBwYXRoLmJhc2VuYW1lKHJlbGF0aXZlUGF0aCwgcGF0aC5leHRuYW1lKHJlbGF0aXZlUGF0aCkpO1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGZpbGVOYW1lLnJlcGxhY2UoJy5sYW1iZGEnLCAnJyk7XG5cbiAgICBjb25zb2xlLmxvZyhcXGBQcm9jZXNzaW5nIExhbWJkYSBGdW5jdGlvbiBoYW5kbGVyOiBcXCR7ZnVuY3Rpb25OYW1lfVxcYCk7XG5cbiAgICBjb25zdCBmdW5jdGlvbkRpciA9IHBhdGguam9pbihhc3NldHNEaXIsIGZ1bmN0aW9uTmFtZSk7XG4gICAgZnMubWtkaXJTeW5jKGZ1bmN0aW9uRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IG91dGZpbGUgPSBwYXRoLmpvaW4oZnVuY3Rpb25EaXIsICdpbmRleC5qcycpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGVzYnVpbGQuYnVpbGQoe1xuICAgICAgICBlbnRyeVBvaW50czogW2hhbmRsZXJGaWxlXSxcbiAgICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgICBtaW5pZnk6IHRydWUsXG4gICAgICAgIHBsYXRmb3JtOiAnbm9kZScsXG4gICAgICAgIHRhcmdldDogJ25vZGUxOCcsXG4gICAgICAgIG91dGZpbGUsXG4gICAgICAgIC4uLmVzYnVpbGRPcHRpb25zLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnNvbGUubG9nKFxcYFN1Y2Nlc3NmdWxseSBidW5kbGVkIFxcJHtmdW5jdGlvbk5hbWV9IHRvIFxcJHtvdXRmaWxlfVxcYCk7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdEZpbGVQYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG91dHB1dERpciwgXFxgXFwke2Z1bmN0aW9uTmFtZX0udHNcXGApO1xuICAgICAgY29uc3QgY29uc3RydWN0Q29kZSA9IGdlbmVyYXRlQ29uc3RydWN0Q29kZShmdW5jdGlvbk5hbWUsIHJlbGF0aXZlUGF0aCwgYmFzZUNvbnN0cnVjdEltcG9ydCwgYmFzZUNvbnN0cnVjdENsYXNzKTtcblxuICAgICAgZnMud3JpdGVGaWxlU3luYyhjb25zdHJ1Y3RGaWxlUGF0aCwgY29uc3RydWN0Q29kZSk7XG4gICAgICBjb25zb2xlLmxvZyhcXGBHZW5lcmF0ZWQgY29uc3RydWN0IGF0IFxcJHtjb25zdHJ1Y3RGaWxlUGF0aH1cXGApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxcYEVycm9yIHByb2Nlc3NpbmcgXFwke2Z1bmN0aW9uTmFtZX06XFxgLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ29uc3RydWN0Q29kZShmdW5jdGlvbk5hbWU6IHN0cmluZywgaGFuZGxlclBhdGg6IHN0cmluZywgYmFzZUNvbnN0cnVjdEltcG9ydD86IHN0cmluZywgYmFzZUNvbnN0cnVjdENsYXNzPzogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnN0cnVjdE5hbWUgPSBcXGBcXCR7cGFzY2FsQ2FzZShmdW5jdGlvbk5hbWUpfUZ1bmN0aW9uXFxgO1xuXG4gIGNvbnN0IGltcG9ydFN0YXRlbWVudCA9IGJhc2VDb25zdHJ1Y3RJbXBvcnQgPz8gXCJcIjtcbiAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGJhc2VDb25zdHJ1Y3RDbGFzcyA/PyBcImF3c19sYW1iZGEuRnVuY3Rpb25cIjtcblxuICBjb25zdCB1c2VBd3NMYW1iZGFSdW50aW1lID0gIWJhc2VDb25zdHJ1Y3RDbGFzcyB8fCBiYXNlQ2xhc3NOYW1lLmluY2x1ZGVzKFwiRnVuY3Rpb25cIik7XG5cbiAgcmV0dXJuIFxcYC8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi5cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICd1cmwnO1xuXFwke2ltcG9ydFN0YXRlbWVudH1cbmltcG9ydCB7IGF3c19sYW1iZGEgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShfX2ZpbGVuYW1lKTtcblxuZXhwb3J0IGludGVyZmFjZSBcXCR7Y29uc3RydWN0TmFtZX1Qcm9wcyBleHRlbmRzIE9taXQ8XFwke2Jhc2VDbGFzc05hbWUgPT09IFwiYXdzX2xhbWJkYS5GdW5jdGlvblwiID8gXCJhd3NfbGFtYmRhLkZ1bmN0aW9uUHJvcHNcIiA6IFxcYFxcJHtiYXNlQ2xhc3NOYW1lfVByb3BzXFxgfSwgJ2NvZGUnXFwke3VzZUF3c0xhbWJkYVJ1bnRpbWUgPyBcIiB8ICdydW50aW1lJ1wiIDogXCJcIn0gfCAnaGFuZGxlcic+IHtcbiAgXFwke3VzZUF3c0xhbWJkYVJ1bnRpbWUgPyBcXGAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgcnVudGltZVxuICAgKiBAZGVmYXVsdCBub2RlanMyMi54XG4gICAqL1xuICByZWFkb25seSBydW50aW1lPzogYXdzX2xhbWJkYS5SdW50aW1lO1xcYCA6IFwiXCJ9XG59XG5cbmV4cG9ydCBjbGFzcyBcXCR7Y29uc3RydWN0TmFtZX0gZXh0ZW5kcyBcXCR7YmFzZUNsYXNzTmFtZX0ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogXFwke2NvbnN0cnVjdE5hbWV9UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBcXCR7dXNlQXdzTGFtYmRhUnVudGltZSA/IFwicnVudGltZTogcHJvcHMucnVudGltZSA/PyBhd3NfbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIyX1gsXCIgOiBcIlwifVxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogYXdzX2xhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vYXNzZXRzL2hhbmRsZXJzL1xcJHtmdW5jdGlvbk5hbWV9JykpLFxuICAgIH0pO1xuICB9XG59XG5cXGA7XG59XG5cbm1haW4oKS5jYXRjaChlcnJvciA9PiB7XG4gIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufSk7XG5gO1xuXG4gICAgICAgIGNvbnN0IHNyYyA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgdGhpcy5idW5kbGVyU2NyaXB0UGF0aCk7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gYnVuZGxlclNjcmlwdC5zcGxpdChcIlxcblwiKTtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICBzcmMubGluZShsaW5lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubm9kZVByb2plY3QuYWRkRGV2RGVwcyhcImVzYnVpbGRcIiwgXCJnbG9iXCIsIFwieWFyZ3NcIiwgXCJAdHlwZXMvZ2xvYlwiLCBcIkB0eXBlcy95YXJnc1wiLCBcInRzeFwiLCBcImNoYW5nZS1jYXNlXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQnVuZGxlVGFza1RvV29ya2Zsb3coKSB7XG4gICAgICAgIGNvbnN0IGNvbXBpbGVUYXNrID0gdGhpcy5ub2RlUHJvamVjdC50YXNrcy50cnlGaW5kKFwiY29tcGlsZVwiKTtcblxuICAgICAgICBpZiAoY29tcGlsZVRhc2spIHtcbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUlkID0gdGhpcy5jcmVhdGVVbmlxdWVJZCh0aGlzLnNvdXJjZURpciwgdGhpcy5maWxlUGF0dGVybik7XG4gICAgICAgICAgICBjb25zdCB0YXNrTmFtZSA9IGBnZW5lcmF0ZS1hbmQtYnVuZGxlLSR7dW5pcXVlSWR9YDtcbiAgICAgICAgICAgIGNvbnN0IGJ1bmRsZVRhc2sgPSB0aGlzLm5vZGVQcm9qZWN0LnRhc2tzLnRyeUZpbmQodGFza05hbWUpO1xuICAgICAgICAgICAgaWYgKGJ1bmRsZVRhc2spIHtcbiAgICAgICAgICAgICAgICBjb21waWxlVGFzay5wcmVwZW5kU3Bhd24oYnVuZGxlVGFzayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,11 +1,43 @@
|
|
|
1
1
|
import type { IConstruct } from "constructs";
|
|
2
2
|
import { Component } from "projen/lib/component";
|
|
3
|
+
/**
|
|
4
|
+
* Options for LocalStack component.
|
|
5
|
+
*/
|
|
3
6
|
export interface LocalStackOptions {
|
|
7
|
+
/**
|
|
8
|
+
* LocalStack services to enable.
|
|
9
|
+
* @default - all services enabled
|
|
10
|
+
*/
|
|
4
11
|
readonly services?: string[];
|
|
12
|
+
/**
|
|
13
|
+
* LocalStack gateway port.
|
|
14
|
+
* @default 4566
|
|
15
|
+
*/
|
|
5
16
|
readonly port?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Enable LocalStack debug mode.
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
6
21
|
readonly debug?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* LocalStack Docker image tag, e.g. `"4.9"` to pin a version.
|
|
24
|
+
*
|
|
25
|
+
* When set, LocalStack starts with the `localstack/localstack:<imageTag>` image, passed to
|
|
26
|
+
* `localstack start` through the `IMAGE_NAME` environment variable. That's the community
|
|
27
|
+
* image, even if a `LOCALSTACK_AUTH_TOKEN` would otherwise select the Pro image.
|
|
28
|
+
*
|
|
29
|
+
* Must be a valid Docker tag.
|
|
30
|
+
*
|
|
31
|
+
* @default - the LocalStack CLI's default image
|
|
32
|
+
* @see https://docs.localstack.cloud/aws/customization/configuration-options/
|
|
33
|
+
*/
|
|
7
34
|
readonly imageTag?: string;
|
|
8
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* LocalStack component for projen projects.
|
|
38
|
+
*
|
|
39
|
+
* Adds LocalStack support to your project with automatic Docker/Colima setup.
|
|
40
|
+
*/
|
|
9
41
|
export declare class LocalStack extends Component {
|
|
10
42
|
constructor(scope: IConstruct, options?: LocalStackOptions);
|
|
11
43
|
}
|
|
@@ -6,8 +6,13 @@ const component_1 = require("projen/lib/component");
|
|
|
6
6
|
const javascript_1 = require("projen/lib/javascript");
|
|
7
7
|
const colima_1 = require("./colima");
|
|
8
8
|
const homebrew_1 = require("./homebrew");
|
|
9
|
+
/**
|
|
10
|
+
* LocalStack component for projen projects.
|
|
11
|
+
*
|
|
12
|
+
* Adds LocalStack support to your project with automatic Docker/Colima setup.
|
|
13
|
+
*/
|
|
9
14
|
class LocalStack extends component_1.Component {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LocalStack", version: "0.3.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LocalStack", version: "0.3.80" };
|
|
11
16
|
constructor(scope, options = {}) {
|
|
12
17
|
super(scope);
|
|
13
18
|
const project = javascript_1.NodeProject.of(this);
|
|
@@ -16,6 +21,10 @@ class LocalStack extends component_1.Component {
|
|
|
16
21
|
}
|
|
17
22
|
const port = options.port ?? 4566;
|
|
18
23
|
const debug = options.debug ?? false;
|
|
24
|
+
/* The tag ends up in a shell command, so only accept valid Docker tags */
|
|
25
|
+
if (options.imageTag !== undefined && !/^[\w][\w.-]{0,127}$/.test(options.imageTag)) {
|
|
26
|
+
throw new Error(`LocalStack imageTag "${options.imageTag}" is not a valid Docker image tag`);
|
|
27
|
+
}
|
|
19
28
|
new colima_1.Colima(project);
|
|
20
29
|
let homebrew = homebrew_1.Homebrew.of(project);
|
|
21
30
|
if (!homebrew) {
|
|
@@ -27,6 +36,9 @@ class LocalStack extends component_1.Component {
|
|
|
27
36
|
if (options.services) {
|
|
28
37
|
envVars.push(`SERVICES=${options.services.join(",")}`);
|
|
29
38
|
}
|
|
39
|
+
if (options.imageTag !== undefined) {
|
|
40
|
+
envVars.push(`IMAGE_NAME=localstack/localstack:${options.imageTag}`);
|
|
41
|
+
}
|
|
30
42
|
const localstackTask = project.addTask("localstack", {
|
|
31
43
|
exec: `localstack status | grep -q running || ${envVars.join(" ")} localstack start -d`,
|
|
32
44
|
});
|
|
@@ -41,4 +53,4 @@ class LocalStack extends component_1.Component {
|
|
|
41
53
|
}
|
|
42
54
|
}
|
|
43
55
|
exports.LocalStack = LocalStack;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxzdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2xvY2Fsc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLG9EQUFpRDtBQUNqRCxzREFBb0Q7QUFDcEQscUNBQWtDO0FBQ2xDLHlDQUFzQztBQXVDdEM7Ozs7R0FJRztBQUNILE1BQWEsVUFBVyxTQUFRLHFCQUFTOztJQUNyQyxZQUFZLEtBQWlCLEVBQUUsVUFBNkIsRUFBRTtRQUMxRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixNQUFNLE9BQU8sR0FBRyx3QkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksd0JBQVcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUVyQywwRUFBMEU7UUFDMUUsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsRixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixPQUFPLENBQUMsUUFBUSxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7UUFFRCxJQUFJLGVBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwQixJQUFJLFFBQVEsR0FBRyxtQkFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDWixRQUFRLEdBQUcsSUFBSSxtQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sT0FBTyxHQUFHLENBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFFLG9CQUFvQixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ2pELElBQUksRUFBRSwwQ0FBMEMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsc0JBQXNCO1NBQzFGLENBQUMsQ0FBQztRQUVILElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXBDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDOztBQWxETCxnQ0FtREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInByb2plbi9saWIvY29tcG9uZW50XCI7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gXCJwcm9qZW4vbGliL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IENvbGltYSB9IGZyb20gXCIuL2NvbGltYVwiO1xuaW1wb3J0IHsgSG9tZWJyZXcgfSBmcm9tIFwiLi9ob21lYnJld1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIExvY2FsU3RhY2sgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsU3RhY2tPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBMb2NhbFN0YWNrIHNlcnZpY2VzIHRvIGVuYWJsZS5cbiAgICAgKiBAZGVmYXVsdCAtIGFsbCBzZXJ2aWNlcyBlbmFibGVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VydmljZXM/OiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIExvY2FsU3RhY2sgZ2F0ZXdheSBwb3J0LlxuICAgICAqIEBkZWZhdWx0IDQ1NjZcbiAgICAgKi9cbiAgICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogRW5hYmxlIExvY2FsU3RhY2sgZGVidWcgbW9kZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIExvY2FsU3RhY2sgRG9ja2VyIGltYWdlIHRhZywgZS5nLiBgXCI0LjlcImAgdG8gcGluIGEgdmVyc2lvbi5cbiAgICAgKlxuICAgICAqIFdoZW4gc2V0LCBMb2NhbFN0YWNrIHN0YXJ0cyB3aXRoIHRoZSBgbG9jYWxzdGFjay9sb2NhbHN0YWNrOjxpbWFnZVRhZz5gIGltYWdlLCBwYXNzZWQgdG9cbiAgICAgKiBgbG9jYWxzdGFjayBzdGFydGAgdGhyb3VnaCB0aGUgYElNQUdFX05BTUVgIGVudmlyb25tZW50IHZhcmlhYmxlLiBUaGF0J3MgdGhlIGNvbW11bml0eVxuICAgICAqIGltYWdlLCBldmVuIGlmIGEgYExPQ0FMU1RBQ0tfQVVUSF9UT0tFTmAgd291bGQgb3RoZXJ3aXNlIHNlbGVjdCB0aGUgUHJvIGltYWdlLlxuICAgICAqXG4gICAgICogTXVzdCBiZSBhIHZhbGlkIERvY2tlciB0YWcuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIHRoZSBMb2NhbFN0YWNrIENMSSdzIGRlZmF1bHQgaW1hZ2VcbiAgICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5sb2NhbHN0YWNrLmNsb3VkL2F3cy9jdXN0b21pemF0aW9uL2NvbmZpZ3VyYXRpb24tb3B0aW9ucy9cbiAgICAgKi9cbiAgICByZWFkb25seSBpbWFnZVRhZz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBMb2NhbFN0YWNrIGNvbXBvbmVudCBmb3IgcHJvamVuIHByb2plY3RzLlxuICpcbiAqIEFkZHMgTG9jYWxTdGFjayBzdXBwb3J0IHRvIHlvdXIgcHJvamVjdCB3aXRoIGF1dG9tYXRpYyBEb2NrZXIvQ29saW1hIHNldHVwLlxuICovXG5leHBvcnQgY2xhc3MgTG9jYWxTdGFjayBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IElDb25zdHJ1Y3QsIG9wdGlvbnM6IExvY2FsU3RhY2tPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIoc2NvcGUpO1xuXG4gICAgICAgIGNvbnN0IHByb2plY3QgPSBOb2RlUHJvamVjdC5vZih0aGlzKTtcbiAgICAgICAgaWYgKCEocHJvamVjdCBpbnN0YW5jZW9mIE5vZGVQcm9qZWN0KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTG9jYWxTdGFjayBjb21wb25lbnQgcmVxdWlyZXMgYSBOb2RlUHJvamVjdFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvcnQgPSBvcHRpb25zLnBvcnQgPz8gNDU2NjtcbiAgICAgICAgY29uc3QgZGVidWcgPSBvcHRpb25zLmRlYnVnID8/IGZhbHNlO1xuXG4gICAgICAgIC8qIFRoZSB0YWcgZW5kcyB1cCBpbiBhIHNoZWxsIGNvbW1hbmQsIHNvIG9ubHkgYWNjZXB0IHZhbGlkIERvY2tlciB0YWdzICovXG4gICAgICAgIGlmIChvcHRpb25zLmltYWdlVGFnICE9PSB1bmRlZmluZWQgJiYgIS9eW1xcd11bXFx3Li1dezAsMTI3fSQvLnRlc3Qob3B0aW9ucy5pbWFnZVRhZykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTG9jYWxTdGFjayBpbWFnZVRhZyBcIiR7b3B0aW9ucy5pbWFnZVRhZ31cIiBpcyBub3QgYSB2YWxpZCBEb2NrZXIgaW1hZ2UgdGFnYCk7XG4gICAgICAgIH1cblxuICAgICAgICBuZXcgQ29saW1hKHByb2plY3QpO1xuXG4gICAgICAgIGxldCBob21lYnJldyA9IEhvbWVicmV3Lm9mKHByb2plY3QpO1xuICAgICAgICBpZiAoIWhvbWVicmV3KSB7XG4gICAgICAgICAgICBob21lYnJldyA9IG5ldyBIb21lYnJldyhwcm9qZWN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGhvbWVicmV3LmFkZFBhY2thZ2UoXCJsb2NhbHN0YWNrXCIpO1xuXG4gICAgICAgIGNvbnN0IGNvbGltYVRhc2sgPSBwcm9qZWN0LnRhc2tzLnRyeUZpbmQoXCJjb2xpbWFcIik7XG5cbiAgICAgICAgY29uc3QgZW52VmFycyA9IFtgTE9DQUxTVEFDS19QT1JUPSR7cG9ydH1gLCBgTE9DQUxTVEFDS19ERUJVRz0ke2RlYnVnID8gXCIxXCIgOiBcIjBcIn1gXTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2VydmljZXMpIHtcbiAgICAgICAgICAgIGVudlZhcnMucHVzaChgU0VSVklDRVM9JHtvcHRpb25zLnNlcnZpY2VzLmpvaW4oXCIsXCIpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmltYWdlVGFnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVudlZhcnMucHVzaChgSU1BR0VfTkFNRT1sb2NhbHN0YWNrL2xvY2Fsc3RhY2s6JHtvcHRpb25zLmltYWdlVGFnfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbG9jYWxzdGFja1Rhc2sgPSBwcm9qZWN0LmFkZFRhc2soXCJsb2NhbHN0YWNrXCIsIHtcbiAgICAgICAgICAgIGV4ZWM6IGBsb2NhbHN0YWNrIHN0YXR1cyB8IGdyZXAgLXEgcnVubmluZyB8fCAke2VudlZhcnMuam9pbihcIiBcIil9IGxvY2Fsc3RhY2sgc3RhcnQgLWRgLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY29saW1hVGFzaykge1xuICAgICAgICAgICAgbG9jYWxzdGFja1Rhc2sucHJlcGVuZFNwYXduKGNvbGltYVRhc2spO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJvamVjdC5hZGREZXZEZXBzKFwiYXdzLWNkay1sb2NhbFwiKTtcblxuICAgICAgICBjb25zdCB0ZXN0VGFzayA9IHByb2plY3QudGFza3MudHJ5RmluZChcInRlc3RcIik7XG4gICAgICAgIGlmICh0ZXN0VGFzaykge1xuICAgICAgICAgICAgdGVzdFRhc2sucHJlcGVuZFNwYXduKGxvY2Fsc3RhY2tUYXNrKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
package/lib/components/mise.js
CHANGED
|
@@ -7,7 +7,7 @@ const component_1 = require("projen/lib/component");
|
|
|
7
7
|
const textfile_1 = require("projen/lib/textfile");
|
|
8
8
|
const homebrew_1 = require("./homebrew");
|
|
9
9
|
class Mise extends component_1.Component {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Mise", version: "0.3.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Mise", version: "0.3.80" };
|
|
11
11
|
static of(project) {
|
|
12
12
|
const isMise = (c) => c instanceof Mise;
|
|
13
13
|
return project.components.find(isMise);
|
|
@@ -34,7 +34,7 @@ const DEFAULT_CONFIG = {
|
|
|
34
34
|
* TypeDoc component for projen projects
|
|
35
35
|
*/
|
|
36
36
|
class TypeDoc extends component_1.Component {
|
|
37
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeDoc", version: "0.3.
|
|
37
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeDoc", version: "0.3.80" };
|
|
38
38
|
static of(project) {
|
|
39
39
|
const isTypeDoc = (c) => c instanceof TypeDoc;
|
|
40
40
|
return project.components.find(isTypeDoc);
|
package/lib/components/vitest.js
CHANGED
|
@@ -140,7 +140,7 @@ var CoverageReporter;
|
|
|
140
140
|
CoverageReporter["TEXT"] = "text";
|
|
141
141
|
})(CoverageReporter || (exports.CoverageReporter = CoverageReporter = {}));
|
|
142
142
|
class Vitest extends component_1.Component {
|
|
143
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Vitest", version: "0.3.
|
|
143
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Vitest", version: "0.3.80" };
|
|
144
144
|
static of(project) {
|
|
145
145
|
const isVitest = (c) => c instanceof Vitest;
|
|
146
146
|
return project.components.find(isVitest);
|
package/lib/project-generator.js
CHANGED
|
@@ -428,7 +428,7 @@ class TypeScriptClassRenderer {
|
|
|
428
428
|
*/
|
|
429
429
|
class ProjectGenerator extends projen.Component {
|
|
430
430
|
options;
|
|
431
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.ProjectGenerator", version: "0.3.
|
|
431
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.ProjectGenerator", version: "0.3.80" };
|
|
432
432
|
renderer;
|
|
433
433
|
static enumGenerated = false;
|
|
434
434
|
/**
|
|
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
|
|
|
15
15
|
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
16
16
|
*/
|
|
17
17
|
class AwsCdkConstructLibraryProject extends projen_1.awscdk.AwsCdkConstructLibrary {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkConstructLibraryProject", version: "0.3.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkConstructLibraryProject", version: "0.3.80" };
|
|
19
19
|
/**
|
|
20
20
|
* @param options - Project configuration
|
|
21
21
|
*/
|
|
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
|
|
|
15
15
|
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
16
16
|
*/
|
|
17
17
|
class AwsCdkTypeScriptAppProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkTypeScriptAppProject", version: "0.3.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkTypeScriptAppProject", version: "0.3.80" };
|
|
19
19
|
/**
|
|
20
20
|
* @param options - Project configuration
|
|
21
21
|
*/
|
|
@@ -16,7 +16,7 @@ const utils_1 = require("../utils");
|
|
|
16
16
|
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
17
17
|
*/
|
|
18
18
|
class JsiiProject extends projen_1.cdk.JsiiProject {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.JsiiProject", version: "0.3.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.JsiiProject", version: "0.3.80" };
|
|
20
20
|
/**
|
|
21
21
|
* @param options - Project configuration
|
|
22
22
|
*/
|
|
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
|
|
|
15
15
|
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
16
16
|
*/
|
|
17
17
|
class TypeScriptProject extends projen_1.typescript.TypeScriptProject {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeScriptProject", version: "0.3.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeScriptProject", version: "0.3.80" };
|
|
19
19
|
/**
|
|
20
20
|
* @param options - Project configuration
|
|
21
21
|
*/
|